0 txs
17 calls
constructor
constructor((address factory, address events, address configs, address usdAsset, address automate, address taskCreator, address gainsTrading, address pyth) _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)
ethToUsd
viewfunction ethToUsd(uint256 _amount) view returns (uint256)
executor
viewfunction executor() view returns (address)
getKeyIndex
viewfunction getKeyIndex(address _source, uint256 _sourceIndex) view returns (uint32 index)
getTraderPosition
viewfunction getTraderPosition(uint32 _index) view returns (tuple traderPosition)
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)
closePosition
nonpayablefunction closePosition(uint32 _index)
execute
payablefunction execute(uint8[] _commands, bytes[] _inputs) payable
init
nonpayablefunction init(address _owner, address _executor)
removeDelegate
nonpayablefunction removeDelegate(address _delegate)
setExecutor
nonpayablefunction setExecutor(address _executor)
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()
PositionExist
error PositionExist()
SourceMismatch
error SourceMismatch()
Unauthorized
error Unauthorized()
ZeroSizeDelta
error ZeroSizeDelta()
creation bytecode
0x6101c06040818152346200055057819062002bff803803809162000024828662000555565b843961010093849181010312620005505780516001600160401b0392848201848111838210176200053a5783526200005c8162000579565b9384835260206200006f81840162000579565b80828601526200008186850162000579565b908187870152620000956060860162000579565b97886060880152620000aa6080870162000579565b93846080890152620000bf60a0880162000579565b8060a08a015260e0620000e981620000da60c08c0162000579565b9a60c08d019b8c520162000579565b990198895260018060a01b03808097169116968a519360c0850191858310908311176200053a5787918c521683528582840194168452858a84019516855285606084019b168b5280608084015260a083019680885260009160018060a01b031983541683558b5183807f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a3608082905263573ea57560e01b81528481600481855afa908115620004ec5789918e87928792620004f6575b50516331056e5760e21b81529283916004918391165afa908115620004ec579085918591620004a6575b5060c0528c5163cd3d4fb960e01b81526002600482015291829060249082905afa90811562000456578892918d8692869262000460575b5051632e8743fd60e21b81529384916004918391165afa9182156200045657918c9184938a95926200040a575b50602490835195869384926337b6269f60e21b84526004840152165afa928315620003fe57908795949392918193620003a1575b50505060a052600160155551821660e05251811689529051811661012090815296518116610140908152925181166101609081529351166101809081529351166101a0908152935161267096909590876200058f88396080518781816106f401526119ed015260a0518761194a015260c05187505060e0518781816101e2015261028b0152518681816107ed01528181610b2401528181610c5801528181610d69015261200a01525185818161074a015281816109c80152818161117d01528181611f7201526124c00152518481816107b9015281816108d501528181610af401528181610c280152818161113901528181611fd5015281816123d401526125ae015251836106b9015251828181610eda015281816110ec015281816111c10152818161131b0152818161168b0152611d0501525181611b660152f35b9180949596508c809294503d8311620003f6575b620003c1818362000555565b81010312620003f257620003d58362000579565b92015180151503620003ef57508492919083838162000264565b80fd5b5080fd5b503d620003b5565b508a51903d90823e3d90fd5b9250929350508381813d83116200044e575b62000428818362000555565b810103126200044a578792916024620004428e9362000579565b919062000230565b8280fd5b503d6200041c565b8c513d85823e3d90fd5b939450505081813d83116200049e575b6200047c818362000555565b810103126200044a5790838c6004620004968b9562000579565b919062000203565b503d62000470565b82819392503d8311620004e4575b620004c0818362000555565b81010312620004e057602491620004d8869262000579565b9092620001cc565b8380fd5b503d620004b4565b8d513d86823e3d90fd5b9350505081813d831162000532575b62000511818362000555565b81010312620004e057518881168103620004e057889085908e6004620001a2565b503d62000505565b634e487b7160e01b600052604160045260246000fd5b600080fd5b601f909101601f19168101906001600160401b038211908210176200053a57604052565b51906001600160a01b0382168203620005505756fe608080604052600436101561001d575b50361561001b57600080fd5b005b60003560e01c908163049aacfe146119cf575080631c3c0ea81461199b5780632520e7ff1461196e57806328f150eb1461192a5780632f54bf6e146118f75780633322b23d146118d9578063373257251461183957806351f954bf1461177f578063587cde1e14611740578063608d60eb1461063557806367e7646f146105a35780638da5cb5b1461057c578063946d14801461055e57806399fbab88146104c1578063c34c08e51461049a578063cea1fa041461047c578063d0cb3cd114610461578063d270444f1461043e578063e244a602146103c5578063e71bdf4114610319578063f05ed16a146102f3578063f09a40161461025b578063f2fde38b146101725763ffa1ad7414610132573861000f565b3461016d57600036600319011261016d5760206040517f302e312e300000000000000000000000000000000000000000000000000000008152f35b600080fd5b3461016d57602036600319011261016d5761018b611a11565b600054906001600160a01b0391828116330361024a57826001600160a01b0319921691829116176000556040519181337f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a37f000000000000000000000000000000000000000000000000000000000000000016803b1561016d57604483600081938195637eecd31b60e11b845260048401523360248401525af1801561023e5761023557005b61001b90611a74565b6040513d6000823e3d90fd5b6040516282b42960e81b8152600490fd5b3461016d57604036600319011261016d57610274611a11565b6024356001600160a01b03808216820361016d57807f000000000000000000000000000000000000000000000000000000000000000016330361024a5761001b9216806001600160a01b0319600054161760005560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a361244d565b3461016d57600036600319011261016d57602061031160175461257e565b604051908152f35b3461016d57602036600319011261016d57610332611a11565b6001600160a01b03908160005416330361024a5716801580156103ad575b610395578060005260016020526040600020600160ff19825416179055337fb2fa306ae7d3dd8b0bf1082c7d2a4d7d4c11cd422de0134bafcb4cc95ce8131c600080a3005b6024906040519063a3653d9f60e01b82526004820152fd5b5080600052600160205260ff60406000205416610350565b3461016d57604036600319011261016d576103de611a11565b60405160609190911b6bffffffffffffffffffffffff19166020820190815260243560348301529061041d81605481015b03601f198101835282611ac1565b519020600052601b602052602063ffffffff60406000205416604051908152f35b3461016d57600036600319011261016d57602061031161045c6123b9565b61257e565b3461016d57600036600319011261016d5760206103116123b9565b3461016d57600036600319011261016d576020601754604051908152f35b3461016d57600036600319011261016d5760206001600160a01b0360165416604051908152f35b3461016d57602036600319011261016d57600060606040516104e281611aa5565b8281528260208201528260408201520152600435600052601a6020526080604060002060405161051181611aa5565b6001600160a01b0382541691828252600181015460208301908152606060036002840154936040860194855201549301928352604051938452516020840152516040830152516060820152f35b3461016d57602036600319011261016d576020610311600435611b2b565b3461016d57600036600319011261016d5760206001600160a01b0360005416604051908152f35b3461016d57602036600319011261016d576105bc611a11565b6001600160a01b03908160005416330361024a57168015801561061c575b61039557806000526001602052604060002060ff198154169055337f2e164a064eb9f0b2ca2868638164f74f683f65ddac9edfe30b907e032301fb1d600080a3005b5080600052600160205260ff60406000205416156105da565b604036600319011261016d5760043567ffffffffffffffff811161016d57610661903690600401611a27565b60243567ffffffffffffffff811161016d57610681903690600401611a27565b9061068a611c48565b8282036117155760005b838110610a32576001600160a01b03806016541633146106b6575b6001601555005b337f00000000000000000000000000000000000000000000000000000000000000008216036109b45760408051635c08631b60e11b815290816004817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561023e57600091610974575b50905b61073282611b2b565b90604051632cfc019d60e21b815260208082600481867f0000000000000000000000000000000000000000000000000000000000000000165afa91821561023e5760009261093d575b50836107856123b9565b8111610894575060405163a9059cbb60e01b81526001600160a01b03831660048201526024810185905290808260448160007f000000000000000000000000000000000000000000000000000000000000000089165af1801561023e57610860575b50505b817f00000000000000000000000000000000000000000000000000000000000000001690813b1561016d57600060849281956040519788968795639f4db69560e01b8752336004880152166024860152604485015260648401525af1801561023e57156106af5761085a90611a74565b806106af565b81813d831161088d575b6108748183611ac1565b8101031261016d5761088590611cc3565b5084806107e7565b503d61086a565b6000546040516323b872dd60e01b81526001600160a01b039186168216600482015290841660248201526044810191909152908082806064810103816000887f0000000000000000000000000000000000000000000000000000000000000000165af1801561023e57610909575b50506107ea565b81813d8311610936575b61091d8183611ac1565b8101031261016d5761092e90611cc3565b508480610902565b503d610913565b9080925081813d831161096d575b6109558183611ac1565b8101031261016d5761096690611c9e565b908561077b565b503d61094b565b90506040813d6040116109ac575b8161098f60409383611ac1565b8101031261016d576109a5602082519201611c9e565b5082610726565b3d9150610982565b6040516262af0b60e41b81526020816004817f000000000000000000000000000000000000000000000000000000000000000086165afa90811561023e57600091610a01575b5090610729565b90506020813d8211610a2a575b81610a1b60209383611ac1565b8101031261016d5751826109fa565b3d9150610a0e565b8060051b90600c82870135101561016d57838110156116ff5781830135601e198436030181121561016d578084013567ffffffffffffffff811161016d5736036020828601011361016d576003878401351015610dfe576001600160a01b03928360005416330361024a5787810135610cff57508301602001356000811315610bd3576040516323b872dd60e01b815233600482015230602482015260ff82901c600003918201909118604482018190529290602081806064810103816000867f0000000000000000000000000000000000000000000000000000000000000000165af1801561023e57610b9a575b507f000000000000000000000000000000000000000000000000000000000000000016803b1561016d5760405163145d426560e11b815233600482015260248101939093526000908390604490829084905af191821561023e57600192610b8b575b505b01610694565b610b9490611a74565b86610b83565b6020813d602011610bcb575b81610bb360209383611ac1565b8101031261016d57610bc490611cc3565b5087610b21565b3d9150610ba6565b60008112610be6575b5060019150610b85565b610bef8161253c565b60405163a9059cbb60e01b815233600482015260ff82901c600003918201909118602482018190529290602081806044810103816000867f0000000000000000000000000000000000000000000000000000000000000000165af1801561023e57610cc6575b507f000000000000000000000000000000000000000000000000000000000000000016803b1561016d5760405163b014da2160e01b815233600482015260248101939093526000908390604490829084905af191821561023e5760019215610bdc57610cc090611a74565b86610bdc565b6020813d602011610cf7575b81610cdf60209383611ac1565b8101031261016d57610cf090611cc3565b5087610c55565b3d9150610cd2565b870135600114610d13575060019150610b85565b830160200135918215610bdc57600080808086335af13d15610df9573d67ffffffffffffffff8111610de35760405190610d57601f8201601f191660200183611ac1565b8152600060203d92013e5b15610dd1577f000000000000000000000000000000000000000000000000000000000000000016803b1561016d576040516379a4952760e01b815233600482015260248101939093526000908390604490829084905af191821561023e5760019215610bdc57610cc090611a74565b604051630ca79afd60e01b8152600490fd5b634e487b7160e01b600052604160045260246000fd5b610d62565b610e0a92919233612630565b1561024a5760038288013503610e4b575b50600c8187013511610e305750600190610b85565b604051636bb50f4f60e11b8152908601356004820152602490fd5b6004828801350315610e1b578682013560050361158f576040805185830160208181013560601b6bffffffffffffffffffffffff19169083019081529201356034820152610e9c816054810161040f565b51902080600052601b60205263ffffffff6040600020541661157d57604051630109786b60e11b8152306004820152600060248201526060816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561023e57600091611514575b5063ffffffff60405191610f2683611a88565b60006020840152600060e08401526000610180840152308352600160a08401526080858901013515156080840152600360c084015261ffff6060868a0101351660408401526effffffffffffffffffffffffffffff60a0868a0101351661010084015262ffffff60c0868a01013516606084015267ffffffffffffffff6305f5e10060e0878b010135041661012084015267ffffffffffffffff6305f5e100610100878b010135041661014084015267ffffffffffffffff6305f5e100610120878b01013504166101608401525116602082015260405161100681611a58565b6001600160a01b03602085890101351681526020810163ffffffff6040868a010135168152604082016000815263ffffffff60208501511685600052601b60205260406000209063ffffffff1982541617905563ffffffff602085015116600052601c6020527fffffffffffffffff00000000000000000000000000000000000000000000000077ffffffff00000000000000000000000000000000000000006001600160a01b036040600020955116935160a01b16915160c01b16911717905560405163095ea7b360e01b81526020818061112b60a0888c0101356001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048401602090939291936001600160a01b0360408201951681520152565b038160006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561023e576114db575b50604051632cfc019d60e21b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561023e5760009261149f575b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163b1561016d576040519163111970f960e21b83526001600160a01b03825116600484015263ffffffff602083015116602484015261ffff604083015116604484015262ffffff606083015116606484015260808201511515608484015260a0820151151560a484015260ff60c08301511660c484015260e08201519160038310156114895761018077ffffffffffffffffffffffffffffffffffffffffffffffff916001600160a01b039460e48701526effffffffffffffffffffffffffffff6101008201511661010487015267ffffffffffffffff6101208201511661012487015267ffffffffffffffff6101408201511661014487015267ffffffffffffffff6101608201511661016487015201511661018484015261012c6101a4840152166101c48201526000816101e481836001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165af1801561023e5761147a575b506103e861136186840160c08101359060a00135611af8565b0481600052601a6020526040600020606060036040519261138184611aa5565b6001600160a01b03815416845260018101546020850152600281015460408501520154910152808060011b0460021481151715611464576113c48160011b6124a9565b906113ce8261253c565b8160ff1c600003926017548385018518810181116114645784846003960118016017556001600160a01b0360206040519661140888611aa5565b8a0101351685526020850190600082526040860192835260608601938452600052601a6020526001600160a01b0360406000209551166001600160a01b0319865416178555516001850155516002840155519101555b86610e1b565b634e487b7160e01b600052601160045260246000fd5b61148390611a74565b88611348565b634e487b7160e01b600052602160045260246000fd5b9091506020813d6020116114d3575b816114bb60209383611ac1565b8101031261016d576114cc90611c9e565b908a6111b6565b3d91506114ae565b6020813d60201161150c575b816114f460209383611ac1565b8101031261016d5761150590611cc3565b5089611166565b3d91506114e7565b90506060813d606011611575575b8161152f60609383611ac1565b8101031261016d5761156a604080519261154884611a58565b61155181611cb2565b845261155f60208201611cb2565b602085015201611cd0565b604082015289610f13565b3d9150611522565b604051632d852ff160e21b8152600490fd5b8682013560060361167657604060208286010135918501013560405160208101906115dd8161040f85878690916034926bffffffffffffffffffffffff199060601b16825260148201520190565b51902080600052601b60205263ffffffff80604060002054169283600052601c6020526040600020916040519261161384611a58565b54926001600160a01b03906040828616938483528660a01c169586602084015260c01c9101528616149182159261166b575b50506116595761165492611cf5565b61145e565b60405163c4d1e76d60e01b8152600490fd5b141590508a80611645565b868201356007036116ea576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561016d57604051638588633360e01b81529185016020013563ffffffff1660048301526000908290602490829084905af1801561023e576116f0575b5061145e565b6116f990611a74565b866116ea565b634e487b7160e01b600052603260045260246000fd5b6040517fff633a38000000000000000000000000000000000000000000000000000000008152600490fd5b3461016d57602036600319011261016d576001600160a01b03611761611a11565b166000526001602052602060ff604060002054166040519015158152f35b3461016d57602036600319011261016d5763ffffffff6004358181169182820361016d576117ab611c48565b6001600160a01b038060005416330361024a576106af93600052601c60205260406000209161040f61182e604051946117e386611a58565b54848116938487528160a01c169081602088015260c01c604087015260405192839160208301958690916034926bffffffffffffffffffffffff199060601b16825260148201520190565b519020915116611cf5565b3461016d57602036600319011261016d5760043563ffffffff80821680920361016d5760609160006040805161186e81611a58565b8281528260208201520152600052601c60205267ffffffffffffffff6040600020916040519261189d84611a58565b54906001600160a01b0382169384815260406020820191838560a01c168352019260c01c83526040519485525116602084015251166040820152f35b3461016d57600036600319011261016d576020601854604051908152f35b3461016d57602036600319011261016d576020611912611a11565b6001600160a01b038060005416911614604051908152f35b3461016d57600036600319011261016d5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461016d57602036600319011261016d57602061199161198c611a11565b612630565b6040519015158152f35b3461016d57602036600319011261016d576119b4611a11565b6001600160a01b0360005416330361024a5761001b9061244d565b3461016d57600036600319011261016d576020906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b600435906001600160a01b038216820361016d57565b9181601f8401121561016d5782359167ffffffffffffffff831161016d576020808501948460051b01011161016d57565b6060810190811067ffffffffffffffff821117610de357604052565b67ffffffffffffffff8111610de357604052565b6101a0810190811067ffffffffffffffff821117610de357604052565b6080810190811067ffffffffffffffff821117610de357604052565b90601f8019910116810190811067ffffffffffffffff821117610de357604052565b519067ffffffffffffffff8216820361016d57565b8181029291811591840414171561146457565b8115611b15570490565b634e487b7160e01b600052601260045260246000fd5b6040516396834ad360e01b81527fff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace60048201526080816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561023e57600091611bbf575b50670de0b6b3a764000091611bb6611bbb926122cd565b611af8565b0490565b6080813d8211611c40575b81611bd760809383611ac1565b81010312611c3c5760405191611bec83611aa5565b81518060070b8103611c3c578352611c0660208301611ae3565b60208401526040820151908160030b8203611c395750604083015260609081015190820152670de0b6b3a7640000611b9f565b80fd5b5080fd5b3d9150611bca565b600260155414611c59576002601555565b60405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b51906001600160a01b038216820361016d57565b519063ffffffff8216820361016d57565b5190811515820361016d57565b519077ffffffffffffffffffffffffffffffffffffffffffffffff8216820361016d57565b909291926001600160a01b0393847f000000000000000000000000000000000000000000000000000000000000000016916040958651966315878e0760e01b8852600063ffffffff60049530878c0152169560249680888c01526101a09a8b81604481865afa9b8c156122af57849c612173575b5050813b1561216f5782918883928651948593849263bdb340cd60e01b84528c8401525af1801561216557612156575b506effffffffffffffffffffffffffffff9862ffffff60608b6101008401511692015116029089821691820361214457506103e8900497881693600095869185835260209a601a8c528484208551611df081611aa5565b8782541681528d60018301548091830152606060036002850154948a850195865201549201918252808b1160001461213d57611e2c908b6123ac565b809281611f19575b505050508398611e95575b505050601a60039798998484519a611e568c611aa5565b168a52808a0195878752848b0197885260608b01988952835252209551166001600160a01b031986541617855551600185015551600284015551910155565b6f01fffffffffffffffffffffffffffffe9192985060011b1686810460021487151715611f0757611ec5906124a9565b96611ecf8861253c565b8760ff1c83039160175492898101188301809311611ef6575050601755601a600338611e3f565b634e487b7160e01b84526011905282fd5b634e487b7160e01b8352601182528783fd5b909192939495965051809111612135575b508160011b8281046002148315171561212357611f46906124a9565b905180821161211b575b611f5c906017546123ac565b6017558551632cfc019d60e21b8152908d8286817f00000000000000000000000000000000000000000000000000000000000000008c165afa918215612111578b926120d6575b50865163a9059cbb60e01b81526001600160a01b038316868201908152602081018390528f908290819003604001818f7f00000000000000000000000000000000000000000000000000000000000000008e165af180156120cc578f90612098575b5050877f00000000000000000000000000000000000000000000000000000000000000001690813b15612094578b92838a936064938b519788968795633317f54960e21b8752168b8601528b85015260448401525af1801561208a57612073575b908180808b969594611e34565b612081909891939298611a74565b96909138612066565b85513d8b823e3d90fd5b8b80fd5b81813d83116120c5575b6120ac8183611ac1565b81010312612094576120bd90611cc3565b50388e612005565b503d6120a2565b88513d8e823e3d90fd5b9091508d81813d831161210a575b6120ee8183611ac1565b81010312612106576120ff90611c9e565b9038611fa3565b8a80fd5b503d6120e4565b87513d8d823e3d90fd5b905080611f50565b634e487b7160e01b8b5260118552858bfd5b915038611f2a565b5085611e2c565b634e487b7160e01b8152601186528690fd5b61215f90611a74565b38611d99565b83513d84823e3d90fd5b8280fd5b9080929c50813d83116122a8575b61218b8183611ac1565b8101031261216f5783519061219f82611a88565b6121a881611c9e565b82526121b660208201611cb2565b60208301528481015161ffff811681036122a45785830152606081015162ffffff811681036122a45760608301526121f060808201611cc3565b608083015261220160a08201611cc3565b60a083015260c081015160ff811681036122a45760c083015260e081015160038110156122a45760e083015261010080820151906effffffffffffffffffffffffffffff821682036122a05783015261012061225e818301611ae3565b90830152610140612270818301611ae3565b90830152610160612282818301611ae3565b90830152612294610180809201611cd0565b90820152993880611d69565b8580fd5b8480fd5b503d612181565b85513d86823e3d90fd5b63ffffffff16604d811161146457600a0a90565b600080825160070b12801561239c575b801561238a575b611c3957604082015160030b8103808060030b036123765760ff169167ffffffffffffffff906006841161234f575116916006039060ff821161233b57509061233260ff61233893166122b9565b90611af8565b90565b634e487b7160e01b81526011600452602490fd5b511691600519019060ff821161233b57509061237060ff61233893166122b9565b90611b0b565b634e487b7160e01b82526011600452602482fd5b5060fe19604083015160030b126122e4565b5080604083015160030b136122dd565b9190820391821161146457565b6040516370a0823160e01b81523060048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561023e5760009061241a575b6123389150601754906123ac565b6020823d8211612445575b8161243260209383611ac1565b81010312611c395750612338905161240c565b3d9150612425565b6001600160a01b03168060005260016020526040600020600160ff19825416179055806001600160a01b03196016541617601655337fb2fa306ae7d3dd8b0bf1082c7d2a4d7d4c11cd422de0134bafcb4cc95ce8131c600080a3565b6040516358710f4560e11b815291906020836004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa92831561023e57600093612505575b50916123389192611b0b565b6020813d8211612534575b8161251d60209383611ac1565b81010312612530575192506123386124f9565b8380fd5b3d9150612510565b8060ff1c6000039081011861254f6123b9565b81116125585750565b6044906125636123b9565b906040519163038f2bdb60e41b835260048301526024820152fd5b670de0b6b3a7640000908181029181830414901517156114645760405163313ce56760e01b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561023e576000926125fd575b50604d82116114645761233891600a0a90611b0b565b90916020823d8211612628575b8161261760209383611ac1565b81010312611c3957505190386125e7565b3d915061260a565b6001600160a01b038060005416911690811490811561264d575090565b9050600052600160205260ff604060002054169056fea164736f6c6343000812000a000000000000000000000000afaae4be2c07948eb83e003ffdb859b5e6cabc630000000000000000000000006c212e97390c124b37888bf4b491a1f9f63451ed000000000000000000000000f4dd01749b432fea6624d1dee80e4d07f7de11f7000000000000000000000000af88d065e77c8cc2239327c5edb3a432268e58310000000000000000000000002a6c106ae13b558bb9e2ec64bd2f1f7beff3a5e0000000000000000000000000397a9bb1273fed4a4af9777df9c256f1609709f0000000000000000000000000ff162c694eaa571f685030649814282ea457f169000000000000000000000000ff1a0f4744e8582df1ae09d5611b887b6a12925c