1 tx
2 calls
constructor
constructor(address ens, string[] gateways)
functions
batchGateways
viewfunction batchGateways(uint256) view returns (string)
ccipBatch
viewfunction ccipBatch(tuple batch) view returns (tuple)
ccipBatchCallback
viewfunction ccipBatchCallback(bytes response, bytes extraData) view returns (tuple batch)
ccipReadCallback
viewfunction ccipReadCallback(bytes response, bytes extraData) view
findResolver
viewfunction findResolver(bytes name) view returns (address, bytes32, uint256)
owner
viewfunction owner() view returns (address)
registry
viewfunction registry() view returns (address)
requireResolver
viewfunction requireResolver(bytes name) view returns (tuple info)
resolve
viewfunction resolve(bytes name, bytes data) view returns (bytes, address)
resolveBatchCallback
viewfunction resolveBatchCallback(bytes response, bytes extraData) view
resolveCallback
purefunction resolveCallback(tuple info, tuple[] lookups, bytes extraData) pure returns (bytes result, address resolver)
resolveWithGateways
viewfunction resolveWithGateways(bytes name, bytes data, string[] gateways) view returns (bytes, address)
reverse
viewfunction reverse(bytes encodedAddress, uint256 coinType) view returns (string, address, address)
reverseAddressCallback
purefunction reverseAddressCallback(tuple info, tuple[] lookups, bytes extraData) pure returns (string primary, address resolver, address reverseResolver)
reverseNameCallback
viewfunction reverseNameCallback(tuple infoRev, tuple[] lookups, bytes extraData) view returns (string primary, address, address)
reverseWithGateways
viewfunction reverseWithGateways(bytes encodedAddress, uint256 coinType, string[] gateways) view returns (string, address, address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceID) view returns (bool)
renounceOwnership
nonpayablefunction renounceOwnership()
setBatchGateways
nonpayablefunction setBatchGateways(string[] gateways)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
DNSDecodingFailed
error DNSDecodingFailed(bytes dns)
DNSEncodingFailed
error DNSEncodingFailed(string ens)
EmptyAddress
error EmptyAddress()
HttpError
error HttpError(uint16 status, string message)
InvalidBatchGatewayResponse
error InvalidBatchGatewayResponse()
OffchainLookup
error OffchainLookup(address sender, string[] urls, bytes callData, bytes4 callbackFunction, bytes extraData)
ResolverError
error ResolverError(bytes errorData)
ResolverNotContract
error ResolverNotContract(bytes name, address resolver)
ResolverNotFound
error ResolverNotFound(bytes name)
ReverseAddressMismatch
error ReverseAddressMismatch(string primary, bytes primaryAddress)
UnsupportedResolverProfile
error UnsupportedResolverProfile(bytes4 selector)
creation bytecode
0x60a06040523480156200001157600080fd5b5060405162004680380380620046808339810160408190526200003491620001da565b6200003f336200006a565b6001600160a01b038216608052805162000061906001906020840190620000ba565b5050506200049c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b82805482825590600052602060002090810192821562000105579160200282015b82811115620001055782518290620000f49082620003d0565b5091602001919060010190620000db565b506200011392915062000117565b5090565b80821115620001135760006200012e828262000138565b5060010162000117565b508054620001469062000341565b6000825580601f1062000157575050565b601f0160209004906000526020600020908101906200017791906200017a565b50565b5b808211156200011357600081556001016200017b565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620001d257620001d262000191565b604052919050565b6000806040808486031215620001ef57600080fd5b83516001600160a01b03811681146200020757600080fd5b602085810151919450906001600160401b03808211156200022757600080fd5b8187019150601f88818401126200023d57600080fd5b82518281111562000252576200025262000191565b8060051b62000263868201620001a7565b918252848101860191868101908c8411156200027e57600080fd5b87870192505b838310156200032e578251868111156200029e5760008081fd5b8701603f81018e13620002b15760008081fd5b8881015187811115620002c857620002c862000191565b620002db818801601f19168b01620001a7565b8181528f8c838501011115620002f15760008081fd5b60005b8281101562000311578381018d01518282018d01528b01620002f4565b5060009181018b0191909152835250918701919087019062000284565b8099505050505050505050509250929050565b600181811c908216806200035657607f821691505b6020821081036200037757634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003cb57600081815260208120601f850160051c81016020861015620003a65750805b601f850160051c820191505b81811015620003c757828155600101620003b2565b5050505b505050565b81516001600160401b03811115620003ec57620003ec62000191565b6200040481620003fd845462000341565b846200037d565b602080601f8311600181146200043c5760008415620004235750858301515b600019600386901b1c1916600185901b178555620003c7565b600085815260208120601f198616915b828110156200046d578886015182559484019460019091019084016200044c565b50858210156200048c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6080516141c1620004bf600039600081816102100152611e3301526141c16000f3fe608060405234801561001057600080fd5b506004361061016c5760003560e01c80639f28e99d116100cd578063b7d6ca6411610081578063d0d444a911610066578063d0d444a914610353578063ef46c0b814610366578063f2fde38b1461037957600080fd5b8063b7d6ca6414610320578063c285238a1461033357600080fd5b8063a1472844116100b2578063a1472844146102c2578063a1cbcbaf146102d5578063b536af761461030d57600080fd5b80639f28e99d1461028f578063a072a4fb146102af57600080fd5b8063715018a6116101245780638708f498116101095780638708f4981461024a5780638da5cb5b1461025d5780639061b9231461026e57600080fd5b8063715018a6146102035780637b1039991461020b57600080fd5b8063491fc4f911610155578063491fc4f9146101b95780635c016c16146101ce5780635d78a217146101e157600080fd5b806301ffc9a714610171578063039128c014610199575b600080fd5b61018461017f366004612ab5565b61038c565b60405190151581526020015b60405180910390f35b6101ac6101a7366004612ad2565b6103dd565b6040516101909190612b3b565b6101cc6101c7366004612b97565b610489565b005b6101cc6101dc366004612dc3565b6105a2565b6101f46101ef366004612df8565b6105c1565b60405161019093929190612e3d565b6101cc6106b0565b6102327f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610190565b6101f4610258366004612ecd565b6106c4565b6000546001600160a01b0316610232565b61028161027c366004612b97565b6108ac565b604051610190929190612f5b565b6102a261029d366004613044565b61099b565b6040516101909190613226565b6102816102bd366004613268565b610ba2565b6102816102d03660046132fd565b610d4f565b6102e86102e3366004613391565b610e72565b604080516001600160a01b039094168452602084019290925290820152606001610190565b6102a261031b366004612b97565b610e8f565b6101f461032e3660046133c6565b61111e565b610346610341366004613391565b6111e0565b6040516101909190613487565b6101f4610361366004613268565b6112f7565b6101cc61037436600461349a565b611496565b6101cc6103873660046134fe565b611518565b60006301ffc9a760e01b6001600160e01b031983161480156103d757507fcd191b34000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b600181815481106103ed57600080fd5b9060005260206000200160009150905080546104089061351b565b80601f01602080910402602001604051908101604052809291908181526020018280546104349061351b565b80156104815780601f1061045657610100808354040283529160200191610481565b820191906000526020600020905b81548152906001019060200180831161046457829003601f168201915b505050505081565b600061049784860186613044565b9050600080806104a98587018761355f565b9250925092508260800151156105435760005b845151811015610541576000856000015182815181106104de576104de61362f565b602002602001015190506104fc816020015160448101510160240190565b60208201526060810151600e1660000361052e5780604001518060200190518101906105289190613692565b60408201525b5080610539816136dd565b9150506104bc565b505b610598308385876000015185604051602401610561939291906136f6565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526115a8565b5050505050505050565b6105aa6115c7565b80516105bd9060019060208401906129df565b5050565b60606000806106a285856001805480602002602001604051908101604052809291908181526020016000905b8282101561069957838290600052602060002001805461060c9061351b565b80601f01602080910402602001604051908101604052809291908181526020018280546106389061351b565b80156106855780601f1061065a57610100808354040283529160200191610685565b820191906000526020600020905b81548152906001019060200180831161066857829003601f168201915b5050505050815260200190600101906105ed565b5050505061111e565b9250925092505b9250925092565b6106b86115c7565b6106c26000611621565b565b60606000806000848060200190518101906106df91906137b9565b9050610717878760008181106106f7576106f761362f565b9050602002810190610709919061386a565b6107129061388a565b611689565b80602001905181019061072a9190613692565b9350835160000361076557600061074760808a0160608b016134fe565b604051806020016040528060008152509190935093509350506108a2565b600061077361034186611748565b905061089f81610853603c8560200151146107f457836040015185602001516040516024016107ac929190918252602082015260400190565b60408051601f198184030181529190526020810180516001600160e01b03167ff1cb7e06000000000000000000000000000000000000000000000000000000001790526118a2565b836040015160405160240161080b91815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f3b3b57de000000000000000000000000000000000000000000000000000000001790526118a2565b846040015163d0d444a960e01b86600001518a8f606001602081019061087991906134fe565b60405160200161088b93929190613896565b6040516020818303038152906040526118f4565b50505b9450945094915050565b6060600061098e868686866001805480602002602001604051908101604052809291908181526020016000905b828210156109855783829060005260206000200180546108f89061351b565b80601f01602080910402602001604051908101604052809291908181526020018280546109249061351b565b80156109715780601f1061094657610100808354040283529160200191610971565b820191906000526020600020905b81548152906001019060200180831161095457829003601f168201915b5050505050815260200190600101906108d9565b50505050610d4f565b9150915094509492505050565b604080518082019091526060808252602082015260005b825151811015610b94576000836000015182815181106109d4576109d461362f565b602002602001015190506020601017816060015116600003610a9c5760006109ff8260000151611af3565b610a0a576010610a0d565b60205b9050825b855151811015610a995782600001516001600160a01b031686600001518281518110610a3f57610a3f61362f565b6020026020010151600001516001600160a01b031603610a87578186600001518281518110610a7057610a7061362f565b602002602001015160600181815117915081815250505b80610a91816136dd565b915050610a11565b50505b600060208260600151166000149050600080610ac2831585600001518660200151611b28565b915091508180610ad95750828015610ad957508051155b15610b3a5760608401805160401790528051600003610b35578360200151610b00906138d5565b6040516001600160e01b0319909116602082015260240160408051601f19818403018152919052606085018051600817905290505b610b76565b630556f18360e41b610b4b826138d5565b6001600160e01b03191603610b6a576060840180516001179052610b76565b60608401805160421790525b60409093019290925250819050610b8c816136dd565b9150506109b2565b50610b9e82611ba1565b5090565b6060600080610bb384860186613909565b90508015610d195760008667ffffffffffffffff811115610bd657610bd6612c03565b604051908082528060200260200182016040528015610c0957816020015b6060815260200190600190039081610bf45790505b50905060005b87811015610cf0576000898983818110610c2b57610c2b61362f565b9050602002810190610c3d919061386a565b610c469061388a565b90506008816060015116600003610cdd57898983818110610c6957610c6961362f565b9050602002810190610c7b919061386a565b610c89906040810190613924565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505085518692508591508110610cd157610cd161362f565b60200260200101819052505b5080610ce8816136dd565b915050610c0f565b5080604051602001610d02919061396b565b604051602081830303815290604052935050610d32565b610d2f878760008181106106f7576106f761362f565b92505b610d426080890160608a016134fe565b9150509550959350505050565b60606000807fac9650d800000000000000000000000000000000000000000000000000000000610d7f86886139cd565b6001600160e01b031916149050610e67610dce89898080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111e092505050565b82610e1757610e1288888080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118a292505050565b610e31565b610e24876004818b6139fd565b810190610e319190613aa7565b60408051851515602082015288917fa072a4fb00000000000000000000000000000000000000000000000000000000910161088b565b509550959350505050565b6000806000610e82846000611d9e565b9250925092509193909250565b6040805180820190915260608082526020820152600080610eb286880188613adc565b915091508051825114610ed85760405163252e18f560e11b815260040160405180910390fd5b610ee484860186613044565b92506000805b8451518110156110e857600085600001518281518110610f0c57610f0c61362f565b6020026020010151905060408160600151166000036110d55783518310156110c9576000848481518110610f4257610f4261362f565b60200260200101519050858481518110610f5e57610f5e61362f565b602002602001015115610f7b5760608201805160441790526110c3565b6000610f8a8360400151611edb565b9050600081600001516001600160a01b03168260600151848460800151604051602401610fb8929190613b92565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b0319909416939093179092529051610ff69190613bb7565b600060405180830381855afa9150503d8060008114611031576040519150601f19603f3d011682016040523d82523d6000602084013e611036565b606091505b50935090508015611094576060840180516040179052825160000361108f5760608201516040516001600160e01b0319909116602082015260240160408051601f19818403018152919052606085018051600817905292505b6110c0565b630556f18360e41b6110a5846138d5565b6001600160e01b031916146110c05760608401805160421790525b50505b60408201525b6110d2836136dd565b92505b50806110e0816136dd565b915050610eea565b508151811461110a5760405163252e18f560e11b815260040160405180910390fd5b61111384611ba1565b505050949350505050565b6060600080600061113a6103416111358989611f25565b611748565b90506111d6816111a2836040015160405160240161115a91815260200190565b60408051601f198184030181529190526020810180516001600160e01b03167f691f3431000000000000000000000000000000000000000000000000000000001790526118a2565b87638708f49860e01b60405180606001604052808d81526020018c81526020018b81525060405160200161088b9190613bc9565b5093509350939050565b6040805160a081018252600060208201819052918101829052606081018290526080810182905282815290611216908390611d9e565b602084015260408301526001600160a01b0316606082018190526112585781604051630ee413fd60e31b815260040161124f9190612b3b565b60405180910390fd5b61126d8160600151639061b92360e01b612028565b1561127e5760016080820152919050565b6020810151156112a35781604051630ee413fd60e31b815260040161124f9190612b3b565b80606001516001600160a01b03163b6000036112f25760608101516040517f1e9535f200000000000000000000000000000000000000000000000000000000815261124f918491600401612f5b565b919050565b60606000808261130985870187613c0c565b909550925090506000611325898983816106f7576106f761362f565b9050606060008a8a600081811061133e5761133e61362f565b9050602002810190611350919061386a565b61135e906020810190613924565b611367916139cd565b90507fc4c4a822000000000000000000000000000000000000000000000000000000006001600160e01b03198216016113e9576000838060200190518101906113b09190613c84565b6040516bffffffffffffffffffffffff19606083901b166020820152909150603401604051602081830303815290604052925050611431565b7f0e3481fa000000000000000000000000000000000000000000000000000000006001600160e01b0319821601611431578280602001905181019061142e9190613692565b91505b61143b84836120b1565b6114755786826040517fef9c03ce00000000000000000000000000000000000000000000000000000000815260040161124f929190613b92565b61148560808d0160608e016134fe565b955050505050955095509592505050565b6000818060200190518101906114ac9190613cac565b9050611513816000015182602001518584604001516040516024016114d2929190613b92565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152606084015160808501516120d6565b505050565b6115206115c7565b6001600160a01b03811661159c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161124f565b6115a581611621565b50565b6105bd8282600060e01b604051806020016040528060008152506120d6565b6000546001600160a01b031633146106c25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161124f565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408101516060820151600416156116a357805160208201fd5b60608201516002161561170c57637b1c461b60e01b6116c1826138d5565b6001600160e01b031916036116d857805160208201fd5b806040517f95c0c75200000000000000000000000000000000000000000000000000000000815260040161124f9190612b3b565b6060820151600816156112f257611722816138d5565b604051637b1c461b60e01b81526001600160e01b0319909116600482015260240161124f565b80516060906000819003611772575050604080518082019091526001815260006020820152919050565b8060020167ffffffffffffffff81111561178e5761178e612c03565b6040519080825280601f01601f1916602001820160405280156117b8576020820181803683370190505b509150602082018060005b8381101561185e5760008682815181106117df576117df61362f565b01602001517fff00000000000000000000000000000000000000000000000000000000000000169050601760f91b81900361184b5761181e848461228a565b9350836000036118435786604051639a4c3e3b60e01b815260040161124f9190612b3b565b839250611855565b6001830192508083525b506001016117c3565b50611869828261228a565b91508160000361188e5784604051639a4c3e3b60e01b815260040161124f9190612b3b565b60008253601f840182038452505050919050565b604080516001808252818301909252606091816020015b60608152602001906001900390816118b957905050905081816000815181106118e4576118e461362f565b6020026020010181905250919050565b60006040518060400160405280865167ffffffffffffffff81111561191b5761191b612c03565b60405190808252806020026020018201604052801561198057816020015b61196d604051806080016040528060006001600160a01b031681526020016060815260200160608152602001600081525090565b8152602001906001900390816119395790505b508152602001859052905060005b8551811015611a68576000826000015182815181106119af576119af61362f565b602090810291909101015160608901516001600160a01b0316815260808901519091506119f5578682815181106119e8576119e861362f565b6020026020010151611a50565b8760000151878381518110611a0c57611a0c61362f565b6020026020010151604051602401611a25929190613b92565b60408051601f198184030181529190526020810180516001600160e01b0316639061b92360e01b1790525b60209091015280611a60816136dd565b91505061198e565b50611aeb30306001600160a01b0316639f28e99d84604051602401611a8d9190613226565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505063491fc4f960e01b898787604051602001611ad793929190613d74565b6040516020818303038152906040526120d6565b505050505050565b6000306001600160a01b03831603611b0d57506001919050565b6113885a6000806000808786fa50815a909103109392505050565b60006060836001600160a01b031685611b435761c350611b45565b5a5b84604051611b539190613bb7565b6000604051808303818686fa925050503d8060008114611b8f576040519150601f19603f3d011682016040523d82523d6000602084013e611b94565b606091505b5090969095509350505050565b80515160009067ffffffffffffffff811115611bbf57611bbf612c03565b604051908082528060200260200182016040528015611c1d57816020015b611c0a604051806060016040528060006001600160a01b0316815260200160608152602001606081525090565b815260200190600190039081611bdd5790505b5090506000805b835151811015611cde57600084600001518281518110611c4657611c4661362f565b602002602001015190506040816060015116600003611ccb576000611c6e8260400151611edb565b9050604051806060016040528082600001516001600160a01b03168152602001826020015181526020018260400151815250858580611cac906136dd565b965081518110611cbe57611cbe61362f565b6020026020010181905250505b5080611cd6816136dd565b915050611c24565b5080156115135780825230836020015183604051602401611cff9190613da9565b60408051601f19818403018152918152602080830180516001600160e01b03167fa780bab60000000000000000000000000000000000000000000000000000000017905290517fb536af760000000000000000000000000000000000000000000000000000000091611d7391899101613226565b60408051601f1981840301815290829052630556f18360e41b825261124f9594939291600401613e43565b6000806000806000611db087876122ff565b90925090508115611ed2576000806000611dca8a85611d9e565b9250925092508185604051602001611dec929190918252602082015260400190565b60408051808303601f190181529082905280516020909101207f0178b8bf0000000000000000000000000000000000000000000000000000000082526004820181905297507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690630178b8bf90602401602060405180830381865afa158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea69190613c84565b97506001600160a01b038816611ebe57828782611ec2565b87878a5b97509750975050505050506106a9565b50509250925092565b6040805160a08101825260008082526060602083018190529282018390528282015260808101919091526103d7611f20836004808651611f1b9190613ea7565b6124be565b612540565b60608251600003611f62576040517f7138356f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611f6b836125ac565b603c8314611fc95763800000008314611f8e57611f89836001612615565b612000565b6040518060400160405280600781526020017f64656661756c7400000000000000000000000000000000000000000000000000815250612000565b6040518060400160405280600481526020017f61646472000000000000000000000000000000000000000000000000000000008152505b604051602001612011929190613eba565b604051602081830303815290604052905092915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561209a575060208210155b80156120a65750600081115b979650505050505050565b6000815183511480156120cf57506120cf83600084600087516126ec565b9392505050565b6000806120ec6120e587611af3565b8787611b28565b91509150811580156121165750630556f18360e41b61210a826138d5565b6001600160e01b031916145b156121b657600061212682611edb565b9050866001600160a01b031681600001516001600160a01b0316036121b457308160200151826040015163ef46c0b860e01b6040518060a001604052808c6001600160a01b0316815260200186606001516001600160e01b0319168152602001866080015181526020018a6001600160e01b031916815260200189815250604051602001611d739190613f20565b505b8180156121cc57506001600160e01b0319841615155b1561227457306001600160a01b03168482856040516024016121ef929190613b92565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161222d9190613bb7565b600060405180830381855afa9150503d8060008114612268576040519150601f19603f3d011682016040523d82523d6000602084013e61226d565b606091505b5090925090505b811561228257805160208201f35b805160208201fd5b6000806122978484613ea7565b905060ff8111156122d6578060018501206000526122c460008560026122bd9190613f91565b604061270f565b605b6001850153605d60428501535060425b80156122f857808453806122eb856001613f91565b6122f59190613f91565b91505b5092915050565b60008083518310612325578360405163ba4adc2360e01b815260040161124f9190612b3b565b60008484612332816136dd565b9550815181106123445761234461362f565b016020015160f81c90506123588185613f91565b9150845182111561237e578460405163ba4adc2360e01b815260040161124f9190612b3b565b8060421480156123e6575084848151811061239b5761239b61362f565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f5b00000000000000000000000000000000000000000000000000000000000000145b80156124545750846123f9600184613ea7565b815181106124095761240961362f565b6020910101517fff00000000000000000000000000000000000000000000000000000000000000167f5d00000000000000000000000000000000000000000000000000000000000000145b156124a557600061247a8661246a876001613f91565b612475600187613ea7565b612779565b90945090508061249f578560405163ba4adc2360e01b815260040161124f9190612b3b565b506124b6565b80156124b657806020858701012092505b509250929050565b82516060906124cd8385613f91565b11156124d857600080fd5b60008267ffffffffffffffff8111156124f3576124f3612c03565b6040519080825280601f01601f19166020018201604052801561251d576020820181803683370190505b509050602080820190868601016125358282876127d7565b509095945050505050565b6040805160a08101825260008082526060602083018190529282018390528282015260808101919091528180602001905181019061257e9190613fa4565b60808601526001600160e01b0319166060850152604084015260208301526001600160a01b03168152919050565b805160609060011b8067ffffffffffffffff8111156125cd576125cd612c03565b6040519080825280601f01601f1916602001820160405280156125f7576020820181803683370190505b509150602083810190830161260d82828561270f565b505050919050565b606082600060805b6008811061264e576001811b8310156126415761263a8183613f91565b9150612646565b91821c915b60011c61261d565b5083801561265c5750601082105b1561266f5761266c600482613f91565b90505b6000612680600283901c6040613ea7565b90508067ffffffffffffffff81111561269b5761269b612c03565b6040519080825280601f01601f1916602001820160405280156126c5576020820181803683370190505b509350600086831b6000526020850190506126e26000828461270f565b5050505092915050565b60006126f984848461282d565b61270487878561282d565b149695505050505050565b8181015b808310156127735783516101005b82851080156127305750600081115b156127665760031901600f82821c16600a81106127505780605701612755565b806030015b905080865350600190940193612721565b5050602084019350612713565b50505050565b60008060406127888585613ea7565b111561279357600080fd5b6000806127a1878787612851565b91509150806127b95750600092508291506127cf9050565b50602001516004858503604003021c9150600190505b935093915050565b6020811061280f57815183526127ee602084613f91565b92506127fb602083613f91565b9150612808602082613ea7565b90506127d7565b905182516020929092036101000a6000190180199091169116179052565b825160009061283c8385613f91565b111561284757600080fd5b5091016020012090565b60606000806128608585613ea7565b905061286d60028261405d565b6001036128bc5760405162461bcd60e51b815260206004820152601560248201527f496e76616c696420737472696e67206c656e6774680000000000000000000000604482015260640161124f565b6128c7600282614071565b67ffffffffffffffff8111156128df576128df612c03565b6040519080825280601f01601f191660200182016040528015612909576020820181803683370190505b50925060019150855184111561291e57600080fd5b61296f565b6000603a8210602f8311161561293b5750602f190190565b6047821060408311161561295157506036190190565b6067821060608311161561296757506056190190565b5060ff919050565b60208601855b858110156129d45761298c8183015160001a612923565b61299e6001830184015160001a612923565b60ff811460ff831417156129b7576000955050506129d4565b60049190911b178060028984030487016020015350600201612975565b505050935093915050565b828054828255906000526020600020908101928215612a25579160200282015b82811115612a255782518290612a1590826140cb565b50916020019190600101906129ff565b50610b9e9291505b80821115610b9e576000612a418282612a4a565b50600101612a2d565b508054612a569061351b565b6000825580601f10612a66575050565b601f0160209004906000526020600020908101906115a591905b80821115610b9e5760008155600101612a80565b6001600160e01b0319811681146115a557600080fd5b80356112f281612a94565b600060208284031215612ac757600080fd5b81356120cf81612a94565b600060208284031215612ae457600080fd5b5035919050565b60005b83811015612b06578181015183820152602001612aee565b50506000910152565b60008151808452612b27816020860160208601612aeb565b601f01601f19169290920160200192915050565b6020815260006120cf6020830184612b0f565b60008083601f840112612b6057600080fd5b50813567ffffffffffffffff811115612b7857600080fd5b602083019150836020828501011115612b9057600080fd5b9250929050565b60008060008060408587031215612bad57600080fd5b843567ffffffffffffffff80821115612bc557600080fd5b612bd188838901612b4e565b90965094506020870135915080821115612bea57600080fd5b50612bf787828801612b4e565b95989497509550505050565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715612c3c57612c3c612c03565b60405290565b60405160a0810167ffffffffffffffff81118282101715612c3c57612c3c612c03565b604051601f8201601f1916810167ffffffffffffffff81118282101715612c8e57612c8e612c03565b604052919050565b600067ffffffffffffffff821115612cb057612cb0612c03565b5060051b60200190565b600067ffffffffffffffff821115612cd457612cd4612c03565b50601f01601f191660200190565b600082601f830112612cf357600080fd5b8135612d06612d0182612cba565b612c65565b818152846020838601011115612d1b57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112612d4957600080fd5b81356020612d59612d0183612c96565b82815260059290921b84018101918181019086841115612d7857600080fd5b8286015b84811015612db857803567ffffffffffffffff811115612d9c5760008081fd5b612daa8986838b0101612ce2565b845250918301918301612d7c565b509695505050505050565b600060208284031215612dd557600080fd5b813567ffffffffffffffff811115612dec57600080fd5b6122f584828501612d38565b60008060408385031215612e0b57600080fd5b823567ffffffffffffffff811115612e2257600080fd5b612e2e85828601612ce2565b95602094909401359450505050565b606081526000612e506060830186612b0f565b6001600160a01b0394851660208401529290931660409091015292915050565b600060a08284031215612e8257600080fd5b50919050565b60008083601f840112612e9a57600080fd5b50813567ffffffffffffffff811115612eb257600080fd5b6020830191508360208260051b8501011115612b9057600080fd5b60008060008060608587031215612ee357600080fd5b843567ffffffffffffffff80821115612efb57600080fd5b612f0788838901612e70565b95506020870135915080821115612f1d57600080fd5b612f2988838901612e88565b90955093506040870135915080821115612f4257600080fd5b50612f4f87828801612ce2565b91505092959194509250565b604081526000612f6e6040830185612b0f565b90506001600160a01b03831660208301529392505050565b6001600160a01b03811681146115a557600080fd5b600060808284031215612fad57600080fd5b6040516080810167ffffffffffffffff8282108183111715612fd157612fd1612c03565b8160405282935084359150612fe582612f86565b90825260208401359080821115612ffb57600080fd5b61300786838701612ce2565b6020840152604085013591508082111561302057600080fd5b5061302d85828601612ce2565b604083015250606083013560608201525092915050565b6000602080838503121561305757600080fd5b823567ffffffffffffffff8082111561306f57600080fd5b908401906040828703121561308357600080fd5b61308b612c19565b82358281111561309a57600080fd5b8301601f810188136130ab57600080fd5b80356130b9612d0182612c96565b81815260059190911b8201860190868101908a8311156130d857600080fd5b8784015b83811015613110578035878111156130f45760008081fd5b6131028d8b83890101612f9b565b8452509188019188016130dc565b508452505050828401358281111561312757600080fd5b61313388828601612d38565b948201949094529695505050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156131d1578284038952815160806001600160a01b03825116865286820151818888015261319582880182612b0f565b915050604080830151878303828901526131af8382612b0f565b6060948501519890940197909752505098850198935090840190600101613162565b5091979650505050505050565b600081518084526020808501808196508360051b8101915082860160005b858110156131d1578284038952613214848351612b0f565b988501989350908401906001016131fc565b6020815260008251604060208401526132426060840182613144565b90506020840151601f1984830301604085015261325f82826131de565b95945050505050565b60008060008060006060868803121561328057600080fd5b853567ffffffffffffffff8082111561329857600080fd5b6132a489838a01612e70565b965060208801359150808211156132ba57600080fd5b6132c689838a01612e88565b909650945060408801359150808211156132df57600080fd5b506132ec88828901612b4e565b969995985093965092949392505050565b60008060008060006060868803121561331557600080fd5b853567ffffffffffffffff8082111561332d57600080fd5b61333989838a01612b4e565b9097509550602088013591508082111561335257600080fd5b61335e89838a01612b4e565b9095509350604088013591508082111561337757600080fd5b5061338488828901612d38565b9150509295509295909350565b6000602082840312156133a357600080fd5b813567ffffffffffffffff8111156133ba57600080fd5b6122f584828501612ce2565b6000806000606084860312156133db57600080fd5b833567ffffffffffffffff808211156133f357600080fd5b6133ff87838801612ce2565b945060208601359350604086013591508082111561341c57600080fd5b5061342986828701612d38565b9150509250925092565b6000815160a0845261344860a0850182612b0f565b905060208301516020850152604083015160408501526001600160a01b0360608401511660608501526080830151151560808501528091505092915050565b6020815260006120cf6020830184613433565b600080604083850312156134ad57600080fd5b823567ffffffffffffffff808211156134c557600080fd5b6134d186838701612ce2565b935060208501359150808211156134e757600080fd5b506134f485828601612ce2565b9150509250929050565b60006020828403121561351057600080fd5b81356120cf81612f86565b600181811c9082168061352f57607f821691505b602082108103612e8257634e487b7160e01b600052602260045260246000fd5b803580151581146112f257600080fd5b60008060006060848603121561357457600080fd5b833567ffffffffffffffff8082111561358c57600080fd5b9085019060a082880312156135a057600080fd5b6135a8612c42565b8235828111156135b757600080fd5b6135c389828601612ce2565b825250602083013560208201526040830135604082015260608301356135e881612f86565b60608201526135f96080840161354f565b6080820152945061360c60208701612aaa565b9350604086013591508082111561362257600080fd5b5061342986828701612ce2565b634e487b7160e01b600052603260045260246000fd5b600082601f83011261365657600080fd5b8151613664612d0182612cba565b81815284602083860101111561367957600080fd5b61368a826020830160208701612aeb565b949350505050565b6000602082840312156136a457600080fd5b815167ffffffffffffffff8111156136bb57600080fd5b6122f584828501613645565b634e487b7160e01b600052601160045260246000fd5b6000600182016136ef576136ef6136c7565b5060010190565b6060815260006137096060830186613433565b828103602084015261371b8186613144565b9050828103604084015261372f8185612b0f565b9695505050505050565b600082601f83011261374a57600080fd5b8151602061375a612d0183612c96565b82815260059290921b8401810191818101908684111561377957600080fd5b8286015b84811015612db857805167ffffffffffffffff81111561379d5760008081fd5b6137ab8986838b0101613645565b84525091830191830161377d565b6000602082840312156137cb57600080fd5b815167ffffffffffffffff808211156137e357600080fd5b90830190606082860312156137f757600080fd5b60405160608101818110838211171561381257613812612c03565b60405282518281111561382457600080fd5b61383087828601613645565b8252506020830151602082015260408301518281111561384f57600080fd5b61385b87828601613739565b60408301525095945050505050565b60008235607e1983360301811261388057600080fd5b9190910192915050565b60006103d73683612f9b565b6060815260006138a96060830186612b0f565b82810360208401526138bb8186612b0f565b9150506001600160a01b0383166040830152949350505050565b6000815160208301516001600160e01b03198082169350600483101561260d5760049290920360031b82901b161692915050565b60006020828403121561391b57600080fd5b6120cf8261354f565b6000808335601e1984360301811261393b57600080fd5b83018035915067ffffffffffffffff82111561395657600080fd5b602001915036819003821315612b9057600080fd5b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156139c057603f198886030184526139ae858351612b0f565b94509285019290850190600101613992565b5092979650505050505050565b6001600160e01b031981358181169160048510156139f55780818660040360031b1b83161692505b505092915050565b60008085851115613a0d57600080fd5b83861115613a1a57600080fd5b5050820193919092039150565b600082601f830112613a3857600080fd5b81356020613a48612d0183612c96565b82815260059290921b84018101918181019086841115613a6757600080fd5b8286015b84811015612db857803567ffffffffffffffff811115613a8b5760008081fd5b613a998986838b0101612ce2565b845250918301918301613a6b565b600060208284031215613ab957600080fd5b813567ffffffffffffffff811115613ad057600080fd5b6122f584828501613a27565b60008060408385031215613aef57600080fd5b823567ffffffffffffffff80821115613b0757600080fd5b818501915085601f830112613b1b57600080fd5b81356020613b2b612d0183612c96565b82815260059290921b84018101918181019089841115613b4a57600080fd5b948201945b83861015613b6f57613b608661354f565b82529482019490820190613b4f565b96505086013592505080821115613b8557600080fd5b506134f485828601613a27565b604081526000613ba56040830185612b0f565b828103602084015261325f8185612b0f565b60008251613880818460208701612aeb565b602081526000825160606020840152613be56080840182612b0f565b9050602084015160408401526040840151601f1984830301606085015261325f82826131de565b600080600060608486031215613c2157600080fd5b833567ffffffffffffffff80821115613c3957600080fd5b613c4587838801612ce2565b94506020860135915080821115613c5b57600080fd5b50613c6886828701612ce2565b9250506040840135613c7981612f86565b809150509250925092565b600060208284031215613c9657600080fd5b81516120cf81612f86565b80516112f281612a94565b600060208284031215613cbe57600080fd5b815167ffffffffffffffff80821115613cd657600080fd5b9083019060a08286031215613cea57600080fd5b613cf2612c42565b8251613cfd81612f86565b81526020830151613d0d81612a94565b6020820152604083015182811115613d2457600080fd5b613d3087828601613645565b604083015250613d4260608401613ca1565b6060820152608083015182811115613d5957600080fd5b613d6587828601613645565b60808301525095945050505050565b606081526000613d876060830186613433565b6001600160e01b031985166020840152828103604084015261372f8185612b0f565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b83811015613e3557603f19898403018552815160606001600160a01b03825116855288820151818a870152613e07828701826131de565b91505087820151915084810388860152613e218183612b0f565b968901969450505090860190600101613dd0565b509098975050505050505050565b6001600160a01b038616815260a060208201526000613e6560a08301876131de565b8281036040840152613e778187612b0f565b90506001600160e01b0319851660608401528281036080840152613e9b8185612b0f565b98975050505050505050565b818103818111156103d7576103d76136c7565b60008351613ecc818460208801612aeb565b601760f91b9083019081528351613eea816001840160208801612aeb565b7f2e7265766572736500000000000000000000000000000000000000000000000060019290910191820152600901949350505050565b602081526001600160a01b038251166020820152600060208301516001600160e01b031980821660408501526040850151915060a06060850152613f6760c0850183612b0f565b9150806060860151166080850152506080840151601f198483030160a085015261325f8282612b0f565b808201808211156103d7576103d76136c7565b600080600080600060a08688031215613fbc57600080fd5b8551613fc781612f86565b602087015190955067ffffffffffffffff80821115613fe557600080fd5b613ff189838a01613739565b9550604088015191508082111561400757600080fd5b61401389838a01613645565b94506060880151915061402582612a94565b60808801519193508082111561403a57600080fd5b5061338488828901613645565b634e487b7160e01b600052601260045260246000fd5b60008261406c5761406c614047565b500690565b60008261408057614080614047565b500490565b601f82111561151357600081815260208120601f850160051c810160208610156140ac5750805b601f850160051c820191505b81811015611aeb578281556001016140b8565b815167ffffffffffffffff8111156140e5576140e5612c03565b6140f9816140f3845461351b565b84614085565b602080601f83116001811461412e57600084156141165750858301515b600019600386901b1c1916600185901b178555611aeb565b600085815260208120601f198616915b8281101561415d5788860151825594840194600190910190840161413e565b508582101561417b5787850151600019600388901b60f8161c191681555b5050505050600190811b0190555056fea2646970667358221220a3e3843044d1c58a2e53f64b86f02618959469f5d2f8498e9d9ac984f26fae1f64736f6c6343000811003300000000000000000000000000000000000c2e074ec69a0dfb2997ba6c7d2e1e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001768747470733a2f2f636369702d76322e656e732e78797a000000000000000000