1 tx
2 calls
constructor
No constructor.
functions
authorized
viewfunction authorized(address) view returns (bool)
depositsDisallowed
viewfunction depositsDisallowed() view returns (bool)
maxDepositAmount
viewfunction maxDepositAmount(address) view returns (int256)
owner
viewfunction owner() view returns (address)
processedWithdrawalIds
viewfunction processedWithdrawalIds(string) view returns (bool)
renounceOwnership
viewfunction renounceOwnership() view
addFunds
nonpayablefunction addFunds(address token, uint256 amount)
addFundsNative
payablefunction addFundsNative() payable
authorize
nonpayablefunction authorize(address user, bool value)
authorizeMulti
nonpayablefunction authorizeMulti(address[] users, bool value)
createVMContract
nonpayablefunction createVMContract()
depositNativeWithId
payablefunction depositNativeWithId(uint256 commitmentId) payable
depositWithId
nonpayablefunction depositWithId(address token, uint256 amount, uint256 commitmentId)
depositWithPermit
nonpayablefunction depositWithPermit(address token, uint256 amount, uint256 deadline, uint8 v, bytes32 r, bytes32 s, uint256 commitmentId)
initialize
nonpayablefunction initialize()
removeFunds
nonpayablefunction removeFunds(address token, address to, uint256 amount)
removeFundsNative
nonpayablefunction removeFundsNative(address to, uint256 amount)
swapWithData
nonpayablefunction swapWithData(address tokenIn, address tokenOut, uint256 amountIn, uint256 amountNativeOut, uint256 minAmountOut, address recipient, tuple[] datas, bytes ref)
transferOwner
nonpayablefunction transferOwner(address newOwner)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawNativeV2
nonpayablefunction withdrawNativeV2(address to, uint256 amount)
withdrawV2
nonpayablefunction withdrawV2(address token, address to, uint256 amount)
withdrawV2WithNative
nonpayablefunction withdrawV2WithNative(address token, address to, uint256 amountToken, uint256 amountNative)
withdrawV2WithNativeNoEvent
nonpayablefunction withdrawV2WithNativeNoEvent(address token, address to, uint256 amountToken, uint256 amountNative)
withdrawVmFunds
nonpayablefunction withdrawVmFunds(address token)
withdrawWithData
nonpayablefunction withdrawWithData(address token, uint256 amount, uint256 amountNative, tuple[] datas, bytes ref)
withdrawWithDataNoEvent
nonpayablefunction withdrawWithDataNoEvent(address token, uint256 amount, uint256 amountNative, tuple[] datas)
events
BridgedDepositWithId
event BridgedDepositWithId(address sender, address origin, address token, uint256 amount, uint256 commitmentId)
BridgedWithdrawal
event BridgedWithdrawal(address user, address token, uint256 amount, string withdrawalId)
BridgedWithdrawalWithData
event BridgedWithdrawalWithData(address token, uint256 amountToken, uint256 amountNative, bytes ref)
BridgedWithdrawalWithNative
event BridgedWithdrawalWithNative(address user, address token, uint256 amountToken, uint256 amountNative)
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SwapWithData
event SwapWithData(address tokenOut, uint256 receivedAmount, uint256 amountNative, address recipient, bytes ref)
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b506135a6806100206000396000f3fe6080604052600436106101b05760003560e01c80637729d644116100ec578063bc4b33651161008a578063ec8acddf11610064578063ec8acddf146104c8578063f2fde38b146104e8578063f80dec9714610508578063f90686771461052257600080fd5b8063bc4b33651461044d578063d64410461461046d578063d6c9b6a5146104a857600080fd5b80639a203dbf116100c65780639a203dbf146103bd5780639c66c25d146103dd578063b78b415b146103fd578063b91816111461041d57600080fd5b80637729d644146103305780638129fc1c146103805780638da5cb5b1461039557600080fd5b80633fbe4dbb11610159578063535b355c11610133578063535b355c146102bb5780635831419b146102db578063653b954c146102fb578063715018a61461031b57600080fd5b80633fbe4dbb1461027e578063447e346f146102935780634fb2e45d1461029b57600080fd5b80632700bbaf1161018a5780632700bbaf1461021e5780632d1fb3891461023e57806336d44bbb1461025e57600080fd5b8063143531c0146101bc5780631c6dd8a1146101de5780632090d831146101fe57600080fd5b366101b757005b600080fd5b3480156101c857600080fd5b506101dc6101d7366004611faa565b610535565b005b3480156101ea57600080fd5b506101dc6101f9366004611f8e565b61063e565b34801561020a57600080fd5b506101dc61021936600461205a565b61070a565b34801561022a57600080fd5b506101dc610239366004612169565b610a65565b34801561024a57600080fd5b506101dc61025936600461211f565b610b2f565b34801561026a57600080fd5b506101dc610279366004612015565b610b62565b34801561028a57600080fd5b506101dc610ca3565b6101dc610d5f565b3480156102a757600080fd5b506101dc6102b6366004611f8e565b610dc0565b3480156102c757600080fd5b506101dc6102d6366004611faa565b610e34565b3480156102e757600080fd5b506101dc6102f636600461219d565b610f8e565b34801561030757600080fd5b506101dc610316366004612301565b610ffa565b34801561032757600080fd5b506101dc61109a565b34801561033c57600080fd5b5061036b61034b366004612372565b805160208183018101805160668252928201919093012091525460ff1681565b60405190151581526020015b60405180910390f35b34801561038c57600080fd5b506101dc6110ea565b3480156103a157600080fd5b506033546040516001600160a01b039091168152602001610377565b3480156103c957600080fd5b506101dc6103d8366004612298565b611266565b3480156103e957600080fd5b506101dc6103f8366004611fd5565b611317565b34801561040957600080fd5b506101dc610418366004612015565b6113e1565b34801561042957600080fd5b5061036b610438366004611f8e565b60656020526000908152604090205460ff1681565b34801561045957600080fd5b506101dc610468366004612157565b611550565b34801561047957600080fd5b5061049a610488366004611f8e565b60686020526000908152604090205481565b604051908152602001610377565b3480156104b457600080fd5b506101dc6104c3366004611fd5565b6115c8565b3480156104d457600080fd5b506101dc6104e3366004612205565b611640565b3480156104f457600080fd5b506101dc610503366004611f8e565b6116f4565b34801561051457600080fd5b5060675461036b9060ff1681565b6101dc61053036600461243a565b611781565b3360009081526065602052604090205460ff166105995760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a4544000000000000000000000000000000000000000060448201526064015b60405180910390fd5b804710156105e95760405162461bcd60e51b815260206004820152601460248201527f494e53554646494349454e545f42414c414e43450000000000000000000000006044820152606401610590565b6040516001600160a01b038316908290600081818185875af1925050503d8060008114610632576040519150601f19603f3d011682016040523d82523d6000602084013e610637565b606091505b5050505050565b6069546001600160a01b03166106965760405162461bcd60e51b815260206004820152601160248201527f564d5f444f45535f4e4f545f45584953540000000000000000000000000000006044820152606401610590565b6069546040517f1c6dd8a10000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015290911690631c6dd8a190602401600060405180830381600087803b1580156106f657600080fd5b505af1158015610637573d6000803e3d6000fd5b3360009081526065602052604090205460ff166107695760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b6069546001600160a01b03166107c15760405162461bcd60e51b815260206004820152601160248201527f564d5f444f45535f4e4f545f45584953540000000000000000000000000000006044820152606401610590565b8615610871576000856001600160a01b0316886159d890604051600060405180830381858888f193505050503d8060008114610819576040519150601f19603f3d011682016040523d82523d6000602084013e61081e565b606091505b505090508061086f5760405162461bcd60e51b815260206004820152601260248201527f4641494c45445f544f5f53454e445f45544800000000000000000000000000006044820152606401610590565b505b600061087d8a876117ce565b90506001600160a01b038b16610911576069546040517f3f707e6b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690633f707e6b908b906108da9089908990600401612542565b6000604051808303818588803b1580156108f357600080fd5b505af1158015610907573d6000803e3d6000fd5b50505050506109a9565b60695461092b906001600160a01b038d811691168b61188a565b6069546040517f3f707e6b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690633f707e6b906109769088908890600401612542565b600060405180830381600087803b15801561099057600080fd5b505af11580156109a4573d6000803e3d6000fd5b505050505b60006109b58b886117ce565b905060006109c383836126c6565b905088811015610a155760405162461bcd60e51b815260206004820152601a60248201527f494e53554646494349454e545f4f55545055545f414d4f554e540000000000006044820152606401610590565b7f59a2c866003cbd2460fd8c81f849194bfd5d2933a659b11648c406ecb72266f38c828c8b8989604051610a4e969594939291906124ce565b60405180910390a150505050505050505050505050565b6001600160a01b038316610abb5760405162461bcd60e51b815260206004820152601560248201527f424c41434b484f4c455f4e4f545f414c4c4f57454400000000000000000000006044820152606401610590565b610ad06001600160a01b038416333085611951565b604080513381523260208201526001600160a01b0385169181019190915260608101839052608081018290527f1655dc426ee0145d9436d28cfb463fb0e0717ae145566e5e534da64b735e49f39060a0015b60405180910390a1505050565b610b376119a2565b6001600160a01b03919091166000908152606560205260409020805460ff1916911515919091179055565b3360009081526065602052604090205460ff16610bc15760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b8015610c6c576000836001600160a01b03168260405160006040518083038185875af1925050503d8060008114610c14576040519150601f19603f3d011682016040523d82523d6000602084013e610c19565b606091505b5050905080610c6a5760405162461bcd60e51b815260206004820152601260248201527f4641494c45445f544f5f53454e445f45544800000000000000000000000000006044820152606401610590565b505b600082118015610c8457506001600160a01b03841615155b15610c9d57610c9d6001600160a01b038516848461188a565b50505050565b6069546001600160a01b031615610cfc5760405162461bcd60e51b815260206004820152601360248201527f564d5f414c52454144595f4445504c4f594544000000000000000000000000006044820152606401610590565b604051610d0890611ef7565b604051809103906000f080158015610d24573d6000803e3d6000fd5b50606980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b3360009081526065602052604090205460ff16610dbe5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b565b610dc86119a2565b6001600160a01b03811660009081526065602081905260408220805460ff1916600117905581610e006033546001600160a01b031690565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610e31816116f4565b50565b3360009081526065602052604090205460ff16610e935760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114610ee0576040519150601f19603f3d011682016040523d82523d6000602084013e610ee5565b606091505b5050905080610f365760405162461bcd60e51b815260206004820152601260248201527f4641494c45445f544f5f53454e445f45544800000000000000000000000000006044820152606401610590565b604080516001600160a01b03851681526000602082018190529181018490526080606082018190528101919091527fe4f4f1fb3534fe80225d336f6e5a73007dc992e5f6740152bf13ed2a08f3851a9060a001610b22565b3360009081526065602052604090205460ff16610fed5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b61063785858585856119fc565b6110026119a2565b60005b82811015610c9d57816065600086868581811061104b577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906110609190611f8e565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061109281612709565b915050611005565b6110a26119a2565b60405162461bcd60e51b815260206004820152601c60248201527f556e61626c6520746f2072656e6f756e6365206f776e657273686970000000006044820152606401610590565b600054610100900460ff161580801561110a5750600054600160ff909116105b806111245750303b158015611124575060005460ff166001145b6111965760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610590565b6000805460ff1916600117905580156111d657600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b6111de611b03565b336000908152606560205260409020805460ff19166001179055611200610ca3565b8015610e3157600080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6040517fd505accf000000000000000000000000000000000000000000000000000000008152336004820152306024820152604481018790526064810186905260ff8516608482015260a4810184905260c481018390526001600160a01b0388169063d505accf9060e401600060405180830381600087803b1580156112eb57600080fd5b505af11580156112ff573d6000803e3d6000fd5b5050505061130e878783610a65565b50505050505050565b3360009081526065602052604090205460ff166113765760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b61138a6001600160a01b038416838361188a565b604080516001600160a01b038085168252851660208201529081018290526080606082018190526000908201527fe4f4f1fb3534fe80225d336f6e5a73007dc992e5f6740152bf13ed2a08f3851a9060a001610b22565b3360009081526065602052604090205460ff166114405760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b6000836001600160a01b03168260405160006040518083038185875af1925050503d806000811461148d576040519150601f19603f3d011682016040523d82523d6000602084013e611492565b606091505b50509050806114e35760405162461bcd60e51b815260206004820152601260248201527f4641494c45445f544f5f53454e445f45544800000000000000000000000000006044820152606401610590565b6114f76001600160a01b038616858561188a565b604080516001600160a01b03808716825287166020820152908101849052606081018390527f0ec14d41fb8dd758c7a1fc411ce327517caf88a8b9dee8bed60869801990d22c9060800160405180910390a15050505050565b3360009081526065602052604090205460ff166115af5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b6115c46001600160a01b038316333084611951565b5050565b3360009081526065602052604090205460ff166116275760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b61163b6001600160a01b038416838361188a565b505050565b3360009081526065602052604090205460ff1661169f5760405162461bcd60e51b815260206004820152600c60248201527f554e415554484f52495a454400000000000000000000000000000000000000006044820152606401610590565b6116ac87878787876119fc565b7f446598b3c3f0d9f39b89eb111ba2796b4fcbbf3bb39d64d5fd98c3045218cb3187878785856040516116e3959493929190612513565b60405180910390a150505050505050565b6116fc6119a2565b6001600160a01b0381166117785760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610590565b610e3181611b88565b60408051338152326020820152600091810191909152346060820152608081018290527f1655dc426ee0145d9436d28cfb463fb0e0717ae145566e5e534da64b735e49f39060a00161125b565b60006001600160a01b0383166117ef57506001600160a01b03811631611884565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301528416906370a082319060240160206040518083038186803b15801561184957600080fd5b505afa15801561185d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118819190612452565b90505b92915050565b6040516001600160a01b03831660248201526044810182905261163b9084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152611bf2565b6040516001600160a01b0380851660248301528316604482015260648101829052610c9d9085907f23b872dd00000000000000000000000000000000000000000000000000000000906084016118cf565b6033546001600160a01b03163314610dbe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610590565b6069546001600160a01b0316611a545760405162461bcd60e51b815260206004820152601160248201527f564d5f444f45535f4e4f545f45584953540000000000000000000000000000006044820152606401610590565b6001600160a01b03851615611a7d57606954611a7d906001600160a01b0387811691168661188a565b6069546040517f3f707e6b0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690633f707e6b908590611aca9086908690600401612542565b6000604051808303818588803b158015611ae357600080fd5b505af1158015611af7573d6000803e3d6000fd5b50505050505050505050565b600054610100900460ff16611b805760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610590565b610dbe611cd7565b603380546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000611c47826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611d5d9092919063ffffffff16565b80519091501561163b5780806020019051810190611c659190612356565b61163b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401610590565b600054610100900460ff16611d545760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401610590565b610dbe33611b88565b6060611d6c8484600085611d76565b90505b9392505050565b606082471015611dee5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610590565b6001600160a01b0385163b611e455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610590565b600080866001600160a01b03168587604051611e6191906124b2565b60006040518083038185875af1925050503d8060008114611e9e576040519150601f19603f3d011682016040523d82523d6000602084013e611ea3565b606091505b5091509150611eb3828286611ebe565b979650505050505050565b60608315611ecd575081611d6f565b825115611edd5782518084602001fd5b8160405162461bcd60e51b81526004016105909190612675565b610dad806127c483390190565b60008083601f840112611f15578081fd5b50813567ffffffffffffffff811115611f2c578182fd5b6020830191508360208260051b8501011115611f4757600080fd5b9250929050565b60008083601f840112611f5f578182fd5b50813567ffffffffffffffff811115611f76578182fd5b602083019150836020828501011115611f4757600080fd5b600060208284031215611f9f578081fd5b8135611d6f816127a0565b60008060408385031215611fbc578081fd5b8235611fc7816127a0565b946020939093013593505050565b600080600060608486031215611fe9578081fd5b8335611ff4816127a0565b92506020840135612004816127a0565b929592945050506040919091013590565b6000806000806080858703121561202a578081fd5b8435612035816127a0565b93506020850135612045816127a0565b93969395505050506040820135916060013590565b6000806000806000806000806000806101008b8d031215612079578586fd5b8a35612084816127a0565b995060208b0135612094816127a0565b985060408b0135975060608b0135965060808b0135955060a08b01356120b9816127a0565b945060c08b013567ffffffffffffffff808211156120d5578586fd5b6120e18e838f01611f04565b909650945060e08d01359150808211156120f9578384fd5b506121068d828e01611f4e565b915080935050809150509295989b9194979a5092959850565b60008060408385031215612131578182fd5b823561213c816127a0565b9150602083013561214c816127b5565b809150509250929050565b60008060408385031215611fbc578182fd5b60008060006060848603121561217d578283fd5b8335612188816127a0565b95602085013595506040909401359392505050565b6000806000806000608086880312156121b4578081fd5b85356121bf816127a0565b94506020860135935060408601359250606086013567ffffffffffffffff8111156121e8578182fd5b6121f488828901611f04565b969995985093965092949392505050565b600080600080600080600060a0888a03121561221f578081fd5b873561222a816127a0565b96506020880135955060408801359450606088013567ffffffffffffffff80821115612254578283fd5b6122608b838c01611f04565b909650945060808a0135915080821115612278578283fd5b506122858a828b01611f4e565b989b979a50959850939692959293505050565b600080600080600080600060e0888a0312156122b2578081fd5b87356122bd816127a0565b96506020880135955060408801359450606088013560ff811681146122e0578182fd5b9699959850939660808101359560a0820135955060c0909101359350915050565b600080600060408486031215612315578081fd5b833567ffffffffffffffff81111561232b578182fd5b61233786828701611f04565b909450925050602084013561234b816127b5565b809150509250925092565b600060208284031215612367578081fd5b8151611d6f816127b5565b600060208284031215612383578081fd5b813567ffffffffffffffff8082111561239a578283fd5b818401915084601f8301126123ad578283fd5b8135818111156123bf576123bf612771565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f0116810190838211818310171561240557612405612771565b8160405282815287602084870101111561241d578586fd5b826020860160208301379182016020019490945295945050505050565b60006020828403121561244b578081fd5b5035919050565b600060208284031215612463578081fd5b5051919050565b81835281816020850137506000806020838501015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b600082516124c48184602087016126dd565b9190910192915050565b60006001600160a01b03808916835287602084015286604084015280861660608401525060a0608083015261250760a08301848661246a565b98975050505050505050565b6001600160a01b0386168152846020820152836040820152608060608201526000611eb360808301848661246a565b60208082528181018390526000906040808401600586901b8501820187855b88811015612667577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc088840301845281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa18b36030181126125c1578788fd5b8a01606081356125d0816127a0565b6001600160a01b03168552818801358886015286820135368390037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe101811261261757898afd5b8201803567ffffffffffffffff81111561262f578a8bfd5b80360384131561263d578a8bfd5b8289880152612651838801828c850161246a565b978a019796505050928701925050600101612561565b509098975050505050505050565b60208152600082518060208401526126948160408501602087016126dd565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b6000828210156126d8576126d8612742565b500390565b60005b838110156126f85781810151838201526020016126e0565b83811115610c9d5750506000910152565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561273b5761273b612742565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6001600160a01b0381168114610e3157600080fd5b8015158114610e3157600080fdfe608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d2f8061007e6000396000f3fe60806040526004361061005e5760003560e01c8063715018a611610043578063715018a61461009f5780638da5cb5b146100b4578063f2fde38b146100ed57600080fd5b80631c6dd8a11461006a5780633f707e6b1461008c57600080fd5b3661006557005b600080fd5b34801561007657600080fd5b5061008a610085366004610a2b565b61010d565b005b61008a61009a366004610a5f565b610295565b3480156100ab57600080fd5b5061008a6104cf565b3480156100c057600080fd5b506000546040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156100f957600080fd5b5061008a610108366004610a2b565b6104e3565b600073ffffffffffffffffffffffffffffffffffffffff821615610210576040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8316906370a082319060240160206040518083038186803b15801561019057600080fd5b505afa1580156101a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c89190610aef565b90508015610210576102106101f260005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff8416908361059a565b504780156102915760005473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405160006040518083038185875af1925050503d8060008114610288576040519150601f19603f3d011682016040523d82523d6000602084013e61028d565b606091505b5050505b5050565b61029d610627565b60005b818110156104ca576000808484848181106102e4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906102f69190610c38565b610304906020810190610a2b565b73ffffffffffffffffffffffffffffffffffffffff16858585818110610353577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906103659190610c38565b602001358686868181106103a2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906103b49190610c38565b6103c2906040810190610bce565b6040516103d0929190610b51565b60006040518083038185875af1925050503d806000811461040d576040519150601f19603f3d011682016040523d82523d6000602084013e610412565b606091505b5091509150816104b55782858585818110610456577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020028101906104689190610c38565b610476906020810190610a2b565b826040517f405c0fff0000000000000000000000000000000000000000000000000000000081526004016104ac93929190610b90565b60405180910390fd5b505080806104c290610c9b565b9150506102a0565b505050565b6104d7610627565b6104e160006106a8565b565b6104eb610627565b73ffffffffffffffffffffffffffffffffffffffff811661058e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104ac565b610597816106a8565b50565b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb000000000000000000000000000000000000000000000000000000001790526104ca90849061071d565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104ac565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061077f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff166108299092919063ffffffff16565b8051909150156104ca578080602001905181019061079d9190610acf565b6104ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016104ac565b60606108388484600085610842565b90505b9392505050565b6060824710156108d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016104ac565b73ffffffffffffffffffffffffffffffffffffffff85163b610952576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016104ac565b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161097b9190610b61565b60006040518083038185875af1925050503d80600081146109b8576040519150601f19603f3d011682016040523d82523d6000602084013e6109bd565b606091505b50915091506109cd8282866109d8565b979650505050505050565b606083156109e757508161083b565b8251156109f75782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ac9190610b7d565b600060208284031215610a3c578081fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461083b578182fd5b60008060208385031215610a71578081fd5b823567ffffffffffffffff80821115610a88578283fd5b818501915085601f830112610a9b578283fd5b813581811115610aa9578384fd5b8660208260051b8501011115610abd578384fd5b60209290920196919550909350505050565b600060208284031215610ae0578081fd5b8151801515811461083b578182fd5b600060208284031215610b00578081fd5b5051919050565b60008151808452610b1f816020860160208601610c6b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b8183823760009101908152919050565b60008251610b73818460208701610c6b565b9190910192915050565b60208152600061083b6020830184610b07565b83815273ffffffffffffffffffffffffffffffffffffffff83166020820152606060408201526000610bc56060830184610b07565b95945050505050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112610c02578283fd5b83018035915067ffffffffffffffff821115610c1c578283fd5b602001915036819003821315610c3157600080fd5b9250929050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa1833603018112610b73578182fd5b60005b83811015610c86578181015183820152602001610c6e565b83811115610c95576000848401525b50505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415610cf2577f4e487b710000000000000000000000000000000000000000000000000000000081526011600452602481fd5b506001019056fea264697066735822122065fc99af916dd6aa9adb0ff72a0fcc273c4fe04a6c16213bb628d02b7b1b013464736f6c63430008040033a2646970667358221220b1f69e593eb5375619258f580cc221ad0af6e969d6bc4cc7855abb1b3d41876964736f6c63430008040033