[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address[]", "name": "_assets", "type": "address[]" }, { "internalType": "uint256[]", "name": "_assetWeights", "type": "uint256[]" }, { "internalType": "address", "name": "_factory", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "numeraire", "type": "address" }, { "indexed": true, "internalType": "address", "name": "reserve", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "weight", "type": "uint256" } ], "name": "AssetIncluded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "derivative", "type": "address" }, { "indexed": true, "internalType": "address", "name": "numeraire", "type": "address" }, { "indexed": true, "internalType": "address", "name": "reserve", "type": "address" }, { "indexed": false, "internalType": "address", "name": "assimilator", "type": "address" } ], "name": "AssimilatorIncluded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "isEmergency", "type": "bool" } ], "name": "EmergencyAlarm", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value1", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "paid0", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "paid1", "type": "uint256" } ], "name": "Flash", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "isFrozen", "type": "bool" } ], "name": "FrozenSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransfered", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "alpha", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "beta", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "delta", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "epsilon", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "lambda", "type": "uint256" } ], "name": "ParametersSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "token", "type": "address" }, { "indexed": true, "internalType": "address", "name": "redeemer", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "PartitionRedeemed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "trader", "type": "address" }, { "indexed": true, "internalType": "address", "name": "origin", "type": "address" }, { "indexed": true, "internalType": "address", "name": "target", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "originAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "targetAmount", "type": "uint256" }, { "indexed": false, "internalType": "int128", "name": "rawProtocolFee", "type": "int128" } ], "name": "Trade", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address", "name": "_spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "allowance_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_spender", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_derivative", "type": "address" } ], "name": "assimilator", "outputs": [ { "internalType": "address", "name": "assimilator_", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "curve", "outputs": [ { "internalType": "int128", "name": "alpha", "type": "int128" }, { "internalType": "int128", "name": "beta", "type": "int128" }, { "internalType": "int128", "name": "delta", "type": "int128" }, { "internalType": "int128", "name": "epsilon", "type": "int128" }, { "internalType": "int128", "name": "lambda", "type": "int128" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_deposit", "type": "uint256" }, { "internalType": "uint256", "name": "_minQuoteAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_minBaseAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_maxQuoteAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_maxBaseAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "derivatives", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "emergency", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_curvesToBurn", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" } ], "name": "emergencyWithdraw", "outputs": [ { "internalType": "uint256[]", "name": "withdrawals_", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_derivative", "type": "address" } ], "name": "excludeDerivative", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount0", "type": "uint256" }, { "internalType": "uint256", "name": "amount1", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "flash", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "frozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidity", "outputs": [ { "internalType": "uint256", "name": "total_", "type": "uint256" }, { "internalType": "uint256[]", "name": "individual_", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "numeraires", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_origin", "type": "address" }, { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_originAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_minTargetAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" } ], "name": "originSwap", "outputs": [ { "internalType": "uint256", "name": "targetAmount_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "reserves", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_baseCurrency", "type": "address" }, { "internalType": "address", "name": "_baseAssim", "type": "address" }, { "internalType": "address", "name": "_quoteCurrency", "type": "address" }, { "internalType": "address", "name": "_quoteAssim", "type": "address" } ], "name": "setAssimilator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_emergency", "type": "bool" } ], "name": "setEmergency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_toFreezeOrNotToFreeze", "type": "bool" } ], "name": "setFrozen", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_alpha", "type": "uint256" }, { "internalType": "uint256", "name": "_beta", "type": "uint256" }, { "internalType": "uint256", "name": "_feeAtHalt", "type": "uint256" }, { "internalType": "uint256", "name": "_epsilon", "type": "uint256" }, { "internalType": "uint256", "name": "_lambda", "type": "uint256" } ], "name": "setParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "_interface", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "supports_", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_origin", "type": "address" }, { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_maxOriginAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_targetAmount", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" } ], "name": "targetSwap", "outputs": [ { "internalType": "uint256", "name": "originAmount_", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "totalSupply_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_sender", "type": "address" }, { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "success_", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "viewCurve", "outputs": [ { "internalType": "uint256", "name": "alpha_", "type": "uint256" }, { "internalType": "uint256", "name": "beta_", "type": "uint256" }, { "internalType": "uint256", "name": "delta_", "type": "uint256" }, { "internalType": "uint256", "name": "epsilon_", "type": "uint256" }, { "internalType": "uint256", "name": "lambda_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_deposit", "type": "uint256" } ], "name": "viewDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_origin", "type": "address" }, { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_originAmount", "type": "uint256" } ], "name": "viewOriginSwap", "outputs": [ { "internalType": "uint256", "name": "targetAmount_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_origin", "type": "address" }, { "internalType": "address", "name": "_target", "type": "address" }, { "internalType": "uint256", "name": "_targetAmount", "type": "uint256" } ], "name": "viewTargetSwap", "outputs": [ { "internalType": "uint256", "name": "originAmount_", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_curvesToBurn", "type": "uint256" } ], "name": "viewWithdraw", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_curvesToBurn", "type": "uint256" }, { "internalType": "uint256", "name": "_deadline", "type": "uint256" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256[]", "name": "withdrawals_", "type": "uint256[]" } ], "stateMutability": "nonpayable", "type": "function" } ]
60a06040526010805462ffffff1916620100001790553480156200002257600080fd5b5060405162003d6e38038062003d6e83398101604081905262000045916200033f565b306080526001600160a01b038116620000ae5760405162461bcd60e51b815260206004820152602160248201527f43757276652f637572766520666163746f7279207a65726f20616464726573736044820152602160f81b606482015260840160405180910390fd5b600a80546001600160a01b03191633179055600b620000ce8682620004fc565b50600c620000dd8582620004fc565b50601080546301000000600160b81b03191663010000006001600160a01b0384160217905560405133906000907f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee67908290a3604051635931eef160e11b8152737e5e1c23c820496da64311a571b8ccc0bc00c26a9063b263dde2906200017690600090600e90600f90600d908a908a90600401620005c8565b60006040518083038186803b1580156200018f57600080fd5b505af4158015620001a4573d6000803e3d6000fd5b50505050505050505062000670565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620001f457620001f4620001b3565b604052919050565b600082601f8301126200020e57600080fd5b81516001600160401b038111156200022a576200022a620001b3565b602062000240601f8301601f19168201620001c9565b82815285828487010111156200025557600080fd5b60005b838110156200027557858101830151828201840152820162000258565b506000928101909101919091529392505050565b60006001600160401b03821115620002a557620002a5620001b3565b5060051b60200190565b80516001600160a01b0381168114620002c757600080fd5b919050565b600082601f830112620002de57600080fd5b81516020620002f7620002f18362000289565b620001c9565b82815260059290921b840181019181810190868411156200031757600080fd5b8286015b848110156200033457805183529183019183016200031b565b509695505050505050565b600080600080600060a086880312156200035857600080fd5b85516001600160401b03808211156200037057600080fd5b6200037e89838a01620001fc565b96506020915081880151818111156200039657600080fd5b620003a48a828b01620001fc565b965050604088015181811115620003ba57600080fd5b8801601f81018a13620003cc57600080fd5b8051620003dd620002f18262000289565b81815260059190911b8201840190848101908c831115620003fd57600080fd5b928501925b8284101562000426576200041684620002af565b8252928501929085019062000402565b60608c01519098509450505050808211156200044157600080fd5b506200045088828901620002cc565b9250506200046160808701620002af565b90509295509295909350565b600181811c908216806200048257607f821691505b602082108103620004a357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004f757600081815260208120601f850160051c81016020861015620004d25750805b601f850160051c820191505b81811015620004f357828155600101620004de565b5050505b505050565b81516001600160401b03811115620005185762000518620001b3565b62000530816200052984546200046d565b84620004a9565b602080601f8311600181146200056857600084156200054f5750858301515b600019600386901b1c1916600185901b178555620004f3565b600085815260208120601f198616915b82811015620005995788860151825594840194600190910190840162000578565b5085821015620005b85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060c082018883526020888185015287604085015286606085015260c0608085015281865180845260e086019150828801935060005b81811015620006265784516001600160a01b031683529383019391830191600101620005ff565b505084810360a0860152855180825290820192508186019060005b818110156200065f5782518552938301939183019160010162000641565b50929b9a5050505050505050505050565b6080516136e26200068c600039600061297001526136e26000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806370a0823111610125578063a8e9d528116100ad578063caa6fea41161007c578063caa6fea414610551578063d828bb8814610563578063dd62ed3e14610576578063e5cf8a5c146105af578063f2fde38b146105c257600080fd5b8063a8e9d52814610505578063a9059cbb14610518578063c0046e391461052b578063c912ff7a1461053e57600080fd5b80637e932d32116100f45780637e932d32146104b15780638334278d146104c4578063838e6a22146104d75780638da5cb5b146104ea57806395d89b41146104fd57600080fd5b806370a08231146103f25780637165485d1461041b57806372b4129a1461048b57806379a390a51461049e57600080fd5b806323b872dd116101a8578063490e6cbc11610177578063490e6cbc14610376578063525d0da7146103895780635872278a1461039c578063595520c7146103af5780636f2ef95b146103df57600080fd5b806323b872dd146102f2578063313ce567146103055780633cae77f71461031f578063441a3e701461036357600080fd5b8063095ea7b3116101ef578063095ea7b3146102805780630b2583c81461029357806318160ddd146102b45780631a686502146102bc5780631f276b6e146102d257600080fd5b806301ffc9a7146102215780630501d55614610249578063054f7d9c1461025e57806306fdde031461026b575b600080fd5b61023461022f366004612e2c565b6105d5565b60405190151581526020015b60405180910390f35b61025c610257366004612e67565b610627565b005b6010546102349060ff1681565b6102736106a9565b6040516102409190612ea8565b61023461028e366004612ef2565b610737565b6102a66102a1366004612f1c565b610819565b604051908152602001610240565b6007546102a6565b6102c4610a7a565b604051610240929190612fa4565b6102e56102e0366004612fbd565b610b00565b6040516102409190612fdf565b610234610300366004612ff2565b610c1f565b61030d601281565b60405160ff9091168152602001610240565b61034b61032d36600461302e565b6001600160a01b039081166000908152600560205260409020541690565b6040516001600160a01b039091168152602001610240565b6102e5610371366004612fbd565b610d31565b61025c610384366004613049565b610db7565b6102a6610397366004612ff2565b611644565b6102c46103aa3660046130dd565b611798565b6103b7611dbc565b604080519586526020860194909452928401919091526060830152608082015260a001610240565b6102c46103ed366004613120565b611e50565b6102a661040036600461302e565b6001600160a01b031660009081526008602052604090205490565b60005460015460025460075461044e93600f81810b94600160801b92839004820b9481830b9493909104820b92910b9086565b60408051600f97880b815295870b602087015293860b9385019390935290840b606084015290920b608082015260a081019190915260c001610240565b6102a6610499366004612f1c565b611f93565b61025c6104ac366004613139565b6121d8565b61025c6104bf366004612e67565b612292565b61034b6104d2366004613120565b612304565b6102a66104e5366004612ff2565b61232e565b600a5461034b906001600160a01b031681565b61027361243d565b61034b610513366004613120565b61244a565b610234610526366004612ef2565b61245a565b61034b610539366004613120565b61250f565b61025c61054c36600461302e565b61251f565b60105461023490610100900460ff1681565b61025c61057136600461318d565b612684565b6102a66105843660046131c8565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6102e56105bd366004613120565b61273b565b61025c6105d036600461302e565b612878565b60006301ffc9a760e01b6001600160e01b03198316148061060657506307f5828d60e41b6001600160e01b03198316145b8061062157506336372b0760e01b6001600160e01b03198316145b92915050565b600a546001600160a01b0316331461065a5760405162461bcd60e51b8152600401610651906131fb565b60405180910390fd5b60405181151581527fa44450e52bea871e50cfee059fbe027c26ff43fd7534c06b7de61d90b58ab3c19060200160405180910390a1601080549115156101000261ff0019909216919091179055565b600b80546106b690613232565b80601f01602080910402602001604051908101604052809291908181526020018280546106e290613232565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b505050505081565b60105460009062010000900460ff166107625760405162461bcd60e51b81526004016106519061326c565b6010805462ff000019169055610776612965565b60405163e60ac42960e01b8152600060048201526001600160a01b038416602482015260448101839052730ec3d999351ff8856dc6b644cca315255a21005f9063e60ac429906064015b602060405180830381865af41580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108019190613296565b6010805462ff00001916620100001790559392505050565b60008180421061083b5760405162461bcd60e51b8152600401610651906132b3565b601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561088e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b29190613296565b156108cf5760405162461bcd60e51b8152600401610651906132ea565b60105460ff16156108f25760405162461bcd60e51b815260040161065190613347565b6108fa612965565b601054610100900460ff16156109225760405162461bcd60e51b815260040161065190613397565b60105462010000900460ff1661094a5760405162461bcd60e51b81526004016106519061326c565b6010805462ff00001916908190556040805160a0810182526001600160a01b038a8116825289811660208301528183018990523360608301526301000000909304909216608083015251630d44e8a560e11b815273265acce2886bc7980b5e95122079221234d0a8f090631a89d14a906109cb9060009085906004016133f4565b602060405180830381865af41580156109e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0c9190613440565b925084831015610a5e5760405162461bcd60e51b815260206004820152601d60248201527f43757276652f62656c6f772d6d696e2d7461726765742d616d6f756e740000006044820152606401610651565b50506010805462ff000019166201000017905595945050505050565b604051633745793960e11b815260006004820181905290606090734c206ec81e92579cf0e7cbcd66c861da441df34a90636e8af27290602401600060405180830381865af4158015610ad0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610af891908101906134ff565b915091509091565b601054606090610100900460ff16610b2a5760405162461bcd60e51b815260040161065190613397565b81804210610b4a5760405162461bcd60e51b8152600401610651906132b3565b60105462010000900460ff16610b725760405162461bcd60e51b81526004016106519061326c565b6010805462ff000019169055610b86612965565b60405163044fd3db60e41b815260006004820152602481018590527359c69888ebbc0623ff1502ffcb4bdf3fee843e7c906344fd3db090604401600060405180830381865af4158015610bdd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c059190810190613546565b9150506010805462ff000019166201000017905592915050565b60105460009062010000900460ff16610c4a5760405162461bcd60e51b81526004016106519061326c565b6010805462ff000019169055610c5e612965565b601054610100900460ff1615610c865760405162461bcd60e51b815260040161065190613397565b6040516303a90f6960e31b8152600060048201526001600160a01b0380861660248301528416604482015260648101839052730ec3d999351ff8856dc6b644cca315255a21005f90631d487b4890608401602060405180830381865af4158015610cf4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d189190613296565b6010805462ff0000191662010000179055949350505050565b606081804210610d535760405162461bcd60e51b8152600401610651906132b3565b60105462010000900460ff16610d7b5760405162461bcd60e51b81526004016106519061326c565b6010805462ff000019169055610d8f612965565b601054610100900460ff1615610b865760405162461bcd60e51b815260040161065190613397565b601060039054906101000a90046001600160a01b03166001600160a01b031663d94abcee6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190613296565b610e7a5760405162461bcd60e51b815260206004820152601760248201527f43757276652f666c6173686c6f616e732d7061757365640000000000000000006044820152606401610651565b601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190613296565b15610f0e5760405162461bcd60e51b8152600401610651906132ea565b60105462010000900460ff16610f365760405162461bcd60e51b81526004016106519061326c565b6010805462ff000019169055610f4a612965565b60105460ff1615610f6d5760405162461bcd60e51b815260040161065190613347565b601054610100900460ff1615610f955760405162461bcd60e51b815260040161065190613397565b600154600090610fb790600160801b9004600f0b670de0b6b3a764000061299c565b90506000600d600081548110610fcf57610fcf61357b565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611020573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110449190613440565b1161109b5760405162461bcd60e51b815260206004820152602160248201527f43757276652f746f6b656e302d7a65726f2d6c69717569646974792d646570746044820152600d60fb1b6064820152608401610651565b6000600d6001815481106110b1576110b161357b565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111269190613440565b1161117d5760405162461bcd60e51b815260206004820152602160248201527f43757276652f746f6b656e312d7a65726f2d6c69717569646974792d646570746044820152600d60fb1b6064820152608401610651565b60006111928683670de0b6b3a7640000612a10565b905060006111a98684670de0b6b3a7640000612a10565b90506000600d6000815481106111c1576111c161357b565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112369190613440565b90506000600d60018154811061124e5761124e61357b565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561129f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c39190613440565b90508815611300576113008a8a600d6000815481106112e4576112e461357b565b6000918252602090912001546001600160a01b03169190612a5b565b871561131f5761131f8a89600d6001815481106112e4576112e461357b565b6040516361c9276b60e11b8152339063c3924ed69061134890879087908c908c90600401613591565b600060405180830381600087803b15801561136257600080fd5b505af1158015611376573d6000803e3d6000fd5b505050506000600d6000815481106113905761139061357b565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156113e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190613440565b90506000600d60018154811061141d5761141d61357b565b6000918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561146e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114929190613440565b90508161149f8588612ab2565b11156114f85760405162461bcd60e51b815260206004820152602260248201527f43757276652f696e73756666696369656e742d746f6b656e302d72657475726e604482015261195960f21b6064820152608401610651565b806115038487612ab2565b111561155c5760405162461bcd60e51b815260206004820152602260248201527f43757276652f696e73756666696369656e742d746f6b656e312d72657475726e604482015261195960f21b6064820152608401610651565b600061156885846135e4565b9050600061157685846135e4565b90506115a6600a60009054906101000a90046001600160a01b031683600d6000815481106112e4576112e461357b565b600a54600d80546115ce926001600160a01b031691849160019081106112e4576112e461357b565b604080518e8152602081018e9052908101839052606081018290526001600160a01b038f169033907fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6339060800160405180910390a350506010805462ff0000191662010000179055505050505050505050505050565b6000601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611699573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116bd9190613296565b156116da5760405162461bcd60e51b8152600401610651906132ea565b60105460ff16156116fd5760405162461bcd60e51b815260040161065190613347565b6040516315be82e960e21b8152600060048201526001600160a01b038086166024830152841660448201526064810183905273265acce2886bc7980b5e95122079221234d0a8f0906356fa0ba4906084015b602060405180830381865af415801561176c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117909190613440565b949350505050565b60006060828042106117bc5760405162461bcd60e51b8152600401610651906132b3565b601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561180f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118339190613296565b156118505760405162461bcd60e51b8152600401610651906132ea565b60105460ff16156118735760405162461bcd60e51b815260040161065190613347565b60105462010000900460ff1661189b5760405162461bcd60e51b81526004016106519061326c565b6010805462ff0000191690556118af612965565b601054610100900460ff16156118d75760405162461bcd60e51b815260040161065190613397565b60105460405163128be30760e31b81523060048201819052918b91600091630100000090046001600160a01b03169063945f183890602401602060405180830381865afa15801561192c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119509190613440565b9050600061195d60075490565b90508115806119755750816119728285612ab2565b11155b6119ba5760405162461bcd60e51b8152602060048201526016602482015275063757276652f6578636565647320706f6f6c206361760541b6044820152606401610651565b505060105460405163772a650160e01b81526001600160a01b03848116600483015263010000009092049091169063772a650190602401602060405180830381865afa158015611a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a329190613296565b611b7d5760008b11611a815760405162461bcd60e51b815260206004820152601860248201527743757276652f6465706f7369745f62656c6f775f7a65726f60401b6044820152606401610651565b611ab36040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b8b8152602081018b815260408083018c8152606084018c8152608085018c81529251629d2ea960e41b8152600060048201819052865160248301529451604482015291516064830152516084820152905160a482015281907359c69888ebbc0623ff1502ffcb4bdf3fee843e7c906309d2ea909060c401600060405180830381865af4158015611b47573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b6f91908101906134ff565b9098509650611d9b92505050565b60008b11611bc85760405162461bcd60e51b815260206004820152601860248201527743757276652f6465706f7369745f62656c6f775f7a65726f60401b6044820152606401610651565b611bfa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b8b8152602081018b815260408083018c8152606084018c8152608085018c81529251629d2ea960e41b8152600060048201819052865160248301529451604482015291516064830152516084820152905160a482015281907359c69888ebbc0623ff1502ffcb4bdf3fee843e7c906309d2ea909060c401600060405180830381865af4158015611c8e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611cb691908101906134ff565b60105460405163914dbfc160e01b81526001600160a01b038981166004830152939b509199506000955063010000009004909116925063914dbfc19150602401602060405180830381865afa158015611d13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d379190613440565b33600090815260086020526040902054909150811015611d995760405162461bcd60e51b815260206004820152601f60248201527f63757276652f6465706f7369742d657863656564732d67756172642d616d74006044820152606401610651565b505b50506010805462ff0000191662010000179055509097909650945050505050565b6000806000806000737e5e1c23c820496da64311a571b8ccc0bc00c26a63faa50b5d60006040518263ffffffff1660e01b8152600401611dfe91815260200190565b60a060405180830381865af4158015611e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e3f91906135f7565b945094509450945094509091929394565b60006060601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ecb9190613296565b15611ee85760405162461bcd60e51b8152600401610651906132ea565b60105460ff1615611f0b5760405162461bcd60e51b815260040161065190613347565b60405163822f39d560e01b815260006004820152602481018490527359c69888ebbc0623ff1502ffcb4bdf3fee843e7c9063822f39d590604401600060405180830381865af4158015611f62573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611f8a91908101906134ff565b91509150915091565b600081804210611fb55760405162461bcd60e51b8152600401610651906132b3565b601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061202c9190613296565b156120495760405162461bcd60e51b8152600401610651906132ea565b60105460ff161561206c5760405162461bcd60e51b815260040161065190613347565b612074612965565b601054610100900460ff161561209c5760405162461bcd60e51b815260040161065190613397565b60105462010000900460ff166120c45760405162461bcd60e51b81526004016106519061326c565b6010805462ff00001916908190556040805160a0810182526001600160a01b038a811682528981166020830152818301889052336060830152630100000090930490921660808301525163498e2a2560e11b815273265acce2886bc7980b5e95122079221234d0a8f09063931c544a906121459060009085906004016133f4565b602060405180830381865af4158015612162573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121869190613440565b925085831115610a5e5760405162461bcd60e51b815260206004820152601d60248201527f43757276652f61626f76652d6d61782d6f726967696e2d616d6f756e740000006044820152606401610651565b600a546001600160a01b031633146122025760405162461bcd60e51b8152600401610651906131fb565b604051632e6ce08560e11b8152600060048201526001600160a01b0380861660248301528085166044830152808416606483015282166084820152737e5e1c23c820496da64311a571b8ccc0bc00c26a90635cd9c10a9060a40160006040518083038186803b15801561227457600080fd5b505af4158015612288573d6000803e3d6000fd5b5050505050505050565b600a546001600160a01b031633146122bc5760405162461bcd60e51b8152600401610651906131fb565b60405181151581527f7c029deaca9b6c66abb68e5f874a812822f0fcaa52a890f980a7ab1afb5edba69060200160405180910390a16010805460ff1916911515919091179055565b600f818154811061231457600080fd5b6000918252602090912001546001600160a01b0316905081565b6000601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a79190613296565b156123c45760405162461bcd60e51b8152600401610651906132ea565b60105460ff16156123e75760405162461bcd60e51b815260040161065190613347565b604051637dba2aed60e11b8152600060048201526001600160a01b038086166024830152841660448201526064810183905273265acce2886bc7980b5e95122079221234d0a8f09063fb7455da9060840161174f565b600c80546106b690613232565b600e818154811061231457600080fd5b60105460009062010000900460ff166124855760405162461bcd60e51b81526004016106519061326c565b6010805462ff000019169055612499612965565b601054610100900460ff16156124c15760405162461bcd60e51b815260040161065190613397565b60405163a4bcd45960e01b8152600060048201526001600160a01b038416602482015260448101839052730ec3d999351ff8856dc6b644cca315255a21005f9063a4bcd459906064016107c0565b600d818154811061231457600080fd5b600a546001600160a01b031633146125495760405162461bcd60e51b8152600401610651906131fb565b60005b600e5481101561265c57600e81815481106125695761256961357b565b6000918252602090912001546001600160a01b03908116908316036125d05760405162461bcd60e51b815260206004820152601d60248201527f43757276652f63616e6e6f742d64656c6574652d6e756d6572616972650000006044820152606401610651565b600f81815481106125e3576125e361357b565b6000918252602090912001546001600160a01b039081169083160361264a5760405162461bcd60e51b815260206004820152601b60248201527f43757276652f63616e6e6f742d64656c6574652d7265736572766500000000006044820152606401610651565b8061265481613637565b91505061254c565b506001600160a01b0316600090815260056020526040902080546001600160a81b0319169055565b600a546001600160a01b031633146126ae5760405162461bcd60e51b8152600401610651906131fb565b60405163231888b760e01b8152600060048201526024810186905260448101859052606481018490526084810183905260a48101829052737e5e1c23c820496da64311a571b8ccc0bc00c26a9063231888b79060c40160006040518083038186803b15801561271c57600080fd5b505af4158015612730573d6000803e3d6000fd5b505050505050505050565b6060601060039054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b49190613296565b156127d15760405162461bcd60e51b8152600401610651906132ea565b60105460ff16156127f45760405162461bcd60e51b815260040161065190613347565b6040516330771ac760e11b815260006004820152602481018390527359c69888ebbc0623ff1502ffcb4bdf3fee843e7c906360ee358e90604401600060405180830381865af415801561284b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526106219190810190613546565b919050565b600a546001600160a01b031633146128a25760405162461bcd60e51b8152600401610651906131fb565b6001600160a01b0381166129095760405162461bcd60e51b815260206004820152602860248201527f43757276652f6e65772d6f776e65722d63616e6e6f742d62652d7a65726f74686044820152672d6164647265737360c01b6064820152608401610651565b600a546040516001600160a01b038084169216907f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee6790600090a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461299a57600080fd5b565b6000816000036129ae57506000610621565b600083600f0b12156129bf57600080fd5b600f83900b6fffffffffffffffffffffffffffffffff8316810260401c90608084901c026001600160c01b038111156129f757600080fd5b60401b8119811115612a0857600080fd5b019392505050565b6000612a1d848484612abe565b905060008280612a2f57612a2f613650565b8486091115612a54576000198110612a4657600080fd5b80612a5081613637565b9150505b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052612aad908490612c37565b505050565b6000612a548284613666565b6000808060001985870985870292508281108382030391505080600003612af75760008411612aec57600080fd5b508290049050612a54565b808411612b0357600080fd5b6000848688098084039381119092039190506000612b2386196001613666565b8616958690049593849004936000819003046001019050612b448184613679565b909317926000612b55876003613679565b6002189050612b648188613679565b612b6f9060026135e4565b612b799082613679565b9050612b858188613679565b612b909060026135e4565b612b9a9082613679565b9050612ba68188613679565b612bb19060026135e4565b612bbb9082613679565b9050612bc78188613679565b612bd29060026135e4565b612bdc9082613679565b9050612be88188613679565b612bf39060026135e4565b612bfd9082613679565b9050612c098188613679565b612c149060026135e4565b612c1e9082613679565b9050612c2a8186613679565b9998505050505050505050565b6000612c8c826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d099092919063ffffffff16565b805190915015612aad5780806020019051810190612caa9190613296565b612aad5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610651565b6060611790848460008585600080866001600160a01b03168587604051612d309190613690565b60006040518083038185875af1925050503d8060008114612d6d576040519150601f19603f3d011682016040523d82523d6000602084013e612d72565b606091505b5091509150612d8387838387612d8e565b979650505050505050565b60608315612dfd578251600003612df6576001600160a01b0385163b612df65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610651565b5081611790565b6117908383815115612e125781518083602001fd5b8060405162461bcd60e51b81526004016106519190612ea8565b600060208284031215612e3e57600080fd5b81356001600160e01b031981168114612a5457600080fd5b8015158114612e6457600080fd5b50565b600060208284031215612e7957600080fd5b8135612a5481612e56565b60005b83811015612e9f578181015183820152602001612e87565b50506000910152565b6020815260008251806020840152612ec7816040850160208701612e84565b601f01601f19169190910160400192915050565b80356001600160a01b038116811461287357600080fd5b60008060408385031215612f0557600080fd5b612f0e83612edb565b946020939093013593505050565b600080600080600060a08688031215612f3457600080fd5b612f3d86612edb565b9450612f4b60208701612edb565b94979496505050506040830135926060810135926080909101359150565b600081518084526020808501945080840160005b83811015612f9957815187529582019590820190600101612f7d565b509495945050505050565b8281526040602082015260006117906040830184612f69565b60008060408385031215612fd057600080fd5b50508035926020909101359150565b602081526000612a546020830184612f69565b60008060006060848603121561300757600080fd5b61301084612edb565b925061301e60208501612edb565b9150604084013590509250925092565b60006020828403121561304057600080fd5b612a5482612edb565b60008060008060006080868803121561306157600080fd5b61306a86612edb565b94506020860135935060408601359250606086013567ffffffffffffffff8082111561309557600080fd5b818801915088601f8301126130a957600080fd5b8135818111156130b857600080fd5b8960208285010111156130ca57600080fd5b9699959850939650602001949392505050565b60008060008060008060c087890312156130f657600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60006020828403121561313257600080fd5b5035919050565b6000806000806080858703121561314f57600080fd5b61315885612edb565b935061316660208601612edb565b925061317460408601612edb565b915061318260608601612edb565b905092959194509250565b600080600080600060a086880312156131a557600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600080604083850312156131db57600080fd5b6131e483612edb565b91506131f260208401612edb565b90509250929050565b60208082526019908201527f43757276652f63616c6c65722d69732d6e6f742d6f776e657200000000000000604082015260600190565b600181811c9082168061324657607f821691505b60208210810361326657634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526010908201526f10dd5c9d994bdc994b595b9d195c995960821b604082015260600190565b6000602082840312156132a857600080fd5b8151612a5481612e56565b60208082526018908201527f43757276652f74782d646561646c696e652d7061737365640000000000000000604082015260600190565b60208082526039908201527f43757276652f66726f7a656e2d676c6f62616c6c792d6f6e6c792d616c6c6f7760408201527f696e672d70726f706f7274696f6e616c2d776974686472617700000000000000606082015260800190565b60208082526030908201527f43757276652f66726f7a656e2d6f6e6c792d616c6c6f77696e672d70726f706f60408201526f7274696f6e616c2d776974686472617760801b606082015260800190565b6020808252603d908201527f43757276652f656d657267656e63792d6f6e6c792d616c6c6f77696e672d656d60408201527f657267656e63792d70726f706f7274696f6e616c2d7769746864726177000000606082015260800190565b82815260c08101612a54602083018480516001600160a01b0390811683526020808301518216908401526040808301519084015260608083015182169084015260809182015116910152565b60006020828403121561345257600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261348057600080fd5b8151602067ffffffffffffffff8083111561349d5761349d613459565b8260051b604051601f19603f830116810181811084821117156134c2576134c2613459565b6040529384528581018301938381019250878511156134e057600080fd5b83870191505b84821015612d83578151835291830191908301906134e6565b6000806040838503121561351257600080fd5b82519150602083015167ffffffffffffffff81111561353057600080fd5b61353c8582860161346f565b9150509250929050565b60006020828403121561355857600080fd5b815167ffffffffffffffff81111561356f57600080fd5b6117908482850161346f565b634e487b7160e01b600052603260045260246000fd5b84815283602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610621576106216135ce565b600080600080600060a0868803121561360f57600080fd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b600060018201613649576136496135ce565b5060010190565b634e487b7160e01b600052601260045260246000fd5b80820180821115610621576106216135ce565b8082028115828204841417610621576106216135ce565b600082516136a2818460208701612e84565b919091019291505056fea2646970667358221220dfe1ac8915fc76ca922e1a24637c1b1442addadc6c901c20b1416c09bc77491b64736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000002800000000000000000000000002e9e34b5af24b66f12721113c1c8ffcbb7bc8051000000000000000000000000000000000000000000000000000000000000000f42694c69726120284554482d56312900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009747279622d757364630000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000002c537e5624e4af88a7ae4060c022609376c8d0eb00000000000000000000000060b20ed1947ce503661aea3aae4779162a4b90b70000000000000000000000002c537e5624e4af88a7ae4060c022609376c8d0eb00000000000000000000000060b20ed1947ce503661aea3aae4779162a4b90b70000000000000000000000002c537e5624e4af88a7ae4060c022609376c8d0eb000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000003cd821f5f8c77d060f725b7252e7c6fb68072b51000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb480000000000000000000000003cd821f5f8c77d060f725b7252e7c6fb68072b51000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000006f05b59d3b20000