0 txs
1 call
constructor
constructor(address _roleStore, address _dataStore, address _eventEmitter, address _endpoint)
functions
allowInitializePath
viewfunction allowInitializePath(tuple origin) view returns (bool)
currentChainEid
viewfunction currentChainEid() view returns (uint32)
dataStore
viewfunction dataStore() view returns (address)
endpoint
viewfunction endpoint() view returns (address)
eventEmitter
viewfunction eventEmitter() view returns (address)
isComposeMsgSender
viewfunction isComposeMsgSender(tuple, bytes, address _sender) view returns (bool)
lzReduce
purefunction lzReduce(bytes _cmd, bytes[] _responses) pure returns (bytes)
nextNonce
purefunction nextNonce(uint32, bytes32) pure returns (uint64 nonce)
oAppVersion
purefunction oAppVersion() pure returns (uint64 senderVersion, uint64 receiverVersion)
peers
viewfunction peers(uint32 _eid) view returns (bytes32 peer)
quoteReadFee
viewfunction quoteReadFee(tuple[] readRequestInputs, tuple extraOptionsInputs) view returns (tuple fee)
roleStore
viewfunction roleStore() view returns (address)
lzReceive
payablefunction lzReceive(tuple _origin, bytes32 _guid, bytes _message, address _executor, bytes _extraData) payable
sendReadRequests
payablefunction sendReadRequests(tuple[] readRequestInputs, tuple extraOptionsInputs) payable returns (tuple)
setDelegate
nonpayablefunction setDelegate(address _delegate)
events
No events.
errors
EmptyPeer
error EmptyPeer(uint32 eid)
InsufficientMultichainNativeFee
error InsufficientMultichainNativeFee(uint256 msgValue)
InvalidType
error InvalidType()
InvalidVersion
error InvalidVersion()
Unauthorized
error Unauthorized(address msgSender, string role)
creation bytecode
0x61012060405234801561001157600080fd5b50604051613bc5380380613bc5833981016040819052610030916100dc565b6001600160a01b0380851660805283811660a05282811660c052811660e08190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa15801561008c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b0919061013b565b63ffffffff16610100525061016892505050565b6001600160a01b03811681146100d957600080fd5b50565b600080600080608085870312156100f257600080fd5b84516100fd816100c4565b602086015190945061010e816100c4565b604086015190935061011f816100c4565b6060860151909250610130816100c4565b939692955090935050565b60006020828403121561014d57600080fd5b815163ffffffff8116811461016157600080fd5b9392505050565b60805160a05160c05160e0516101005161398661023f6000396000818161014c015281816108d70152818161145e01526114d4015260008181610195015281816103800152818161085701528181610bc3015281816116e501526119e501526000818161027401528181610a9601526110e10152600081816101c9015281816104810152818161052301528181610678015281816107610152818161090201528181610d1201528181610db701528181610ede015281816112db01526114a201526000818161010b01526117c401526139866000f3fe6080604052600436106100b85760003560e01c806313137d65146100bd57806317442b70146100d25780634a4a7b04146100f95780634bf04e8f1461013a5780635e280f1114610183578063660d0d67146101b75780637d25a05e146101eb57806382413eac146102235780639ff78c3014610262578063bb0b6a5314610296578063bf28c14c146102c4578063c3232283146102f1578063ca5eb5e114610311578063eba1cf0814610331578063ff7bd03d1461035e575b600080fd5b6100d06100cb366004612786565b61037e565b005b3480156100de57600080fd5b50604080516001815260026020820152015b60405180910390f35b34801561010557600080fd5b5061012d7f000000000000000000000000000000000000000000000000000000000000000081565b6040516100f09190612827565b34801561014657600080fd5b5061016e7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff90911681526020016100f0565b34801561018f57600080fd5b5061012d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156101c357600080fd5b5061012d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156101f757600080fd5b5061020b610206366004612854565b610474565b6040516001600160401b0390911681526020016100f0565b34801561022f57600080fd5b5061025261023e36600461287e565b6001600160a01b0381163014949350505050565b60405190151581526020016100f0565b34801561026e57600080fd5b5061012d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102a257600080fd5b506102b66102b13660046128e4565b61047d565b6040519081526020016100f0565b3480156102d057600080fd5b506102e46102df36600461294a565b610516565b6040516100f0919061299e565b6103046102ff36600461294a565b6105f4565b6040516100f091906129b5565b34801561031d57600080fd5b506100d061032c3660046129f4565b610b2f565b34801561033d57600080fd5b5061035161034c366004612a11565b610c2d565b6040516100f09190612ad0565b34801561036a57600080fd5b50610252610379366004612ae3565b610cff565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146103f4576040805163a35b150b60e01b81523360048201526024810191909152600d60448201526c13db9b1e48115b991c1bda5b9d609a1b60648201526084015b60405180910390fd5b6020870180359061040e90610409908a6128e4565b610db2565b1461045c5760208701356040805163a35b150b60e01b81526001600160a01b0390921660048301526024820152600960448201526827b7363c902832b2b960b91b60648201526084016103eb565b61046b87878787878787610e74565b50505050505050565b60005b92915050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a6ed563e6104b784611175565b6040518263ffffffff1660e01b81526004016104d591815260200190565b602060405180830381865afa1580156104f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104779190612aff565b61051e612571565b6105ec7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f560405160200161055f90612b18565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b815260040161059391815260200190565b602060405180830381865afa1580156105b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d49190612aff565b6105de86866111f3565b6105e78561157d565b6116db565b949350505050565b6105fc61258b565b61066b60405160200161062d906020808252600a908201526921a7a72a2927a62622a960b11b604082015260600190565b604051602081830303815290604052805190602001206040518060400160405280600a81526020016921a7a72a2927a62622a960b11b8152506117a8565b3360006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016637ae1cfca6106a68461185c565b6040518263ffffffff1660e01b81526004016106c491815260200190565b602060405180830381865afa1580156106e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107059190612b49565b905080610758576040805163a35b150b60e01b81526001600160a01b03841660048201526024810191909152600f60448201526e27b7363c9027b934b3b4b730ba37b960891b60648201526084016103eb565b600030905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f560405160200161079d90612b18565b604051602081830303815290604052805190602001206040518263ffffffff1660e01b81526004016107d191815260200190565b602060405180830381865afa1580156107ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108129190612aff565b9050600061081f836118d1565b604051630271b5cd60e61b81526001600160a01b03858116600483015263ffffffff85166024830152604482018390529192506000917f00000000000000000000000000000000000000000000000000000000000000001690639c6d734090606401602060405180830381865afa15801561089e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108c29190612b82565b6108cd906001612bb3565b905060006108fe827f00000000000000000000000000000000000000000000000000000000000000008787876118dd565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ca446dd96109388361195e565b896040518363ffffffff1660e01b8152600401610956929190612bd2565b6020604051808303816000875af1158015610975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109999190612be9565b5060006109a68c8c6111f3565b905060006109d486836109b88e61157d565b604051806040016040528034815260200160008152508d6119ca565b90506109de6125af565b80516109eb906001611aac565b60408051808201909152600a81526937b934b3b4b730ba37b960b11b60208201528151610a1b916000908d611b11565b6080810151610a2b906001611aac565b60408051808201909152600481526319dd5a5960e21b60208201526080820151610a589160009087611b6e565b60a0810151610a68906001611bc1565b60408051808201909152600381526218db5960ea1b602082015260a0820151610a949160009086611c23565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166324de01e4610acc8c6118d1565b836040518363ffffffff1660e01b8152600401610aea9291906132a9565b600060405180830381600087803b158015610b0457600080fd5b505af1158015610b18573d6000803e3d6000fd5b50939c505050505050505050505050509392505050565b610bac604051602001610b679060208082526011908201527054494d454c4f434b5f4d554c544953494760781b604082015260600190565b604051602081830303815290604052805190602001206040518060400160405280601181526020017054494d454c4f434b5f4d554c544953494760781b8152506117a8565b60405163ca5eb5e160e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190610bf8908490600401612827565b600060405180830381600087803b158015610c1257600080fd5b505af1158015610c26573d6000803e3d6000fd5b5050505050565b60608060005b83811015610c8c5781858583818110610c4e57610c4e6132e9565b9050602002810190610c6091906132ff565b604051602001610c7293929190613345565b60408051601f198184030181529190529150600101610c33565b506000610c998787611c75565b925050508060600151604051602001610cc5919060c09190911b6001600160c01b031916815260080190565b60408051601f1981840301815290829052610ce491849060200161336d565b60405160208183030381529060405292505050949350505050565b6000602082018035906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a6ed563e90610d4c90610d4790876128e4565b611175565b6040518263ffffffff1660e01b8152600401610d6a91815260200190565b602060405180830381865afa158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190612aff565b1492915050565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a6ed563e610ded85611175565b6040518263ffffffff1660e01b8152600401610e0b91815260200190565b602060405180830381865afa158015610e28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4c9190612aff565b9050806104775760405163165b6e0960e31b815263ffffffff841660048201526024016103eb565b6000610e83600882878961339c565b610e8c916133c6565b60c01c90506000610ea0866008818a61339c565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920182905250939450506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691506321f8a7219050610f108b61195e565b6040518263ffffffff1660e01b8152600401610f2e91815260200190565b602060405180830381865afa158015610f4b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f6f9190612be9565b6040805180820182528581526020810185905290516350b78c3f60e11b8152919250906001600160a01b0383169063a16f187e90610fb3908d9085906004016133fc565b600060405180830381600087803b158015610fcd57600080fd5b505af1158015610fe1573d6000803e3d6000fd5b50505050610fed6125af565b8051610ffa906001611aac565b60408051808201909152600a81526937b934b3b4b730ba37b960b11b6020820152815161102a9160009086611b11565b608081015161103a906001611aac565b60408051808201909152600481526319dd5a5960e21b60208201526080820151611067916000908e611b6e565b60a0810151611077906001611bc1565b6110df6000604051806040016040528060078152602001666d65737361676560c81b8152508c8c8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060a0850151929190611c23565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166324de01e4611117856118d1565b836040518363ffffffff1660e01b8152600401611135929190613428565b600060405180830381600087803b15801561114f57600080fd5b505af1158015611163573d6000803e3d6000fd5b50505050505050505050505050505050565b60006040516020016111ab9060208082526010908201526f4d554c5449434841494e5f504545525360801b604082015260600190565b60408051601f1981840301815282825280516020918201209083015263ffffffff8416908201526060015b604051602081830303815290604052805190602001209050919050565b606042826000816001600160401b0381111561121157611211613461565b60405190808252806020026020018201604052801561124a57816020015b61123761269b565b81526020019060019003908161122f5790505b50905060005b8281101561144457600087878381811061126c5761126c6132e9565b905060200281019061127e9190613477565b61128c9060208101906128e4565b90506040518060e001604052808360016112a69190613497565b61ffff16815263ffffffff83166020820152600060408201526001600160401b03871660608201526080016001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663bd02d0f561130985611d45565b6040518263ffffffff1660e01b815260040161132791815260200190565b602060405180830381865afa158015611344573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113689190612aff565b61ffff168152602001898985818110611383576113836132e9565b90506020028101906113959190613477565b6113a69060408101906020016129f4565b6001600160a01b031681526020018989858181106113c6576113c66132e9565b90506020028101906113d89190613477565b6113e69060408101906132ff565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152508351849084908110611430576114306132e9565b602090810291909101015250600101611250565b5060006040518060c00160405280600160ff1681526020017f000000000000000000000000000000000000000000000000000000000000000063ffffffff168152602001600015158152602001856001600160401b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663bd02d0f56114f87f0000000000000000000000000000000000000000000000000000000000000000611d45565b6040518263ffffffff1660e01b815260040161151691815260200190565b602060405180830381865afa158015611533573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115579190612aff565b61ffff16815230602090910152905061157260008383611d83565b979650505050505050565b60606000611590838301604085016134aa565b6001600160801b031615611618576115ab60208401846134aa565b6115bb60408501602086016128e4565b6115cb60608601604087016134aa565b604051608093841b6001600160801b0319908116602083015260e09390931b6001600160e01b0319166030820152921b16603482015260440160405160208183030381529060405261167b565b61162560208401846134aa565b61163560408501602086016128e4565b60405160200161166b92919060809290921b6001600160801b031916825260e01b6001600160e01b031916601082015260140190565b6040516020818303038152906040525b604051600360f01b60208201529091506022016040516020818303038152906040526001825160016116ad91906134d3565b6005846040516020016116c49594939291906134ed565b604051602081830303815290604052915050919050565b6116e3612571565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808763ffffffff16815260200161173288610db2565b815260200186815260200185815260200160001515815250306040518363ffffffff1660e01b8152600401611768929190613554565b6040805180830381865afa158015611784573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105ec9190613629565b60405163ac4ab3fb60e01b8152336004820152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063ac4ab3fb90604401602060405180830381865afa158015611813573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118379190612b49565b61185857338160405163a35b150b60e01b81526004016103eb929190613645565b5050565b60006040516020016118a99060208082526021908201527f4d554c5449434841494e5f415554484f52495a45445f4f524947494e41544f526040820152605360f81b606082015260800190565b60405160208183030381529060405280519060200120826040516020016111d6929190612bd2565b6001600160a01b031690565b600085856118f3866001600160a01b03166118d1565b60405160c09390931b6001600160c01b031916602084015260e091821b6001600160e01b03199081166028850152602c8401919091529085901b16604c8201526050810183905260700160405160208183030381529060405280519060200120905095945050505050565b60006040516020016119a1906020808252601d908201527f4d554c5449434841494e5f475549445f544f5f4f524947494e41544f52000000604082015260600190565b60408051601f1981840301815282825280516020918201209083015281018390526060016111d6565b6119d261258b565b60006119e18460000151611db8565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001611a338c610db2565b81526020018a815260200189815260200160001515815250866040518463ffffffff1660e01b8152600401611a69929190613554565b60806040518083038185885af1158015611a87573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115729190613669565b806001600160401b03811115611ac457611ac4613461565b604051908082528060200260200182016040528015611b0a57816020015b604080518082019091526060815260006020820152815260200190600190039081611ae25790505b5090915250565b8184600001518481518110611b2857611b286132e9565b6020026020010151600001819052508084600001518481518110611b4e57611b4e6132e9565b6020908102919091018101516001600160a01b0390921691015250505050565b8184600001518481518110611b8557611b856132e9565b6020026020010151600001819052508084600001518481518110611bab57611bab6132e9565b6020026020010151602001818152505050505050565b806001600160401b03811115611bd957611bd9613461565b604051908082528060200260200182016040528015611b0a57816020015b6040805180820190915260608082526020820152815260200190600190039081611bf757505090915250565b8184600001518481518110611c3a57611c3a6132e9565b6020026020010151600001819052508084600001518481518110611c6057611c606132e9565b60200260200101516020018190525050505050565b60006060611c816126d9565b600080868187611c92826002613497565b92611c9f9392919061339c565b611ca8916136e3565b60f01c9050611cb8600283613497565b915061ffff8116600114611cdf5760405163a9146eeb60e01b815260040160405180910390fd5b868287611ced826002613497565b92611cfa9392919061339c565b611d03916136e3565b60f01c9450611d13600283613497565b9150611d20878784611de0565b909450915085821015611d3c57611d38878784611fc1565b5092505b50509250925092565b60006040516020016111ab906020808252601890820152774d554c5449434841494e5f434f4e4649524d4154494f4e5360401b604082015260600190565b60606000611d9185856121be565b9050826020015163ffffffff166000146105ec57611daf818461224e565b95945050505050565b6000813414611ddc576040516377f8f16960e01b81523460048201526024016103eb565b5090565b6060816000858286611df3826002613497565b92611e009392919061339c565b611e09916136e3565b60f01c9050611e19600283613497565b91508061ffff166001600160401b03811115611e3757611e37613461565b604051908082528060200260200182016040528015611e7057816020015b611e5d61269b565b815260200190600190039081611e555790505b50925060005b8161ffff168161ffff161015611fb7576000878785818110611e9a57611e9a6132e9565b919091013560f81c9150611eb19050600185613497565b935060ff8116600114611ed75760405163a9146eeb60e01b815260040160405180910390fd5b6000888589611ee7826002613497565b92611ef49392919061339c565b611efd916136e3565b60f01c9050611f0d600286613497565b9450600089868a611f1f826002613497565b92611f2c9392919061339c565b611f35916136e3565b60f01c9050611f45600287613497565b955060001961ffff821601611f9357600080611f638c8c8a876122a1565b9150915080975081898761ffff1681518110611f8157611f816132e9565b60200260200101819052505050611fac565b60405163b968846160e01b815260040160405180910390fd5b505050600101611e76565b5050935093915050565b611fc96126d9565b816000858583818110611fde57611fde6132e9565b919091013560f81c9150611ff59050600183613497565b915060ff811660011461201b5760405163a9146eeb60e01b815260040160405180910390fd5b600086838761202b826002613497565b926120389392919061339c565b612041916136e3565b60f01c9050612051600284613497565b925061ffff81166001146120785760405163b968846160e01b815260040160405180910390fd5b86868481811061208a5761208a6132e9565b919091013560f81c8552506120a0600184613497565b92508683876120b0826004613497565b926120bd9392919061339c565b6120c691613719565b60e01c60208501526120d9600484613497565b92508686848181106120ed576120ed6132e9565b600192013560f81c82146040870152506121079084613497565b9250868387612117826008613497565b926121249392919061339c565b61212d916133c6565b60c01c6060850152612140600884613497565b9250868387612150826002613497565b9261215d9392919061339c565b612166916136e3565b60f01c6080850152612179600284613497565b9250868387612189826014613497565b926121969392919061339c565b61219f9161374f565b60601c60a08501526121b2601484613497565b92505050935093915050565b606060006001846121cf855161247c565b6040516001600160f01b031960f094851b8116602083015292841b83166022820152921b166024820152602601604051602081830303815290604052905060005b83518110156122465761223c8285838151811061222f5761222f6132e9565b60200260200101516124df565b9150600101612210565b509392505050565b606082600180846000015185602001518660400151876060015188608001518960a0015160405160200161228a99989796959493929190613785565b604051602081830303815290604052905092915050565b6122a961269b565b61ffff821681528260008682876122c1826002613497565b926122ce9392919061339c565b6122d7916136e3565b60f01c90506122e7600283613497565b91508682876122f7826004613497565b926123049392919061339c565b61230d91613719565b60e01c6020840152612320600483613497565b9150868683818110612334576123346132e9565b600192013560f81c821460408601525061234e9083613497565b915086828761235e826008613497565b9261236b9392919061339c565b612374916133c6565b60c01c6060840152612387600883613497565b9150868287612397826002613497565b926123a49392919061339c565b6123ad916136e3565b60f01c60808401526123c0600283613497565b91508682876123d0826014613497565b926123dd9392919061339c565b6123e69161374f565b60601c60a08401526123f9601483613497565b91506000612408602383613846565b905087838861241b61ffff851683613497565b926124289392919061339c565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060c085015261246f61ffff821684613497565b9250505094509492505050565b600061ffff821115611ddc5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201526536206269747360d01b60648201526084016103eb565b60606000836001846000015160016125078760c001515160236125029190613497565b61247c565b60208089015160405161251f97969594939201613860565b60408051601f19818403018152828252908501516060860151608087015160a088015160c0890151949650612559958795906020016138d3565b60405160208183030381529060405291505092915050565b604051806040016040528060008152602001600081525090565b60408051606081018252600080825260208201529081016125aa612571565b905290565b604080516101208101909152606060e08201818152610100830191909152819081526020016125f1604051806040016040528060608152602001606081525090565b8152602001612613604051806040016040528060608152602001606081525090565b8152602001612635604051806040016040528060608152602001606081525090565b8152602001612657604051806040016040528060608152602001606081525090565b8152602001612679604051806040016040528060608152602001606081525090565b81526020016125aa604051806040016040528060608152602001606081525090565b6040805160e08101825260008082526020820181905291810182905260608082018390526080820183905260a082019290925260c081019190915290565b6040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915290565b60006060828403121561272057600080fd5b50919050565b60008083601f84011261273857600080fd5b5081356001600160401b0381111561274f57600080fd5b60208301915083602082850101111561276757600080fd5b9250929050565b6001600160a01b038116811461278357600080fd5b50565b600080600080600080600060e0888a0312156127a157600080fd5b6127ab898961270e565b96506060880135955060808801356001600160401b038111156127cd57600080fd5b6127d98a828b01612726565b90965094505060a08801356127ed8161276e565b925060c08801356001600160401b0381111561280857600080fd5b6128148a828b01612726565b989b979a50959850939692959293505050565b6001600160a01b0391909116815260200190565b803563ffffffff8116811461284f57600080fd5b919050565b6000806040838503121561286757600080fd5b6128708361283b565b946020939093013593505050565b60008060008060a0858703121561289457600080fd5b61289e868661270e565b935060608501356001600160401b038111156128b957600080fd5b6128c587828801612726565b90945092505060808501356128d98161276e565b939692955090935050565b6000602082840312156128f657600080fd5b6128ff8261283b565b9392505050565b60008083601f84011261291857600080fd5b5081356001600160401b0381111561292f57600080fd5b6020830191508360208260051b850101111561276757600080fd5b60008060006080848603121561295f57600080fd5b83356001600160401b0381111561297557600080fd5b61298186828701612906565b90945092506129959050856020860161270e565b90509250925092565b815181526020808301519082015260408101610477565b815181526020808301516001600160401b03169082015260408083015160808301916129ed9084018280518252602090810151910152565b5092915050565b600060208284031215612a0657600080fd5b81356128ff8161276e565b60008060008060408587031215612a2757600080fd5b84356001600160401b03811115612a3d57600080fd5b612a4987828801612726565b90955093505060208501356001600160401b03811115612a6857600080fd5b612a7487828801612906565b95989497509550505050565b60005b83811015612a9b578181015183820152602001612a83565b50506000910152565b60008151808452612abc816020860160208601612a80565b601f01601f19169290920160200192915050565b6020815260006128ff6020830184612aa4565b600060608284031215612af557600080fd5b6128ff838361270e565b600060208284031215612b1157600080fd5b5051919050565b602080825260179082015276135553151250d210525397d491505117d0d21053939153604a1b604082015260600190565b600060208284031215612b5b57600080fd5b815180151581146128ff57600080fd5b80516001600160401b038116811461284f57600080fd5b600060208284031215612b9457600080fd5b6128ff82612b6b565b634e487b7160e01b600052601160045260246000fd5b6001600160401b03818116838216019081111561047757610477612b9d565b9182526001600160a01b0316602082015260400190565b600060208284031215612bfb57600080fd5b81516128ff8161276e565b600082825180855260208501945060208160051b8301016020850160005b83811015612cad57601f198584030188528151805160408552612c4a6040860182612aa4565b6020928301518682038785015280518083529084019360009350909101905b80831015612c945783516001600160a01b031682526020938401936001939093019290910190612c69565b5060209a8b019a90955093909301925050600101612c24565b50909695505050505050565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612d3357605f198886030183528351805160408752612d0b6040880182612aa4565b6020928301516001600160a01b03169783019790975250938401939290920191600101612ce5565b5050505060208301518482036020860152611daf8282612c06565b600082825180855260208501945060208160051b8301016020850160005b83811015612cad57601f198584030188528151805160408552612d926040860182612aa4565b6020928301518682038785015280518083529084019360009350909101905b80831015612dd45783518252602082019150602084019350600183019250612db1565b5060209a8b019a90955093909301925050600101612d6c565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612e5e57605f198886030183528351805160408752612e3f6040880182612aa4565b6020928301519783019790975250938401939290920191600101612e19565b5050505060208301518482036020860152611daf8282612d4e565b600082825180855260208501945060208160051b8301016020850160005b83811015612cad57601f198584030188528151805160408552612ebd6040860182612aa4565b6020928301518682038785015280518083529084019360009350909101905b80831015612f0157835115158252602082019150602084019350600183019250612edc565b5060209a8b019a90955093909301925050600101612e97565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612f8d57605f198886030183528351805160408752612f6c6040880182612aa4565b60209283015115159783019790975250938401939290920191600101612f46565b5050505060208301518482036020860152611daf8282612e79565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b81811015612e5e57605f198886030183528351805160408752612ffa6040880182612aa4565b6020928301519783019790975250938401939290920191600101612fd4565b600082825180855260208501945060208160051b8301016020850160005b83811015612cad57601f19858403018852815180516040855261305d6040860182612aa4565b6020928301518682038785015280518083529084019391925081830191600582901b84010160005b828110156130b657601f198583030184526130a1828751612aa4565b60209687019694909401939150600101613085565b508097505050505050602082019150602088019750600181019050613037565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561315a57605f1988860301835283518051604087526131286040880182612aa4565b90506020820151915086810360208801526131438183612aa4565b965050506020938401939290920191600101613102565b5050505060208301518482036020860152611daf8282613019565b60006040830182516040855281815180845260608701915060608160051b880101935060208301925060005b8181101561315a57605f1988860301835283518051604087526131c76040880182612aa4565b90506020820151915086810360208801526131e28183612aa4565b9650505060209384019392909201916001016131a1565b6000815160e0845261320e60e0850182612cb9565b9050602083015184820360208601526132278282612ded565b915050604083015184820360408601526132418282612ded565b9150506060830151848203606086015261325b8282612f1a565b915050608083015184820360808601526132758282612fa8565b91505060a083015184820360a086015261328f82826130d6565b91505060c083015184820360c0860152611daf8282613175565b60608152601060608201526f73656e6452656164526571756573747360801b608082015282602082015260a0604082015260006105ec60a08301846131f9565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261331657600080fd5b8301803591506001600160401b0382111561333057600080fd5b60200191503681900382131561276757600080fd5b60008451613357818460208901612a80565b8201838582376000930192835250909392505050565b6000835161337f818460208801612a80565b835190830190613393818360208801612a80565b01949350505050565b600080858511156133ac57600080fd5b838611156133b957600080fd5b5050820193919092039150565b80356001600160c01b031981169060088410156129ed576001600160c01b031960089490940360031b84901b1690921692915050565b82815260406020820152815160408201526000602083015160406060840152611daf6080840182612aa4565b6060815260096060820152686c7a5265636569766560b81b608082015282602082015260a0604082015260006105ec60a08301846131f9565b634e487b7160e01b600052604160045260246000fd5b60008235605e1983360301811261348d57600080fd5b9190910192915050565b8082018082111561047757610477612b9d565b6000602082840312156134bc57600080fd5b81356001600160801b03811681146128ff57600080fd5b61ffff818116838216019081111561047757610477612b9d565b600086516134ff818460208b01612a80565b6001600160f81b031960f888811b82169285019283526001600160f01b031960f089901b16600184015286901b1660038201528351613545816004840160208801612a80565b01600401979650505050505050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261358a60e0840182612aa4565b90506060850151603f198483030160a08501526135a78282612aa4565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156135df57600080fd5b604080519081016001600160401b038111828210171561360f57634e487b7160e01b600052604160045260246000fd5b604052825181526020928301519281019290925250919050565b60006040828403121561363b57600080fd5b6128ff83836135cd565b6001600160a01b03831681526040602082018190526000906105ec90830184612aa4565b6000608082840312801561367c57600080fd5b50604051600090606081016001600160401b03811182821017156136ae57634e487b7160e01b83526041600452602483fd5b604052835180825291506136c460208501612b6b565b60208201526136d685604086016135cd565b6040820152949350505050565b80356001600160f01b031981169060028410156129ed576001600160f01b031960029490940360031b84901b1690921692915050565b80356001600160e01b031981169060048410156129ed576001600160e01b031960049490940360031b84901b1690921692915050565b80356001600160601b031981169060148410156129ed576001600160601b031960149490940360031b84901b1690921692915050565b60008a51613797818460208f01612a80565b60f88b811b6001600160f81b031990811692850192835260f08c901b6001600160f01b03191660018401528a821b16600383015260e089901b6001600160e01b0319166004830152871515901b6008820152613802600982018760c01b6001600160c01b0319169052565b61381b601182018660f01b6001600160f01b0319169052565b613834601382018560601b6001600160601b0319169052565b6027019b9a5050505050505050505050565b61ffff828116828216039081111561047757610477612b9d565b60008751613872818460208c01612a80565b60f89790971b6001600160f81b0319169190960190815260f094851b6001600160f01b0319908116600183015293851b841660038201529190931b909116600582015260e09190911b6001600160e01b0319166007820152600b0192915050565b600087516138e5818460208c01612a80565b87151560f81b90830190815260c087901b6001600160c01b031916600182015260f086901b6001600160f01b0319166009820152606085901b6001600160601b031916600b820152835161394081601f840160208801612a80565b01601f019897505050505050505056fea26469706673582212200f91a7d4b8ef31043fe0022b65b3a0dacbdaa91d1239084b08bab0eb75f5eb6e64736f6c634300081d00330000000000000000000000003c3d99fd298f679dbc2cecd132b4ec4d0f5e6e72000000000000000000000000fd70de6b91282d8017aa4e741e9ae325cab992d8000000000000000000000000c8ee91a54287db53897056e12d9819156d3822fb0000000000000000000000001a44076050125825900e736c501f859c50fe728c