0 txs
183 calls
constructor
No constructor.
functions
convert32toAddress
purefunction convert32toAddress(bytes32 data) pure returns (address o)
getArrayIndex
purefunction getArrayIndex(bytes data, uint8 inputNum, uint8 arrayIndex) pure returns (bytes32)
getArrayLast
purefunction getArrayLast(bytes data, uint8 inputNum) pure returns (bytes32)
getArrayLength
purefunction getArrayLength(bytes data, uint8 inputNum) pure returns (uint256)
getBalance
viewfunction getBalance(address pool, address asset) view returns (uint256 balance)
getBytes
purefunction getBytes(bytes data, uint8 inputNum, uint256 offset) pure returns (bytes)
getDecimals
purefunction getDecimals(address) pure returns (uint256 decimals)
getInput
purefunction getInput(bytes data, uint8 inputNum) pure returns (bytes32)
getMethod
purefunction getMethod(bytes data) pure returns (bytes4)
getParams
purefunction getParams(bytes data) pure returns (bytes)
read32
purefunction read32(bytes data, uint256 offset, uint256 length) pure returns (bytes32 o)
read4left
purefunction read4left(bytes data, uint256 offset) pure returns (bytes4 o)
removeAssetCheck
viewfunction removeAssetCheck(address pool, address asset) view
withdrawProcessing
viewfunction withdrawProcessing(address pool, address asset, uint256 portion, address to) view returns (address withdrawAsset, uint256 withdrawBalance, tuple[] transactions)
txGuard
nonpayablefunction txGuard(address _poolManagerLogic, address, bytes data) returns (uint16 txType, bool)
events
Approve
event Approve(address fundAddress, address manager, address spender, uint256 amount, uint256 time)
ExchangeFrom
event ExchangeFrom(address fundAddress, address sourceAsset, uint256 sourceAmount, address dstAsset, uint256 time)
ExchangeTo
event ExchangeTo(address fundAddress, address sourceAsset, address dstAsset, uint256 dstAmount, uint256 time)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b5061486e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100c55760003560e01c806309ff5c7d146100ca5780631053f952146100f35780631eba307714610113578063293d80631461013357806341dc16c3146101535780636179309d1461016657806368901513146101875780636d5fae541461019a5780636f8ae202146101af57806382f86acc146101d1578063998546e3146101e4578063c3c6279f146101f7578063cf54aaa01461020a578063d4fac45d1461021d578063db896b5714610230575b600080fd5b6100dd6100d83660046142a1565b610243565b6040516100ea9190614663565b60405180910390f35b6101066101013660046142ec565b6102d6565b6040516100ea9190614681565b6101266101213660046141ca565b610370565b6040516100ea919061454d565b610146610141366004614214565b610377565b6040516100ea919061466c565b6100dd610161366004614340565b6103d9565b610179610174366004613f67565b6104b7565b6040516100ea929190614782565b6101066101953660046141e2565b61081d565b6101ad6101a8366004613f2f565b610838565b005b6101c26101bd366004613ff3565b610869565b6040516100ea939291906145d5565b6100dd6101df3660046142a1565b610b36565b6100dd6101f23660046142a1565b610b4d565b6101466102053660046141e2565b610b7e565b6100dd610218366004613ef7565b610b8b565b6100dd61022b366004613f2f565b610b91565b6100dd61023e366004614256565b610d59565b60008061025b848460200260040160ff166020610d59565b9050600061026e85600484016020610d59565b9050806102b7576040805162461bcd60e51b8152602060048201526012602482015271696e707574206973206e6f7420617272617960701b604482015290519081900360640190fd5b6102cb856020808402850160040190610d59565b925050505b92915050565b60606014821061031e576040805162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a59081bd9999cd95d60921b604482015290519081900360640190fd5b816020029150600061033d85848660200260040160ff16016020610d59565b90506000610352868584016004016020610d59565b90506103648660248487010183610dd8565b925050505b9392505050565b805b919050565b600081600401835110156103d0576040805162461bcd60e51b815260206004820152601b60248201527a52656164696e67206279746573206f7574206f6620626f756e647360281b604482015290519081900360640190fd5b50016020015190565b6000806103f1858560200260040160ff166020610d59565b9050600061040486600484016020610d59565b90508061044d576040805162461bcd60e51b8152602060048201526012602482015271696e707574206973206e6f7420617272617960701b604482015290519081900360640190fd5b60ff8416811161049d576040805162461bcd60e51b815260206004820152601660248201527534b73b30b634b21030b93930bc903837b9b4ba34b7b760511b604482015290519081900360640190fd5b610364866020600160ff8816018102850160040190610d59565b60008060006104fb85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610b7e92505050565b90506001600160e01b0319811663095ea7b360e01b141561080e57600061055a61012187878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250610b36915050565b905060006105a087878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525060019250610b36915050565b60001c905060008990506000816001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156105e557600080fd5b505afa1580156105f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061d9190613f13565b90506000816001600160a01b0316634f8419b9866040518263ffffffff1660e01b815260040161064d919061454d565b60206040518083038186803b15801561066557600080fd5b505afa158015610679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069d9190613f13565b90506001600160a01b038116158015906106c057506001600160a01b0381163014155b6106e55760405162461bcd60e51b81526004016106dc906146cb565b60405180910390fd5b7f5343b378d69227c1bc2016fd44e8104f0ffa7729f4f4f4110e349a2db0a0d0c8836001600160a01b03166339b81fd96040518163ffffffff1660e01b815260040160206040518083038186803b15801561073f57600080fd5b505afa158015610753573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107779190613f13565b8d6001600160a01b031663481c6a756040518163ffffffff1660e01b815260040160206040518083038186803b1580156107b057600080fd5b505afa1580156107c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107e89190613f13565b8787426040516107fc959493929190614561565b60405180910390a16001975050505050505b50600090505b94509492505050565b60606102d060048084510384610dd89092919063ffffffff16565b60006108448383610b91565b905080156108645760405162461bcd60e51b81526004016106dc90614694565b505050565b600080606060008690506000886001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156108ae57600080fd5b505afa1580156108c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108e69190613f13565b90506000816001600160a01b0316634f8419b98a6040518263ffffffff1660e01b8152600401610916919061454d565b60206040518083038186803b15801561092e57600080fd5b505afa158015610942573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109669190613f13565b90506000816001600160a01b0316634fac7e418c6040518263ffffffff1660e01b8152600401610996919061454d565b60006040518083038186803b1580156109ae57600080fd5b505afa1580156109c2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109ea9190810190614121565b90506000610a0360078351610f2990919063ffffffff16565b6001600160401b0381118015610a1857600080fd5b50604051908082528060200260200182016040528015610a5257816020015b610a3f613d71565b815260200190600190039081610a375790505b509550600060405180608001604052808e6001600160a01b031681526020018d6001600160a01b031681526020018c81526020018b6001600160a01b0316815250905060005b8351811015610b10576000610ac188868481518110610ab357fe5b60200260200101518f610f82565b9050610ae388868481518110610ad357fe5b60200260200101518f868561139f565b9050610af1898583866116c6565b9099509350610b0289858386611b02565b909950935050600101610a98565b508651600090610b209084611c7f565b8851038852505050505050509450945094915050565b6000610369838360200260040160ff166020610d59565b600080610b65848460200260040160ff166020610d59565b9050610b7684600483016020610d59565b949350505050565b60006102d0826000610377565b50601290565b600080836001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610bcd57600080fd5b505afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190613f13565b604051634f8419b960e01b815290915083906000906001600160a01b03841690634f8419b990610c3990859060040161454d565b60206040518083038186803b158015610c5157600080fd5b505afa158015610c65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c899190613f13565b90506000816001600160a01b0316634fac7e41886040518263ffffffff1660e01b8152600401610cb9919061454d565b60006040518083038186803b158015610cd157600080fd5b505afa158015610ce5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d0d9190810190614121565b905060005b8151811015610d4e57610d44610d3d868a87868681518110610d3057fe5b6020026020010151611cdc565b8790612335565b9550600101610d12565b505050505092915050565b600081830184511015610db1576040805162461bcd60e51b815260206004820152601b60248201527a52656164696e67206279746573206f7574206f6620626f756e647360281b604482015290519081900360640190fd5b826020018401519050816020038015610dd0576008810260020a820491505b509392505050565b60608182601f011015610e23576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b828284011015610e6b576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b81830184511015610eb7576040805162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015290519081900360640190fd5b606082158015610ed65760405191506000825260208201604052610f20565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610f0f578051835260209283019201610ef7565b5050858452601f01601f1916604052505b50949350505050565b600082610f38575060006102d0565b82820282848281610f4557fe5b04146103695760405162461bcd60e51b81526004018080602001828103825260218152602001806148186021913960400191505060405180910390fd5b610f8a613d89565b6000846001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610fc557600080fd5b505afa158015610fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffd9190613f13565b90506000806000806000808a6001600160a01b03166399fbab888b6040518263ffffffff1660e01b81526004016110349190614663565b6101806040518083038186803b15801561104d57600080fd5b505afa158015611061573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110859190614428565b5050505097509750975097509750975050508588600001906001600160a01b031690816001600160a01b0316815250508488602001906001600160a01b031690816001600160a01b031681525050611109611104670de0b6b3a76400006110fe846001600160801b03168d610f2990919063ffffffff16565b9061238d565b6123f1565b6001600160801b03166040808a0191909152516328af8d0b60e01b81526000906001600160a01b038916906328af8d0b9061114c908a908a908a90600401614595565b60206040518083038186803b15801561116457600080fd5b505afa158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190613f13565b9050806001600160a01b031663a6f19c846040518163ffffffff1660e01b815260040160206040518083038186803b1580156111d757600080fd5b505afa1580156111eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120f9190613f13565b6001600160a01b0390811660e08b018190526040516331a9108f60e11b815290918e1690636352211e90611247908f90600401614663565b60206040518083038186803b15801561125f57600080fd5b505afa158015611273573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112979190613f13565b6001600160a01b0316146101008a01819052670de0b6b3a76400008b146101808b01526101408a018c905280156112da575060408901516001600160801b031615155b896101600190151590811515815250506000816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160c06040518083038186803b15801561132557600080fd5b505afa158015611339573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135d919061439b565b505050505090506113848161137187612439565b61137a87612439565b8d60400151612760565b60808c015260608b015250979b9a5050505050505050505050565b6113a7613d89565b816101000151156116525760e0820151610140830151604051637980d7a160e11b81526114c3916001600160a01b0384169163f301af42916113eb91600401614663565b60206040518083038186803b15801561140357600080fd5b505afa158015611417573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061143b9190614410565b8551610140860151604051633e491d4760e01b81526001600160a01b03861692633e491d479261146d926004016145bc565b60206040518083038186803b15801561148557600080fd5b505afa158015611499573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114bd9190614410565b90612335565b836101a0018181525050806001600160a01b03166346c96aac6040518163ffffffff1660e01b815260040160206040518083038186803b15801561150657600080fd5b505afa15801561151a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153e9190613f13565b6001600160a01b0316631703e5f98460e001516040518263ffffffff1660e01b815260040161156d919061454d565b60206040518083038186803b15801561158557600080fd5b505afa158015611599573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115bd91906141b0565b15156101208401526040805163f7c618c160e01b815290516001600160a01b0383169163f7c618c1916004808301926020929190829003018186803b15801561160557600080fd5b505afa158015611619573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163d9190613f13565b6001600160a01b03166101c084015250610f20565b6000806116686001600160a01b038916886127fb565b9092509050611686611104670de0b6b3a76400006110fe858a610f29565b6001600160801b031660a08501526116ad611104670de0b6b3a76400006110fe848a610f29565b6001600160801b031660c0850152505050949350505050565b60606000836101600151156117625760405180604001604052808560e001516001600160a01b03168152602001632e1a7d4d60e01b8661014001516040516024016117119190614663565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529052865160018701968891811061175657fe5b60200260200101819052505b60408401516001600160801b03161561183957604051806040016040528084602001516001600160a01b03168152602001630c49ccbe60e01b6040518060a00160405280886101400151815260200188604001516001600160801b0316815260200160008152602001600081526020016000198152506040516024016117e89190614744565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529052865160018701968891811061182d57fe5b60200260200101819052505b606084015115158061184e5750608084015115155b80611865575060a08401516001600160801b031615155b8061187c575060c08401516001600160801b031615155b1561199857604051806040016040528084602001516001600160a01b0316815260200163fc6f786560e01b6040518060800160405280886101400151815260200187606001516001600160a01b031681526020016118f76111048a60a001516001600160801b03168b6060015161233590919063ffffffff16565b6001600160801b0316815260200161192c6111048a60c001516001600160801b03168b6080015161233590919063ffffffff16565b6001600160801b031690526040516119479190602401614701565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529052865160018701968891811061198c57fe5b60200260200101819052505b83610160015180156119ad5750836101800151155b80156119bb57508361012001515b15611af857604051806040016040528084602001516001600160a01b031681526020017f095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba8660e00151876101400151604051602401611a1b9291906145bc565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290528651600187019688918110611a6057fe5b602002602001018190525060405180604001604052808560e001516001600160a01b0316815260200163b6b55f2560e01b866101400151604051602401611aa79190614663565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290528651600187019688918110611aec57fe5b60200260200101819052505b5093949293505050565b606060008361010001511580611b1b57506101a0840151155b15611b2a575084905083610814565b836101600151611bda5760405180604001604052808560e001516001600160a01b031681526020017f1c4b774bd99f29713dd92d120e7e8d3e9716065509b6d17d0cb91570abde51fe866101400151604051602401611b899190614663565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290528651600187019688918110611bce57fe5b60200260200101819052505b60208301516101c08501518451611bfc926001600160a01b03909116916129ac565b15611af8576040518060400160405280856101c001516001600160a01b031681526020017fa9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b8560600151611c6e670de0b6b3a76400006110fe89604001518b6101a00151610f2990919063ffffffff16565b604051602401611aa79291906145bc565b600082821115611cd6576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b6000611ce6613e05565b60405163133f757160e31b81526001600160a01b038516906399fbab8890611d12908690600401614663565b6101806040518083038186803b158015611d2b57600080fd5b505afa158015611d3f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d639190614428565b5050505050600292830b90920b6040808901919091526001600160a01b039384166020890152938316808852935163cc435bf360e01b8152928c16955063cc435bf39450611db89392600401915061454d9050565b60206040518083038186803b158015611dd057600080fd5b505afa158015611de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e0891906141b0565b1580611e915750602081015160405163cc435bf360e01b81526001600160a01b0388169163cc435bf391611e3f919060040161454d565b60206040518083038186803b158015611e5757600080fd5b505afa158015611e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e8f91906141b0565b155b15611ea0576000915050610b76565b611f2686856001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611edd57600080fd5b505afa158015611ef1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f159190613f13565b835160208501516040860151612bbe565b81606001906001600160a01b031690816001600160a01b0316815250506000846001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611f7e57600080fd5b505afa158015611f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fb69190613f13565b6001600160a01b03166328af8d0b8360000151846020015185604001516040518463ffffffff1660e01b8152600401611ff193929190614595565b60206040518083038186803b15801561200957600080fd5b505afa15801561201d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120419190613f13565b6001600160a01b031663a6f19c846040518163ffffffff1660e01b815260040160206040518083038186803b15801561207957600080fd5b505afa15801561208d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b19190613f13565b90506000816001600160a01b0316866001600160a01b0316636352211e876040518263ffffffff1660e01b81526004016120eb9190614663565b60206040518083038186803b15801561210357600080fd5b505afa158015612117573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061213b9190613f13565b6001600160a01b031614905080156122ea576000806121728786606001518a6001600160a01b0316612cd49092919063ffffffff16565b915091506121a16121888a876020015184612d90565b6114bd61219a8c896000015187612d90565b8990612335565b95506000846001600160a01b031663f7c618c16040518163ffffffff1660e01b815260040160206040518083038186803b1580156121de57600080fd5b505afa1580156121f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122169190613f13565b90506122aa6122a38b83886001600160a01b0316633e491d478f8e6040518363ffffffff1660e01b815260040161224e9291906145bc565b60206040518083038186803b15801561226657600080fd5b505afa15801561227a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229e9190614410565b612d90565b8890612335565b96506122e06122a38b83886001600160a01b031663f301af428d6040518263ffffffff1660e01b815260040161224e9190614663565b965050505061232a565b60008061230f8786606001518a6001600160a01b0316612f899092919063ffffffff16565b915091506123256121888a876020015184612d90565b955050505b505050949350505050565b600082820183811015610369576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b60008082116123e0576040805162461bcd60e51b815260206004820152601a602482015279536166654d6174683a206469766973696f6e206279207a65726f60301b604482015290519081900360640190fd5b8183816123e957fe5b049392505050565b6000600160801b82106124355760405162461bcd60e51b81526004018080602001828103825260278152602001806147f16027913960400191505060405180910390fd5b5090565b60008060008360020b12612450578260020b612458565b8260020b6000035b9050620d89e8811115612496576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b6000600182166124aa57600160801b6124bc565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316905060028216156124e6576ffff97272373d413259a46990580e213a0260801c5b6004821615612505576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612524576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615612543576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615612562576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615612581576fff2ea16466c96a3843ec78b326b528610260801c5b60808216156125a0576ffe5dee046a99a2a811c461f1969c30530260801c5b6101008216156125c0576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156125e0576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612600576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612620576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615612640576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615612660576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615612680576f70d869a156d2a1b890bb3df62baf32f70260801c5b6180008216156126a0576f31be135f97d08fd981231505542fcfa60260801c5b620100008216156126c1576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156126e1576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615612700576d2216e584f5fa1ea926041bedfe980260801c5b6208000082161561271d576b048a170391f7dc42444e8fa20260801c5b60008460020b131561273857806000198161273457fe5b0490505b600160201b81061561274b57600161274e565b60005b60ff16602082901c0192505050919050565b600080836001600160a01b0316856001600160a01b03161115612781579293925b846001600160a01b0316866001600160a01b0316116127ac576127a5858585612fbc565b9150610814565b836001600160a01b0316866001600160a01b031610156127e5576127d1868585612fbc565b91506127de858785613025565b9050610814565b6127f0858585613025565b905094509492505050565b6000806000806000806000806000806000808d6001600160a01b03166399fbab888e6040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b15801561285257600080fd5b505afa158015612866573d6000803e3d6000fd5b505050506040513d61018081101561287d57600080fd5b810190808051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291908051906020019092919080519060200190929190805190602001909291905050506001600160801b03169b506001600160801b03169b509b509b509b509b509b509b509b509b5050506129978e6040518061014001604052808d6001600160a01b031681526020018c6001600160a01b031681526020018b60020b81526020018a60020b81526020018960020b8152602001886001600160801b0316815260200187815260200186815260200185815260200184815250613068565b9b509b50505050505050505050509250929050565b600080846001600160a01b0316631e50a4a66040518163ffffffff1660e01b815260040160206040518083038186803b1580156129e857600080fd5b505afa1580156129fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a209190613f13565b604051634df48c7360e11b81529091506001600160a01b03821690639be918e690612a4f90869060040161454d565b60206040518083038186803b158015612a6757600080fd5b505afa158015612a7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a9f91906141b0565b612aad576001915050610369565b6000816001600160a01b031663e5406dbf6040518163ffffffff1660e01b815260040160006040518083038186803b158015612ae857600080fd5b505afa158015612afc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b249190810190614045565b905060005b8151811015612bb457856001600160a01b0316828281518110612b4857fe5b6020026020010151600001516001600160a01b03161415612b6f5760009350505050610369565b846001600160a01b0316828281518110612b8557fe5b6020026020010151600001516001600160a01b03161415612bac5760019350505050610369565b600101612b29565b5050509392505050565b600080856001600160a01b031663380dc1c2846040518263ffffffff1660e01b8152600401808260020b815260200191505060206040518083038186803b158015612c0857600080fd5b505afa158015612c1c573d6000803e3d6000fd5b505050506040513d6020811015612c3257600080fd5b5051604080516328af8d0b60e01b81526001600160a01b0388811660048301528781166024830152600287900b60448301529151929350612cc9928a928a16916328af8d0b916064808301926020929190829003018186803b158015612c9757600080fd5b505afa158015612cab573d6000803e3d6000fd5b505050506040513d6020811015612cc157600080fd5b505183613184565b979650505050505050565b6000806000806000876001600160a01b03166399fbab88886040518263ffffffff1660e01b8152600401808281526020019150506101806040518083038186803b158015612d2157600080fd5b505afa158015612d35573d6000803e3d6000fd5b505050506040513d610180811015612d4c57600080fd5b5060a081015160c082015160e0909201519094509092509050612d8186612d7285612439565b612d7b85612439565b84612760565b94509450505050935093915050565b6000836001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015612dcb57600080fd5b505afa158015612ddf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e039190613f13565b6001600160a01b031663cc435bf3846040518263ffffffff1660e01b8152600401612e2e919061454d565b60206040518083038186803b158015612e4657600080fd5b505afa158015612e5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e7e91906141b0565b15612f7f576000846001600160a01b0316631e50a4a66040518163ffffffff1660e01b815260040160206040518083038186803b158015612ebe57600080fd5b505afa158015612ed2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ef69190613f13565b6040516314e03fdd60e11b81529091506001600160a01b038216906329c07fba90612f2790879087906004016145bc565b60206040518083038186803b158015612f3f57600080fd5b505afa158015612f53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f779190614410565b915050610369565b5060009392505050565b600080600080612f9a878787612cd4565b91509150600080612fab89896127fb565b940195505050019050935093915050565b6000826001600160a01b0316846001600160a01b03161115612fdc579192915b836001600160a01b0316613015606060ff16846001600160801b0316901b8686036001600160a01b0316866001600160a01b0316613339565b8161301c57fe5b04949350505050565b6000826001600160a01b0316846001600160a01b03161115613045579192915b610b76826001600160801b03168585036001600160a01b0316600160601b613339565b600080600080613121613112876001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156130ad57600080fd5b505afa1580156130c1573d6000803e3d6000fd5b505050506040513d60208110156130d757600080fd5b50516040805160608101825289516001600160a01b03908116825260208b810151909116908201528982015160020b918101919091526133e8565b86606001518760800151613510565b9150915084610100015161314d8660c0015184038760a001516001600160801b0316600160801b613339565b0193508461012001516131788660e0015183038760a001516001600160801b0316600160801b613339565b01925050509250929050565b600080839050806001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160c06040518083038186803b1580156131c357600080fd5b505afa1580156131d7573d6000803e3d6000fd5b505050506040513d60c08110156131ed57600080fd5b505160408051630dfe168160e01b815290519193506000916132d89188916001600160a01b03861691630dfe1681916004808301926020929190829003018186803b15801561323b57600080fd5b505afa15801561324f573d6000803e3d6000fd5b505050506040513d602081101561326557600080fd5b50516040805163d21220a760e01b815290516001600160a01b0387169163d21220a7916004808301926020929190829003018186803b1580156132a757600080fd5b505afa1580156132bb573d6000803e3d6000fd5b505050506040513d60208110156132d157600080fd5b50516137cf565b905060006132e78585846137dc565b905080612bb4576040805162461bcd60e51b815260206004820152601b60248201527a0accad8dec8e4dedaca40869840e0e4d2c6ca40dad2e6dac2e8c6d602b1b604482015290519081900360640190fd5b600080806000198587098686029250828110908390030390508061336f576000841161336457600080fd5b508290049050610369565b80841161337b57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600081602001516001600160a01b031682600001516001600160a01b031610613456576040805162461bcd60e51b815260206004820152601b60248201527a746f6b656e30206e6f74206c657373207468616e20746f6b656e3160281b604482015290519081900360640190fd5b610369836001600160a01b031663cefa77996040518163ffffffff1660e01b815260040160206040518083038186803b15801561349257600080fd5b505afa1580156134a6573d6000803e3d6000fd5b505050506040513d60208110156134bc57600080fd5b5051835160208581015160408088015181516001600160a01b0395861681860152949092168482015260029190910b606080850191909152815180850390910181526080909301905281519101208561388e565b6000806000856001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160c06040518083038186803b15801561354e57600080fd5b505afa158015613562573d6000803e3d6000fd5b505050506040513d60c081101561357857600080fd5b50602001516040805163f30dba9360e01b8152600288900b6004820152905191925060009182916001600160a01b038a169163f30dba939160248082019261014092909190829003018186803b1580156135d157600080fd5b505afa1580156135e5573d6000803e3d6000fd5b505050506040513d6101408110156135fc57600080fd5b5060608101516080909101516040805163f30dba9360e01b815260028a900b6004820152905192945090925060009182916001600160a01b038c169163f30dba939160248082019261014092909190829003018186803b15801561365f57600080fd5b505afa158015613673573d6000803e3d6000fd5b505050506040513d61014081101561368a57600080fd5b5060608101516080909101519092509050600289810b9086900b12156136b957818403965080830395506137c2565b8760020b8560020b12156137b75760008a6001600160a01b031663f30583996040518163ffffffff1660e01b815260040160206040518083038186803b15801561370257600080fd5b505afa158015613716573d6000803e3d6000fd5b505050506040513d602081101561372c57600080fd5b505160408051634614131960e01b815290519192506000916001600160a01b038e16916346141319916004808301926020929190829003018186803b15801561377457600080fd5b505afa158015613788573d6000803e3d6000fd5b505050506040513d602081101561379e57600080fd5b50519186900384900398505083900381900395506137c2565b838203965082810395505b5050505050935093915050565b6000610b768484846138ec565b60008061138862ffffff861610156137f65761138861380b565b61380b60646110fe62ffffff88166096610f29565b905061383a61382a620f42406110fe6001600160a01b03871685610f29565b6001600160a01b03851690612335565b846001600160a01b03161080156138855750613879613869620f42406110fe6001600160a01b03871685610f29565b6001600160a01b03861690612335565b836001600160a01b0316105b95945050505050565b604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b8152606093841b60148201526f5af43d82803e903d91602b57fd5bf3ff60801b6028820152921b6038830152604c8201526037808220606c830152605591012090565b600080846001600160a01b031663b3596f07856040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561393c57600080fd5b505afa158015613950573d6000803e3d6000fd5b505050506040513d602081101561396657600080fd5b50516040805163b3596f0760e01b81526001600160a01b03868116600483015291519293506000929188169163b3596f0791602480820192602092909190829003018186803b1580156139b857600080fd5b505afa1580156139cc573d6000803e3d6000fd5b505050506040513d60208110156139e257600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0388169163313ce567916004808301926020929190829003018186803b158015613a2a57600080fd5b505afa158015613a3e573d6000803e3d6000fd5b505050506040513d6020811015613a5457600080fd5b50516040805163313ce56760e01b815290519192506000916001600160a01b0388169163313ce567916004808301926020929190829003018186803b158015613a9c57600080fd5b505afa158015613ab0573d6000803e3d6000fd5b505050506040513d6020811015613ac657600080fd5b50519050613ad684848484613ae2565b98975050505050505050565b600080600060128460ff161015613b295760028460120360ff1681613b0357fe5b046001019050613b22866110fe8960028502880160ff16600a0a610f29565b9150613b40565b613b3d866110fe8960ff8816600a0a610f29565b91505b6000670de0b6b3a7640000831115613b6757506001613b64836402540be40061238d565b92505b670de0b6b3a76400008311158015613b8057506103e883115b613bd1576040805162461bcd60e51b815260206004820181905260248201527f556e6920763320707269636520726174696f206f7574206f6620626f756e6473604482015290519081900360640190fd5b613bed613be860c085901b60ff8916600a0a61238d565b613c30565b6001600160801b031693508015613c1757613c146001600160a01b038516620186a0610f29565b93505b613ad66001600160a01b03851660ff8416600a0a61238d565b600081613c3f57506000610372565b816001600160801b8210613c585760809190911c9060401b5b600160401b8210613c6e5760409190911c9060201b5b600160201b8210613c845760209190911c9060101b5b620100008210613c995760109190911c9060081b5b6101008210613cad5760089190911c9060041b5b60108210613cc05760049190911c9060021b5b60088210613ccc5760011b5b6001818581613cd757fe5b048201901c90506001818581613ce957fe5b048201901c90506001818581613cfb57fe5b048201901c90506001818581613d0d57fe5b048201901c90506001818581613d1f57fe5b048201901c90506001818581613d3157fe5b048201901c90506001818581613d4357fe5b048201901c90506000818581613d5557fe5b049050808210613d655780613d67565b815b9350505050610372565b60408051808201909152600081526060602082015290565b604080516101e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081018290526101c081019190915290565b60408051608081018252600080825260208201819052918101829052606081019190915290565b8051610372816147d8565b8051801515811461037257600080fd5b600082601f830112613e57578081fd5b81356001600160401b03811115613e6a57fe5b613e7d601f8201601f1916602001614798565b818152846020838601011115613e91578283fd5b816020850160208301379081016020019190915292915050565b8051600281900b811461037257600080fd5b80516001600160801b038116811461037257600080fd5b805161ffff8116811461037257600080fd5b803560ff8116811461037257600080fd5b600060208284031215613f08578081fd5b8135610369816147d8565b600060208284031215613f24578081fd5b8151610369816147d8565b60008060408385031215613f41578081fd5b8235613f4c816147d8565b91506020830135613f5c816147d8565b809150509250929050565b60008060008060608587031215613f7c578182fd5b8435613f87816147d8565b93506020850135613f97816147d8565b925060408501356001600160401b0380821115613fb2578384fd5b818701915087601f830112613fc5578384fd5b813581811115613fd3578485fd5b886020828501011115613fe4578485fd5b95989497505060200194505050565b60008060008060808587031215614008578384fd5b8435614013816147d8565b93506020850135614023816147d8565b925060408501359150606085013561403a816147d8565b939692955090935050565b60006020808385031215614057578182fd5b82516001600160401b038082111561406d578384fd5b818501915085601f830112614080578384fd5b815161409361408e826147bb565b614798565b818152848101908486016040808502870188018b10156140b1578889fd5b8896505b848710156141125780828c0312156140cb578889fd5b805181810181811088821117156140de57fe5b825282516140eb816147d8565b81526140f8838a01613e37565b818a015284526001969096019592870192908101906140b5565b50909998505050505050505050565b60006020808385031215614133578182fd5b82516001600160401b03811115614148578283fd5b8301601f81018513614158578283fd5b805161416661408e826147bb565b8181528381019083850185840285018601891015614182578687fd5b8694505b838510156141a4578051835260019490940193918501918501614186565b50979650505050505050565b6000602082840312156141c1578081fd5b61036982613e37565b6000602082840312156141db578081fd5b5035919050565b6000602082840312156141f3578081fd5b81356001600160401b03811115614208578182fd5b610b7684828501613e47565b60008060408385031215614226578182fd5b82356001600160401b0381111561423b578283fd5b61424785828601613e47565b95602094909401359450505050565b60008060006060848603121561426a578081fd5b83356001600160401b0381111561427f578182fd5b61428b86828701613e47565b9660208601359650604090950135949350505050565b600080604083850312156142b3578182fd5b82356001600160401b038111156142c8578283fd5b6142d485828601613e47565b9250506142e360208401613ee6565b90509250929050565b600080600060608486031215614300578081fd5b83356001600160401b03811115614315578182fd5b61432186828701613e47565b93505061433060208501613ee6565b9150604084013590509250925092565b600080600060608486031215614354578081fd5b83356001600160401b03811115614369578182fd5b61437586828701613e47565b93505061438460208501613ee6565b915061439260408501613ee6565b90509250925092565b60008060008060008060c087890312156143b3578384fd5b86516143be816147d8565b95506143cc60208801613eab565b94506143da60408801613ed4565b93506143e860608801613ed4565b92506143f660808801613ed4565b915061440460a08801613e37565b90509295509295509295565b600060208284031215614421578081fd5b5051919050565b6000806000806000806000806000806000806101808d8f03121561444a57898afd5b8c516001600160601b0381168114614460578a8bfd5b9b5061446e60208e01613e2c565b9a5061447c60408e01613e2c565b995061448a60608e01613e2c565b985061449860808e01613eab565b97506144a660a08e01613eab565b96506144b460c08e01613eab565b95506144c260e08e01613ebd565b94506101008d015193506101208d015192506144e16101408e01613ebd565b91506144f06101608e01613ebd565b90509295989b509295989b509295989b565b60008151808452815b818110156145275760208185018101518683018201520161450b565b818111156145385782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b0391909116815260200190565b6001600160a01b03958616815293851660208501529190931660408301526060820192909252608081019190915260a00190565b6001600160a01b03938416815291909216602082015260029190910b604082015260600190565b6001600160a01b03929092168252602082015260400190565b60006060820160018060a01b03808716845260208681860152604060608187015283875180865260808801915060808482028901019550838901875b8281101561465257898803607f19018452815180518816895286015186890186905261463f868a0182614502565b9850509285019290850190600101614611565b50959b9a5050505050505050505050565b90815260200190565b6001600160e01b031991909116815260200190565b6000602082526103696020830184614502565b6020808252601d908201527f63616e6e6f742072656d6f7665206e6f6e2d656d707479206173736574000000604082015260600190565b6020808252601c908201527b1d5b9cdd5c1c1bdc9d1959081cdc195b99195c88185c1c1c9bdd985b60221b604082015260600190565b815181526020808301516001600160a01b0316908201526040808301516001600160801b0390811691830191909152606092830151169181019190915260800190565b815181526020808301516001600160801b03169082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b61ffff9290921682521515602082015260400190565b6040518181016001600160401b03811182821017156147b357fe5b604052919050565b60006001600160401b038211156147ce57fe5b5060209081020190565b6001600160a01b03811681146147ed57600080fd5b5056fe53616665436173743a2076616c756520646f65736e27742066697420696e203132382062697473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a2646970667358221220f4a6025567088854266564e544b4c161d85a189f460b27af14ac3872f8d9712464736f6c63430007060033