0 txs
1 call
constructor
constructor()
functions
communityCloseTime
viewfunction communityCloseTime() view returns (uint64)
communityOpenTime
viewfunction communityOpenTime() view returns (uint64)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
earlyAccessProportion
viewfunction earlyAccessProportion() view returns (uint16)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
fundClaimedAmount
viewfunction fundClaimedAmount() view returns (uint256)
galaxyPoolProportion
viewfunction galaxyPoolProportion() view returns (uint16)
getClaimableFundAmount
viewfunction getClaimableFundAmount() view returns (uint256)
getIDOTokenAmountByOfferedCurrency
viewfunction getIDOTokenAmountByOfferedCurrency(uint256 _amount) view returns (uint256)
getPurchaseTokenAmountByTokenAmount
viewfunction getPurchaseTokenAmountByTokenAmount(uint256 _tokenAmount) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
ignitionFactory
viewfunction ignitionFactory() view returns (address)
isFailBeforeTGEDate
viewfunction isFailBeforeTGEDate() view returns (bool)
isOwner
viewfunction isOwner(address sender) view returns (bool)
maxPurchaseAmountForEarlyAccess
viewfunction maxPurchaseAmountForEarlyAccess() view returns (uint256)
maxPurchaseAmountForKYCUser
viewfunction maxPurchaseAmountForKYCUser() view returns (uint256)
maxPurchaseAmountForNotKYCUser
viewfunction maxPurchaseAmountForNotKYCUser() view returns (uint256)
OWNER_ROLE
viewfunction OWNER_ROLE() view returns (bytes32)
participationFeeAmount
viewfunction participationFeeAmount() view returns (uint256)
participationFeeClaimedStatus
viewfunction participationFeeClaimedStatus() view returns (bool)
paused
viewfunction paused() view returns (bool)
purchasedAmount
viewfunction purchasedAmount() view returns (uint256)
purchasedAmountInEarlyAccess
viewfunction purchasedAmountInEarlyAccess() view returns (uint256)
purchasedAmountInGalaxyPool
viewfunction purchasedAmountInGalaxyPool() view returns (uint256)
purchaseToken
viewfunction purchaseToken() view returns (address)
redundantIDOTokensWithdrawn
viewfunction redundantIDOTokensWithdrawn() view returns (bool)
root
viewfunction root() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
tokenFeeClaimedStatus
viewfunction tokenFeeClaimedStatus() view returns (bool)
tokenFeePercentage
viewfunction tokenFeePercentage() view returns (uint16)
totalRaiseAmount
viewfunction totalRaiseAmount() view returns (uint256)
userPurchasedAmount
viewfunction userPurchasedAmount(address) view returns (uint256 principal, uint256 fee, uint256 withdrawn)
vesting
viewfunction vesting() view returns (address)
whaleCloseTime
viewfunction whaleCloseTime() view returns (uint64)
whaleOpenTime
viewfunction whaleOpenTime() view returns (uint64)
__BasePausable__init
nonpayablefunction __BasePausable__init(address owner)
buyTokenInCrowdfundingPool
nonpayablefunction buyTokenInCrowdfundingPool(bytes32[] proof, uint256 _purchaseAmount, uint256 _poolLimit)
buyTokenInGalaxyPool
nonpayablefunction buyTokenInGalaxyPool(bytes32[] proof, uint256 _purchaseAmount, uint256 _maxPurchaseBaseOnAllocations, uint256 _poolLimit)
cancelPool
nonpayablefunction cancelPool(bool _permanentDelete)
claimFund
nonpayablefunction claimFund(address _beneficiary)
claimParticipationFee
nonpayablefunction claimParticipationFee(address _beneficiary)
claimTokenFee
nonpayablefunction claimTokenFee(address _beneficiary)
fundIDOToken
nonpayablefunction fundIDOToken(address _IDOToken, bytes signature)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
initialize
nonpayablefunction initialize(address[2] addrs, uint256[19] uints, address owner)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setClaimableStatus
nonpayablefunction setClaimableStatus(bool _status)
setRoot
nonpayablefunction setRoot(bytes32 _root)
updateTGEDate
nonpayablefunction updateTGEDate(uint64 _newTGEDate)
updateTime
nonpayablefunction updateTime(uint64 _newWhaleCloseTime, uint64 _newCommunityCloseTime)
withdrawPurchasedAmount
nonpayablefunction withdrawPurchasedAmount(address _beneficiary)
withdrawRedundantIDOToken
nonpayablefunction withdrawRedundantIDOToken(address _beneficiary)
events
BuyToken
event BuyToken(address indexed buyer, address indexed pool, uint256 purchaseAmount, uint256 IDOTokenAmount, uint8 poolType)
CancelPool
event CancelPool(address indexed pool, bool permanentDeleteStatus)
ClaimFund
event ClaimFund(address beneficiary, uint256 claimableAmount)
ClaimParticipationFee
event ClaimParticipationFee(address beneficiary, uint256 participationFeeAmount)
ClaimTokenFee
event ClaimTokenFee(address beneficiary, uint256 tokenFee)
EIP712DomainChanged
event EIP712DomainChanged()
FundIDOToken
event FundIDOToken(address IDOToken, uint256 fundAmount)
Initialized
event Initialized(uint8 version)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Unpaused
event Unpaused(address account)
UpdateRoot
event UpdateRoot(bytes32 root)
UpdateTime
event UpdateTime(uint64 whaleOpenTime, uint64 whaleCloseTime, uint64 communityOpenTime, uint64 communityCloseTime)
WithdrawPurchasedAmount
event WithdrawPurchasedAmount(address sender, address beneficiary, uint256 principalAmount)
errors
AlreadyClaimTotalAmount
error AlreadyClaimTotalAmount()
AlreadyPrivateFunded
error AlreadyPrivateFunded()
CallerNotAdmin
error CallerNotAdmin()
CallerNotOwner
error CallerNotOwner()
CrowdFundingParticipationFeePercentageNotInRange
error CrowdFundingParticipationFeePercentageNotInRange()
ExceedMaxPurchaseAmountForEarlyAccess
error ExceedMaxPurchaseAmountForEarlyAccess()
ExceedMaxPurchaseAmountForKYCUser
error ExceedMaxPurchaseAmountForKYCUser()
ExceedMaxPurchaseAmountForNonKYCUser
error ExceedMaxPurchaseAmountForNonKYCUser()
ExceedMaxPurchaseAmountForUser
error ExceedMaxPurchaseAmountForUser()
ExceedPoolPurchaseAmountForUser
error ExceedPoolPurchaseAmountForUser()
ExceedTotalRaiseAmount
error ExceedTotalRaiseAmount()
GalaxyParticipationFeePercentageNotInRange
error GalaxyParticipationFeePercentageNotInRange()
InvalidClaimableAmount
error InvalidClaimableAmount()
InvalidSigner
error InvalidSigner()
InvalidTime
error InvalidTime()
MaxPurchaseForKYCUserNotValid
error MaxPurchaseForKYCUserNotValid()
NotAllowedToAdjustTGEDateExceedsAttempts
error NotAllowedToAdjustTGEDateExceedsAttempts()
NotAllowedToAdjustTGEDateTooFar
error NotAllowedToAdjustTGEDateTooFar()
NotAllowedToAllowInvestorToClaim
error NotAllowedToAllowInvestorToClaim()
NotAllowedToCancelAfterLockupTime
error NotAllowedToCancelAfterLockupTime()
NotAllowedToClaimParticipationFee
error NotAllowedToClaimParticipationFee()
NotAllowedToClaimPurchaseToken
error NotAllowedToClaimPurchaseToken()
NotAllowedToClaimTokenFee
error NotAllowedToClaimTokenFee()
NotAllowedToDoAfterEmergencyCancelled
error NotAllowedToDoAfterEmergencyCancelled()
NotAllowedToDoAfterTGEDate
error NotAllowedToDoAfterTGEDate()
NotAllowedToFundBeforeCommunityTime
error NotAllowedToFundBeforeCommunityTime()
NotAllowedToTransferBeforeCommunityClose
error NotAllowedToTransferBeforeCommunityClose()
NotAllowedToTransferBeforeLockupTime
error NotAllowedToTransferBeforeLockupTime()
NotAllowedToTransferBeforeTGEDate
error NotAllowedToTransferBeforeTGEDate()
NotAllowedToWithdrawPurchasedAmount
error NotAllowedToWithdrawPurchasedAmount()
NotEnoughAllowance
error NotEnoughAllowance()
NotFunded
error NotFunded()
NotInInvestorList
error NotInInvestorList()
NotInWhaleList
error NotInWhaleList()
PoolIsAlreadyFunded
error PoolIsAlreadyFunded()
RedundantTokensAlreadyWithdrawn
error RedundantTokensAlreadyWithdrawn()
TimeOutToBuyIDOToken
error TimeOutToBuyIDOToken()
ZeroAddressNotValid
error ZeroAddressNotValid()
ZeroAmountNotValid
error ZeroAmountNotValid()
creation bytecode
0x60806040523480156200001157600080fd5b506200001c62000022565b620000f0565b601354600160c01b900460ff1615620000915760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b601354600160b81b900460ff90811614620000ee576013805460ff60b81b191660ff60b81b17905560405160ff81527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615ffb80620001006000396000f3fe608060405234801561001057600080fd5b506004361061035d5760003560e01c806377292d5b116101d3578063a95c4d6211610104578063d547741f116100a2578063e58378bb1161007c578063e58378bb1461076d578063ebf0c71714610782578063f13799391461078b578063f1f8044a1461079457600080fd5b8063d547741f14610734578063dab5f34014610747578063e3b37f301461075a57600080fd5b8063bb8e3f44116100de578063bb8e3f44146106df578063c3136074146106f2578063cdc5598e14610705578063ce7c64101461071a57600080fd5b8063a95c4d62146106ba578063adaa039c146106cd578063b3679bda146106d657600080fd5b80639a95e7ea11610171578063a217fddf1161014b578063a217fddf1461063b578063a236498e14610643578063a4f276c714610656578063a558b65c146106a057600080fd5b80639a95e7ea146106135780639ac8d38b14610626578063a0918c4f1461063357600080fd5b806384b0196e116101ad57806384b0196e146105c957806385f8f4be146105e45780638a39face146105ed57806391d148541461060057600080fd5b806377292d5b146105a35780637b1a0838146105ac57806381256703146105b557600080fd5b806334fa224b116102ad57806344c63eec1161024b5780635c975abb116102255780635c975abb1461056a5780636e3b466d146105755780636e44a6c9146105885780636e516bbe1461059057600080fd5b806344c63eec1461051957806350a72928146105445780635671e8c91461055757600080fd5b80633baa6fca116102875780633baa6fca146104cd5780633bc270db146104e05780633d3e3763146104f35780633d4527b71461050657600080fd5b806334fa224b1461049d5780633644e515146104b257806336568abe146104ba57600080fd5b80632186b3681161031a578063257bae15116102f4578063257bae151461045b5780632f2ff15d1461046e5780632f54bf6e1461048157806330bba6c41461049457600080fd5b80632186b36814610412578063226d232a14610425578063248a9ca31461043857600080fd5b806301ffc9a714610362578063021134f21461038a57806302bb34c81461039f578063068350b9146103b65780631acbc823146103d75780632013b4c4146103e0575b600080fd5b610375610370366004615558565b6107a7565b60405190151581526020015b60405180910390f35b61039d610398366004615597565b6107de565b005b6103a860105481565b604051908152602001610381565b6008546103c49061ffff1681565b60405161ffff9091168152602001610381565b6103a8600f5481565b600a546103fa90600160c01b90046001600160401b031681565b6040516001600160401b039091168152602001610381565b61039d6104203660046155eb565b611082565b61039d6104333660046155eb565b611482565b6103a8610446366004615608565b60009081526078602052604090206001015490565b61039d610469366004615665565b6119b3565b61039d61047c3660046156be565b611a3a565b61037561048f3660046155eb565b611a64565b6103a860075481565b6008546103c490600160401b900461ffff1681565b6103a8611a7e565b61039d6104c83660046156be565b611a8d565b600a546103fa906001600160401b031681565b61039d6104ee3660046156ee565b611b0b565b61039d610501366004615787565b611e91565b61039d6105143660046157c3565b612268565b60135461052c906001600160a01b031681565b6040516001600160a01b039091168152602001610381565b60015461052c906001600160a01b031681565b61039d6105653660046157c3565b612522565b60aa5460ff16610375565b6008546103759062010000900460ff1681565b6103a8612644565b61039d61059e3660046155eb565b612686565b6103a8600d5481565b6103a8600e5481565b60135461037590600160b01b900460ff1681565b6105d16128a0565b6040516103819796959493929190615830565b6103a860065481565b6103a86105fb366004615608565b612940565b61037561060e3660046156be565b612968565b61039d6106213660046158c9565b612993565b600c546103759060ff1681565b610375612a2e565b6103a8600081565b6103a8610651366004615608565b612b53565b6106856106643660046155eb565b60116020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610381565b600a546103fa90600160801b90046001600160401b031681565b60025461052c906001600160a01b031681565b6103a8600b5481565b6103a860095481565b61039d6106ed3660046155eb565b612bd2565b61039d6107003660046155eb565b612c6a565b6008546103c490600160501b900461ffff1681565b600a546103fa90600160401b90046001600160401b031681565b61039d6107423660046156be565b613081565b61039d610755366004615608565b6130a6565b61039d610768366004615919565b613178565b6103a8600080516020615fa683398151915281565b6103a860005481565b6103a860055481565b61039d6107a23660046155eb565b61354b565b60006001600160e01b03198216637965db0b60e01b14806107d857506301ffc9a760e01b6001600160e01b03198316145b92915050565b601354600160c01b900460ff161580801561080657506013546001600160b81b90910460ff16105b806108275750303b1580156108275750601354600160b81b900460ff166001145b61088f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6013805460ff60b81b1916600160b81b17905580156108bc576013805460ff60c01b1916600160c01b1790555b604051635c1c862160e01b81526001600160a01b038316600482015273f13a48822e153c0007a109d326027a46cc45987f90635c1c86219060240160006040518083038186803b15801561090f57600080fd5b505af4158015610923573d6000803e3d6000fd5b5050505061096660405180604001604052806004815260200163141bdbdb60e21b815250604051806040016040528060018152602001603160f81b815250613839565b61096f82612bd2565b60405163fcf91e6d60e01b815273f13a48822e153c0007a109d326027a46cc45987f9063fcf91e6d906109a89087908790600401615936565b60006040518083038186803b1580156109c057600080fd5b505af41580156109d4573d6000803e3d6000fd5b505050506109df3390565b600180546001600160a01b0319166001600160a01b03929092169190911790556000610a0e60208601866155eb565b6001600160a01b031603610a30576008805463ff000000191663010000001790555b610a63610a4060208601866155eb565b6101a08501356101c08601356101e087013561020088013561022089013561386c565b73f13a48822e153c0007a109d326027a46cc45987f635c1c8621610a8d60408701602088016155eb565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160006040518083038186803b158015610acc57600080fd5b505af4158015610ae0573d6000803e3d6000fd5b5050505083600160028110610af757610af7615985565b602002016020810190610b0a91906155eb565b600280546001600160a01b0319166001600160a01b0392909216919091179055823560068190556020840135600781905510610b5957604051636f54786760e11b815260040160405180910390fd5b610b6a8360025b602002013561397f565b6008805461ffff191661ffff92909216919091179055610b8b836003610b60565b6008805461ffff929092166401000000000265ffff0000000019909216919091179055610bb9836004610b60565b600860066101000a81548161ffff021916908361ffff160217905550600160009054906101000a90046001600160a01b03166001600160a01b031663d8c128226040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c4c91906159b2565b60085461ffff9182166401000000009091049091161080610cf65750600160009054906101000a90046001600160a01b03166001600160a01b031663884c45096040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdf91906159b2565b60085461ffff918216640100000000909104909116115b15610d14576040516310a9cc4160e11b815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b031663397a1cb36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8b91906159b2565b60085461ffff918216600160301b9091049091161080610e335750600160009054906101000a90046001600160a01b03166001600160a01b031663d6de71fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d91906159b2565b60085461ffff918216600160301b909104909116115b15610e5157604051631afca5c960e31b815260040160405180910390fd5b610e5c836005610b60565b6008805461ffff92909216600160401b0269ffff000000000000000019909216919091179055610e8d836006610b60565b6008805461ffff60501b1916600160501b61ffff9384168102919091179182905560e0860135600955612710928392918204811691610ed591600160401b90910416836159e3565b61ffff16600954610ee69190615a05565b610ef09190615a05565b610efa9190615a1c565b610f049190615a1c565b600555610f156101008401356139e6565b600a805467ffffffffffffffff19166001600160401b0392909216919091179055610f52610f4d610120850135610100860135615a3e565b6139e6565b600a8054600160401b600160c01b031916600160401b6001600160401b0393841690810267ffffffffffffffff60801b191691909117600160801b9182021791829055610fac92610f4d9261014088013592900416615a3e565b600a80546001600160401b0392909216600160c01b026001600160c01b03909216919091179055610160830135600355610180830135600455610ff3610240840135613a4e565b6013805460ff60a81b1916600160a81b60ff93841681029190911791829055600191049091161115611033576013805460ff60a81b1916600160a81b1790555b801561107c576013805460ff60c01b19169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15b50505050565b6001546001600160a01b0316632f54bf6e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156110d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fc9190615a51565b6111195760405163036c8cf960e11b815260040160405180910390fd5b611121613aaf565b6008546301000000900460ff161580156111af5750601360009054906101000a90046001600160a01b03166001600160a01b0316637c6543036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611189573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ad9190615a51565b155b156111cd57604051636af784dd60e11b815260040160405180910390fd5b6111d5613af7565b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa15801561121e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112429190615a6e565b505060085492935050506301000000900460ff161580156112e157506001546040805163bc87783f60e01b815290516001600160401b038416926001600160a01b03169163bc87783f9160048083019260209291908290030181865afa1580156112b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112d49190615ad5565b6112de9190615a3e565b42105b156112ff57604051637886cea160e01b815260040160405180910390fd5b6008546301000000900460ff1680156113295750600a54600160c01b90046001600160401b031642105b1561134757604051631ee474af60e21b815260040160405180910390fd5b601360009054906101000a90046001600160a01b03166001600160a01b0316639aa74a8c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561139a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113be9190615a51565b156113dc5760405163d66e246160e01b815260040160405180910390fd5b600c5460ff1615156001036114045760405163dbf0a95d60e01b815260040160405180910390fd5b600b54600254611421916001600160a01b03909116908490613b50565b600c805460ff19166001179055600b54604080516001600160a01b038516815260208101929092527f271b8a9c81b4d02d8aca6c2a2e341a4e3e125356c586780413e857a0fadd766a910160405180910390a15061147f600160dc55565b50565b61148b33611a64565b6114a857604051632e6c18c960e11b815260040160405180910390fd5b6114b0613aaf565b6008546301000000900460ff1615801561153e5750601360009054906101000a90046001600160a01b03166001600160a01b0316637c6543036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611518573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153c9190615a51565b155b1561155c57604051636af784dd60e11b815260040160405180910390fd5b611564613af7565b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa1580156115ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d19190615a6e565b505060085492935050506301000000900460ff1615801561167057506001546040805163bc87783f60e01b815290516001600160401b038416926001600160a01b03169163bc87783f9160048083019260209291908290030181865afa15801561163f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116639190615ad5565b61166d9190615a3e565b42105b1561168e57604051637886cea160e01b815260040160405180910390fd5b6008546301000000900460ff1680156116b85750600a54600160c01b90046001600160401b031642105b156116d657604051631ee474af60e21b815260040160405180910390fd5b601360009054906101000a90046001600160a01b03166001600160a01b0316639aa74a8c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611729573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174d9190615a51565b1561176b5760405163d66e246160e01b815260040160405180910390fd5b601360009054906101000a90046001600160a01b03166001600160a01b03166374478bb36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e29190615a51565b6117ff57604051639cbf808960e01b815260040160405180910390fd5b6000611809612644565b90506000811161182c576040516316087e8160e11b815260040160405180910390fd5b806010540361184e5760405163c23ca7e360e01b815260040160405180910390fd5b6002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611896573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ba9190615ad5565b811115611932576002546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611909573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061192d9190615ad5565b611934565b805b905080601060008282546119489190615a3e565b9091555050600254611964906001600160a01b03168483613b50565b604080516001600160a01b0385168152602081018390527f0f8819b8888ebff61f219df3a7380d5329e5c298966c09de72e7a1449149b47491015b60405180910390a1505061147f600160dc55565b6119bb613aaf565b6119c3613af7565b6119cb613bba565b6119e857604051630bab667960e31b815260040160405180910390fd5b6119f433848484613bec565b6119fd83613cc1565b600854611a20908690869086908690640100000000900461ffff16866000613d54565b611a2983613e12565b611a33600160dc55565b5050505050565b600082815260786020526040902060010154611a5581613e52565b611a5f8383613e5c565b505050565b60006107d8600080516020615fa683398151915283612968565b6000611a88613ee2565b905090565b6001600160a01b0381163314611afd5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610886565b611b078282613eec565b5050565b611b1433611a64565b611b3157604051632e6c18c960e11b815260040160405180910390fd5b611b39613aaf565b611b41613af7565b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa158015611b8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bae9190615a6e565b505050509050806001600160401b03164210611bdd57604051630487bd8960e11b815260040160405180910390fd5b601360009054906101000a90046001600160a01b03166001600160a01b0316637c6543036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c30573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c549190615a51565b15611c725760405163221ede4760e01b815260040160405180910390fd5b60135460408051630edaf7f360e11b815290516000926001600160a01b031691631db5efe69160048083019260209291908290030181865afa158015611cbc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ce09190615b04565b90506000611cef600954612940565b90506001600160a01b038216611dc557600a54600160c01b90046001600160401b03164211611d3157604051634025f6b360e11b815260040160405180910390fd5b611d3c868686613f53565b611d5957604051632057875960e21b815260040160405180910390fd5b601354604051620c8f6d60e81b81526001600160a01b03888116600483015290911690630c8f6d0090602401600060405180830381600087803b158015611d9f57600080fd5b505af1158015611db3573d6000803e3d6000fd5b50505050611dc2600f54612940565b90505b611ddc86336013546001600160a01b0316846141c0565b6013546040516301f76b3560e11b815260048101839052600160248201526001600160a01b03909116906303eed66a90604401600060405180830381600087803b158015611e2957600080fd5b505af1158015611e3d573d6000803e3d6000fd5b5050604080516001600160a01b038a168152602081018590527ffd1c6e1b2189d312d7360ee69c2e59b038f3f1e637e102efc2c3a833b617958e935001905060405180910390a1505050611a5f600160dc55565b6001546001600160a01b0316632f54bf6e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015611ee7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f0b9190615a51565b611f285760405163036c8cf960e11b815260040160405180910390fd5b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa158015611f71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f959190615a6e565b505050509050806001600160401b03164210611fc457604051630487bd8960e11b815260040160405180910390fd5b601360009054906101000a90046001600160a01b03166001600160a01b031663164e2c2a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061203b9190615a51565b80156120b95750601360009054906101000a90046001600160a01b03166001600160a01b0316637c6543036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b99190615a51565b156120d75760405163beffa56560e01b815260040160405180910390fd5b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa158015612120573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121449190615a6e565b5050600a5492935050506001600160401b03808616911610158061217a5750826001600160401b0316846001600160401b031610155b806121965750806001600160401b0316836001600160401b0316115b156121b4576040516337bf561360e11b815260040160405180910390fd5b600a8054600160401b600160c01b031916600160401b6001600160401b0387811682810267ffffffffffffffff60801b191693909317600160801b938402176001600160c01b038116600160c01b8984168102918217968790556040805193851692851692909217835293860483166020830152938504821693810193909352920490911660608201527feedf049ba2a9e400be9e2a2d93b7e6023411a5c4fd77fe703bc75c2fea691fc390608001611073565b6001546001600160a01b0316632f54bf6e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156122be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122e29190615a51565b6122ff5760405163036c8cf960e11b815260040160405180910390fd5b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa158015612348573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061236c9190615a6e565b505050509050806001600160401b03164210612481576001546040805163bc87783f60e01b815290516001600160401b038416926001600160a01b03169163bc87783f9160048083019260209291908290030181865afa1580156123d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f89190615ad5565b6124029190615a3e565b421115612422576040516306e0252760e51b815260040160405180910390fd5b6013546040516358e0fb5560e01b8152600160048201526001600160a01b03909116906358e0fb5590602401600060405180830381600087803b15801561246857600080fd5b505af115801561247c573d6000803e3d6000fd5b505050505b6124896141d5565b601354604051635671e8c960e01b8152600060048201526001600160a01b0390911690635671e8c990602401600060405180830381600087803b1580156124cf57600080fd5b505af11580156124e3573d6000803e3d6000fd5b505060405184151581523092507fcf113a21b92df7813071b3bb491583c8469cf02f9b1c0280d4500d339570a17f915060200160405180910390a25050565b6001546001600160a01b0316632f54bf6e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259c9190615a51565b6125b95760405163036c8cf960e11b815260040160405180910390fd5b8015156001036125e9576125cb612a2e565b156125e95760405163098bb09f60e41b815260040160405180910390fd5b601354604051635671e8c960e01b815282151560048201526001600160a01b0390911690635671e8c990602401600060405180830381600087803b15801561263057600080fd5b505af1158015611a33573d6000803e3d6000fd5b600854600f546000918291612710916126639161ffff90911690615a05565b61266d9190615a1c565b9050600081600f5461267f9190615b21565b9392505050565b61268e613af7565b612696612a2e565b1580156127175750601360009054906101000a90046001600160a01b03166001600160a01b0316639aa74a8c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127159190615a51565b155b1561273557604051638d39ebd960e01b815260040160405180910390fd5b33600090815260116020526040902060028101541561276757604051638d39ebd960e01b815260040160405180910390fd5b60135460408051635efb0c5d60e11b815233600482015281516000936001600160a01b03169263bdf618ba92602480820193918290030181865afa1580156127b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d79190615b34565b91505060006127e582612b53565b83546001850154919250906000836127fd8385615a3e565b6128079190615b21565b90508060000361282a57604051631a30ee4d60e11b815260040160405180910390fd5b600254612841906001600160a01b03168883613b50565b60028601819055604080513381526001600160a01b038916602082015280820183905290517f06ef36b707e3dba03834e3b12d116525831e552283719e0bb25d309006322a619181900360600190a150505050505061147f600160dc55565b60006060806000806000606061010e546000801b1480156128c2575061010f54155b6129065760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610886565b61290e61422f565b6129166142c2565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60045460009061295190600a615c52565b60035461295e9084615a05565b6107d89190615a1c565b60009182526078602090815260408084206001600160a01b0393909316845291905290205460ff1690565b61299b613aaf565b6129a3613af7565b6129ac82613cc1565b6129b4613bba565b156129f3576129c2826142d2565b6008546129e590859085908590600090600160301b900461ffff16866001613d54565b6129ee82614365565b612a24565b6129fb614377565b612a1857604051630bab667960e31b815260040160405180910390fd5b612a24848484846143b0565b61107c600160dc55565b600080601360009054906101000a90046001600160a01b03166001600160a01b031663dc25a3006040518163ffffffff1660e01b815260040160a060405180830381865afa158015612a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa89190615a6e565b505050509050612aba60aa5460ff1690565b80612b4d5750601360009054906101000a90046001600160a01b03166001600160a01b0316637c6543036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b379190615a51565b158015612b4d5750806001600160401b03164210155b91505090565b600354600090612bb75760405162461bcd60e51b815260206004820152602960248201527f436f6e76657273696f6e2072617465206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610886565b600354600454612bc890600a615c52565b61295e9084615a05565b601354600160c01b900460ff16612bfb5760405162461bcd60e51b815260040161088690615c5e565b6001600160a01b038116612c2257604051633bf95ba760e01b815260040160405180910390fd5b612c2a6144b0565b612c326144d9565b612c3a61450a565b612c52600080516020615fa683398151915282613e5c565b61147f600080516020615fa68339815191528061453b565b6001546001600160a01b0316632f54bf6e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015612cc0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce49190615a51565b612d015760405163036c8cf960e11b815260040160405180910390fd5b612d09613aaf565b6008546301000000900460ff16158015612d975750601360009054906101000a90046001600160a01b03166001600160a01b0316637c6543036040518163ffffffff1660e01b8152600401602060405180830381865afa158015612d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d959190615a51565b155b15612db557604051636af784dd60e11b815260040160405180910390fd5b612dbd613af7565b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa158015612e06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e2a9190615a6e565b505060085492935050506301000000900460ff16158015612ec957506001546040805163bc87783f60e01b815290516001600160401b038416926001600160a01b03169163bc87783f9160048083019260209291908290030181865afa158015612e98573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ebc9190615ad5565b612ec69190615a3e565b42105b15612ee757604051637886cea160e01b815260040160405180910390fd5b6008546301000000900460ff168015612f115750600a54600160c01b90046001600160401b031642105b15612f2f57604051631ee474af60e21b815260040160405180910390fd5b601360009054906101000a90046001600160a01b03166001600160a01b0316639aa74a8c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa69190615a51565b15612fc45760405163d66e246160e01b815260040160405180910390fd5b60085462010000900460ff161515600103612ff257604051635dcab31160e01b815260040160405180910390fd5b600854600f546000916127109161300d9161ffff1690615a05565b6130179190615a1c565b600254909150613031906001600160a01b03168483613b50565b6008805462ff0000191662010000179055604080516001600160a01b0385168152602081018390527fcb4040dca59670b070ce40b47eb84aff39fa7db8cd83ad903380534add01dffa910161199f565b60008281526078602052604090206001015461309c81613e52565b611a5f8383613eec565b6001546001600160a01b0316632f54bf6e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156130fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131209190615a51565b61313d5760405163036c8cf960e11b815260040160405180910390fd5b60008190556040518181527fc8d52687b85ab11e6859cb0b390a9e926e1b348d9796e084f88f88420c176fc69060200160405180910390a150565b6001546001600160a01b0316632f54bf6e336040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa1580156131ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131f29190615a51565b61320f5760405163036c8cf960e11b815260040160405180910390fd5b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa158015613258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061327c9190615a6e565b505050509050806001600160401b031642106132ab57604051630487bd8960e11b815260040160405180910390fd5b600a546001600160401b03808416600160c01b9092041611156132e1576040516337bf561360e11b815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b03166370e4a6336040518163ffffffff1660e01b8152600401602060405180830381865afa158015613334573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133589190615ad5565b601354600160a01b900460ff16106133835760405163dc37e81b60e01b815260040160405180910390fd5b600160009054906101000a90046001600160a01b03166001600160a01b03166362c1adc26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133fa9190615ad5565b601360009054906101000a90046001600160a01b03166001600160a01b031663e37bcc206040518163ffffffff1660e01b8152600401602060405180830381865afa15801561344d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134719190615ca9565b6001600160401b03166134849190615a3e565b826001600160401b031611156134ad57604051630181c67960e41b815260040160405180910390fd5b601354604051630e3b37f360e41b81526001600160401b03841660048201526001600160a01b039091169063e3b37f3090602401600060405180830381600087803b1580156134fb57600080fd5b505af115801561350f573d6000803e3d6000fd5b505060138054600160a01b900460ff1692509050601461352e83615cc6565b91906101000a81548160ff021916908360ff160217905550505050565b61355433611a64565b61357157604051632e6c18c960e11b815260040160405180910390fd5b601354600160b01b900460ff161561359c57604051636beab46760e01b815260040160405180910390fd5b6013805460ff60b01b1916600160b01b17905560006135b9612a2e565b156136a25760135460408051630edaf7f360e11b815290516000926001600160a01b031691631db5efe69160048083019260209291908290030181865afa158015613608573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061362c9190615b04565b6013546040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa158015613675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136999190615ad5565b91506137cf9050565b6013546040805162dc25a360e81b815290516000926001600160a01b03169163dc25a3009160048083019260a09291908290030181865afa1580156136eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061370f9190615a6e565b505050509050806001600160401b031642101561373f576040516356ecb37b60e11b815260040160405180910390fd5b61374a600f54612940565b601360009054906101000a90046001600160a01b03166001600160a01b0316638488e5e66040518163ffffffff1660e01b8152600401602060405180830381865afa15801561379d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137c19190615ad5565b6137cb9190615b21565b9150505b601354604051631773307960e21b81526001600160a01b0384811660048301526024820184905290911690635dccc1e490604401600060405180830381600087803b15801561381d57600080fd5b505af1158015613831573d6000803e3d6000fd5b505050505050565b601354600160c01b900460ff166138625760405162461bcd60e51b815260040161088690615c5e565b611b078282614586565b6001546040805163cc6f033360e01b815290516000926001600160a01b03169163cc6f0333916004808301926020929190829003018187875af11580156138b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138db9190615b04565b601380546001600160a01b0319166001600160a01b038381169182179092556040516376dfa56160e11b8152306004820152918a16602483015260448201899052606482018890526084820187905260a4820186905260c4820185905291925063edbf4ac29060e401600060405180830381600087803b15801561395e57600080fd5b505af1158015613972573d6000803e3d6000fd5b5050505050505050505050565b600061ffff8211156139e25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b6064820152608401610886565b5090565b60006001600160401b038211156139e25760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b6064820152608401610886565b600060ff8211156139e25760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2038604482015264206269747360d81b6064820152608401610886565b60aa5460ff1615613af55760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610886565b565b600260dc5403613b495760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610886565b600260dc55565b6040516001600160a01b038316602482015260448101829052611a5f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526145db565b600160dc55565b600a546000906001600160401b031642118015611a88575050600a54600160401b90046001600160401b031642111590565b604051633a4d4bcd60e11b81526004810184905273f13a48822e153c0007a109d326027a46cc45987f9063749a979a9060240160006040518083038186803b158015613c3757600080fd5b505af4158015613c4b573d6000803e3d6000fd5b50505050600081118015613c5e57508083115b15613c7c57604051637423ee2960e11b815260040160405180910390fd5b6001600160a01b0384166000908152601260205260409020548290613ca2908590615a3e565b111561107c57604051632b37c00360e11b815260040160405180910390fd5b604051633a4d4bcd60e11b81526004810182905273f13a48822e153c0007a109d326027a46cc45987f9063749a979a9060240160006040518083038186803b158015613d0c57600080fd5b505af4158015613d20573d6000803e3d6000fd5b5050505060095481600f54613d359190615a3e565b111561147f5760405163d68debb160e01b815260040160405180910390fd5b6000613d88336006547fed4b80c86c7954bdbf516c492acb4a2899eb0ee85b7c74e26d85e55a07562c959088878d8d6146b0565b90508015613da457613d9e338786600186614754565b50613e09565b6000613dd8336007547fed4b80c86c7954bdbf516c492acb4a2899eb0ee85b7c74e26d85e55a07562c959089888e8e6146b0565b905080613df857604051637c7efb5360e11b815260040160405180910390fd5b613e06338887600087614754565b50505b50505050505050565b3360009081526012602052604081208054839290613e31908490615a3e565b9250508190555080600d6000828254613e4a9190615a3e565b909155505050565b61147f8133614bcf565b613e668282612968565b611b075760008281526078602090815260408083206001600160a01b03851684529091529020805460ff19166001179055613e9e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611a88614c28565b613ef68282612968565b15611b075760008281526078602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600080846001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015613f94573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613fbc9190810190615ce5565b604051602001613fcc9190615d86565b6040516020818303038152906040528051906020012090506000856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015614024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140489190615da2565b90506000614054611a7e565b604080517f52d52760e40624a39bea36339850f64206470d82f714f11095b454fbff6de95260208201526001600160a01b038a16918101919091523060608201526080810185905260ff841660a082015260c001604051602081830303815290604052805190602001206040516020016140e592919061190160f01b81526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600154601f8a0183900483028501830190935288845293506001600160a01b0390911691632f54bf6e9161414d9185918b908b9081908401838280828437600092019190915250614c9c92505050565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602401602060405180830381865afa158015614191573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141b59190615a51565b979650505050505050565b61107c6001600160a01b038516848484614cc0565b6141dd613aaf565b60aa805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586142123390565b6040516001600160a01b03909116815260200160405180910390a1565b6060610110805461423f90615dc5565b80601f016020809104026020016040519081016040528092919081815260200182805461426b90615dc5565b80156142b85780601f1061428d576101008083540402835291602001916142b8565b820191906000526020600020905b81548152906001019060200180831161429b57829003601f168201915b5050505050905090565b6060610111805461423f90615dc5565b604051633a4d4bcd60e11b81526004810182905273f13a48822e153c0007a109d326027a46cc45987f9063749a979a9060240160006040518083038186803b15801561431d57600080fd5b505af4158015614331573d6000803e3d6000fd5b5050505060055481600e546143469190615a3e565b111561147f57604051633770572b60e11b815260040160405180910390fd5b80600e6000828254613e4a9190615a3e565b600a54600090600160801b90046001600160401b031642118015611a88575050600a54600160c01b90046001600160401b031642111590565b600260006143e7336006547f13e31188d81b941f4c541528790db4031bef078b78d364bde6fc2d4e5ad79e01906000878b8b6146b0565b905080156144125761440b336008548690600160301b900461ffff16600186614754565b505061107c565b6000614447336007547f13e31188d81b941f4c541528790db4031bef078b78d364bde6fc2d4e5ad79e01906000888c8c6146b0565b9050806144675760405163b7fa26c560e01b815260040160405180910390fd5b60008411801561447657508385115b1561449457604051637423ee2960e11b815260040160405180910390fd5b613e09336008548790600160301b900461ffff16600087614754565b601354600160c01b900460ff16613af55760405162461bcd60e51b815260040161088690615c5e565b601354600160c01b900460ff166145025760405162461bcd60e51b815260040161088690615c5e565b613af5614cf8565b601354600160c01b900460ff166145335760405162461bcd60e51b815260040161088690615c5e565b613af5614d2d565b600082815260786020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b601354600160c01b900460ff166145af5760405162461bcd60e51b815260040161088690615c5e565b6101106145bc8382615e47565b506101116145ca8282615e47565b5050600061010e81905561010f5550565b6000614630826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614d569092919063ffffffff16565b90508051600014806146515750808060200190518101906146519190615a51565b611a5f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610886565b6040516bffffffffffffffffffffffff19606089901b16602082015260348101879052605481018690526074810185905260948101849052600090819060b4016040516020818303038152906040528051906020012090506147478484808060200260200160405190810160405280939291908181526020018383602002808284376000920182905250549250859150614d6d9050565b9998505050505050505050565b8115156001036147a9576006546001600160a01b038616600090815260116020526040902054614785908690615a3e565b11156147a457604051633198921960e11b815260040160405180910390fd5b6147ef565b6007546001600160a01b0386166000908152601160205260409020546147d0908690615a3e565b11156147ef5760405163dd4a737760e01b815260040160405180910390fd5b601354600160a81b900460ff1660000361496f576040516353baaca160e11b8152600481018590526024810184905260009073f13a48822e153c0007a109d326027a46cc45987f9063a775594290604401602060405180830381865af415801561485d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148819190615ad5565b9050614896336148918388615a3e565b614d83565b6148a08682614e1b565b6148aa8686614e35565b60006148b586612940565b60135460405163020caa2560e51b81526001600160a01b038a811660048301526024820184905292935091169063419544a090604401600060405180830381600087803b15801561490557600080fd5b505af1158015614919573d6000803e3d6000fd5b5050604080518981526020810185905260ff87168183015290513093506001600160a01b038b1692507f6666857ade20eaaed88e2671721b22c45635cc01006796336554a69f926be2f99181900360600190a350505b601354600160a81b900460ff16600103611a33576040516353baaca160e11b8152600481018590526024810184905260009073f13a48822e153c0007a109d326027a46cc45987f9063a775594290604401602060405180830381865af41580156149dd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a019190615ad5565b9050614a0d3386614d83565b614a178686614e35565b6000614a266105fb8388615b21565b90506000614a3383612940565b60135460405163020caa2560e51b81526001600160a01b038b811660048301526024820186905292935091169063419544a090604401600060405180830381600087803b158015614a8357600080fd5b505af1158015614a97573d6000803e3d6000fd5b505060135460015460408051631f251f5160e11b815290516001600160a01b03938416955063419544a094509190921691633e4a3ea29160048083019260209291908290030181865afa158015614af2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b169190615b04565b6040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260248101849052604401600060405180830381600087803b158015614b5e57600080fd5b505af1158015614b72573d6000803e3d6000fd5b5050604080518a81526020810186905260ff88168183015290513093506001600160a01b038c1692507f6666857ade20eaaed88e2671721b22c45635cc01006796336554a69f926be2f99181900360600190a35050505050505050565b614bd98282612968565b611b0757614be681614e49565b614bf1836020614e5b565b604051602001614c02929190615f06565b60408051601f198184030181529082905262461bcd60e51b825261088691600401615f7b565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f614c53614ff6565b614c5b615050565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000806000614cab8585615082565b91509150614cb8816150c7565b509392505050565b6040516001600160a01b038085166024830152831660448201526064810182905261107c9085906323b872dd60e01b90608401613b7c565b601354600160c01b900460ff16614d215760405162461bcd60e51b815260040161088690615c5e565b60aa805460ff19169055565b601354600160c01b900460ff16613bb35760405162461bcd60e51b815260040161088690615c5e565b6060614d658484600085615211565b949350505050565b600082614d7a85846152e1565b14949350505050565b600254604051636eb1769f60e11b81526001600160a01b038481166004830152306024830152600092169063dd62ed3e90604401602060405180830381865afa158015614dd4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614df89190615ad5565b905081811015611a5f57604051634fd3af0760e01b815260040160405180910390fd5b8015611b0757614e2b828261531c565b611b078282615334565b614e3f828261531c565b611b078282615381565b60606107d86001600160a01b03831660145b60606000614e6a836002615a05565b614e75906002615a3e565b6001600160401b03811115614e8c57614e8c615b58565b6040519080825280601f01601f191660200182016040528015614eb6576020820181803683370190505b509050600360fc1b81600081518110614ed157614ed1615985565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110614f0057614f00615985565b60200101906001600160f81b031916908160001a9053506000614f24846002615a05565b614f2f906001615a3e565b90505b6001811115614fa7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110614f6357614f63615985565b1a60f81b828281518110614f7957614f79615985565b60200101906001600160f81b031916908160001a90535060049490941c93614fa081615f8e565b9050614f32565b50831561267f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610886565b60008061500161422f565b805190915015615018578051602090910120919050565b61010e5480156150285792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b60008061505b6142c2565b805190915015615072578051602090910120919050565b61010f5480156150285792915050565b60008082516041036150b85760208301516040840151606085015160001a6150ac878285856153c2565b945094505050506150c0565b506000905060025b9250929050565b60008160048111156150db576150db615aee565b036150e35750565b60018160048111156150f7576150f7615aee565b036151445760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610886565b600281600481111561515857615158615aee565b036151a55760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610886565b60038160048111156151b9576151b9615aee565b0361147f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610886565b6060824710156152725760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610886565b600080866001600160a01b0316858760405161528e9190615d86565b60006040518083038185875af1925050503d80600081146152cb576040519150601f19603f3d011682016040523d82523d6000602084013e6152d0565b606091505b50915091506141b587838387615486565b600081815b8451811015614cb8576153128286838151811061530557615305615985565b60200260200101516154ff565b91506001016152e6565b600254611b07906001600160a01b0316833084614cc0565b6001600160a01b0382166000908152601160205260408120600101805483929061535f908490615a3e565b9250508190555080600b60008282546153789190615a3e565b90915550505050565b6001600160a01b038216600090815260116020526040812080548392906153a9908490615a3e565b9250508190555080600f60008282546153789190615a3e565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156153f9575060009050600361547d565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561544d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166154765760006001925092505061547d565b9150600090505b94509492505050565b606083156154f55782516000036154ee576001600160a01b0385163b6154ee5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610886565b5081614d65565b614d65838361552e565b600081831061551b57600082815260208490526040902061267f565b600083815260208390526040902061267f565b81511561553e5781518083602001fd5b8060405162461bcd60e51b81526004016108869190615f7b565b60006020828403121561556a57600080fd5b81356001600160e01b03198116811461267f57600080fd5b6001600160a01b038116811461147f57600080fd5b60008060006102c084860312156155ad57600080fd5b60408401858111156155be57600080fd5b8493506102a08501868111156155d357600080fd5b909250356155e081615582565b809150509250925092565b6000602082840312156155fd57600080fd5b813561267f81615582565b60006020828403121561561a57600080fd5b5035919050565b60008083601f84011261563357600080fd5b5081356001600160401b0381111561564a57600080fd5b6020830191508360208260051b85010111156150c057600080fd5b60008060008060006080868803121561567d57600080fd5b85356001600160401b0381111561569357600080fd5b61569f88828901615621565b9099909850602088013597604081013597506060013595509350505050565b600080604083850312156156d157600080fd5b8235915060208301356156e381615582565b809150509250929050565b60008060006040848603121561570357600080fd5b833561570e81615582565b925060208401356001600160401b038082111561572a57600080fd5b818601915086601f83011261573e57600080fd5b81358181111561574d57600080fd5b87602082850101111561575f57600080fd5b6020830194508093505050509250925092565b6001600160401b038116811461147f57600080fd5b6000806040838503121561579a57600080fd5b82356157a581615772565b915060208301356156e381615772565b801515811461147f57600080fd5b6000602082840312156157d557600080fd5b813561267f816157b5565b60005b838110156157fb5781810151838201526020016157e3565b50506000910152565b6000815180845261581c8160208601602086016157e0565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e0602084015261585160e084018a615804565b8381036040850152615863818a615804565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156158b75783518352928401929184019160010161589b565b50909c9b505050505050505050505050565b600080600080606085870312156158df57600080fd5b84356001600160401b038111156158f557600080fd5b61590187828801615621565b90989097506020870135966040013595509350505050565b60006020828403121561592b57600080fd5b813561267f81615772565b6102a08101818460005b600281101561597257813561595481615582565b6001600160a01b031683526020928301929190910190600101615940565b5050506102608360408401379392505050565b634e487b7160e01b600052603260045260246000fd5b805161ffff811681146159ad57600080fd5b919050565b6000602082840312156159c457600080fd5b61267f8261599b565b634e487b7160e01b600052601160045260246000fd5b61ffff8281168282160390808211156159fe576159fe6159cd565b5092915050565b80820281158282048414176107d8576107d86159cd565b600082615a3957634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156107d8576107d86159cd565b600060208284031215615a6357600080fd5b815161267f816157b5565b600080600080600060a08688031215615a8657600080fd5b8551615a9181615772565b9450615a9f6020870161599b565b93506040860151615aaf81615772565b6060870151909350615ac081615772565b80925050608086015190509295509295909350565b600060208284031215615ae757600080fd5b5051919050565b634e487b7160e01b600052602160045260246000fd5b600060208284031215615b1657600080fd5b815161267f81615582565b818103818111156107d8576107d86159cd565b60008060408385031215615b4757600080fd5b505080516020909101519092909150565b634e487b7160e01b600052604160045260246000fd5b600181815b80851115615ba9578160001904821115615b8f57615b8f6159cd565b80851615615b9c57918102915b93841c9390800290615b73565b509250929050565b600082615bc0575060016107d8565b81615bcd575060006107d8565b8160018114615be35760028114615bed57615c09565b60019150506107d8565b60ff841115615bfe57615bfe6159cd565b50506001821b6107d8565b5060208310610133831016604e8410600b8410161715615c2c575081810a6107d8565b615c368383615b6e565b8060001904821115615c4a57615c4a6159cd565b029392505050565b600061267f8383615bb1565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215615cbb57600080fd5b815161267f81615772565b600060ff821660ff8103615cdc57615cdc6159cd565b60010192915050565b600060208284031215615cf757600080fd5b81516001600160401b0380821115615d0e57600080fd5b818401915084601f830112615d2257600080fd5b815181811115615d3457615d34615b58565b604051601f8201601f19908116603f01168101908382118183101715615d5c57615d5c615b58565b81604052828152876020848701011115615d7557600080fd5b6141b58360208301602088016157e0565b60008251615d988184602087016157e0565b9190910192915050565b600060208284031215615db457600080fd5b815160ff8116811461267f57600080fd5b600181811c90821680615dd957607f821691505b602082108103615df957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115611a5f576000816000526020600020601f850160051c81016020861015615e285750805b601f850160051c820191505b8181101561383157828155600101615e34565b81516001600160401b03811115615e6057615e60615b58565b615e7481615e6e8454615dc5565b84615dff565b602080601f831160018114615ea95760008415615e915750858301515b600019600386901b1c1916600185901b178555613831565b600085815260208120601f198616915b82811015615ed857888601518255948401946001909101908401615eb9565b5085821015615ef65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615f3e8160178501602088016157e0565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615f6f8160288401602088016157e0565b01602801949350505050565b60208152600061267f6020830184615804565b600081615f9d57615f9d6159cd565b50600019019056feb19546dff01e856fb3f010c267a7b1c60363cf8a4664e21cc89c26224620214ea264697066735822122015c48a29c2ff610e1d4eb673428da177c28c82d5cdf5ba13fd22780c62b9a21264736f6c63430008170033