0 txs
37 calls
constructor
constructor()
functions
balanceInfoOf
viewfunction balanceInfoOf(bytes12 pid) view returns (uint256 tokenAmount, uint256 totalSupplyAmount, uint256 legalAmount, uint256 soldTokenAmount, uint256 depositorTokenBalance, uint256 redeemAmount, uint256 redemptionAmount, uint256 secondarySoldTokenAmount)
balanceOf
viewfunction balanceOf(bytes12 pid, address tokenHolder) view returns (uint256 balance)
batchBalanceOf
viewfunction batchBalanceOf(bytes12[] pids) view returns (tuple[] balances)
getAddress
viewfunction getAddress() view returns (address manager, address pftd)
getFeeConfigs
viewfunction getFeeConfigs() view returns (tuple secondaryFee, tuple withdrawalFee, tuple withdrawalDepositFee)
getProduct
viewfunction getProduct(bytes12 pid) view returns (tuple)
getProductInfo
viewfunction getProductInfo(bytes12 pid) view returns (tuple)
getProductPublish
viewfunction getProductPublish(bytes12 pid) view returns (tuple)
getSecondaryClassify
viewfunction getSecondaryClassify(bytes12 pid, bytes12 sid) view returns (tuple)
getSecondarySoldTokenAmount
viewfunction getSecondarySoldTokenAmount(bytes12 pid, address depositor) view returns (uint256 amount)
initialed
viewfunction initialed() view returns (bool)
owner
viewfunction owner() view returns (address)
totalSupply
viewfunction totalSupply(bytes12 pid) view returns (uint256 amount)
buy
nonpayablefunction buy(bytes12 pid, address buyer, uint256 pay, uint256 income) returns (bool)
confirmAuction
nonpayablefunction confirmAuction(bytes12 pid, address buyer, uint256 amount, uint256 uintPrice) returns (uint256, address, uint256, address)
initial
nonpayablefunction initial(address manager, address pftd)
publish
nonpayablefunction publish(tuple info, address holder) returns (address)
publishSecondary
nonpayablefunction publishSecondary(bytes12 pid, bytes12 sid, address solder, uint256 legalAmount, uint256 tokenAmount, uint256 fee, uint256 expireTime)
recharge
nonpayablefunction recharge(bytes12 pid, address holder, uint256 amount, uint256 pay, uint256 uintPrice)
redemption
nonpayablefunction redemption(bytes12 pid, address holder, uint256 amount) returns (uint256, bool, uint256, address)
requestAuction
nonpayablefunction requestAuction(bytes12 pid, address holder) returns (uint256)
secondaryBuy
nonpayablefunction secondaryBuy(address buyer, bytes12 pid, bytes12 sid, uint256 legalAmount, uint256 tokenAmount) returns (address solder, uint256 fee)
setFeeConfigs
nonpayablefunction setFeeConfigs(tuple secondaryFee, tuple withdrawalFee, tuple withdrawalDepositFee)
stopDeposit
nonpayablefunction stopDeposit(bytes12 pid, address holder)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unPublish
nonpayablefunction unPublish(bytes12 pid, bytes12 sid, address solder)
unPublishByAccount
nonpayablefunction unPublishByAccount(bytes12 pid, address solder)
unPublishProduct
nonpayablefunction unPublishProduct(bytes12 pid)
withdrawal
nonpayablefunction withdrawal(bytes12 pid, address holder, uint256 amount, uint256 coin) returns (uint256 managerFee, uint256 withdrawalFee)
withdrawalDeposit
nonpayablefunction withdrawalDeposit(bytes12 pid, address holder, uint256 amount, uint256 fee)
events
No events.
errors
No errors.
creation bytecode
0x6080604052600d805460ff60a01b1916905534801561001d57600080fd5b50600080546001600160a01b0319163317905561591480620000406000396000f3fe608060405234801561001057600080fd5b50600436106101da5760003560e01c806377c24b1111610104578063cadb02a3116100a2578063de8ee4fc11610071578063de8ee4fc14610682578063e28c315b146106a2578063f2fde38b146106b5578063f4d1e291146106c857600080fd5b8063cadb02a3146105d2578063d12333b4146105e5578063d645c41714610621578063dbacf1f41461064157600080fd5b80638da5cb5b116100de5780638da5cb5b146105715780639e11ef6b14610584578063ad3a50d4146105ac578063bf862898146105bf57600080fd5b806377c24b111461042d5780637874aad81461044d5780638658d0fd1461055e57600080fd5b80632b461e041161017c5780635cb9ba541161014b5780635cb9ba5414610358578063624aa9d8146103f457806364a931ff146104075780637138d00e1461041a57600080fd5b80632b461e04146102d357806334946756146102fe57806338cc48311461031157806340734c701461033757600080fd5b80631296b7f4116101b85780631296b7f4146102305780631a80f79d1461026e578063200ea954146102a057806326cff6ed146102b357600080fd5b8063021c17ad146101df5780630cd9c7a7146102085780631197b6c31461021b575b600080fd5b600d546101f390600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b6101f3610216366004614d8d565b610716565b61022e610229366004614f59565b610ba4565b005b61024361023e366004614d8d565b610f29565b604080519485526001600160a01b0393841660208601528401919091521660608201526080016101ff565b61028161027c366004614bd3565b61112d565b604080516001600160a01b0390931683526020830191909152016101ff565b61022e6102ae366004614d17565b6114d0565b6102c66102c1366004614d17565b611521565b6040516101ff91906154a3565b6102e66102e1366004614f1d565b611968565b6040516001600160a01b0390911681526020016101ff565b61022e61030c366004614e53565b611d16565b600c54600d54604080516001600160a01b039384168152929091166020830152016101ff565b61034a610345366004614d32565b611df7565b6040519081526020016101ff565b6040805180820182526000808252602091820181905282518084018452818152820181905282518084018452818152820152815180830183526001546001600160401b038082168352600160401b9182900481168385015284518086018652600254808316825283900482168186015285518087019096526003548083168752929092041692840192909252916040516101ff93929190615653565b61022e610402366004614dd1565b611e91565b61022e610415366004614d8d565b6121f2565b61022e610428366004614d32565b612644565b61044061043b366004614d17565b6128d0565b6040516101ff91906152c5565b61055161045b366004614e20565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810191909152506001600160a01b0319918216600090815260076020818152604080842094861684529381529183902083516101208101855281546001600160a01b039081168252600183015490811694820194909452600160a01b90930460a090811b909516938301939093526002830154606083015260038301546080830152600483015460ff16151593820193909352600582015460c0820152600682015460e082015291015461010082015290565b6040516101ff91906156ad565b61022e61056c366004614b9a565b612a02565b6000546102e6906001600160a01b031681565b610597610592366004614d8d565b612abc565b604080519283526020830191909152016101ff565b61022e6105ba366004614e9a565b612ff0565b61034a6105cd366004614d32565b613234565b61022e6105e0366004614d32565b613590565b6105f86105f3366004614d4e565b6135f0565b604080519485529215156020850152918301526001600160a01b031660608201526080016101ff565b61063461062f366004614c2a565b613909565b6040516101ff919061509b565b61034a61064f366004614d32565b6001600160a01b031990911660009081526008602090815260408083206001600160a01b03949094168352929052205490565b610695610690366004614d17565b613d7f565b6040516101ff9190615371565b61034a6106b0366004614d17565b613fa8565b61022e6106c3366004614b60565b614047565b6106db6106d6366004614d17565b61408c565b604080519889526020890197909752958701949094526060860192909252608085015260a084015260c083015260e0820152610100016101ff565b600c546000906001600160a01b031633148061073c57506000546001600160a01b031633145b61074557600080fd5b6001600160a01b0319808616600090815260046020818152604080842081516101c081018352815460a081811b9098168252600160601b90046001600160a01b0316818501528251808401845260018301546001600160401b038082168352600160401b91829004811683880152838601929092528451808601909552600284015480831686520416938301939093526060830191909152600381015460808301529182015493810193909352600581015460c0840152600681015460e0840152600781015460ff1615156101008401526008810180549293926101208401919061082f90615821565b80601f016020809104026020016040519081016040528092919081815260200182805461085b90615821565b80156108a85780601f1061087d576101008083540402835291602001916108a8565b820191906000526020600020905b81548152906001019060200180831161088b57829003601f168201915b505050505081526020016009820180546108c190615821565b80601f01602080910402602001604051908101604052809291908181526020018280546108ed90615821565b801561093a5780601f1061090f5761010080835404028352916020019161093a565b820191906000526020600020905b81548152906001019060200180831161091d57829003601f168201915b50505050508152602001600a8201548152602001600b8201548152602001600c8201548152505090508061010001516109ce576000620f42408260e001518561098391906157eb565b61098d91906157c9565b90508481146109c85760405162461bcd60e51b81526020600482015260026024820152611a9b60f11b60448201526064015b60405180910390fd5b50610a4f565b606081015180516020909101516000916109e79161579e565b6001600160401b03168260600151602001516001600160401b031685610a0d91906157eb565b610a1791906157c9565b9050848114610a4d5760405162461bcd60e51b81526020600482015260026024820152611a9b60f11b60448201526064016109bf565b505b610a5883614479565b610a895760405162461bcd60e51b8152602060048201526002602482015261035360f41b60448201526064016109bf565b6001600160a01b031986166000908152600660205260409020600160048083015460ff1690811115610abd57610abd615887565b14610ada5760405162461bcd60e51b81526004016109bf90615271565b848160020154610aea9190615786565b60028201556003810154610aff908590615786565b6003820155805460018201546040516323037ba760e21b81526001600160a01b0392831692638c0dee9c92610b40928c92909116908b908a9060040161512c565b602060405180830381600087803b158015610b5a57600080fd5b505af1158015610b6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b929190614f04565b5050610100015190505b949350505050565b600c546001600160a01b0316331480610bc757506000546001600160a01b031633145b610bd057600080fd5b610be06040840160208501614f9f565b6001600160401b0316151580610c0d5750610c016040830160208401614f9f565b6001600160401b031615155b80610c2f5750610c236040820160208301614f9f565b6001600160401b031615155b610c605760405162461bcd60e51b815260206004820152600260248201526106a760f31b60448201526064016109bf565b6000610c726040850160208601614f9f565b6001600160401b0316118015610cdc57506001546001600160401b0316610c9c6020850185614f9f565b6001600160401b0316141580610cdc5750600154600160401b90046001600160401b0316610cd06040850160208601614f9f565b6001600160401b031614155b15610d4c57610cee6020840184614f9f565b6001805467ffffffffffffffff19166001600160401b0392909216919091179055610d1f6040840160208501614f9f565b600180546001600160401b0392909216600160401b0267ffffffffffffffff60401b199092169190911790555b6000610d5e6040840160208501614f9f565b6001600160401b0316118015610dc857506002546001600160401b0316610d886020840184614f9f565b6001600160401b0316141580610dc85750600254600160401b90046001600160401b0316610dbc6040840160208501614f9f565b6001600160401b031614155b15610e3857610dda6020830183614f9f565b6002805467ffffffffffffffff19166001600160401b0392909216919091179055610e0b6040830160208401614f9f565b600280546001600160401b0392909216600160401b0267ffffffffffffffff60401b199092169190911790555b6000610e4a6040830160208401614f9f565b6001600160401b0316118015610eb457506003546001600160401b0316610e746020830183614f9f565b6001600160401b0316141580610eb45750600354600160401b90046001600160401b0316610ea86040830160208401614f9f565b6001600160401b031614155b15610f2457610ec66020820182614f9f565b6003805467ffffffffffffffff19166001600160401b0392909216919091179055610ef76040820160208301614f9f565b600380546001600160401b0392909216600160401b0267ffffffffffffffff60401b199092169190911790555b505050565b600c546000908190819081906001600160a01b0316331480610f5557506000546001600160a01b031633145b610f5e57600080fd5b6001600160a01b03198816600090815260066020526040902085610fa95760405162461bcd60e51b81526020600482015260026024820152610c4d60f21b60448201526064016109bf565b6004810154610100900460ff16610fd25760405162461bcd60e51b81526004016109bf90615271565b60048181015460ff1681811115610feb57610feb615887565b141561101e5760405162461bcd60e51b8152602060048201526002602482015261313960f01b60448201526064016109bf565b8054604051632899cd3760e21b81526000916001600160a01b03169063a26734dc9061104e908d906004016150f4565b60206040518083038186803b15801561106657600080fd5b505afa15801561107a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109e9190614f04565b905060008883600601546110b29190615786565b90506000620f42406110c48a856157eb565b6110ce91906157c9565b90508181146110ef5760405162461bcd60e51b81526004016109bf9061528d565b6004848101805460ff1916909117905560068401829055600584018990556111178c8c61449d565b929f919e509c50909a5098505050505050505050565b600c5460009081906001600160a01b031633148061115557506000546001600160a01b031633145b61115e57600080fd5b6001600160a01b03198087166000818152600760209081526040808320948a1683529381528382209282526006815283822084516101408101865281546001600160a01b03908116825260018301549081169382019390935260ff600160a01b9093048316151595810195909552600281015460608601526003810154608086015260048082015494959394919260a0850192169081111561120257611202615887565b600481111561121357611213615887565b815260048281015460ff61010090910481161515602084015260058401546040840152600684015460608401526007909301546001600160a01b031660809092019190915284015491925016156112915760405162461bcd60e51b8152602060048201526002602482015261068760f31b60448201526064016109bf565b60058201546001600160a01b0319808a166000908152600a60209081526040808320938c1683529290522054106112da5760405162461bcd60e51b81526004016109bf906152a9565b60058201546001600160a01b031989166000908152600b602090815260408083206001600160a01b038e1684529091529020541061132a5760405162461bcd60e51b81526004016109bf906152a9565b816002015486146113625760405162461bcd60e51b8152602060048201526002602482015261353360f01b60448201526064016109bf565b8160030154851461139a5760405162461bcd60e51b81526020600482015260026024820152610d4d60f21b60448201526064016109bf565b60048201805460ff19166001908117909155820180546001600160a01b03808c166001600160a01b031992831617909255891660009081526008602090815260408083208654909416835292905220546113f48682615786565b6001600160a01b03198a16600090815260086020908152604080832087546001600160a01b039081168552925291829020929092558351855491516323037ba760e21b815290831692638c0dee9c9261145a928e9291909116908f908c9060040161512c565b602060405180830381600087803b15801561147457600080fd5b505af1158015611488573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ac9190614f04565b505081546007909201546001600160a01b0390921699919850909650505050505050565b600c546001600160a01b03163314806114f357506000546001600160a01b031633145b6114fc57600080fd5b6001600160a01b0319166000908152600a602090815260408083209091529020429055565b6115296148f4565b6001600160a01b0319808316600090815260046020818152604080842081516101c081018352815460a081811b9098168252600160601b90046001600160a01b0316818501528251808401845260018301546001600160401b038082168352600160401b91829004811683880152838601929092528451808601909552600284015480831686520416938301939093526060830191909152600381015460808301529182015493810193909352600581015460c0840152600681015460e0840152600781015460ff1615156101008401526008810180549293926101208401919061161390615821565b80601f016020809104026020016040519081016040528092919081815260200182805461163f90615821565b801561168c5780601f106116615761010080835404028352916020019161168c565b820191906000526020600020905b81548152906001019060200180831161166f57829003601f168201915b505050505081526020016009820180546116a590615821565b80601f01602080910402602001604051908101604052809291908181526020018280546116d190615821565b801561171e5780601f106116f35761010080835404028352916020019161171e565b820191906000526020600020905b81548152906001019060200180831161170157829003601f168201915b5050509183525050600a820154602080830191909152600b830154604080840191909152600c909301546060928301526001600160a01b0319871660009081526006825283812084516101408101865281546001600160a01b03908116825260018301549081169482019490945260ff600160a01b909404841615159581019590955260028101549385019390935260038301546080850152600480840154959650909460a085019216908111156117d8576117d8615887565b60048111156117e9576117e9615887565b81526020016004820160019054906101000a900460ff1615151515815260200160058201548152602001600682015481526020016007820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815250509050604051806102a0016040528083610120015181526020018361014001518152602001836101600151815260200183602001516001600160a01b031681526020018261012001516001600160a01b031681526020018361018001518152602001836101a00151815260200182600001516001600160a01b0316815260200183604001518152602001836060015181526020018360800151815260200182606001518152602001826080015181526020018360a0015181526020018360c0015181526020018260c0015115158152602001836101000151151581526020018360e0015181526020018260e00151815260200182610100015181526020018260a00151600481111561195e5761195e615887565b9052949350505050565b600c546000906001600160a01b031633148061198e57506000546001600160a01b031633145b61199757600080fd5b60006006816119a96020870187614d17565b6001600160a01b031916815260208101919091526040016000908120915060048083015460ff16908111156119e0576119e0615887565b146119fd5760405162461bcd60e51b81526004016109bf90615271565b6000600481611a0f6020880188614d17565b6001600160a01b031990811682526020820192909252604001600020805490925060a01b1615611a665760405162461bcd60e51b8152602060048201526002602482015261323360f01b60448201526064016109bf565b611a7861016086016101408701614cf5565b15611ac0576101c0850135600b820155611a986040860160208701614b60565b81546001600160a01b0391909116600160601b026bffffffffffffffffffffffff9091161781555b611acd6020860186614d17565b81546bffffffffffffffffffffffff191660a09190911c1781556101e0850135600c820155611b00610160860186615739565b611b0e9160088401916149f6565b506101a0850135600a82015560c08501356003820155611b346060860160408701614f9f565b60018201805467ffffffffffffffff19166001600160401b0392909216919091179055611b676080860160608701614f9f565b6001820180546001600160401b0392909216600160401b0267ffffffffffffffff60401b19909216919091179055611ba761016086016101408701614cf5565b15611c1e57611bbc60a0860160808701614f9f565b60028201805467ffffffffffffffff19166001600160401b0392909216919091179055611bef60c0860160a08701614f9f565b6002820180546001600160401b0392909216600160401b0267ffffffffffffffff60401b199092169190911790555b60e085013560048201556101008501356005820155611c4561016086016101408701614cf5565b60078201805460ff19169115159190911790556101208501356006820155611c71610180860186615739565b611c7f9160098401916149f6565b5060048201805460ff19166001179055611ca161016086016101408701614cf5565b6001830180546001600160a01b0387166001600160a01b0319931515600160a01b0284166001600160a81b0319909216919091178117909155600784018054909216179055611cf085856146e8565b82546001600160a01b0319166001600160a01b0391909116908117909255509392505050565b600c546001600160a01b0316331480611d3957506000546001600160a01b031633145b611d4257600080fd5b6001600160a01b031980841660009081526007602090815260408083209386168352929052206004015460ff16158015611dad57506001600160a01b03198381166000908152600760209081526040808320938616835292905220546001600160a01b038281169116145b611dc95760405162461bcd60e51b81526004016109bf90615255565b506001600160a01b03199182166000908152600a602090815260408083209390941682529190915220429055565b6001600160a01b03198216600090815260066020526040808220805491516330e8280360e01b815290916001600160a01b0316906330e8280390611e419087908790600401615109565b60206040518083038186803b158015611e5957600080fd5b505afa158015611e6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9c9190614f04565b600c546001600160a01b0316331480611eb457506000546001600160a01b031633145b611ebd57600080fd5b6001600160a01b03198516600090815260066020526040902081611f085760405162461bcd60e51b81526020600482015260026024820152610c4d60f21b60448201526064016109bf565b6001810154600160a01b900460ff16158015611f2e57506004810154610100900460ff16155b611f5f5760405162461bcd60e51b8152602060048201526002602482015261189b60f11b60448201526064016109bf565b600160048083015460ff1690811115611f7a57611f7a615887565b1480611f9e5750600260048083015460ff1690811115611f9c57611f9c615887565b145b611fba5760405162461bcd60e51b81526004016109bf90615271565b8054604051632899cd3760e21b81526000916001600160a01b03169063a26734dc90611fea908a906004016150f4565b60206040518083038186803b15801561200257600080fd5b505afa158015612016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203a9190614f04565b82546040516330e8280360e01b81529192506000916001600160a01b03909116906330e8280390612071908b908b90600401615109565b60206040518083038186803b15801561208957600080fd5b505afa15801561209d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120c19190614f04565b905060006120cf828461580a565b90508681146120f05760405162461bcd60e51b81526004016109bf9061528d565b6000620f4240612100878a6157eb565b61210a91906157c9565b90508681146121405760405162461bcd60e51b8152602060048201526002602482015261353360f01b60448201526064016109bf565b82156121ca5784546040516398ddcec760e01b81526001600160a01b03198c1660048201526001600160a01b038b81166024830152604482018690526080606483015260006084830152909116906398ddcec79060a401600060405180830381600087803b1580156121b157600080fd5b505af11580156121c5573d6000803e3d6000fd5b505050505b6004858101805460ff1916600183021790555050505060068201939093556005015550505050565b600c546001600160a01b031633148061221557506000546001600160a01b031633145b61221e57600080fd5b6001600160a01b0319808516600090815260046020818152604080842081516101c081018352815460a081811b9098168252600160601b90046001600160a01b0316818501528251808401845260018301546001600160401b038082168352600160401b91829004811683880152838601929092528451808601909552600284015480831686520416938301939093526060830191909152600381015460808301529182015493810193909352600581015460c0840152600681015460e0840152600781015460ff1615156101008401526008810180549293926101208401919061230890615821565b80601f016020809104026020016040519081016040528092919081815260200182805461233490615821565b80156123815780601f1061235657610100808354040283529160200191612381565b820191906000526020600020905b81548152906001019060200180831161236457829003601f168201915b5050505050815260200160098201805461239a90615821565b80601f01602080910402602001604051908101604052809291908181526020018280546123c690615821565b80156124135780601f106123e857610100808354040283529160200191612413565b820191906000526020600020905b8154815290600101906020018083116123f657829003601f168201915b50505050508152602001600a8201548152602001600b8201548152602001600c820154815250509050836001600160a01b031681602001516001600160a01b0316146124715760405162461bcd60e51b81526004016109bf90615255565b600354600160401b90046001600160401b0316156124e6576003546001600160401b03600160401b82048116916124a99116856157eb565b6124b391906157c9565b82146124e65760405162461bcd60e51b81526020600482015260026024820152610c8d60f21b60448201526064016109bf565b6001600160a01b031985166000908152600660205260409020600160048083015460ff169081111561251a5761251a615887565b148061253e5750600260048083015460ff169081111561253c5761253c615887565b145b61255a5760405162461bcd60e51b81526004016109bf90615271565b60048101805460ff1916600390811790915581015460808301516000916125809161580a565b9050816002015485146125a55760405162461bcd60e51b81526004016109bf9061528d565b801561263b57815460018301546040516323037ba760e21b81526001600160a01b0392831692638c0dee9c926125e7928c92909116908b90879060040161512c565b602060405180830381600087803b15801561260157600080fd5b505af1158015612615573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126399190614f04565b505b50505050505050565b600c546001600160a01b031633148061266757506000546001600160a01b031633145b61267057600080fd5b6001600160a01b0319808316600090815260046020818152604080842081516101c081018352815460a081811b9098168252600160601b90046001600160a01b0316818501528251808401845260018301546001600160401b038082168352600160401b91829004811683880152838601929092528451808601909552600284015480831686520416938301939093526060830191909152600381015460808301529182015493810193909352600581015460c0840152600681015460e0840152600781015460ff1615156101008401526008810180549293926101208401919061275a90615821565b80601f016020809104026020016040519081016040528092919081815260200182805461278690615821565b80156127d35780601f106127a8576101008083540402835291602001916127d3565b820191906000526020600020905b8154815290600101906020018083116127b657829003601f168201915b505050505081526020016009820180546127ec90615821565b80601f016020809104026020016040519081016040528092919081815260200182805461281890615821565b80156128655780601f1061283a57610100808354040283529160200191612865565b820191906000526020600020905b81548152906001019060200180831161284857829003601f168201915b50505050508152602001600a8201548152602001600b8201548152602001600c820154815250509050816001600160a01b031681602001516001600160a01b0316146128c35760405162461bcd60e51b81526004016109bf90615255565b610f248360016002614862565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101919091526001600160a01b0319821660009081526006602090815260409182902082516101408101845281546001600160a01b03908116825260018301549081169382019390935260ff600160a01b90930483161515938101939093526002810154606084015260038101546080840152600480820154919260a085019216908111156129ac576129ac615887565b60048111156129bd576129bd615887565b81526004820154610100900460ff161515602082015260058201546040820152600682015460608201526007909101546001600160a01b031660809091015292915050565b600d54600160a01b900460ff1615612a415760405162461bcd60e51b8152602060048201526002602482015261031360f41b60448201526064016109bf565b600d805460008054336001600160a01b031991821617909155600c80549091166001600160a01b039586161790556001600160a81b0319169190921617600160a01b17905560018054600160401b67ffffffffffffffff60401b19918216811790925560028054821683179055600380549091169091179055565b600c5460009081906001600160a01b0316331480612ae457506000546001600160a01b031633145b612aed57600080fd5b6001600160a01b03198616600090815260066020526040902060048082015460ff1681811115612b1f57612b1f615887565b14612b3c5760405162461bcd60e51b81526004016109bf90615271565b80546040516330e8280360e01b81526000916001600160a01b0316906330e8280390612b6e908b908b90600401615109565b60206040518083038186803b158015612b8657600080fd5b505afa158015612b9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bbe9190614f04565b905085811015612bf55760405162461bcd60e51b81526020600482015260026024820152611a9960f11b60448201526064016109bf565b815460018301546040516323037ba760e21b8152600096508695506001600160a01b0392831692638c0dee9c92612c36928d928d9216908c9060040161512c565b602060405180830381600087803b158015612c5057600080fd5b505af1158015612c64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c889190614f04565b506001600160a01b0319808916600090815260046020818152604080842081516101c081018352815460a081811b9098168252600160601b90046001600160a01b0316818501528251808401845260018301546001600160401b038082168352600160401b91829004811683880152838601929092528451808601909552600284015480831686520416938301939093526060830191909152600381015460808301529182015493810193909352600581015460c0840152600681015460e0840152600781015460ff16151561010084015260088101805492939261012084019190612d7390615821565b80601f0160208091040260200160405190810160405280929190818152602001828054612d9f90615821565b8015612dec5780601f10612dc157610100808354040283529160200191612dec565b820191906000526020600020905b815481529060010190602001808311612dcf57829003601f168201915b50505050508152602001600982018054612e0590615821565b80601f0160208091040260200160405190810160405280929190818152602001828054612e3190615821565b8015612e7e5780601f10612e5357610100808354040283529160200191612e7e565b820191906000526020600020905b815481529060010190602001808311612e6157829003601f168201915b5050509183525050600a8201546020820152600b8201546040820152600c909101546060909101526002549091508790600160401b90046001600160401b031615612f21576002546000906001600160401b03600160401b8204811691612ee691168b6157eb565b612ef091906157c9565b600586015490915015612f1e57620f4240856005015482612f1191906157eb565b612f1b91906157c9565b90505b94505b6040820151602001516001600160401b031615612f99576040820151602081015190516000916001600160401b0390811691612f5e91168b6157eb565b612f6891906157c9565b600586015490915015612f9657620f4240856005015482612f8991906157eb565b612f9391906157c9565b90505b95505b600584015415612fc457620f4240846005015482612fb791906157eb565b612fc191906157c9565b90505b868114612fe35760405162461bcd60e51b81526004016109bf9061528d565b5050505094509492505050565b600c546001600160a01b031633148061301357506000546001600160a01b031633145b61301c57600080fd5b61302583614479565b6130565760405162461bcd60e51b8152602060048201526002602482015261035360f41b60448201526064016109bf565b600154600160401b90046001600160401b0316156130cb576001546001600160401b03600160401b820481169161308e9116866157eb565b61309891906157c9565b82146130cb5760405162461bcd60e51b81526020600482015260026024820152610c8d60f21b60448201526064016109bf565b6001600160a01b03198716600090815260066020526040808220805491516330e8280360e01b81529092916001600160a01b0316906330e8280390613116908c908b90600401615109565b60206040518083038186803b15801561312e57600080fd5b505afa158015613142573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131669190614f04565b90508085111561319d5760405162461bcd60e51b81526020600482015260026024820152611a9960f11b60448201526064016109bf565b8242106131bc5760405162461bcd60e51b81526004016109bf906152a9565b50506001600160a01b031980881660009081526007602081815260408084209a8516845299905297902060018101805460a09a909a1c600160a01b026001600160a01b039a8b161790558054969098169516949094178655600286019290925560038501554260058501556006840191909155910155565b600c546000906001600160a01b031633148061325a57506000546001600160a01b031633145b61326357600080fd5b6001600160a01b0319831660009081526006602052604090206001810154600160a01b900460ff1680156132a157506004810154610100900460ff16155b6132d25760405162461bcd60e51b8152602060048201526002602482015261189b60f11b60448201526064016109bf565b600160048083015460ff16908111156132ed576132ed615887565b14806133115750600260048083015460ff169081111561330f5761330f615887565b145b806133345750600360048083015460ff169081111561333257613332615887565b145b6133505760405162461bcd60e51b81526004016109bf90615271565b6004808201805461ff0019166101009081179091556001600160a01b031980871660009081526020848152604080832081516101c081018352815460a081811b9097168252600160601b90046001600160a01b0316818501528251808401845260018301546001600160401b038082168352600160401b91829004811683880152838601929092528451808601909552600284015480831686520416938301939093526060830191909152600381015460808301529485015492810192909252600584015460c0830152600684015460e0830152600784015460ff16151592820192909252600883018054929391926101208401919061344f90615821565b80601f016020809104026020016040519081016040528092919081815260200182805461347b90615821565b80156134c85780601f1061349d576101008083540402835291602001916134c8565b820191906000526020600020905b8154815290600101906020018083116134ab57829003601f168201915b505050505081526020016009820180546134e190615821565b80601f016020809104026020016040519081016040528092919081815260200182805461350d90615821565b801561355a5780601f1061352f5761010080835404028352916020019161355a565b820191906000526020600020905b81548152906001019060200180831161353d57829003601f168201915b5050509183525050600a8201546020820152600b8201546040820152600c90910154606090910152610180015195945050505050565b600c546001600160a01b03163314806135b357506000546001600160a01b031633145b6135bc57600080fd5b6001600160a01b03199091166000908152600b602090815260408083206001600160a01b0394909416835292905220429055565b600c546000908190819081906001600160a01b031633148061361c57506000546001600160a01b031633145b61362557600080fd5b6001600160a01b03198716600090815260046020526040902080546001600160a01b03888116600160601b90920416146136715760405162461bcd60e51b81526004016109bf90615255565b6001600160a01b031988166000908152600660205260409020600360048083015460ff16908111156136a5576136a5615887565b146136c25760405162461bcd60e51b81526004016109bf90615271565b6004818101805460ff191660018302179055506007810180546001600160a01b038a81166001600160a01b03198316179092558254604051632899cd3760e21b81529183169260009291169063a26734dc90613722908e906004016150f4565b60206040518083038186803b15801561373a57600080fd5b505afa15801561374e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137729190614f04565b90508089146137a85760405162461bcd60e51b8152602060048201526002602482015261343960f01b60448201526064016109bf565b82546040516330e8280360e01b81526000916001600160a01b0316906330e82803906137da908f908f90600401615109565b60206040518083038186803b1580156137f257600080fd5b505afa158015613806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061382a9190614f04565b905080156138e6578360000160009054906101000a90046001600160a01b03166001600160a01b0316638c0dee9c8d8d8760010160009054906101000a90046001600160a01b0316856040518563ffffffff1660e01b8152600401613892949392919061512c565b602060405180830381600087803b1580156138ac57600080fd5b505af11580156138c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138e49190614f04565b505b6007850154600b90950154909c60ff9095169b5099509097509195505050505050565b606081516001600160401b03811115613924576139246158b3565b60405190808252806020026020018201604052801561396957816020015b60408051808201909152600080825260208201528152602001906001900390816139425790505b50905060005b8251811015613d7957600083828151811061398c5761398c61589d565b6020908102919091018101516001600160a01b031980821660009081526004808552604080832081516101c081018352815460a081811b9097168252600160601b90046001600160a01b0316818901528251808401845260018301546001600160401b038082168352600160401b918290048116838c0152838601929092528451808601909552600284015480831686520416978301979097526060870191909152600381015460808701529081015492850192909252600582015460c0850152600682015460e0850152600782015460ff16151561010085015260088201805493955090939261012084019190613a8390615821565b80601f0160208091040260200160405190810160405280929190818152602001828054613aaf90615821565b8015613afc5780601f10613ad157610100808354040283529160200191613afc565b820191906000526020600020905b815481529060010190602001808311613adf57829003601f168201915b50505050508152602001600982018054613b1590615821565b80601f0160208091040260200160405190810160405280929190818152602001828054613b4190615821565b8015613b8e5780601f10613b6357610100808354040283529160200191613b8e565b820191906000526020600020905b815481529060010190602001808311613b7157829003601f168201915b5050509183525050600a820154602080830191909152600b830154604080840191909152600c909301546060928301526001600160a01b0319861660009081526006825283812084516101408101865281546001600160a01b03908116825260018301549081169482019490945260ff600160a01b909404841615159581019590955260028101549385019390935260038301546080850152600480840154959650909460a08501921690811115613c4857613c48615887565b6004811115613c5957613c59615887565b8152600482810154610100900460ff1615156020808401919091526005840154604080850191909152600685015460608501526007909401546001600160a01b0390811660809094019390935284519087015193516330e8280360e01b81529495506000949216926330e8280392613cd49289929101615109565b60206040518083038186803b158015613cec57600080fd5b505afa158015613d00573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d249190614f04565b90506040518060400160405280856001600160a01b031916815260200182815250868681518110613d5757613d5761589d565b6020026020010181905250505050508080613d7190615856565b91505061396f565b50919050565b613d87614a7a565b6001600160a01b031980831660009081526004602081815260409283902083516101c081018552815460a081811b9097168252600160601b90046001600160a01b0316818401528451808601865260018301546001600160401b038082168352600160401b91829004811683870152838801929092528651808801909752600284015480831688520416928501929092526060820193909352600383015460808201529082015492810192909252600581015460c0830152600681015460e0830152600781015460ff16151561010083015260088101805461012084019190613e6f90615821565b80601f0160208091040260200160405190810160405280929190818152602001828054613e9b90615821565b8015613ee85780601f10613ebd57610100808354040283529160200191613ee8565b820191906000526020600020905b815481529060010190602001808311613ecb57829003601f168201915b50505050508152602001600982018054613f0190615821565b80601f0160208091040260200160405190810160405280929190818152602001828054613f2d90615821565b8015613f7a5780601f10613f4f57610100808354040283529160200191613f7a565b820191906000526020600020905b815481529060010190602001808311613f5d57829003601f168201915b50505050508152602001600a8201548152602001600b8201548152602001600c820154815250509050919050565b6001600160a01b0319811660009081526006602052604080822080549151632899cd3760e21b815290916001600160a01b03169063a26734dc90613ff09086906004016150f4565b60206040518083038186803b15801561400857600080fd5b505afa15801561401c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140409190614f04565b9392505050565b6000546001600160a01b0316331461405e57600080fd5b6001600160a01b0381161561408957600080546001600160a01b0319166001600160a01b0383161790555b50565b6001600160a01b0319808216600090815260046020818152604080842081516101c081018352815460a081811b9098168252600160601b90046001600160a01b0316818501528251808401845260018301546001600160401b038082168352600160401b91829004811683880152838601929092528451808601909552600284015480831686520416938301939093526060830191909152600381015460808301529182015493810193909352600581015460c0840152600681015460e0840152600781015460ff161515610100840152600881018054929384938493849384938493849384938493926101208401919061418690615821565b80601f01602080910402602001604051908101604052809291908181526020018280546141b290615821565b80156141ff5780601f106141d4576101008083540402835291602001916141ff565b820191906000526020600020905b8154815290600101906020018083116141e257829003601f168201915b5050505050815260200160098201805461421890615821565b80601f016020809104026020016040519081016040528092919081815260200182805461424490615821565b80156142915780601f1061426657610100808354040283529160200191614291565b820191906000526020600020905b81548152906001019060200180831161427457829003601f168201915b5050509183525050600a820154602080830191909152600b830154604080840191909152600c909301546060909201919091526001600160a01b03198d1660009081526006909152819020608083015181549251632899cd3760e21b8152909c50929350916001600160a01b039091169063a26734dc90614316908e906004016150f4565b60206040518083038186803b15801561432e57600080fd5b505afa158015614342573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143669190614f04565b60038201546001600160a01b03198d16600090815260086020908152604080832087830180516001600160a01b0390811686529190935292819020548654925191516330e8280360e01b8152959e50939b5092965016916330e82803916143d2918f9190600401615109565b60206040518083038186803b1580156143ea57600080fd5b505afa1580156143fe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144229190614f04565b6002820154985095506004808083015460ff169081111561444557614445615887565b106144535760009350614460565b61445d868a61580a565b93505b61446a898b61580a565b94505050919395975091939597565b600081614489620f4240826157c9565b61449690620f42406157eb565b1492915050565b600080600080600060046000886001600160a01b0319166001600160a01b03191681526020019081526020016000209050600060066000896001600160a01b0319166001600160a01b0319168152602001908152602001600020905060008160070160009054906101000a90046001600160a01b03169050878260070160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060008260000160009054906101000a90046001600160a01b03166001600160a01b03166330e828038b86600001600c9054906101000a90046001600160a01b03166040518363ffffffff1660e01b815260040161459c929190615109565b60206040518083038186803b1580156145b457600080fd5b505afa1580156145c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906145ec9190614f04565b905080156146bf578260000160009054906101000a90046001600160a01b03166001600160a01b0316638c0dee9c8b86600001600c9054906101000a90046001600160a01b03168660010160009054906101000a90046001600160a01b0316856040518563ffffffff1660e01b815260040161466b949392919061512c565b602060405180830381600087803b15801561468557600080fd5b505af1158015614699573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146bd9190614f04565b505b8354600b90940154909a600160601b9094046001600160a01b0316995097509550909350505050565b6040805160018082528183019092526000918291906020808301908036833701905050905030816000815181106147215761472161589d565b6001600160a01b03929092166020928302919091019091015260408051600180825281830190925260009181602001602082028036833701905050905061476b6020860186614d17565b6001600160a01b031916816000815181106147885761478861589d565b6020908102919091010152600d546001600160a01b031663d73a06176147b2610160880188615739565b6147c06101808a018a615739565b620f424088888c8e60c0013560008054906101000a90046001600160a01b0316306040518c63ffffffff1660e01b81526004016148079b9a9998979695949392919061517b565b602060405180830381600087803b15801561482157600080fd5b505af1158015614835573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148599190614b7d565b95945050505050565b6001600160a01b03198316600090815260066020526040902082600481111561488d5761488d615887565b60048083015460ff16908111156148a6576148a6615887565b146148c35760405162461bcd60e51b81526004016109bf90615271565b818160040160006101000a81548160ff021916908360048111156148e9576148e9615887565b021790555050505050565b604051806102a0016040528060608152602001606081526020016000801916815260200160006001600160a01b0316815260200160006001600160a01b03168152602001600081526020016000815260200160006001600160a01b03168152602001614970604080518082019091526000808252602082015290565b815260200161498f604080518082019091526000808252602082015290565b81526020016000815260200160008152602001600081526020016000815260200160008152602001600015158152602001600015158152602001600081526020016000815260200160008152602001600060048111156149f1576149f1615887565b905290565b828054614a0290615821565b90600052602060002090601f016020900481019282614a245760008555614a6a565b82601f10614a3d5782800160ff19823516178555614a6a565b82800160010185558215614a6a579182015b82811115614a6a578235825591602001919060010190614a4f565b50614a76929150614b1c565b5090565b604080516101c08101825260008082526020820152908101614aac604080518082019091526000808252602082015290565b8152602001614acb604080518082019091526000808252602082015290565b81526020016000815260200160008152602001600081526020016000815260200160001515815260200160608152602001606081526020016000801916815260200160008152602001600081525090565b5b80821115614a765760008155600101614b1d565b80356001600160a01b031981168114614b4957600080fd5b919050565b600060408284031215613d7957600080fd5b600060208284031215614b7257600080fd5b8135614040816158c9565b600060208284031215614b8f57600080fd5b8151614040816158c9565b60008060408385031215614bad57600080fd5b8235614bb8816158c9565b91506020830135614bc8816158c9565b809150509250929050565b600080600080600060a08688031215614beb57600080fd5b8535614bf6816158c9565b9450614c0460208701614b31565b9350614c1260408701614b31565b94979396509394606081013594506080013592915050565b60006020808385031215614c3d57600080fd5b82356001600160401b0380821115614c5457600080fd5b818501915085601f830112614c6857600080fd5b813581811115614c7a57614c7a6158b3565b8060051b604051601f19603f83011681018181108582111715614c9f57614c9f6158b3565b604052828152858101935084860182860187018a1015614cbe57600080fd5b600095505b83861015614ce857614cd481614b31565b855260019590950194938601938601614cc3565b5098975050505050505050565b600060208284031215614d0757600080fd5b8135801515811461404057600080fd5b600060208284031215614d2957600080fd5b61404082614b31565b60008060408385031215614d4557600080fd5b614bb883614b31565b600080600060608486031215614d6357600080fd5b614d6c84614b31565b92506020840135614d7c816158c9565b929592945050506040919091013590565b60008060008060808587031215614da357600080fd5b614dac85614b31565b93506020850135614dbc816158c9565b93969395505050506040820135916060013590565b600080600080600060a08688031215614de957600080fd5b614df286614b31565b94506020860135614e02816158c9565b94979496505050506040830135926060810135926080909101359150565b60008060408385031215614e3357600080fd5b614e3c83614b31565b9150614e4a60208401614b31565b90509250929050565b600080600060608486031215614e6857600080fd5b614e7184614b31565b9250614e7f60208501614b31565b91506040840135614e8f816158c9565b809150509250925092565b600080600080600080600060e0888a031215614eb557600080fd5b614ebe88614b31565b9650614ecc60208901614b31565b95506040880135614edc816158c9565b969995985095966060810135965060808101359560a0820135955060c0909101359350915050565b600060208284031215614f1657600080fd5b5051919050565b60008060408385031215614f3057600080fd5b82356001600160401b03811115614f4657600080fd5b83016102008186031215614bb857600080fd5b600080600060c08486031215614f6e57600080fd5b614f788585614b4e565b9250614f878560408601614b4e565b9150614f968560808601614b4e565b90509250925092565b600060208284031215614fb157600080fd5b81356001600160401b038116811461404057600080fd5b600081518084526020808501945080840160005b83811015614ff857815187529582019590820190600101614fdc565b509495945050505050565b6005811061502157634e487b7160e01b600052602160045260246000fd5b9052565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000815180845260005b8181101561507457602081850181015186830182015201615058565b81811115615086576000602083870101525b50601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190868401855b828110156150e757815180516001600160a01b03191685528601518685015292840192908501906001016150b8565b5091979650505050505050565b6001600160a01b031991909116815260200190565b6001600160a01b03199290921682526001600160a01b0316602082015260400190565b6001600160a01b03199490941684526001600160a01b03928316602085015291166040830152606082015260c060808201819052600090820181905260e060a083018190528201526101000190565b6101208152600061519161012083018d8f615025565b82810360208401526151a4818c8e615025565b604084018b9052838103606085015289518082526020808c0193509091019060005b818110156151ed5783516001600160a01b03168352602093840193909201916001016151c6565b50508381036080850152615201818a614fc8565b9250505061521a60a08301876001600160a01b03169052565b8460c083015261523560e08301856001600160a01b03169052565b6001600160a01b0383166101008301529c9b505050505050505050505050565b602080825260029082015261032360f41b604082015260600190565b602080825260029082015261062760f31b604082015260600190565b602080825260029082015261191b60f11b604082015260600190565b6020808252600290820152611a1b60f11b604082015260600190565b81516001600160a01b03168152610140810160208301516152f160208401826001600160a01b03169052565b506040830151615305604084018215159052565b50606083015160608301526080830151608083015260a083015161532c60a0840182615003565b5060c083015161534060c084018215159052565b5060e083810151908301526101008084015190830152610120928301516001600160a01b0316929091019190915290565b6020815261538c6020820183516001600160a01b0319169052565b600060208301516153a860408401826001600160a01b03169052565b50604083015180516001600160401b039081166060850152602082015116608084015250606083015180516001600160401b0390811660a085015260208201511660c084015250608083015160e083015260a0830151610100818185015260c08501519150610120828186015260e086015192506101408381870152828701519350610160925061543c8387018515159052565b8187015193506102009150610180828188015261545d61022088018661504e565b94508188015191506101a0601f19888703018189015261547d868461504e565b948901516101c0890152908801516101e088015290960151940193909352509092915050565b60208152600082516102e08060208501526154c261030085018361504e565b91506020850151601f198584030160408601526154df838261504e565b92505060408501516060850152606085015161550660808601826001600160a01b03169052565b5060808501516001600160a01b03811660a08601525060a085015160c085015260c085015160e085015260e085015161010061554c818701836001600160a01b03169052565b86015190506101206155768682018380516001600160401b03908116835260209182015116910152565b86015190506101606155a08682018380516001600160401b03908116835260209182015116910152565b6101408701516101a087810191909152908701516101c0808801919091526101808801516101e080890191909152918801516102008089019190915290880151610220808901919091529188015192506102406156008189018515159052565b908801519250610260906156178883018515159052565b9188015161028088810191909152918801516102a08801528701516102c0870152860151905061564982860182615003565b5090949350505050565b60c08101615677828680516001600160401b03908116835260209182015116910152565b83516001600160401b039081166040840152602080860151821660608501528451821660808501528401511660a0830152610b9c565b81516001600160a01b039081168252602080840151909116908201526040808301516101208301916156ea908401826001600160a01b0319169052565b50606083015160608301526080830151608083015260a083015161571260a084018215159052565b5060c083015160c083015260e083015160e083015261010080840151818401525092915050565b6000808335601e1984360301811261575057600080fd5b8301803591506001600160401b0382111561576a57600080fd5b60200191503681900382131561577f57600080fd5b9250929050565b6000821982111561579957615799615871565b500190565b60006001600160401b038083168185168083038211156157c0576157c0615871565b01949350505050565b6000826157e657634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561580557615805615871565b500290565b60008282101561581c5761581c615871565b500390565b600181811c9082168061583557607f821691505b60208210811415613d7957634e487b7160e01b600052602260045260246000fd5b600060001982141561586a5761586a615871565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461408957600080fdfea26469706673582212202017e20651fab807590f642ade9dfbd3be4f84a5f05e174fae2801d4f0ced70164736f6c63430008070033