0 txs
0 calls
constructor
No constructor.
functions
askHash
purefunction askHash(tuple ask) pure returns (bytes32)
bidHash
purefunction bidHash(tuple bid) pure returns (bytes32)
nonceCancellation
viewfunction nonceCancellation(address, uint256) view returns (bool)
onChainApprovals
viewfunction onChainApprovals(address, bytes32) view returns (bool)
orderAgreementHash
purefunction orderAgreementHash(tuple agreement) pure returns (bytes32)
owner
viewfunction owner() view returns (address)
cancelNonces
nonpayablefunction cancelNonces(uint256[] nonces)
fillOrder
nonpayablefunction fillOrder(tuple agreement, tuple bid, bytes bidSignature, uint8 bidSignatureKind, tuple ask, bytes askSignature, uint8 askSignatureKind)
fillOrderEth
payablefunction fillOrderEth(tuple agreement, tuple bid, bytes bidSignature, uint8 bidSignatureKind, tuple ask, bytes askSignature, uint8 askSignatureKind) payable
renounceOwnership
nonpayablefunction renounceOwnership()
setArchipelagoRoyaltyRate
nonpayablefunction setArchipelagoRoyaltyRate(uint256 newRoyaltyRate)
setEmergencyShutdown
nonpayablefunction setEmergencyShutdown(bool isShutdown)
setOnChainAskApproval
nonpayablefunction setOnChainAskApproval(tuple ask, bool approved)
setOnChainBidApproval
nonpayablefunction setOnChainBidApproval(tuple bid, bool approved)
setTreasuryAddress
nonpayablefunction setTreasuryAddress(address newTreasuryAddress)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AskApproval
event AskApproval(address indexed participant, bytes32 indexed askHash, bool approved, (bytes32 agreementHash, uint256 nonce, uint40 deadline, bytes32[] extraRoyalties, uint256 tokenId, bool unwrapWeth, address authorizedBidder) ask)
BidApproval
event BidApproval(address indexed participant, bytes32 indexed bidHash, bool approved, (bytes32 agreementHash, uint256 nonce, uint40 deadline, bytes32[] extraRoyalties, bytes trait, address traitOracle) bid)
NonceCancellation
event NonceCancellation(address indexed participant, uint256 indexed nonce)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RoyaltyPaid
event RoyaltyPaid(uint256 indexed tradeId, address indexed payer, address indexed recipient, uint256 micros, uint256 amount, address currency)
TokenTraded
event TokenTraded(uint256 indexed tradeId, address indexed tokenAddress, uint256 indexed tokenId)
Trade
event Trade(uint256 indexed tradeId, address indexed buyer, address indexed seller, uint256 price, uint256 proceeds, uint256 cost, address currency)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001d3362000023565b62000073565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6138ce80620000836000396000f3fe6080604052600436106100f75760003560e01c80638da5cb5b1161008a578063f3bfcaf811610059578063f3bfcaf814610295578063f6e5e817146102e0578063fb395ad114610300578063fd1711e51461033b57600080fd5b80638da5cb5b1461020d5780638de1132d146102425780639fb28faf14610255578063f2fde38b1461027557600080fd5b8063715018a6116100c6578063715018a6146101985780637e7ee88b146101ad57806382887804146101cd578063841db50d146101ed57600080fd5b806314c64402146101035780635f56dfd3146101255780636605bfda146101585780636872a84d1461017857600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5061012361011e366004612bc6565b61035b565b005b34801561013157600080fd5b50610145610140366004612ed4565b610412565b6040519081526020015b60405180910390f35b34801561016457600080fd5b50610123610173366004612f09565b610423565b34801561018457600080fd5b50610145610193366004612fbf565b6104f0565b3480156101a457600080fd5b506101236104fb565b3480156101b957600080fd5b506101456101c836600461308f565b610588565b3480156101d957600080fd5b506101236101e83660046130d3565b610593565b3480156101f957600080fd5b506101236102083660046131c6565b6105c1565b34801561021957600080fd5b5060005460405173ffffffffffffffffffffffffffffffffffffffff909116815260200161014f565b6101236102503660046130d3565b6106b3565b34801561026157600080fd5b506101236102703660046131df565b6108e3565b34801561028157600080fd5b50610123610290366004612f09565b610993565b3480156102a157600080fd5b506102d06102b0366004613254565b600260209081526000928352604080842090915290825290205460ff1681565b604051901515815260200161014f565b3480156102ec57600080fd5b506101236102fb366004613280565b610ac3565b34801561030c57600080fd5b506102d061031b366004613254565b600160209081526000928352604080842090915290825290205460ff1681565b34801561034757600080fd5b506101236103563660046132d2565b610b56565b60005473ffffffffffffffffffffffffffffffffffffffff1633146103e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b600061041d82610bdc565b92915050565b60005473ffffffffffffffffffffffffffffffffffffffff1633146104a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b6003805473ffffffffffffffffffffffffffffffffffffffff909216610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff909216919091179055565b600061041d82610ca4565b60005473ffffffffffffffffffffffffffffffffffffffff16331461057c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b6105866000610d59565b565b600061041d82610dce565b6000806105a589898989898989610e52565b915091506105b68989848885610fd4565b505050505050505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610642576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b6113888111156106ae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f70726f746f636f6c20726f79616c747920746f6f20686967680000000000000060448201526064016103d8565b600455565b6000806106c589898989898989610e52565b90925090503373ffffffffffffffffffffffffffffffffffffffff831614610749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f6f6e6c7920626964646572206d61792066696c6c20776974682045544800000060448201526064016103d8565b6000896000015190508073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561079a57600080fd5b505af11580156107ae573d6000803e3d6000fd5b50506040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff87811660048301523460248301528516935063a9059cbb92506044019050602060405180830381600087803b15801561082357600080fd5b505af1158015610837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085b9190613308565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c6564000000000000000000815250906108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b506108d78a8a858986610fd4565b50505050505050505050565b60005b8181101561098e576000838383818110610902576109026133a3565b336000818152600160208181526040808420958202979097013580845294905285822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169091179055935191945084939092507f35d8fd1186a8d5a470d6c39bac424b9b7e3b2bbfe1fd771fbefe09f98596350591a3508061098681613401565b9150506108e6565b505050565b60005473ffffffffffffffffffffffffffffffffffffffff163314610a14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d8565b73ffffffffffffffffffffffffffffffffffffffff8116610ab7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103d8565b610ac081610d59565b50565b6000610ace83610ca4565b3360008181526002602090815260408083208584529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168615151790555191925082917f6f3de911b0f99f640ea02152b40d904d2c9913b2a056c48f8ca6fed7a83183a090610b499086908890613475565b60405180910390a3505050565b6000610b6183610bdc565b3360008181526002602090815260408083208584529091529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00168615151790555191925082917f214a170e73e2a383db493e7149b4d064fa17ab5bd300a2e57dcc011d3e6ef02390610b499086908890613503565b60007f31f9468f5d1e7eb4237db6d4f45aa4ca2c44fd2c8cbc5f1cd4c2178ed1922c9f826000015183602001518460400151610c1b8660600151611f4c565b6080870151805160209182012060a0890151604051610c87989796959493019687526020870195909552604086019390935264ffffffffff919091166060850152608084015260a083015273ffffffffffffffffffffffffffffffffffffffff1660c082015260e00190565b604051602081830303815290604052805190602001209050919050565b60007f391e27022501bf610123a796e8a213ce549369b3bc887d452f524d17ca711c0f826000015183602001518460400151610ce38660600151611f4c565b86608001518760a001518860c00151604051602001610c879897969594939291909788526020880196909652604087019490945264ffffffffff929092166060860152608085015260a0840152151560c083015273ffffffffffffffffffffffffffffffffffffffff1660e08201526101000190565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60007f91ae5aeaa8c54e77d27efff9c5621ce1113d43c961e101869142bddaa8596546826000015183602001518460400151610e0d8660600151611f4c565b60408051602081019690965273ffffffffffffffffffffffffffffffffffffffff948516908601526060850192909252909116608083015260a082015260c001610c87565b6000806000610e608a610dce565b9050808960000151146040518060800160405280604181526020016138586041913990610eba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b50808660000151146040518060800160405280604181526020016138586041913990610f13576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b506000610f98604080517f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86660208201527ffac22429634c4b83835d76f0b27b35ad0d97c5dfbdffb309216cd7e62efe2e9b9181019190915246606082015230608082015260009060a00160405160208183030381529060405280519060200120905090565b9050610fae81610fa78c610bdc565b8b8b611f5f565b9350610fc481610fbd89610ca4565b8888611f5f565b9250505097509795505050505050565b60035460ff1615611041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f4d61726b6574206973207368757420646f776e0000000000000000000000000060448201526064016103d8565b604085015160208601518651608085015160c086015173ffffffffffffffffffffffffffffffffffffffff1615806110a857508673ffffffffffffffffffffffffffffffffffffffff168660c0015173ffffffffffffffffffffffffffffffffffffffff16145b61110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f626964646572206973206e6f7420617574686f72697a6564000000000000000060448201526064016103d8565b876040015164ffffffffff16421115604051806060016040528060228152602001613836602291399061116e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b50856040015164ffffffffff1642111560405180606001604052806022815260200161383660229139906111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b5073ffffffffffffffffffffffffffffffffffffffff871660009081526001602090815260408083208b830151845282529182902054825160608101909352602280845260ff909116159291613836908301399061125a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b5073ffffffffffffffffffffffffffffffffffffffff8516600090815260016020908152604080832089830151845282529182902054825160608101909352602280845260ff90911615929161383690830139906112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b5073ffffffffffffffffffffffffffffffffffffffff87811660008181526001602081815260408084208e83018051865290835281852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0090811686179091558c88168087528585528387208f86018051895290865296849020805490921690951790555193518151808401969096528582019490945260608501929092526080808501939093528151808503909301835260a09384019091528151910120908a0151909185918291166114365760008b608001516113c5906135b6565b9050848114611430576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601060248201527f746f6b656e6964206d69736d617463680000000000000000000000000000000060448201526064016103d8565b5061154b565b60a08b015160808c01516040517f94d487b700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216916394d487b791611495918b9189916004016135fb565b60206040518083038186803b1580156114ad57600080fd5b505afa1580156114c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e59190613308565b61154b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600d60248201527f6d697373696e672074726169740000000000000000000000000000000000000060448201526064016103d8565b60005b8c60600151518110156115a6576115888d606001518281518110611574576115746133a3565b60200260200101518c8b8a888b8e8c612070565b6115929084613639565b92508061159e81613401565b91505061154e565b5060005b8960600151518110156115ee576115d08a606001518281518110611574576115746133a3565b6115da9084613639565b9250806115e681613401565b9150506115aa565b50600354610100900473ffffffffffffffffffffffffffffffffffffffff16156117d3576000620f4240876004546116269190613650565b611630919061368d565b905061163c8184613639565b6003546040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e8116600483015261010090920482166024820152604481018490529194508716906323b872dd90606401602060405180830381600087803b1580156116bf57600080fd5b505af11580156116d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f79190613308565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c656400000000000000000081525090611765576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b50600354600454604080519182526020820184905273ffffffffffffffffffffffffffffffffffffffff898116838301529051610100909304811692908c169187917f874baf7481cd2190a134cb1c3033f31024cdc4a60c16a0399c769ddb7171d1a89181900360600190a4505b60005b8b606001515181101561182e576118108c6060015182815181106117fc576117fc6133a3565b60200260200101518c8d8a888b8e8c612070565b61181a90836136c8565b91508061182681613401565b9150506117d6565b506040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101859052600090819073ffffffffffffffffffffffffffffffffffffffff8a1690636352211e9060240160206040518083038186803b15801561189a57600080fd5b505afa1580156118ae573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118d291906136e0565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156119115760019150611a8a565b6040517f081812fc0000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff808c1691908b169063081812fc9060240160206040518083038186803b15801561197c57600080fd5b505afa158015611990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b491906136e0565b73ffffffffffffffffffffffffffffffffffffffff1614156119d95760019150611a8a565b6040517fe985e9c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528b811660248301528a169063e985e9c59060440160206040518083038186803b158015611a4857600080fd5b505afa158015611a5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a809190613308565b15611a8a57600191505b81611af1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f61736b6572206973206e6f74206f776e6572206f7220617070726f766564000060448201526064016103d8565b6040517f42842e0e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528d81166024830152604482018890528a16906342842e0e90606401600060405180830381600087803b158015611b6957600080fd5b505af1158015611b7d573d6000803e3d6000fd5b505050508a60a0015115611d71576040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d81166004830152306024830152604482018690528816906323b872dd90606401602060405180830381600087803b158015611c0157600080fd5b505af1158015611c15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c399190613308565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c656400000000000000000081525090611ca7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b506040517f2e1a7d4d0000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff881690632e1a7d4d90602401600060405180830381600087803b158015611d1057600080fd5b505af1158015611d24573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff8d16925086156108fc02915086906000818181858888f19350505050158015611d6b573d6000803e3d6000fd5b50611e91565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d811660048301528b81166024830152604482018690528816906323b872dd90606401602060405180830381600087803b158015611de957600080fd5b505af1158015611dfd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e219190613308565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c656400000000000000000081525090611e8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b505b604080518981526020810186905280820185905273ffffffffffffffffffffffffffffffffffffffff898116606083015291518c8316928f169188917f1a51197f9a37c0e80257819723735f2e11a00ce3cf47cce6fc29ed498799d1939181900360800190a4858973ffffffffffffffffffffffffffffffffffffffff16867f9b01892c65e232348b8aa9a050269ddec2af8c4bbe0ba6dcc8fa627ba3e6e02460405160405180910390a45050505050505050505050505050565b600081604051602001610c8791906136fd565b600080826002811115611f7457611f74613733565b14611f8c57611f858585858561209c565b9050612068565b600083806020019051810190611fa291906136e0565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020908152604080832089845290915290205490915060ff16612065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4d61726b65743a206f6e2d636861696e20617070726f76616c206d697373696e60448201527f670000000000000000000000000000000000000000000000000000000000000060648201526084016103d8565b90505b949350505050565b60008061207e8a8585612201565b905061208e818a8a8a8a8a6124db565b9a9950505050505050505050565b60008060018360028111156120b3576120b3613733565b14156120f35760408051602081018890529081018690526120ec9060600160405160208183030381529060405280519060200120612720565b90506121ed565b600283600281111561210757612107613733565b141561216657604080517f190100000000000000000000000000000000000000000000000000000000000060208083019190915260228201899052604280830189905283518084039091018152606290920190925280519101206120ec565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f5369676e6174757265436865636b65723a206e6f207369676e6174757265206760448201527f6976656e0000000000000000000000000000000000000000000000000000000060648201526084016103d8565b6121f7818561275b565b9695505050505050565b606083811c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff85166380000000808716158015906122f057604080516001808252818301909252600091816020015b6040805180820190915260008082526020820152815260200190600190039081612250579050509050838160008151811061228d5761228d6133a3565b60200260200101516020019063ffffffff16908163ffffffff168152505084816000815181106122bf576122bf6133a3565b602090810291909101015173ffffffffffffffffffffffffffffffffffffffff909116905294506124d49350505050565b6040517fec10efb200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff88811660048301526024820188905263ffffffff8516604483015260208a901c67ffffffffffffffff811660648401529160009187169063ec10efb29060840160006040518083038186803b15801561238357600080fd5b505afa158015612397573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526123dd9190810190613762565b90506000805b825181101561242f578281815181106123fe576123fe6133a3565b60200260200101516020015163ffffffff168261241b91906136c8565b91508061242781613401565b9150506123e3565b508563ffffffff168111156124c6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f6f7261636c652077616e747320746f206f7665727370656e6420726f79616c7460448201527f7920616c6c6f746d656e7400000000000000000000000000000000000000000060648201526084016103d8565b5095506124d4945050505050565b9392505050565b60008060005b88518110156127145760008982815181106124fe576124fe6133a3565b602002602001015190506000620f424088836020015163ffffffff166125249190613650565b61252e919061368d565b905061253a81856136c8565b82516040517f23b872dd00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8d811660048301529182166024820152604481018490529195508716906323b872dd90606401602060405180830381600087803b1580156125b757600080fd5b505af11580156125cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ef9190613308565b6040518060400160405280601781526020017f4d61726b65743a207472616e73666572206661696c65640000000000000000008152509061265d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103d89190613390565b50816000015173ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16887f874baf7481cd2190a134cb1c3033f31024cdc4a60c16a0399c769ddb7171d1a88560200151858b6040516126f79392919063ffffffff939093168352602083019190915273ffffffffffffffffffffffffffffffffffffffff16604082015260600190565b60405180910390a45050808061270c90613401565b9150506124e1565b50979650505050505050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01610c87565b600080600061276a858561277f565b91509150612777816127ef565b509392505050565b6000808251604114156127b65760208301516040840151606085015160001a6127aa87828585612a48565b945094505050506127e8565b8251604014156127e057602083015160408401516127d5868383612b60565b9350935050506127e8565b506000905060025b9250929050565b600081600481111561280357612803613733565b141561280c5750565b600181600481111561282057612820613733565b1415612888576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016103d8565b600281600481111561289c5761289c613733565b1415612904576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016103d8565b600381600481111561291857612918613733565b14156129a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103d8565b60048160048111156129ba576129ba613733565b1415610ac0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016103d8565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115612a7f5750600090506003612b57565b8460ff16601b14158015612a9757508460ff16601c14155b15612aa85750600090506004612b57565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612afc573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015191505073ffffffffffffffffffffffffffffffffffffffff8116612b5057600060019250925050612b57565b9150600090505b94509492505050565b6000807f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831660ff84901c601b01612b9a87828885612a48565b935093505050935093915050565b8015158114610ac057600080fd5b8035612bc181612ba8565b919050565b600060208284031215612bd857600080fd5b81356124d481612ba8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160c0810167ffffffffffffffff81118282101715612c3557612c35612be3565b60405290565b60405160e0810167ffffffffffffffff81118282101715612c3557612c35612be3565b6040805190810167ffffffffffffffff81118282101715612c3557612c35612be3565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612cc857612cc8612be3565b604052919050565b803564ffffffffff81168114612bc157600080fd5b600067ffffffffffffffff821115612cff57612cff612be3565b5060051b60200190565b600082601f830112612d1a57600080fd5b81356020612d2f612d2a83612ce5565b612c81565b82815260059290921b84018101918181019086841115612d4e57600080fd5b8286015b84811015612d695780358352918301918301612d52565b509695505050505050565b600082601f830112612d8557600080fd5b813567ffffffffffffffff811115612d9f57612d9f612be3565b612dd060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601612c81565b818152846020838601011115612de557600080fd5b816020850160208301376000918101602001919091529392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610ac057600080fd5b8035612bc181612e02565b600060c08284031215612e4157600080fd5b612e49612c12565b90508135815260208201356020820152612e6560408301612cd0565b6040820152606082013567ffffffffffffffff80821115612e8557600080fd5b612e9185838601612d09565b60608401526080840135915080821115612eaa57600080fd5b50612eb784828501612d74565b608083015250612ec960a08301612e24565b60a082015292915050565b600060208284031215612ee657600080fd5b813567ffffffffffffffff811115612efd57600080fd5b61206884828501612e2f565b600060208284031215612f1b57600080fd5b81356124d481612e02565b600060e08284031215612f3857600080fd5b612f40612c3b565b90508135815260208201356020820152612f5c60408301612cd0565b6040820152606082013567ffffffffffffffff811115612f7b57600080fd5b612f8784828501612d09565b60608301525060808201356080820152612fa360a08301612bb6565b60a0820152612fb460c08301612e24565b60c082015292915050565b600060208284031215612fd157600080fd5b813567ffffffffffffffff811115612fe857600080fd5b61206884828501612f26565b60006080828403121561300657600080fd5b6040516080810167ffffffffffffffff828210818311171561302a5761302a612be3565b816040528293508435915061303e82612e02565b818352602085013560208401526040850135915061305b82612e02565b816040840152606085013591508082111561307557600080fd5b5061308285828601612d09565b6060830152505092915050565b6000602082840312156130a157600080fd5b813567ffffffffffffffff8111156130b857600080fd5b61206884828501612ff4565b803560038110612bc157600080fd5b600080600080600080600060e0888a0312156130ee57600080fd5b873567ffffffffffffffff8082111561310657600080fd5b6131128b838c01612ff4565b985060208a013591508082111561312857600080fd5b6131348b838c01612e2f565b975060408a013591508082111561314a57600080fd5b6131568b838c01612d74565b965061316460608b016130c4565b955060808a013591508082111561317a57600080fd5b6131868b838c01612f26565b945060a08a013591508082111561319c57600080fd5b506131a98a828b01612d74565b9250506131b860c089016130c4565b905092959891949750929550565b6000602082840312156131d857600080fd5b5035919050565b600080602083850312156131f257600080fd5b823567ffffffffffffffff8082111561320a57600080fd5b818501915085601f83011261321e57600080fd5b81358181111561322d57600080fd5b8660208260051b850101111561324257600080fd5b60209290920196919550909350505050565b6000806040838503121561326757600080fd5b823561327281612e02565b946020939093013593505050565b6000806040838503121561329357600080fd5b823567ffffffffffffffff8111156132aa57600080fd5b6132b685828601612f26565b92505060208301356132c781612ba8565b809150509250929050565b600080604083850312156132e557600080fd5b823567ffffffffffffffff8111156132fc57600080fd5b6132b685828601612e2f565b60006020828403121561331a57600080fd5b81516124d481612ba8565b6000815180845260005b8181101561334b5760208185018101518683018201520161332f565b8181111561335d576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006124d46020830184613325565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613433576134336133d2565b5060010190565b600081518084526020808501945080840160005b8381101561346a5781518752958201959082019060010161344e565b509495945050505050565b821515815260406020820152815160408201526020820151606082015264ffffffffff60408301511660808201526000606083015160e060a08401526134bf61012084018261343a565b9050608084015160c084015260a0840151151560e084015273ffffffffffffffffffffffffffffffffffffffff60c085015116610100840152809150509392505050565b821515815260406020820152815160408201526020820151606082015264ffffffffff60408301511660808201526000606083015160c060a084015261354d61010084018261343a565b905060808401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160c08501526135888282613325565b91505073ffffffffffffffffffffffffffffffffffffffff60a08501511660e0840152809150509392505050565b805160208083015191908110156135f5577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b73ffffffffffffffffffffffffffffffffffffffff841681528260208201526060604082015260006136306060830184613325565b95945050505050565b60008282101561364b5761364b6133d2565b500390565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613688576136886133d2565b500290565b6000826136c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b600082198211156136db576136db6133d2565b500190565b6000602082840312156136f257600080fd5b81516124d481612e02565b815160009082906020808601845b838110156137275781518552938201939082019060010161370b565b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000602080838503121561377557600080fd5b825167ffffffffffffffff81111561378c57600080fd5b8301601f8101851361379d57600080fd5b80516137ab612d2a82612ce5565b81815260069190911b820183019083810190878311156137ca57600080fd5b928401925b8284101561382a57604084890312156137e85760008081fd5b6137f0612c5e565b84516137fb81612e02565b81528486015163ffffffff811681146138145760008081fd5b81870152825260409390930192908401906137cf565b97965050505050505056fe4d61726b65743a206f726465722063616e63656c6c6564206f7220657870697265644d61726b65743a20626964206f722061736b27732061677265656d656e74206861736820646f65736e2774206d61746368206f726465722061677265656d656e74a26469706673582212209610bd84163f57d053b9ade89ba2484903b84622aba49cb1d13f70b85b93dc1564736f6c63430008090033