0 txs
0 calls
constructor
constructor((address factory, address events, address configs, address usdAsset, address automate, address taskCreator, address router, address positionRouter, address vault, address weth) _params)
functions
automate
viewfunction automate() view returns (address)
availableFund
viewfunction availableFund() view returns (uint256)
availableFundD18
viewfunction availableFundD18() view returns (uint256)
dedicatedMsgSender
viewfunction dedicatedMsgSender() view returns (address)
delegates
viewfunction delegates(address delegate) view returns (bool)
executor
viewfunction executor() view returns (address)
executorUsdFee
viewfunction executorUsdFee(uint256 _fee) view returns (uint256)
isAuth
viewfunction isAuth(address msgSender) view returns (bool)
isOwner
viewfunction isOwner(address msgSender) view returns (bool)
lockedFund
viewfunction lockedFund() view returns (uint256)
lockedFundD18
viewfunction lockedFundD18() view returns (uint256)
owner
viewfunction owner() view returns (address)
positions
viewfunction positions(uint256 _key) view returns (tuple)
taskId
viewfunction taskId() view returns (uint256)
VERSION
viewfunction VERSION() view returns (bytes32)
addDelegate
nonpayablefunction addDelegate(address _delegate)
execute
payablefunction execute(uint8[] _commands, bytes[] _inputs) payable
init
nonpayablefunction init(address _owner, address _executor)
removeDelegate
nonpayablefunction removeDelegate(address _delegate)
transferOwnership
nonpayablefunction transferOwnership(address _newOwner)
events
DelegatedCopyWalletAdded
event DelegatedCopyWalletAdded(address indexed caller, address indexed delegate)
DelegatedCopyWalletRemoved
event DelegatedCopyWalletRemoved(address indexed caller, address indexed delegate)
OwnershipTransferred
event OwnershipTransferred(address indexed caller, address indexed newOwner)
errors
CannotExecuteTask
error CannotExecuteTask(uint256 taskId, address executor)
EthWithdrawalFailed
error EthWithdrawalFailed()
ExecutionFeeNotEnough
error ExecutionFeeNotEnough()
InsufficientAvailableFund
error InsufficientAvailableFund(uint256 available, uint256 required)
InvalidCommandType
error InvalidCommandType(uint256 commandType)
InvalidDelegateAddress
error InvalidDelegateAddress(address delegateAddress)
LengthMismatch
error LengthMismatch()
NoOpenPosition
error NoOpenPosition()
NoOrderFound
error NoOrderFound()
NoTaskFound
error NoTaskFound()
SourceMismatch
error SourceMismatch()
Unauthorized
error Unauthorized()
ZeroSizeDelta
error ZeroSizeDelta()
creation bytecode
0x6102008060405234620005635761014081620036628038038091620000258285620006b3565b8339810103126200056357604051906001600160401b03906101408301828111848210176200069d576040526200005c81620006d7565b908184526200006e60208201620006d7565b8060208601526200008260408301620006d7565b8060408701526200009660608401620006d7565b91826060880152620000ab60808501620006d7565b9485608089015262000110610120620000c760a08801620006d7565b968760a08c0152620000dc60c08201620006d7565b60c08c0152620000ef60e08201620006d7565b60e08c0152620001036101008201620006d7565b6101008c015201620006d7565b6101208901526040519660c08801908111888210176200069d5760409081526001600160a01b03918216885291811660208801529182168682015291811660608601528381166080860152821660a0850152600080546001600160a01b0319168155905190807f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36001600160a01b038316608081905263573ea57560e01b8252602090829060049082905afa908115620005715760009162000653575b506040516331056e5760e21b815290602090829060049082906001600160a01b03165afa90811562000571576000916200060a575b5060c05260405163cd3d4fb960e01b81526002600482015291602090839060249082906001600160a01b03165afa9182156200057157600092620005c3575b50604051632e8743fd60e21b815291602090839060049082906001600160a01b03165afa91821562000571576000926200057d575b50604080516337b6269f60e21b81526001600160a01b03928316600482015292909183916024918391165afa90811562000571576000916200051c575b5060a0908152600160155581516001600160a01b0390811660e090815260208401518216610100908152604080860151841661012090815260608701518516610140529590940151831661016090815260c087015184166101809081529287015184166101a09081529187015184166101c090815296909501519092166101e09081529251612f759590949092919086620006ed873960805186818161070f01526129e7015260a05186612978015260c05186505060e0518681816101b6015261026201526101005186818161084901528181610b9d01528181610cce01528181610e05015281816112ce0152818161135e0152818161174d015281816117af01528181612148015281816121d8015281816124f101526125530152610120518681816107a601528181610a3b01528181611223015281816116aa0152818161209d0152818161244e0152612d240152610140518681816108160152818161094501528181610b6d01528181610c9d015281816110900152818161129601528181611715015281816119fa01528181611a7f01528181611b0401528181611cb101528181611d7801528181611f7a01528181612110015281816124b9015281816126f4015281816127b201528181612bd401528181612df30152612eb5015251856106d3015251848181610313015281816119ab015261217d01525183818161034f01528181610fb9015281816111de0152818161130301528181611c3a01528181611e9d0152612059015251828181610f6e0152818161141b01528181611e430152612b3701525181818161075f0152818161102401528181611f0801526128f90152f35b90506040813d60401162000568575b816200053a60409383620006b3565b81010312620005635760206200055082620006d7565b91015180151503620005635738620002b6565b600080fd5b3d91506200052b565b6040513d6000823e3d90fd5b9091506020813d602011620005ba575b816200059c60209383620006b3565b810103126200056357620005b2604091620006d7565b919062000279565b3d91506200058d565b91506020823d60201162000601575b81620005e160209383620006b3565b8101031262000563576020620005f9600493620006d7565b925062000244565b3d9150620005d2565b90506020813d6020116200064a575b816200062860209383620006b3565b81010312620005635760249262000641602092620006d7565b91509262000205565b3d915062000619565b90506020813d60201162000694575b816200067160209383620006b3565b810103126200056357516001600160a01b038116810362000563576020620001d0565b3d915062000662565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b038211908210176200069d57604052565b51906001600160a01b0382168203620005635756fe608080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c908163049aacfe146129c9575080632520e7ff1461299c57806328f150eb146129585780632f54bf6e146129255780633272de0b146128d25780633322b23d146128b4578063587cde1e14612875578063608d60eb1461064657806367e7646f146105b45780638da5cb5b1461058d57806399fbab88146104d7578063c34c08e5146104b0578063cea1fa0414610492578063d0cb3cd114610477578063d270444f14610454578063e71bdf41146103a8578063f05ed16a14610382578063f09a40161461022f578063f2fde38b146101465763ffa1ad7414610106573861000f565b346101415760003660031901126101415760206040517f302e312e300000000000000000000000000000000000000000000000000000008152f35b600080fd5b346101415760203660031901126101415761015f612a0b565b600054906001600160a01b0391828116330361021e57826001600160a01b0319921691829116176000556040519181337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a37f000000000000000000000000000000000000000000000000000000000000000016803b1561014157604483600081938195637eecd31b60e11b845260048401523360248401525af180156102125761020957005b61001b90612a85565b6040513d6000823e3d90fd5b6040516282b42960e81b8152600490fd5b3461014157604036600319011261014157610248612a0b565b602435906001600160a01b039081831680930361014157817f000000000000000000000000000000000000000000000000000000000000000016330361021e57811691806001600160a01b0319848160005416176000556040519460007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38160005260016020526040600020600160ff198254161790556016541617601655337fb2fa306ae7d3dd8b0bf1082c7d2a4d7d4c11cd422de0134bafcb4cc95ce8131c600080a3807f000000000000000000000000000000000000000000000000000000000000000016803b15610141576024836000819381956338c74dd960e01b84527f00000000000000000000000000000000000000000000000000000000000000001660048401525af180156102125761020957005b346101415760003660031901126101415760206103a0601754612e86565b604051908152f35b34610141576020366003190112610141576103c1612a0b565b6001600160a01b03908160005416330361021e57168015801561043c575b610424578060005260016020526040600020600160ff19825416179055337fb2fa306ae7d3dd8b0bf1082c7d2a4d7d4c11cd422de0134bafcb4cc95ce8131c600080a3005b6024906040519063a3653d9f60e01b82526004820152fd5b5080600052600160205260ff604060002054166103df565b346101415760003660031901126101415760206103a0610472612bb9565b612e86565b346101415760003660031901126101415760206103a0612bb9565b34610141576000366003190112610141576020601754604051908152f35b346101415760003660031901126101415760206001600160a01b0360165416604051908152f35b3461014157602036600319011261014157600060806040516104f881612a99565b8281528260208201528260408201528260608201520152600435600052601a60205260a0604060002060405161052d81612a99565b6001600160a01b038254169182825260018101546020830190815260028201549060408401918252608060046003850154946060870195865201549401938452604051948552516020850152516040840152516060830152516080820152f35b346101415760003660031901126101415760206001600160a01b0360005416604051908152f35b34610141576020366003190112610141576105cd612a0b565b6001600160a01b03908160005416330361021e57168015801561062d575b61042457806000526001602052604060002060ff198154169055337f2e164a064eb9f0b2ca2868638164f74f683f65ddac9edfe30b907e032301fb1d600080a3005b5080600052600160205260ff60406000205416156105eb565b60403660031901126101415760043567ffffffffffffffff811161014157610672903690600401612a21565b9060243567ffffffffffffffff811161014157610693903690600401612a21565b6002601554146128305760026015558381036128055760005b848110610aa857846001600160a01b0390816016541633146106d0575b6001601555005b337f0000000000000000000000000000000000000000000000000000000000000000831603610a265760408051635c08631b60e11b81529190826004817f000000000000000000000000000000000000000000000000000000000000000087165afa8015610212576000906109e4575b61074a9250612a52565b9061078f670de0b6b3a76400006107896107837f0000000000000000000000000000000000000000000000000000000000000000612b0f565b85612a52565b04612dde565b604051632cfc019d60e21b815291602080846004817f000000000000000000000000000000000000000000000000000000000000000086165afa938415610212576000946109ad575b50826107e2612bb9565b8111610904575060405163a9059cbb60e01b81526001600160a01b03851660048201526024810184905290808260448160007f000000000000000000000000000000000000000000000000000000000000000088165af18015610212576108d0575b50505b7f000000000000000000000000000000000000000000000000000000000000000016803b1561014157604051639f4db69560e01b81523360048201526001600160a01b0393909316602484015260448301939093526064820152906000908290608490829084905af18015610212576108c1575b806106c9565b6108ca90612a85565b806108bb565b81813d83116108fd575b6108e48183612aed565b81010312610141576108f590612c50565b508480610844565b503d6108da565b6000546040516323b872dd60e01b81526001600160a01b039185168216600482015290861660248201526044810191909152908082806064810103816000877f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257610979575b5050610847565b81813d83116109a6575b61098d8183612aed565b810103126101415761099e90612c50565b508480610972565b503d610983565b9080945081813d83116109dd575b6109c58183612aed565b81010312610141576109d690612cf9565b92856107d8565b503d6109bb565b506040823d604011610a1e575b816109fe60409383612aed565b810103126101415781610a18602061074a94519201612cf9565b50610740565b3d91506109f1565b6040516262af0b60e41b8152906020826004817f000000000000000000000000000000000000000000000000000000000000000087165afa801561021257600090610a755761074a9250612a52565b506020823d8211610aa0575b81610a8e60209383612aed565b810103126101415761074a9151610740565b3d9150610a81565b8060051b90600c82860135101561014157828110156127ef5781840135601e19853603018112156101415767ffffffffffffffff81860135116101415780850135360360208287010113610141576003868401351015610e9a576001600160a01b03928360005416330361021e5786810135610d9b57508401602001356000811315610c4c576040516323b872dd60e01b815233600482015230602482015260ff82901c600003918201909118604482018190529290602081806064810103816000867f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257610c13575b507f000000000000000000000000000000000000000000000000000000000000000016803b156101415760405163145d426560e11b815233600482015260248101939093526000908390604490829084905af191821561021257600192610c04575b505b016106ac565b610c0d90612a85565b86610bfc565b6020813d602011610c44575b81610c2c60209383612aed565b8101031261014157610c3d90612c50565b5087610b9a565b3d9150610c1f565b60008112610c5f575b5060019150610bfe565b8060ff1c6000039081011891610c73612bb9565b8311610d755760405163a9059cbb60e01b81523360048201526024810184905260208160448160007f000000000000000000000000000000000000000000000000000000000000000087165af1801561021257610d3c575b507f000000000000000000000000000000000000000000000000000000000000000016803b156101415760405163b014da2160e01b815233600482015260248101939093526000908390604490829084905af19182156102125760019215610c5557610d3690612a85565b86610c55565b6020813d602011610d6d575b81610d5560209383612aed565b8101031261014157610d6690612c50565b5087610ccb565b3d9150610d48565b604483610d80612bb9565b906040519163038f2bdb60e41b835260048301526024820152fd5b860135600114610daf575060019150610bfe565b840160200135918215610c5557600080808086335af13d15610e95573d67ffffffffffffffff8111610e7f5760405190610df3601f8201601f191660200183612aed565b8152600060203d92013e5b15610e6d577f000000000000000000000000000000000000000000000000000000000000000016803b15610141576040516379a4952760e01b815233600482015260248101939093526000908390604490829084905af19182156102125760019215610c5557610d3690612a85565b604051630ca79afd60e01b8152600490fd5b634e487b7160e01b600052604160045260246000fd5b610dfe565b610ea692919233612f35565b1561021e5760038287013503610ee7575b50600c8186013511610ecc5750600190610bfe565b604051636bb50f4f60e11b8152908501356004820152602490fd5b6004828701350315610eb75785820135600503611d9d578481016060013515611d6857610f62610100604083880101355b60408051634a3f088d60e01b81523060048201526001600160a01b039283166024820152858a01918201359092166044830152606001351515606482015291829081906084820190565b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa801561021257600091600091611d2c575b506040516363ae210360e01b815260208160048160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561021257600091611cfa575b5060789081810291818304149015171561187757346064820411611ce857611051670de0b6b3a76400006107896110487f0000000000000000000000000000000000000000000000000000000000000000612b0f565b60648504612a52565b908885016080013515611ab6578885016060013515611a665760405161107681612ad1565b6002815260403660208301376110bf816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166110b982612c9f565b52612cac565b6001600160a01b036040888d0101351690525b60a0868b01013561199c575b60c0868b0101358064e8d4a5100081020464e8d4a5100014811517156118775760e0878c0101358064e8d4a5100081020464e8d4a5100014811517156118775764e8d4a510009260209284611157938f8c606091604051998a98899863f2ae372f60e01b8a5261014060048b01526101448a0190612cbc565b966001600160a01b03604085850101351660248a015260a0848401013560448a0152600060648a0152026084880152010135151560a48501520260c48301526064860460e48301527f434f50494e00000000000000000000000000000000000000000000000000000061010483015260006101248301520381606486046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257611971575b505b604051632cfc019d60e21b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561021257600093611935575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018290526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576118fc575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b1561014157604051639f4db69560e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166004830152909316602484015260649182900460448401529082015260008180608481010381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576118ed575b5081158015806118e4575b156118da57670de0b6b3a76400008302928304670de0b6b3a7640000141715611877576113c291612a65565b60c08287010135906c0c9f2c9cd04674edea400000009180838102048314811517156118775760405192637092736960e11b84526001600160a01b036040868b0101351660048501526020846024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa91821561021257899460009361189e575b5061145a929102612a65565b61146960408585010135612b0f565b906000926001600160a01b036040878701013516600052601a60205260406000206040519061149782612a99565b6001600160a01b0381541682526004600182015491826020850152600281015460408501526003810154606085015201546080830152808311600014611895576114e19083612bac565b905b8180611610575b5050508360808787010135611578575b60406001600160a01b039182826004999a81519b6115178d612a99565b8360208383010135168d5260208d01978852828d0198895260608d01998a5260808d019a8b52010135168152601a602052209651166001600160a01b0319875416178655516001860155516002850155516003840155519101555b86610eb7565b9193509193506115888484612a52565b8060011b90808204600214901517156115fc57670de0b6b3a76400006115ae9104612d0d565b946115b886612da0565b6115ca8660ff1c830387810118612dde565b60175481810181116115e857016017559489949093909290916114fa565b634e487b7160e01b84526011600452602484fd5b634e487b7160e01b82526011600452602482fd5b90919650604082015180911161188d575b50611630606082015187612a52565b808060011b046002148115171561187757670de0b6b3a76400006116579160011b04612d0d565b90608081015180831161186f575b61168b91611674606092612dde565b6116816017918254612bac565b9055015191612dde565b9060405196632cfc019d60e21b88526020886004816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa97881561021257600098611833575b5060405163a9059cbb60e01b81526001600160a01b0389166004820152602481018490526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576117fa575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b15610141576001600160a01b0360405198630f00960b60e11b8a52166004890152602488015260448701526064860152600085608481836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1948515610212578a956117e6575b80806114ea565b6117f1919450612a85565b6000928c6117df565b6020813d60201161182b575b8161181360209383612aed565b810103126101415761182490612c50565b508f611742565b3d9150611806565b9097506020813d602011611867575b8161184f60209383612aed565b810103126101415761186090612cf9565b968f6116db565b3d9150611842565b915081611665565b634e487b7160e01b600052601160045260246000fd5b95508d611621565b506000906114e3565b92509093506020823d6020116118d2575b816118bc60209383612aed565b810103126101415790518893909161145a61144e565b3d91506118af565b50505060006113c2565b50811515611396565b6118f690612a85565b8961138b565b6020813d60201161192d575b8161191560209383612aed565b810103126101415761192690612c50565b508c6112c3565b3d9150611908565b9092506020813d602011611969575b8161195160209383612aed565b810103126101415761196290612cf9565b918c61125c565b3d9150611944565b602090813d8311611995575b6119878183612aed565b81010312610141578b61120b565b503d61197d565b60405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031660048201528a870160a0013560248201526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257611a2d575b506110de565b6020813d602011611a5e575b81611a4660209383612aed565b8101031261014157611a5790612c50565b508c611a27565b3d9150611a39565b604051611a7281612ab5565b60018152602036818301377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ab082612c9f565b526110d2565b8885016060013515611c9857604051611ace81612ad1565b600281526040366020830137808a6001600160a01b03604089611af085612c9f565b93010135169052611b2a6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691612cac565b525b611b3b60a0878c010135612e86565b908164e8d4a5100081020464e8d4a5100014821517156118775760c0878c010135908164e8d4a5100081020464e8d4a5100014821517156118775760e0888d010135908164e8d4a5100081020464e8d4a5100014821517156118775764e8d4a510009384611bd1938f8c606091846020996040519b8c9a8b9a637be7d14160e01b8c5261016060048d01526101648c0190612cbc565b986001600160a01b03604087870101351660248c01520260448a0152026064880152010135151560848501523060a48501520260c4830152600060e483015260648604610104830152600061012483015260006101448301520381606486046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257611c6d575b5061120d565b602090813d8311611c91575b611c838183612aed565b81010312610141578b611c67565b503d611c79565b604051611ca481612ab5565b60018152602036818301377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ce282612c9f565b52611b2c565b6040516369343e3760e11b8152600490fd5b90506020813d602011611d24575b81611d1560209383612aed565b8101031261014157518a610ff2565b3d9150611d08565b9050611d5291506101003d61010011611d61575b611d4a8183612aed565b810190612c5d565b50505050509190509089610fa1565b503d611d40565b610f626101006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610f18565b858201356006036127e9576001600160a01b036040828701013516600052601a6020526001600160a01b03604060002054166001600160a01b036020838801013516036127d75784810160600135156127a25760408051634a3f088d60e01b81523060048201526001600160a01b038784019283013516602482018190526044820152606090910135151560648201526101008180608481015b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561021257600090600092612777575b50801580801561276f575b61275d576040516363ae210360e01b815260208160048160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156102125760009161272b575b5060789081810291818304149015171561187757346064820411611ce857611f2c670de0b6b3a76400006107896110487f0000000000000000000000000000000000000000000000000000000000000000612b0f565b9089860160600135156126db5789604051611f4681612ad1565b6002815260403660208301376001600160a01b03604089839401013516611f6c82612c9f565b52611fa06001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691612cac565b525b6080878c01013564e8d4a5100081818102048114821517156118775788928d611fef9260209460606040519788968796637be7d14160e01b88526101606004890152610164880190612cbc565b946001600160a01b0360408383010135166024880152600060448801528d6064880152010135151560848501523060a48501520260c4830152600060e483015260648604610104830152600061012483015260006101448301520381606486046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576126b0575b50604051632cfc019d60e21b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561021257600093612674575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018290526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102125761263b575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b1561014157604051639f4db69560e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166004830152909316602484015260649182900460448401529082015260008180608481010381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102125761262c575b5081670de0b6b3a7640000810204670de0b6b3a76400001417156118775761224482670de0b6b3a764000061223d8a95828602612a65565b9302612a65565b61225360408585010135612b0f565b906000926001600160a01b036040878701013516600052601a60205260406000206040519061228182612a99565b6001600160a01b0381541682526004600182015491826020850152600281015460408501526003810154606085015201546080830152808311600014612623576122cb9083612bac565b905b81806123cb575b50505083809461235b575b60406001600160a01b039182826004999a81519b6122fc8d612a99565b8360208383010135168d5260208d01978852828d0198895260608d01998a5260808d019a8b52010135168152601a602052209651166001600160a01b031987541617865551600186015551600285015551600384015551910155611572565b91935091935061236b8484612a52565b8060011b90808204600214901517156115fc57670de0b6b3a76400006123919104612d0d565b9461239b86612da0565b6123ad8660ff1c830387810118612dde565b60175481810181116115e857016017559489949093909290916122df565b90919650604082015180911161261b575b506123eb606082015187612a52565b808060011b046002148115171561187757670de0b6b3a76400006124129160011b04612d0d565b906080810151808311612613575b61242f91611674606092612dde565b9060405196632cfc019d60e21b88526020886004816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa978815610212576000986125d7575b5060405163a9059cbb60e01b81526001600160a01b0389166004820152602481018490526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102125761259e575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b15610141576001600160a01b0360405198630f00960b60e11b8a52166004890152602488015260448701526064860152600085608481836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1948515610212578a9561258a575b80806122d4565b612595919450612a85565b6000928c612583565b6020813d6020116125cf575b816125b760209383612aed565b81010312610141576125c890612c50565b508f6124e6565b3d91506125aa565b9097506020813d60201161260b575b816125f360209383612aed565b810103126101415761260490612cf9565b968f61247f565b3d91506125e6565b915081612420565b95508d6123dc565b506000906122cd565b61263590612a85565b8a612205565b6020813d60201161266c575b8161265460209383612aed565b810103126101415761266590612c50565b508d61213d565b3d9150612647565b9092506020813d6020116126a8575b8161269060209383612aed565b81010312610141576126a190612cf9565b918d6120d6565b3d9150612683565b602090813d83116126d4575b6126c68183612aed565b81010312610141578c612086565b503d6126bc565b6040516126e781612ab5565b60018152602036818301377f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661272582612c9f565b52611fa2565b90506020813d602011612755575b8161274660209383612aed565b8101031261014157518b611ed6565b3d9150612739565b60405163556729af60e01b8152600490fd5b508215611e82565b905061279491506101003d61010011611d6157611d4a8183612aed565b505050505091905089611e77565b611e376101006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610f18565b60405163c4d1e76d60e01b8152600490fd5b50611572565b634e487b7160e01b600052603260045260246000fd5b6040517fff633a38000000000000000000000000000000000000000000000000000000008152600490fd5b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b34610141576020366003190112610141576001600160a01b03612896612a0b565b166000526001602052602060ff604060002054166040519015158152f35b34610141576000366003190112610141576020601854604051908152f35b346101415760203660031901126101415760206103a0670de0b6b3a764000061078961291d7f0000000000000000000000000000000000000000000000000000000000000000612b0f565b600435612a52565b34610141576020366003190112610141576020612940612a0b565b6001600160a01b038060005416911614604051908152f35b346101415760003660031901126101415760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101415760203660031901126101415760206129bf6129ba612a0b565b612f35565b6040519015158152f35b34610141576000366003190112610141576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361014157565b9181601f840112156101415782359167ffffffffffffffff8311610141576020808501948460051b01011161014157565b8181029291811591840414171561187757565b8115612a6f570490565b634e487b7160e01b600052601260045260246000fd5b67ffffffffffffffff8111610e7f57604052565b60a0810190811067ffffffffffffffff821117610e7f57604052565b6040810190811067ffffffffffffffff821117610e7f57604052565b6060810190811067ffffffffffffffff821117610e7f57604052565b90601f8019910116810190811067ffffffffffffffff821117610e7f57604052565b602060249160405192838092637092736960e11b82526001600160a01b0380911660048301527f0000000000000000000000000000000000000000000000000000000000000000165afa801561021257600090612b73575b64e8d4a5100091500490565b6020823d8211612ba4575b81612b8b60209383612aed565b81010312612ba1575064e8d4a510009051612b67565b80fd5b3d9150612b7e565b9190820391821161187757565b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561021257600090612c1d575b612c1a915060175490612bac565b90565b6020823d8211612c48575b81612c3560209383612aed565b81010312612ba15750612c1a9051612c0c565b3d9150612c28565b5190811515820361014157565b9190826101009103126101415781519160208101519160408201519160608101519160808201519160a08101519160e0612c9960c08401612c50565b92015190565b8051156127ef5760200190565b8051600110156127ef5760400190565b90815180825260208080930193019160005b828110612cdc575050505090565b83516001600160a01b031685529381019392810192600101612cce565b51906001600160a01b038216820361014157565b6040516358710f4560e11b815291906020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561021257600093612d69575b5091612c1a9192612a65565b6020813d8211612d98575b81612d8160209383612aed565b81010312612d9457519250612c1a612d5d565b8380fd5b3d9150612d74565b612db4908060ff1c60000390810118612dde565b612dbc612bb9565b8111612dc55750565b604490610d80612bb9565b604d811161187757600a0a90565b60405163313ce56760e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561021257600091612e4d575b50670de0b6b3a764000091612e43612e4992612dd0565b90612a52565b0490565b906020823d8211612e7e575b81612e6660209383612aed565b81010312612ba1575051670de0b6b3a7640000612e2c565b3d9150612e59565b670de0b6b3a7640000908181029181830414901517156118775760405163313ce56760e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561021257600091612f02575b5090612efc612c1a92612dd0565b90612a65565b906020823d8211612f2d575b81612f1b60209383612aed565b81010312612ba1575051612efc612eee565b3d9150612f0e565b6001600160a01b0380600054169116908114908115612f52575090565b9050600052600160205260ff604060002054169056fea164736f6c6343000812000a0000000000000000000000006acd1ac7eeea7783e805a1c4e31c85a4535d682b000000000000000000000000eb452323b4bfb289867d21caa524535f443a590400000000000000000000000081ed045eab09b9164657a2ec76442f1337a38d0e000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e00000000000000000000000002fe95465616f6252636fc101400147c0a1e64f6c000000000000000000000000abbc5f99639c9b6bcb58544ddf04efa6802f4064000000000000000000000000b87a436b93ffe9d75c5cfa7bacfff96430b09868000000000000000000000000489ee077994b6658eafa855c308275ead8097c4a00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1