0 txs
920 calls
constructor
No constructor.
functions
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
fundedNFTAddress
viewfunction fundedNFTAddress() view returns (address)
getUserDailyLimit
viewfunction getUserDailyLimit(address user) view returns (uint256 amountTransferred, uint256 lastReset)
hiveContractAddress
viewfunction hiveContractAddress() view returns (address)
isBlacklisted
viewfunction isBlacklisted(address account) view returns (bool)
isCustomer
viewfunction isCustomer(address) view returns (bool)
managementFeePcnt
viewfunction managementFeePcnt() view returns (uint256)
managementWalletAddress
viewfunction managementWalletAddress() view returns (address)
nonces
viewfunction nonces(address) view returns (uint256)
operatorAddress
viewfunction operatorAddress() view returns (address)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
profitSplitByChallenge
viewfunction profitSplitByChallenge(string) view returns (int8)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
uniswapRouterV2Address
viewfunction uniswapRouterV2Address() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
usdcContractAddress
viewfunction usdcContractAddress() view returns (address)
addCustomers
nonpayablefunction addCustomers(address[] customers)
addToBlacklist
nonpayablefunction addToBlacklist(address account)
cardPayment
nonpayablefunction cardPayment(address customer, uint128 amountUSDC, uint128 amountFHC, uint128 fhcToReferal, uint128 fhcToCustomer, uint256 usdcToReferal, address referalAddress, string challengeOption, uint8 slot, bool isAccountFee)
challengeFee
payablefunction challengeFee(bytes signature, uint64 amountUSDC, uint64 amountFHC, uint64 fhcToReferal, uint64 fhcToCustomer, uint256 usdcToReferal, address referalAddress, string challengeOption, uint8 slot, bool isAccountFee) payable
executePayout
nonpayablefunction executePayout(bytes signature, uint256 amount, string challenge, bool isRefund, int8 profitSplit, bool leaveManagementFee)
initialize
nonpayablefunction initialize(address _operator, uint256 _maxWithdraw, uint256 _managementFeePcnt, address _managementWalletAddress, address _fundedNFTAddress, address _hiveContractAddress, string name, string version)
removeCustomer
nonpayablefunction removeCustomer(address customer)
removeFromBlacklist
nonpayablefunction removeFromBlacklist(address account)
renounceOwnership
nonpayablefunction renounceOwnership()
replaceCustomer
nonpayablefunction replaceCustomer(address oldCustomer, address newCustomer)
setChallenges
nonpayablefunction setChallenges(string[] challengeNames, int8[] challengeProfitSplits)
setFundedNFTAddress
nonpayablefunction setFundedNFTAddress(address addr)
setHIVEAddress
nonpayablefunction setHIVEAddress(address addr)
setManagementFeePcnt
nonpayablefunction setManagementFeePcnt(uint256 newManagementFeePcnt)
setManagementWalletAddress
nonpayablefunction setManagementWalletAddress(address addr)
setUniswapAddress
nonpayablefunction setUniswapAddress(address addr)
setupChallenges
nonpayablefunction setupChallenges(string[] challengeNames, int8[] challengeProfitSplits)
setUSDCAddress
nonpayablefunction setUSDCAddress(address addr)
transferOperator
nonpayablefunction transferOperator(address newOperator)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
BlacklistedWithdrawAttempt
event BlacklistedWithdrawAttempt(address indexed account)
Deposit
event Deposit(address indexed sender, uint256 amountUSDC, uint256 amountFHC, string challengeOption, uint8 slot, bool isAccountFee)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint64 version)
Log
event Log(address signer, bytes32 digest)
NoNFTWithdrawAttempt
event NoNFTWithdrawAttempt(address indexed account)
OperatorTransferred
event OperatorTransferred(address indexed oldOperator, address indexed newOperator)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
Payout
event Payout(address indexed to, string indexed challenge, uint256 value)
Refund
event Refund(address indexed to, string indexed challenge, uint256 value)
StartWithdraw
event StartWithdraw(address indexed to, string indexed challenge, uint256 value)
SwapETHForUSDC
event SwapETHForUSDC(address indexed sender, uint256 ethAmount, uint256 usdcAmount)
Unpaused
event Unpaused(address account)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
EnforcedPause
error EnforcedPause()
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ExpectedPause
error ExpectedPause()
FailedCall
error FailedCall()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a060405230608052348015601357600080fd5b50608051613a0d61003d60003960008181611fd201528181611ffb01526122d20152613a0d6000f3fe6080604052600436106102295760003560e01c80637001b655116101235780638da5cb5b116100ab578063b58c2d811161006f578063b58c2d811461073e578063cc72984b1461075e578063d940ef4d146107ac578063f2fde38b146107cc578063fe575a87146107ec57610266565b80638da5cb5b1461068b5780638eb06ccf146106a05780639bb6a414146106c0578063aaf5bfc3146106e0578063ad3cb1cc1461070057610266565b80637884e7c6116100f25780637884e7c6146105d6578063793106a1146105f65780637ecebe00146106165780638081fa4c1461064357806384b0196e1461066357610266565b80637001b6551461052e578063715018a61461054e578063764abc961461056357806377865f911461058357610266565b8063368233c5116101b1578063519f9fb511610175578063519f9fb51461048257806352d1902d146104a2578063537df3b6146104b75780635c975abb146104d75780636b6650981461050e57610266565b8063368233c5146103f85780633e8296951461041c57806344337ea11461043c5780634a3a04cb1461045c5780634f1ef2861461046f57610266565b80632285b51c116101f85780632285b51c1461033857806328fd5e831461035857806329605e77146103985780632e015584146103b85780633219a2b1146103d857610266565b806304d713241461029957806305bea24a146102bb578063127effb2146102f85780631f7d16f71461031857610266565b366102665760405162461bcd60e51b815260206004820152600860248201526712539597d0d0531360c21b60448201526064015b60405180910390fd5b60405162461bcd60e51b815260206004820152600860248201526712539597d0d0531360c21b604482015260640161025d565b3480156102a557600080fd5b506102b96102b4366004612d4f565b610825565b005b3480156102c757600080fd5b506007546102db906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561030457600080fd5b506008546102db906001600160a01b031681565b34801561032457600080fd5b506006546102db906001600160a01b031681565b34801561034457600080fd5b506102b9610353366004612dbe565b610890565b34801561036457600080fd5b50610388610373366004612e24565b60006020819052908152604090205460ff1681565b60405190151581526020016102ef565b3480156103a457600080fd5b506102b96103b3366004612e24565b610950565b3480156103c457600080fd5b506004546102db906001600160a01b031681565b3480156103e457600080fd5b506102b96103f3366004612f69565b6109aa565b34801561040457600080fd5b5061040e60035481565b6040519081526020016102ef565b34801561042857600080fd5b506102b9610437366004612e24565b610ef0565b34801561044857600080fd5b506102b9610457366004612e24565b610f24565b6102b961046a36600461303f565b610fa3565b6102b961047d36600461312d565b6110aa565b34801561048e57600080fd5b506102b961049d36600461317c565b6110c9565b3480156104ae57600080fd5b5061040e611467565b3480156104c357600080fd5b506102b96104d2366004612e24565b611484565b3480156104e357600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610388565b34801561051a57600080fd5b506102b9610529366004612e24565b611503565b34801561053a57600080fd5b506102b9610549366004613241565b61152d565b34801561055a57600080fd5b506102b9611575565b34801561056f57600080fd5b506102b961057e36600461325a565b611589565b34801561058f57600080fd5b506105c161059e366004612e24565b6001600160a01b03166000908152600f6020526040902080546001909101549091565b604080519283526020830191909152016102ef565b3480156105e257600080fd5b506102b96105f1366004612e24565b61161a565b34801561060257600080fd5b506009546102db906001600160a01b031681565b34801561062257600080fd5b5061040e610631366004612e24565b60016020526000908152604090205481565b34801561064f57600080fd5b506102b961065e3660046132aa565b611658565b34801561066f57600080fd5b50610678611730565b6040516102ef97969594939291906133d6565b34801561069757600080fd5b506102db6117dc565b3480156106ac57600080fd5b506102b96106bb366004612e24565b61180a565b3480156106cc57600080fd5b506102b96106db366004612e24565b611854565b3480156106ec57600080fd5b506102b96106fb366004612e24565b611888565b34801561070c57600080fd5b50610731604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516102ef919061346e565b34801561074a57600080fd5b506102b9610759366004612d4f565b6118c3565b34801561076a57600080fd5b50610799610779366004613481565b805160208183018101805160028252928201919093012091525460000b81565b60405160009190910b81526020016102ef565b3480156107b857600080fd5b506005546102db906001600160a01b031681565b3480156107d857600080fd5b506102b96107e7366004612e24565b611918565b3480156107f857600080fd5b50610388610807366004612e24565b6001600160a01b031660009081526010602052604090205460ff1690565b61082d611953565b60115460ff16156108715760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d2539255115160921b604482015260640161025d565b61087d84848484611985565b50506011805460ff191660011790555050565b610898611953565b60005b8181101561094b576000808484848181106108b8576108b86134bd565b90506020020160208101906108cd9190612e24565b6001600160a01b0316815260208101919091526040016000205460ff16610943576001600080858585818110610905576109056134bd565b905060200201602081019061091a9190612e24565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790555b60010161089b565b505050565b610958611953565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed90600090a35050565b6109b2611a1d565b84846040516109c29291906134d3565b604051908190038120600082529033907f1fa071a01976ef5eedc85e0c854f9bdcebd156205d13d111d4fe1d9889afd89e9060200160405180910390a3336000908152600160205260408120805491829190610a1d836134f9565b90915550503360009081526010602052604090205460ff1615610a9b5760405133907ff3bc16a143e1d099afbe262dd4d015a4b72dff8fbd88c5d077534ed6c2550ca490600090a260405162461bcd60e51b815260206004820152600b60248201526a10931050d2d31254d5115160aa1b604482015260640161025d565b83158015610aaf5750610aad33611a60565b155b15610b145760405133907f6a526bd81e34f41ae67b48524c615651b1a8026db4f056662bafcf20a58e2c4390600090a260405162461bcd60e51b815260206004820152600a602482015269121054d7d393d7d3919560b21b604482015260640161025d565b60006014543389848a8a604051602001610b2f9291906134d3565b60408051601f198184030181528282528051602091820120908301969096526001600160a01b03909416938101939093526060830191909152608082015260a081019190915285151560c0820152600085900b60e0820152831515610100820152610120016040516020818303038152906040528051906020012090506000610bb782611af3565b90506000610bc5828c611b26565b9050610bcf6117dc565b6001600160a01b0316816001600160a01b031614610c1f5760405162461bcd60e51b815260206004820152600d60248201526c494e565f5349474e415455524560981b604482015260640161025d565b6001600160a01b038116610c635760405162461bcd60e51b815260206004820152600b60248201526a494e565f4144445245535360a81b604482015260640161025d565b89600088610cc357600060028c8c604051610c7f9291906134d3565b90815260405190819003602001902054600090810b9150600019908a900b1315610ca65750875b610cb38d8260ff16611b50565b9250610cbf838e613512565b9150505b610ccc33611b6f565b600a54336000908152600f6020526040902054610cea908e90613525565b1115610d245760405162461bcd60e51b81526020600482015260096024820152684c494d49545f45584360b81b604482015260640161025d565b336000908152600f6020526040812080548e9290610d43908490613525565b9091555050600b5460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610d99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbd9190613538565b5086610e3e57600b5460065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015610e18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3c9190613538565b505b88610e94578a8a604051610e539291906134d3565b6040519081900381208d82529033907fbd1d2dace694cc42f2275ad9dc12bc7b6958463fa7bb09da66c83f4e15e7ad3d9060200160405180910390a3610ee1565b8a8a604051610ea49291906134d3565b6040519081900381208d82529033907fa7dd277dca2a71c2100c1ed4323f417f6ca244c15a1ed1c0cd5f5fe621da4e389060200160405180910390a35b50505050505050505050505050565b610ef8611953565b600980546001600160a01b039092166001600160a01b03199283168117909155600d8054909216179055565b610f2c611953565b6001600160a01b03811660009081526010602052604090205460ff1615610f7f5760405162461bcd60e51b815260206004820152600760248201526613d397d31254d560ca1b604482015260640161025d565b6001600160a01b03166000908152601060205260409020805460ff19166001179055565b610fab611a1d565b33600090815260016020526040812080549082610fc7836134f9565b919050559050610fd681611bdb565b6000610fec33838e8e8e8e8e8e8e8e8e8e611c20565b90506000611002610ffc83611af3565b8f611b26565b905061100c6117dc565b6001600160a01b0316816001600160a01b03161461105c5760405162461bcd60e51b815260206004820152600d60248201526c494e565f5349474e415455524560981b604482015260640161025d565b6001600160401b038d161561107b5761107b33348f8f8b8b8b8b611c9b565b61109a88338d6001600160401b03168d6001600160401b03168d611e2b565b5050505050505050505050505050565b6110b2611fc7565b6110bb8261206c565b6110c58282612074565b5050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801561110e5750825b90506000826001600160401b0316600114801561112a5750303b155b905081158015611138575080155b156111565760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561118057845460ff60401b1916600160401b1785555b61118a8787612131565b61119333612143565b61119b612154565b6111a361215c565b8b600a819055508a60038190555089600660006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088600760006101000a8154816001600160a01b0302191690836001600160a01b031602179055508c600860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555087600960006101000a8154816001600160a01b0302191690836001600160a01b031602179055507ff375bc808ea8dfcef4a556bb9777b9c197499f020164952f566d1dffda891e5d6013819055507f9010b81519289ea6feb6d0cdc2c6a969a1e9d726c275b9b3946730cf743b848e60148190555073a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600560009054906101000a90046001600160a01b0316600e60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600460009054906101000a90046001600160a01b0316600b60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600760009054906101000a90046001600160a01b0316600c60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600960009054906101000a90046001600160a01b0316600d60006101000a8154816001600160a01b0302191690836001600160a01b0316021790555061140961216c565b6011805460ff191690558315610ee157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050505050505050565b60006114716122c7565b506000805160206139b883398151915290565b61148c611953565b6001600160a01b03811660009081526010602052604090205460ff166114e25760405162461bcd60e51b815260206004820152600b60248201526a1393d517d3d397d31254d560aa1b604482015260640161025d565b6001600160a01b03166000908152601060205260409020805460ff19169055565b61150b611953565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6008546001600160a01b031633146115705760405162461bcd60e51b815260206004820152600660248201526504e4f545f4f560d41b604482015260640161025d565b600355565b61157d611953565b6115876000612310565b565b611591611953565b6001600160a01b03821660009081526020819052604090205460ff16156115d3576001600160a01b0382166000908152602081905260409020805460ff191690555b6001600160a01b03811660009081526020819052604090205460ff166110c5576001600160a01b0381166000908152602081905260409020805460ff191660011790555050565b611622611953565b600580546001600160a01b0383166001600160a01b03199182168117909255600e8054909116909117905561165561216c565b50565b611660611953565b6001600160801b038a161561171657600b546040516323b872dd60e01b81526001600160a01b038d811660048301523060248301526001600160801b038d166044830152909116906323b872dd906064016020604051808303816000875af11580156116d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116f49190613538565b506117168b8b6001600160801b03168b6001600160801b031687878787612381565b611723858c8a8a8a611e2b565b5050505050505050505050565b60006060808280808381600080516020613998833981519152805490915015801561175d57506001810154155b6117a15760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b604482015260640161025d565b6117a961259e565b6117b1612661565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b611812611953565b6001600160a01b03811660009081526020819052604090205460ff1615611655576001600160a01b03166000908152602081905260409020805460ff19169055565b61185c611953565b600780546001600160a01b039092166001600160a01b03199283168117909155600c8054909216179055565b611890611953565b600480546001600160a01b0383166001600160a01b03199182168117909255600b8054909116909117905561165561216c565b6008546001600160a01b031633146119065760405162461bcd60e51b815260206004820152600660248201526504e4f545f4f560d41b604482015260640161025d565b61191284848484611985565b50505050565b611920611953565b6001600160a01b03811661194a57604051631e4fbdf760e01b81526000600482015260240161025d565b61165581612310565b3361195c6117dc565b6001600160a01b0316146115875760405163118cdaa760e01b815233600482015260240161025d565b60005b83811015611a16578282828181106119a2576119a26134bd565b90506020020160208101906119b79190613555565b60028686848181106119cb576119cb6134bd565b90506020028101906119dd9190613570565b6040516119eb9291906134d3565b908152604051908190036020019020805460ff9290921660ff19909216919091179055600101611988565b5050505050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16156115875760405163d93c066560e01b815260040160405180910390fd5b6007546000906001600160a01b0316611a7b57506001919050565b600c546040516370a0823160e01b81526001600160a01b03848116600483015260009216906370a0823190602401602060405180830381865afa158015611ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aea91906135b6565b15159392505050565b6000611b20611b006126a0565b8360405161190160f01b8152600281019290925260228201526042902090565b92915050565b600080600080611b3686866126af565b925092509250611b4682826126fc565b5090949350505050565b60006064611b5e83856135cf565b611b6891906135e6565b9392505050565b6000611b7e62015180426135e6565b6001600160a01b0383166000908152600f602052604081206001015491925090611bac9062015180906135e6565b90508082111561094b5750506001600160a01b03166000908152600f6020526040812090815542600190910155565b61165581604051602401611bf191815260200190565b60408051601f198184030181529190526020810180516001600160e01b031663f82c50f160e01b1790526127b5565b60006013548d8d8d8d8d8d8d8d8d8d604051602001611c409291906134d3565b604051602081830303815290604052805190602001208c8c604051602001611c739c9b9a99989796959493929190613608565b6040516020818303038152906040528051906020012090509c9b505050505050505050505050565b600e546000906001600160a01b0316637ff36ab58989601230611cc04261012c613525565b6040518663ffffffff1660e01b8152600401611cdf949392919061368e565b60006040518083038185885af1158015611cfd573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611d269190810190613707565b9050886001600160a01b03167ff2f8ad9c3327e6a139d6951b1623b081828be1b9c2c04e019861168bd06428a48983600181518110611d6757611d676134bd565b6020026020010151604051611d86929190918252602082015260400190565b60405180910390a2866001600160401b031681600181518110611dab57611dab6134bd565b60200260200101511015611dee5760405162461bcd60e51b815260206004820152600a60248201526912539597d05353d5539560b21b604482015260640161025d565b611e208982600181518110611e0557611e056134bd565b6020026020010151886001600160401b031688888888612381565b505050505050505050565b6001600160a01b03851615611f37576001600160801b03831615611eb857600d546040516340c10f1960e01b81526001600160a01b0387811660048301526001600160801b0386166024830152909116906340c10f1990604401600060405180830381600087803b158015611e9f57600080fd5b505af1158015611eb3573d6000803e3d6000fd5b505050505b8015611f3757600b5460405163a9059cbb60e01b81526001600160a01b038781166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af1158015611f11573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f359190613538565b505b6001600160a01b03841615801590611f5857506000826001600160801b0316115b15611a1657600d546040516340c10f1960e01b81526001600160a01b0386811660048301526001600160801b0385166024830152909116906340c10f1990604401600060405180830381600087803b158015611fb357600080fd5b505af1158015611e20573d6000803e3d6000fd5b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061204e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166120426000805160206139b8833981519152546001600160a01b031690565b6001600160a01b031614155b156115875760405163703e46dd60e11b815260040160405180910390fd5b611655611953565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156120ce575060408051601f3d908101601f191682019092526120cb918101906135b6565b60015b6120f657604051634c9c8ce360e01b81526001600160a01b038316600482015260240161025d565b6000805160206139b8833981519152811461212757604051632a87526960e21b81526004810182905260240161025d565b61094b83836127be565b612139612814565b6110c5828261285d565b61214b612814565b611655816128be565b611587612814565b612164612814565b6115876128c6565b60408051600280825260608201835290916020830190803683375050815161219b926012925060200190612c8a565b50600e546001600160a01b0316801561227257803b801561227057600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612209573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061222d91906137b6565b6012600081548110612241576122416134bd565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b505b600454601280546001600160a01b03909216916001908110612296576122966134bd565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115875760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b801561240657600b5460065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810189905291169063a9059cbb906044016020604051808303816000875af11580156123dc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124009190613538565b50612499565b600061241487600354611b50565b9050801561249757600b5460065460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015612471573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124959190613538565b505b505b841561250657600d5460405163079cc67960e41b81526001600160a01b03898116600483015260248201889052909116906379cc679090604401600060405180830381600087803b1580156124ed57600080fd5b505af1158015612501573d6000803e3d6000fd5b505050505b6001600160a01b03871660009081526020819052604090205460ff1661254a576001600160a01b0387166000908152602081905260409020805460ff191660011790555b866001600160a01b03167f12793c0d083a6eb77ccb879fb2f145460535c3a0733dba2953f2393a786c4fe787878787878760405161258d969594939291906137d3565b60405180910390a250505050505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1028054606091600080516020613998833981519152916125dd90613826565b80601f016020809104026020016040519081016040528092919081815260200182805461260990613826565b80156126565780601f1061262b57610100808354040283529160200191612656565b820191906000526020600020905b81548152906001019060200180831161263957829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1038054606091600080516020613998833981519152916125dd90613826565b60006126aa6128f9565b905090565b600080600083516041036126e95760208401516040850151606086015160001a6126db8882858561296d565b9550955095505050506126f5565b50508151600091506002905b9250925092565b600082600381111561271057612710613860565b03612719575050565b600182600381111561272d5761272d613860565b0361274b5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561275f5761275f613860565b036127805760405163fce698f760e01b81526004810182905260240161025d565b600382600381111561279457612794613860565b036110c5576040516335e2f38360e21b81526004810182905260240161025d565b61165581612a3c565b6127c782612a5d565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561280c5761094b8282612ac2565b6110c5612b38565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661158757604051631afcd79f60e31b815260040160405180910390fd5b612865612814565b6000805160206139988339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10261289f84826138bd565b50600381016128ae83826138bd565b5060008082556001909101555050565b611920612814565b6128ce612814565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff19169055565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612924612b57565b61292c612bc1565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156129a85750600091506003905082612a32565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156129fc573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612a2857506000925060019150829050612a32565b9250600091508190505b9450945094915050565b60006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b806001600160a01b03163b600003612a9357604051634c9c8ce360e01b81526001600160a01b038216600482015260240161025d565b6000805160206139b883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051612adf919061397b565b600060405180830381855af49150503d8060008114612b1a576040519150601f19603f3d011682016040523d82523d6000602084013e612b1f565b606091505b5091509150612b2f858383612c05565b95945050505050565b34156115875760405163b398979f60e01b815260040160405180910390fd5b600060008051602061399883398151915281612b7161259e565b805190915015612b8957805160209091012092915050565b81548015612b98579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600060008051602061399883398151915281612bdb612661565b805190915015612bf357805160209091012092915050565b60018201548015612b98579392505050565b606082612c1a57612c1582612c61565b611b68565b8151158015612c3157506001600160a01b0384163b155b15612c5a57604051639996b31560e01b81526001600160a01b038516600482015260240161025d565b5092915050565b805115612c715780518082602001fd5b60405163d6bda27560e01b815260040160405180910390fd5b828054828255906000526020600020908101928215612cdf579160200282015b82811115612cdf57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612caa565b50612ceb929150612cef565b5090565b5b80821115612ceb5760008155600101612cf0565b60008083601f840112612d1657600080fd5b5081356001600160401b03811115612d2d57600080fd5b6020830191508360208260051b8501011115612d4857600080fd5b9250929050565b60008060008060408587031215612d6557600080fd5b84356001600160401b03811115612d7b57600080fd5b612d8787828801612d04565b90955093505060208501356001600160401b03811115612da657600080fd5b612db287828801612d04565b95989497509550505050565b60008060208385031215612dd157600080fd5b82356001600160401b03811115612de757600080fd5b612df385828601612d04565b90969095509350505050565b6001600160a01b038116811461165557600080fd5b8035612e1f81612dff565b919050565b600060208284031215612e3657600080fd5b8135611b6881612dff565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612e7f57612e7f612e41565b604052919050565b600082601f830112612e9857600080fd5b8135602083016000806001600160401b03841115612eb857612eb8612e41565b50601f8301601f1916602001612ecd81612e57565b915050828152858383011115612ee257600080fd5b82826020830137600092810160200192909252509392505050565b60008083601f840112612f0f57600080fd5b5081356001600160401b03811115612f2657600080fd5b602083019150836020828501011115612d4857600080fd5b801515811461165557600080fd5b8035612e1f81612f3e565b8035600081900b8114612e1f57600080fd5b600080600080600080600060c0888a031215612f8457600080fd5b87356001600160401b03811115612f9a57600080fd5b612fa68a828b01612e87565b9750506020880135955060408801356001600160401b03811115612fc957600080fd5b612fd58a828b01612efd565b9096509450506060880135612fe981612f3e565b9250612ff760808901612f57565b915060a088013561300781612f3e565b8091505092959891949750929550565b80356001600160401b0381168114612e1f57600080fd5b803560ff81168114612e1f57600080fd5b60008060008060008060008060008060006101408c8e03121561306157600080fd5b8b356001600160401b0381111561307757600080fd5b6130838e828f01612e87565b9b505061309260208d01613017565b99506130a060408d01613017565b98506130ae60608d01613017565b97506130bc60808d01613017565b965060a08c013595506130d160c08d01612e14565b945060e08c01356001600160401b038111156130ec57600080fd5b6130f88e828f01612efd565b909550935061310c90506101008d0161302e565b915061311b6101208d01612f4c565b90509295989b509295989b9093969950565b6000806040838503121561314057600080fd5b823561314b81612dff565b915060208301356001600160401b0381111561316657600080fd5b61317285828601612e87565b9150509250929050565b600080600080600080600080610100898b03121561319957600080fd5b88356131a481612dff565b9750602089013596506040890135955060608901356131c281612dff565b945060808901356131d281612dff565b935060a08901356131e281612dff565b925060c08901356001600160401b038111156131fd57600080fd5b6132098b828c01612e87565b92505060e08901356001600160401b0381111561322557600080fd5b6132318b828c01612e87565b9150509295985092959890939650565b60006020828403121561325357600080fd5b5035919050565b6000806040838503121561326d57600080fd5b823561327881612dff565b9150602083013561328881612dff565b809150509250929050565b80356001600160801b0381168114612e1f57600080fd5b60008060008060008060008060008060006101408c8e0312156132cc57600080fd5b8b356132d781612dff565b9a506132e560208d01613293565b99506132f360408d01613293565b985061330160608d01613293565b975061330f60808d01613293565b965060a08c0135955060c08c013561332681612dff565b945060e08c01356001600160401b0381111561334157600080fd5b61334d8e828f01612efd565b909550935061336190506101008d0161302e565b91506101208c013561337281612f3e565b809150509295989b509295989b9093969950565b60005b838110156133a1578181015183820152602001613389565b50506000910152565b600081518084526133c2816020860160208601613386565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e0602082015260006133f560e08301896133aa565b828103604084015261340781896133aa565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b8181101561345d57835183526020938401939092019160010161343f565b50909b9a5050505050505050505050565b602081526000611b6860208301846133aa565b60006020828403121561349357600080fd5b81356001600160401b038111156134a957600080fd5b6134b584828501612e87565b949350505050565b634e487b7160e01b600052603260045260246000fd5b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b60006001820161350b5761350b6134e3565b5060010190565b81810381811115611b2057611b206134e3565b80820180821115611b2057611b206134e3565b60006020828403121561354a57600080fd5b8151611b6881612f3e565b60006020828403121561356757600080fd5b611b6882612f57565b6000808335601e1984360301811261358757600080fd5b8301803591506001600160401b038211156135a157600080fd5b602001915036819003821315612d4857600080fd5b6000602082840312156135c857600080fd5b5051919050565b8082028115828204841417611b2057611b206134e3565b60008261360357634e487b7160e01b600052601260045260246000fd5b500490565b8c81526001600160a01b038c81166020830152604082018c90526001600160401b038b811660608401528a8116608084015289811660a0840152881660c083015260e08201879052851661010082015261018081018461012083015261367461014083018560ff169052565b8215156101608301529d9c50505050505050505050505050565b6000608082016001600160401b03871683526080602084015280865480835260a085019150876000526020600020925060005b818110156136e85783546001600160a01b03168352600193840193602090930192016136c1565b50506001600160a01b0395909516604084015250506060015292915050565b60006020828403121561371957600080fd5b81516001600160401b0381111561372f57600080fd5b8201601f8101841361374057600080fd5b80516001600160401b0381111561375957613759612e41565b8060051b61376960208201612e57565b9182526020818401810192908101908784111561378557600080fd5b6020850194505b838510156137ab5784518083526020958601959093509091019061378c565b979650505050505050565b6000602082840312156137c857600080fd5b8151611b6881612dff565b86815285602082015260a060408201528360a0820152838560c0830137600060c08583010152600060c0601f19601f870116830101905060ff841660608301528215156080830152979650505050505050565b600181811c9082168061383a57607f821691505b60208210810361385a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b601f82111561094b57806000526020600020601f840160051c8101602085101561389d5750805b601f840160051c820191505b81811015611a1657600081556001016138a9565b81516001600160401b038111156138d6576138d6612e41565b6138ea816138e48454613826565b84613876565b6020601f82116001811461391e57600083156139065750848201515b600019600385901b1c1916600184901b178455611a16565b600084815260208120601f198516915b8281101561394e578785015182556020948501946001909201910161392e565b508482101561396c5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b6000825161398d818460208701613386565b919091019291505056fea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212209e15592acd0d471ff8e894f3699a75cfd1921f239b59be1778be7fafbb281d5b64736f6c634300081b0033