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
0x61020080604052346200054e5761014081620034b280380380916200002582856200069e565b8339810103126200054e57604051906001600160401b039061014083018281118482101762000688576040526200005c81620006c2565b908184526200006e60208201620006c2565b8060208601526200008260408301620006c2565b8060408701526200009660608401620006c2565b91826060880152620000ab60808501620006c2565b9485608089015262000110610120620000c760a08801620006c2565b968760a08c0152620000dc60c08201620006c2565b60c08c0152620000ef60e08201620006c2565b60e08c0152620001036101008201620006c2565b6101008c015201620006c2565b6101208901526040519660c0880190811188821017620006885760409081526001600160a01b03918216885291811660208801529182168682015291811660608601528381166080860152821660a0850152600080546001600160a01b0319168155905190807f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a36001600160a01b038316608081905263573ea57560e01b8252602090829060049082905afa9081156200055c576000916200063e575b506040516331056e5760e21b815290602090829060049082906001600160a01b03165afa9081156200055c57600091620005f5575b5060c05260405163cd3d4fb960e01b81526002600482015291602090839060249082906001600160a01b03165afa9182156200055c57600092620005ae575b50604051632e8743fd60e21b815291602090839060049082906001600160a01b03165afa9182156200055c5760009262000568575b50604080516337b6269f60e21b81526001600160a01b03928316600482015292909183916024918391165afa9081156200055c5760009162000507575b5060a0908152600160155581516001600160a01b0390811660e090815260208401518216610100908152604080860151841661012090815260608701518516610140529590940151831661016090815260c087015184166101809081529287015184166101a09081529187015184166101c090815296909501519092166101e09081529251612dda9590949092919086620006d887396080518681816107050152612803015260a05186612794015260c05186505060e0518681816101b6015261026201526101005186818161083f01528181610b9301528181610cc401528181610dfb015281816112b701528181611347015281816117360152818161179801528181611fb4015281816120440152818161235d01526123bf01526101205186818161079c01528181610a310152818161120c0152818161169301528181611f09015281816122ba0152612d1e01526101405186818161080c0152818161093b01528181610b6301528181610c93015281816110820152818161127f015281816116fe015281816119c201528181611b4301528181611c3f01528181611e3001528181611f7c01528181612325015281816125ce015281816129d401528181612b950152612c57015251856106c901525184818161030901528181611af40152611fe901525183818161034501528181610faf015281816111c7015281816112ec01528181611a8701528181611d640152611ec5015251828181610f640152818161140401528181611d0a01526129370152518181816107550152818161101a01528181611dcf01526127150152f35b90506040813d60401162000553575b8162000525604093836200069e565b810103126200054e5760206200053b82620006c2565b910151801515036200054e5738620002b6565b600080fd5b3d915062000516565b6040513d6000823e3d90fd5b9091506020813d602011620005a5575b8162000587602093836200069e565b810103126200054e576200059d604091620006c2565b919062000279565b3d915062000578565b91506020823d602011620005ec575b81620005cc602093836200069e565b810103126200054e576020620005e4600493620006c2565b925062000244565b3d9150620005bd565b90506020813d60201162000635575b8162000613602093836200069e565b810103126200054e576024926200062c602092620006c2565b91509262000205565b3d915062000604565b90506020813d6020116200067f575b816200065c602093836200069e565b810103126200054e57516001600160a01b03811681036200054e576020620001d0565b3d91506200064d565b634e487b7160e01b600052604160045260246000fd5b601f909101601f19168101906001600160401b038211908210176200068857604052565b51906001600160a01b03821682036200054e5756fe608080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c908163049aacfe146127e5575080632520e7ff146127b857806328f150eb146127745780632f54bf6e146127415780633272de0b146126ee5780633322b23d146126d0578063587cde1e14612691578063608d60eb1461063c57806367e7646f146105aa5780638da5cb5b1461058357806399fbab88146104cd578063c34c08e5146104a6578063cea1fa0414610488578063d0cb3cd11461046d578063d270444f1461044a578063e71bdf411461039e578063f05ed16a14610378578063f09a40161461022f578063f2fde38b146101465763ffa1ad7414610106573861000f565b346101415760003660031901126101415760206040517f302e312e300000000000000000000000000000000000000000000000000000008152f35b600080fd5b346101415760203660031901126101415761015f612827565b600054906001600160a01b0391828116330361021e57826001600160a01b0319921691829116176000556040519181337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a37f000000000000000000000000000000000000000000000000000000000000000016803b1561014157604483600081938195637eecd31b60e11b845260048401523360248401525af180156102125761020957005b61001b906128a1565b6040513d6000823e3d90fd5b6040516282b42960e81b8152600490fd5b3461014157604036600319011261014157610248612827565b602435906001600160a01b039081831680930361014157817f000000000000000000000000000000000000000000000000000000000000000016330361021e57811691826001600160a01b031960005416176000556040519260007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38060005260016020526040600020600160ff19825416179055337fb2fa306ae7d3dd8b0bf1082c7d2a4d7d4c11cd422de0134bafcb4cc95ce8131c600080a3807f000000000000000000000000000000000000000000000000000000000000000016803b15610141576024836000819381956338c74dd960e01b84527f00000000000000000000000000000000000000000000000000000000000000001660048401525af180156102125761020957005b34610141576000366003190112610141576020610396601754612c28565b604051908152f35b34610141576020366003190112610141576103b7612827565b6001600160a01b03908160005416330361021e571680158015610432575b61041a578060005260016020526040600020600160ff19825416179055337fb2fa306ae7d3dd8b0bf1082c7d2a4d7d4c11cd422de0134bafcb4cc95ce8131c600080a3005b6024906040519063a3653d9f60e01b82526004820152fd5b5080600052600160205260ff604060002054166103d5565b346101415760003660031901126101415760206103966104686129b9565b612c28565b346101415760003660031901126101415760206103966129b9565b34610141576000366003190112610141576020601754604051908152f35b346101415760003660031901126101415760206001600160a01b0360165416604051908152f35b3461014157602036600319011261014157600060806040516104ee816128b5565b8281528260208201528260408201528260608201520152600435600052601a60205260a06040600020604051610523816128b5565b6001600160a01b038254169182825260018101546020830190815260028201549060408401918252608060046003850154946060870195865201549401938452604051948552516020850152516040840152516060830152516080820152f35b346101415760003660031901126101415760206001600160a01b0360005416604051908152f35b34610141576020366003190112610141576105c3612827565b6001600160a01b03908160005416330361021e571680158015610623575b61041a57806000526001602052604060002060ff198154169055337f2e164a064eb9f0b2ca2868638164f74f683f65ddac9edfe30b907e032301fb1d600080a3005b5080600052600160205260ff60406000205416156105e1565b60403660031901126101415760043567ffffffffffffffff81116101415761066890369060040161283d565b9060243567ffffffffffffffff81116101415761068990369060040161283d565b60026015541461264c5760026015558381036126215760005b848110610a9e57846001600160a01b0390816016541633146106c6575b6001601555005b337f0000000000000000000000000000000000000000000000000000000000000000831603610a1c5760408051635c08631b60e11b81529190826004817f000000000000000000000000000000000000000000000000000000000000000087165afa8015610212576000906109da575b610740925061286e565b90610785670de0b6b3a764000061077f6107797f000000000000000000000000000000000000000000000000000000000000000061290f565b8561286e565b04612b80565b604051632cfc019d60e21b815291602080846004817f000000000000000000000000000000000000000000000000000000000000000086165afa938415610212576000946109a3575b50826107d86129b9565b81116108fa575060405163a9059cbb60e01b81526001600160a01b03851660048201526024810184905290808260448160007f000000000000000000000000000000000000000000000000000000000000000088165af18015610212576108c6575b50505b7f000000000000000000000000000000000000000000000000000000000000000016803b1561014157604051639f4db69560e01b81523360048201526001600160a01b0393909316602484015260448301939093526064820152906000908290608490829084905af18015610212576108b7575b806106bf565b6108c0906128a1565b806108b1565b81813d83116108f3575b6108da81836128ed565b81010312610141576108eb90612a50565b50848061083a565b503d6108d0565b6000546040516323b872dd60e01b81526001600160a01b039185168216600482015290861660248201526044810191909152908082806064810103816000877f0000000000000000000000000000000000000000000000000000000000000000165af180156102125761096f575b505061083d565b81813d831161099c575b61098381836128ed565b810103126101415761099490612a50565b508480610968565b503d610979565b9080945081813d83116109d3575b6109bb81836128ed565b81010312610141576109cc90612b5e565b92856107ce565b503d6109b1565b506040823d604011610a14575b816109f4604093836128ed565b810103126101415781610a0e602061074094519201612b5e565b50610736565b3d91506109e7565b6040516262af0b60e41b8152906020826004817f000000000000000000000000000000000000000000000000000000000000000087165afa801561021257600090610a6b57610740925061286e565b506020823d8211610a96575b81610a84602093836128ed565b81010312610141576107409151610736565b3d9150610a77565b8060051b90600c828601351015610141578281101561260b5781840135601e19853603018112156101415767ffffffffffffffff81860135116101415780850135360360208287010113610141576003868401351015610e90576001600160a01b03928360005416330361021e5786810135610d9157508401602001356000811315610c42576040516323b872dd60e01b815233600482015230602482015260ff82901c600003918201909118604482018190529290602081806064810103816000867f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257610c09575b507f000000000000000000000000000000000000000000000000000000000000000016803b156101415760405163145d426560e11b815233600482015260248101939093526000908390604490829084905af191821561021257600192610bfa575b505b016106a2565b610c03906128a1565b86610bf2565b6020813d602011610c3a575b81610c22602093836128ed565b8101031261014157610c3390612a50565b5087610b90565b3d9150610c15565b60008112610c55575b5060019150610bf4565b8060ff1c6000039081011891610c696129b9565b8311610d6b5760405163a9059cbb60e01b81523360048201526024810184905260208160448160007f000000000000000000000000000000000000000000000000000000000000000087165af1801561021257610d32575b507f000000000000000000000000000000000000000000000000000000000000000016803b156101415760405163b014da2160e01b815233600482015260248101939093526000908390604490829084905af19182156102125760019215610c4b57610d2c906128a1565b86610c4b565b6020813d602011610d63575b81610d4b602093836128ed565b8101031261014157610d5c90612a50565b5087610cc1565b3d9150610d3e565b604483610d766129b9565b906040519163038f2bdb60e41b835260048301526024820152fd5b860135600114610da5575060019150610bf4565b840160200135918215610c4b57600080808086335af13d15610e8b573d67ffffffffffffffff8111610e755760405190610de9601f8201601f1916602001836128ed565b8152600060203d92013e5b15610e63577f000000000000000000000000000000000000000000000000000000000000000016803b15610141576040516379a4952760e01b815233600482015260248101939093526000908390604490829084905af19182156102125760019215610c4b57610d2c906128a1565b604051630ca79afd60e01b8152600490fd5b634e487b7160e01b600052604160045260246000fd5b610df4565b610e9c92919233612d9a565b1561021e5760038287013503610edd575b50600c8186013511610ec25750600190610bf4565b604051636bb50f4f60e11b8152908501356004820152602490fd5b6004828701350315610ead5785820135600503611c64578481016060013515611c2f57610f58610100604083880101355b60408051634a3f088d60e01b81523060048201526001600160a01b039283166024820152858a01918201359092166044830152606001351515606482015291829081906084820190565b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa801561021257600091600091611bf3575b506040516363ae210360e01b815260208160048160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561021257600091611bc1575b5060789081810291818304149015171561186057346064820411611baf57611047670de0b6b3a764000061077f61103e7f000000000000000000000000000000000000000000000000000000000000000061290f565b6064850461286e565b9060a0858a010135611ae5575b88850160800135156119855760405161106c816128d1565b6002815260403660208301376001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166110ab82612a9f565b526110b581612aac565b6001600160a01b036040888d01013516905260c0868b0101358064e8d4a5100081020464e8d4a5100014811517156118605760e0878c0101358064e8d4a5100081020464e8d4a5100014811517156118605764e8d4a510009260209284611140938f8c606091604051998a98899863f2ae372f60e01b8a5261014060048b01526101448a0190612abc565b966001600160a01b03604085850101351660248a015260a0848401013560448a0152600060648a0152026084880152010135151560a48501520260c48301526064860460e48301527f434f50494e00000000000000000000000000000000000000000000000000000061010483015260006101248301520381606486046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102125761195a575b505b604051632cfc019d60e21b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9283156102125760009361191e575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018290526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576118e5575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b1561014157604051639f4db69560e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166004830152909316602484015260649182900460448401529082015260008180608481010381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576118d6575b5081158015806118cd575b156118c357670de0b6b3a76400008302928304670de0b6b3a7640000141715611860576113ab91612881565b60c08287010135906c0c9f2c9cd04674edea400000009180838102048314811517156118605760405192637092736960e11b84526001600160a01b036040868b0101351660048501526020846024816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa918215610212578994600093611887575b50611443929102612881565b6114526040858501013561290f565b906000926001600160a01b036040878701013516600052601a602052604060002060405190611480826128b5565b6001600160a01b038154168252600460018201549182602085015260028101546040850152600381015460608501520154608083015280831160001461187e576114ca90836129ac565b905b81806115f9575b5050508360808787010135611561575b60406001600160a01b039182826004999a81519b6115008d6128b5565b8360208383010135168d5260208d01978852828d0198895260608d01998a5260808d019a8b52010135168152601a602052209651166001600160a01b0319875416178655516001860155516002850155516003840155519101555b86610ead565b919350919350611571848461286e565b8060011b90808204600214901517156115e557670de0b6b3a76400006115979104612d07565b946115a186612cd7565b6115b38660ff1c830387810118612b80565b60175481810181116115d157016017559489949093909290916114e3565b634e487b7160e01b84526011600452602484fd5b634e487b7160e01b82526011600452602482fd5b909196506040820151809111611876575b5061161960608201518761286e565b808060011b046002148115171561186057670de0b6b3a76400006116409160011b04612d07565b906080810151808311611858575b6116749161165d606092612b80565b61166a60179182546129ac565b9055015191612b80565b9060405196632cfc019d60e21b88526020886004816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9788156102125760009861181c575b5060405163a9059cbb60e01b81526001600160a01b0389166004820152602481018490526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576117e3575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b15610141576001600160a01b0360405198630f00960b60e11b8a52166004890152602488015260448701526064860152600085608481836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1948515610212578a956117cf575b80806114d3565b6117da9194506128a1565b6000928c6117c8565b6020813d602011611814575b816117fc602093836128ed565b810103126101415761180d90612a50565b508f61172b565b3d91506117ef565b9097506020813d602011611850575b81611838602093836128ed565b810103126101415761184990612b5e565b968f6116c4565b3d915061182b565b91508161164e565b634e487b7160e01b600052601160045260246000fd5b95508d61160a565b506000906114cc565b92509093506020823d6020116118bb575b816118a5602093836128ed565b8101031261014157905188939091611443611437565b3d9150611898565b50505060006113ab565b5081151561137f565b6118df906128a1565b89611374565b6020813d602011611916575b816118fe602093836128ed565b810103126101415761190f90612a50565b508c6112ac565b3d91506118f1565b9092506020813d602011611952575b8161193a602093836128ed565b810103126101415761194b90612b5e565b918c611245565b3d915061192d565b602090813d831161197e575b61197081836128ed565b81010312610141578b6111f4565b503d611966565b604051611991816128d1565b6002815260403660208301376119a681612a9f565b6001600160a01b036040888d0101351690526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166119eb82612aac565b5260c0868b010135908164e8d4a5100081020464e8d4a5100014821517156118605760e0878c010135918264e8d4a5100081020464e8d4a510001483151715611860578b611a7789946020946040519687958695637be7d14160e01b875264e8d4a5100060648c049502936040309464e8d4a51000606082860101359502930101359060048901612af9565b0381606486046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257611aba575b506111f6565b602090813d8311611ade575b611ad081836128ed565b81010312610141578b611ab4565b503d611ac6565b60405163095ea7b360e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600482015289860160a0013560248201526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257611b76575b50611054565b6020813d602011611ba7575b81611b8f602093836128ed565b8101031261014157611ba090612a50565b508b611b70565b3d9150611b82565b6040516369343e3760e11b8152600490fd5b90506020813d602011611beb575b81611bdc602093836128ed565b8101031261014157518a610fe8565b3d9150611bcf565b9050611c1991506101003d61010011611c28575b611c1181836128ed565b810190612a5d565b50505050509190509089610f97565b503d611c07565b610f586101006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610f0e565b85820135600603612605576001600160a01b036040828701013516600052601a6020526001600160a01b03604060002054166001600160a01b036020838801013516036125f35784810160600135156125be5760408051634a3f088d60e01b81523060048201526001600160a01b038784019283013516602482018190526044820152606090910135151560648201526101008180608481015b03816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa90811561021257600090600092612593575b50801580801561258b575b612579576040516363ae210360e01b815260208160048160007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561021257600091612547575b5060789081810291818304149015171561186057346064820411611baf57611df3670de0b6b3a764000061077f61103e7f000000000000000000000000000000000000000000000000000000000000000061290f565b90604051611e00816128d1565b6002815260403660208301376001600160a01b036040888d01013516611e2582612a9f565b526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016611e5982612aac565b526080878c0101359064e8d4a51000918083810204831481151715611860578c92611eb588926020948c6040519788968796637be7d14160e01b885260648c049502936040309460608186010135940101359060048901612af9565b0381606486046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102125761251c575b50604051632cfc019d60e21b8152916020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa928315610212576000936124e0575b5060405163a9059cbb60e01b81526001600160a01b0384166004820152602481018290526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610212576124a7575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b1561014157604051639f4db69560e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b039081166004830152909316602484015260649182900460448401529082015260008180608481010381836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561021257612498575b5081670de0b6b3a7640000810204670de0b6b3a7640000141715611860576120b082670de0b6b3a76400006120a98a95828602612881565b9302612881565b6120bf6040858501013561290f565b906000926001600160a01b036040878701013516600052601a6020526040600020604051906120ed826128b5565b6001600160a01b038154168252600460018201549182602085015260028101546040850152600381015460608501520154608083015280831160001461248f5761213790836129ac565b905b8180612237575b5050508380946121c7575b60406001600160a01b039182826004999a81519b6121688d6128b5565b8360208383010135168d5260208d01978852828d0198895260608d01998a5260808d019a8b52010135168152601a602052209651166001600160a01b03198754161786555160018601555160028501555160038401555191015561155b565b9193509193506121d7848461286e565b8060011b90808204600214901517156115e557670de0b6b3a76400006121fd9104612d07565b9461220786612cd7565b6122198660ff1c830387810118612b80565b60175481810181116115d1570160175594899490939092909161214b565b909196506040820151809111612487575b5061225760608201518761286e565b808060011b046002148115171561186057670de0b6b3a764000061227e9160011b04612d07565b90608081015180831161247f575b61229b9161165d606092612b80565b9060405196632cfc019d60e21b88526020886004816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa97881561021257600098612443575b5060405163a9059cbb60e01b81526001600160a01b0389166004820152602481018490526020818060448101038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af180156102125761240a575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b15610141576001600160a01b0360405198630f00960b60e11b8a52166004890152602488015260448701526064860152600085608481836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1948515610212578a956123f6575b8080612140565b6124019194506128a1565b6000928c6123ef565b6020813d60201161243b575b81612423602093836128ed565b810103126101415761243490612a50565b508f612352565b3d9150612416565b9097506020813d602011612477575b8161245f602093836128ed565b810103126101415761247090612b5e565b968f6122eb565b3d9150612452565b91508161228c565b95508d612248565b50600090612139565b6124a1906128a1565b8a612071565b6020813d6020116124d8575b816124c0602093836128ed565b81010312610141576124d190612a50565b508d611fa9565b3d91506124b3565b9092506020813d602011612514575b816124fc602093836128ed565b810103126101415761250d90612b5e565b918d611f42565b3d91506124ef565b602090813d8311612540575b61253281836128ed565b81010312610141578c611ef2565b503d612528565b90506020813d602011612571575b81612562602093836128ed565b8101031261014157518b611d9d565b3d9150612555565b60405163556729af60e01b8152600490fd5b508215611d49565b90506125b091506101003d61010011611c2857611c1181836128ed565b505050505091905089611d3e565b611cfe6101006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016610f0e565b60405163c4d1e76d60e01b8152600490fd5b5061155b565b634e487b7160e01b600052603260045260246000fd5b6040517fff633a38000000000000000000000000000000000000000000000000000000008152600490fd5b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b34610141576020366003190112610141576001600160a01b036126b2612827565b166000526001602052602060ff604060002054166040519015158152f35b34610141576000366003190112610141576020601854604051908152f35b34610141576020366003190112610141576020610396670de0b6b3a764000061077f6127397f000000000000000000000000000000000000000000000000000000000000000061290f565b60043561286e565b3461014157602036600319011261014157602061275c612827565b6001600160a01b038060005416911614604051908152f35b346101415760003660031901126101415760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101415760203660031901126101415760206127db6127d6612827565b612d9a565b6040519015158152f35b34610141576000366003190112610141576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361014157565b9181601f840112156101415782359167ffffffffffffffff8311610141576020808501948460051b01011161014157565b8181029291811591840414171561186057565b811561288b570490565b634e487b7160e01b600052601260045260246000fd5b67ffffffffffffffff8111610e7557604052565b60a0810190811067ffffffffffffffff821117610e7557604052565b6060810190811067ffffffffffffffff821117610e7557604052565b90601f8019910116810190811067ffffffffffffffff821117610e7557604052565b602060249160405192838092637092736960e11b82526001600160a01b0380911660048301527f0000000000000000000000000000000000000000000000000000000000000000165afa801561021257600090612973575b64e8d4a5100091500490565b6020823d82116129a4575b8161298b602093836128ed565b810103126129a1575064e8d4a510009051612967565b80fd5b3d915061297e565b9190820391821161186057565b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561021257600090612a1d575b612a1a9150601754906129ac565b90565b6020823d8211612a48575b81612a35602093836128ed565b810103126129a15750612a1a9051612a0c565b3d9150612a28565b5190811515820361014157565b9190826101009103126101415781519160208101519160408201519160608101519160808201519160a08101519160e0612a9960c08401612a50565b92015190565b80511561260b5760200190565b80516001101561260b5760400190565b90815180825260208080930193019160005b828110612adc575050505090565b83516001600160a01b031685529381019392810192600101612ace565b939461014095612b1960009894939a99959a610160808952880190612abc565b996001600160a01b0380941660208801528860408801526060870152151560808601521660a084015260c08301528360e0830152610100820152826101208201520152565b51906001600160a01b038216820361014157565b604d811161186057600a0a90565b60405163313ce56760e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561021257600091612bef575b50670de0b6b3a764000091612be5612beb92612b72565b9061286e565b0490565b906020823d8211612c20575b81612c08602093836128ed565b810103126129a1575051670de0b6b3a7640000612bce565b3d9150612bfb565b670de0b6b3a7640000908181029181830414901517156118605760405163313ce56760e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561021257600091612ca4575b5090612c9e612a1a92612b72565b90612881565b906020823d8211612ccf575b81612cbd602093836128ed565b810103126129a1575051612c9e612c90565b3d9150612cb0565b612ceb908060ff1c60000390810118612b80565b612cf36129b9565b8111612cfc5750565b604490610d766129b9565b6040516358710f4560e11b815291906020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561021257600093612d63575b5091612a1a9192612881565b6020813d8211612d92575b81612d7b602093836128ed565b81010312612d8e57519250612a1a612d57565b8380fd5b3d9150612d6e565b6001600160a01b0380600054169116908114908115612db7575090565b9050600052600160205260ff604060002054169056fea164736f6c6343000812000a0000000000000000000000006acd1ac7eeea7783e805a1c4e31c85a4535d682b000000000000000000000000eb452323b4bfb289867d21caa524535f443a5904000000000000000000000000fc9339f4ce0cb840c64f9f7cbbcdf16c4ed008a0000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e00000000000000000000000002fe95465616f6252636fc101400147c0a1e64f6c000000000000000000000000abbc5f99639c9b6bcb58544ddf04efa6802f4064000000000000000000000000b87a436b93ffe9d75c5cfa7bacfff96430b09868000000000000000000000000489ee077994b6658eafa855c308275ead8097c4a00000000000000000000000082af49447d8a07e3bd95bd0d56f35241523fbab1