79 txs
52 calls
constructor
constructor()
functions
_accountBuyRecords
viewfunction _accountBuyRecords(address, uint256) view returns (uint256)
_accountRecords
viewfunction _accountRecords(address, uint256) view returns (uint256)
_buyerItems
viewfunction _buyerItems(address, uint256) view returns (uint256)
_buyerTokenItems
viewfunction _buyerTokenItems(address, address, uint256) view returns (uint256)
_buyOrders
viewfunction _buyOrders(uint256) view returns (uint256 id, address token, address owner, uint256 price, uint256 qty, uint256 soldAmount, uint256 status, uint256 createAt)
_buyRecords
viewfunction _buyRecords(uint256) view returns (uint256 oid, address token, address seller, address buyer, uint256 tokenAmount, uint256 usdtAmount)
_buyTokenItems
viewfunction _buyTokenItems(address, uint256) view returns (uint256)
_buyUsdtAmount
viewfunction _buyUsdtAmount(address) view returns (uint256)
_cashAddress
viewfunction _cashAddress() view returns (address)
_maxAmount
viewfunction _maxAmount() view returns (uint256)
_minAmount
viewfunction _minAmount() view returns (uint256)
_orders
viewfunction _orders(uint256) view returns (uint256 id, address token, address owner, uint256 price, uint256 qty, uint256 soldAmount, uint256 status, uint256 createAt)
_pauseBuy
viewfunction _pauseBuy() view returns (bool)
_pauseSell
viewfunction _pauseSell() view returns (bool)
_sellerItems
viewfunction _sellerItems(address, uint256) view returns (uint256)
_sellerTokenItems
viewfunction _sellerTokenItems(address, address, uint256) view returns (uint256)
_sellUsdtAmount
viewfunction _sellUsdtAmount(address) view returns (uint256)
_swapRecords
viewfunction _swapRecords(uint256) view returns (uint256 oid, address token, address seller, address buyer, uint256 tokenAmount, uint256 usdtAmount)
_tokenConfigs
viewfunction _tokenConfigs(address) view returns (address tokenAddress, uint256 decimals, string tokenSymbol, uint256 fee, string uri, uint256 status, uint256 accOrderUsdt, uint256 accRemoveUsdt, uint256 accSwapAmount, uint256 accSwapUsdt, uint256 accFeeUsdt)
_tokenItems
viewfunction _tokenItems(address, uint256) view returns (uint256)
_tokens
viewfunction _tokens(uint256) view returns (address)
_usdt
viewfunction _usdt() view returns (address)
_userList
viewfunction _userList(uint256) view returns (address)
getAccountBuyRecordsLen
viewfunction getAccountBuyRecordsLen(address account) view returns (uint256)
getAccountRecordsLen
viewfunction getAccountRecordsLen(address account) view returns (uint256)
getBaseInfo
viewfunction getBaseInfo() view returns (address usdt, uint256 usdtDecimals, string usdtSymbol, uint256 minAmount, uint256 maxAmount, bool pauseSell, bool pauseBuy, uint256 ordersLen, uint256 recordsLen, uint256 buyOrdersLen, uint256 buyRecordsLen)
getBuyerItems
viewfunction getBuyerItems(address account, uint256 start, uint256 length) view returns (tuple[] records)
getBuyerItemsLen
viewfunction getBuyerItemsLen(address account) view returns (uint256)
getBuyerTokenItemsLen
viewfunction getBuyerTokenItemsLen(address account, address token) view returns (uint256)
getBuyOrdersLen
viewfunction getBuyOrdersLen() view returns (uint256)
getBuyRecordsLen
viewfunction getBuyRecordsLen() view returns (uint256)
getBuyTokenItems
viewfunction getBuyTokenItems(address token, uint256 start, uint256 length) view returns (tuple[] records)
getBuyTokenItemsLen
viewfunction getBuyTokenItemsLen(address token) view returns (uint256)
getOrdersLen
viewfunction getOrdersLen() view returns (uint256)
getSellerItems
viewfunction getSellerItems(address account, uint256 start, uint256 length) view returns (tuple[] records)
getSellerItemsLen
viewfunction getSellerItemsLen(address account) view returns (uint256)
getSellerTokenItemsLen
viewfunction getSellerTokenItemsLen(address account, address token) view returns (uint256)
getSwapRecordsLen
viewfunction getSwapRecordsLen() view returns (uint256)
getTokenItems
viewfunction getTokenItems(address token, uint256 start, uint256 length) view returns (tuple[] records)
getTokenItemsLen
viewfunction getTokenItemsLen(address token) view returns (uint256)
getTokenList
viewfunction getTokenList() view returns (tuple[] lists)
getTokensLen
viewfunction getTokensLen() view returns (uint256)
getUserInfo
viewfunction getUserInfo(address account) view returns (uint256 index, uint256 usdtBalance, uint256 usdtAllowance, uint256 orderLen, uint256 recordLen, uint256 buyUsdt, uint256 sellUsdt, uint256 buyOrderLen, uint256 buyRecordLen)
getUserListLength
viewfunction getUserListLength() view returns (uint256)
getUserTokenInfo
viewfunction getUserTokenInfo(address account, address token) view returns (uint256 tokenBalance, uint256 tokenAllowance)
owner
viewfunction owner() view returns (address)
userIndex
viewfunction userIndex(address) view returns (uint256)
addToken
nonpayablefunction addToken(address tokenAddress, uint256 fee, string uri)
buyItem
payablefunction buyItem(uint256 itemIndex, uint256 tokenAmount) payable
delToken
nonpayablefunction delToken(address tokenAddress, bool del)
listBuyItem
payablefunction listBuyItem(address tokenAddress, uint256 price, uint256 tokenAmount) payable
listItem
payablefunction listItem(address tokenAddress, uint256 price, uint256 tokenAmount) payable
removeBuyItem
nonpayablefunction removeBuyItem(uint256 itemIndex)
removeItem
nonpayablefunction removeItem(uint256 itemIndex)
renounceOwnership
nonpayablefunction renounceOwnership()
sellItem
payablefunction sellItem(uint256 itemIndex, uint256 tokenAmount) payable
setCashAddress
nonpayablefunction setCashAddress(address cash)
setMaxAmount
nonpayablefunction setMaxAmount(uint256 amount)
setMinAmount
nonpayablefunction setMinAmount(uint256 amount)
setPauseBuy
nonpayablefunction setPauseBuy(bool enable)
setPauseSell
nonpayablefunction setPauseSell(bool enable)
setTokenFee
nonpayablefunction setTokenFee(address tokenAddress, uint256 fee)
setTokenUri
nonpayablefunction setTokenUri(address tokenAddress, string uri)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
ItemListed
event ItemListed(uint256 indexed itemId, address indexed owner, address tokenAddress, uint256 price, uint256 remainingTokens, uint256 direct)
ItemRemoved
event ItemRemoved(uint256 indexed itemId, uint256 indexed direct)
ItemSold
event ItemSold(uint256 indexed itemId, address indexed sender, uint256 purchasedTokens, uint256 direct)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x60a06040523480156200001157600080fd5b50600080546001600160a01b0319163390811782556040517355d398326f99059ff775485246999027b31979559273add1d928a93d8ae8727edeca1db7e2e0c4e9fc7792918291907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001600160a01b038281166080819052600780546001600160a01b031916928416929092179091556040805163313ce56760e01b815290516000929163313ce5679160048083019260209291908290030181865afa158015620000e6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200010c919062000146565b6200011990600a62000287565b90506200012881600162000298565b600855620001398161271062000298565b60095550620002b2915050565b6000602082840312156200015957600080fd5b815160ff811681146200016b57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620001c9578160001904821115620001ad57620001ad62000172565b80851615620001bb57918102915b93841c93908002906200018d565b509250929050565b600082620001e25750600162000281565b81620001f15750600062000281565b81600181146200020a5760028114620002155762000235565b600191505062000281565b60ff84111562000229576200022962000172565b50506001821b62000281565b5060208310610133831016604e8410600b84101617156200025a575081810a62000281565b62000266838362000188565b80600019048211156200027d576200027d62000172565b0290505b92915050565b60006200016b60ff841683620001d1565b808202811582820484141762000281576200028162000172565b608051614d8d6200032960003960008181610ad101528181610dbe01528181611525015281816117d601528181611d7201528181611e050152818161282501528181612b6101528181612b8401528181612c0b01528181612ef101528181612fe00152818161306501526135a10152614d8d6000f3fe6080604052600436106103c35760003560e01c80638c088f00116101f2578063be3601f81161010d578063de0c4d2e116100a0578063ed70554d1161006f578063ed70554d14610cd2578063f2fde38b14610cf2578063f4e5fe6214610d12578063f8237f4714610d3257600080fd5b8063de0c4d2e14610c32578063e3a1cfb614610c67578063ebbfc6b514610c7c578063ed08ff7214610c9c57600080fd5b8063c634180d116100dc578063c634180d14610b7f578063c96679fe14610bc5578063ca3e297814610bf2578063d262fdae14610c1257600080fd5b8063be3601f814610abf578063be3ab54f14610af3578063bf59a9da14610b29578063bfe379f414610b4957600080fd5b8063a420483311610185578063b290f4f311610154578063b290f4f314610a3f578063b64cf2d914610a5f578063b8b7828914610a7f578063bdf752bb14610a9f57600080fd5b8063a4204833146109ca578063a932e8b9146109df578063b02e6826146109ff578063b1014cbb14610a1f57600080fd5b80639551ae44116101c15780639551ae441461091e5780639979c0091461094a5780639e188ae91461095d5780639ed081131461099457600080fd5b80638c088f00146108b85780638da5cb5b146108cd5780638ddc86a6146108eb5780638e122dac146108fe57600080fd5b80634df13eee116102e25780636386c1c7116102755780637c7f8a3c116102445780637c7f8a3c1461084f5780637e6decae1461086f578063897b06371461088557806389bfd38f146108a557600080fd5b80636386c1c71461079657806371329171146107fa578063715018a61461081a57806373010efd1461082f57600080fd5b806351c0aacd116102b157806351c0aacd146106d2578063550b76fd146106ec5780635584bb80146107495780635682a8891461077657600080fd5b80634df13eee146105f55780634e5919ef146106155780634f3d376d1461067c5780634fe47f70146106b257600080fd5b80632c8a84281161035a5780633d56b191116103295780633d56b191146105485780634154f7681461057557806341a0782314610595578063449fe500146105cb57600080fd5b80632c8a8428146104e05780632d9235611461050057806334fc6d3e146105135780633c1ea1901461052857600080fd5b8063115b80c211610396578063115b80c21461044f578063124ecf04146104875780631d0b347a1461049c578063273cbaa0146104be57600080fd5b806305fe2fc1146103c8578063064d4d7c146103ec578063070d43a31461040257806311442e9b14610422575b600080fd5b3480156103d457600080fd5b506010545b6040519081526020015b60405180910390f35b3480156103f857600080fd5b506103d960085481565b34801561040e57600080fd5b506103d961041d366004614364565b610d52565b34801561042e57600080fd5b506103d961043d36600461438e565b600c6020526000908152604090205481565b34801561045b57600080fd5b5060075461046f906001600160a01b031681565b6040516001600160a01b0390911681526020016103e3565b34801561049357600080fd5b506012546103d9565b3480156104a857600080fd5b506104bc6104b7366004614475565b610d7f565b005b3480156104ca57600080fd5b506104d3610f9d565b6040516103e3919061451c565b3480156104ec57600080fd5b506103d96104fb36600461460c565b61125f565b6104bc61050e366004614636565b611290565b34801561051f57600080fd5b506016546103d9565b34801561053457600080fd5b506103d961054336600461460c565b611813565b34801561055457600080fd5b50610568610563366004614658565b61182f565b6040516103e3919061468b565b34801561058157600080fd5b506104bc610590366004614732565b6119f9565b3480156105a157600080fd5b506103d96105b036600461438e565b6001600160a01b031660009081526005602052604090205490565b3480156105d757600080fd5b50600a546105e59060ff1681565b60405190151581526020016103e3565b34801561060157600080fd5b50610568610610366004614658565b611a36565b34801561062157600080fd5b5061063561063036600461474f565b611bf6565b604080519889526001600160a01b0397881660208a015295909616948701949094526060860192909252608085015260a084015260c083015260e0820152610100016103e3565b34801561068857600080fd5b506103d961069736600461438e565b6001600160a01b03166000908152600e602052604090205490565b3480156106be57600080fd5b506104bc6106cd36600461474f565b611c58565b3480156106de57600080fd5b50600f546105e59060ff1681565b3480156106f857600080fd5b5061070c61070736600461474f565b611cbf565b604080519687526001600160a01b0395861660208801529385169386019390935292166060840152608083019190915260a082015260c0016103e3565b34801561075557600080fd5b506103d961076436600461438e565b600b6020526000908152604090205481565b34801561078257600080fd5b506103d961079136600461460c565b611d14565b3480156107a257600080fd5b506107b66107b136600461438e565b611d30565b60408051998a5260208a0198909852968801959095526060870193909352608086019190915260a085015260c084015260e0830152610100820152610120016103e3565b34801561080657600080fd5b506104bc61081536600461474f565b611f03565b34801561082657600080fd5b506104bc6120e9565b34801561083b57600080fd5b506103d961084a366004614768565b61215d565b34801561085b57600080fd5b506103d961086a366004614768565b61219b565b34801561087b57600080fd5b506103d960095481565b34801561089157600080fd5b506104bc6108a036600461474f565b6121c3565b6104bc6108b3366004614658565b61222a565b3480156108c457600080fd5b506003546103d9565b3480156108d957600080fd5b506000546001600160a01b031661046f565b6104bc6108f9366004614658565b612684565b34801561090a57600080fd5b5061046f61091936600461474f565b612b24565b34801561092a57600080fd5b50610933612b4e565b6040516103e39b9a999897969594939291906147a4565b6104bc610958366004614636565b612ce6565b34801561096957600080fd5b5061097d61097836600461438e565b6132af565b6040516103e39b9a99989796959493929190614814565b3480156109a057600080fd5b506103d96109af36600461438e565b6001600160a01b031660009081526017602052604090205490565b3480156109d657600080fd5b506001546103d9565b3480156109eb57600080fd5b506104bc6109fa36600461474f565b61341e565b348015610a0b57600080fd5b50610635610a1a36600461474f565b613622565b348015610a2b57600080fd5b506104bc610a3a36600461460c565b613632565b348015610a4b57600080fd5b5061070c610a5a36600461474f565b61368b565b348015610a6b57600080fd5b506104bc610a7a366004614732565b61369b565b348015610a8b57600080fd5b506103d9610a9a36600461460c565b6136d8565b348015610aab57600080fd5b506104bc610aba36600461438e565b6136f4565b348015610acb57600080fd5b5061046f7f000000000000000000000000000000000000000000000000000000000000000081565b348015610aff57600080fd5b506103d9610b0e36600461438e565b6001600160a01b031660009081526014602052604090205490565b348015610b3557600080fd5b506103d9610b4436600461460c565b613740565b348015610b5557600080fd5b506103d9610b6436600461438e565b6001600160a01b031660009081526004602052604090205490565b348015610b8b57600080fd5b506103d9610b9a366004614364565b6001600160a01b03918216600090815260156020908152604080832093909416825291909152205490565b348015610bd157600080fd5b506103d9610be036600461438e565b60116020526000908152604090205481565b348015610bfe57600080fd5b506104bc610c0d366004614893565b61375c565b348015610c1e57600080fd5b506104bc610c2d3660046148ca565b6137cd565b348015610c3e57600080fd5b50610c52610c4d366004614364565b613833565b604080519283526020830191909152016103e3565b348015610c7357600080fd5b50600d546103d9565b348015610c8857600080fd5b50610568610c97366004614658565b61391f565b348015610ca857600080fd5b506103d9610cb736600461438e565b6001600160a01b031660009081526013602052604090205490565b348015610cde57600080fd5b5061046f610ced36600461474f565b613adf565b348015610cfe57600080fd5b506104bc610d0d36600461438e565b613aef565b348015610d1e57600080fd5b50610568610d2d366004614658565b613baf565b348015610d3e57600080fd5b506103d9610d4d36600461460c565b613d6f565b6001600160a01b038083166000908152600660209081526040808320938516835292905220545b92915050565b6000546001600160a01b03163314610db25760405162461bcd60e51b8152600401610da990614918565b60405180910390fd5b826001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031603610e1e5760405162461bcd60e51b81526020600482015260086024820152671b9bdd081d5cd91d60c21b6044820152606401610da9565b6001600160a01b038084166000908152600260205260409020805490911615610e4657600080fd5b60018054808201825560008290527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0387166001600160a01b0319918216811790925583541617825560058201556003810183905560048101610eb383826149b4565b50836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ef2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f169190614a74565b60ff168160010181905550836001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015610f5f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f879190810190614a97565b6002820190610f9690826149b4565b5050505050565b6001546060908067ffffffffffffffff811115610fbc57610fbc6143b0565b60405190808252806020026020018201604052801561105357816020015b61104060405180610160016040528060006001600160a01b03168152602001600081526020016060815260200160008152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b815260200190600190039081610fda5790505b50915060005b8181101561125a57600260006001838154811061107857611078614b0e565b60009182526020808320909101546001600160a01b0390811684528382019490945260409283019091208251610160810184528154909416845260018101549184019190915260028101805491928401916110d290614934565b80601f01602080910402602001604051908101604052809291908181526020018280546110fe90614934565b801561114b5780601f106111205761010080835404028352916020019161114b565b820191906000526020600020905b81548152906001019060200180831161112e57829003601f168201915b505050505081526020016003820154815260200160048201805461116e90614934565b80601f016020809104026020016040519081016040528092919081815260200182805461119a90614934565b80156111e75780601f106111bc576101008083540402835291602001916111e7565b820191906000526020600020905b8154815290600101906020018083116111ca57829003601f168201915b505050505081526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152505083828151811061123e5761123e614b0e565b60200260200101819052508061125390614b3a565b9050611059565b505090565b6004602052816000526040600020818154811061127b57600080fd5b90600052602060002001600091509150505481565b600a5460ff16156112b35760405162461bcd60e51b8152600401610da990614b53565b333281146112d35760405162461bcd60e51b8152600401610da990614b72565b6000601284815481106112e8576112e8614b0e565b9060005260206000209060080201905080600601546001146113375760405162461bcd60e51b8152602060048201526008602482015267657272206974656d60c01b6044820152606401610da9565b60008160050154826004015461134d9190614b8f565b9050600081116113895760405162461bcd60e51b81526020600482015260076024820152661cdbdb191bdd5d60ca1b6044820152606401610da9565b838110156113a95760405162461bcd60e51b8152600401610da990614ba2565b6001808301546001600160a01b03166000818152600260205260409020600581015491929091146114085760405162461bcd60e51b815260206004820152600960248201526832b939103a37b5b2b760b91b6044820152606401610da9565b6000846003015490506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611451573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114759190614a74565b61148090600a614caa565b61148a838a614cb9565b6114949190614cd0565b9050878660050160008282546114aa9190614cf2565b909155505060408051898152600160208201526001600160a01b038916918b917f7dbb555cf5b64f8649f7ef4aebb79066a9796a7729776c8149cb5fe98b65fd98910160405180910390a3600061271084600301548361150a9190614cb9565b6115149190614cd0565b9050801561155457600754611554907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683613d8b565b60028701546001600160a01b0390811690891681036115a45760405162461bcd60e51b815260206004820152600c60248201526b3938903737ba10313abcb2b960a11b6044820152606401610da9565b6115b0868a308d613e46565b506115bc86828c613d8b565b6000601680549050905060166040518060c001604052808e8152602001896001600160a01b031681526020018c6001600160a01b03168152602001846001600160a01b031681526020018d81526020018681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a0820151816005015550506116e98a613fea565b6001600160a01b03808316600081815260176020908152604080832080546001818101835591855283852001879055948f168352808320805495860181558352818320909401859055918152600b909152908120805486929061174d908490614cf2565b90915550506001600160a01b038a166000908152600c60205260408120805486929061177a908490614cf2565b925050819055508a8660080160008282546117959190614cf2565b92505081905550838660090160008282546117b09190614cf2565b925050819055508286600a0160008282546117cb9190614cf2565b9091555061180590507f00000000000000000000000000000000000000000000000000000000000000008b6118008688614b8f565b613d8b565b505050505050505050505050565b6014602052816000526040600020818154811061127b57600080fd5b6001600160a01b038316600090815260046020526040902080546060919084111561185957805493505b8215806118715750805461186e908590614b8f565b83115b15611886578054611883908590614b8f565b92505b8267ffffffffffffffff81111561189f5761189f6143b0565b6040519080825280602002602001820160405280156118d857816020015b6118c56142f1565b8152602001906001900390816118bd5790505b5091506000845b6118e98587614cf2565b8110156119ef576001600160a01b038716600090815260046020526040812080548390811061191a5761191a614b0e565b906000526020600020015490506003818154811061193a5761193a614b0e565b6000918252602091829020604080516101008101825260089093029091018054835260018101546001600160a01b03908116948401949094526002810154909316908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e082015285518690859081106119c6576119c6614b0e565b6020026020010181905250826119db90614b3a565b925050806119e890614b3a565b90506118df565b5050509392505050565b6000546001600160a01b03163314611a235760405162461bcd60e51b8152600401610da990614918565b600f805460ff1916911515919091179055565b6001600160a01b0383166000908152601360205260409020805460609190841115611a6057805493505b821580611a7857508054611a75908590614b8f565b83115b15611a8d578054611a8a908590614b8f565b92505b8267ffffffffffffffff811115611aa657611aa66143b0565b604051908082528060200260200182016040528015611adf57816020015b611acc6142f1565b815260200190600190039081611ac45790505b5091506000845b611af08587614cf2565b8110156119ef576001600160a01b0387166000908152601360205260408120805483908110611b2157611b21614b0e565b9060005260206000200154905060128181548110611b4157611b41614b0e565b6000918252602091829020604080516101008101825260089093029091018054835260018101546001600160a01b03908116948401949094526002810154909316908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201528551869085908110611bcd57611bcd614b0e565b602002602001018190525082611be290614b3a565b92505080611bef90614b3a565b9050611ae6565b60038181548110611c0657600080fd5b6000918252602090912060089091020180546001820154600283015460038401546004850154600586015460068701546007909701549597506001600160a01b03948516969490931694919390929188565b6000546001600160a01b03163314611c825760405162461bcd60e51b8152600401610da990614918565b60008111611cba5760405162461bcd60e51b815260206004820152600560248201526406e6f7420360dc1b6044820152606401610da9565b600955565b600d8181548110611ccf57600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501549395506001600160a01b03928316949183169392169186565b6017602052816000526040600020818154811061127b57600080fd5b6001600160a01b038082166000818152601160205260408082205490516370a0823160e01b8152600481019390935292909182918291829182918291829182917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa158015611db9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ddd9190614d05565b604051636eb1769f60e11b81526001600160a01b038c811660048301523060248301529199507f00000000000000000000000000000000000000000000000000000000000000009091169063dd62ed3e90604401602060405180830381865afa158015611e4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e729190614d05565b9650611e938a6001600160a01b031660009081526005602052604090205490565b9550611eb48a6001600160a01b03166000908152600e602052604090205490565b6001600160a01b039a909a166000908152600b6020908152604080832054600c8352818420546014845282852054601790945291909320549b9d9a9c999b989a92989097509095509350915050565b6000339050600060038381548110611f1d57611f1d614b0e565b600091825260209091206002600890920201908101549091506001600160a01b03838116911614611f7b5760405162461bcd60e51b815260206004820152600860248201526739389037bbb732b960c11b6044820152606401610da9565b8060060154600114611fbc5760405162461bcd60e51b815260206004820152600a6024820152696572722073746174757360b01b6044820152606401610da9565b6002600682015560058101546004820154600091611fd991614b8f565b60018301549091506001600160a01b0316611ff5818584613d8b565b60405160009086907ff6b7785072084000d80554abaf4d438ec9bce827d71b6ac74a0c6d24843770dc908390a36000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612062573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120869190614a74565b61209190600a614caa565b60038501546120a09085614cb9565b6120aa9190614cd0565b6001600160a01b038316600090815260026020526040812060078101805493945090928492906120db908490614cf2565b909155505050505050505050565b6000546001600160a01b031633146121135760405162461bcd60e51b8152600401610da990614918565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6006602052826000526040600020602052816000526040600020818154811061218557600080fd5b9060005260206000200160009250925050505481565b6015602052826000526040600020602052816000526040600020818154811061218557600080fd5b6000546001600160a01b031633146121ed5760405162461bcd60e51b8152600401610da990614918565b600081116122255760405162461bcd60e51b815260206004820152600560248201526406e6f7420360dc1b6044820152606401610da9565b600855565b600a5460ff161561224d5760405162461bcd60e51b8152600401610da990614b53565b6001600160a01b038316600090815260026020526040902060058101546001146122aa5760405162461bcd60e51b815260206004820152600e60248201526d3737ba103634b9ba103a37b5b2b760911b6044820152606401610da9565b600083116122e85760405162461bcd60e51b815260206004820152600b60248201526a05072696365206e6f7420360ac1b6044820152606401610da9565b333281146123085760405162461bcd60e51b8152600401610da990614b72565b61231181613fea565b61231d85823086613e46565b92506000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561235f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123839190614a74565b61238e90600a614caa565b6123988686614cb9565b6123a29190614cd0565b905060095481111580156123b857506008548110155b6123d45760405162461bcd60e51b8152600401610da990614ba2565b808360060160008282546123e89190614cf2565b92505081905550600060038054905090506003604051806101000160405280838152602001896001600160a01b03168152602001856001600160a01b0316815260200188815260200187815260200160008152602001600181526020014281525090806001815401808255809150506001900390600052602060002090600802016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155505060046000886001600160a01b03166001600160a01b0316815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505560056000846001600160a01b03166001600160a01b0316815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505560066000846001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055826001600160a01b0316817fe5695c078921b31622212415f370ba739c8c60080cc5520a02503ef889fe0822898989600060405161267394939291906001600160a01b0394909416845260208401929092526040830152606082015260800190565b60405180910390a350505050505050565b600f5460ff16156126a75760405162461bcd60e51b8152600401610da990614b53565b6001600160a01b038316600090815260026020526040902060058101546001146127045760405162461bcd60e51b815260206004820152600e60248201526d3737ba103634b9ba103a37b5b2b760911b6044820152606401610da9565b600083116127425760405162461bcd60e51b815260206004820152600b60248201526a05072696365206e6f7420360ac1b6044820152606401610da9565b333281146127625760405162461bcd60e51b8152600401610da990614b72565b61276b81613fea565b6000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127cf9190614a74565b6127da90600a614caa565b6127e48686614cb9565b6127ee9190614cd0565b9050600954811115801561280457506008548110155b6128205760405162461bcd60e51b8152600401610da990614ba2565b61284c7f0000000000000000000000000000000000000000000000000000000000000000833084613e46565b81146128855760405162461bcd60e51b8152602060048201526008602482015267195c9c881d5cd91d60c21b6044820152606401610da9565b808360060160008282546128999190614cf2565b92505081905550600060128054905090506012604051806101000160405280838152602001896001600160a01b03168152602001856001600160a01b0316815260200188815260200187815260200160008152602001600181526020014281525090806001815401808255809150506001900390600052602060002090600802016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155505060136000886001600160a01b03166001600160a01b0316815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505560146000846001600160a01b03166001600160a01b0316815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505560156000846001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055826001600160a01b0316817fe5695c078921b31622212415f370ba739c8c60080cc5520a02503ef889fe0822898989600160405161267394939291906001600160a01b0394909416845260208401929092526040830152606082015260800190565b60108181548110612b3457600080fd5b6000918252602090912001546001600160a01b0316905081565b60008060606000806000806000806000807f00000000000000000000000000000000000000000000000000000000000000009a507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612be0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c049190614a74565b60ff1699507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612c67573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612c8f9190810190614a97565b600854600954600a54600f54939c50919a50985060ff9081169750169450612cb660035490565b9350612cc1600d5490565b9250612ccc60125490565b9150612cd760165490565b9050909192939495969798999a565b600f5460ff1615612d095760405162461bcd60e51b8152600401610da990614b53565b33328114612d295760405162461bcd60e51b8152600401610da990614b72565b600060038481548110612d3e57612d3e614b0e565b906000526020600020906008020190508060060154600114612d8d5760405162461bcd60e51b8152602060048201526008602482015267657272206974656d60c01b6044820152606401610da9565b600081600501548260040154612da39190614b8f565b905060008111612ddf5760405162461bcd60e51b81526020600482015260076024820152661cdbdb191bdd5d60ca1b6044820152606401610da9565b83811015612dff5760405162461bcd60e51b8152600401610da990614ba2565b6001808301546001600160a01b0316600081815260026020526040902060058101549192909114612e5e5760405162461bcd60e51b815260206004820152600960248201526832b939103a37b5b2b760b91b6044820152606401610da9565b6000846003015490506000836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ea7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecb9190614a74565b612ed690600a614caa565b612ee0838a614cb9565b612eea9190614cd0565b9050612f187f0000000000000000000000000000000000000000000000000000000000000000883084613e46565b8114612f515760405162461bcd60e51b8152602060048201526008602482015267195c9c881d5cd91d60c21b6044820152606401610da9565b87866005016000828254612f659190614cf2565b909155505060408051898152600060208201526001600160a01b038916918b917f7dbb555cf5b64f8649f7ef4aebb79066a9796a7729776c8149cb5fe98b65fd98910160405180910390a36000612710846003015483612fc59190614cb9565b612fcf9190614cd0565b9050801561300f5760075461300f907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b031683613d8b565b60028701546001600160a01b0390811690891681036130605760405162461bcd60e51b815260206004820152600d60248201526c3938903737ba1039b2b63632b960991b6044820152606401610da9565b61308f7f0000000000000000000000000000000000000000000000000000000000000000826118008587614b8f565b6000600d805490509050600d6040518060c001604052808e8152602001896001600160a01b03168152602001846001600160a01b031681526020018c6001600160a01b031681526020018d81526020018681525090806001815401808255809150506001900390600052602060002090600602016000909190919091506000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060608201518160030160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506080820151816004015560a0820151816005015550506131bc8a613fea565b6001600160a01b038083166000908152600e6020908152604080832080546001818101835591855283852001869055938e16808452818420805495860181558452828420909401859055928252600b90529081208054869290613220908490614cf2565b90915550506001600160a01b0382166000908152600c60205260408120805486929061324d908490614cf2565b925050819055508a8660080160008282546132689190614cf2565b92505081905550838660090160008282546132839190614cf2565b925050819055508286600a01600082825461329e9190614cf2565b909155506118059050878b8d613d8b565b60026020819052600091825260409091208054600182015492820180546001600160a01b039092169392916132e390614934565b80601f016020809104026020016040519081016040528092919081815260200182805461330f90614934565b801561335c5780601f106133315761010080835404028352916020019161335c565b820191906000526020600020905b81548152906001019060200180831161333f57829003601f168201915b50505050509080600301549080600401805461337790614934565b80601f01602080910402602001604051908101604052809291908181526020018280546133a390614934565b80156133f05780601f106133c5576101008083540402835291602001916133f0565b820191906000526020600020905b8154815290600101906020018083116133d357829003601f168201915b50505050509080600501549080600601549080600701549080600801549080600901549080600a015490508b565b600033905060006012838154811061343857613438614b0e565b600091825260209091206002600890920201908101549091506001600160a01b038381169116146134965760405162461bcd60e51b815260206004820152600860248201526739389037bbb732b960c11b6044820152606401610da9565b80600601546001146134d75760405162461bcd60e51b815260206004820152600a6024820152696572722073746174757360b01b6044820152606401610da9565b60026006820155600581015460048201546000916134f491614b8f565b905060008260010160009054906101000a90046001600160a01b031690506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613552573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135769190614a74565b61358190600a614caa565b60038501546135909085614cb9565b61359a9190614cd0565b90506135c77f00000000000000000000000000000000000000000000000000000000000000008683613d8b565b60405160019087907ff6b7785072084000d80554abaf4d438ec9bce827d71b6ac74a0c6d24843770dc90600090a36001600160a01b0382166000908152600260205260408120600781018054919284926120db908490614cf2565b60128181548110611c0657600080fd5b6000546001600160a01b0316331461365c5760405162461bcd60e51b8152600401610da990614918565b6001600160a01b03808316600081815260026020526040902080549092161461368457600080fd5b6003015550565b60168181548110611ccf57600080fd5b6000546001600160a01b031633146136c55760405162461bcd60e51b8152600401610da990614918565b600a805460ff1916911515919091179055565b600e602052816000526040600020818154811061127b57600080fd5b6000546001600160a01b0316331461371e5760405162461bcd60e51b8152600401610da990614918565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b6013602052816000526040600020818154811061127b57600080fd5b6000546001600160a01b031633146137865760405162461bcd60e51b8152600401610da990614918565b6001600160a01b0380831660008181526002602052604090208054909216146137ae57600080fd5b81156137c05760026005820155505050565b600160058201555b505050565b6000546001600160a01b031633146137f75760405162461bcd60e51b8152600401610da990614918565b6001600160a01b03808316600081815260026020526040902080549092161461381f57600080fd5b6004810161382d83826149b4565b50505050565b6040516370a0823160e01b81526001600160a01b03838116600483015260009182918416906370a0823190602401602060405180830381865afa15801561387e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138a29190614d05565b604051636eb1769f60e11b81526001600160a01b0386811660048301523060248301529193509084169063dd62ed3e90604401602060405180830381865afa1580156138f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139169190614d05565b90509250929050565b6001600160a01b038316600090815260146020526040902080546060919084111561394957805493505b8215806139615750805461395e908590614b8f565b83115b15613976578054613973908590614b8f565b92505b8267ffffffffffffffff81111561398f5761398f6143b0565b6040519080825280602002602001820160405280156139c857816020015b6139b56142f1565b8152602001906001900390816139ad5790505b5091506000845b6139d98587614cf2565b8110156119ef576001600160a01b0387166000908152601460205260408120805483908110613a0a57613a0a614b0e565b9060005260206000200154905060128181548110613a2a57613a2a614b0e565b6000918252602091829020604080516101008101825260089093029091018054835260018101546001600160a01b03908116948401949094526002810154909316908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201528551869085908110613ab657613ab6614b0e565b602002602001018190525082613acb90614b3a565b92505080613ad890614b3a565b90506139cf565b60018181548110612b3457600080fd5b6000546001600160a01b03163314613b195760405162461bcd60e51b8152600401610da990614918565b6001600160a01b038116613b545760405162461bcd60e51b815260206004820152600260248201526106e360f41b6044820152606401610da9565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166000908152600560205260409020805460609190841115613bd957805493505b821580613bf157508054613bee908590614b8f565b83115b15613c06578054613c03908590614b8f565b92505b8267ffffffffffffffff811115613c1f57613c1f6143b0565b604051908082528060200260200182016040528015613c5857816020015b613c456142f1565b815260200190600190039081613c3d5790505b5091506000845b613c698587614cf2565b8110156119ef576001600160a01b0387166000908152600560205260408120805483908110613c9a57613c9a614b0e565b9060005260206000200154905060038181548110613cba57613cba614b0e565b6000918252602091829020604080516101008101825260089093029091018054835260018101546001600160a01b03908116948401949094526002810154909316908201526003820154606082015260048201546080820152600582015460a0820152600682015460c082015260079091015460e08201528551869085908110613d4657613d46614b0e565b602002602001018190525082613d5b90614b3a565b92505080613d6890614b3a565b9050613c5f565b6005602052816000526040600020818154811061127b57600080fd5b80600003613d9857505050565b6040516370a0823160e01b8152306004820152839082906001600160a01b038316906370a0823190602401602060405180830381865afa158015613de0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e049190614d05565b1015613e3b5760405162461bcd60e51b8152600401610da99060208082526004908201526350544e4560e01b604082015260600190565b61382d8484846140ee565b6040516370a0823160e01b81526001600160a01b03848116600483015260009186918491908316906370a0823190602401602060405180830381865afa158015613e94573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb89190614d05565b1015613eec5760405162461bcd60e51b8152602060048201526003602482015262544e4560e81b6044820152606401610da9565b6040516370a0823160e01b81526001600160a01b038581166004830152600091908316906370a0823190602401602060405180830381865afa158015613f36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613f5a9190614d05565b9050613f68878787876141e7565b6040516370a0823160e01b81526001600160a01b0386811660048301528291908416906370a0823190602401602060405180830381865afa158015613fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613fd59190614d05565b613fdf9190614b8f565b979650505050505050565b6001600160a01b03811660009081526005602052604090205415801561402657506001600160a01b0381166000908152600e6020526040902054155b801561404857506001600160a01b038116600090815260146020526040902054155b801561406a57506001600160a01b038116600090815260176020526040902054155b156140eb576001600160a01b03811660009081526011602052604081205490036140eb57601080546001600160a01b0383166000818152601160205260408120839055600183018455929092527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720180546001600160a01b03191690911790555b50565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b179052915160009283929087169161414a9190614d1e565b6000604051808303816000865af19150503d8060008114614187576040519150601f19603f3d011682016040523d82523d6000602084013e61418c565b606091505b50915091508180156141b65750805115806141b65750808060200190518101906141b69190614d3a565b610f965760405162461bcd60e51b81526020600482015260026024820152612a2360f11b6044820152606401610da9565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b179052915160009283929088169161424b9190614d1e565b6000604051808303816000865af19150503d8060008114614288576040519150601f19603f3d011682016040523d82523d6000602084013e61428d565b606091505b50915091508180156142b75750805115806142b75750808060200190518101906142b79190614d3a565b6142e95760405162461bcd60e51b81526020600482015260036024820152622a2a2360e91b6044820152606401610da9565b505050505050565b6040518061010001604052806000815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b80356001600160a01b038116811461435f57600080fd5b919050565b6000806040838503121561437757600080fd5b61438083614348565b915061391660208401614348565b6000602082840312156143a057600080fd5b6143a982614348565b9392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156143ef576143ef6143b0565b604052919050565b600067ffffffffffffffff821115614411576144116143b0565b50601f01601f191660200190565b600082601f83011261443057600080fd5b813561444361443e826143f7565b6143c6565b81815284602083860101111561445857600080fd5b816020850160208301376000918101602001919091529392505050565b60008060006060848603121561448a57600080fd5b61449384614348565b925060208401359150604084013567ffffffffffffffff8111156144b657600080fd5b6144c28682870161441f565b9150509250925092565b60005b838110156144e75781810151838201526020016144cf565b50506000910152565b600081518084526145088160208601602086016144cc565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156145fe57888303603f19018552815180516001600160a01b031684526101608882015189860152878201518189870152614583828701826144f0565b9150506060808301518187015250608080830151868303828801526145a883826144f0565b60a0858101519089015260c0808601519089015260e08086015190890152610100808601519089015261012080860151908901526101409485015194909701939093525050509386019390860190600101614543565b509098975050505050505050565b6000806040838503121561461f57600080fd5b61462883614348565b946020939093013593505050565b6000806040838503121561464957600080fd5b50508035926020909101359150565b60008060006060848603121561466d57600080fd5b61467684614348565b95602085013595506040909401359392505050565b602080825282518282018190526000919060409081850190868401855b8281101561471757815180518552868101516001600160a01b0390811688870152868201511686860152606080820151908601526080808201519086015260a0808201519086015260c0808201519086015260e0908101519085015261010090930192908501906001016146a8565b5091979650505050505050565b80151581146140eb57600080fd5b60006020828403121561474457600080fd5b81356143a981614724565b60006020828403121561476157600080fd5b5035919050565b60008060006060848603121561477d57600080fd5b61478684614348565b925061479460208501614348565b9150604084013590509250925092565b6001600160a01b038c168152602081018b9052610160604082018190526000906147d08382018d6144f0565b606084019b909b525050608081019790975294151560a087015292151560c086015260e0850191909152610100840152610120830152610140909101529392505050565b6001600160a01b038c168152602081018b9052610160604082018190526000906148408382018d6144f0565b90508a6060840152828103608084015261485a818b6144f0565b60a0840199909952505060c081019590955260e08501939093526101008401919091526101208301526101409091015295945050505050565b600080604083850312156148a657600080fd5b6148af83614348565b915060208301356148bf81614724565b809150509250929050565b600080604083850312156148dd57600080fd5b6148e683614348565b9150602083013567ffffffffffffffff81111561490257600080fd5b61490e8582860161441f565b9150509250929050565b602080825260029082015261216f60f01b604082015260600190565b600181811c9082168061494857607f821691505b60208210810361496857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156137c857600081815260208120601f850160051c810160208610156149955750805b601f850160051c820191505b818110156142e9578281556001016149a1565b815167ffffffffffffffff8111156149ce576149ce6143b0565b6149e2816149dc8454614934565b8461496e565b602080601f831160018114614a1757600084156149ff5750858301515b600019600386901b1c1916600185901b1785556142e9565b600085815260208120601f198616915b82811015614a4657888601518255948401946001909101908401614a27565b5085821015614a645787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215614a8657600080fd5b815160ff811681146143a957600080fd5b600060208284031215614aa957600080fd5b815167ffffffffffffffff811115614ac057600080fd5b8201601f81018413614ad157600080fd5b8051614adf61443e826143f7565b818152856020838501011115614af457600080fd5b614b058260208301602086016144cc565b95945050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614b4c57614b4c614b24565b5060010190565b602080825260059082015264706175736560d81b604082015260600190565b602080825260039082015262454f4160e81b604082015260600190565b81810381811115610d7957610d79614b24565b6020808252600a9082015269195c9c88185b5bdd5b9d60b21b604082015260600190565b600181815b80851115614c01578160001904821115614be757614be7614b24565b80851615614bf457918102915b93841c9390800290614bcb565b509250929050565b600082614c1857506001610d79565b81614c2557506000610d79565b8160018114614c3b5760028114614c4557614c61565b6001915050610d79565b60ff841115614c5657614c56614b24565b50506001821b610d79565b5060208310610133831016604e8410600b8410161715614c84575081810a610d79565b614c8e8383614bc6565b8060001904821115614ca257614ca2614b24565b029392505050565b60006143a960ff841683614c09565b8082028115828204841417610d7957610d79614b24565b600082614ced57634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610d7957610d79614b24565b600060208284031215614d1757600080fd5b5051919050565b60008251614d308184602087016144cc565b9190910192915050565b600060208284031215614d4c57600080fd5b81516143a98161472456fea2646970667358221220e92171b0dc6f67ec7d27e87aef74ba3278e2702e5bf82cd9c25267c1171669d364736f6c63430008130033