7 txs
8 calls
constructor
constructor()
functions
aragonConfig
viewfunction aragonConfig() view returns (address daoFactory, address pluginSetupProcessor, address multisigPluginRepo, address lockToVotePluginRepo, string ownerDaoURI, string guardianDaoURI, tuple ownerMultisigSettings, tuple guardianVotingSettings)
curator
viewfunction curator() view returns (address)
getAragonConfig
viewfunction getAragonConfig() view returns (tuple)
getPermissionHashes
purefunction getPermissionHashes() pure returns (bytes32 rootPermission, bytes32 executePermission, bytes32 applyInstallationPermission)
owner
viewfunction owner() view returns (address)
previewCreateOwnerDaoCall
viewfunction previewCreateOwnerDaoCall(address guardianAddress) view returns (bytes)
addVaultV1
nonpayablefunction addVaultV1(address vault, address vaultV1, bool liquidity, uint256 capAbs, uint256 capRel)
applyPluginInstallationViaMultisig
nonpayablefunction applyPluginInstallationViaMultisig(address dao, address multisigPlugin, bytes preparedSetupData) returns (bytes32 proposalId)
conformMorphoRegistry
nonpayablefunction conformMorphoRegistry(address vault)
create
nonpayablefunction create(address asset, bytes32 salt, string name, string symbol) returns (address vault)
createAndVoteRootPermission
nonpayablefunction createAndVoteRootPermission(address guardianDao, address lockToVotePlugin, address lockManager, address recipient) returns (uint256 proposalId)
createGuardian
nonpayablefunction createGuardian(address vault) returns (address guardian)
createGuardianWithMetadata
nonpayablefunction createGuardianWithMetadata(address vault, string metadataURI) returns (address guardian, address plugin, address lockManager)
createRootPermissionProposal
nonpayablefunction createRootPermissionProposal(address guardianDao, address lockToVotePlugin, address recipient) returns (uint256 proposalId)
finalCleanup
nonpayablefunction finalCleanup(address vault, address ownerDao, address guardianDao)
finalize
nonpayablefunction finalize(address vault, uint256 capsDays, address guardian) returns (address msigOwner)
finalizeWithMetadata
nonpayablefunction finalizeWithMetadata(address vault, uint256 capsDays, address guardian, string ownerMetadataURI) returns (address msigOwner)
preparePluginInstallation
nonpayablefunction preparePluginInstallation(address dao, address pluginSetupRef, bytes data) returns (bytes preparedSetupData)
removeHelperPermissions
nonpayablefunction removeHelperPermissions(address dao, bool helperHadRootPermission)
seed
nonpayablefunction seed(address vault, uint256 amount)
setGuardian
nonpayablefunction setGuardian(address vault, address guardian)
updateAragonConfig
nonpayablefunction updateAragonConfig(address daoFactory, address pluginSetupProcessor, address multisigPluginRepo, address lockToVotePluginRepo)
updateDaoURIs
nonpayablefunction updateDaoURIs(string ownerURI, string guardianURI)
updateGuardianVotingSettings
nonpayablefunction updateGuardianVotingSettings(uint8 votingMode, uint32 supportThresholdRatio, uint32 minParticipationRatio, uint32 minApprovalRatio, uint64 proposalDuration, uint256 minProposerVotingPower)
updateOwnerMultisigSettings
nonpayablefunction updateOwnerMultisigSettings(bool onlyListed, uint16 minApprovals)
events
AragonConfigUpdated
event AragonConfigUpdated(address indexed daoFactory, address indexed pluginSetupProcessor)
RevokerCreated
event RevokerCreated(address vault, address sentinel, address revoker)
errors
No errors.
creation bytecode
0x60808060405234610bcd5761210546148015610bc2575b156106475750600380546001600160a01b0319908116735c2531cbd2cf112cf687da3cd536708add7db10a179091555f80548216730a0e559bc3b0950a7e448f0d4894db195b9cf8dd1790556001805490911673827e86072b06674a077f592a531dce4590adecdb179055610089610bd1565b610091610c3f565b600480546001600160a01b0319908116734501125508079a99ebbebce205dec9593c2b5857179091556005805490911673f42d9c36b34c9c2cf3bc30ed2a52a90eeb6046421790556100e1610c9b565b5f8152600260208201526100f3610cba565b905f82526207a1206020830152600160408301525f6060830152610e1060808301525f60a0830152610123610cd9565b9173cc602ea573a42ebec290f33f49d4a87177ebb8d28352602083017391a851e9ed7f2c6d41b15f76e4a88f5a37067cc981526102f76040850173cdc4b0bc63aefff3a7826a19d101406c6322a58581526102d460608701917305eca5ab78493bf812052b0211a206bcba03471b83526102b16101a06060610cf9565b95603587527f697066733a2f2f516d61544b4250386444335562485a74697669545333754b7660208801527f61696f77757761476e754857347464706e53744e720000000000000000000000604088015260808a0196875261028e6102056060610cf9565b603381527f697066733a2f2f516d707755697a3454565a36546567613555685a536666736360208201527f354139595a797651753354364841786137703600000000000000000000000000604082015260a08c0190815260c08c019a8b5260e08c01998a529a51600680546001600160a01b0319166001600160a01b0392909216919091179055565b51600780546001600160a01b0319166001600160a01b0392909216919091179055565b51600880546001600160a01b0319166001600160a01b0392909216919091179055565b51600980546001600160a01b0319166001600160a01b0392909216919091179055565b5180519093906001600160401b03811161056b57600a54600181811c9116801561063d575b602082101461054d57601f81116105ed575b50602094601f821160011461058a579481929394955f9261057f575b50508160011b915f199060031b1c191617600a555b51805192906001600160401b03841161056b57600b54600181811c91168015610561575b602082101461054d57601f81116104fd575b50602090601f85116001146104965760a094915f918361048b575b50508160011b915f199060031b1c191617600b555b51805115159060ff62ffff006020600c5493015160081b1692169062ffffff19161717600c555160ff815116600d549064ffffffff00602084015160081b169068ffffffff0000000000604085015160281b16906cffffffff000000000000000000606086015160481b1692600160681b600160a81b03608087015160681b1694600160681b600160a81b0319926cffffffff000000000000000000199160018060481b03191617161716171717600d550151600e555b604051614ce99081610d1f8239f35b015190505f806103b0565b90601f19851691600b5f52815f20925f5b8181106104e5575091600193918760a09894106104cd575b505050811b01600b556103c5565b01515f1960f88460031b161c191690555f80806104bf565b929360206001819287860151815501950193016104a7565b600b5f525f516020615a485f395f51905f52601f860160051c81019160208710610543575b601f0160051c01905b8181106105385750610395565b5f815560010161052b565b9091508190610522565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610383565b634e487b7160e01b5f52604160045260245ffd5b015190505f8061034a565b601f19821695600a5f52805f20915f5b8881106105d5575083600195969798106105bd575b505050811b01600a5561035f565b01515f1960f88460031b161c191690555f80806105af565b9192602060018192868501518155019401920161059a565b600a5f525f516020615a285f395f51905f52601f830160051c81019160208410610633575b601f0160051c01905b818110610628575061032e565b5f815560010161061b565b9091508190610612565b90607f169061031c565b46600103610b8c5750600380546001600160a01b03199081169091555f80548216730a0e559bc3b0950a7e448f0d4894db195b9cf8dd1790556001805490911673827e86072b06674a077f592a531dce4590adecdb1790556106a7610bd1565b6106af610c3f565b600480546001600160a01b03199081169091556005805490911690556106d3610c9b565b5f8152600260208201526106e5610cba565b905f82526207a1206020830152620249f060408301525f60608301526203f48060808301525f60a0830152610718610cd9565b9173246503df057a9a85e0144b6867a828c99676128b83526020830173e978942c691e43f65c1b7c7f8f1dc8cdf061b13f815261086f6040850173a4371a239d08bfba6e8894eccf8466c6323a52c381526102d460608701915f83526102b16107816060610cf9565b95603587527f697066733a2f2f516d56757835727876426e48775a724343416734574239576360208801527f4850457a33357637754e7a5a39333356374674666a0000000000000000000000604088015260808a0196875261028e6107e66060610cf9565b603581527f697066733a2f2f516d5763695565467a3159346451414d43534c61415257666a60208201527f4556384555363777797372516477434c6b6d756b680000000000000000000000604082015260a08c0190815260c08c019a8b5260e08c01998a529a51600680546001600160a01b0319166001600160a01b0392909216919091179055565b5180519093906001600160401b03811161056b57600a54600181811c91168015610b82575b602082101461054d57601f8111610b32575b50602094601f8211600114610acf579481929394955f92610ac4575b50508160011b915f199060031b1c191617600a555b51805192906001600160401b03841161056b57600b54600181811c91168015610aba575b602082101461054d57601f8111610a6a575b50602090601f8511600114610a035760a094915f91836109f8575b50508160011b915f199060031b1c191617600b555b51805115159060ff62ffff006020600c5493015160081b1692169062ffffff19161717600c555160ff815116600d549064ffffffff00602084015160081b169068ffffffff0000000000604085015160281b16906cffffffff000000000000000000606086015160481b1692600160681b600160a81b03608087015160681b1694600160681b600160a81b0319926cffffffff000000000000000000199160018060481b03191617161716171717600d550151600e5561047c565b015190505f80610928565b90601f19851691600b5f52815f20925f5b818110610a52575091600193918760a0989410610a3a575b505050811b01600b5561093d565b01515f1960f88460031b161c191690555f8080610a2c565b92936020600181928786015181550195019301610a14565b600b5f525f516020615a485f395f51905f52601f860160051c81019160208710610ab0575b601f0160051c01905b818110610aa5575061090d565b5f8155600101610a98565b9091508190610a8f565b90607f16906108fb565b015190505f806108c2565b601f19821695600a5f52805f20915f5b888110610b1a57508360019596979810610b02575b505050811b01600a556108d7565b01515f1960f88460031b161c191690555f8080610af4565b91926020600181928685015181550194019201610adf565b600a5f525f516020615a285f395f51905f52601f830160051c81019160208410610b78575b601f0160051c01905b818110610b6d57506108a6565b5f8155600101610b60565b9091508190610b57565b90607f1690610894565b62461bcd60e51b81526020600482015260116024820152702ab739bab83837b93a32b21031b430b4b760791b6044820152606490fd5b50617a694614610016565b5f80fd5b6002546801000000000000000081101561056b576001810180600255811015610c2b5760025f525f516020615a085f395f51905f520180546001600160a01b03191671aeb716a0df7a9a1aad119b772644bc089da8179055565b634e487b7160e01b5f52603260045260245ffd5b6002546801000000000000000081101561056b576001810180600255811015610c2b5760025f525f516020615a085f395f51905f520180546001600160a01b03191673feed46c11f57b7126a773eec6ae9ca7ae1c03c9a179055565b60408051919082016001600160401b0381118382101761056b57604052565b6040519060c082016001600160401b0381118382101761056b57604052565b6040519061010082016001600160401b0381118382101761056b57604052565b6040519190601f01601f191682016001600160401b0381118382101761056b5760405256fe6080806040526004361015610012575f80fd5b5f905f3560e01c908163012d756a14613b06575080631961ae5514613a925780631e72b08c14612d3b5780631ff5b13814612cb657806333c509d114612bf05780634562c90614612b625780634c08053e146129bf5780635684d86a1461285f5780636298d5051461273d5780636426ac971461265a5780636e7081a214612447578063708a60af146120875780637fdf276a14611eff5780638358a5f014611ad35780638da5cb5b14611aac5780638dd19a03146119ea5780638f3fb7a0146116895780639379730714610865578063aa1923d61461067e578063aae37560146103be578063c8dc793e14610337578063cd4d3993146102ce578063e19e457114610291578063e66f53b7146102685763eed7273f14610131575f80fd5b346102655760403660031901126102655761014a613b64565b816024358015158103610263576101b8575b8091604051826020820191633658153160e21b835260018060a01b03841660248201523060448201525f516020614c945f395f51905f526064820152606481526101a7608482613cbb565b51925af1506101b461409d565b5080f35b604051633658153160e21b602082019081526001600160a01b03841660248301523060448301525f516020614c545f395f51905f5260648084019190915282528291610205608482613cbb565b519082855af161021361409d565b501561021f578161015c565b606460405162461bcd60e51b815260206004820152602060248201527f4661696c656420746f207265766f6b6520524f4f545f5045524d495353494f4e6044820152fd5b505b80fd5b50346102655780600319360112610265576001546040516001600160a01b039091168152602090f35b50346102655760603660031901126102655760206102c66102b0613b64565b6102b8613b90565b6102c0613b7a565b91614258565b604051908152f35b5034610265576060366003190112610265576102e8613b64565b506102f1613b90565b6102f9613b7a565b906001600160a01b038116610328575b506001600160a01b03811661031c575080f35b61032590614488565b80f35b61033190614488565b5f610309565b5034610265576103538161034a36613d93565b91909492614258565b916001600160a01b0316803b15610263578190604460405180948193634a1f410b60e11b8352876004840152600260248401525af180156103b35761039e575b602082604051908152f35b6103a9838092613cbb565b6102635781610393565b6040513d85823e3d90fd5b5034610265576040366003190112610265576004356001600160401b038111610263576103ef903690600401613df1565b90916024356001600160401b03811161026357610410903690600401613df1565b909261042660018060a01b03845416331461401c565b6001600160401b03811161066a5761043f600a54613e1e565b601f811161061a575b5082601f82116001146105ab57839495829394926105a0575b50508160011b915f199060031b1c191617600a555b6001600160401b03811161058c5761048f600b54613e1e565b601f811161053c575b5081601f82116001146104d15782938293926104c6575b50508160011b915f199060031b1c191617600b5580f35b013590505f806104af565b600b8352601f198216935f516020614c745f395f51905f5291845b868110610524575083600195961061050b575b505050811b01600b5580f35b01355f19600384901b60f8161c191690555f80806104ff565b909260206001819286860135815501940191016104ec565b600b83525f516020614c745f395f51905f52601f830160051c81019160208410610582575b601f0160051c01905b8181106105775750610498565b83815560010161056a565b9091508190610561565b634e487b7160e01b82526041600452602482fd5b013590505f80610461565b600a8452601f198216955f516020614c345f395f51905f5291855b888110610602575083600195969798106105e9575b505050811b01600a55610476565b01355f19600384901b60f8161c191690555f80806105db565b909260206001819286860135815501940191016105c6565b600a84525f516020614c345f395f51905f52601f830160051c81019160208410610660575b601f0160051c01905b8181106106555750610448565b848155600101610648565b909150819061063f565b634e487b7160e01b83526041600452602483fd5b503461026557602036600319011261026557806001600160a01b036106a1613b64565b1660018060a01b036003541660405190635b34b82360e01b60208301526024820152602481526106d2604482613cbb565b813b156108375782610700916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183865af19081156103b3578391610850575b50506003546001600160a01b0316813b156108375760405190635b34b82360e01b82526004820152828160248183865af19081156103b357839161083b575b505060405163165c650960e31b6020820152635b34b82360e01b6024808301919091528152610783604482613cbb565b813b1561083757826107b1916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183865af19081156103b3578391610822575b5050803b1561081f5760405163165c650960e31b8152635b34b82360e01b60048201529082908290602490829084905af18015610814576108035750f35b8161080d91613cbb565b6102655780f35b6040513d84823e3d90fd5b50fd5b8161082c91613cbb565b61081f57815f6107c5565b5050fd5b8161084591613cbb565b61081f57815f610753565b8161085a91613cbb565b61081f57815f610714565b50346102655760803660031901126102655761087f613b64565b816024359161088c613b7a565b906064356001600160401b03811161142a576108ac903690600401614001565b604051634796629160e01b602082015263026df86760e11b602482015262093a8060448083019190915281526001600160a01b039092169490916108f1606482613cbb565b853b156114b7578461091f916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac578591611674575b5050843b1561142a57604051634796629160e01b815263026df86760e11b600482015262093a8060248201528481604481838a5af19081156114ac57859161165f575b5050604051634796629160e01b602082015263059633f360e31b602482015262093a8060448083019190915281526109af606482613cbb565b853b156114b757846109dd916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac57859161164a575b5050843b1561142a57604051634796629160e01b815263059633f360e31b600482015262093a8060248201528481604481838a5af19081156114ac578591611635575b5050604051634796629160e01b60208201526318435a0560e31b602482015262093a806044808301919091528152610a6d606482613cbb565b853b156114b75784610a9b916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac578591611620575b5050843b1561142a57604051634796629160e01b81526318435a0560e31b600482015262093a8060248201528481604481838a5af19081156114ac57859161160b575b5050604051634796629160e01b60208201526321c725e760e21b602482015262093a806044808301919091528152610b2b606482613cbb565b853b156114b75784610b59916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac5785916115f6575b5050843b1561142a57604051634796629160e01b81526321c725e760e21b600482015262093a8060248201528481604481838a5af19081156114ac5785916115e1575b5050604051634796629160e01b602082015263165c650960e31b602482015262093a806044808301919091528152610be9606482613cbb565b853b156114b75784610c17916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac5785916115cc575b5050843b1561142a57604051634796629160e01b815263165c650960e31b600482015262093a8060248201528481604481838a5af19081156114ac5785916115b7575b5050604051634796629160e01b6020820152635b34b82360e01b602482015262093a806044808301919091528152610ca7606482613cbb565b853b156114b75784610cd5916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac5785916115a2575b5050843b1561142a57604051634796629160e01b8152635b34b82360e01b600482015262093a8060248201528481604481838a5af19081156114ac57859161158d575b5050604051634796629160e01b602082015263585cd34b60e01b602482015262093a806044808301919091528152610d65606482613cbb565b853b156114b75784610d93916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac578591611578575b5050843b1561142a57604051634796629160e01b815263585cd34b60e01b600482015262093a8060248201528481604481838a5af19081156114ac578591611563575b5050604051634796629160e01b6020820152633e9d2ac760e01b602482015262093a806044808301919091528152610e23606482613cbb565b853b156114b75784610e51916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac57859161154e575b5050843b1561142a57604051634796629160e01b8152633e9d2ac760e01b600482015262093a8060248201528481604481838a5af19081156114ac578591611539575b5050604051634796629160e01b602082015263165c650960e31b602482015262093a806044808301919091528152610ee1606482613cbb565b853b156114b75784610f0f916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac578591611524575b5050843b1561142a57604051634796629160e01b815263165c650960e31b600482015262093a8060248201528481604481838a5af19081156114ac57859161150f575b5050604051634796629160e01b60208201526360d54d4160e01b602482015260448082018390528152610f9a606482613cbb565b853b156114b75784610fc8916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac5785916114fa575b5050843b1561142a57604051634796629160e01b81526360d54d4160e01b6004820152602481018290528481604481838a5af19081156114ac5785916114e5575b5050604051634796629160e01b6020820152632438525b60e01b602482015260448082018390528152611051606482613cbb565b853b156114b7578461107f916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac5785916114d0575b5050843b1561142a57604051634796629160e01b8152632438525b60e01b6004820152602481018290528481604481838a5af19081156114ac5785916114bb575b5050604051634796629160e01b602082015263f6f98fd560e01b602482015260448082018390528152611108606482613cbb565b853b156114b75784611136916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af19081156114ac578591611497575b5050843b1561142a57604051634796629160e01b815263f6f98fd560e01b60048201526024810191909152838160448183895af190811561141f578491611482575b5050604051634796629160e01b6020820152634796629160e01b602482015262093a806044820152604481526111c3606482613cbb565b843b1561142a57836111f1916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f57849161146d575b5050833b1561141b57604051634796629160e01b808252600482015262093a806024820152838160448183895af190811561141f578491611458575b50506040516358c9542560e11b60208201523060248201526044808201859052815261126e606482613cbb565b843b1561142a578361129c916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f578491611443575b5050833b1561141b576040516358c9542560e11b815230600482015260248101849052838160448183895af190811561141f57849161142e575b50506001546001600160a01b031691843b1561142a576040519263e90956cf60e01b84526004840152838360248183895af192831561141f578493611402575b50829161137d9160405190611340606083613cbb565b6002825260403660208401376113558261406c565b6001600160a01b03918216905284541661136e8261408d565b52611377613f7c565b916146a0565b6006548151916020019083906001600160a01b03165af16113a561139f61409d565b916140cc565b602081805181010312610263576001600160a01b03906113c790602001614114565b1691803b156102635781906024604051809481936313af403560e01b83528760048401525af180156103b35761039e57602082604051908152f35b8361140f91949294613cbb565b61141b5782915f61132a565b8280fd5b6040513d86823e3d90fd5b8380fd5b8161143891613cbb565b61141b57825f6112ea565b8161144d91613cbb565b61141b57825f6112b0565b8161146291613cbb565b61141b57825f611241565b8161147791613cbb565b61141b57825f611205565b8161148c91613cbb565b61141b57825f61118c565b816114a191613cbb565b61142a57835f61114a565b6040513d87823e3d90fd5b8480fd5b816114c591613cbb565b61142a57835f6110d4565b816114da91613cbb565b61142a57835f611093565b816114ef91613cbb565b61142a57835f61101d565b8161150491613cbb565b61142a57835f610fdc565b8161151991613cbb565b61142a57835f610f66565b8161152e91613cbb565b61142a57835f610f23565b8161154391613cbb565b61142a57835f610ea8565b8161155891613cbb565b61142a57835f610e65565b8161156d91613cbb565b61142a57835f610dea565b8161158291613cbb565b61142a57835f610da7565b8161159791613cbb565b61142a57835f610d2c565b816115ac91613cbb565b61142a57835f610ce9565b816115c191613cbb565b61142a57835f610c6e565b816115d691613cbb565b61142a57835f610c2b565b816115eb91613cbb565b61142a57835f610bb0565b8161160091613cbb565b61142a57835f610b6d565b8161161591613cbb565b61142a57835f610af2565b8161162a91613cbb565b61142a57835f610aaf565b8161163f91613cbb565b61142a57835f610a34565b8161165491613cbb565b61142a57835f6109f1565b8161166991613cbb565b61142a57835f610976565b8161167e91613cbb565b61142a57835f610933565b503461026557604036600319011261026557806116a4613b64565b6024356001600160401b0381116108375782916116c86116e0923690600401614001565b6116d0613fa2565b916001600160a01b0316906147cf565b6006548151916020019083906001600160a01b03165af161170861170261409d565b91614128565b805181019160208301926040838203126102635761172860208401614114565b926040810151906001600160401b03821161142a57019084603f8301121561141b5760208201519061175982614055565b956117676040519788613cbb565b8287526020808089019460051b86010101938185116119e65760408101935b858510611875578888815115611839576001600160a01b036117a78361406c565b515116600260206117b78561406c565b510151515110611803576060926001600160a01b03906117e6906020906117dd9061406c565b5101515161408d565b5116906040519260018060a01b0316835260208301526040820152f35b60405162461bcd60e51b815260206004820152600e60248201526d2737903637b1b5a6b0b730b3b2b960911b6044820152606490fd5b60405162461bcd60e51b8152602060048201526014602482015273139bc81c1b1d59da5b9cc81a5b9cdd185b1b195960621b6044820152606490fd5b84516001600160401b0381116119e257820160208101906040908603601f1901126119e257604051906118a782613c1f565b6118b360208201614114565b82526040810151906001600160401b0382116119ba570160208101906040908703126119de57604051906118e682613c1f565b80516001600160401b0381116119be57810186601f820112156119be5780519061190f82614055565b9161191d6040519384613cbb565b80835260208084019160051b830101918983116119da57602001905b8282106119c25750505082526020810151906001600160401b0382116119be570185601f820112156119ba57805161197081613cdc565b9161197e6040519384613cbb565b81835287602083830101116119b657918b6020838198969482809997018386015e830101528482015283820152815201940193611786565b8b80fd5b8980fd5b8a80fd5b602080916119cf84614114565b815201910190611939565b8d80fd5b8880fd5b8780fd5b8580fd5b50346102655780600319360112610265576006546007546008546009546001600160a01b039283169383169290811691611aa89116611a9d611a83611a2d613e56565b611a75611a38613efa565b91611a41613f7c565b97611a4a613fa2565b966040519b8c9b8c5260208c015260408b015260608a01526101c060808a01526101c0890190613ba6565b9087820360a0890152613ba6565b8451151560c087015260209094015161ffff1660e0860152565b610100840190613bca565b0390f35b5034610265578060031936011261026557546040516001600160a01b039091168152602090f35b503461026557608036600319011261026557611aed613b64565b816044356001600160401b03811161026357611b0d903690600401613df1565b9092606435906001600160401b03821161142a5783611b326020933690600401613df1565b939092606460018060a01b036004541691604051948593849263a7a2846960e01b845230600485015260018060a01b0316602484015260243560448401525af19081156114ac578591611ec5575b506001600160a01b031692833b156114b75760405163e90956cf60e01b8152306004820152858160248183895af1908115611e90578691611eb0575b50506040516358c9542560e11b60208201523060248201526001604482015260448152611bea606482613cbb565b843b156119e65785611c18916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af1908115611e90578691611e9b575b5050833b156114b7576040516358c9542560e11b815230600482015260016024820152858160448183895af1908115611e90578691611e7b575b505b600254811015611d9457611c7b81614219565b90546040516358c9542560e11b602082015260039290921b1c6001600160a01b0316602482015260016044808301919091528152611cba606482613cbb565b853b15611d7b5786611ce8916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af1908115611d70578791611d7f575b5050611d0781614219565b905460039190911b1c6001600160a01b0316853b15611d7b57604051906358c9542560e11b82526004820152600160248201528681604481838a5af1908115611d70578791611d5b575b5050600101611c68565b81611d6591613cbb565b6119e657855f611d51565b6040513d89823e3d90fd5b8680fd5b81611d8991613cbb565b6119e657855f611cfc565b5090919294853b156114b75760405163c47f002760e01b815291859183918291611dc2919060048401614231565b038183895af190811561141f578491611e66575b5050833b1561141b57604051635c26412360e11b815291839183918291611e01919060048401614231565b038183875af1801561081457611e51575b5050803b156102635760405163aa4abe7f60e01b8152640ec41a0ddf6004820152828160248183865af180156103b35761039e57602082604051908152f35b81611e5b91613cbb565b61026357815f611e12565b81611e7091613cbb565b61141b57825f611dd6565b81611e8591613cbb565b6114b757845f611c66565b6040513d88823e3d90fd5b81611ea591613cbb565b6114b757845f611c2c565b81611eba91613cbb565b6114b757845f611bbc565b90506020813d602011611ef7575b81611ee060209383613cbb565b810103126114b757611ef190614114565b5f611b80565b3d9150611ed3565b503461026557611f0e36613d93565b92611f2660018060a09594951b03865416331461401c565b6001600160a01b031691821561204d576001600160a01b0316928315612008576001600160a01b0316908115611fc357600680546001600160a01b031990811685179091556007805482166001600160a01b0393909316928317905560088054821690951790945560098054909416919091179092557fe431e876db54f6630ab1364d214ca90d970f03be1c1d345ce4afb010221bc33a8380a380f35b60405162461bcd60e51b815260206004820152601c60248201527f496e76616c6964206c6f636b546f566f7465506c7567696e5265706f000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601a60248201527f496e76616c6964206d756c7469736967506c7567696e5265706f0000000000006044820152606490fd5b60405162461bcd60e51b8152602060048201526012602482015271496e76616c69642064616f466163746f727960701b6044820152606490fd5b50346102655760a036600319011261026557806120a2613b64565b6120aa613b90565b9060443580151581036123945760055460405163e9752c6960e01b81526001600160a01b039384166004820181905294841660248201526064359360843592602091839160449183918b91165af1908115611e9057869161240d575b50604051906040602083015260046060830152637468697360e01b608083015260018060a01b0316938460408301526080825261214460a083613cbb565b6040516360d54d4160e01b602082015260248082018790528152612169604482613cbb565b863b156119e25787612197916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838b5af19081156123d85788916123f8575b5050853b15611d7b576040516360d54d4160e01b8152600481018690528781602481838b5af19081156123d85788916123e3575b505060405163f6f98fd560e01b6020820152612211816122038486602484016141fd565b03601f198101835282613cbb565b863b156119e2578761223f916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838b5af19081156123d85788916123c3575b5050853b15611d7b578661227c916040518093819263f6f98fd560e01b835286600484016141fd565b0381838a5af1908115611d705787916123ae575b5050604051632438525b60e01b60208201526122b4816122038585602484016141fd565b853b15611d7b57866122e2916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b0381838a5af1908115611d70578791612399575b5050843b156119e657604051632438525b60e01b8152918691839182916123219190600484016141fd565b038183885af19081156114ac57859161237f575b505061233f575050f35b813b15610837578291606483926040519485938492637fb6caad60e01b84526004840152604060248401528160448401525af18015610814576108035750f35b8161238991613cbb565b61239457835f612335565b505050fd5b816123a391613cbb565b6119e657855f6122f6565b816123b891613cbb565b6119e657855f612290565b816123cd91613cbb565b611d7b57865f612253565b6040513d8a823e3d90fd5b816123ed91613cbb565b611d7b57865f6121df565b8161240291613cbb565b611d7b57865f6121ab565b90506020813d60201161243f575b8161242860209383613cbb565b810103126119e65761243990614114565b5f612106565b3d915061241b565b50346102655780806122036125636125a061246136613d2d565b6007549195916001600160a01b031661247b811515614183565b6125816124ea604051936335a2eb4b60e21b60208601528360248601526124f860018060a01b038b16918260448801525f516020614c545f395f51905f526064880152606487526124cd608488613cbb565b60405163fe4e84b360e01b60208201529384918a602484016141db565b03601f198101845283613cbb565b60405193633658153160e21b6020860152602485015260448401525f516020614c545f395f51905f52606484015260648352612535608484613cbb565b60405197889660018060a01b0316948560208901528b60408901526101206060890152610140880190613ba6565b908460808801528a60a0880152601f198783030160c0880152613ba6565b9160e085015287610100850152601f1984830301610120850152613ba6565b826040516125ec816125d86020820195631d2fc2b760e21b8752606060248401528560848401526080604484015260a4830190613ba6565b84606483015203601f198101835282613cbb565b51925af1906125f961409d565b911561261a5760208280518101031261026557602080830151604051908152f35b60405162461bcd60e51b8152602060048201526018602482015277141c9bdc1bdcd85b0818dc99585d1a5bdb8819985a5b195960421b6044820152606490fd5b503461026557806122036126bf8261267136613d2d565b6007546001600160a01b0316959294916126a290612690881515614183565b612203604051938492602084016141db565b604051928391602083019662d187b160e21b8852602484016141db565b51925af16126cb61409d565b90156126e957611aa890604051918291602083526020830190613ba6565b60405162461bcd60e51b815260206004820152602660248201527f506c7567696e20696e7374616c6c6174696f6e207072657061726174696f6e2060448201526519985a5b195960d21b6064820152608490fd5b50346102655760c03660031901126102655760043560ff81168091036102635760243563ffffffff81169182820361142a5760443563ffffffff8116928382036119e6576064359263ffffffff8416918285036119e25787608435966001600160401b0388169889890361141b576127d39968ffffffff00000000009660a09360a4359c8d96600180881b03905416331461401c565b604051936127e085613c6a565b8885526020850152604084015260608301526080820152015264ffffffff00600d54966001600160401b0360681b9060681b16966001600160401b0360681b199363ffffffff60481b199168ffffffffffffffffff191617169160081b1617169160281b16179063ffffffff60481b9060481b161717600d55600e5580f35b5034610265576040366003190112610265578061287a613b64565b6040516338d52e0f60e01b8152602435916001600160a01b031690602081600481855afa801561141f5784918291612981575b5060405163095ea7b360e01b815260048101849052602481018590529160209183916044918391906001600160a01b03165af1801561141f57612946575b5060446020926040519485938492636e553f6560e01b845260048401523060248401525af180156108145761291e575080f35b6101b49060203d60201161293f575b6129378183613cbb565b810190614174565b503d61292d565b6020813d602011612979575b8161295f60209383613cbb565b8101031261239457518015158103612394575060446128eb565b3d9150612952565b9150506020813d6020116129b7575b8161299d60209383613cbb565b810103126123945760206129b18592614114565b906128ad565b3d9150612990565b503461026557806003193601126102655760e06040516129de81613c4e565b82815282602082015282604082015282606082015260606080820152606060a0820152604051612a0d81613c1f565b5f81525f602082015260c082015260405192612a2884613c6a565b80845280602085015280604085015280606085015280608085015260a08401520152604051612a5681613c4e565b6006546001600160a01b03908116825260075481166020830190815260085482166040840190815260095490921660608401908152909291611aa890612b56612b3b612aa0613e56565b60808701908152612b28612ab2613efa565b9160a08901928352612ac2613f7c565b9760c08a01988952612ad2613fa2565b60e08b019081526040805160208082529c516001600160a01b039081169d82019d909d529c518c16908d015296518a1660608c01525190981660808a015296516101c060a08a01528897906101e0890190613ba6565b9051878203601f190160c0890152613ba6565b93518051151560e08701526020015161ffff16610100860152565b51610120840190613bca565b5034610265576020366003190112610265578080612ba16001600160a01b03612b89613b64565b16612b92613efa565b90612b9b613fa2565b916147cf565b6006548151916020019083906001600160a01b03165af1612bc361170261409d565b602081805181010312610263576020906001600160a01b0390612be7908301614114565b16604051908152f35b503461026557604036600319011261026557612c0a613b64565b90612c13613b90565b6040516102f393848201948286106001600160401b03871117612ca2578495604092849261494184396001600160a01b039081168083529516602082015203019083f0801561081457813b15610837576040516349076b8360e11b81526001600160a01b039091166004820152600160248201529082908290604490829084905af18015610814576108035750f35b634e487b7160e01b85526041600452602485fd5b503461026557602036600319011261026557612d27611aa891612cd7613b64565b9060405191612ce7606084613cbb565b600283526040366020850137612cfc8361406c565b6001600160a01b039182169052905416612d158261408d565b52612d1e613e56565b90611377613f7c565b604051918291602083526020830190613ba6565b5034613a8e576060366003190112613a8e57612d55613b64565b60243590612d61613b7a565b604051634796629160e01b602082015263026df86760e11b602482015262093a8060448083019190915281526001600160a01b03909216929091612da6606482613cbb565b833b15613a8e575f612dd4916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183885af18015613a8357613a6c575b50908391833b1561141b57604051634796629160e01b815263026df86760e11b600482015262093a806024820152838160448183895af190811561141f578491613a57575b5050604051634796629160e01b602082015263059633f360e31b602482015262093a806044808301919091528152612e63606482613cbb565b843b1561142a5783612e91916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f578491613a42575b5050833b1561141b57604051634796629160e01b815263059633f360e31b600482015262093a806024820152838160448183895af190811561141f578491613a2d575b5050604051634796629160e01b60208201526318435a0560e31b602482015262093a806044808301919091528152612f21606482613cbb565b843b1561142a5783612f4f916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f578491613a18575b5050833b1561141b57604051634796629160e01b81526318435a0560e31b600482015262093a806024820152838160448183895af190811561141f578491613a03575b5050604051634796629160e01b60208201526321c725e760e21b602482015262093a806044808301919091528152612fdf606482613cbb565b843b1561142a578361300d916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f5784916139ee575b5050833b1561141b57604051634796629160e01b81526321c725e760e21b600482015262093a806024820152838160448183895af190811561141f5784916139d9575b5050604051634796629160e01b602082015263165c650960e31b602482015262093a80604480830191909152815261309d606482613cbb565b843b1561142a57836130cb916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f5784916139c4575b5050833b1561141b57604051634796629160e01b815263165c650960e31b600482015262093a806024820152838160448183895af190811561141f5784916139af575b5050604051634796629160e01b6020820152635b34b82360e01b602482015262093a80604480830191909152815261315b606482613cbb565b843b1561142a5783613189916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f57849161399a575b5050833b1561141b57604051634796629160e01b8152635b34b82360e01b600482015262093a806024820152838160448183895af190811561141f578491613985575b5050604051634796629160e01b602082015263585cd34b60e01b602482015262093a806044808301919091528152613219606482613cbb565b843b1561142a5783613247916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f578491613970575b5050833b1561141b57604051634796629160e01b815263585cd34b60e01b600482015262093a806024820152838160448183895af190811561141f57849161395b575b5050604051634796629160e01b6020820152633e9d2ac760e01b602482015262093a8060448083019190915281526132d7606482613cbb565b843b1561142a5783613305916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f578491613946575b5050833b1561141b57604051634796629160e01b8152633e9d2ac760e01b600482015262093a806024820152838160448183895af190811561141f578491613931575b5050604051634796629160e01b602082015263165c650960e31b602482015262093a806044808301919091528152613395606482613cbb565b843b1561142a57836133c3916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f57849161391c575b5050833b1561141b57604051634796629160e01b815263165c650960e31b600482015262093a806024820152838160448183895af190811561141f578491613907575b5050604051634796629160e01b60208201526360d54d4160e01b60248201526044808201839052815261344e606482613cbb565b843b1561142a578361347c916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f5784916138f2575b5050833b1561141b57604051634796629160e01b81526360d54d4160e01b600482015260248101829052838160448183895af190811561141f5784916138dd575b5050604051634796629160e01b6020820152632438525b60e01b602482015260448082018390528152613505606482613cbb565b843b1561142a5783613533916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f5784916138c8575b5050833b1561141b57604051634796629160e01b8152632438525b60e01b600482015260248101829052838160448183895af190811561141f5784916138b3575b5050604051634796629160e01b602082015263f6f98fd560e01b6024820152604480820183905281526135bc606482613cbb565b843b1561142a57836135ea916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183895af190811561141f57849161389e575b5050833b1561141b57604051634796629160e01b815263f6f98fd560e01b60048201526024810191909152828160448183885af19081156103b3578391613889575b5050604051634796629160e01b6020820152634796629160e01b602482015262093a80604482015260448152613677606482613cbb565b833b1561141b57826136a5916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183885af19081156103b3578391613874575b5050823b1561026357604051634796629160e01b808252600482015262093a806024820152828160448183885af19081156103b357839161385f575b50506040516358c9542560e11b602082015230602482015260448082018490528152613722606482613cbb565b833b1561141b5782613750916040518093819263ef7fa71b60e01b8352602060048401526024830190613ba6565b038183885af19081156103b357839161384a575b5050823b15610263576040516358c9542560e11b815230600482015260248101839052828160448183885af19081156103b3578391613835575b50506001546001600160a01b0316833b1561141b576040519063e90956cf60e01b82526004820152828160248183885af19081156103b3578391613820575b5061137d8192604051906137f2606083613cbb565b6002825260403660208401376138078261406c565b6001600160a01b039182169052835416612d158261408d565b8161382a91613cbb565b61026357815f6137dd565b8161383f91613cbb565b61026357815f61379e565b8161385491613cbb565b61026357815f613764565b8161386991613cbb565b61026357815f6136f5565b8161387e91613cbb565b61026357815f6136b9565b8161389391613cbb565b61026357815f613640565b816138a891613cbb565b61141b57825f6135fe565b816138bd91613cbb565b61141b57825f613588565b816138d291613cbb565b61141b57825f613547565b816138e791613cbb565b61141b57825f6134d1565b816138fc91613cbb565b61141b57825f613490565b8161391191613cbb565b61141b57825f61341a565b8161392691613cbb565b61141b57825f6133d7565b8161393b91613cbb565b61141b57825f61335c565b8161395091613cbb565b61141b57825f613319565b8161396591613cbb565b61141b57825f61329e565b8161397a91613cbb565b61141b57825f61325b565b8161398f91613cbb565b61141b57825f6131e0565b816139a491613cbb565b61141b57825f61319d565b816139b991613cbb565b61141b57825f613122565b816139ce91613cbb565b61141b57825f6130df565b816139e391613cbb565b61141b57825f613064565b816139f891613cbb565b61141b57825f613021565b81613a0d91613cbb565b61141b57825f612fa6565b81613a2291613cbb565b61141b57825f612f63565b81613a3791613cbb565b61141b57825f612ee8565b81613a4c91613cbb565b61141b57825f612ea5565b81613a6191613cbb565b61141b57825f612e2a565b613a7a919294505f90613cbb565b5f92905f612de5565b6040513d5f823e3d90fd5b5f80fd5b34613a8e576040366003190112613a8e57600435801515809103613a8e5760243561ffff8116808203613a8e57613ad360018060a01b035f5416331461401c565b6020604051613ae181613c1f565b848152015260ff62ffff00600c549260081b1692169062ffffff19161717600c555f80f35b34613a8e575f366003190112613a8e57805f516020614c545f395f51905f52606092525f516020614c945f395f51905f5260208201527ff796b89427c6552c1ac705d833bfb7909f8eb5ce502c1db97f85fabc6ad835486040820152f35b600435906001600160a01b0382168203613a8e57565b604435906001600160a01b0382168203613a8e57565b602435906001600160a01b0382168203613a8e57565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a0809160ff815116845263ffffffff602082015116602085015263ffffffff604082015116604085015263ffffffff60608201511660608501526001600160401b0360808201511660808501520151910152565b604081019081106001600160401b03821117613c3a57604052565b634e487b7160e01b5f52604160045260245ffd5b61010081019081106001600160401b03821117613c3a57604052565b60c081019081106001600160401b03821117613c3a57604052565b606081019081106001600160401b03821117613c3a57604052565b608081019081106001600160401b03821117613c3a57604052565b90601f801991011681019081106001600160401b03821117613c3a57604052565b6001600160401b038111613c3a57601f01601f191660200190565b929192613d0382613cdc565b91613d116040519384613cbb565b829481845281830111613a8e578281602093845f960137010152565b6060600319820112613a8e576004356001600160a01b0381168103613a8e57916024356001600160a01b0381168103613a8e5791604435906001600160401b038211613a8e5780602383011215613a8e57816024613d9093600401359101613cf7565b90565b6080906003190112613a8e576004356001600160a01b0381168103613a8e57906024356001600160a01b0381168103613a8e57906044356001600160a01b0381168103613a8e57906064356001600160a01b0381168103613a8e5790565b9181601f84011215613a8e578235916001600160401b038311613a8e5760208381860195010111613a8e57565b90600182811c92168015613e4c575b6020831014613e3857565b634e487b7160e01b5f52602260045260245ffd5b91607f1691613e2d565b604051905f82600a5491613e6983613e1e565b8083529260018116908115613edb5750600114613e8f575b613e8d92500383613cbb565b565b50600a5f90815290915f516020614c345f395f51905f525b818310613ebf575050906020613e8d92820101613e81565b6020919350806001915483858901015201910190918492613ea7565b60209250613e8d94915060ff191682840152151560051b820101613e81565b604051905f82600b5491613f0d83613e1e565b8083529260018116908115613edb5750600114613f3057613e8d92500383613cbb565b50600b5f90815290915f516020614c745f395f51905f525b818310613f60575050906020613e8d92820101613e81565b6020919350806001915483858901015201910190918492613f48565b60405190613f8982613c1f565b600c5460ff81161515835260081c61ffff166020830152565b60405190613faf82613c6a565b816001600160401b03600d5460ff8116835263ffffffff8160081c16602084015263ffffffff8160281c16604084015263ffffffff8160481c16606084015260681c16608082015260a0600e54910152565b9080601f83011215613a8e57816020613d9093359101613cf7565b1561402357565b60405162461bcd60e51b815260206004820152600a60248201526927b7363c9037bbb732b960b11b6044820152606490fd5b6001600160401b038111613c3a5760051b60200190565b8051156140795760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156140795760400190565b3d156140c7573d906140ae82613cdc565b916140bc6040519384613cbb565b82523d5f602084013e565b606090565b156140d357565b60405162461bcd60e51b815260206004820152601960248201527813dddb995c88111053c818dc99585d1a5bdb8819985a5b1959603a1b6044820152606490fd5b51906001600160a01b0382168203613a8e57565b1561412f57565b60405162461bcd60e51b815260206004820152601c60248201527f477561726469616e2044414f206372656174696f6e206661696c6564000000006044820152606490fd5b90816020910312613a8e575190565b1561418a57565b60405162461bcd60e51b815260206004820152602360248201527f506c7567696e536574757050726f636573736f72206e6f7420636f6e666967756044820152621c995960ea1b6064820152608490fd5b6001600160a01b039091168152604060208201819052613d9092910190613ba6565b929190614214602091604086526040860190613ba6565b930152565b6002548110156140795760025f5260205f2001905f90565b90918060409360208452816020850152848401375f828201840152601f01601f1916010190565b6040516335a2eb4b60e21b60208201526001600160a01b03918216602482018190529390911660448201525f516020614c545f395f51905f526064808301919091528152906142a8608483613cbb565b6040928351926142b88585613cbb565b60018452601f1985015f5b8181106144605750509061436093918551916142de83613c85565b82525f6020830152858201526142f38261406c565b526142fd8161406c565b50835190606061430d8184613cbb565b602183527f4772616e7420524f4f545f5045524d495353494f4e20746f206465706c6f79656020840152603960f91b868401528551637532d5c160e11b815260a0600482015294859360a4850190613ba6565b600319848203016024850152825190818152602081016020808460051b8401019501935f925b8a85851061440e575050505050505091815f6020809582604485015282606485015282848203916003198301608487015252019260018060a01b03165af191821561440557505f916143d6575090565b90506020813d6020116143fd575b816143f160209383613cbb565b81010312613a8e575190565b3d91506143e4565b513d5f823e3d90fd5b86985061444e818460209496989a8186956001989a9c601f198b8503018d5251898060a01b03815116845287810151888501520151938201520190613ba6565b98019401940191889695939491614386565b602090875161446e81613c85565b5f81525f83820152606089820152828289010152016142c3565b6040515f8060208301633658153160e21b815260018060a01b038516938460248201523060448201525f516020614c545f395f51905f526064820152606481526144d3608482613cbb565b519082865af16144e161409d565b501561021f575f918291826040516020810192633658153160e21b845260248201523060448201525f516020614c945f395f51905f5260648201526064815261452b608482613cbb565b51925af15061453861409d565b50565b6040805190919061454c8382613cbb565b6001815291601f1901825f5b82811061456457505050565b60209060405161457381613c1f565b60405161457f81613c1f565b60405161458b81613c1f565b5f81525f8582015281525f84820152815260608382015282828501015201614558565b9061460d906040835260018060a01b03815116604084015260606145f96145e3602084015160808488015260c0870190613ba6565b6040840151868203603f19016080880152613ba6565b910151838203603f190160a0850152613ba6565b906020818303910152815180825260208201916020808360051b8301019401925f915b83831061463f57505050505090565b9091929394602080614691600193601f198682030187526080838b51805161ffff83825160ff81511688520151168386015282898060a01b039101511660408501520151918160608201520190613ba6565b97019301930191939290614630565b91604051926146ae84613ca0565b5f845260208401526020916040516146c68482613cbb565b5f815260408501526040516146db8482613cbb565b5f81526060850152604051916080830160608585015282518091528460a085019301905f5b8181106147b2575050815115156040850152506020015161ffff166060830152613d9092916122039161473290829084565b61473a61453b565b906040519061474882613c1f565b6001825260028583015260018060a01b03600854166040519261476a84613c1f565b8352858301526040519161477d83613c1f565b82528482015261478c8261406c565b526147968161406c565b506040519485936316aad10760e31b90850152602484016145ae565b82516001600160a01b031685529386019391860191600101614700565b9190612203613d9092604051946147e586613ca0565b5f865260208601526149086020936040516148008682613cbb565b5f815260408801526040516148158682613cbb565b5f8152606088015260405161482981613c1f565b5f81525f8682015260ff86604051926148428285613cbb565b5f84526040519461485286613c6a565b6001600160a01b039081168652828601978852604080870195865260608088018381526080890184815260a08a01958652835180880188905299519094169289019290925298519698899791966148c79290916148b291908a0190613bca565b516101806101208901526101c0880190613ba6565b94516001600160a01b0390811661014088015290518116610160870152905180519091166101808601520151166101a083015203601f198101835282613cbb565b61491061453b565b906040519061491e82613c1f565b6001825260018583015260018060a01b03600954166040519261476a84613c1f56fe608034609057601f6102f338819003918201601f19168301916001600160401b03831184841017609457808492604094855283398101031260905780516001600160a01b0381169190829003609057602001516001600160a01b0381169081900360905760018060a01b03195f5416175f5560018060a01b0319600154161760015560405161024a90816100a98239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630b467b9b1461009157508063f58c251c1461006a5763fbfa77cf1461003f575f80fd5b346100675780600319360112610067576001546040516001600160a01b039091168152602090f35b80fd5b5034610067578060031936011261006757546040516001600160a01b039091168152602090f35b90503461019c57602036600319011261019c576004359067ffffffffffffffff821161019c573660238301121561019c57816004013567ffffffffffffffff81116101de576100ea601f8201601f1916602001836101f2565b8082526020820192366024838301011161019c57815f926024602093018637830101525f546001600160a01b031633036101a0576001546001600160a01b031691823b1561019c576044925f9283604051958680958194630b467b9b60e01b8352602060048401525180918160248501528484015e8181018301849052601f01601f191681010301925af1801561019157610183575080f35b61018f91505f906101f2565b005b6040513d5f823e3d90fd5b5f80fd5b60405162461bcd60e51b815260206004820152601660248201527513db9b1e481cd95b9d1a5b995b0818d85b8818d85b1b60521b6044820152606490fd5b634e487b7160e01b5f52604160045260245ffd5b90601f8019910116810190811067ffffffffffffffff8211176101de5760405256fea2646970667358221220438209b4dda4c170f5c74c37bdf251d422653e74c4fa116f88a8fe0348cde1c264736f6c634300081c0033c65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a8815fe80e4b37c8582a3b773d1d7071f983eacfd56b5965db654f3087c25ada330175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9bf04b4486c9663d805744005c3da000eda93de6e3308a4a7a812eb565327b78da264697066735822122056b164eee82900e4532d944765fcb9cd0de2d35317dd627ff8eecdc3fba8004264736f6c634300081c0033405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acec65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db9