ETH Price: $2,294.08 (+1.38%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

LineaRollup

Compiler Version
v0.8.33+commit.64118f21
Optimization Enabled
Yes with 1500 runs
Other Settings
osaka EvmVersion
License
-NA-
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":[{"internalType":"uint256","name":"emptyBlobIndex","type":"uint256"}],"name":"BlobSubmissionDataEmpty","type":"error"},{"inputs":[],"name":"BlobSubmissionDataIsMissing","type":"error"},{"inputs":[{"internalType":"uint256","name":"bytesLength","type":"uint256"}],"name":"BytesLengthNotMultipleOfTwo","type":"error"},{"inputs":[],"name":"CallerIsNotYieldManager","type":"error"},{"inputs":[],"name":"CallerNotLSTWithdrawalRecipient","type":"error"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"EmptyBlobDataAtIndex","type":"error"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"FeePaymentFailed","type":"error"},{"inputs":[],"name":"FeeTooLow","type":"error"},{"inputs":[],"name":"FinalBlockStateEqualsZeroHash","type":"error"},{"inputs":[{"internalType":"bytes32","name":"shnarf","type":"bytes32"}],"name":"FinalShnarfNotSubmitted","type":"error"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"FinalShnarfWrong","type":"error"},{"inputs":[],"name":"FinalStateRootHashIsZeroHash","type":"error"},{"inputs":[{"internalType":"uint256","name":"l2BlockTimestamp","type":"uint256"},{"internalType":"uint256","name":"currentBlockTimestamp","type":"uint256"}],"name":"FinalizationInTheFuture","type":"error"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"FinalizationStateIncorrect","type":"error"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"InitializedVersionWrong","type":"error"},{"inputs":[],"name":"InvalidMerkleProof","type":"error"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[{"internalType":"string","name":"errorReason","type":"string"}],"name":"InvalidProofOrProofVerificationRanOutOfGas","type":"error"},{"inputs":[],"name":"InvalidProofType","type":"error"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"IsNotPaused","type":"error"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"IsPaused","type":"error"},{"inputs":[{"internalType":"uint256","name":"messageNumber","type":"uint256"},{"internalType":"bytes32","name":"rollingHash","type":"bytes32"}],"name":"L1RollingHashDoesNotExistOnL1","type":"error"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"L2MerkleRootAlreadyAnchored","type":"error"},{"inputs":[],"name":"L2MerkleRootDoesNotExist","type":"error"},{"inputs":[],"name":"LSTWithdrawalRequiresDeficit","type":"error"},{"inputs":[],"name":"LastFinalizationTimeNotLapsed","type":"error"},{"inputs":[{"internalType":"uint32","name":"leafIndex","type":"uint32"},{"internalType":"uint32","name":"maxAllowedIndex","type":"uint32"}],"name":"LeafIndexOutOfBounds","type":"error"},{"inputs":[],"name":"LimitIsZero","type":"error"},{"inputs":[{"internalType":"uint256","name":"messageIndex","type":"uint256"}],"name":"MessageAlreadyClaimed","type":"error"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"MessageDoesNotExistOrHasAlreadyBeenClaimed","type":"error"},{"inputs":[{"internalType":"address","name":"destination","type":"address"}],"name":"MessageSendingFailed","type":"error"},{"inputs":[{"internalType":"bytes32","name":"rollingHash","type":"bytes32"}],"name":"MissingMessageNumberForRollingHash","type":"error"},{"inputs":[{"internalType":"uint256","name":"messageNumber","type":"uint256"}],"name":"MissingRollingHashForMessageNumber","type":"error"},{"inputs":[],"name":"NoEthSent","type":"error"},{"inputs":[],"name":"OnlyNonLivenessRecoveryOperator","type":"error"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"OnlySecurityCouncilCanUnpauseIndefinitePause","type":"error"},{"inputs":[{"internalType":"bytes32","name":"shnarf","type":"bytes32"}],"name":"ParentShnarfNotSubmitted","type":"error"},{"inputs":[{"internalType":"uint256","name":"expiryEnd","type":"uint256"}],"name":"PauseNotExpired","type":"error"},{"inputs":[],"name":"PauseTypeNotUsed","type":"error"},{"inputs":[{"internalType":"uint256","name":"cooldownEnd","type":"uint256"}],"name":"PauseUnavailableDueToCooldown","type":"error"},{"inputs":[],"name":"PeriodIsZero","type":"error"},{"inputs":[],"name":"PointEvaluationFailed","type":"error"},{"inputs":[{"internalType":"uint256","name":"fieldElements","type":"uint256"},{"internalType":"uint256","name":"blsCurveModulus","type":"uint256"}],"name":"PointEvaluationResponseInvalid","type":"error"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"PrecompileReturnDataLengthWrong","type":"error"},{"inputs":[],"name":"ProofIsEmpty","type":"error"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"expected","type":"uint256"}],"name":"ProofLengthDifferentThanMerkleDepth","type":"error"},{"inputs":[],"name":"RateLimitExceeded","type":"error"},{"inputs":[],"name":"ReentrantCall","type":"error"},{"inputs":[],"name":"RolesNotDifferent","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[{"internalType":"bytes32","name":"shnarf","type":"bytes32"}],"name":"ShnarfAlreadySubmitted","type":"error"},{"inputs":[],"name":"ShnarfSubmissionIsZeroHash","type":"error"},{"inputs":[],"name":"StartingRootHashDoesNotMatch","type":"error"},{"inputs":[],"name":"ValueSentTooLow","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"inputs":[],"name":"ZeroHashNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"resettingAddress","type":"address"}],"name":"AmountUsedInPeriodReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"startBlockNumber","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"endBlockNumber","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"shnarf","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"parentStateRootHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"}],"name":"DataFinalizedV3","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parentShnarf","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"shnarf","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"}],"name":"DataSubmittedV3","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FundingReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"l2MerkleRoot","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"treeDepth","type":"uint256"}],"name":"L2MerkleRootAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"l2Block","type":"uint256"}],"name":"L2MessagingBlockAnchored","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"amountChangeBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"amountUsedLoweredToLimit","type":"bool"},{"indexed":false,"internalType":"bool","name":"usedAmountResetToZero","type":"bool"}],"name":"LimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"bytes32","name":"initialStateRootHash","type":"bytes32"},{"internalType":"uint256","name":"initialL2BlockNumber","type":"uint256"},{"internalType":"uint256","name":"genesisTimestamp","type":"uint256"},{"internalType":"address","name":"defaultVerifier","type":"address"},{"internalType":"uint256","name":"rateLimitPeriodInSeconds","type":"uint256"},{"internalType":"uint256","name":"rateLimitAmountInWei","type":"uint256"},{"components":[{"internalType":"address","name":"addressWithRole","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPermissionsManager.RoleAddress[]","name":"roleAddresses","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"pauseTypeRoles","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"unpauseTypeRoles","type":"tuple[]"},{"internalType":"address","name":"defaultAdmin","type":"address"},{"internalType":"address","name":"shnarfProvider","type":"address"}],"indexed":false,"internalType":"struct ILineaRollupBase.BaseInitializationData","name":"InitializationData","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"genesisShnarf","type":"bytes32"}],"name":"LineaRollupBaseInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes8","name":"previousVersion","type":"bytes8"},{"indexed":true,"internalType":"bytes8","name":"newVersion","type":"bytes8"}],"name":"LineaRollupVersionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"livenessRecoveryOperator","type":"address"}],"name":"LivenessRecoveryOperatorAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"livenessRecoveryOperator","type":"address"}],"name":"LivenessRecoveryOperatorRoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"name":"MessageClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_nonce","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_calldata","type":"bytes"},{"indexed":true,"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"name":"MessageSent","type":"event"},{"anonymous":false,"inputs":[],"name":"NonSecurityCouncilCooldownEndReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"PauseTypeRoleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousRole","type":"bytes32"}],"name":"PauseTypeRoleUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"messageSender","type":"address"},{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"messageSender","type":"address"},{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"PausedIndefinitely","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"periodInSeconds","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"limitInWei","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentPeriodEnd","type":"uint256"}],"name":"RateLimitInitialized","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":"uint256","name":"messageNumber","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"rollingHash","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"RollingHashUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"unPauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"UnPauseTypeRoleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"unPauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousRole","type":"bytes32"}],"name":"UnPauseTypeRoleUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"messageSender","type":"address"},{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"UnPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"UnPausedDueToExpiry","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"verifierAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"proofType","type":"uint256"},{"indexed":true,"internalType":"address","name":"verifierSetBy","type":"address"},{"indexed":false,"internalType":"address","name":"oldVerifierAddress","type":"address"}],"name":"VerifierAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldYieldManagerAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newYieldManagerAddress","type":"address"}],"name":"YieldManagerChanged","type":"event"},{"inputs":[],"name":"CONTRACT_VERSION","outputs":[{"internalType":"string","name":"contractVersion","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"COOLDOWN_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INBOX_STATUS_RECEIVED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INBOX_STATUS_UNKNOWN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OUTBOX_STATUS_RECEIVED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OUTBOX_STATUS_SENT","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OUTBOX_STATUS_UNKNOWN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ALL_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_FINALIZATION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_L1_L2_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_L2_L1_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_NATIVE_YIELD_STAKING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_STATE_DATA_SUBMISSION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_LIMIT_SETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SECURITY_COUNCIL_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SET_YIELD_MANAGER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_ALL_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_FINALIZATION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_L1_L2_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_L2_L1_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_NATIVE_YIELD_STAKING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_STATE_DATA_SUBMISSION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USED_RATE_LIMIT_RESETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERIFIER_SETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERIFIER_UNSETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"YIELD_PROVIDER_STAKING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_shnarf","type":"bytes32"}],"name":"blobShnarfExists","outputs":[{"internalType":"uint256","name":"shnarfExists","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address payable","name":"_feeRecipient","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"claimMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"messageNumber","type":"uint256"},{"internalType":"uint32","name":"leafIndex","type":"uint32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address payable","name":"feeRecipient","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IL1MessageService.ClaimMessageWithProofParams","name":"_params","type":"tuple"}],"name":"claimMessageWithProof","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"messageNumber","type":"uint256"},{"internalType":"uint32","name":"leafIndex","type":"uint32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address payable","name":"feeRecipient","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IL1MessageService.ClaimMessageWithProofParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_yieldProvider","type":"address"}],"name":"claimMessageWithProofAndWithdrawLST","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentFinalizedShnarf","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentFinalizedState","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentL2BlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPeriodAmountInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPeriodEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_aggregatedProof","type":"bytes"},{"internalType":"uint256","name":"_proofType","type":"uint256"},{"components":[{"internalType":"bytes32","name":"parentStateRootHash","type":"bytes32"},{"internalType":"uint256","name":"endBlockNumber","type":"uint256"},{"components":[{"internalType":"bytes32","name":"parentShnarf","type":"bytes32"},{"internalType":"bytes32","name":"snarkHash","type":"bytes32"},{"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"},{"internalType":"bytes32","name":"dataEvaluationPoint","type":"bytes32"},{"internalType":"bytes32","name":"dataEvaluationClaim","type":"bytes32"}],"internalType":"struct ILineaRollupBase.ShnarfData","name":"shnarfData","type":"tuple"},{"internalType":"uint256","name":"lastFinalizedTimestamp","type":"uint256"},{"internalType":"uint256","name":"finalTimestamp","type":"uint256"},{"internalType":"bytes32","name":"lastFinalizedL1RollingHash","type":"bytes32"},{"internalType":"bytes32","name":"l1RollingHash","type":"bytes32"},{"internalType":"uint256","name":"lastFinalizedL1RollingHashMessageNumber","type":"uint256"},{"internalType":"uint256","name":"l1RollingHashMessageNumber","type":"uint256"},{"internalType":"uint256","name":"l2MerkleTreesDepth","type":"uint256"},{"internalType":"bytes32[]","name":"l2MerkleRoots","type":"bytes32[]"},{"internalType":"bytes","name":"l2MessagingBlocksOffsets","type":"bytes"}],"internalType":"struct ILineaRollupBase.FinalizationDataV3","name":"_finalizationData","type":"tuple"}],"name":"finalizeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fund","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"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":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"inboxL2L1MessageStatus","outputs":[{"internalType":"uint256","name":"messageStatus","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"initialStateRootHash","type":"bytes32"},{"internalType":"uint256","name":"initialL2BlockNumber","type":"uint256"},{"internalType":"uint256","name":"genesisTimestamp","type":"uint256"},{"internalType":"address","name":"defaultVerifier","type":"address"},{"internalType":"uint256","name":"rateLimitPeriodInSeconds","type":"uint256"},{"internalType":"uint256","name":"rateLimitAmountInWei","type":"uint256"},{"components":[{"internalType":"address","name":"addressWithRole","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPermissionsManager.RoleAddress[]","name":"roleAddresses","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"pauseTypeRoles","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"unpauseTypeRoles","type":"tuple[]"},{"internalType":"address","name":"defaultAdmin","type":"address"},{"internalType":"address","name":"shnarfProvider","type":"address"}],"internalType":"struct ILineaRollupBase.BaseInitializationData","name":"_initializationData","type":"tuple"},{"internalType":"address","name":"_livenessRecoveryOperator","type":"address"},{"internalType":"address","name":"_yieldManager","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_messageNumber","type":"uint256"}],"name":"isMessageClaimed","outputs":[{"internalType":"bool","name":"isClaimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"}],"name":"isPaused","outputs":[{"internalType":"bool","name":"pauseTypeIsPaused","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWithdrawLSTAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"l2MerkleRootsDepths","outputs":[{"internalType":"uint256","name":"treeDepth","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"livenessRecoveryOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMessageNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nonSecurityCouncilCooldownEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"outboxL1L2MessageStatus","outputs":[{"internalType":"uint256","name":"messageStatus","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"}],"name":"pauseByType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"pauseTypeExpiryTimestamps","outputs":[{"internalType":"uint256","name":"expiryTimestamp","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addressWithRole","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPermissionsManager.RoleAddress[]","name":"_roleAddresses","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"_pauseTypeRoles","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"_unpauseTypeRoles","type":"tuple[]"}],"name":"reinitializeV8","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_l2YieldRecipient","type":"address"}],"name":"reportNativeYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetAmountUsedInPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetNonSecurityCouncilCooldownEnd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"resetRateLimitAmount","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":[{"internalType":"uint256","name":"messageNumber","type":"uint256"}],"name":"rollingHashes","outputs":[{"internalType":"bytes32","name":"rollingHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"sendMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sender","outputs":[{"internalType":"address","name":"originalSender","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_messageNumber","type":"uint256"},{"internalType":"bytes32","name":"_rollingHash","type":"bytes32"},{"internalType":"uint256","name":"_lastFinalizedTimestamp","type":"uint256"}],"name":"setLivenessRecoveryOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newVerifierAddress","type":"address"},{"internalType":"uint256","name":"_proofType","type":"uint256"}],"name":"setVerifierAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newYieldManager","type":"address"}],"name":"setYieldManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shnarfProvider","outputs":[{"internalType":"contract IProvideShnarf","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"stateRootHashes","outputs":[{"internalType":"bytes32","name":"stateRootHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"dataEvaluationClaim","type":"uint256"},{"internalType":"bytes","name":"kzgCommitment","type":"bytes"},{"internalType":"bytes","name":"kzgProof","type":"bytes"},{"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"},{"internalType":"bytes32","name":"snarkHash","type":"bytes32"}],"internalType":"struct IAcceptEip4844Blobs.BlobSubmission[]","name":"_blobSubmissions","type":"tuple[]"},{"internalType":"bytes32","name":"_parentShnarf","type":"bytes32"},{"internalType":"bytes32","name":"_finalBlobShnarf","type":"bytes32"}],"name":"submitBlobs","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":"systemMigrationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFundsForNativeYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"}],"name":"unPauseByExpiredType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"}],"name":"unPauseByType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proofType","type":"uint256"}],"name":"unsetVerifierAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"},{"internalType":"bytes32","name":"_newRole","type":"bytes32"}],"name":"updatePauseTypeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"},{"internalType":"bytes32","name":"_newRole","type":"bytes32"}],"name":"updateUnpauseTypeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proofType","type":"uint256"}],"name":"verifiers","outputs":[{"internalType":"address","name":"verifierAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"yieldManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
6080604052348015600e575f5ffd5b506015601f565b601b601f565b60d9565b5f54610100900460ff161560895760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161460d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615f98806100e65f395ff3fe608060405260043610610574575f3560e01c806373bd07b7116102cf578063ac1eff681161017b578063c1dc0f07116100dc578063d547741f11610092578063e196fb5d1161006d578063e196fb5d146110a4578063e66c2a93146110c3578063f5b541a6146110e2575f5ffd5b8063d547741f1461103d578063d722bbfc1461105c578063d9fe8bdd1461108f575f5ffd5b8063c7c33a26116100c2578063c7c33a2614610fd5578063cc6f725114610ff4578063cd9b9e9a14611027575f5ffd5b8063c1dc0f0714610fa1578063c211697414610fb6575f5ffd5b8063b9174ba311610131578063bc61e73311610117578063bc61e73314610f3a578063bf3e750514610f59578063c0729ab114610f8c575f5ffd5b8063b9174ba314610ed4578063b9fe5cf714610f07575f5ffd5b8063aea4f74511610161578063aea4f74514610ea3578063b60d428814610eb7578063b837dbe914610ebf575f5ffd5b8063ac1eff6814610e59578063ad422ff014610e8e575f5ffd5b8063921b278e1161023057806399467a35116101e65780639f3ce55a116101c15780639f3ce55a14610e00578063a217fddf14610e13578063a505925f14610e26575f5ffd5b806399467a3514610d8f5780639ac25d0814610dae5780639ee8b21114610de1575f5ffd5b806395ba81fa1161021657806395ba81fa14610d4557806396e6e4b314610d64578063986fcddd14610bde575f5ffd5b8063921b278e14610cfc578063923fe89414610d12575f5ffd5b806380b7af18116102855780638de494871161026b5780638de4948714610c59578063914e57eb14610c8c57806391d1485414610cb8575f5ffd5b806380b7af1814610bf15780638be745d114610c2d575f5ffd5b806376df1ecc116102b557806376df1ecc14610b9757806378ea198a14610bab5780637d1e8c5514610bde575f5ffd5b806373bd07b714610b6457806374ce962c14610b78575f5ffd5b80633fc08b651161042e5780635c721a0c1161038f57806367e404ce116103455780636b783172116103205780636b78317214610adf5780636e67384314610afe5780637174c55914610b31575f5ffd5b806367e404ce14610a7a578063695378f514610a965780636a906b8014610aac575f5ffd5b806360e83cf31161037557806360e83cf3146109fc5780636321315514610a285780636463fb2a14610a5b575f5ffd5b80635c721a0c146109d15780635ec775b0146106a0575f5ffd5b806352abf32d116103e45780635603c65f116103ca5780635603c65f1461099d57806358794456146109bc5780635b7eb4bd146108c8575f5ffd5b806352abf32d1461095f578063557eac731461097e575f5ffd5b8063491e093611610414578063491e0936146108ee5780634bb974131461090d5780635230eef21461092c575f5ffd5b80633fc08b651461089d57806348922ab7146108c8575f5ffd5b80632c70645c116104d857806338b903331161048e5780633b12eccb116104745780633b12eccb1461082b5780633c0f20fc1461085e5780633e9ebfc21461087e575f5ffd5b806338b90333146107db5780633a4c25551461080c575f5ffd5b80632fe35274116104be5780632fe3527414610770578063335f2e381461079d57806336568abe146107bc575f5ffd5b80632c70645c1461073b5780632f2ff15d14610751575f5ffd5b80632130d8121161052d578063248a9ca311610513578063248a9ca3146106b657806328958174146106e45780632acc8df914610703575f5ffd5b80632130d8121461067457806321b4deee146106a0575f5ffd5b8063085b1c6f1161055d578063085b1c6f146105ed5780631065a39914610620578063198330f814610641575f5ffd5b806301ffc9a71461057857806303134d1d146105ac575b5f5ffd5b348015610583575f5ffd5b50610597610592366004615200565b611115565b60405190151581526020015b60405180910390f35b3480156105b7575f5ffd5b506105df7f1ab87f7458c0e3d07e9881c14ee67f0141703614fd48ea5b15ed987e5f4b030e81565b6040519081526020016105a3565b3480156105f8575f5ffd5b506105df7f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db34725881565b34801561062b575f5ffd5b5061063f61063a366004615252565b6111ad565b005b34801561064c575f5ffd5b506105df7f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be81565b34801561067f575f5ffd5b506105df61068e36600461526b565b5f9081526101be602052604090205490565b3480156106ab575f5ffd5b506105df6202a30081565b3480156106c1575f5ffd5b506105df6106d036600461526b565b5f9081526065602052604090206001015490565b3480156106ef575f5ffd5b5061063f6106fe36600461526b565b611399565b34801561070e575f5ffd5b506101c054610723906001600160a01b031681565b6040516001600160a01b0390911681526020016105a3565b348015610746575f5ffd5b506105df6101835481565b34801561075c575f5ffd5b5061063f61076b3660046152a1565b611434565b34801561077b575f5ffd5b50740100000000000000000000000000000000000000005f5c0460ff16610597565b3480156107a8575f5ffd5b5061063f6107b7366004615317565b61145d565b3480156107c7575f5ffd5b5061063f6107d63660046152a1565b611643565b3480156107e6575f5ffd5b506040805180820182526003815262372e3160e81b602082015290516105a391906153b6565b348015610817575f5ffd5b5061063f6108263660046153eb565b611651565b348015610836575f5ffd5b506105df7fb6cc65f42901ed602aec1619cc1ead29d487cd489094a37615153eaeb991d77081565b348015610869575f5ffd5b506101c154610723906001600160a01b031681565b348015610889575f5ffd5b5061063f610898366004615414565b61179d565b3480156108a8575f5ffd5b506105df6108b736600461526b565b60a56020525f908152604090205481565b3480156108d3575f5ffd5b506108dc600181565b60405160ff90911681526020016105a3565b3480156108f9575f5ffd5b5061063f61090836600461547a565b6118ca565b348015610918575f5ffd5b5061063f6109273660046152a1565b611b7f565b348015610937575f5ffd5b506105df7f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf981565b34801561096a575f5ffd5b5061063f610979366004615414565b611ccf565b348015610989575f5ffd5b5061063f61099836600461526b565b611dfc565b3480156109a8575f5ffd5b5061063f6109b736600461550a565b611ec6565b3480156109c7575f5ffd5b506105df60995481565b3480156109dc575f5ffd5b506105df6109eb36600461526b565b60a66020525f908152604090205481565b348015610a07575f5ffd5b506105df610a1636600461526b565b6101506020525f908152604090205481565b348015610a33575f5ffd5b506105df7fe37c272ea30e2bb381ad7cf89ae754b49153250609f36d0cbdad8b64c184bb5c81565b348015610a66575f5ffd5b5061063f610a75366004615593565b61205f565b348015610a85575f5ffd5b505f5c6001600160a01b0316610723565b348015610aa1575f5ffd5b506105df6101195481565b348015610ab7575f5ffd5b506105df7fd8b4c34c2ec1f3194471108c64ad2beda340c0337ee4ca35592f9ef270f4228b81565b348015610aea575f5ffd5b5061063f610af93660046155cd565b612213565b348015610b09575f5ffd5b506105df7f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c81565b348015610b3c575f5ffd5b506105df7f4b4665d8754e6ea0608430ef3e91c1b45c72aafe8800e289cd35f38d8536185881565b348015610b6f575f5ffd5b506108dc600281565b348015610b83575f5ffd5b5061063f610b92366004615611565b612491565b348015610ba2575f5ffd5b5061063f6124c4565b348015610bb6575f5ffd5b506105df7f4df33217c89b6f12af38ba46035cb312b5e88de78d22279286830fe079b642cd81565b348015610be9575f5ffd5b506108dc5f81565b348015610bfc575f5ffd5b507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316610723565b348015610c38575f5ffd5b506105df610c4736600461526b565b61011a6020525f908152604090205481565b348015610c64575f5ffd5b506105df7fe1fce82838dd7a42cfe783f60dc6233c8aa2c4fc66e77817805e767ec5e349b681565b348015610c97575f5ffd5b506105df610ca636600461526b565b61014e6020525f908152604090205481565b348015610cc3575f5ffd5b50610597610cd23660046152a1565b5f9182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610d07575f5ffd5b506105df6101bf5481565b348015610d1d575f5ffd5b506105df7fcc10d6eec3c757d645e27b3f3001a3ba52f692da0bce25fabf58c6ecaf37645081565b348015610d50575f5ffd5b5061063f610d5f366004615252565b61251d565b348015610d6f575f5ffd5b506105df610d7e366004615252565b60de6020525f908152604090205481565b348015610d9a575f5ffd5b5061063f610da936600461562c565b6126b0565b348015610db9575f5ffd5b506105df7f56bdc3c9ec86cb7db110a7699b2ade72f0b8819727d9f7d906b012641505fa7781565b348015610dec575f5ffd5b50610597610dfb36600461526b565b6126f9565b61063f610e0e3660046156a9565b61271c565b348015610e1e575f5ffd5b506105df5f81565b348015610e31575f5ffd5b506105df7f21aba2dd4535739d4ca4cddb3c024036bfcc88cfce067cb0847e7ad0f9cfaa5581565b348015610e64575f5ffd5b50610723610e7336600461526b565b61011b6020525f90815260409020546001600160a01b031681565b348015610e99575f5ffd5b506105df60985481565b348015610eae575f5ffd5b5061063f61273a565b61063f612795565b348015610eca575f5ffd5b506105df60e45481565b348015610edf575f5ffd5b506105df7f430a7f0cb00b5ebbe63cecc96e82cf959a883e7c13a95110854f1fa6b3fbf59881565b348015610f12575f5ffd5b506105df7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a3211881565b348015610f45575f5ffd5b50610597610f54366004615252565b612803565b348015610f64575f5ffd5b506105df7f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d8281565b348015610f97575f5ffd5b506105df609a5481565b348015610fac575f5ffd5b506105df60975481565b348015610fc1575f5ffd5b5061063f610fd0366004615701565b612827565b348015610fe0575f5ffd5b5061063f610fef36600461571d565b6128fc565b348015610fff575f5ffd5b506105df7fe8cb6172fcf5cbaae022b7c910224a4f0c20d53227e630056efff182155a5abc81565b348015611032575f5ffd5b506105df6101bd5481565b348015611048575f5ffd5b5061063f6110573660046152a1565b612aa9565b348015611067575f5ffd5b506105df7f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a81565b34801561109a575f5ffd5b506105df60dd5481565b3480156110af575f5ffd5b5061063f6110be366004615252565b612acd565b3480156110ce575f5ffd5b5061063f6110dd36600461526b565b612dbb565b3480156110ed575f5ffd5b506105df7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806111a757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b805f81600d8111156111c1576111c1615782565b036111df576040516385994c7760e01b815260040160405180910390fd5b60dc5f83600d8111156111f4576111f4615782565b600d81111561120557611205615782565b81526020019081526020015f205461121c81612e6f565b61122583612803565b61124d5782604051630619659560e21b815260040161124491906157b6565b60405180910390fd5b5f1960de5f85600d81111561126457611264615782565b600d81111561127557611275615782565b81526020019081526020015f20541480156112be5750335f9081527f74a8627e7e8109f70747bbdf2c891159d40f925b9c8f09259a497b8c31b3780b602052604090205460ff16155b156112f757826040517f8eee14d400000000000000000000000000000000000000000000000000000000815260040161124491906157b6565b60de5f84600d81111561130c5761130c615782565b600d81111561131d5761131d615782565b81526020019081526020015f205f905582600d81111561133f5761133f615782565b60da8054600190921b19909116905582600d81111561136057611360615782565b6040513381527fd071d2b85dec4489435b541d2f0e2570db09b09db9efd8703948d44a433df65a906020015b60405180910390a2505050565b7f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a6113c381612e6f565b5f82815261011b602090815260408083205490516001600160a01b0390911681523392859290917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080546001600160a01b0319169055565b5f8281526065602052604090206001015461144e81612e6f565b6114588383612e7c565b505050565b5f54600890610100900460ff1615801561147d57505f5460ff8083169116105b6114ef5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611244565b5f805461ffff191660ff8316176101001790555f197f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c01611538576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d61156885858585612f1c565b6115728787613197565b6101c180546001600160a01b0319163017905560405162372e3160e81b907f372e300000000000000000000000000000000000000000000000000000000000907f2f8492a7a430cf917798dfb60bc5af634f68e6c40287947df0ea6f7ec0669bd8905f90a35f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050505050565b61164d8282613305565b5050565b61165e62f099c0826157d8565b421015611697576040517f4306cbb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805184815260208101849052908101829052606090206101bf54146116f6576101bf5460408051858152602081018590529081018390526060902060405163bc5aad1160e01b815260048101929092526024820152604401611244565b6101c0546001600160a01b03165f8181527fbdd154b7c599a43e8b8410b62e84571cd69a79e95c9fc5b630a687cb7c97edf9602052604090205460ff16611797576117617f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92982612e7c565b6040516001600160a01b0382169033907f6cfaf6b76ea493a8e88b6b95f7b34cdaae196c4ed737b32e72c5d9e8d0a18518905f90a35b50505050565b815f81600d8111156117b1576117b1615782565b036117cf576040516385994c7760e01b815260040160405180910390fd5b7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a321186117f981612e6f565b5f60db5f86600d81111561180f5761180f615782565b600d81111561182057611820615782565b81526020019081526020015f2054905083810361185057604051631b807f5560e01b815260040160405180910390fd5b8360db5f87600d81111561186657611866615782565b600d81111561187757611877615782565b815260208101919091526040015f2055808486600d81111561189b5761189b615782565b6040517f074bfc3728ef1e98bde10bcb5bd8cde59cff190c2bfda5d22f879f865a07bac5905f90a45050505050565b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c03611900576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d85878484875f5a90506119376003613358565b8d5f805c6001600160a01b0319166001600160a01b03831617905d505f6119638f8f8f8f8c8f8f6133b8565b905061196e81613411565b61198061197b8d8f6157d8565b61346b565b5f5f8f6001600160a01b03168e8d8d60405161199d9291906157eb565b5f6040518083038185875af1925050503d805f81146119d7576040519150601f19603f3d011682016040523d82523d5f602084013e6119dc565b606091505b509150915081611a20578051156119f65780518082602001fd5b8f604051635461344360e01b815260040161124491906001600160a01b0391909116815260200190565b5f6001600160a01b0319815c16815d5060405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2505086159050611b4c57855f849003611adb57853b158015611ad9573a5a611a8461bc7c866157d8565b611a8e91906157fa565b611a98919061580d565b915081881115611ad5576001600160a01b0387166108fc611ab9848b6157fa565b6040518115909202915f818181858888f1935050505050611ad9565b8791505b505b5f6001600160a01b03841615611af15783611af3565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f19350505050905080611b485760405163295f137d60e21b81526001600160a01b0383166004820152602401611244565b5050505b5050505050505f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d5050505050505050565b6002611b8a81613358565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03163314611bed576040517fa1cfbf5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611c14576040516342bcdf7f60e11b815260040160405180910390fd5b60e480545f9182611c2483615824565b9091555060408051308152602081018690525f918101829052606081018790526080810183905260c060a08201819052810182905260e0902091925050611c6b82826134e1565b604080515f80825260208201889052818301859052608060608301819052820152905182916001600160a01b0387169133917fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c919081900360a00190a45050505050565b815f81600d811115611ce357611ce3615782565b03611d01576040516385994c7760e01b815260040160405180910390fd5b7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a32118611d2b81612e6f565b5f60dc5f86600d811115611d4157611d41615782565b600d811115611d5257611d52615782565b81526020019081526020015f20549050838103611d8257604051631b807f5560e01b815260040160405180910390fd5b8360dc5f87600d811115611d9857611d98615782565b600d811115611da957611da9615782565b815260208101919091526040015f2055808486600d811115611dcd57611dcd615782565b6040517ff8ef9f1cde7c2c0d3aeb696678f76d7c1c3e13c3b79ea3c5160a2d9eaa821cfd905f90a45050505050565b7f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d82611e2681612e6f565b5f5f5f426099541015611e4b57609754611e4090426157d8565b609955506001611e5d565b609a54851015611e5d57849250600191505b60988590558080611e6b5750815b15611e7657609a8390555b6040805186815283151560208201528215159181019190915233907fbc3dc0cb5c15c51c81316450d44048838bb478b9809447d01c766a06f3e9f2c8906060015b60405180910390a25050505050565b6006611ed181613358565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929611efb81612e6f565b5f859003611f35576040517f7907d79b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610119545f81815261011a6020526040902054843514611f81576040517fead4c30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101bd545f86815261011b60205260409020546001600160a01b031680611fd4576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205461204c8784611fe68a8861353e565b87866001600160a01b031663b02384ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612023573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612047919061583c565b61383d565b828b8b6138d1565b505050505050505050565b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c03612095576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d60a081018035906120cd9060808401615611565b6120db610120840184615853565b6120ec610100860160e08701615611565b5f5a90506120f987613ac8565b85156121e757855f84900361217657853b158015612174573a5a61211f61bc7c866157d8565b61212991906157fa565b612133919061580d565b915081881115612170576001600160a01b0387166108fc612154848b6157fa565b6040518115909202915f818181858888f1935050505050612174565b8791505b505b5f6001600160a01b0384161561218c578361218e565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f193505050509050806121e35760405163295f137d60e21b81526001600160a01b0383166004820152602401611244565b5050505b5050505050505f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d50565b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c03612249576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d478260c00135116122aa576040517f62d5cfe000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122ba60a0830160808401615611565b6001600160a01b0316336001600160a01b031614612304576040517f0a5c9f3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61230e83613d47565b905060017fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff5f805c919091167401000000000000000000000000000000000000000017905d507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316633e4903b78360c086013561239a60a0880160808901615611565b60405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b039384166004820152602481019290925290911660448201526064015f604051808303815f87803b158015612400575f5ffd5b505af1158015612412573d5f5f3e3d5ffd5b505f92505050805c7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815d5060405181907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2505f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d5050565b7f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be6124bb81612e6f565b61164d82613e0d565b7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a321186124ee81612e6f565b4260dd556040517f201956ebe50475cb4c4f2d1e8375cfcc9c1700ad498e0c8053da490688172787905f90a150565b805f81600d81111561253157612531615782565b0361254f576040516385994c7760e01b815260040160405180910390fd5b61255882612803565b6125775781604051630619659560e21b815260040161124491906157b6565b60de5f83600d81111561258c5761258c615782565b600d81111561259d5761259d615782565b81526020019081526020015f205442101561261b5760de5f83600d8111156125c7576125c7615782565b600d8111156125d8576125d8615782565b81526020019081526020015f20546040517fcfd8aa6f00000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b60de5f83600d81111561263057612630615782565b600d81111561264157612641615782565b81526020019081526020015f205f905581600d81111561266357612663615782565b60da8054600190921b19909116905581600d81111561268457612684615782565b6040517f3ddaeb19197ed3b5334f4c1cd5716f663d0f6dce30c52800bd1674da0b88e87a905f90a25050565b600d6126bb81613358565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9296126e581612e6f565b6126f186868686613ebc565b505050505050565b600881901c5f90815261014f6020526040812054600160ff84161b1615156111a7565b600261272781613358565b6127338585858561408f565b5050505050565b7f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf961276481612e6f565b5f609a81905560405133917fba88c025b0cbb77022c0c487beef24f759f1e4be2f51a205bc427cee19c2eaa691a250565b345f036127ce576040517f717e6b7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040513481527fe455499c2acd509bdadebaf5a8fd54c083da31dbe98e785f2a72cdff04e32e009060200160405180910390a1565b5f81600d81111561281657612816615782565b60da54600190911b16151592915050565b7f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c61285181612e6f565b6001600160a01b038316612878576040516342bcdf7f60e11b815260040160405180910390fd5b5f82815261011b60209081526040918290205491516001600160a01b03928316815233928592908716917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f806129095f5460ff1690565b60ff161461295c578061291d5f5460ff1690565b6040517fdfb65d2600000000000000000000000000000000000000000000000000000000815260ff928316600482015291166024820152604401611244565b5f54600890610100900460ff1615801561297c57505f5460ff8083169116105b6129ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611244565b5f805461ffff191660ff831617610100178155612a31818088358180604080519586526020860194909452928401919091526060830152608082015260a0902090565b5f8181526101be60205260409020600190559050612a4f868261418c565b612a58856143d8565b612a61846144b5565b505f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b5f82815260656020526040902060010154612ac381612e6f565b6114588383614528565b805f81600d811115612ae157612ae1615782565b03612aff576040516385994c7760e01b815260040160405180910390fd5b60db5f83600d811115612b1457612b14615782565b600d811115612b2557612b25615782565b81526020019081526020015f2054612b3c81612e6f565b335f9081527f74a8627e7e8109f70747bbdf2c891159d40f925b9c8f09259a497b8c31b3780b602052604090205460ff16612b7684612803565b8015612b80575080155b80612bbe57505f1960de5f86600d811115612b9d57612b9d615782565b600d811115612bae57612bae615782565b81526020019081526020015f2054145b15612bde5783604051631814e36b60e31b815260040161124491906157b6565b8015612c87575f1960de5f86600d811115612bfb57612bfb615782565b600d811115612c0c57612c0c615782565b815260208101919091526040015f205583600d811115612c2e57612c2e615782565b60da8054600190921b909117905583600d811115612c4e57612c4e615782565b6040805133815290517f36287ed6be33e8d1abe33ad8d38ab23b67a5126b7140660a8a25920bdc30a1999181900360200190a250505050565b60dd54428111612cdb57426202a300018060de5f88600d811115612cad57612cad615782565b600d811115612cbe57612cbe615782565b815260208101919091526040015f20556202a3000160dd55612d59565b6202a30042820311612d1c576040517fc04205ee00000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b6202a300810360de5f87600d811115612d3757612d37615782565b600d811115612d4857612d48615782565b815260208101919091526040015f20555b84600d811115612d6b57612d6b615782565b60da8054600190921b909117905584600d811115612d8b57612d8b615782565b6040513381527f534f879afd40abb4e39f8e1b77a316be4c8e3521d9cf5a3a3db8959d574d455990602001611eb7565b6009612dc681613358565b7f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db347258612df081612e6f565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03166001600160a01b0316637ab19c10846040518263ffffffff1660e01b81526004015f604051808303818588803b158015612e53575f5ffd5b505af1158015612e65573d5f5f3e3d5ffd5b5050505050505050565b612e7981336145a9565b50565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff1661164d575f8281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612ed83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f54610100900460ff16612f865760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b5f5b8381101561308e57848482818110612fa257612fa2615896565b9050604002016020013560db5f878785818110612fc157612fc1615896565b612fd79260206040909202019081019150615252565b600d811115612fe857612fe8615782565b600d811115612ff957612ff9615782565b815260208101919091526040015f205584848281811061301b5761301b615896565b9050604002016020013585858381811061303757613037615896565b61304d9260206040909202019081019150615252565b600d81111561305e5761305e615782565b6040517f33aa8fd1ce49e1761bc8d27fd53414bfefc45d690feed0ce55019d7d3aec6091905f90a3600101612f88565b505f5b81811015612733578282828181106130ab576130ab615896565b9050604002016020013560dc5f8585858181106130ca576130ca615896565b6130e09260206040909202019081019150615252565b600d8111156130f1576130f1615782565b600d81111561310257613102615782565b815260208101919091526040015f205582828281811061312457613124615896565b9050604002016020013583838381811061314057613140615896565b6131569260206040909202019081019150615252565b600d81111561316757613167615782565b6040517fe7bf4b8dc0c17a52dc9e52323a3ab61cb2079db35f969125b1f8a3d984c6f6c2905f90a3600101613091565b5f54610100900460ff166132015760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b5f5b81811015611458575f83838381811061321e5761321e615896565b6132349260206040909202019081019150615611565b6001600160a01b03160361325b576040516342bcdf7f60e11b815260040160405180910390fd5b82828281811061326d5761326d615896565b905060400201602001355f5f1b036132b1576040517f0742d05300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132fd8383838181106132c6576132c6615896565b905060400201602001358484848181106132e2576132e2615896565b6132f89260206040909202019081019150615611565b612e7c565b600101613203565b6101c0546001600160a01b039081169082160361334e576040517f9395197f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61164d828261461d565b60da5481600d81111561336d5761336d615782565b6001901b8116156133935781604051631814e36b60e31b815260040161124491906157b6565b600281161561164d576001604051631814e36b60e31b815260040161124491906157b6565b5f60405188815287602082015286604082015285606082015284608082015260c060a08201528260c0820152602083065f81156133f6578160200390505b848660e085013790930160e001902098975050505050505050565b5f81815260a6602052604090205460011461345b576040517f992d87c300000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b5f90815260a66020526040812055565b8015612e79574260995410156134905760975461348890426157d8565b6099556134a0565b609a5461349d90826157d8565b90505b6098548111156134dc576040517fa74c1c5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609a55565b5f1982015f90815261014e60208181526040808420548452848252808420868552929091528083208290555190918391839186917fea3b023b4c8680d4b4824f0143132c95476359a2bb70a81d6c5a36f6918f63399190a4505050565b5f6135538361018001358461014001356146a5565b6101bf54604080516101608601358152610120860135602082015260e08601359181019190915260609020146135d057604080516101608501358152610120850135602082015260e085013591810191909152606090206101bf5460405163bc5aad1160e01b815260048101929092526024820152604401611244565b428361010001351061361b576040517fbf81c6e00000000000000000000000000000000000000000000000000000000081526101008401356004820152426024820152604401611244565b6080830135613656576040517f2898482a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61369960408401356060850135608086013560a087013560c0880135604080519586526020860194909452928401919091526060830152608082015260a0902090565b6101c1546040517f2130d812000000000000000000000000000000000000000000000000000000008152600481018390529192506001600160a01b031690632130d81290602401602060405180830381865afa1580156136fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061371f919061583c565b5f0361375a576040517fd35bb1d100000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b61377661376b6101c08501856158aa565b856101a00135614772565b61378d6137876101e0850185615853565b84614878565b6020808401355f81815261011a909252604090912060808501359055610119556101bd8190556137e2610180840135610140850135610100860135604080519384526020840192909252908201526060902090565b6101bf558060208401356137f584615824565b60408051873581526080880135602082015291955085917fa0262dc79e4ccb71ceac8574ae906311ae338aa4a2044fd4ec4b99fad5ab60cb910160405180910390a492915050565b5f604051858152846020820152604060e088016040830137836080820152602080880160a083013760a0610120880160c083013761018081016101c0880135880180356020810260208301843760200290912061016083015250610180810192909252506101a090207f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019006949350505050565b6040805160018082528183019092525f916020808301908036833701905050905084815f8151811061390557613905615896565b6020026020010181815250505f5f856001600160a01b03168585856040516024016139329392919061592c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7e4f7a8a0000000000000000000000000000000000000000000000000000000017905251613995919061599d565b5f604051808303815f865af19150503d805f81146139ce576040519150601f19603f3d011682016040523d82523d5f602084013e6139d3565b606091505b509150915081613a7a57805115613a1857602081017bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81511663ca389c4460e01b178152815181fd5b6040517fca389c4400000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f556e6b6e6f776e000000000000000000000000000000000000000000000000006044820152606401611244565b5f81806020019051810190613a8f91906159a8565b905080612e65576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613ad26003613358565b6101008101355f908152610150602052604081205490819003613b0857604051634e68667560e01b815260040160405180910390fd5b613b1282806158aa565b90508114613b615780613b2583806158aa565b6040517f5e3fd6ad0000000000000000000000000000000000000000000000000000000081526004810193909352602483015250604401611244565b613b6e8260200135614905565b613b8361197b60c084013560a08501356157d8565b5f613bc9613b976080850160608601615611565b613ba760a0860160808701615611565b60a086013560c08701356020880135613bc46101208a018a615853565b6133b8565b9050613bf481613bd985806158aa565b613be960608801604089016159c7565b87610100013561497d565b613c115760405163582f497d60e11b815260040160405180910390fd5b613c216080840160608501615611565b5f805c6001600160a01b0319166001600160a01b03831617905d505f80613c4e60a0860160808701615611565b6001600160a01b031660c0860135613c6a610120880188615853565b604051613c789291906157eb565b5f6040518083038185875af1925050503d805f8114613cb2576040519150601f19603f3d011682016040523d82523d5f602084013e613cb7565b606091505b509150915081613d0657805115613cd15780518082602001fd5b613ce160a0860160808701615611565b604051635461344360e01b81526001600160a01b039091166004820152602401611244565b5f6001600160a01b0319815c16815d5060405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a25050505050565b5f613d526003613358565b6101008201355f908152610150602052604081205490819003613d8857604051634e68667560e01b815260040160405180910390fd5b613d9283806158aa565b90508114613da55780613b2584806158aa565b613db28360200135614905565b613dc761197b60c085013560a08601356157d8565b613dda613b976080850160608601615611565b9150613dea82613bd985806158aa565b613e075760405163582f497d60e11b815260040160405180910390fd5b50919050565b613e1681614a8a565b7feb44f28f73dc4d72ac2ee43ebf59a1e0c84c11c4d614746c0dc99d9071abd8f97f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0054604080516001600160a01b03928316815291841660208301520160405180910390a17f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0080546001600160a01b0319166001600160a01b0392909216919091179055565b5f839003613ef6576040517fb1504a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b824915613f32576040517f8019aff700000000000000000000000000000000000000000000000000000000815260048101849052602401611244565b5f5f613f636040518060a001604052805f815260200160608152602001606081526020015f81526020015f81525090565b845f5b8781101561403c57888882818110613f8057613f80615896565b9050602002810190613f9291906159ea565b613f9b90615abc565b81499450925083613fdb576040517fc0e41e1d00000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b60808301515f818152602086905260409020955061400985875f1c865f015187602001518860400151614ab1565b6060848101518551604080519687526020870194909452928501528301869052608083015260a090912090600101613f66565b5061404c86868460600151614c53565b808514612e65576040517fd3664fb30000000000000000000000000000000000000000000000000000000081526004810186905260248101829052604401611244565b6001600160a01b0384166140b6576040516342bcdf7f60e11b815260040160405180910390fd5b348311156140f0576040517fb03b693200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e480545f918261410083615824565b9091555090505f61411185346157fa565b90505f61412333888885878a8a6133b8565b905061412f83826134e1565b80876001600160a01b0316336001600160a01b03167fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c8986888b8b60405161417b959493929190615b49565b60405180910390a450505050505050565b5f54610100900460ff166141f65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b5f6142076080840160608501615611565b6001600160a01b03160361422e576040516342bcdf7f60e11b815260040160405180910390fd5b61425161423e60e0840184615b79565b61424c610100860186615b79565b612f1c565b61426382608001358360a00135614d35565b5f61427661014084016101208501615611565b6001600160a01b03160361429d576040516342bcdf7f60e11b815260040160405180910390fd5b6142b35f6132f861014085016101208601615611565b6142c86142c360c0840184615b79565b613197565b6142d86080830160608401615611565b7f033d11f27e62ab919708ec716731da80d261a6e4253259b7acde9bf89d28ec1880546001600160a01b0319166001600160a01b03929092169190911790556020828101356101198190555f90815261011a82526040808220853590556101bd8490558051828152928301919091528084013590820152606090206101bf555f61436a61016084016101408501615611565b90506001600160a01b03811661437d5750305b6101c180546001600160a01b0319166001600160a01b0383161790556040517fd13bc76982f23a7cdc6e2a712d924401ed41a9e4c6ee26b10ae22f0ff3e267c5906143cb9085908590615c98565b60405180910390a1505050565b5f54610100900460ff166144425760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b6001600160a01b038116614469576040516342bcdf7f60e11b815260040160405180910390fd5b6101c080546001600160a01b0319166001600160a01b03831690811790915560405133907fb341a9e6d33f272cb7b5a20b337763606cbb6c728e7a34cbd3191cdfa0f0cd07905f90a350565b5f54610100900460ff1661451f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b612e7981613e0d565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff161561164d575f8281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff1661164d576145db81614dca565b6145e6836020614ddc565b6040516020016145f7929190615db0565b60408051601f198184030181529082905262461bcd60e51b8252611244916004016153b6565b6001600160a01b038116331461469b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401611244565b61164d8282614528565b815f036146e757801561164d576040517f0c25659200000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b80614721576040517f5228f4c800000000000000000000000000000000000000000000000000000000815260048101839052602401611244565b5f82815261014e6020526040902054811461164d576040517f36459fa00000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611244565b5f5b82811015611797576101505f85858481811061479257614792615896565b9050602002013581526020019081526020015f20545f146147fb578383828181106147bf576147bf615896565b905060200201356040517fe5d1442500000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b816101505f86868581811061481257614812615896565b9050602002013581526020019081526020015f20819055508184848381811061483d5761483d615896565b905060200201357f300e6f978eee6a4b0bba78dd8400dc64fd5652dbfc868a2258e16d0977be222b60405160405180910390a3600101614774565b614883600283615e1a565b156148bd576040517f0c91d77600000000000000000000000000000000000000000000000000000000815260048101839052602401611244565b5f5f5b83811015612733576040518582013560f01c9250838301907f3c116827db9db3a30c1a25db8b0ee4bab9d2b223560209cfd839601b621c726d905f90a26002016148c0565b600881901c5f90815261014f6020526040902054600160ff83161b161561495b576040517f335a4a9000000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b600881901c5f90815261014f602052604090208054600160ff84161b17905550565b5f8061499e600161498f876002615f1c565b61499991906157fa565b615006565b90508063ffffffff168463ffffffff1611156149f6576040517ff7ec909700000000000000000000000000000000000000000000000000000000815263ffffffff808616600483015282166024820152604401611244565b865f5b86811015614a7c57600163ffffffff8716821c81169003614a4657614a3f888883818110614a2957614a29615896565b90506020020135835f9182526020526040902090565b9150614a74565b614a7182898984818110614a5c57614a5c615896565b905060200201355f9182526020526040902090565b91505b6001016149f9565b509092149695505050505050565b6001600160a01b038116612e79576040516342bcdf7f60e11b815260040160405180910390fd5b7f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001840693505f5f600a6001600160a01b03168787878787604051602001614afc959493929190615f27565b60408051601f1981840301815290829052614b169161599d565b5f60405180830381855afa9150503d805f8114614b4e576040519150601f19603f3d011682016040523d82523d5f602084013e614b53565b606091505b509150915081614b8f576040517fa71194af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040815114614bd7578051604080517ff75db3810000000000000000000000000000000000000000000000000000000081526112449290600401918252602082015260400190565b6020810151604082015161100082141580614c1257507f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018114155b15612054576040517f68dcad5f0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611244565b5f8381526101be60205260409020548390614c9d576040517fc77b964c00000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b505f8281526101be6020526040902054829015614ce9576040517fe69adeca00000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b505f8281526101be602090815260409182902060019055815185815290810183905283917f55f4c645c36aa5cd3f443d6be44d7a7a5df9d2100d7139dfc69d4289ee072319910161138c565b5f54610100900460ff16614d9f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b614da7615053565b614daf615053565b614db7615053565b614dc182826150bf565b5050600160e455565b60606111a76001600160a01b03831660145b60605f614dea83600261580d565b614df59060026157d8565b67ffffffffffffffff811115614e0d57614e0d6158f0565b6040519080825280601f01601f191660200182016040528015614e37576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110614e6d57614e6d615896565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110614ecf57614ecf615896565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f614f0984600261580d565b614f149060016157d8565b90505b6001811115614fb0577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110614f5557614f55615896565b1a60f81b828281518110614f6b57614f6b615896565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060049490941c93614fa981615f4d565b9050614f17565b508315614fff5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611244565b9392505050565b5f63ffffffff82111561504f576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526020600482015260248101839052604401611244565b5090565b5f54610100900460ff166150bd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b565b5f54610100900460ff166151295760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b815f03615162576040517fb5ed5a3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f0361519b576040517fd10d72bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609782905560988190556151af82426157d8565b60998190556097546098546040805192835260208301919091528101919091527f8f805c372b66240792580418b7328c0c554ae235f0932475c51b026887fe26a99060600160405180910390a15050565b5f60208284031215615210575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114614fff575f5ffd5b8035600e811061524d575f5ffd5b919050565b5f60208284031215615262575f5ffd5b614fff8261523f565b5f6020828403121561527b575f5ffd5b5035919050565b6001600160a01b0381168114612e79575f5ffd5b803561524d81615282565b5f5f604083850312156152b2575f5ffd5b8235915060208301356152c481615282565b809150509250929050565b5f5f83601f8401126152df575f5ffd5b50813567ffffffffffffffff8111156152f6575f5ffd5b6020830191508360208260061b8501011115615310575f5ffd5b9250929050565b5f5f5f5f5f5f6060878903121561532c575f5ffd5b863567ffffffffffffffff811115615342575f5ffd5b61534e89828a016152cf565b909750955050602087013567ffffffffffffffff81111561536d575f5ffd5b61537989828a016152cf565b909550935050604087013567ffffffffffffffff811115615398575f5ffd5b6153a489828a016152cf565b979a9699509497509295939492505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f606084860312156153fd575f5ffd5b505081359360208301359350604090920135919050565b5f5f60408385031215615425575f5ffd5b61542e8361523f565b946020939093013593505050565b5f5f83601f84011261544c575f5ffd5b50813567ffffffffffffffff811115615463575f5ffd5b602083019150836020828501011115615310575f5ffd5b5f5f5f5f5f5f5f5f60e0898b031215615491575f5ffd5b883561549c81615282565b975060208901356154ac81615282565b9650604089013595506060890135945060808901356154ca81615282565b935060a089013567ffffffffffffffff8111156154e5575f5ffd5b6154f18b828c0161543c565b999c989b50969995989497949560c00135949350505050565b5f5f5f5f6060858703121561551d575f5ffd5b843567ffffffffffffffff811115615533575f5ffd5b61553f8782880161543c565b90955093505060208501359150604085013567ffffffffffffffff811115615565575f5ffd5b85016102008188031215615577575f5ffd5b939692955090935050565b5f6101408284031215613e07575f5ffd5b5f602082840312156155a3575f5ffd5b813567ffffffffffffffff8111156155b9575f5ffd5b6155c584828501615582565b949350505050565b5f5f604083850312156155de575f5ffd5b823567ffffffffffffffff8111156155f4575f5ffd5b61560085828601615582565b92505060208301356152c481615282565b5f60208284031215615621575f5ffd5b8135614fff81615282565b5f5f5f5f6060858703121561563f575f5ffd5b843567ffffffffffffffff811115615655575f5ffd5b8501601f81018713615665575f5ffd5b803567ffffffffffffffff81111561567b575f5ffd5b8760208260051b840101111561568f575f5ffd5b602091820198909750908601359560400135945092505050565b5f5f5f5f606085870312156156bc575f5ffd5b84356156c781615282565b935060208501359250604085013567ffffffffffffffff8111156156e9575f5ffd5b6156f58782880161543c565b95989497509550505050565b5f5f60408385031215615712575f5ffd5b823561542e81615282565b5f5f5f6060848603121561572f575f5ffd5b833567ffffffffffffffff811115615745575f5ffd5b84016101608187031215615757575f5ffd5b9250602084013561576781615282565b9150604084013561577781615282565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b600e81106157b257634e487b7160e01b5f52602160045260245ffd5b9052565b602081016111a78284615796565b634e487b7160e01b5f52601160045260245ffd5b808201808211156111a7576111a76157c4565b818382375f9101908152919050565b818103818111156111a7576111a76157c4565b80820281158282048414176111a7576111a76157c4565b5f60018201615835576158356157c4565b5060010190565b5f6020828403121561584c575f5ffd5b5051919050565b5f5f8335601e19843603018112615868575f5ffd5b83018035915067ffffffffffffffff821115615882575f5ffd5b602001915036819003821315615310575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e198436030181126158bf575f5ffd5b83018035915067ffffffffffffffff8211156158d9575f5ffd5b6020019150600581901b3603821315615310575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b604081525f61593f604083018587615904565b82810360208401528084518083526020830191506020860192505f5b8181101561597957835183526020938401939092019160010161595b565b5090979650505050505050565b5f81518060208401855e5f93019283525090919050565b5f614fff8284615986565b5f602082840312156159b8575f5ffd5b81518015158114614fff575f5ffd5b5f602082840312156159d7575f5ffd5b813563ffffffff81168114614fff575f5ffd5b5f8235609e198336030181126159fe575f5ffd5b9190910192915050565b60405160a0810167ffffffffffffffff81118282101715615a2b57615a2b6158f0565b60405290565b5f82601f830112615a40575f5ffd5b813567ffffffffffffffff811115615a5a57615a5a6158f0565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715615a8957615a896158f0565b604052818152838201602001851015615aa0575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60a08236031215615acc575f5ffd5b615ad4615a08565b82358152602083013567ffffffffffffffff811115615af1575f5ffd5b615afd36828601615a31565b602083015250604083013567ffffffffffffffff811115615b1c575f5ffd5b615b2836828601615a31565b60408301525060608381013590820152608092830135928101929092525090565b858152846020820152836040820152608060608201525f615b6e608083018486615904565b979650505050505050565b5f5f8335601e19843603018112615b8e575f5ffd5b83018035915067ffffffffffffffff821115615ba8575f5ffd5b6020019150600681901b3603821315615310575f5ffd5b5f5f8335601e19843603018112615bd4575f5ffd5b830160208101925035905067ffffffffffffffff811115615bf3575f5ffd5b8060061b3603821315615310575f5ffd5b8183526020830192505f815f5b84811015615c4b578135615c2481615282565b6001600160a01b031686526020828101359087015260409586019590910190600101615c11565b5093949350505050565b8183526020830192505f815f5b84811015615c4b57615c7c86615c778461523f565b615796565b6020828101359087015260409586019590910190600101615c62565b604080825283358282015260208401356060808401919091529084013560808301525f90615cc7908501615296565b6001600160a01b03811660a084015250608084013560c08381019190915260a085013560e0840152615cfb90850185615bbf565b610160610100850152615d136101a085018284615c04565b915050615d2360e0860186615bbf565b848303603f1901610120860152615d3b838284615c55565b92505050615d4d610100860186615bbf565b848303603f1901610140860152615d65838284615c55565b92505050615d766101208601615296565b6001600160a01b0316610160840152615d926101408601615296565b6001600160a01b031661018084015260209092019290925292915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f615de16017830185615986565b7f206973206d697373696e6720726f6c65200000000000000000000000000000008152615e116011820185615986565b95945050505050565b5f82615e3457634e487b7160e01b5f52601260045260245ffd5b500690565b6001815b6001841115615e7457808504811115615e5857615e586157c4565b6001841615615e6657908102905b60019390931c928002615e3d565b935093915050565b5f82615e8a575060016111a7565b81615e9657505f6111a7565b8160018114615eac5760028114615eb657615ed2565b60019150506111a7565b60ff841115615ec757615ec76157c4565b50506001821b6111a7565b5060208310610133831016604e8410600b8410161715615ef5575081810a6111a7565b615f015f198484615e39565b805f1904821115615f1457615f146157c4565b029392505050565b5f614fff8383615e7c565b8581528460208201528360408201525f615b6e615f476060840186615986565b84615986565b5f81615f5b57615f5b6157c4565b505f19019056fea2646970667358221220f32d731e98cfbca6f33633ed57af28e9e2ff4026cefb27e387d00bf3696f5a6364736f6c63430008210033
Deployed Bytecode
0x608060405260043610610574575f3560e01c806373bd07b7116102cf578063ac1eff681161017b578063c1dc0f07116100dc578063d547741f11610092578063e196fb5d1161006d578063e196fb5d146110a4578063e66c2a93146110c3578063f5b541a6146110e2575f5ffd5b8063d547741f1461103d578063d722bbfc1461105c578063d9fe8bdd1461108f575f5ffd5b8063c7c33a26116100c2578063c7c33a2614610fd5578063cc6f725114610ff4578063cd9b9e9a14611027575f5ffd5b8063c1dc0f0714610fa1578063c211697414610fb6575f5ffd5b8063b9174ba311610131578063bc61e73311610117578063bc61e73314610f3a578063bf3e750514610f59578063c0729ab114610f8c575f5ffd5b8063b9174ba314610ed4578063b9fe5cf714610f07575f5ffd5b8063aea4f74511610161578063aea4f74514610ea3578063b60d428814610eb7578063b837dbe914610ebf575f5ffd5b8063ac1eff6814610e59578063ad422ff014610e8e575f5ffd5b8063921b278e1161023057806399467a35116101e65780639f3ce55a116101c15780639f3ce55a14610e00578063a217fddf14610e13578063a505925f14610e26575f5ffd5b806399467a3514610d8f5780639ac25d0814610dae5780639ee8b21114610de1575f5ffd5b806395ba81fa1161021657806395ba81fa14610d4557806396e6e4b314610d64578063986fcddd14610bde575f5ffd5b8063921b278e14610cfc578063923fe89414610d12575f5ffd5b806380b7af18116102855780638de494871161026b5780638de4948714610c59578063914e57eb14610c8c57806391d1485414610cb8575f5ffd5b806380b7af1814610bf15780638be745d114610c2d575f5ffd5b806376df1ecc116102b557806376df1ecc14610b9757806378ea198a14610bab5780637d1e8c5514610bde575f5ffd5b806373bd07b714610b6457806374ce962c14610b78575f5ffd5b80633fc08b651161042e5780635c721a0c1161038f57806367e404ce116103455780636b783172116103205780636b78317214610adf5780636e67384314610afe5780637174c55914610b31575f5ffd5b806367e404ce14610a7a578063695378f514610a965780636a906b8014610aac575f5ffd5b806360e83cf31161037557806360e83cf3146109fc5780636321315514610a285780636463fb2a14610a5b575f5ffd5b80635c721a0c146109d15780635ec775b0146106a0575f5ffd5b806352abf32d116103e45780635603c65f116103ca5780635603c65f1461099d57806358794456146109bc5780635b7eb4bd146108c8575f5ffd5b806352abf32d1461095f578063557eac731461097e575f5ffd5b8063491e093611610414578063491e0936146108ee5780634bb974131461090d5780635230eef21461092c575f5ffd5b80633fc08b651461089d57806348922ab7146108c8575f5ffd5b80632c70645c116104d857806338b903331161048e5780633b12eccb116104745780633b12eccb1461082b5780633c0f20fc1461085e5780633e9ebfc21461087e575f5ffd5b806338b90333146107db5780633a4c25551461080c575f5ffd5b80632fe35274116104be5780632fe3527414610770578063335f2e381461079d57806336568abe146107bc575f5ffd5b80632c70645c1461073b5780632f2ff15d14610751575f5ffd5b80632130d8121161052d578063248a9ca311610513578063248a9ca3146106b657806328958174146106e45780632acc8df914610703575f5ffd5b80632130d8121461067457806321b4deee146106a0575f5ffd5b8063085b1c6f1161055d578063085b1c6f146105ed5780631065a39914610620578063198330f814610641575f5ffd5b806301ffc9a71461057857806303134d1d146105ac575b5f5ffd5b348015610583575f5ffd5b50610597610592366004615200565b611115565b60405190151581526020015b60405180910390f35b3480156105b7575f5ffd5b506105df7f1ab87f7458c0e3d07e9881c14ee67f0141703614fd48ea5b15ed987e5f4b030e81565b6040519081526020016105a3565b3480156105f8575f5ffd5b506105df7f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db34725881565b34801561062b575f5ffd5b5061063f61063a366004615252565b6111ad565b005b34801561064c575f5ffd5b506105df7f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be81565b34801561067f575f5ffd5b506105df61068e36600461526b565b5f9081526101be602052604090205490565b3480156106ab575f5ffd5b506105df6202a30081565b3480156106c1575f5ffd5b506105df6106d036600461526b565b5f9081526065602052604090206001015490565b3480156106ef575f5ffd5b5061063f6106fe36600461526b565b611399565b34801561070e575f5ffd5b506101c054610723906001600160a01b031681565b6040516001600160a01b0390911681526020016105a3565b348015610746575f5ffd5b506105df6101835481565b34801561075c575f5ffd5b5061063f61076b3660046152a1565b611434565b34801561077b575f5ffd5b50740100000000000000000000000000000000000000005f5c0460ff16610597565b3480156107a8575f5ffd5b5061063f6107b7366004615317565b61145d565b3480156107c7575f5ffd5b5061063f6107d63660046152a1565b611643565b3480156107e6575f5ffd5b506040805180820182526003815262372e3160e81b602082015290516105a391906153b6565b348015610817575f5ffd5b5061063f6108263660046153eb565b611651565b348015610836575f5ffd5b506105df7fb6cc65f42901ed602aec1619cc1ead29d487cd489094a37615153eaeb991d77081565b348015610869575f5ffd5b506101c154610723906001600160a01b031681565b348015610889575f5ffd5b5061063f610898366004615414565b61179d565b3480156108a8575f5ffd5b506105df6108b736600461526b565b60a56020525f908152604090205481565b3480156108d3575f5ffd5b506108dc600181565b60405160ff90911681526020016105a3565b3480156108f9575f5ffd5b5061063f61090836600461547a565b6118ca565b348015610918575f5ffd5b5061063f6109273660046152a1565b611b7f565b348015610937575f5ffd5b506105df7f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf981565b34801561096a575f5ffd5b5061063f610979366004615414565b611ccf565b348015610989575f5ffd5b5061063f61099836600461526b565b611dfc565b3480156109a8575f5ffd5b5061063f6109b736600461550a565b611ec6565b3480156109c7575f5ffd5b506105df60995481565b3480156109dc575f5ffd5b506105df6109eb36600461526b565b60a66020525f908152604090205481565b348015610a07575f5ffd5b506105df610a1636600461526b565b6101506020525f908152604090205481565b348015610a33575f5ffd5b506105df7fe37c272ea30e2bb381ad7cf89ae754b49153250609f36d0cbdad8b64c184bb5c81565b348015610a66575f5ffd5b5061063f610a75366004615593565b61205f565b348015610a85575f5ffd5b505f5c6001600160a01b0316610723565b348015610aa1575f5ffd5b506105df6101195481565b348015610ab7575f5ffd5b506105df7fd8b4c34c2ec1f3194471108c64ad2beda340c0337ee4ca35592f9ef270f4228b81565b348015610aea575f5ffd5b5061063f610af93660046155cd565b612213565b348015610b09575f5ffd5b506105df7f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c81565b348015610b3c575f5ffd5b506105df7f4b4665d8754e6ea0608430ef3e91c1b45c72aafe8800e289cd35f38d8536185881565b348015610b6f575f5ffd5b506108dc600281565b348015610b83575f5ffd5b5061063f610b92366004615611565b612491565b348015610ba2575f5ffd5b5061063f6124c4565b348015610bb6575f5ffd5b506105df7f4df33217c89b6f12af38ba46035cb312b5e88de78d22279286830fe079b642cd81565b348015610be9575f5ffd5b506108dc5f81565b348015610bfc575f5ffd5b507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316610723565b348015610c38575f5ffd5b506105df610c4736600461526b565b61011a6020525f908152604090205481565b348015610c64575f5ffd5b506105df7fe1fce82838dd7a42cfe783f60dc6233c8aa2c4fc66e77817805e767ec5e349b681565b348015610c97575f5ffd5b506105df610ca636600461526b565b61014e6020525f908152604090205481565b348015610cc3575f5ffd5b50610597610cd23660046152a1565b5f9182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610d07575f5ffd5b506105df6101bf5481565b348015610d1d575f5ffd5b506105df7fcc10d6eec3c757d645e27b3f3001a3ba52f692da0bce25fabf58c6ecaf37645081565b348015610d50575f5ffd5b5061063f610d5f366004615252565b61251d565b348015610d6f575f5ffd5b506105df610d7e366004615252565b60de6020525f908152604090205481565b348015610d9a575f5ffd5b5061063f610da936600461562c565b6126b0565b348015610db9575f5ffd5b506105df7f56bdc3c9ec86cb7db110a7699b2ade72f0b8819727d9f7d906b012641505fa7781565b348015610dec575f5ffd5b50610597610dfb36600461526b565b6126f9565b61063f610e0e3660046156a9565b61271c565b348015610e1e575f5ffd5b506105df5f81565b348015610e31575f5ffd5b506105df7f21aba2dd4535739d4ca4cddb3c024036bfcc88cfce067cb0847e7ad0f9cfaa5581565b348015610e64575f5ffd5b50610723610e7336600461526b565b61011b6020525f90815260409020546001600160a01b031681565b348015610e99575f5ffd5b506105df60985481565b348015610eae575f5ffd5b5061063f61273a565b61063f612795565b348015610eca575f5ffd5b506105df60e45481565b348015610edf575f5ffd5b506105df7f430a7f0cb00b5ebbe63cecc96e82cf959a883e7c13a95110854f1fa6b3fbf59881565b348015610f12575f5ffd5b506105df7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a3211881565b348015610f45575f5ffd5b50610597610f54366004615252565b612803565b348015610f64575f5ffd5b506105df7f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d8281565b348015610f97575f5ffd5b506105df609a5481565b348015610fac575f5ffd5b506105df60975481565b348015610fc1575f5ffd5b5061063f610fd0366004615701565b612827565b348015610fe0575f5ffd5b5061063f610fef36600461571d565b6128fc565b348015610fff575f5ffd5b506105df7fe8cb6172fcf5cbaae022b7c910224a4f0c20d53227e630056efff182155a5abc81565b348015611032575f5ffd5b506105df6101bd5481565b348015611048575f5ffd5b5061063f6110573660046152a1565b612aa9565b348015611067575f5ffd5b506105df7f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a81565b34801561109a575f5ffd5b506105df60dd5481565b3480156110af575f5ffd5b5061063f6110be366004615252565b612acd565b3480156110ce575f5ffd5b5061063f6110dd36600461526b565b612dbb565b3480156110ed575f5ffd5b506105df7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806111a757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b805f81600d8111156111c1576111c1615782565b036111df576040516385994c7760e01b815260040160405180910390fd5b60dc5f83600d8111156111f4576111f4615782565b600d81111561120557611205615782565b81526020019081526020015f205461121c81612e6f565b61122583612803565b61124d5782604051630619659560e21b815260040161124491906157b6565b60405180910390fd5b5f1960de5f85600d81111561126457611264615782565b600d81111561127557611275615782565b81526020019081526020015f20541480156112be5750335f9081527f74a8627e7e8109f70747bbdf2c891159d40f925b9c8f09259a497b8c31b3780b602052604090205460ff16155b156112f757826040517f8eee14d400000000000000000000000000000000000000000000000000000000815260040161124491906157b6565b60de5f84600d81111561130c5761130c615782565b600d81111561131d5761131d615782565b81526020019081526020015f205f905582600d81111561133f5761133f615782565b60da8054600190921b19909116905582600d81111561136057611360615782565b6040513381527fd071d2b85dec4489435b541d2f0e2570db09b09db9efd8703948d44a433df65a906020015b60405180910390a2505050565b7f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a6113c381612e6f565b5f82815261011b602090815260408083205490516001600160a01b0390911681523392859290917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080546001600160a01b0319169055565b5f8281526065602052604090206001015461144e81612e6f565b6114588383612e7c565b505050565b5f54600890610100900460ff1615801561147d57505f5460ff8083169116105b6114ef5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611244565b5f805461ffff191660ff8316176101001790555f197f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c01611538576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d61156885858585612f1c565b6115728787613197565b6101c180546001600160a01b0319163017905560405162372e3160e81b907f372e300000000000000000000000000000000000000000000000000000000000907f2f8492a7a430cf917798dfb60bc5af634f68e6c40287947df0ea6f7ec0669bd8905f90a35f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d5f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050505050565b61164d8282613305565b5050565b61165e62f099c0826157d8565b421015611697576040517f4306cbb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805184815260208101849052908101829052606090206101bf54146116f6576101bf5460408051858152602081018590529081018390526060902060405163bc5aad1160e01b815260048101929092526024820152604401611244565b6101c0546001600160a01b03165f8181527fbdd154b7c599a43e8b8410b62e84571cd69a79e95c9fc5b630a687cb7c97edf9602052604090205460ff16611797576117617f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92982612e7c565b6040516001600160a01b0382169033907f6cfaf6b76ea493a8e88b6b95f7b34cdaae196c4ed737b32e72c5d9e8d0a18518905f90a35b50505050565b815f81600d8111156117b1576117b1615782565b036117cf576040516385994c7760e01b815260040160405180910390fd5b7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a321186117f981612e6f565b5f60db5f86600d81111561180f5761180f615782565b600d81111561182057611820615782565b81526020019081526020015f2054905083810361185057604051631b807f5560e01b815260040160405180910390fd5b8360db5f87600d81111561186657611866615782565b600d81111561187757611877615782565b815260208101919091526040015f2055808486600d81111561189b5761189b615782565b6040517f074bfc3728ef1e98bde10bcb5bd8cde59cff190c2bfda5d22f879f865a07bac5905f90a45050505050565b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c03611900576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d85878484875f5a90506119376003613358565b8d5f805c6001600160a01b0319166001600160a01b03831617905d505f6119638f8f8f8f8c8f8f6133b8565b905061196e81613411565b61198061197b8d8f6157d8565b61346b565b5f5f8f6001600160a01b03168e8d8d60405161199d9291906157eb565b5f6040518083038185875af1925050503d805f81146119d7576040519150601f19603f3d011682016040523d82523d5f602084013e6119dc565b606091505b509150915081611a20578051156119f65780518082602001fd5b8f604051635461344360e01b815260040161124491906001600160a01b0391909116815260200190565b5f6001600160a01b0319815c16815d5060405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2505086159050611b4c57855f849003611adb57853b158015611ad9573a5a611a8461bc7c866157d8565b611a8e91906157fa565b611a98919061580d565b915081881115611ad5576001600160a01b0387166108fc611ab9848b6157fa565b6040518115909202915f818181858888f1935050505050611ad9565b8791505b505b5f6001600160a01b03841615611af15783611af3565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f19350505050905080611b485760405163295f137d60e21b81526001600160a01b0383166004820152602401611244565b5050505b5050505050505f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d5050505050505050565b6002611b8a81613358565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03163314611bed576040517fa1cfbf5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611c14576040516342bcdf7f60e11b815260040160405180910390fd5b60e480545f9182611c2483615824565b9091555060408051308152602081018690525f918101829052606081018790526080810183905260c060a08201819052810182905260e0902091925050611c6b82826134e1565b604080515f80825260208201889052818301859052608060608301819052820152905182916001600160a01b0387169133917fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c919081900360a00190a45050505050565b815f81600d811115611ce357611ce3615782565b03611d01576040516385994c7760e01b815260040160405180910390fd5b7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a32118611d2b81612e6f565b5f60dc5f86600d811115611d4157611d41615782565b600d811115611d5257611d52615782565b81526020019081526020015f20549050838103611d8257604051631b807f5560e01b815260040160405180910390fd5b8360dc5f87600d811115611d9857611d98615782565b600d811115611da957611da9615782565b815260208101919091526040015f2055808486600d811115611dcd57611dcd615782565b6040517ff8ef9f1cde7c2c0d3aeb696678f76d7c1c3e13c3b79ea3c5160a2d9eaa821cfd905f90a45050505050565b7f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d82611e2681612e6f565b5f5f5f426099541015611e4b57609754611e4090426157d8565b609955506001611e5d565b609a54851015611e5d57849250600191505b60988590558080611e6b5750815b15611e7657609a8390555b6040805186815283151560208201528215159181019190915233907fbc3dc0cb5c15c51c81316450d44048838bb478b9809447d01c766a06f3e9f2c8906060015b60405180910390a25050505050565b6006611ed181613358565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929611efb81612e6f565b5f859003611f35576040517f7907d79b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610119545f81815261011a6020526040902054843514611f81576040517fead4c30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101bd545f86815261011b60205260409020546001600160a01b031680611fd4576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205461204c8784611fe68a8861353e565b87866001600160a01b031663b02384ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612023573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612047919061583c565b61383d565b828b8b6138d1565b505050505050505050565b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c03612095576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d60a081018035906120cd9060808401615611565b6120db610120840184615853565b6120ec610100860160e08701615611565b5f5a90506120f987613ac8565b85156121e757855f84900361217657853b158015612174573a5a61211f61bc7c866157d8565b61212991906157fa565b612133919061580d565b915081881115612170576001600160a01b0387166108fc612154848b6157fa565b6040518115909202915f818181858888f1935050505050612174565b8791505b505b5f6001600160a01b0384161561218c578361218e565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f193505050509050806121e35760405163295f137d60e21b81526001600160a01b0383166004820152602401611244565b5050505b5050505050505f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d50565b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45c03612249576337ed32e85f526004601cfd5b60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d478260c00135116122aa576040517f62d5cfe000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6122ba60a0830160808401615611565b6001600160a01b0316336001600160a01b031614612304576040517f0a5c9f3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61230e83613d47565b905060017fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff5f805c919091167401000000000000000000000000000000000000000017905d507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316633e4903b78360c086013561239a60a0880160808901615611565b60405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b039384166004820152602481019290925290911660448201526064015f604051808303815f87803b158015612400575f5ffd5b505af1158015612412573d5f5f3e3d5ffd5b505f92505050805c7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815d5060405181907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2505f7f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade45d5050565b7f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be6124bb81612e6f565b61164d82613e0d565b7f1453a531db80c85f2d944d498709d84959bc5bf839eefe9acb784571e5a321186124ee81612e6f565b4260dd556040517f201956ebe50475cb4c4f2d1e8375cfcc9c1700ad498e0c8053da490688172787905f90a150565b805f81600d81111561253157612531615782565b0361254f576040516385994c7760e01b815260040160405180910390fd5b61255882612803565b6125775781604051630619659560e21b815260040161124491906157b6565b60de5f83600d81111561258c5761258c615782565b600d81111561259d5761259d615782565b81526020019081526020015f205442101561261b5760de5f83600d8111156125c7576125c7615782565b600d8111156125d8576125d8615782565b81526020019081526020015f20546040517fcfd8aa6f00000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b60de5f83600d81111561263057612630615782565b600d81111561264157612641615782565b81526020019081526020015f205f905581600d81111561266357612663615782565b60da8054600190921b19909116905581600d81111561268457612684615782565b6040517f3ddaeb19197ed3b5334f4c1cd5716f663d0f6dce30c52800bd1674da0b88e87a905f90a25050565b600d6126bb81613358565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9296126e581612e6f565b6126f186868686613ebc565b505050505050565b600881901c5f90815261014f6020526040812054600160ff84161b1615156111a7565b600261272781613358565b6127338585858561408f565b5050505050565b7f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf961276481612e6f565b5f609a81905560405133917fba88c025b0cbb77022c0c487beef24f759f1e4be2f51a205bc427cee19c2eaa691a250565b345f036127ce576040517f717e6b7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040513481527fe455499c2acd509bdadebaf5a8fd54c083da31dbe98e785f2a72cdff04e32e009060200160405180910390a1565b5f81600d81111561281657612816615782565b60da54600190911b16151592915050565b7f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c61285181612e6f565b6001600160a01b038316612878576040516342bcdf7f60e11b815260040160405180910390fd5b5f82815261011b60209081526040918290205491516001600160a01b03928316815233928592908716917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b5f806129095f5460ff1690565b60ff161461295c578061291d5f5460ff1690565b6040517fdfb65d2600000000000000000000000000000000000000000000000000000000815260ff928316600482015291166024820152604401611244565b5f54600890610100900460ff1615801561297c57505f5460ff8083169116105b6129ee5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611244565b5f805461ffff191660ff831617610100178155612a31818088358180604080519586526020860194909452928401919091526060830152608082015260a0902090565b5f8181526101be60205260409020600190559050612a4f868261418c565b612a58856143d8565b612a61846144b5565b505f805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b5f82815260656020526040902060010154612ac381612e6f565b6114588383614528565b805f81600d811115612ae157612ae1615782565b03612aff576040516385994c7760e01b815260040160405180910390fd5b60db5f83600d811115612b1457612b14615782565b600d811115612b2557612b25615782565b81526020019081526020015f2054612b3c81612e6f565b335f9081527f74a8627e7e8109f70747bbdf2c891159d40f925b9c8f09259a497b8c31b3780b602052604090205460ff16612b7684612803565b8015612b80575080155b80612bbe57505f1960de5f86600d811115612b9d57612b9d615782565b600d811115612bae57612bae615782565b81526020019081526020015f2054145b15612bde5783604051631814e36b60e31b815260040161124491906157b6565b8015612c87575f1960de5f86600d811115612bfb57612bfb615782565b600d811115612c0c57612c0c615782565b815260208101919091526040015f205583600d811115612c2e57612c2e615782565b60da8054600190921b909117905583600d811115612c4e57612c4e615782565b6040805133815290517f36287ed6be33e8d1abe33ad8d38ab23b67a5126b7140660a8a25920bdc30a1999181900360200190a250505050565b60dd54428111612cdb57426202a300018060de5f88600d811115612cad57612cad615782565b600d811115612cbe57612cbe615782565b815260208101919091526040015f20556202a3000160dd55612d59565b6202a30042820311612d1c576040517fc04205ee00000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b6202a300810360de5f87600d811115612d3757612d37615782565b600d811115612d4857612d48615782565b815260208101919091526040015f20555b84600d811115612d6b57612d6b615782565b60da8054600190921b909117905584600d811115612d8b57612d8b615782565b6040513381527f534f879afd40abb4e39f8e1b77a316be4c8e3521d9cf5a3a3db8959d574d455990602001611eb7565b6009612dc681613358565b7f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db347258612df081612e6f565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03166001600160a01b0316637ab19c10846040518263ffffffff1660e01b81526004015f604051808303818588803b158015612e53575f5ffd5b505af1158015612e65573d5f5f3e3d5ffd5b5050505050505050565b612e7981336145a9565b50565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff1661164d575f8281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055612ed83390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b5f54610100900460ff16612f865760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b5f5b8381101561308e57848482818110612fa257612fa2615896565b9050604002016020013560db5f878785818110612fc157612fc1615896565b612fd79260206040909202019081019150615252565b600d811115612fe857612fe8615782565b600d811115612ff957612ff9615782565b815260208101919091526040015f205584848281811061301b5761301b615896565b9050604002016020013585858381811061303757613037615896565b61304d9260206040909202019081019150615252565b600d81111561305e5761305e615782565b6040517f33aa8fd1ce49e1761bc8d27fd53414bfefc45d690feed0ce55019d7d3aec6091905f90a3600101612f88565b505f5b81811015612733578282828181106130ab576130ab615896565b9050604002016020013560dc5f8585858181106130ca576130ca615896565b6130e09260206040909202019081019150615252565b600d8111156130f1576130f1615782565b600d81111561310257613102615782565b815260208101919091526040015f205582828281811061312457613124615896565b9050604002016020013583838381811061314057613140615896565b6131569260206040909202019081019150615252565b600d81111561316757613167615782565b6040517fe7bf4b8dc0c17a52dc9e52323a3ab61cb2079db35f969125b1f8a3d984c6f6c2905f90a3600101613091565b5f54610100900460ff166132015760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b5f5b81811015611458575f83838381811061321e5761321e615896565b6132349260206040909202019081019150615611565b6001600160a01b03160361325b576040516342bcdf7f60e11b815260040160405180910390fd5b82828281811061326d5761326d615896565b905060400201602001355f5f1b036132b1576040517f0742d05300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132fd8383838181106132c6576132c6615896565b905060400201602001358484848181106132e2576132e2615896565b6132f89260206040909202019081019150615611565b612e7c565b600101613203565b6101c0546001600160a01b039081169082160361334e576040517f9395197f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61164d828261461d565b60da5481600d81111561336d5761336d615782565b6001901b8116156133935781604051631814e36b60e31b815260040161124491906157b6565b600281161561164d576001604051631814e36b60e31b815260040161124491906157b6565b5f60405188815287602082015286604082015285606082015284608082015260c060a08201528260c0820152602083065f81156133f6578160200390505b848660e085013790930160e001902098975050505050505050565b5f81815260a6602052604090205460011461345b576040517f992d87c300000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b5f90815260a66020526040812055565b8015612e79574260995410156134905760975461348890426157d8565b6099556134a0565b609a5461349d90826157d8565b90505b6098548111156134dc576040517fa74c1c5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609a55565b5f1982015f90815261014e60208181526040808420548452848252808420868552929091528083208290555190918391839186917fea3b023b4c8680d4b4824f0143132c95476359a2bb70a81d6c5a36f6918f63399190a4505050565b5f6135538361018001358461014001356146a5565b6101bf54604080516101608601358152610120860135602082015260e08601359181019190915260609020146135d057604080516101608501358152610120850135602082015260e085013591810191909152606090206101bf5460405163bc5aad1160e01b815260048101929092526024820152604401611244565b428361010001351061361b576040517fbf81c6e00000000000000000000000000000000000000000000000000000000081526101008401356004820152426024820152604401611244565b6080830135613656576040517f2898482a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61369960408401356060850135608086013560a087013560c0880135604080519586526020860194909452928401919091526060830152608082015260a0902090565b6101c1546040517f2130d812000000000000000000000000000000000000000000000000000000008152600481018390529192506001600160a01b031690632130d81290602401602060405180830381865afa1580156136fb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061371f919061583c565b5f0361375a576040517fd35bb1d100000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b61377661376b6101c08501856158aa565b856101a00135614772565b61378d6137876101e0850185615853565b84614878565b6020808401355f81815261011a909252604090912060808501359055610119556101bd8190556137e2610180840135610140850135610100860135604080519384526020840192909252908201526060902090565b6101bf558060208401356137f584615824565b60408051873581526080880135602082015291955085917fa0262dc79e4ccb71ceac8574ae906311ae338aa4a2044fd4ec4b99fad5ab60cb910160405180910390a492915050565b5f604051858152846020820152604060e088016040830137836080820152602080880160a083013760a0610120880160c083013761018081016101c0880135880180356020810260208301843760200290912061016083015250610180810192909252506101a090207f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019006949350505050565b6040805160018082528183019092525f916020808301908036833701905050905084815f8151811061390557613905615896565b6020026020010181815250505f5f856001600160a01b03168585856040516024016139329392919061592c565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7e4f7a8a0000000000000000000000000000000000000000000000000000000017905251613995919061599d565b5f604051808303815f865af19150503d805f81146139ce576040519150601f19603f3d011682016040523d82523d5f602084013e6139d3565b606091505b509150915081613a7a57805115613a1857602081017bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81511663ca389c4460e01b178152815181fd5b6040517fca389c4400000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f556e6b6e6f776e000000000000000000000000000000000000000000000000006044820152606401611244565b5f81806020019051810190613a8f91906159a8565b905080612e65576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613ad26003613358565b6101008101355f908152610150602052604081205490819003613b0857604051634e68667560e01b815260040160405180910390fd5b613b1282806158aa565b90508114613b615780613b2583806158aa565b6040517f5e3fd6ad0000000000000000000000000000000000000000000000000000000081526004810193909352602483015250604401611244565b613b6e8260200135614905565b613b8361197b60c084013560a08501356157d8565b5f613bc9613b976080850160608601615611565b613ba760a0860160808701615611565b60a086013560c08701356020880135613bc46101208a018a615853565b6133b8565b9050613bf481613bd985806158aa565b613be960608801604089016159c7565b87610100013561497d565b613c115760405163582f497d60e11b815260040160405180910390fd5b613c216080840160608501615611565b5f805c6001600160a01b0319166001600160a01b03831617905d505f80613c4e60a0860160808701615611565b6001600160a01b031660c0860135613c6a610120880188615853565b604051613c789291906157eb565b5f6040518083038185875af1925050503d805f8114613cb2576040519150601f19603f3d011682016040523d82523d5f602084013e613cb7565b606091505b509150915081613d0657805115613cd15780518082602001fd5b613ce160a0860160808701615611565b604051635461344360e01b81526001600160a01b039091166004820152602401611244565b5f6001600160a01b0319815c16815d5060405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a25050505050565b5f613d526003613358565b6101008201355f908152610150602052604081205490819003613d8857604051634e68667560e01b815260040160405180910390fd5b613d9283806158aa565b90508114613da55780613b2584806158aa565b613db28360200135614905565b613dc761197b60c085013560a08601356157d8565b613dda613b976080850160608601615611565b9150613dea82613bd985806158aa565b613e075760405163582f497d60e11b815260040160405180910390fd5b50919050565b613e1681614a8a565b7feb44f28f73dc4d72ac2ee43ebf59a1e0c84c11c4d614746c0dc99d9071abd8f97f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0054604080516001600160a01b03928316815291841660208301520160405180910390a17f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0080546001600160a01b0319166001600160a01b0392909216919091179055565b5f839003613ef6576040517fb1504a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b824915613f32576040517f8019aff700000000000000000000000000000000000000000000000000000000815260048101849052602401611244565b5f5f613f636040518060a001604052805f815260200160608152602001606081526020015f81526020015f81525090565b845f5b8781101561403c57888882818110613f8057613f80615896565b9050602002810190613f9291906159ea565b613f9b90615abc565b81499450925083613fdb576040517fc0e41e1d00000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b60808301515f818152602086905260409020955061400985875f1c865f015187602001518860400151614ab1565b6060848101518551604080519687526020870194909452928501528301869052608083015260a090912090600101613f66565b5061404c86868460600151614c53565b808514612e65576040517fd3664fb30000000000000000000000000000000000000000000000000000000081526004810186905260248101829052604401611244565b6001600160a01b0384166140b6576040516342bcdf7f60e11b815260040160405180910390fd5b348311156140f0576040517fb03b693200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e480545f918261410083615824565b9091555090505f61411185346157fa565b90505f61412333888885878a8a6133b8565b905061412f83826134e1565b80876001600160a01b0316336001600160a01b03167fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c8986888b8b60405161417b959493929190615b49565b60405180910390a450505050505050565b5f54610100900460ff166141f65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b5f6142076080840160608501615611565b6001600160a01b03160361422e576040516342bcdf7f60e11b815260040160405180910390fd5b61425161423e60e0840184615b79565b61424c610100860186615b79565b612f1c565b61426382608001358360a00135614d35565b5f61427661014084016101208501615611565b6001600160a01b03160361429d576040516342bcdf7f60e11b815260040160405180910390fd5b6142b35f6132f861014085016101208601615611565b6142c86142c360c0840184615b79565b613197565b6142d86080830160608401615611565b7f033d11f27e62ab919708ec716731da80d261a6e4253259b7acde9bf89d28ec1880546001600160a01b0319166001600160a01b03929092169190911790556020828101356101198190555f90815261011a82526040808220853590556101bd8490558051828152928301919091528084013590820152606090206101bf555f61436a61016084016101408501615611565b90506001600160a01b03811661437d5750305b6101c180546001600160a01b0319166001600160a01b0383161790556040517fd13bc76982f23a7cdc6e2a712d924401ed41a9e4c6ee26b10ae22f0ff3e267c5906143cb9085908590615c98565b60405180910390a1505050565b5f54610100900460ff166144425760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b6001600160a01b038116614469576040516342bcdf7f60e11b815260040160405180910390fd5b6101c080546001600160a01b0319166001600160a01b03831690811790915560405133907fb341a9e6d33f272cb7b5a20b337763606cbb6c728e7a34cbd3191cdfa0f0cd07905f90a350565b5f54610100900460ff1661451f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b612e7981613e0d565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff161561164d575f8281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff1661164d576145db81614dca565b6145e6836020614ddc565b6040516020016145f7929190615db0565b60408051601f198184030181529082905262461bcd60e51b8252611244916004016153b6565b6001600160a01b038116331461469b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401611244565b61164d8282614528565b815f036146e757801561164d576040517f0c25659200000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b80614721576040517f5228f4c800000000000000000000000000000000000000000000000000000000815260048101839052602401611244565b5f82815261014e6020526040902054811461164d576040517f36459fa00000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611244565b5f5b82811015611797576101505f85858481811061479257614792615896565b9050602002013581526020019081526020015f20545f146147fb578383828181106147bf576147bf615896565b905060200201356040517fe5d1442500000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b816101505f86868581811061481257614812615896565b9050602002013581526020019081526020015f20819055508184848381811061483d5761483d615896565b905060200201357f300e6f978eee6a4b0bba78dd8400dc64fd5652dbfc868a2258e16d0977be222b60405160405180910390a3600101614774565b614883600283615e1a565b156148bd576040517f0c91d77600000000000000000000000000000000000000000000000000000000815260048101839052602401611244565b5f5f5b83811015612733576040518582013560f01c9250838301907f3c116827db9db3a30c1a25db8b0ee4bab9d2b223560209cfd839601b621c726d905f90a26002016148c0565b600881901c5f90815261014f6020526040902054600160ff83161b161561495b576040517f335a4a9000000000000000000000000000000000000000000000000000000000815260048101829052602401611244565b600881901c5f90815261014f602052604090208054600160ff84161b17905550565b5f8061499e600161498f876002615f1c565b61499991906157fa565b615006565b90508063ffffffff168463ffffffff1611156149f6576040517ff7ec909700000000000000000000000000000000000000000000000000000000815263ffffffff808616600483015282166024820152604401611244565b865f5b86811015614a7c57600163ffffffff8716821c81169003614a4657614a3f888883818110614a2957614a29615896565b90506020020135835f9182526020526040902090565b9150614a74565b614a7182898984818110614a5c57614a5c615896565b905060200201355f9182526020526040902090565b91505b6001016149f9565b509092149695505050505050565b6001600160a01b038116612e79576040516342bcdf7f60e11b815260040160405180910390fd5b7f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001840693505f5f600a6001600160a01b03168787878787604051602001614afc959493929190615f27565b60408051601f1981840301815290829052614b169161599d565b5f60405180830381855afa9150503d805f8114614b4e576040519150601f19603f3d011682016040523d82523d5f602084013e614b53565b606091505b509150915081614b8f576040517fa71194af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040815114614bd7578051604080517ff75db3810000000000000000000000000000000000000000000000000000000081526112449290600401918252602082015260400190565b6020810151604082015161100082141580614c1257507f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018114155b15612054576040517f68dcad5f0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611244565b5f8381526101be60205260409020548390614c9d576040517fc77b964c00000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b505f8281526101be6020526040902054829015614ce9576040517fe69adeca00000000000000000000000000000000000000000000000000000000815260040161124491815260200190565b505f8281526101be602090815260409182902060019055815185815290810183905283917f55f4c645c36aa5cd3f443d6be44d7a7a5df9d2100d7139dfc69d4289ee072319910161138c565b5f54610100900460ff16614d9f5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b614da7615053565b614daf615053565b614db7615053565b614dc182826150bf565b5050600160e455565b60606111a76001600160a01b03831660145b60605f614dea83600261580d565b614df59060026157d8565b67ffffffffffffffff811115614e0d57614e0d6158f0565b6040519080825280601f01601f191660200182016040528015614e37576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110614e6d57614e6d615896565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110614ecf57614ecf615896565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f614f0984600261580d565b614f149060016157d8565b90505b6001811115614fb0577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110614f5557614f55615896565b1a60f81b828281518110614f6b57614f6b615896565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060049490941c93614fa981615f4d565b9050614f17565b508315614fff5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611244565b9392505050565b5f63ffffffff82111561504f576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526020600482015260248101839052604401611244565b5090565b5f54610100900460ff166150bd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b565b5f54610100900460ff166151295760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401611244565b815f03615162576040517fb5ed5a3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f0361519b576040517fd10d72bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609782905560988190556151af82426157d8565b60998190556097546098546040805192835260208301919091528101919091527f8f805c372b66240792580418b7328c0c554ae235f0932475c51b026887fe26a99060600160405180910390a15050565b5f60208284031215615210575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114614fff575f5ffd5b8035600e811061524d575f5ffd5b919050565b5f60208284031215615262575f5ffd5b614fff8261523f565b5f6020828403121561527b575f5ffd5b5035919050565b6001600160a01b0381168114612e79575f5ffd5b803561524d81615282565b5f5f604083850312156152b2575f5ffd5b8235915060208301356152c481615282565b809150509250929050565b5f5f83601f8401126152df575f5ffd5b50813567ffffffffffffffff8111156152f6575f5ffd5b6020830191508360208260061b8501011115615310575f5ffd5b9250929050565b5f5f5f5f5f5f6060878903121561532c575f5ffd5b863567ffffffffffffffff811115615342575f5ffd5b61534e89828a016152cf565b909750955050602087013567ffffffffffffffff81111561536d575f5ffd5b61537989828a016152cf565b909550935050604087013567ffffffffffffffff811115615398575f5ffd5b6153a489828a016152cf565b979a9699509497509295939492505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f5f606084860312156153fd575f5ffd5b505081359360208301359350604090920135919050565b5f5f60408385031215615425575f5ffd5b61542e8361523f565b946020939093013593505050565b5f5f83601f84011261544c575f5ffd5b50813567ffffffffffffffff811115615463575f5ffd5b602083019150836020828501011115615310575f5ffd5b5f5f5f5f5f5f5f5f60e0898b031215615491575f5ffd5b883561549c81615282565b975060208901356154ac81615282565b9650604089013595506060890135945060808901356154ca81615282565b935060a089013567ffffffffffffffff8111156154e5575f5ffd5b6154f18b828c0161543c565b999c989b50969995989497949560c00135949350505050565b5f5f5f5f6060858703121561551d575f5ffd5b843567ffffffffffffffff811115615533575f5ffd5b61553f8782880161543c565b90955093505060208501359150604085013567ffffffffffffffff811115615565575f5ffd5b85016102008188031215615577575f5ffd5b939692955090935050565b5f6101408284031215613e07575f5ffd5b5f602082840312156155a3575f5ffd5b813567ffffffffffffffff8111156155b9575f5ffd5b6155c584828501615582565b949350505050565b5f5f604083850312156155de575f5ffd5b823567ffffffffffffffff8111156155f4575f5ffd5b61560085828601615582565b92505060208301356152c481615282565b5f60208284031215615621575f5ffd5b8135614fff81615282565b5f5f5f5f6060858703121561563f575f5ffd5b843567ffffffffffffffff811115615655575f5ffd5b8501601f81018713615665575f5ffd5b803567ffffffffffffffff81111561567b575f5ffd5b8760208260051b840101111561568f575f5ffd5b602091820198909750908601359560400135945092505050565b5f5f5f5f606085870312156156bc575f5ffd5b84356156c781615282565b935060208501359250604085013567ffffffffffffffff8111156156e9575f5ffd5b6156f58782880161543c565b95989497509550505050565b5f5f60408385031215615712575f5ffd5b823561542e81615282565b5f5f5f6060848603121561572f575f5ffd5b833567ffffffffffffffff811115615745575f5ffd5b84016101608187031215615757575f5ffd5b9250602084013561576781615282565b9150604084013561577781615282565b809150509250925092565b634e487b7160e01b5f52602160045260245ffd5b600e81106157b257634e487b7160e01b5f52602160045260245ffd5b9052565b602081016111a78284615796565b634e487b7160e01b5f52601160045260245ffd5b808201808211156111a7576111a76157c4565b818382375f9101908152919050565b818103818111156111a7576111a76157c4565b80820281158282048414176111a7576111a76157c4565b5f60018201615835576158356157c4565b5060010190565b5f6020828403121561584c575f5ffd5b5051919050565b5f5f8335601e19843603018112615868575f5ffd5b83018035915067ffffffffffffffff821115615882575f5ffd5b602001915036819003821315615310575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f5f8335601e198436030181126158bf575f5ffd5b83018035915067ffffffffffffffff8211156158d9575f5ffd5b6020019150600581901b3603821315615310575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b604081525f61593f604083018587615904565b82810360208401528084518083526020830191506020860192505f5b8181101561597957835183526020938401939092019160010161595b565b5090979650505050505050565b5f81518060208401855e5f93019283525090919050565b5f614fff8284615986565b5f602082840312156159b8575f5ffd5b81518015158114614fff575f5ffd5b5f602082840312156159d7575f5ffd5b813563ffffffff81168114614fff575f5ffd5b5f8235609e198336030181126159fe575f5ffd5b9190910192915050565b60405160a0810167ffffffffffffffff81118282101715615a2b57615a2b6158f0565b60405290565b5f82601f830112615a40575f5ffd5b813567ffffffffffffffff811115615a5a57615a5a6158f0565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715615a8957615a896158f0565b604052818152838201602001851015615aa0575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60a08236031215615acc575f5ffd5b615ad4615a08565b82358152602083013567ffffffffffffffff811115615af1575f5ffd5b615afd36828601615a31565b602083015250604083013567ffffffffffffffff811115615b1c575f5ffd5b615b2836828601615a31565b60408301525060608381013590820152608092830135928101929092525090565b858152846020820152836040820152608060608201525f615b6e608083018486615904565b979650505050505050565b5f5f8335601e19843603018112615b8e575f5ffd5b83018035915067ffffffffffffffff821115615ba8575f5ffd5b6020019150600681901b3603821315615310575f5ffd5b5f5f8335601e19843603018112615bd4575f5ffd5b830160208101925035905067ffffffffffffffff811115615bf3575f5ffd5b8060061b3603821315615310575f5ffd5b8183526020830192505f815f5b84811015615c4b578135615c2481615282565b6001600160a01b031686526020828101359087015260409586019590910190600101615c11565b5093949350505050565b8183526020830192505f815f5b84811015615c4b57615c7c86615c778461523f565b615796565b6020828101359087015260409586019590910190600101615c62565b604080825283358282015260208401356060808401919091529084013560808301525f90615cc7908501615296565b6001600160a01b03811660a084015250608084013560c08381019190915260a085013560e0840152615cfb90850185615bbf565b610160610100850152615d136101a085018284615c04565b915050615d2360e0860186615bbf565b848303603f1901610120860152615d3b838284615c55565b92505050615d4d610100860186615bbf565b848303603f1901610140860152615d65838284615c55565b92505050615d766101208601615296565b6001600160a01b0316610160840152615d926101408601615296565b6001600160a01b031661018084015260209092019290925292915050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f615de16017830185615986565b7f206973206d697373696e6720726f6c65200000000000000000000000000000008152615e116011820185615986565b95945050505050565b5f82615e3457634e487b7160e01b5f52601260045260245ffd5b500690565b6001815b6001841115615e7457808504811115615e5857615e586157c4565b6001841615615e6657908102905b60019390931c928002615e3d565b935093915050565b5f82615e8a575060016111a7565b81615e9657505f6111a7565b8160018114615eac5760028114615eb657615ed2565b60019150506111a7565b60ff841115615ec757615ec76157c4565b50506001821b6111a7565b5060208310610133831016604e8410600b8410161715615ef5575081810a6111a7565b615f015f198484615e39565b805f1904821115615f1457615f146157c4565b029392505050565b5f614fff8383615e7c565b8581528460208201528360408201525f615b6e615f476060840186615986565b84615986565b5f81615f5b57615f5b6157c4565b505f19019056fea2646970667358221220f32d731e98cfbca6f33633ed57af28e9e2ff4026cefb27e387d00bf3696f5a6364736f6c63430008210033
🤖 Code Reader Beta

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
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.