0 txs
8 calls
constructor
No constructor.
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
eip712Domain
viewfunction eip712Domain() view returns (bytes1 fields, string name, string version, uint256 chainId, address verifyingContract, bytes32 salt, uint256[] extensions)
etNextPackSigner
viewfunction etNextPackSigner() view returns (uint64)
etNextUpgradeToAndCall
viewfunction etNextUpgradeToAndCall() view returns (uint64)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isLocked
viewfunction isLocked(uint256) view returns (bool)
mtokenContract
viewfunction mtokenContract() view returns (address)
name
viewfunction name() view returns (string)
nextImplementation
viewfunction nextImplementation() view returns (address)
nextPackSigner
viewfunction nextPackSigner() view returns (address)
nextUpgradeToAndCallDataHash
viewfunction nextUpgradeToAndCallDataHash() view returns (bytes32)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
packedCoins
viewfunction packedCoins(uint256 nft) view returns (uint256 packedAmount)
packSigner
viewfunction packSigner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
addToLockedList
nonpayablefunction addToLockedList(uint256 _tokenId, bytes reason)
approve
nonpayablefunction approve(address to, uint256 tokenId)
batchMintAndPack
nonpayablefunction batchMintAndPack(uint256[] amounts, uint256[] bullions, uint256 nonce)
batchPack
nonpayablefunction batchPack(uint256[] amounts, uint256[] bullions)
batchUnpack
nonpayablefunction batchUnpack(uint256[] bullions)
batchUnpackAndRedeem
nonpayablefunction batchUnpackAndRedeem(uint256[] bullions, address customer, bytes data)
initialize
nonpayablefunction initialize(string name_, string symbol_, address _mtokenContract, address _packSigner, address _owner)
mintAndPack
nonpayablefunction mintAndPack(uint256 amount, uint256 bullion, uint256 nonce)
multiSafeTransferFrom
nonpayablefunction multiSafeTransferFrom(address _sender, address[] _recipients, uint256[] _tokenIds, bytes data)
multiSafeTransferFrom
nonpayablefunction multiSafeTransferFrom(address _sender, address[] _recipients, uint256[] _tokenIds)
multiTransferFrom
nonpayablefunction multiTransferFrom(address _sender, address[] _recipients, uint256[] _tokenIds)
pack
nonpayablefunction pack(uint256 amount, uint256 bullion)
packWithSig
nonpayablefunction packWithSig(uint256 amount, uint256 bullion, uint256 deadline, uint8 v, bytes32 r, bytes32 s)
removeFromLockedList
nonpayablefunction removeFromLockedList(uint256 _tokenId)
renounceOwnership
nonpayablefunction renounceOwnership()
requestUpgradeToAndCall
nonpayablefunction requestUpgradeToAndCall(address _newImplementation, bytes _data)
revokeNextPackSigner
nonpayablefunction revokeNextPackSigner()
revokeNextUpgrade
nonpayablefunction revokeNextUpgrade()
safeTransferFrom
nonpayablefunction safeTransferFrom(address _sender, address _recipient, uint256 _tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string uri)
setPackSigner
nonpayablefunction setPackSigner(address addr)
transferFrom
nonpayablefunction transferFrom(address _sender, address _recipient, uint256 _tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpack
nonpayablefunction unpack(uint256 bullion)
unpackAndRedeem
nonpayablefunction unpackAndRedeem(uint256 bullion, address customer, bytes data)
upgradeToAndCall
payablefunction upgradeToAndCall(address _newImplementation, bytes _data) payable
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
EIP712DomainChanged
event EIP712DomainChanged()
Initialized
event Initialized(uint64 version)
LockPlaced
event LockPlaced(uint256 indexed _user, bytes reason)
LockReleased
event LockReleased(uint256 indexed _user)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SetPackSignerEffected
event SetPackSignerEffected(address newAddr)
SetPackSignerRequest
event SetPackSignerRequest(address oldAddr, address newAddr, uint64 et)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Upgraded
event Upgraded(address indexed implementation)
UpgradeToAndCallRequest
event UpgradeToAndCallRequest(address newImplementation, bytes data)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ArgsMismatch
error ArgsMismatch()
BlockedAccount
error BlockedAccount(address)
DuplicatedBullion
error DuplicatedBullion(uint256)
ECDSAInvalidSignature
error ECDSAInvalidSignature()
ECDSAInvalidSignatureLength
error ECDSAInvalidSignatureLength(uint256 length)
ECDSAInvalidSignatureS
error ECDSAInvalidSignatureS(bytes32 s)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
FailedInnerCall
error FailedInnerCall()
InvalidInitialization
error InvalidInitialization()
InvalidSigner
error InvalidSigner(address)
InvalidUpgradeToAndCallData
error InvalidUpgradeToAndCallData()
InvalidUpgradeToAndCallImpl
error InvalidUpgradeToAndCallImpl()
NoSuchBullion
error NoSuchBullion(uint256)
NotInitializing
error NotInitializing()
NotNftOwner
error NotNftOwner(uint256, address)
NotOperator
error NotOperator(address)
NotRevoker
error NotRevoker(address)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
SignatureExpired
error SignatureExpired(uint256)
TokenLocked
error TokenLocked(uint256)
TooEarlyToUpgradeToAndCall
error TooEarlyToUpgradeToAndCall()
TransferToContract
error TransferToContract()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
ZeroAddress
error ZeroAddress()
creation bytecode
0x60a06040523060805234801561001457600080fd5b50608051614be561003e6000396000818161295a015281816129830152612a2c0152614be56000f3fe60806040526004361061031d5760003560e01c80638546ee01116101a5578063c87b56dd116100ec578063db0ed6a011610095578063e6673a641161006f578063e6673a6414610937578063e985e9c514610957578063f2fde38b146109bf578063f6aacfb1146109df57600080fd5b8063db0ed6a0146108d7578063dd55fcb3146108f7578063e47830501461091757600080fd5b8063d44cc09c116100c6578063d44cc09c1461086f578063d44f83b41461088f578063da55695b146108af57600080fd5b8063c87b56dd1461080f578063cb31b6cd1461082f578063d1514b1c1461084f57600080fd5b8063a0941d0c1161014e578063b41d848911610128578063b41d8489146107af578063b88d4fde146107cf578063bfef0599146107ef57600080fd5b8063a0941d0c14610731578063a22cb46514610746578063ad3cb1cc1461076657600080fd5b80638da5cb5b1161017f5780638da5cb5b146106a5578063950e61c6146106e257806395d89b411461071c57600080fd5b80638546ee01146106455780638a02be68146106655780638b3cc4aa1461068557600080fd5b80634a0ddf93116102695780635f7af76e1161021257806370a08231116101ec57806370a08231146105e8578063715018a61461060857806384b0196e1461061d57600080fd5b80635f7af76e146105935780636352211e146105b35780636b755f36146105d357600080fd5b806352d1902d1161024357806352d1902d1461053157806355f804b3146105465780635762b6991461056657600080fd5b80634a0ddf93146104de5780634a506553146104fe5780634f1ef2861461051e57600080fd5b80630a4db38b116102cb57806323b872dd116102a557806323b872dd1461047e5780633fd878351461049e57806342842e0e146104be57600080fd5b80630a4db38b1461041a5780630a6c857f1461043a57806311532e771461045a57600080fd5b8063081812fc116102fc578063081812fc146103b8578063095ea7b3146103d857806309ff18f0146103fa57600080fd5b8062abd6731461032257806301ffc9a71461036657806306fdde0314610396575b600080fd5b34801561032e57600080fd5b5060025461034990600160401b90046001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561037257600080fd5b50610386610381366004613dbc565b610a0f565b604051901515815260200161035d565b3480156103a257600080fd5b506103ab610aac565b60405161035d9190613e29565b3480156103c457600080fd5b506103496103d3366004613e3c565b610b62565b3480156103e457600080fd5b506103f86103f3366004613e6a565b610baa565b005b34801561040657600080fd5b50600054610349906001600160a01b031681565b34801561042657600080fd5b506103f8610435366004613edf565b610bb9565b34801561044657600080fd5b50600654610349906001600160a01b031681565b34801561046657600080fd5b5061047060015481565b60405190815260200161035d565b34801561048a57600080fd5b506103f8610499366004613f3b565b610def565b3480156104aa57600080fd5b506103f86104b9366004613fc1565b610e13565b3480156104ca57600080fd5b506103f86104d9366004613f3b565b610efe565b3480156104ea57600080fd5b506103f86104f9366004614188565b610f19565b34801561050a57600080fd5b506103f861051936600461426e565b610f9b565b6103f861052c36600461426e565b61103a565b34801561053d57600080fd5b5061047061112e565b34801561055257600080fd5b506103f86105613660046142be565b61115d565b34801561057257600080fd5b50610470610581366004613e3c565b60036020526000908152604090205481565b34801561059f57600080fd5b506103f86105ae366004614300565b611216565b3480156105bf57600080fd5b506103496105ce366004613e3c565b611319565b3480156105df57600080fd5b506103f8611324565b3480156105f457600080fd5b50610470610603366004614331565b6113fa565b34801561061457600080fd5b506103f8611481565b34801561062957600080fd5b50610632611495565b60405161035d979695949392919061434e565b34801561065157600080fd5b506103f8610660366004614403565b611591565b34801561067157600080fd5b506103f8610680366004613e3c565b61160e565b34801561069157600080fd5b506103f86106a0366004613e3c565b6116fc565b3480156106b157600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610349565b3480156106ee57600080fd5b506002546107039067ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161035d565b34801561072857600080fd5b506103ab6117e8565b34801561073d57600080fd5b506103f8611839565b34801561075257600080fd5b506103f86107613660046144ac565b6118f8565b34801561077257600080fd5b506103ab6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156107bb57600080fd5b506103f86107ca3660046144e5565b611903565b3480156107db57600080fd5b506103f86107ea366004614559565b611a1d565b3480156107fb57600080fd5b506103f861080a3660046145b9565b611a3d565b34801561081b57600080fd5b506103ab61082a366004613e3c565b611b56565b34801561083b57600080fd5b506103f861084a366004614188565b611bbe565b34801561085b57600080fd5b50600754610349906001600160a01b031681565b34801561087b57600080fd5b506103f861088a366004614619565b611c3a565b34801561089b57600080fd5b506103f86108aa366004614672565b611de4565b3480156108bb57600080fd5b5060075461070390600160a01b900467ffffffffffffffff1681565b3480156108e357600080fd5b506103f86108f23660046146a8565b611ec4565b34801561090357600080fd5b506103f8610912366004614746565b611fff565b34801561092357600080fd5b506103f8610932366004614768565b612139565b34801561094357600080fd5b506103f8610952366004614331565b6122ae565b34801561096357600080fd5b50610386610972366004614794565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b3480156109cb57600080fd5b506103f86109da366004614331565b612554565b3480156109eb57600080fd5b506103866109fa366004613e3c565b60046020526000908152604090205460ff1681565b60006001600160e01b031982167f80ac58cd000000000000000000000000000000000000000000000000000000001480610a7257506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610aa657507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793008054606091908190610ade906147c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b0a906147c2565b8015610b575780601f10610b2c57610100808354040283529160200191610b57565b820191906000526020600020905b815481529060010190602001808311610b3a57829003601f168201915b505050505091505090565b6000610b6d826125ab565b5060008281527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b0316610aa6565b610bb5828233612603565b5050565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610c0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3291906147fc565b6001600160a01b0316336001600160a01b031614610c6a57604051633b63649d60e11b81523360048201526024015b60405180910390fd5b6000610c7585612610565b905033610c8186611319565b6001600160a01b031614610cb1576040516391239a8d60e01b815260048101869052336024820152604401610c61565b6000858152600360205260408082209190915560025490517fa9059cbb00000000000000000000000000000000000000000000000000000000815233600482015260248101839052600160401b9091046001600160a01b03169063a9059cbb906044016020604051808303816000875af1158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190614819565b506002546040517fd855ef78000000000000000000000000000000000000000000000000000000008152600160401b9091046001600160a01b03169063d855ef7890610dad908490889088908890600401614836565b600060405180830381600087803b158015610dc757600080fd5b505af1158015610ddb573d6000803e3d6000fd5b50505050610de88561265b565b5050505050565b610df833612696565b610e03838383612769565b610e0e8383836127bd565b505050565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8c91906147fc565b6001600160a01b0316336001600160a01b031614610ebf57604051633b63649d60e11b8152336004820152602401610c61565b60005b84811015610ef657610eee868683818110610edf57610edf61487c565b90506020020135858585610bb9565b600101610ec2565b505050505050565b610e0e83838360405180602001604052806000815250611a1d565b610f2233612696565b8051825114610f445760405163e551559760e01b815260040160405180910390fd5b60005b8251811015610f9557610f8d84848381518110610f6657610f6661487c565b6020026020010151848481518110610f8057610f8061487c565b6020026020010151610efe565b600101610f47565b50505050565b610fa361285b565b600080546001600160a01b0319166001600160a01b03841617905580516020820120600155610fd06128cf565b610fda9042614892565b6002805467ffffffffffffffff191667ffffffffffffffff929092169190911790556040517fcc54b42f78b332711d2d2b40bd7edb325a1fef0124753b0689728b7209ca1e2e9061102e90849084906148c8565b60405180910390a15050565b61104261294f565b6000546001600160a01b03838116911614611089576040517f9ab1811500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60015481516020830120146110ca576040517fefac8be100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025467ffffffffffffffff168015806110ed5750428167ffffffffffffffff16115b15611124576040517f260343ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610e0e8383612a06565b6000611138612a21565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af11580156111b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111d691906147fc565b6001600160a01b0316336001600160a01b03161461120957604051633b63649d60e11b8152336004820152602401610c61565b6005610e0e828483614932565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af115801561126b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061128f91906147fc565b6001600160a01b0316336001600160a01b0316146112c257604051633b63649d60e11b8152336004820152602401610c61565b60008281526004602052604090819020805460ff191660011790555182907f8ea33480f0f1e7b03b09c5e91b5732d8315b4e016510f67e19b7fed6605f85d49061130d908490613e29565b60405180910390a25050565b6000610aa6826125ab565b600260089054906101000a90046001600160a01b03166001600160a01b03166335dec5d16040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611379573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061139d91906147fc565b6001600160a01b0316336001600160a01b0316146113d057604051635a4c7a3b60e01b8152336004820152602401610c61565b600780547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff169055565b60007f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793006001600160a01b038316611460576040517f89c62b6400000000000000000000000000000000000000000000000000000000815260006004820152602401610c61565b6001600160a01b039092166000908152600390920160205250604090205490565b61148961285b565b6114936000612a6a565b565b600060608082808083817fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10080549091501580156114d457506001810154155b61153a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606401610c61565b611542612adb565b61154a612b2c565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009c939b5091995046985030975095509350915050565b61159a33612696565b81518351146115bc5760405163e551559760e01b815260040160405180910390fd5b60005b8351811015610de857611606858583815181106115de576115de61487c565b60200260200101518584815181106115f8576115f861487c565b602002602001015185611a1d565b6001016115bf565b600061161982612610565b905061162433612696565b3361162e83611319565b6001600160a01b03161461165e576040516391239a8d60e01b815260048101839052336024820152604401610c61565b6000828152600360205260408082209190915560025490517f022a326800000000000000000000000000000000000000000000000000000000815233600482015260248101839052600160401b9091046001600160a01b03169063022a326890604401600060405180830381600087803b1580156116db57600080fd5b505af11580156116ef573d6000803e3d6000fd5b50505050610bb58261265b565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611751573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177591906147fc565b6001600160a01b0316336001600160a01b0316146117a857604051633b63649d60e11b8152336004820152602401610c61565b600081815260046020526040808220805460ff191690555182917f45e433cc654d24fc2ce0146dca9208deff4b3fa053f234a89ec5bacb5c388e6691a250565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930180546060917f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930091610ade906147c2565b600260089054906101000a90046001600160a01b03166001600160a01b03166335dec5d16040518163ffffffff1660e01b81526004016020604051808303816000875af115801561188e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b291906147fc565b6001600160a01b0316336001600160a01b0316146118e557604051635a4c7a3b60e01b8152336004820152602401610c61565b6002805467ffffffffffffffff19169055565b610bb5338383612b7d565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611958573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197c91906147fc565b6001600160a01b0316336001600160a01b0316146119af57604051633b63649d60e11b8152336004820152602401610c61565b8382146119cf5760405163e551559760e01b815260040160405180910390fd5b60005b82811015610ef657611a158686838181106119ef576119ef61487c565b90506020020135858584818110611a0857611a0861487c565b9050602002013584612139565b6001016119d2565b611a2633612696565b611a31848484612769565b610f9584848484612c59565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611a92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ab691906147fc565b6001600160a01b0316336001600160a01b031614611ae957604051633b63649d60e11b8152336004820152602401610c61565b828114611b095760405163e551559760e01b815260040160405180910390fd5b60005b81811015610de857611b4e858583818110611b2957611b2961487c565b90506020020135848484818110611b4257611b4261487c565b90506020020135611fff565b600101611b0c565b6060611b61826125ab565b506000611b6c612c70565b90506000815111611b8c5760405180602001604052806000815250611bb7565b80611b9684612d02565b604051602001611ba79291906149f2565b6040516020818303038152906040525b9392505050565b611bc733612696565b8051825114611be95760405163e551559760e01b815260040160405180910390fd5b60005b8251811015610f9557611c3284848381518110611c0b57611c0b61487c565b6020026020010151848481518110611c2557611c2561487c565b6020026020010151610def565b600101611bec565b834210611c76576040517fcd21db4f00000000000000000000000000000000000000000000000000000000815260048101859052602401610c61565b604080517fc1b39f04c1ebb0a5be538a68b54ef5fb8970360b28e87f7a1ed93d3eb0b0096d60208201523391810191909152606081018790526080810186905260a0810185905260009060c0016040516020818303038152906040528051906020012090506000611ce682612da2565b90506000611cf682878787612dea565b6006549091506001600160a01b03808316911614611d4b576040517fbf18af430000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610c61565b600254604051633d093a9f60e01b8152336004820152602481018b9052600160401b9091046001600160a01b031690633d093a9f90604401600060405180830381600087803b158015611d9d57600080fd5b505af1158015611db1573d6000803e3d6000fd5b50505050611dbe88612e18565b6000888152600360205260409020899055611dd93389612e61565b505050505050505050565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015611e39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5d91906147fc565b6001600160a01b0316336001600160a01b031614611e9057604051633b63649d60e11b8152336004820152602401610c61565b60005b81811015610e0e57611ebc838383818110611eb057611eb061487c565b9050602002013561160e565b600101611e93565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff16600081158015611f0a5750825b905060008267ffffffffffffffff166001148015611f275750303b155b905081158015611f35575080155b15611f6c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611f9b57845468ff00000000000000001916600160401b1785555b611fa88a8a8a8a8a612edf565b8315611ff357845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612054573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207891906147fc565b6001600160a01b0316336001600160a01b0316146120ab57604051633b63649d60e11b8152336004820152602401610c61565b600254604051633d093a9f60e01b815233600482015260248101849052600160401b9091046001600160a01b031690633d093a9f90604401600060405180830381600087803b1580156120fd57600080fd5b505af1158015612111573d6000803e3d6000fd5b5050505061211e81612e18565b6000818152600360205260409020829055610bb53382612e61565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af115801561218e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121b291906147fc565b6001600160a01b0316336001600160a01b0316146121e557604051633b63649d60e11b8152336004820152602401610c61565b6121ee82612e18565b6002546040517f2baf2acb0000000000000000000000000000000000000000000000000000000081523060048201526024810185905260448101839052600091600160401b90046001600160a01b031690632baf2acb906064016020604051808303816000875af1158015612267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061228b9190614819565b90508015610f95576000838152600360205260409020849055610f953384612e61565b600260089054906101000a90046001600160a01b03166001600160a01b031663570ca7356040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612303573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232791906147fc565b6001600160a01b0316336001600160a01b03161461235a57604051633b63649d60e11b8152336004820152602401610c61565b61236381612f8d565b6000600760149054906101000a900467ffffffffffffffff1690506000600260089054906101000a90046001600160a01b03166001600160a01b0316636a42b8f86040518163ffffffff1660e01b81526004016020604051808303816000875af11580156123d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f99190614a21565b6007549091506001600160a01b038481169116148015612422575067ffffffffffffffff821615155b80156124375750428267ffffffffffffffff16105b1561249257600680546001600160a01b0319166001600160a01b0385169081179091556040519081527f4d243687f1e145518c19cddd722f6c625b50597585baafeb602bb544093b1e799060200160405180910390a1505050565b600780546001600160a01b0319166001600160a01b0385161790556124b78142614892565b600780547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff16600160a01b67ffffffffffffffff93841681029190911791829055600654604080516001600160a01b039283168152918816602083015291909204909216918101919091527f0e705b14f681921d41bc6ba05661929475ba02845fe3d78166c09360af1101399060600160405180910390a1505050565b61255c61285b565b6001600160a01b03811661259f576040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260006004820152602401610c61565b6125a881612a6a565b50565b60008181527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260408120546001600160a01b031680610aa657604051637e27328960e01b815260048101849052602401610c61565b610e0e8383836001612fcd565b600081815260036020526040812054808203610aa6576040517f8503025a00000000000000000000000000000000000000000000000000000000815260048101849052602401610c61565b600061266a600083600061314c565b90506001600160a01b038116610bb557604051637e27328960e01b815260048101839052602401610c61565b6002546040517ffbac39510000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152600160401b9092049091169063fbac3951906024016020604051808303816000875af1158015612703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127279190614819565b156125a8576040517f863248950000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610c61565b306001600160a01b038316036127ab576040517f3a49fd5c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127b483612696565b610e0e8161328d565b6001600160a01b0382166127e757604051633250574960e11b815260006004820152602401610c61565b60006127f483833361314c565b9050836001600160a01b0316816001600160a01b031614610f95576040517f64283d7b0000000000000000000000000000000000000000000000000000000081526001600160a01b0380861660048301526024820184905282166044820152606401610c61565b3361288d7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614611493576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610c61565b6000600260089054906101000a90046001600160a01b03166001600160a01b0316636a42b8f86040518163ffffffff1660e01b81526004016020604051808303816000875af1158015612926573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061294a9190614a21565b905090565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806129e857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166129dc7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156114935760405163703e46dd60e11b815260040160405180910390fd5b612a0e61294f565b612a17826132d9565b610bb582826132e1565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114935760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091610ade906147c2565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10380546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091610ade906147c2565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793006001600160a01b038316612be9576040517f5b08ba180000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602401610c61565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b612c64848484610def565b610f95848484846133c9565b606060058054612c7f906147c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612cab906147c2565b8015612cf85780601f10612ccd57610100808354040283529160200191612cf8565b820191906000526020600020905b815481529060010190602001808311612cdb57829003601f168201915b5050505050905090565b60606000612d0f836134eb565b600101905060008167ffffffffffffffff811115612d2f57612d2f614046565b6040519080825280601f01601f191660200182016040528015612d59576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084612d6357509392505050565b6000610aa6612daf6135cd565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b600080600080612dfc888888886135d7565b925092509250612e0c82826136a6565b50909695505050505050565b600081815260036020526040902054156125a8576040517fe32754fd00000000000000000000000000000000000000000000000000000000815260048101829052602401610c61565b6001600160a01b038216612e8b57604051633250574960e11b815260006004820152602401610c61565b6000612e998383600061314c565b90506001600160a01b03811615610e0e576040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260006004820152602401610c61565b612ee76137aa565b612ef1858561380c565b612f30846040518060400160405280600181526020017f310000000000000000000000000000000000000000000000000000000000000081525061381e565b612f3981613891565b50600280547fffffffff0000000000000000000000000000000000000000ffffffffffffffff16600160401b6001600160a01b0394851602179055600680546001600160a01b031916919092161790555050565b6001600160a01b0381166125a8576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300818061300257506001600160a01b03831615155b1561311b576000613012856125ab565b90506001600160a01b0384161580159061303e5750836001600160a01b0316816001600160a01b031614155b801561308f57506001600160a01b0380821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079305602090815260408083209388168352929052205460ff16155b156130d1576040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c61565b82156131195784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b60008281527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260408120547f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079300906001600160a01b03908116908416156131ba576131ba8185876138a2565b6001600160a01b038116156131fa576131d7600086600080612fcd565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b0386161561322b576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b60008181526004602052604090205460ff16156125a8576040517f886574b200000000000000000000000000000000000000000000000000000000815260048101829052602401610c61565b6125a861285b565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561333b575060408051601f3d908101601f1916820190925261333891810190614a4b565b60015b61336357604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610c61565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146133bf576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610c61565b610e0e838361391f565b6001600160a01b0383163b15610f9557604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061340b903390889087908790600401614a64565b6020604051808303816000875af1925050508015613446575060408051601f3d908101601f1916820190925261344391810190614aa0565b60015b6134af573d808015613474576040519150601f19603f3d011682016040523d82523d6000602084013e613479565b606091505b5080516000036134a757604051633250574960e11b81526001600160a01b0385166004820152602401610c61565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610de857604051633250574960e11b81526001600160a01b0385166004820152602401610c61565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310613534577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310613560576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061357e57662386f26fc10000830492506010015b6305f5e1008310613596576305f5e100830492506008015b61271083106135aa57612710830492506004015b606483106135bc576064830492506002015b600a8310610aa65760010192915050565b600061294a613975565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613612575060009150600390508261369c565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613666573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166136925750600092506001915082905061369c565b9250600091508190505b9450945094915050565b60008260038111156136ba576136ba614abd565b036136c3575050565b60018260038111156136d7576136d7614abd565b0361370e576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600282600381111561372257613722614abd565b0361375c576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610c61565b600382600381111561377057613770614abd565b03610bb5576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610c61565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611493576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6138146137aa565b610bb582826139e9565b6138266137aa565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026138728482614ad3565b50600381016138818382614ad3565b5060008082556001909101555050565b6138996137aa565b6125a881613a2c565b6138ad838383613a34565b610e0e576001600160a01b0383166138db57604051637e27328960e01b815260048101829052602401610c61565b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b038316600482015260248101829052604401610c61565b61392882613af8565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561396d57610e0e8282613b6f565b610bb5613be5565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6139a0613c1d565b6139a8613c99565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6139f16137aa565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930080613a1d8482614ad3565b5060018101610f958382614ad3565b61255c6137aa565b60006001600160a01b03831615801590613af05750826001600160a01b0316846001600160a01b03161480613aad57506001600160a01b0380851660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079305602090815260408083209387168352929052205460ff165b80613af0575060008281527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b038481169116145b949350505050565b806001600160a01b03163b600003613b2e57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610c61565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051613b8c9190614b93565b600060405180830381855af49150503d8060008114613bc7576040519150601f19603f3d011682016040523d82523d6000602084013e613bcc565b606091505b5091509150613bdc858383613cef565b95945050505050565b3415611493576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10081613c49612adb565b805190915015613c6157805160209091012092915050565b81548015613c70579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10081613cc5612b2c565b805190915015613cdd57805160209091012092915050565b60018201548015613c70579392505050565b606082613d0457613cff82613d64565b611bb7565b8151158015613d1b57506001600160a01b0384163b155b15613d5d576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610c61565b5080611bb7565b805115613d745780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160e01b0319811681146125a857600080fd5b600060208284031215613dce57600080fd5b8135611bb781613da6565b60005b83811015613df4578181015183820152602001613ddc565b50506000910152565b60008151808452613e15816020860160208601613dd9565b601f01601f19169290920160200192915050565b602081526000611bb76020830184613dfd565b600060208284031215613e4e57600080fd5b5035919050565b6001600160a01b03811681146125a857600080fd5b60008060408385031215613e7d57600080fd5b8235613e8881613e55565b946020939093013593505050565b60008083601f840112613ea857600080fd5b50813567ffffffffffffffff811115613ec057600080fd5b602083019150836020828501011115613ed857600080fd5b9250929050565b60008060008060608587031215613ef557600080fd5b843593506020850135613f0781613e55565b9250604085013567ffffffffffffffff811115613f2357600080fd5b613f2f87828801613e96565b95989497509550505050565b600080600060608486031215613f5057600080fd5b8335613f5b81613e55565b92506020840135613f6b81613e55565b929592945050506040919091013590565b60008083601f840112613f8e57600080fd5b50813567ffffffffffffffff811115613fa657600080fd5b6020830191508360208260051b8501011115613ed857600080fd5b600080600080600060608688031215613fd957600080fd5b853567ffffffffffffffff80821115613ff157600080fd5b613ffd89838a01613f7c565b90975095506020880135915061401282613e55565b9093506040870135908082111561402857600080fd5b5061403588828901613e96565b969995985093965092949392505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561408557614085614046565b604052919050565b600067ffffffffffffffff8211156140a7576140a7614046565b5060051b60200190565b600082601f8301126140c257600080fd5b813560206140d76140d28361408d565b61405c565b8083825260208201915060208460051b8701019350868411156140f957600080fd5b602086015b8481101561411e57803561411181613e55565b83529183019183016140fe565b509695505050505050565b600082601f83011261413a57600080fd5b8135602061414a6140d28361408d565b8083825260208201915060208460051b87010193508684111561416c57600080fd5b602086015b8481101561411e5780358352918301918301614171565b60008060006060848603121561419d57600080fd5b83356141a881613e55565b9250602084013567ffffffffffffffff808211156141c557600080fd5b6141d1878388016140b1565b935060408601359150808211156141e757600080fd5b506141f486828701614129565b9150509250925092565b600082601f83011261420f57600080fd5b813567ffffffffffffffff81111561422957614229614046565b61423c601f8201601f191660200161405c565b81815284602083860101111561425157600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561428157600080fd5b823561428c81613e55565b9150602083013567ffffffffffffffff8111156142a857600080fd5b6142b4858286016141fe565b9150509250929050565b600080602083850312156142d157600080fd5b823567ffffffffffffffff8111156142e857600080fd5b6142f485828601613e96565b90969095509350505050565b6000806040838503121561431357600080fd5b82359150602083013567ffffffffffffffff8111156142a857600080fd5b60006020828403121561434357600080fd5b8135611bb781613e55565b7fff00000000000000000000000000000000000000000000000000000000000000881681526000602060e0602084015261438b60e084018a613dfd565b838103604085015261439d818a613dfd565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156143f1578351835292840192918401916001016143d5565b50909c9b505050505050505050505050565b6000806000806080858703121561441957600080fd5b843561442481613e55565b9350602085013567ffffffffffffffff8082111561444157600080fd5b61444d888389016140b1565b9450604087013591508082111561446357600080fd5b61446f88838901614129565b9350606087013591508082111561448557600080fd5b50614492878288016141fe565b91505092959194509250565b80151581146125a857600080fd5b600080604083850312156144bf57600080fd5b82356144ca81613e55565b915060208301356144da8161449e565b809150509250929050565b6000806000806000606086880312156144fd57600080fd5b853567ffffffffffffffff8082111561451557600080fd5b61452189838a01613f7c565b9097509550602088013591508082111561453a57600080fd5b5061454788828901613f7c565b96999598509660400135949350505050565b6000806000806080858703121561456f57600080fd5b843561457a81613e55565b9350602085013561458a81613e55565b925060408501359150606085013567ffffffffffffffff8111156145ad57600080fd5b614492878288016141fe565b600080600080604085870312156145cf57600080fd5b843567ffffffffffffffff808211156145e757600080fd5b6145f388838901613f7c565b9096509450602087013591508082111561460c57600080fd5b50613f2f87828801613f7c565b60008060008060008060c0878903121561463257600080fd5b863595506020870135945060408701359350606087013560ff8116811461465857600080fd5b9598949750929560808101359460a0909101359350915050565b6000806020838503121561468557600080fd5b823567ffffffffffffffff81111561469c57600080fd5b6142f485828601613f7c565b600080600080600060a086880312156146c057600080fd5b853567ffffffffffffffff808211156146d857600080fd5b6146e489838a016141fe565b965060208801359150808211156146fa57600080fd5b50614707888289016141fe565b945050604086013561471881613e55565b9250606086013561472881613e55565b9150608086013561473881613e55565b809150509295509295909350565b6000806040838503121561475957600080fd5b50508035926020909101359150565b60008060006060848603121561477d57600080fd5b505081359360208301359350604090920135919050565b600080604083850312156147a757600080fd5b82356147b281613e55565b915060208301356144da81613e55565b600181811c908216806147d657607f821691505b6020821081036147f657634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561480e57600080fd5b8151611bb781613e55565b60006020828403121561482b57600080fd5b8151611bb78161449e565b8481526001600160a01b038416602082015260606040820152816060820152818360808301376000818301608090810191909152601f909201601f191601019392505050565b634e487b7160e01b600052603260045260246000fd5b67ffffffffffffffff8181168382160190808211156148c157634e487b7160e01b600052601160045260246000fd5b5092915050565b6001600160a01b0383168152604060208201526000613af06040830184613dfd565b601f821115610e0e576000816000526020600020601f850160051c810160208610156149135750805b601f850160051c820191505b81811015610ef65782815560010161491f565b67ffffffffffffffff83111561494a5761494a614046565b61495e8361495883546147c2565b836148ea565b6000601f841160018114614992576000851561497a5750838201355b600019600387901b1c1916600186901b178355610de8565b600083815260209020601f19861690835b828110156149c357868501358255602094850194600190920191016149a3565b50868210156149e05760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60008351614a04818460208801613dd9565b835190830190614a18818360208801613dd9565b01949350505050565b600060208284031215614a3357600080fd5b815167ffffffffffffffff81168114611bb757600080fd5b600060208284031215614a5d57600080fd5b5051919050565b60006001600160a01b03808716835280861660208401525083604083015260806060830152614a966080830184613dfd565b9695505050505050565b600060208284031215614ab257600080fd5b8151611bb781613da6565b634e487b7160e01b600052602160045260246000fd5b815167ffffffffffffffff811115614aed57614aed614046565b614b0181614afb84546147c2565b846148ea565b602080601f831160018114614b365760008415614b1e5750858301515b600019600386901b1c1916600185901b178555610ef6565b600085815260208120601f198616915b82811015614b6557888601518255948401946001909101908401614b46565b5085821015614b835787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60008251614ba5818460208701613dd9565b919091019291505056fea26469706673582212203612b373cbf8eb99b5b66eeeb08e4ea147fc4e0c1cc201776509d87c6b31fc9c64736f6c63430008180033