0 txs
0 calls
constructor
constructor(address t, address m, address pt, address rt, string nm, address fwd, address w, address s)
functions
checkPurchaseApproval
viewfunction checkPurchaseApproval(address buyer, string, uint256 cost) view returns (uint8)
clubIds
viewfunction clubIds(uint256) view returns (uint256)
clubIndices
viewfunction clubIndices(uint256) view returns (uint256)
CONFIGURE_ROLE
viewfunction CONFIGURE_ROLE() view returns (bytes32)
costOfNextShares
viewfunction costOfNextShares(uint256 clubId, uint256 num) view returns (uint256)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
ETH_TOKEN
viewfunction ETH_TOKEN() view returns (address)
getAllClubs
viewfunction getAllClubs() view returns (uint256[])
getMaxPacks
viewfunction getMaxPacks(uint256 clubId) view returns (uint256)
getPausedClubs
viewfunction getPausedClubs() view returns (uint256[])
getPricing
viewfunction getPricing() view returns (tuple[])
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isPackMintCurrent
viewfunction isPackMintCurrent(tuple mintData) view returns (bool)
isTrustedForwarder
viewfunction isTrustedForwarder(address forwarder) view returns (bool)
kycThreshold
viewfunction kycThreshold() view returns (uint256)
minter
viewfunction minter() view returns (address)
numSharesPrimary
viewfunction numSharesPrimary() view returns (uint256)
numSharesSecondary
viewfunction numSharesSecondary() view returns (uint256)
paused
viewfunction paused() view returns (bool)
pausedClubs
viewfunction pausedClubs(uint256) view returns (uint256)
payee
viewfunction payee() view returns (address)
preview
viewfunction preview(uint256 clubId, uint256 numPacks) view returns (tuple res)
previewAndQuote
viewfunction previewAndQuote(uint256 clubId, uint256 numPacks, address inputToken, bytes swapData) view returns (tuple mintData, uint256 cost)
pricing
viewfunction pricing(uint256) view returns (uint256 num, uint256 price)
purchaseTracker
viewfunction purchaseTracker() view returns (address)
quoteMint
viewfunction quoteMint(tuple mintData, address inputToken, bytes swapData) view returns (uint256)
refBonusBase
viewfunction refBonusBase() view returns (uint256)
refBonusBps
viewfunction refBonusBps() view returns (uint256)
refBonusSeconds
viewfunction refBonusSeconds() view returns (uint256)
refTracker
viewfunction refTracker() view returns (address)
sanctionsList
viewfunction sanctionsList() view returns (address)
secondaryClubs
viewfunction secondaryClubs() view returns (uint256)
sharesAvailable
viewfunction sharesAvailable(uint256 clubId) view returns (uint256)
sharesToGive
viewfunction sharesToGive(uint256 clubId, uint256 num) view returns (uint256)
smcMintedPerUsd
viewfunction smcMintedPerUsd() view returns (uint256)
smcToMintForPayment
viewfunction smcToMintForPayment(uint256 paid) view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
swapper
viewfunction swapper() view returns (address)
tier
viewfunction tier() view returns (string)
token
viewfunction token() view returns (address)
totalSharesAvailable
viewfunction totalSharesAvailable() view returns (uint256)
UPDATE_SEED_ROLE
viewfunction UPDATE_SEED_ROLE() view returns (bytes32)
weth
viewfunction weth() view returns (address)
addClub
nonpayablefunction addClub(uint256 clubId)
addClubs
nonpayablefunction addClubs(uint256[] ids)
configure
nonpayablefunction configure(uint256 sec, uint256 np, uint256 ns)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
mint
nonpayablefunction mint(tuple mintData, string receiver)
mintWithSwap
payablefunction mintWithSwap(tuple mintData, string receiver, address inputToken, uint256 inputAmount, bytes swapData) payable
pause
nonpayablefunction pause()
removeClub
nonpayablefunction removeClub(uint256 clubId)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
setKycThreshold
nonpayablefunction setKycThreshold(uint256 newThreshold)
setPayee
nonpayablefunction setPayee(address p)
setPricing
nonpayablefunction setPricing(tuple[] p)
setRefBonus
nonpayablefunction setRefBonus(uint256 b, uint256 s)
setSanctionsList
nonpayablefunction setSanctionsList(address newList)
setSmcMintRate
nonpayablefunction setSmcMintRate(uint256 r)
unpause
nonpayablefunction unpause()
unpauseClubSales
nonpayablefunction unpauseClubSales(uint256 n) returns (uint256)
updateSeed
nonpayablefunction updateSeed()
events
ClubAdded
event ClubAdded(uint256 indexed clubId)
ClubRemoved
event ClubRemoved(uint256 indexed clubId)
ClubSalePaused
event ClubSalePaused(uint256 indexed clubId)
ClubSaleUnpaused
event ClubSaleUnpaused(uint256 indexed clubId)
Configured
event Configured(uint256 secondaryClubs, uint256 numSharesPrimary, uint256 numSharesSecondary)
KycThresholdUpdated
event KycThresholdUpdated(uint256 newThreshold)
PacksBought
event PacksBought(address indexed buyer, string receiver, uint256 indexed primaryClubId, uint256 numPacks, uint256 cost)
Paused
event Paused(address account)
PayeeChanged
event PayeeChanged(address payee)
PricingUpdated
event PricingUpdated((uint256 num, uint256 price)[] steps)
RefBonusUpdated
event RefBonusUpdated(uint256 refBonusBps, uint256 refBonusSeconds)
ReferralBonusGiven
event ReferralBonusGiven(string buyer, string referrer, uint256 clubId, uint256 numShares, uint256 numPacksBought, uint256 cost)
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)
SanctionsListUpdated
event SanctionsListUpdated(address newList)
SeedUpdated
event SeedUpdated(bytes32 seed)
SmcMintRateUpdated
event SmcMintRateUpdated(uint256 newSmcPerUsd)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x61016060405234801561001157600080fd5b50604051615d14380380615d14833981016040819052610030916103a9565b6001600160a01b0383166080526002805460ff19169055878787878787610058600033610195565b6001600160a01b038087166101005285811660a05284811660c052831660e0526003610084838261057e565b50600019600e556100936101bc565b5050506001600160a01b038086166101205284166101408190526040805163439a7da760e01b8152905191945063439a7da7935060048082019350602092918290030181865afa1580156100eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061010f919061063c565b6001600160a01b0316886001600160a01b0316146101885760405162461bcd60e51b815260206004820152602c60248201527f5377617050726f766964657220646f6573206e6f74206f75747075742074686560448201526b103934b3b43a103a37b5b2b760a11b606482015260840160405180910390fd5b505050505050505061072a565b61019f8282610228565b60008281526001602052604090206101b790826102c8565b505050565b60036101c9600143610660565b406040516020016101db929190610681565b60408051808303601f19018152908290528051602091820120601281905582527fd6de7b982ec913347822f1dfb43c35d7be19a927dc2ee7e5db6986134e250b5b910160405180910390a1565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166102c4576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556102836102e6565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006102dd836001600160a01b0384166102f5565b90505b92915050565b60006102f0610344565b905090565b600081815260018301602052604081205461033c575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556102e0565b5060006102e0565b6080516000906001600160a01b03163303610366575060131936013560601c90565b503390565b6001600160a01b038116811461038057600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b80516103a48161036b565b919050565b600080600080600080600080610100898b0312156103c657600080fd5b88516103d18161036b565b60208a01519098506103e28161036b565b60408a01519097506103f38161036b565b60608a01519096506104048161036b565b60808a01519095506001600160401b0381111561042057600080fd5b8901601f81018b1361043157600080fd5b80516001600160401b0381111561044a5761044a610383565b604051601f8201601f19908116603f011681016001600160401b038111828210171561047857610478610383565b6040528181528282016020018d101561049057600080fd5b60005b828110156104af57602081850181015183830182015201610493565b506000602083830101528096505050506104cb60a08a01610399565b92506104d960c08a01610399565b91506104e760e08a01610399565b90509295985092959890939650565b600181811c9082168061050a57607f821691505b60208210810361052a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156101b757806000526020600020601f840160051c810160208510156105575750805b601f840160051c820191505b818110156105775760008155600101610563565b5050505050565b81516001600160401b0381111561059757610597610383565b6105ab816105a584546104f6565b84610530565b6020601f8211600181146105df57600083156105c75750848201515b600019600385901b1c1916600184901b178455610577565b600084815260208120601f198516915b8281101561060f57878501518255602094850194600190920191016105ef565b508482101561062d5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b60006020828403121561064e57600080fd5b81516106598161036b565b9392505050565b818103818111156102e057634e487b7160e01b600052601160045260246000fd5b7f536f636365727665727365207061636b2d73616c652073656564000000000000815260008084546106b2816104f6565b6001821680156106c957600181146106e45761071a565b60ff198316601a870152601a8215158302870101935061071a565b87600052602060002060005b8381101561070f578154888201601a01526001909101906020016106f0565b5050601a8287010193505b5050509283525050602001919050565b60805160a05160c05160e0516101005161012051610140516154cc610848600039600081816105f401528181611995015281816120c80152818161225e0152818161237b0152818161243a015281816124d60152818161258701526127430152600081816103f2015281816107010152818161200601528181612029015281816120f70152612610015260008181610d45015281816110dd0152818161191e01528181611e4e0152818161240101526128f70152600081816107ab01526136250152600081816107df01528181611843015261355c015260008181610500015281816111c30152818161158b01528181611b2a015281816133ef015281816137c101526138e801526000818161081e0152613df501526154cc6000f3fe6080604052600436106103e25760003560e01c80636945d8001161020d578063bdad294511610128578063df23774e116100bb578063f0296bfa1161008a578063faf4e3cc1161006f578063faf4e3cc14610cfd578063fb722c2114610d13578063fc0c546a14610d3357600080fd5b8063f0296bfa14610cb0578063f7575a4b14610cd057600080fd5b8063df23774e14610c0e578063dff812ca14610c2e578063e526d16714610c62578063ec571c6a14610c9057600080fd5b8063db38e4a2116100f7578063db38e4a214610ba3578063dd8c7d2b14610bb9578063dd9ad9fe14610bd9578063deb15fe514610bf957600080fd5b8063bdad294514610b23578063ca15c87314610b36578063d1905efc14610b56578063d547741f14610b8357600080fd5b80639010d07c116101a0578063aa7de9121161016f578063aa7de91214610aae578063ae90b21314610ace578063ba338c7114610aee578063bb1953fe14610b0e57600080fd5b80639010d07c14610a1557806391d1485414610a3557806393c30f9f14610a79578063a217fddf14610a9957600080fd5b8063720da702116101dc578063720da7021461099e57806374f14584146109be5780637e2a4fb9146109e05780638456cb5914610a0057600080fd5b80636945d800146109275780636b1da9931461095c5780636d810509146109725780636f58fe101461098857600080fd5b80633f4ba83a116102fd578063572b6c05116102905780635fcf52551161025f5780635fcf5255146108ae57806360a3bdd9146108c457806363cd7adb146108da57806365299543146108fa57600080fd5b8063572b6c051461080157806358bc83371461084e5780635c2371ba146108765780635c975abb1461089657600080fd5b806347dc8bf1116102cc57806347dc8bf11461076357806349dc5e8d146107795780634d9aac2e146107995780635273334f146107cd57600080fd5b80633f4ba83a146106da5780633fc8cef3146106ef578063410459ad1461072357806341d601281461074357600080fd5b80632495a90b11610375578063329d84e711610344578063329d84e714610658578063352349631461067857806336568abe1461069857806338b4e338146106b857600080fd5b80632495a90b146105c25780632b3297f9146105e25780632b41ceb5146106165780632f2ff15d1461063857600080fd5b80630cc49b02116103b15780630cc49b021461053a57806316f4d0221461055a57806324799aad1461057c578063248a9ca31461059257600080fd5b806301ffc9a71461046b5780630344118f146104a057806306369883146104ce57806307546172146104ee57600080fd5b3661046657336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104645760405162461bcd60e51b815260206004820152601d60248201527f7061796d656e74206973206e6f742045544820756e7772617070696e6700000060448201526064015b60405180910390fd5b005b600080fd5b34801561047757600080fd5b5061048b6104863660046143bd565b610d67565b60405190151581526020015b60405180910390f35b3480156104ac57600080fd5b506104c06104bb3660046143e7565b610dab565b604051908152602001610497565b3480156104da57600080fd5b506104c06104e9366004614409565b610dd0565b3480156104fa57600080fd5b506105227f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610497565b34801561054657600080fd5b5061048b610555366004614434565b610df1565b34801561056657600080fd5b5061056f610f27565b60405161049791906144b9565b34801561058857600080fd5b506104c060075481565b34801561059e57600080fd5b506104c06105ad366004614409565b60009081526020819052604090206001015490565b3480156105ce57600080fd5b506104646105dd3660046144cc565b610fb5565b3480156105ee57600080fd5b506105227f000000000000000000000000000000000000000000000000000000000000000081565b34801561062257600080fd5b506104c060008051602061547783398151915281565b34801561064457600080fd5b50610464610653366004614558565b611007565b34801561066457600080fd5b506104646106733660046145d1565b611031565b34801561068457600080fd5b506104c0610693366004614409565b6111a4565b3480156106a457600080fd5b506104646106b3366004614558565b611253565b3480156106c457600080fd5b506106cd6112ef565b604051610497919061463f565b3480156106e657600080fd5b50610464611362565b3480156106fb57600080fd5b506105227f000000000000000000000000000000000000000000000000000000000000000081565b34801561072f57600080fd5b5061046461073e366004614697565b611385565b34801561074f57600080fd5b5061046461075e366004614409565b611400565b34801561076f57600080fd5b506104c060095481565b34801561078557600080fd5b50610464610794366004614697565b611421565b3480156107a557600080fd5b506105227f000000000000000000000000000000000000000000000000000000000000000081565b3480156107d957600080fd5b506105227f000000000000000000000000000000000000000000000000000000000000000081565b34801561080d57600080fd5b5061048b61081c366004614697565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b34801561085a57600080fd5b5061052273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561088257600080fd5b506104c0610891366004614409565b611494565b3480156108a257600080fd5b5060025460ff1661048b565b3480156108ba57600080fd5b506104c0600c5481565b3480156108d057600080fd5b506104c0600e5481565b3480156108e657600080fd5b506104c06108f53660046143e7565b61156e565b34801561090657600080fd5b5061091a6109153660046146b4565b61175c565b6040516104979190614726565b34801561093357600080fd5b50610947610942366004614409565b6118ec565b60408051928352602083019190915201610497565b34801561096857600080fd5b506104c061271081565b34801561097e57600080fd5b506104c060065481565b34801561099457600080fd5b506104c0600b5481565b3480156109aa57600080fd5b506104c06109b9366004614906565b61191a565b3480156109ca57600080fd5b506109d3611a18565b6040516104979190614a47565b3480156109ec57600080fd5b506104646109fb366004614a5a565b611a70565b348015610a0c57600080fd5b50610464611c60565b348015610a2157600080fd5b50610522610a303660046143e7565b611c80565b348015610a4157600080fd5b5061048b610a50366004614558565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610a8557600080fd5b506104c0610a94366004614409565b611c9f565b348015610aa557600080fd5b506104c0600081565b348015610aba57600080fd5b50610464610ac9366004614409565b611d3f565b348015610ada57600080fd5b50600454610522906001600160a01b031681565b348015610afa57600080fd5b50610464610b09366004614409565b611d8c565b348015610b1a57600080fd5b50610464611dad565b610464610b31366004614ac1565b611ddf565b348015610b4257600080fd5b506104c0610b51366004614409565b6127ae565b348015610b6257600080fd5b506104c0610b71366004614409565b60106020526000908152604090205481565b348015610b8f57600080fd5b50610464610b9e366004614558565b6127c5565b348015610baf57600080fd5b506104c0600a5481565b348015610bc557600080fd5b50610464610bd4366004614b7e565b6127ea565b348015610be557600080fd5b50610464610bf4366004614409565b61284f565b348015610c0557600080fd5b506109d361289c565b348015610c1a57600080fd5b506104c0610c29366004614409565b6128f2565b348015610c3a57600080fd5b506104c07f248817aaaeeac7a0821edf8ad1d6bff5bf3d0f2300da8728b11f5eeb595d256181565b348015610c6e57600080fd5b50610c82610c7d366004614baa565b61299d565b604051610497929190614cb7565b348015610c9c57600080fd5b50600d54610522906001600160a01b031681565b348015610cbc57600080fd5b50610464610ccb3660046143e7565b6129fc565b348015610cdc57600080fd5b50610cf0610ceb3660046143e7565b612a5c565b6040516104979190614cd9565b348015610d0957600080fd5b506104c060085481565b348015610d1f57600080fd5b506104c0610d2e366004614409565b61310a565b348015610d3f57600080fd5b506105227f000000000000000000000000000000000000000000000000000000000000000081565b60006001600160e01b031982167f5a05180f000000000000000000000000000000000000000000000000000000001480610da55750610da58261311a565b92915050565b600080610db7846111a4565b9050828110610dc65782610dc8565b805b949350505050565b60118181548110610de057600080fd5b600091825260209091200154905081565b600080610e0383356020850135612a5c565b905082604001358160400151141580610e2457508260600135816060015114155b15610e325750600092915050565b610e3f6080840184614cec565b905081608001515114610e555750600092915050565b60005b816080015151811015610f1d57610e726080850185614cec565b82818110610e8257610e82614d36565b9050604002016000013582608001518281518110610ea257610ea2614d36565b60200260200101516000015114610ebd575060009392505050565b610eca6080850185614cec565b82818110610eda57610eda614d36565b9050604002016020013582608001518281518110610efa57610efa614d36565b60200260200101516020015114610f15575060009392505050565b600101610e58565b5060019392505050565b60038054610f3490614d4c565b80601f0160208091040260200160405190810160405280929190818152602001828054610f6090614d4c565b8015610fad5780601f10610f8257610100808354040283529160200191610fad565b820191906000526020600020905b815481529060010190602001808311610f9057829003601f168201915b505050505081565b600080516020615477833981519152610fcd81613181565b60005b8281101561100157610ff9848483818110610fed57610fed614d36565b90506020020135613192565b600101610fd0565b50505050565b60008281526020819052604090206001015461102281613181565b61102c838361325b565b505050565b61103961327d565b6004546001600160a01b03166110915760405162461bcd60e51b815260206004820152601360248201527f6e6f20706179656520636f6e6669677572656400000000000000000000000000604482015260640161045b565b600061109b6132d2565b90506040840135156111985760048054604080516323b872dd60e01b81526001600160a01b0385811694820194909452918316602483015286013560448201527f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd906064016020604051808303816000875af1158015611128573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114c9190614d90565b6111985760405162461bcd60e51b815260206004820152601a60248201527f6661696c656420746f207472616e73666572207061796d656e74000000000000604482015260640161045b565b611001848484846132e1565b600654604051632532963960e21b8152600481018390526000919082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906394ca58e490602401602060405180830381865afa158015611212573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112369190614dab565b9050818110611249575060009392505050565b610dc88183614dda565b61125b6132d2565b6001600160a01b0316816001600160a01b0316146112e15760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161045b565b6112eb8282613955565b5050565b60606005805480602002602001604051908101604052809291908181526020016000905b8282101561135957838290600052602060002090600202016040518060400160405290816000820154815260200160018201548152505081526020019060010190611313565b50505050905090565b60008051602061547783398151915261137a81613181565b611382613977565b50565b60008051602061547783398151915261139d81613181565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527f2053f52cc4bae36f993510e31596b2873fbb03ad574710ee044429b73ceb9aff906020015b60405180910390a15050565b60008051602061547783398151915261141881613181565b6112eb826139d0565b60008051602061547783398151915261143981613181565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fb47193b090556b6d1d36f48b4299a6d170310487ba8ffd4cd5a69e4e0ac95a5f906020016113f4565b60006000805160206154778339815191526114ae81613181565b60005b601154158015906114c157508381105b156115655760118054600091906114da90600190614dda565b815481106114ea576114ea614d36565b9060005260206000200154905061150081613192565b601180548061151157611511614ded565b600190038181906000526020600020016000905590558161153190614e03565b60405190925081907f34d760f77882d6ab11ac466c634cf6ec2fdad6e4acc25132500bf8757c4837a990600090a2506114b1565b91505b50919050565b604051632532963960e21b815260048101839052600090819081907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906394ca58e490602401602060405180830381865afa1580156115da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115fe9190614dab565b905060005b6005548110156117055760006005828154811061162257611622614d36565b906000526020600020906002020160000154905080831061164f576116478184614dda565b9250506116fd565b82156116665761165f8382614dda565b9050600092505b8581106116b357856005838154811061168157611681614d36565b90600052602060002090600202016001015461169d9190614e1c565b6116a79085614e33565b93506000955050611705565b80600583815481106116c7576116c7614d36565b9060005260206000209060020201600101546116e39190614e1c565b6116ed9085614e33565b93506116f98187614dda565b9550505b600101611603565b5083156117545760405162461bcd60e51b815260206004820152601b60248201527f6e6f7420656e6f7567682073686172657320617661696c61626c650000000000604482015260640161045b565b509392505050565b600d546000906001600160a01b0316158015906117fb5750600d546040517fdf592f7d0000000000000000000000000000000000000000000000000000000081526001600160a01b0387811660048301529091169063df592f7d90602401602060405180830381865afa1580156117d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fb9190614d90565b1561180857506001610dc8565b6040517f38266b220000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301526000917f0000000000000000000000000000000000000000000000000000000000000000909116906338266b22906024016040805180830381865afa15801561188b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118af9190614e46565b905080602001511580156118d15750600e5481516118ce908590614e33565b10155b156118e0576002915050610dc8565b50600095945050505050565b600581815481106118fc57600080fd5b60009182526020909120600290910201805460019091015490915082565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316846001600160a01b03160361196057506040840151610dc8565b60408086015190517ffda1c5e70000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163fda1c5e7916119ce91889188908890600401614ea7565b602060405180830381865afa1580156119eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0f9190614dab565b95945050505050565b6060600f805480602002602001604051908101604052809291908181526020018280548015611a6657602002820191906000526020600020905b815481526020019060010190808311611a52575b5050505050905090565b600080516020615477833981519152611a8881613181565b611a9460056000614382565b6000805b83811015611b2057848482818110611ab257611ab2614d36565b611ac59260409091020135905083614e33565b91506005858583818110611adb57611adb614d36565b835460018101855560009485526020909420604090910292909201926002029091019050611b16828281358155602090910135600190910155565b5050600101611a98565b50806006819055507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166301f091c66040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b86573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611baa9190614dab565b6006541115611c215760405162461bcd60e51b815260206004820152603460248201527f6d6f72652073686172657320636f6e6669677572656420696e2070726963696e60448201527f67207468616e2061726520617661696c61626c65000000000000000000000000606482015260840161045b565b7fdefd35e2cd7c5e7f7f2b84c28a3ae7e5d792f671360cfbb63d406e1ba7b5fb2b8484604051611c52929190614ed0565b60405180910390a150505050565b600080516020615477833981519152611c7881613181565b611382613b0e565b6000828152600160205260408120611c989083613b4c565b9392505050565b6000611cad60025460ff1690565b15611cba57506000919050565b6004546001600160a01b0316611cd257506000919050565b6000828152601060205260408120549003611cef57506000919050565b600854600003611d0157506000919050565b6000611d0c836111a4565b905080600003611d1f5750600092915050565b600854811015611d325750600192915050565b600854611c989082614f21565b600080516020615477833981519152611d5781613181565b600e8290556040518281527fbbada086eba65ba4bd2fb126e9ee4c0c0c42e193e0016bc6a40e00fa3e020006906020016113f4565b600080516020615477833981519152611da481613181565b6112eb82613192565b7f248817aaaeeac7a0821edf8ad1d6bff5bf3d0f2300da8728b11f5eeb595d2561611dd781613181565b611382613b58565b611de761327d565b6004546001600160a01b0316611e3f5760405162461bcd60e51b815260206004820152601360248201527f6e6f20706179656520636f6e6669677572656400000000000000000000000000604482015260640161045b565b60408701356001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690861603611f5d573415611ed75760405162461bcd60e51b815260206004820152602960248201527f7061796d656e74206f6e6c7920616c6c6f77656420666f72206e617469766520604482015268115512081a5b9c1d5d60ba1b606482015260840161045b565b808414611f4c5760405162461bcd60e51b815260206004820152603060248201527f77726f6e6720696e707574416d6f756e7420737570706c69656420666f72206e60448201527f6f6e2d7377617070696e67206d696e7400000000000000000000000000000000606482015260840161045b565b611f57888888611031565b506127a5565b6000611f676132d2565b90506001600160a01b03861673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121df578534146120045760405162461bcd60e51b815260206004820152602360248201527f7061796d656e7420646f6573206e6f74206d6174636820696e70757420616d6f60448201527f756e740000000000000000000000000000000000000000000000000000000000606482015260840161045b565b7f000000000000000000000000000000000000000000000000000000000000000096507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0876040518263ffffffff1660e01b81526004016000604051808303818588803b15801561208257600080fd5b505af1158015612096573d6000803e3d6000fd5b50506040517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018b90527f000000000000000000000000000000000000000000000000000000000000000016935063a9059cbb925060440190506020604051808303816000875af1158015612144573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121689190614d90565b6121da5760405162461bcd60e51b815260206004820152602260248201527f6661696c656420746f207472616e73666572205745544820746f20737761707060448201527f6572000000000000000000000000000000000000000000000000000000000000606482015260840161045b565b61234b565b341561223f5760405162461bcd60e51b815260206004820152602960248201527f7061796d656e74206f6e6c7920616c6c6f77656420666f72206e617469766520604482015268115512081a5b9c1d5d60ba1b606482015260840161045b565b6040516323b872dd60e01b81526001600160a01b0383811660048301527f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018890528816906323b872dd906064016020604051808303816000875af11580156122b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122da9190614d90565b61234b5760405162461bcd60e51b8152602060048201526024808201527f7472616e7366657272696e672074686520696e70757420746f6b656e7320666160448201527f696c656400000000000000000000000000000000000000000000000000000000606482015260840161045b565b6040517fe2367e9f0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063e2367e9f906123b6908a9087908a908a90600401614ea7565b600060405180830381600087803b1580156123d057600080fd5b505af11580156123e4573d6000803e3d6000fd5b505060048054604051631ec81aa160e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116938201939093526024810188905290821660448201527f0000000000000000000000000000000000000000000000000000000000000000909116925063f640d5089150606401600060405180830381600087803b15801561248257600080fd5b505af1158015612496573d6000803e3d6000fd5b505050506124a68a8a8a856132e1565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166004830152600091908916906370a0823190602401602060405180830381865afa158015612529573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254d9190614dab565b905080156127a057811561271557604051631ec81aa160e31b81526001600160a01b038981166004830152602482018390523060448301527f0000000000000000000000000000000000000000000000000000000000000000169063f640d50890606401600060405180830381600087803b1580156125cb57600080fd5b505af11580156125df573d6000803e3d6000fd5b50506040517f2e1a7d4d000000000000000000000000000000000000000000000000000000008152600481018490527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169250632e1a7d4d9150602401600060405180830381600087803b15801561265e57600080fd5b505af1158015612672573d6000803e3d6000fd5b50505050600080846001600160a01b03168360405160006040518083038185875af1925050503d80600081146126c4576040519150601f19603f3d011682016040523d82523d6000602084013e6126c9565b606091505b509150915081816040516020016126e09190614f35565b6040516020818303038152906040529061270d5760405162461bcd60e51b815260040161045b91906144b9565b5050506127a0565b604051631ec81aa160e31b81526001600160a01b0389811660048301526024820183905284811660448301527f0000000000000000000000000000000000000000000000000000000000000000169063f640d50890606401600060405180830381600087803b15801561278757600080fd5b505af115801561279b573d6000803e3d6000fd5b505050505b505050505b50505050505050565b6000818152600160205260408120610da590613bbf565b6000828152602081905260409020600101546127e081613181565b61102c8383613955565b60008051602061547783398151915261280281613181565b60078490556008839055600982905560408051858152602081018590529081018390527f0ba31b8aa01604da9e792013cbb790899e203d496cae57a3b0d224e26be452ae90606001611c52565b60008051602061547783398151915261286781613181565b600c8290556040518281527f2fb7f7712ddeb2ce5c7dfdce8c795cdf9ad09375745275ca90fbf310d87b260b906020016113f4565b60606011805480602002602001604051908101604052809291908181526020018280548015611a665760200282019190600052602060002090815481526020019060010190808311611a52575050505050905090565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612953573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129779190614fa0565b61298290600a6150aa565b905080600c54846129939190614e1c565b611c989190614f21565b6129d66040518060c001604052806000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60006129e28787612a5c565b91506129f08286868661191a565b90509550959350505050565b600080516020615477833981519152612a1481613181565b600a839055600b82905560408051848152602081018490527f489184f26544a8e00dabc0d9aceebd56e2ab001ba3a0b8634174a63ded0a806f910160405180910390a1505050565b612a956040518060c001604052806000815260200160008152602001600081526020016000815260200160608152602001606081525090565b60008381526010602052604090205480612b175760405162461bcd60e51b815260206004820152602560248201527f7072696d61727920636c7562206973206e6f742070617274206f66207468697360448201527f2074696572000000000000000000000000000000000000000000000000000000606482015260840161045b565b612b20816150b9565b90506000612b3685856008546104bb9190614e1c565b905060008111612bae5760405162461bcd60e51b815260206004820152602960248201527f6e6f2073686172657320746f2067697665206f757420696e207468652070726960448201527f6d61727920636c75620000000000000000000000000000000000000000000000606482015260840161045b565b83600854612bbc9190614e1c565b811480612bc95750836001145b612c3b5760405162461bcd60e51b815260206004820152603a60248201527f7072696d61727920636c7562206973206e65617220736f6c64206f75742c206f60448201527f6e6c79206f6e65207061636b2063616e20626520626f75676874000000000000606482015260840161045b565b600754601490811015612c905760405162461bcd60e51b815260206004820152601760248201527f6d6178497465726174696f6e7320746f6f20736d616c6c000000000000000000604482015260640161045b565b60006007546001612ca19190614e33565b67ffffffffffffffff811115612cb957612cb961474e565b604051908082528060200260200182016040528015612cfe57816020015b6040805180820190915260008082526020820152815260200190600190039081612cd75790505b50905060008267ffffffffffffffff811115612d1c57612d1c61474e565b604051908082528060200260200182016040528015612d45578160200160208202803683370190505b5090506000612d58600f80549050613bc9565b9050612d648187613c4a565b888752602080880189905260006040808a0182905280518082019091528b81529182018790528451859190612d9b57612d9b614d36565b6020026020010181905250612db0898661156e565b87604001818151612dc19190614e33565b9052506012546040516001916000918291612de9918e90602001918252602082015260400190565b6040516020818303038152906040528051906020012060001c905060008b600954612e149190614e1c565b90506000805b600083118015612e365750600754612e33906001614e33565b86105b8015612e4d5750600f54612e4b826001614e33565b105b8015612e5857508982105b15612f9b57600f54600090612e6d90866150d0565b90506000600f8281548110612e8457612e84614d36565b9060005260206000200154905085604051602001612ea491815260200190565b60408051601f1981840301815291905280516020909101209550612ec784614e03565b9350612ed38983613c8a565b15612edf575050612e1a565b612ee98983613c4a565b612ef38186610dab565b9c508c15612f575760405180604001604052808281526020018e8152508b8981518110612f2257612f22614d36565b6020026020010181905250612f37818e61156e565b8f604001818151612f489190614e33565b905250612f5488614e03565b97505b848d1015612f8957808a8881518110612f7257612f72614d36565b6020908102919091010152612f8687614e03565b96505b612f9283614e03565b92505050612e1a565b8567ffffffffffffffff811115612fb457612fb461474e565b604051908082528060200260200182016040528015612ff957816020015b6040805180820190915260008082526020820152815260200190600190039081612fd25790505b5060808e015260005b8681101561304d5789818151811061301c5761301c614d36565b60200260200101518e60800151828151811061303a5761303a614d36565b6020908102919091010152600101613002565b508467ffffffffffffffff8111156130675761306761474e565b604051908082528060200260200182016040528015613090578160200160208202803683370190505b5060a08e015260005b858110156130e4578881815181106130b3576130b3614d36565b60200260200101518e60a0015182815181106130d1576130d1614d36565b6020908102919091010152600101613099565b506130f28d604001516128f2565b60608e0152509a9d9c50505050505050505050505050565b600f8181548110610de057600080fd5b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610da557507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0319831614610da5565b6113828161318d6132d2565b613cca565b600081815260106020526040902054156131ee5760405162461bcd60e51b815260206004820152601a60248201527f636c756220697320616c726561647920636f6e66696775726564000000000000604482015260640161045b565b600f80546001810182557f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac802018290555460008281526010602052604080822092909255905182917f872e78d068390dfaf4270cd14d345534233e27fc2094c849eb78ea20ddbef75991a250565b6132658282613d3d565b600082815260016020526040902061102c9082613ddc565b60025460ff16156132d05760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161045b565b565b60006132dc613df1565b905090565b6132ea84610df1565b61335c5760405162461bcd60e51b815260206004820152602960248201527f70726f7669646564205061636b4d696e742064617461206973206e6f206c6f6e60448201527f6765722076616c69640000000000000000000000000000000000000000000000606482015260840161045b565b600061336e828585886040013561175c565b600281111561337f5761337f614710565b146133cc5760405162461bcd60e51b815260206004820152601760248201527f6e6f7420616c6c6f77656420746f207075726368617365000000000000000000604482015260640161045b565b60005b6133dc6080860186614cec565b90508110156134c0576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016636726816f6134216080880188614cec565b8481811061343157613431614d36565b604002919091013590506134486080890189614cec565b8581811061345857613458614d36565b9050604002016020013587876040518563ffffffff1660e01b815260040161348394939291906150e4565b600060405180830381600087803b15801561349d57600080fd5b505af11580156134b1573d6000803e3d6000fd5b505050508060010190506133cf565b5060005b6134d160a0860186615104565b905081101561352a5760006134e960a0870187615104565b838181106134f9576134f9614d36565b905060200201359050600061350d826111a4565b9050806000036135205761352082613e35565b50506001016134c4565b50604080517fa72ae0fa0000000000000000000000000000000000000000000000000000000081526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163a72ae0fa9161359a91859188918891908b01359060040161514e565b600060405180830381600087803b1580156135b457600080fd5b505af11580156135c8573d6000803e3d6000fd5b505050508360000135816001600160a01b03167f45623825c4a824708ba911f81929dad82b539ad18d303009f6af54dade1286d58585886020013589604001356040516136189493929190615182565b60405180910390a36000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637c33aa8086866040518363ffffffff1660e01b81526004016136719291906151a9565b600060405180830381865afa15801561368e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526136b691908101906151bd565b915091508080156136d8575042600b5483602001516136d59190614e33565b10155b156138a557853560006136ee6080890189614cec565b9050116136fd576136fd6152a0565b61370a6080880188614cec565b600081811061371b5761371b614d36565b905060400201600001358114613733576137336152a0565b600a546000906127109061374a60808b018b614cec565b600081811061375b5761375b614d36565b9050604002016020013561376f9190614e1c565b6137799190614f21565b905060006137878383610dab565b905080156138a15784516040517f6726816f0000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691636726816f916137f99187918691906004016152b6565b600060405180830381600087803b15801561381357600080fd5b505af1158015613827573d6000803e3d6000fd5b505050507f2243b0d1ed97d3337c82e1cdffee1e6a3b05b6321be3571ec53f8c48afa5ec3c8888876000015186858e602001358f6040013560405161387297969594939291906152d5565b60405180910390a1818110156138a15761388b836111a4565b15613898576138986152a0565b6138a183613e35565b5050505b60608601351561394d576040517f1c239b5700000000000000000000000000000000000000000000000000000000815286356004820152606087013560248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690631c239b5790604401600060405180830381600087803b15801561393457600080fd5b505af1158015613948573d6000803e3d6000fd5b505050505b505050505050565b61395f8282613e9d565b600082815260016020526040902061102c9082613f3a565b61397f613f4f565b6002805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6139b26132d2565b6040516001600160a01b0390911681526020015b60405180910390a1565b60008181526010602052604090205480613a2c5760405162461bcd60e51b815260206004820152601760248201527f74686520636c756220646f6573206e6f74206578697374000000000000000000604482015260640161045b565b600f54811015613aa757600f805460009190613a4a90600190614dda565b81548110613a5a57613a5a614d36565b9060005260206000200154905080600f600184613a779190614dda565b81548110613a8757613a87614d36565b600091825260208083209091019290925591825260109052604090208190555b600082815260106020526040812055600f805480613ac757613ac7614ded565b60019003818190600052602060002001600090559055817fa4e38bc501f8599eb8cb1dcb9f16d04b5185369c8a453d5c8d295767a2a203b160405160405180910390a25050565b613b1661327d565b6002805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586139b26132d2565b6000611c988383613fa1565b6003613b65600143614dda565b40604051602001613b77929190615322565b60408051808303601f19018152908290528051602091820120601281905582527fd6de7b982ec913347822f1dfb43c35d7be19a927dc2ee7e5db6986134e250b5b91016139c6565b6000610da5825490565b6040805180820190915260608152602081018290526101006001613bed8285614e33565b613bf79190614dda565b613c019190614f21565b67ffffffffffffffff811115613c1957613c1961474e565b604051908082528060200260200182016040528015613c42578160200160208202803683370190505b508152919050565b600080613c578484613fcb565b915091508084600001518381518110613c7257613c72614d36565b60200260200101818151179150818152505050505050565b6000806000613c998585613fcb565b9150915060008186600001518481518110613cb657613cb6614d36565b602002602001015116119250505092915050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166112eb57613cfb8161404d565b613d0683602061405f565b604051602001613d179291906153f5565b60408051601f198184030181529082905262461bcd60e51b825261045b916004016144b9565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166112eb576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055613d986132d2565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000611c98836001600160a01b038416614240565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303613e30575060131936013560601c90565b503390565b613e3e816139d0565b6011805460018101825560009182527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c680182905560405182917f8666a45c99080911c0d9ae643b984b424970a10021546e25400b61a1b69a44dc91a250565b6000828152602081815260408083206001600160a01b038516845290915290205460ff16156112eb576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055613ef66132d2565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6000611c98836001600160a01b03841661428f565b60025460ff166132d05760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161045b565b6000826000018281548110613fb857613fb8614d36565b9060005260206000200154905092915050565b600080836020015183106140215760405162461bcd60e51b815260206004820152601360248201527f696e646578206f7574206f6620626f756e647300000000000000000000000000604482015260640161045b565b61402d61010084614f21565b9150600061403d610100856150d0565b9295600190931b94509192505050565b6060610da56001600160a01b03831660145b6060600061406e836002614e1c565b614079906002614e33565b67ffffffffffffffff8111156140915761409161474e565b6040519080825280601f01601f1916602001820160405280156140bb576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106140f2576140f2614d36565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811061413d5761413d614d36565b60200101906001600160f81b031916908160001a9053506000614161846002614e1c565b61416c906001614e33565b90505b60018111156141f1577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106141ad576141ad614d36565b1a60f81b8282815181106141c3576141c3614d36565b60200101906001600160f81b031916908160001a90535060049490941c936141ea816150b9565b905061416f565b508315610dc65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161045b565b600081815260018301602052604081205461428757508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610da5565b506000610da5565b600081815260018301602052604081205480156143785760006142b3600183614dda565b85549091506000906142c790600190614dda565b905081811461432c5760008660000182815481106142e7576142e7614d36565b906000526020600020015490508087600001848154811061430a5761430a614d36565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061433d5761433d614ded565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610da5565b6000915050610da5565b508054600082556002029060005260206000209081019061138291905b808211156143b9576000808255600182015560020161439f565b5090565b6000602082840312156143cf57600080fd5b81356001600160e01b031981168114610dc657600080fd5b600080604083850312156143fa57600080fd5b50508035926020909101359150565b60006020828403121561441b57600080fd5b5035919050565b600060c0828403121561156857600080fd5b60006020828403121561444657600080fd5b813567ffffffffffffffff81111561445d57600080fd5b610dc884828501614422565b60005b8381101561448457818101518382015260200161446c565b50506000910152565b600081518084526144a5816020860160208601614469565b601f01601f19169290920160200192915050565b602081526000611c98602083018461448d565b600080602083850312156144df57600080fd5b823567ffffffffffffffff8111156144f657600080fd5b8301601f8101851361450757600080fd5b803567ffffffffffffffff81111561451e57600080fd5b8560208260051b840101111561453357600080fd5b6020919091019590945092505050565b6001600160a01b038116811461138257600080fd5b6000806040838503121561456b57600080fd5b82359150602083013561457d81614543565b809150509250929050565b60008083601f84011261459a57600080fd5b50813567ffffffffffffffff8111156145b257600080fd5b6020830191508360208285010111156145ca57600080fd5b9250929050565b6000806000604084860312156145e657600080fd5b833567ffffffffffffffff8111156145fd57600080fd5b61460986828701614422565b935050602084013567ffffffffffffffff81111561462657600080fd5b61463286828701614588565b9497909650939450505050565b602080825282518282018190526000918401906040840190835b8181101561468c5761467683855180518252602090810151910152565b6020939093019260409290920191600101614659565b509095945050505050565b6000602082840312156146a957600080fd5b8135610dc681614543565b600080600080606085870312156146ca57600080fd5b84356146d581614543565b9350602085013567ffffffffffffffff8111156146f157600080fd5b6146fd87828801614588565b9598909750949560400135949350505050565b634e487b7160e01b600052602160045260246000fd5b602081016003831061474857634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156147875761478761474e565b60405290565b60405160c0810167ffffffffffffffff811182821017156147875761478761474e565b604051601f8201601f1916810167ffffffffffffffff811182821017156147d9576147d961474e565b604052919050565b600067ffffffffffffffff8211156147fb576147fb61474e565b5060051b60200190565b600082601f83011261481657600080fd5b8135614829614824826147e1565b6147b0565b8082825260208201915060208360061b86010192508583111561484b57600080fd5b602085015b8381101561488e576040818803121561486857600080fd5b614870614764565b81358152602080830135818301529084529290920191604001614850565b5095945050505050565b600082601f8301126148a957600080fd5b81356148b7614824826147e1565b8082825260208201915060208360051b8601019250858311156148d957600080fd5b602085015b8381101561488e5780358352602092830192016148de565b803561490181614543565b919050565b6000806000806060858703121561491c57600080fd5b843567ffffffffffffffff81111561493357600080fd5b850160c0818803121561494557600080fd5b61494d61478d565b81358152602080830135908201526040808301359082015260608083013590820152608082013567ffffffffffffffff81111561498957600080fd5b61499589828501614805565b60808301525060a082013567ffffffffffffffff8111156149b557600080fd5b6149c189828501614898565b60a08301525094506149d79050602086016148f6565b9250604085013567ffffffffffffffff8111156149f357600080fd5b6149ff87828801614588565b95989497509550505050565b600081518084526020840193506020830160005b82811015614a3d578151865260209586019590910190600101614a1f565b5093949350505050565b602081526000611c986020830184614a0b565b60008060208385031215614a6d57600080fd5b823567ffffffffffffffff811115614a8457600080fd5b8301601f81018513614a9557600080fd5b803567ffffffffffffffff811115614aac57600080fd5b8560208260061b840101111561453357600080fd5b600080600080600080600060a0888a031215614adc57600080fd5b873567ffffffffffffffff811115614af357600080fd5b614aff8a828b01614422565b975050602088013567ffffffffffffffff811115614b1c57600080fd5b614b288a828b01614588565b9097509550506040880135614b3c81614543565b935060608801359250608088013567ffffffffffffffff811115614b5f57600080fd5b614b6b8a828b01614588565b989b979a50959850939692959293505050565b600080600060608486031215614b9357600080fd5b505081359360208301359350604090920135919050565b600080600080600060808688031215614bc257600080fd5b85359450602086013593506040860135614bdb81614543565b9250606086013567ffffffffffffffff811115614bf757600080fd5b614c0388828901614588565b969995985093965092949392505050565b600060c0830182518452602083015160208501526040830151604085015260608301516060850152608083015160c0608086015281815180845260e087019150602083019350600092505b80831015614c9357614c7c82855180518252602090810151910152565b604082019150602084019350600183019250614c5f565b5060a0850151925085810360a0870152614cad8184614a0b565b9695505050505050565b604081526000614cca6040830185614c14565b90508260208301529392505050565b602081526000611c986020830184614c14565b6000808335601e19843603018112614d0357600080fd5b83018035915067ffffffffffffffff821115614d1e57600080fd5b6020019150600681901b36038213156145ca57600080fd5b634e487b7160e01b600052603260045260246000fd5b600181811c90821680614d6057607f821691505b60208210810361156857634e487b7160e01b600052602260045260246000fd5b8051801515811461490157600080fd5b600060208284031215614da257600080fd5b611c9882614d80565b600060208284031215614dbd57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610da557610da5614dc4565b634e487b7160e01b600052603160045260246000fd5b600060018201614e1557614e15614dc4565b5060010190565b8082028115828204841417610da557610da5614dc4565b80820180821115610da557610da5614dc4565b60006040828403128015614e5957600080fd5b50614e62614764565b82518152614e7260208401614d80565b60208201529392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b0385168152836020820152606060408201526000614cad606083018486614e7e565b6020808252810182905260008360408301825b8581101561488e57823582526020808401359083015260409283019290910190600101614ee3565b634e487b7160e01b600052601260045260246000fd5b600082614f3057614f30614f0b565b500490565b7f6661696c656420746f2070617920756e7772617070656420455448206261636b81527f20746f2062757965723a20000000000000000000000000000000000000000000602082015260008251614f9381602b850160208701614469565b91909101602b0192915050565b600060208284031215614fb257600080fd5b815160ff81168114610dc657600080fd5b6001815b6001841115614ffe57808504811115614fe257614fe2614dc4565b6001841615614ff057908102905b60019390931c928002614fc7565b935093915050565b60008261501557506001610da5565b8161502257506000610da5565b816001811461503857600281146150425761505e565b6001915050610da5565b60ff84111561505357615053614dc4565b50506001821b610da5565b5060208310610133831016604e8410600b8410161715615081575081810a610da5565b61508e6000198484614fc3565b80600019048211156150a2576150a2614dc4565b029392505050565b6000611c9860ff841683615006565b6000816150c8576150c8614dc4565b506000190190565b6000826150df576150df614f0b565b500690565b848152836020820152606060408201526000614cad606083018486614e7e565b6000808335601e1984360301811261511b57600080fd5b83018035915067ffffffffffffffff82111561513657600080fd5b6020019150600581901b36038213156145ca57600080fd5b6001600160a01b0385168152606060208201526000615171606083018587614e7e565b905082604083015295945050505050565b606081526000615196606083018688614e7e565b6020830194909452506040015292915050565b602081526000610dc8602083018486614e7e565b600080604083850312156151d057600080fd5b825167ffffffffffffffff8111156151e757600080fd5b8301604081860312156151f957600080fd5b615201614764565b815167ffffffffffffffff81111561521857600080fd5b8201601f8101871361522957600080fd5b805167ffffffffffffffff8111156152435761524361474e565b615256601f8201601f19166020016147b0565b81815288602083850101111561526b57600080fd5b61527c826020830160208601614469565b83525050602091820151828201529250615297908401614d80565b90509250929050565b634e487b7160e01b600052600160045260246000fd5b838152826020820152606060408201526000611a0f606083018461448d565b60c0815260006152e960c08301898b614e7e565b82810360208401526152fb818961448d565b9150508560408301528460608301528360808301528260a083015298975050505050505050565b7f536f636365727665727365207061636b2d73616c65207365656400000000000081526000808454818160011c9050600182168061536157607f821691505b60208210810361537f57634e487b7160e01b84526022600452602484fd5b80801561539357600181146153ae576153e4565b60ff198416601a880152601a831515840288010194506153e4565b60008981526020902060005b848110156153d9578154898201601a01526001909101906020016153ba565b5050601a8388010194505b505050938152602001949350505050565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081526000835161542d816017850160208801614469565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161546a816028840160208801614469565b0160280194935050505056fea7b63489976346c7a7a8e4c15bb50fa59fb7684db5c987e019cc69ac46415285a26469706673582212200c9d03008d67c1548a0a1a79f9e66b277787b10cfaff0ba6d60c4997f2b2bd7e64736f6c634300081c00330000000000000000000000003c499c542cef5e3811e1192ce70d8cc03d5c335900000000000000000000000092ff20238dd9c36c81ad70cf328f608816c897e6000000000000000000000000a81ab19fe4a85709b5dcad7ae1d404975cae9e8b000000000000000000000000329612bb11eea1ea5065993dc32b41c86d6068c2000000000000000000000000000000000000000000000000000000000000010000000000000000000000000069015912aa33720b842dcd6ac059ed623f28d9f70000000000000000000000000d500b1d8e8ef31e21c99d1db9a6444d3adf1270000000000000000000000000164f24f2b1eed9f5705e21d8ab1fae6de985d1fc00000000000000000000000000000000000000000000000000000000000000067469657220310000000000000000000000000000000000000000000000000000