@layerzerolabs/oapp-alt-evm
Version:
LayerZero Labs reference EVM OmniChain Application (OAppAlt) for EndpointV2Alt implementation
1 lines • 89.3 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"_endpoint","type":"address","internalType":"address"},{"name":"_delegate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowInitializePath","inputs":[{"name":"origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"data","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"endpoint","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ILayerZeroEndpointV2"}],"stateMutability":"view"},{"type":"function","name":"isComposeMsgSender","inputs":[{"name":"","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzReceive","inputs":[{"name":"_origin","type":"tuple","internalType":"struct Origin","components":[{"name":"srcEid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"}]},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_message","type":"bytes","internalType":"bytes"},{"name":"_executor","type":"address","internalType":"address"},{"name":"_extraData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextNonce","inputs":[{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"nonce","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oAppVersion","inputs":[],"outputs":[{"name":"senderVersion","type":"uint64","internalType":"uint64"},{"name":"receiverVersion","type":"uint64","internalType":"uint64"}],"stateMutability":"pure"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"peers","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}],"outputs":[{"name":"peer","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quote","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_payInLzToken","type":"bool","internalType":"bool"}],"outputs":[{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"send","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_message","type":"string","internalType":"string"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_nativeFee","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"receipt","type":"tuple","internalType":"struct MessagingReceipt","components":[{"name":"guid","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint64","internalType":"uint64"},{"name":"fee","type":"tuple","internalType":"struct MessagingFee","components":[{"name":"nativeFee","type":"uint256","internalType":"uint256"},{"name":"lzTokenFee","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"payable"},{"type":"function","name":"setDelegate","inputs":[{"name":"_delegate","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPeer","inputs":[{"name":"_eid","type":"uint32","internalType":"uint32"},{"name":"_peer","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PeerSet","inputs":[{"name":"eid","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"peer","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"error","name":"InvalidDelegate","inputs":[]},{"type":"error","name":"InvalidEndpointCall","inputs":[]},{"type":"error","name":"LzTokenUnavailable","inputs":[]},{"type":"error","name":"NativeTokenUnavailable","inputs":[]},{"type":"error","name":"NoPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"NotEnoughNative","inputs":[{"name":"msgValue","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"OnlyEndpoint","inputs":[{"name":"addr","type":"address","internalType":"address"}]},{"type":"error","name":"OnlyPeer","inputs":[{"name":"eid","type":"uint32","internalType":"uint32"},{"name":"sender","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60e0604052601560a09081527f4e6f7468696e67207265636569766564207965742e000000000000000000000060c0526002906200003e908262000230565b503480156200004b575f80fd5b506040516200174b3803806200174b8339810160408190526200006e9162000318565b81818181806001600160a01b038116620000a157604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000ac8162000143565b506001600160a01b038083166080528116620000db57604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b15801562000120575f80fd5b505af115801562000133573d5f803e3d5ffd5b505050505050505050506200034e565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620001bb57607f821691505b602082108103620001da57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200022b57805f5260205f20601f840160051c81016020851015620002075750805b601f840160051c820191505b8181101562000228575f815560010162000213565b50505b505050565b81516001600160401b038111156200024c576200024c62000192565b62000264816200025d8454620001a6565b84620001e0565b602080601f8311600181146200029a575f8415620002825750858301515b5f19600386901b1c1916600185901b178555620002f4565b5f85815260208120601f198616915b82811015620002ca57888601518255948401946001909101908401620002a9565b5085821015620002e857878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b80516001600160a01b038116811462000313575f80fd5b919050565b5f80604083850312156200032a575f80fd5b6200033583620002fc565b91506200034560208401620002fc565b90509250929050565b6080516113ac6200039f5f395f81816101530152818161033701528181610561015281816107d2015281816108af0152818161097c01528181610a3301528181610a620152610b1901526113ac5ff3fe6080604052600436106100e4575f3560e01c806382413eac11610087578063ca5eb5e111610057578063ca5eb5e1146102ac578063f2fde38b146102cb578063f77e5dd3146102ea578063ff7bd03d14610316575f80fd5b806382413eac146101f95780638da5cb5b14610237578063b4ab5dd114610253578063bb0b6a5314610273575f80fd5b80635e280f11116100c25780635e280f1114610142578063715018a61461018d57806373d4a13a146101a15780637d25a05e146101c2575f80fd5b806313137d65146100e857806317442b70146100fd5780633400288b14610123575b5f80fd5b6100fb6100f6366004610cb7565b610335565b005b348015610108575f80fd5b50604080516001815260026020820152015b60405180910390f35b34801561012e575f80fd5b506100fb61013d366004610d67565b6103f5565b34801561014d575f80fd5b506101757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161011a565b348015610198575f80fd5b506100fb61040b565b3480156101ac575f80fd5b506101b561041e565b60405161011a9190610dd2565b3480156101cd575f80fd5b506101e16101dc366004610d67565b6104aa565b6040516001600160401b03909116815260200161011a565b348015610204575f80fd5b50610227610213366004610deb565b6001600160a01b0381163014949350505050565b604051901515815260200161011a565b348015610242575f80fd5b505f546001600160a01b0316610175565b610266610261366004610ef1565b6104b2565b60405161011a9190610f69565b34801561027e575f80fd5b5061029e61028d366004610faa565b60016020525f908152604090205481565b60405190815260200161011a565b3480156102b7575f80fd5b506100fb6102c6366004610fc3565b61053a565b3480156102d6575f80fd5b506100fb6102e5366004610fc3565b6105bb565b3480156102f5575f80fd5b50610309610304366004610fde565b6105f8565b60405161011a919061106b565b348015610321575f80fd5b50610227610330366004611082565b610644565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610385576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061039f9061039a908a610faa565b610678565b146103dd576103b16020880188610faa565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161037c565b6103ec878787878787876106b3565b50505050505050565b6103fd6106d6565b6104078282610702565b5050565b6104136106d6565b61041c5f610756565b565b6002805461042b9061109c565b80601f01602080910402602001604051908101604052809291908181526020018280546104579061109c565b80156104a25780601f10610479576101008083540402835291602001916104a2565b820191905f5260205f20905b81548152906001019060200180831161048557829003601f168201915b505050505081565b5f5b92915050565b6104ba610c06565b5f856040516020016104cc9190610dd2565b60408051601f198184030181526020601f8801819004810284018101909252868352925061052f91899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506107a59050565b979650505050505050565b6105426106d6565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156105a2575f80fd5b505af11580156105b4573d5f803e3d5ffd5b5050505050565b6105c36106d6565b6001600160a01b0381166105ec57604051631e4fbdf760e01b81525f600482015260240161037c565b6105f581610756565b50565b604080518082019091525f80825260208201525f8460405160200161061d9190610dd2565b604051602081830303815290604052905061063a8682868661089a565b9695505050505050565b5f60208201803590600190839061065b9086610faa565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f90815260016020526040812054806104ac5760405163f6ff4fb760e01b815263ffffffff8416600482015260240161037c565b6106bf848601866110ce565b6002906106cc9082611150565b5050505050505050565b5f546001600160a01b0316331461041c5760405163118cdaa760e01b815233600482015260240161037c565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ad610c06565b82516107b890610978565b506020830151156107d0576107d08360200151610a5f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a4506040518060a001604052808963ffffffff16815260200161081f8a610678565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b815260040161085a92919061120f565b6080604051808303815f875af1158015610876573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063a91906112d3565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016108fc89610678565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161093192919061120f565b6040805180830381865afa15801561094b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096f9190611341565b95945050505050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fa919061135b565b90506001600160a01b038116610a2357604051638dce522760e01b815260040160405180910390fd5b610a586001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000086610b3a565b5090919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae0919061135b565b90506001600160a01b038116610b09576040516329b99a9560e11b815260040160405180910390fd5b6104076001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000855b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b94908590610b9a565b50505050565b5f8060205f8451602086015f885af180610bb9576040513d5f823e3d81fd5b50505f513d91508115610bd0578060011415610bdd565b6001600160a01b0384163b155b15610b9457604051635274afe760e01b81526001600160a01b038516600482015260240161037c565b60405180606001604052805f80191681526020015f6001600160401b03168152602001610c4460405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610c59575f80fd5b50919050565b5f8083601f840112610c6f575f80fd5b5081356001600160401b03811115610c85575f80fd5b602083019150836020828501011115610c9c575f80fd5b9250929050565b6001600160a01b03811681146105f5575f80fd5b5f805f805f805f60e0888a031215610ccd575f80fd5b610cd78989610c49565b96506060880135955060808801356001600160401b0380821115610cf9575f80fd5b610d058b838c01610c5f565b909750955060a08a01359150610d1a82610ca3565b90935060c08901359080821115610d2f575f80fd5b50610d3c8a828b01610c5f565b989b979a50959850939692959293505050565b803563ffffffff81168114610d62575f80fd5b919050565b5f8060408385031215610d78575f80fd5b610d8183610d4f565b946020939093013593505050565b5f81518084525f5b81811015610db357602081850181015186830182015201610d97565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610de46020830184610d8f565b9392505050565b5f805f8060a08587031215610dfe575f80fd5b610e088686610c49565b935060608501356001600160401b03811115610e22575f80fd5b610e2e87828801610c5f565b9094509250506080850135610e4281610ca3565b939692955090935050565b634e487b7160e01b5f52604160045260245ffd5b5f6001600160401b0380841115610e7a57610e7a610e4d565b604051601f8501601f19908116603f01168101908282118183101715610ea257610ea2610e4d565b81604052809350858152868686011115610eba575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112610ee2575f80fd5b610de483833560208501610e61565b5f805f805f60808688031215610f05575f80fd5b610f0e86610d4f565b945060208601356001600160401b0380821115610f29575f80fd5b610f3589838a01610ed3565b95506040880135915080821115610f4a575f80fd5b50610f5788828901610c5f565b96999598509660600135949350505050565b5f608082019050825182526001600160401b0360208401511660208301526040830151610fa3604084018280518252602090810151910152565b5092915050565b5f60208284031215610fba575f80fd5b610de482610d4f565b5f60208284031215610fd3575f80fd5b8135610de481610ca3565b5f805f8060808587031215610ff1575f80fd5b610ffa85610d4f565b935060208501356001600160401b0380821115611015575f80fd5b61102188838901610ed3565b94506040870135915080821115611036575f80fd5b508501601f81018713611047575f80fd5b61105687823560208401610e61565b92505060608501358015158114610e42575f80fd5b8151815260208083015190820152604081016104ac565b5f60608284031215611092575f80fd5b610de48383610c49565b600181811c908216806110b057607f821691505b602082108103610c5957634e487b7160e01b5f52602260045260245ffd5b5f602082840312156110de575f80fd5b81356001600160401b038111156110f3575f80fd5b6110ff84828501610ed3565b949350505050565b601f82111561114b57805f5260205f20601f840160051c8101602085101561112c5750805b601f840160051c820191505b818110156105b4575f8155600101611138565b505050565b81516001600160401b0381111561116957611169610e4d565b61117d81611177845461109c565b84611107565b602080601f8311600181146111b0575f84156111995750858301515b5f19600386901b1c1916600185901b178555611207565b5f85815260208120601f198616915b828110156111de578886015182559484019460019091019084016111bf565b50858210156111fb57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261124460e0840182610d8f565b90506060850151603f198483030160a08501526112618282610d8f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215611297575f80fd5b604051604081018181106001600160401b03821117156112b9576112b9610e4d565b604052825181526020928301519281019290925250919050565b5f608082840312156112e3575f80fd5b604051606081016001600160401b03828210818311171561130657611306610e4d565b8160405284518352602085015191508082168214611322575f80fd5b5060208201526113358460408501611287565b60408201529392505050565b5f60408284031215611351575f80fd5b610de48383611287565b5f6020828403121561136b575f80fd5b8151610de481610ca356fea26469706673582212207b07927ab234da2cde1532fe10d9d3af70ba2b4b3532894d388310d0f4eae13a64736f6c63430008160033","sourceMap":"470:44:121:-:0;327:2776;470:44;;327:2776;470:44;;;;;;;;;;;;:::i;:::-;;363:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;421:9;432;421;432;;-1:-1:-1;;;;;1273:26:100;;1269:95;;1322:31;;-1:-1:-1;;;1322:31:100;;1350:1;1322:31;;;3327:51:122;3300:18;;1322:31:100;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;;;;;;1047:42:52;;;;;1104:23;;1100:53;;1136:17;;-1:-1:-1;;;1136:17:52;;;;;;;;;;;1100:53;1163:8;;:31;;-1:-1:-1;;;1163:31:52;;-1:-1:-1;;;;;3345:32:122;;;1163:31:52;;;3327:51:122;1163:20:52;;;;;;3300:18:122;;1163:31:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;987:214;;1259:83:0;;363:101:121;;327:2776;;2912:187:100;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:100;;;-1:-1:-1;;;;;;3020:17:100;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:127:122:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:518::-;759:2;754:3;751:11;748:421;;;795:5;792:1;785:16;839:4;836:1;826:18;909:2;897:10;893:19;890:1;886:27;880:4;876:38;945:4;933:10;930:20;927:47;;;-1:-1:-1;968:4:122;927:47;1023:2;1018:3;1014:12;1011:1;1007:20;1001:4;997:31;987:41;;1078:81;1096:2;1089:5;1086:13;1078:81;;;1155:1;1141:16;;1122:1;1111:13;1078:81;;;1082:3;;748:421;657:518;;;:::o;1351:1345::-;1471:10;;-1:-1:-1;;;;;1493:30:122;;1490:56;;;1526:18;;:::i;:::-;1555:97;1645:6;1605:38;1637:4;1631:11;1605:38;:::i;:::-;1599:4;1555:97;:::i;:::-;1707:4;;1764:2;1753:14;;1781:1;1776:663;;;;2483:1;2500:6;2497:89;;;-1:-1:-1;2552:19:122;;;2546:26;2497:89;-1:-1:-1;;1308:1:122;1304:11;;;1300:24;1296:29;1286:40;1332:1;1328:11;;;1283:57;2599:81;;1746:944;;1776:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1812:20:122;;;1930:236;1944:7;1941:1;1938:14;1930:236;;;2033:19;;;2027:26;2012:42;;2125:27;;;;2093:1;2081:14;;;;1960:19;;1930:236;;;1934:3;2194:6;2185:7;2182:19;2179:201;;;2255:19;;;2249:26;-1:-1:-1;;2338:1:122;2334:14;;;2350:3;2330:24;2326:37;2322:42;2307:58;2292:74;;2179:201;;;2426:1;2417:6;2414:1;2410:14;2406:22;2400:4;2393:36;1746:944;;;;;1351:1345;;:::o;2701:177::-;2780:13;;-1:-1:-1;;;;;2822:31:122;;2812:42;;2802:70;;2868:1;2865;2858:12;2802:70;2701:177;;;:::o;2883:293::-;2962:6;2970;3023:2;3011:9;3002:7;2998:23;2994:32;2991:52;;;3039:1;3036;3029:12;2991:52;3062:40;3092:9;3062:40;:::i;:::-;3052:50;;3121:49;3166:2;3155:9;3151:18;3121:49;:::i;:::-;3111:59;;2883:293;;;;;:::o;3181:203::-;327:2776:121;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100e4575f3560e01c806382413eac11610087578063ca5eb5e111610057578063ca5eb5e1146102ac578063f2fde38b146102cb578063f77e5dd3146102ea578063ff7bd03d14610316575f80fd5b806382413eac146101f95780638da5cb5b14610237578063b4ab5dd114610253578063bb0b6a5314610273575f80fd5b80635e280f11116100c25780635e280f1114610142578063715018a61461018d57806373d4a13a146101a15780637d25a05e146101c2575f80fd5b806313137d65146100e857806317442b70146100fd5780633400288b14610123575b5f80fd5b6100fb6100f6366004610cb7565b610335565b005b348015610108575f80fd5b50604080516001815260026020820152015b60405180910390f35b34801561012e575f80fd5b506100fb61013d366004610d67565b6103f5565b34801561014d575f80fd5b506101757f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161011a565b348015610198575f80fd5b506100fb61040b565b3480156101ac575f80fd5b506101b561041e565b60405161011a9190610dd2565b3480156101cd575f80fd5b506101e16101dc366004610d67565b6104aa565b6040516001600160401b03909116815260200161011a565b348015610204575f80fd5b50610227610213366004610deb565b6001600160a01b0381163014949350505050565b604051901515815260200161011a565b348015610242575f80fd5b505f546001600160a01b0316610175565b610266610261366004610ef1565b6104b2565b60405161011a9190610f69565b34801561027e575f80fd5b5061029e61028d366004610faa565b60016020525f908152604090205481565b60405190815260200161011a565b3480156102b7575f80fd5b506100fb6102c6366004610fc3565b61053a565b3480156102d6575f80fd5b506100fb6102e5366004610fc3565b6105bb565b3480156102f5575f80fd5b50610309610304366004610fde565b6105f8565b60405161011a919061106b565b348015610321575f80fd5b50610227610330366004611082565b610644565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610385576040516391ac5e4f60e01b81523360048201526024015b60405180910390fd5b6020870180359061039f9061039a908a610faa565b610678565b146103dd576103b16020880188610faa565b60405163309afaf360e21b815263ffffffff90911660048201526020880135602482015260440161037c565b6103ec878787878787876106b3565b50505050505050565b6103fd6106d6565b6104078282610702565b5050565b6104136106d6565b61041c5f610756565b565b6002805461042b9061109c565b80601f01602080910402602001604051908101604052809291908181526020018280546104579061109c565b80156104a25780601f10610479576101008083540402835291602001916104a2565b820191905f5260205f20905b81548152906001019060200180831161048557829003601f168201915b505050505081565b5f5b92915050565b6104ba610c06565b5f856040516020016104cc9190610dd2565b60408051601f198184030181526020601f8801819004810284018101909252868352925061052f91899184919089908990819084018382808284375f920182905250604080518082019091528b8152602081019190915292503391506107a59050565b979650505050505050565b6105426106d6565b60405163ca5eb5e160e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b1580156105a2575f80fd5b505af11580156105b4573d5f803e3d5ffd5b5050505050565b6105c36106d6565b6001600160a01b0381166105ec57604051631e4fbdf760e01b81525f600482015260240161037c565b6105f581610756565b50565b604080518082019091525f80825260208201525f8460405160200161061d9190610dd2565b604051602081830303815290604052905061063a8682868661089a565b9695505050505050565b5f60208201803590600190839061065b9086610faa565b63ffffffff16815260208101919091526040015f20541492915050565b63ffffffff81165f90815260016020526040812054806104ac5760405163f6ff4fb760e01b815263ffffffff8416600482015260240161037c565b6106bf848601866110ce565b6002906106cc9082611150565b5050505050505050565b5f546001600160a01b0316331461041c5760405163118cdaa760e01b815233600482015260240161037c565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6107ad610c06565b82516107b890610978565b506020830151156107d0576107d08360200151610a5f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a4506040518060a001604052808963ffffffff16815260200161081f8a610678565b81526020018881526020018781526020015f8760200151111515815250846040518363ffffffff1660e01b815260040161085a92919061120f565b6080604051808303815f875af1158015610876573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063a91906112d3565b604080518082019091525f80825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016108fc89610678565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b815260040161093192919061120f565b6040805180830381865afa15801561094b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061096f9190611341565b95945050505050565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e1758bd86040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109d6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109fa919061135b565b90506001600160a01b038116610a2357604051638dce522760e01b815260040160405180910390fd5b610a586001600160a01b038216337f000000000000000000000000000000000000000000000000000000000000000086610b3a565b5090919050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015610abc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ae0919061135b565b90506001600160a01b038116610b09576040516329b99a9560e11b815260040160405180910390fd5b6104076001600160a01b038216337f0000000000000000000000000000000000000000000000000000000000000000855b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052610b94908590610b9a565b50505050565b5f8060205f8451602086015f885af180610bb9576040513d5f823e3d81fd5b50505f513d91508115610bd0578060011415610bdd565b6001600160a01b0384163b155b15610b9457604051635274afe760e01b81526001600160a01b038516600482015260240161037c565b60405180606001604052805f80191681526020015f6001600160401b03168152602001610c4460405180604001604052805f81526020015f81525090565b905290565b5f60608284031215610c59575f80fd5b50919050565b5f8083601f840112610c6f575f80fd5b5081356001600160401b03811115610c85575f80fd5b602083019150836020828501011115610c9c575f80fd5b9250929050565b6001600160a01b03811681146105f5575f80fd5b5f805f805f805f60e0888a031215610ccd575f80fd5b610cd78989610c49565b96506060880135955060808801356001600160401b0380821115610cf9575f80fd5b610d058b838c01610c5f565b909750955060a08a01359150610d1a82610ca3565b90935060c08901359080821115610d2f575f80fd5b50610d3c8a828b01610c5f565b989b979a50959850939692959293505050565b803563ffffffff81168114610d62575f80fd5b919050565b5f8060408385031215610d78575f80fd5b610d8183610d4f565b946020939093013593505050565b5f81518084525f5b81811015610db357602081850181015186830182015201610d97565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610de46020830184610d8f565b9392505050565b5f805f8060a08587031215610dfe575f80fd5b610e088686610c49565b935060608501356001600160401b03811115610e22575f80fd5b610e2e87828801610c5f565b9094509250506080850135610e4281610ca3565b939692955090935050565b634e487b7160e01b5f52604160045260245ffd5b5f6001600160401b0380841115610e7a57610e7a610e4d565b604051601f8501601f19908116603f01168101908282118183101715610ea257610ea2610e4d565b81604052809350858152868686011115610eba575f80fd5b858560208301375f602087830101525050509392505050565b5f82601f830112610ee2575f80fd5b610de483833560208501610e61565b5f805f805f60808688031215610f05575f80fd5b610f0e86610d4f565b945060208601356001600160401b0380821115610f29575f80fd5b610f3589838a01610ed3565b95506040880135915080821115610f4a575f80fd5b50610f5788828901610c5f565b96999598509660600135949350505050565b5f608082019050825182526001600160401b0360208401511660208301526040830151610fa3604084018280518252602090810151910152565b5092915050565b5f60208284031215610fba575f80fd5b610de482610d4f565b5f60208284031215610fd3575f80fd5b8135610de481610ca3565b5f805f8060808587031215610ff1575f80fd5b610ffa85610d4f565b935060208501356001600160401b0380821115611015575f80fd5b61102188838901610ed3565b94506040870135915080821115611036575f80fd5b508501601f81018713611047575f80fd5b61105687823560208401610e61565b92505060608501358015158114610e42575f80fd5b8151815260208083015190820152604081016104ac565b5f60608284031215611092575f80fd5b610de48383610c49565b600181811c908216806110b057607f821691505b602082108103610c5957634e487b7160e01b5f52602260045260245ffd5b5f602082840312156110de575f80fd5b81356001600160401b038111156110f3575f80fd5b6110ff84828501610ed3565b949350505050565b601f82111561114b57805f5260205f20601f840160051c8101602085101561112c5750805b601f840160051c820191505b818110156105b4575f8155600101611138565b505050565b81516001600160401b0381111561116957611169610e4d565b61117d81611177845461109c565b84611107565b602080601f8311600181146111b0575f84156111995750858301515b5f19600386901b1c1916600185901b178555611207565b5f85815260208120601f198616915b828110156111de578886015182559484019460019091019084016111bf565b50858210156111fb57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261124460e0840182610d8f565b90506060850151603f198483030160a08501526112618282610d8f565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b5f60408284031215611297575f80fd5b604051604081018181106001600160401b03821117156112b9576112b9610e4d565b604052825181526020928301519281019290925250919050565b5f608082840312156112e3575f80fd5b604051606081016001600160401b03828210818311171561130657611306610e4d565b8160405284518352602085015191508082168214611322575f80fd5b5060208201526113358460408501611287565b60408201529392505050565b5f60408284031215611351575f80fd5b610de48383611287565b5f6020828403121561136b575f80fd5b8151610de481610ca356fea26469706673582212207b07927ab234da2cde1532fe10d9d3af70ba2b4b3532894d388310d0f4eae13a64736f6c63430008160033","sourceMap":"327:2776:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4368:708:53;;;;;;:::i;:::-;;:::i;:::-;;1587:235:0;;;;;;;;;;-1:-1:-1;1587:235:0;;;843:1:54;1921:34:122;;678:1:53;1986:2:122;1971:18;;1964:43;1857:18;1587:235:0;;;;;;;;1724:108:52;;;;;;;;;;-1:-1:-1;1724:108:52;;;;;:::i;:::-;;:::i;446:46::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2636:32:122;;;2618:51;;2606:2;2591:18;446:46:52;2443:232:122;2293:101:100;;;;;;;;;;;;;:::i;470:44:121:-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;3507:128:53:-;;;;;;;;;;-1:-1:-1;3507:128:53;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3495:31:122;;;3477:50;;3465:2;3450:18;3507:128:53;3333:200:122;2013:216:53;;;;;;;;;;-1:-1:-1;2013:216:53;;;;;:::i;:::-;-1:-1:-1;;;;;2198:24:53;;2217:4;2198:24;2013:216;;;;;;;;;;4378:14:122;;4371:22;4353:41;;4341:2;4326:18;2013:216:53;4213:187:122;1638:85:100;;;;;;;;;;-1:-1:-1;1684:7:100;1710:6;-1:-1:-1;;;;;1710:6:100;1638:85;;981:363:121;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;569:48:52:-;;;;;;;;;;-1:-1:-1;569:48:52;;;;;:::i;:::-;;;;;;;;;;;;;;;;;7352:25:122;;;7340:2;7325:18;569:48:52;7206:177:122;3252:105:52;;;;;;;;;;-1:-1:-1;3252:105:52;;;;;:::i;:::-;;:::i;2543:215:100:-;;;;;;;;;;-1:-1:-1;2543:215:100;;;;;:::i;:::-;;:::i;1835:307:121:-;;;;;;;;;;-1:-1:-1;1835:307:121;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2771:149:53:-;;;;;;;;;;-1:-1:-1;2771:149:53;;;;;:::i;:::-;;:::i;4368:708::-;4681:8;-1:-1:-1;;;;;4673:31:53;4694:10;4673:31;4669:68;;4713:24;;-1:-1:-1;;;4713:24:53;;4726:10;4713:24;;;2618:51:122;2591:18;;4713:24:53;;;;;;;;4669:68;4873:14;;;;;;4837:32;;4854:14;;4873:7;4854:14;:::i;:::-;4837:16;:32::i;:::-;:50;4833:103;;4905:14;;;;:7;:14;:::i;:::-;4896:40;;-1:-1:-1;;;4896:40:53;;9259:10:122;9247:23;;;4896:40:53;;;9229:42:122;4921:14:53;;;;9287:18:122;;;9280:34;9202:18;;4896:40:53;9057:263:122;4833:103:53;5010:59;5021:7;5030:5;5037:8;;5047:9;5058:10;;5010;:59::i;:::-;4368:708;;;;;;;:::o;1724:108:52:-;1531:13:100;:11;:13::i;:::-;1804:21:52::1;1813:4;1819:5;1804:8;:21::i;:::-;1724:108:::0;;:::o;2293:101:100:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;470:44:121:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3507:128:53:-;3596:12;3507:128;;;;;:::o;981:363:121:-;1144:31;;:::i;:::-;1187:21;1222:8;1211:20;;;;;;;;:::i;:::-;;;;-1:-1:-1;;1211:20:121;;;;;;;1251:86;;;;;;;;;;;;;;;;;;1211:20;-1:-1:-1;1251:86:121;;1259:7;;1211:20;;;1278:8;;;;;;1251:86;;1278:8;;;;1251:86;;;;;;;;-1:-1:-1;1288:27:121;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1325:10:121;;-1:-1:-1;1251:7:121;;-1:-1:-1;1251:86:121:i;:::-;1241:96;981:363;-1:-1:-1;;;;;;;981:363:121:o;3252:105:52:-;1531:13:100;:11;:13::i;:::-;3319:31:52::1;::::0;-1:-1:-1;;;3319:31:52;;-1:-1:-1;;;;;2636:32:122;;;3319:31:52::1;::::0;::::1;2618:51:122::0;3319:8:52::1;:20;::::0;::::1;::::0;2591:18:122;;3319:31:52::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3252:105:::0;:::o;2543:215:100:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:100;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:100;;2700:1:::1;2672:31;::::0;::::1;2618:51:122::0;2591:18;;2672:31:100::1;2443:232:122::0;2623:91:100::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1835:307:121:-;-1:-1:-1;;;;;;;;;;;;;;;;;2027:20:121;2061:8;2050:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2027:43;;2086:49;2093:7;2102;2111:8;2121:13;2086:6;:49::i;:::-;2080:55;1835:307;-1:-1:-1;;;;;;1835:307:121:o;2771:149:53:-;2853:4;2900:13;;;;;;2876:5;;2853:4;;2882:13;;2900:6;2882:13;:::i;:::-;2876:20;;;;;;;;;;;;;-1:-1:-1;2876:20:53;;:37;;2771:149;-1:-1:-1;;2771:149:53:o;2718:196:52:-;2822:11;;;2788:7;2822:11;;;:5;:11;;;;;;;2843:43;;2874:12;;-1:-1:-1;;;2874:12:52;;9884:10:122;9872:23;;2874:12:52;;;9854:42:122;9827:18;;2874:12:52;9710:192:122;2838:263:121;3065:29;;;;3076:7;3065:29;:::i;:::-;3058:4;;:36;;:4;:36;:::i;:::-;;2838:263;;;;;;;:::o;1796:162:100:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:100;735:10:110;1855:23:100;1851:101;;1901:40;;-1:-1:-1;;;1901:40:100;;735:10:110;1901:40:100;;;2618:51:122;2591:18;;1901:40:100;2443:232:122;2286:134:52;2359:11;;;;;;;:5;:11;;;;;;;;;:19;;;2393:20;;9229:42:122;;;9287:18;;9280:34;;;2393:20:52;;9202:18:122;2393:20:52;;;;;;;2286:134;;:::o;2912:187:100:-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:100;;;-1:-1:-1;;;;;;3020:17:100;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;1542:721:1:-;1744:31;;:::i;:::-;1920:14;;1909:26;;:10;:26::i;:::-;-1:-1:-1;1949:15:1;;;;:19;1945:53;;1970:28;1982:4;:15;;;1970:11;:28::i;:::-;2087:8;-1:-1:-1;;;;;2087:13:1;;2118:92;;;;;;;;2134:7;2118:92;;;;;;2143:25;2160:7;2143:16;:25::i;:::-;2118:92;;;;2170:8;2118:92;;;;2180:8;2118:92;;;;2208:1;2190:4;:15;;;:19;2118:92;;;;;2228:14;2087:169;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2038:391:54:-;-1:-1:-1;;;;;;;;;;;;;;;;;2259:8:54;-1:-1:-1;;;;;2259:14:54;;2291:86;;;;;;;;2307:7;2291:86;;;;;;2316:25;2333:7;2316:16;:25::i;:::-;2291:86;;;;2343:8;2291:86;;;;2353:8;2291:86;;;;2363:13;2291:86;;;;;2403:4;2259:163;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2240:182;2038:391;-1:-1:-1;;;;;2038:391:54:o;2898:488:1:-;2965:17;3078:19;3100:8;-1:-1:-1;;;;;3100:20:1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3078:44;-1:-1:-1;;;;;;3136:25:1;;3132:62;;3170:24;;-1:-1:-1;;;3170:24:1;;;;;;;;;;;3132:62;3272:79;-1:-1:-1;;;;;3272:36:1;;3309:10;3329:8;3340:10;3272:36;:79::i;:::-;-1:-1:-1;3369:10:1;;2898:488;-1:-1:-1;2898:488:1:o;5218:410:54:-;5371:15;5389:8;-1:-1:-1;;;;;5389:16:54;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5371:36;-1:-1:-1;;;;;;5421:21:54;;5417:54;;5451:20;;-1:-1:-1;;;5451:20:54;;;;;;;;;;;5417:54;5545:76;-1:-1:-1;;;;;5545:32:54;;5578:10;5598:8;5609:11;1670:188:108;1797:53;;;-1:-1:-1;;;;;15293:15:122;;;1797:53:108;;;15275:34:122;15345:15;;15325:18;;;15318:43;15377:18;;;;15370:34;;;1797:53:108;;;;;;;;;;15210:18:122;;;;1797:53:108;;;;;;;;-1:-1:-1;;;;;1797:53:108;-1:-1:-1;;;1797:53:108;;;1770:81;;1790:5;;1770:19;:81::i;:::-;1670:188;;;;:::o;7738:720::-;7818:18;7846:19;7984:4;7981:1;7974:4;7968:11;7961:4;7955;7951:15;7948:1;7941:5;7934;7929:60;8041:7;8031:176;;8085:4;8079:11;8130:16;8127:1;8122:3;8107:40;8176:16;8171:3;8164:29;8031:176;-1:-1:-1;;8284:1:108;8278:8;8234:16;;-1:-1:-1;8310:15:108;;:68;;8362:11;8377:1;8362:16;;8310:68;;;-1:-1:-1;;;;;8328:26:108;;;:31;8310:68;8306:146;;;8401:40;;-1:-1:-1;;;8401:40:108;;-1:-1:-1;;;;;2636:32:122;;8401:40:108;;;2618:51:122;2591:18;;8401:40:108;2443:232:122;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:154:122:-;73:5;118:2;109:6;104:3;100:16;96:25;93:45;;;134:1;131;124:12;93:45;-1:-1:-1;156:6:122;14:154;-1:-1:-1;14:154:122:o;173:347::-;224:8;234:6;288:3;281:4;273:6;269:17;265:27;255:55;;306:1;303;296:12;255:55;-1:-1:-1;329:20:122;;-1:-1:-1;;;;;361:30:122;;358:50;;;404:1;401;394:12;358:50;441:4;433:6;429:17;417:29;;493:3;486:4;477:6;469;465:19;461:30;458:39;455:59;;;510:1;507;500:12;455:59;173:347;;;;;:::o;525:131::-;-1:-1:-1;;;;;600:31:122;;590:42;;580:70;;646:1;643;636:12;661:1048;804:6;812;820;828;836;844;852;905:3;893:9;884:7;880:23;876:33;873:53;;;922:1;919;912:12;873:53;945;990:7;979:9;945:53;:::i;:::-;935:63;;1045:2;1034:9;1030:18;1017:32;1007:42;;1100:3;1089:9;1085:19;1072:33;-1:-1:-1;;;;;1165:2:122;1157:6;1154:14;1151:34;;;1181:1;1178;1171:12;1151:34;1220:58;1270:7;1261:6;1250:9;1246:22;1220:58;:::i;:::-;1297:8;;-1:-1:-1;1194:84:122;-1:-1:-1;1382:3:122;1367:19;;1354:33;;-1:-1:-1;1396:31:122;1354:33;1396:31;:::i;:::-;1446:5;;-1:-1:-1;1504:3:122;1489:19;;1476:33;;1521:16;;;1518:36;;;1550:1;1547;1540:12;1518:36;;1589:60;1641:7;1630:8;1619:9;1615:24;1589:60;:::i;:::-;661:1048;;;;-1:-1:-1;661:1048:122;;-1:-1:-1;661:1048:122;;;;1563:86;;-1:-1:-1;;;661:1048:122:o;2018:163::-;2085:20;;2145:10;2134:22;;2124:33;;2114:61;;2171:1;2168;2161:12;2114:61;2018:163;;;:::o;2186:252::-;2253:6;2261;2314:2;2302:9;2293:7;2289:23;2285:32;2282:52;;;2330:1;2327;2320:12;2282:52;2353:28;2371:9;2353:28;:::i;:::-;2343:38;2428:2;2413:18;;;;2400:32;;-1:-1:-1;;;2186:252:122:o;2680:423::-;2722:3;2760:5;2754:12;2787:6;2782:3;2775:19;2812:1;2822:162;2836:6;2833:1;2830:13;2822:162;;;2898:4;2954:13;;;2950:22;;2944:29;2926:11;;;2922:20;;2915:59;2851:12;2822:162;;;2826:3;3029:1;3022:4;3013:6;3008:3;3004:16;3000:27;2993:38;3092:4;3085:2;3081:7;3076:2;3068:6;3064:15;3060:29;3055:3;3051:39;3047:50;3040:57;;;2680:423;;;;:::o;3108:220::-;3257:2;3246:9;3239:21;3220:4;3277:45;3318:2;3307:9;3303:18;3295:6;3277:45;:::i;:::-;3269:53;3108:220;-1:-1:-1;;;3108:220:122:o;3538:670::-;3652:6;3660;3668;3676;3729:3;3717:9;3708:7;3704:23;3700:33;3697:53;;;3746:1;3743;3736:12;3697:53;3769;3814:7;3803:9;3769:53;:::i;:::-;3759:63;;3873:2;3862:9;3858:18;3845:32;-1:-1:-1;;;;;3892:6:122;3889:30;3886:50;;;3932:1;3929;3922:12;3886:50;3971:58;4021:7;4012:6;4001:9;3997:22;3971:58;:::i;:::-;4048:8;;-1:-1:-1;3945:84:122;-1:-1:-1;;4133:3:122;4118:19;;4105:33;4147:31;4105:33;4147:31;:::i;:::-;3538:670;;;;-1:-1:-1;3538:670:122;;-1:-1:-1;;3538:670:122:o;4613:127::-;4674:10;4669:3;4665:20;4662:1;4655:31;4705:4;4702:1;4695:15;4729:4;4726:1;4719:15;4745:632;4810:5;-1:-1:-1;;;;;4881:2:122;4873:6;4870:14;4867:40;;;4887:18;;:::i;:::-;4962:2;4956:9;4930:2;5016:15;;-1:-1:-1;;5012:24:122;;;5038:2;5008:33;5004:42;4992:55;;;5062:18;;;5082:22;;;5059:46;5056:72;;;5108:18;;:::i;:::-;5148:10;5144:2;5137:22;5177:6;5168:15;;5207:6;5199;5192:22;5247:3;5238:6;5233:3;5229:16;5226:25;5223:45;;;5264:1;5261;5254:12;5223:45;5314:6;5309:3;5302:4;5294:6;5290:17;5277:44;5369:1;5362:4;5353:6;5345;5341:19;5337:30;5330:41;;;;4745:632;;;;;:::o;5382:222::-;5425:5;5478:3;5471:4;5463:6;5459:17;5455:27;5445:55;;5496:1;5493;5486:12;5445:55;5518:80;5594:3;5585:6;5572:20;5565:4;5557:6;5553:17;5518:80;:::i;5609:771::-;5715:6;5723;5731;5739;5747;5800:3;5788:9;5779:7;5775:23;5771:33;5768:53;;;5817:1;5814;5807:12;5768:53;5840:28;5858:9;5840:28;:::i;:::-;5830:38;;5919:2;5908:9;5904:18;5891:32;-1:-1:-1;;;;;5983:2:122;5975:6;5972:14;5969:34;;;5999:1;5996;5989:12;5969:34;6022:50;6064:7;6055:6;6044:9;6040:22;6022:50;:::i;:::-;6012:60;;6125:2;6114:9;6110:18;6097:32;6081:48;;6154:2;6144:8;6141:16;6138:36;;;6170:1;6167;6160:12;6138:36;;6209:60;6261:7;6250:8;6239:9;6235:24;6209:60;:::i;:::-;5609:771;;;;-1:-1:-1;6288:8:122;6370:2;6355:18;6342:32;;5609:771;-1:-1:-1;;;;5609:771:122:o;6543:469::-;6703:4;6745:3;6734:9;6730:19;6722:27;;6782:6;6776:13;6765:9;6758:32;-1:-1:-1;;;;;6850:4:122;6842:6;6838:17;6832:24;6828:49;6821:4;6810:9;6806:20;6799:79;6925:4;6917:6;6913:17;6907:24;6940:66;7000:4;6989:9;6985:20;6971:12;6463;;6451:25;;6525:4;6514:16;;;6508:23;6492:14;;6485:47;6385:153;6940:66;;6543:469;;;;:::o;7017:184::-;7075:6;7128:2;7116:9;7107:7;7103:23;7099:32;7096:52;;;7144:1;7141;7134:12;7096:52;7167:28;7185:9;7167:28;:::i;7388:247::-;7447:6;7500:2;7488:9;7479:7;7475:23;7471:32;7468:52;;;7516:1;7513;7506:12;7468:52;7555:9;7542:23;7574:31;7599:5;7574:31;:::i;7640:905::-;7741:6;7749;7757;7765;7818:3;7806:9;7797:7;7793:23;7789:33;7786:53;;;7835:1;7832;7825:12;7786:53;7858:28;7876:9;7858:28;:::i;:::-;7848:38;;7937:2;7926:9;7922:18;7909:32;-1:-1:-1;;;;;8001:2:122;7993:6;7990:14;7987:34;;;8017:1;8014;8007:12;7987:34;8040:50;8082:7;8073:6;8062:9;8058:22;8040:50;:::i;:::-;8030:60;;8143:2;8132:9;8128:18;8115:32;8099:48;;8172:2;8162:8;8159:16;8156:36;;;8188:1;8185;8178:12;8156:36;-1:-1:-1;8211:24:122;;8266:4;8258:13;;8254:27;-1:-1:-1;8244:55:122;;8295:1;8292;8285:12;8244:55;8318:74;8384:7;8379:2;8366:16;8361:2;8357;8353:11;8318:74;:::i;:::-;8308:84;;;8442:2;8431:9;8427:18;8414:32;8489:5;8482:13;8475:21;8468:5;8465:32;8455:60;;8511:1;8508;8501:12;8550:261;6463:12;;6451:25;;6525:4;6514:16;;;6508:23;6492:14;;;6485:47;8744:2;8729:18;;8756:49;6385:153;8816:236;8901:6;8954:2;8942:9;8933:7;8929:23;8925:32;8922:52;;;8970:1;8967;8960:12;8922:52;8993:53;9038:7;9027:9;8993:53;:::i;9325:380::-;9404:1;9400:12;;;;9447;;;9468:61;;9522:4;9514:6;9510:17;9500:27;;9468:61;9575:2;9567:6;9564:14;9544:18;9541:38;9538:161;;9621:10;9616:3;9612:20;9609:1;9602:31;9656:4;9653:1;9646:15;9684:4;9681:1;9674:15;9907:322;9976:6;10029:2;10017:9;10008:7;10004:23;10000:32;9997:52;;;10045:1;10042;10035:12;9997:52;10085:9;10072:23;-1:-1:-1;;;;;10110:6:122;10107:30;10104:50;;;10150:1;10147;10140:12;10104:50;10173;10215:7;10206:6;10195:9;10191:22;10173:50;:::i;:::-;10163:60;9907:322;-1:-1:-1;;;;9907:322:122:o;10360:518::-;10462:2;10457:3;10454:11;10451:421;;;10498:5;10495:1;10488:16;10542:4;10539:1;10529:18;10612:2;10600:10;10596:19;10593:1;10589:27;10583:4;10579:38;10648:4;10636:10;10633:20;10630:47;;;-1:-1:-1;10671:4:122;10630:47;10726:2;10721:3;10717:12;10714:1;10710:20;10704:4;10700:31;10690:41;;10781:81;10799:2;10792:5;10789:13;10781:81;;;10858:1;10844:16;;10825:1;10814:13;10781:81;;10451:421;10360:518;;;:::o;11054:1345::-;11180:3;11174:10;-1:-1:-1;;;;;11199:6:122;11196:30;11193:56;;;11229:18;;:::i;:::-;11258:97;11348:6;11308:38;11340:4;11334:11;11308:38;:::i;:::-;11302:4;11258:97;:::i;:::-;11410:4;;11467:2;11456:14;;11484:1;11479:663;;;;12186:1;12203:6;12200:89;;;-1:-1:-1;12255:19:122;;;12249:26;12200:89;-1:-1:-1;;11011:1:122;11007:11;;;11003:24;10999:29;10989:40;11035:1;11031:11;;;10986:57;12302:81;;11449:944;;11479:663;10307:1;10300:14;;;10344:4;10331:18;;-1:-1:-1;;11515:20:122;;;11633:236;11647:7;11644:1;11641:14;11633:236;;;11736:19;;;11730:26;11715:42;;11828:27;;;;11796:1;11784:14;;;;11663:19;;11633:236;;;11637:3;11897:6;11888:7;11885:19;11882:201;;;11958:19;;;11952:26;-1:-1:-1;;12041:1:122;12037:14;;;12053:3;12033:24;12029:37;12025:42;12010:58;11995:74;;11882:201;;;12129:1;12120:6;12117:1;12113:14;12109:22;12103:4;12096:36;11449:944;;;;;11054:1345;;:::o;12404:891::-;12627:2;12616:9;12609:21;12685:10;12676:6;12670:13;12666:30;12661:2;12650:9;12646:18;12639:58;12751:4;12743:6;12739:17;12733:24;12728:2;12717:9;12713:18;12706:52;12590:4;12805:2;12797:6;12793:15;12787:22;12846:4;12840:3;12829:9;12825:19;12818:33;12874:52;12921:3;12910:9;12906:19;12892:12;12874:52;:::i;:::-;12860:66;;12975:2;12967:6;12963:15;12957:22;13049:2;13045:7;13033:9;13025:6;13021:22;13017:36;13010:4;12999:9;12995:20;12988:66;13077:41;13111:6;13095:14;13077:41;:::i;:::-;13187:3;13175:16;;;;13169:23;13162:31;13155:39;13149:3;13134:19;;13127:68;-1:-1:-1;;;;;;;;13256:32:122;;;;13249:4;13234:20;;;13227:62;13063:55;12404:891::o;13300:478::-;13370:5;13418:4;13406:9;13401:3;13397:19;13393:30;13390:50;;;13436:1;13433;13426:12;13390:50;13469:4;13463:11;13513:4;13505:6;13501:17;13584:6;13572:10;13569:22;-1:-1:-1;;;;;13536:10:122;13533:34;13530:62;13527:88;;;13595:18;;:::i;:::-;13631:4;13624:24;13696:16;;13681:32;;13767:2;13752:18;;;13746:25;13729:15;;;13722:50;;;;-1:-1:-1;13666:6:122;13300:478;-1:-1:-1;13300:478:122:o;13783:727::-;13887:6;13940:3;13928:9;13919:7;13915:23;13911:33;13908:53;;;13957:1;13954;13947:12;13908:53;13990:2;13984:9;14032:4;14024:6;14020:17;-1:-1:-1;;;;;14124:6:122;14112:10;14109:22;14104:2;14092:10;14089:18;14086:46;14083:72;;;14135:18;;:::i;:::-;14175:10;14171:2;14164:22;14216:9;14210:16;14202:6;14195:32;14270:2;14259:9;14255:18;14249:25;14236:38;;14314:2;14307:5;14303:14;14296:5;14293:25;14283:53;;14332:1;14329;14322:12;14283:53;-1:-1:-1;14364:2:122;14352:15;;14345:30;14408:70;14470:7;14465:2;14450:18;;14408:70;:::i;:::-;14403:2;14391:15;;14384:95;14395:6;13783:727;-1:-1:-1;;;13783:727:122:o;14515:259::-;14615:6;14668:2;14656:9;14647:7;14643:23;14639:32;14636:52;;;14684:1;14681;14674:12;14636:52;14707:61;14760:7;14749:9;14707:61;:::i;14779:251::-;14849:6;14902:2;14890:9;14881:7;14877:23;14873:32;14870:52;;;14918:1;14915;14908:12;14870:52;14950:9;14944:16;14969:31;14994:5;14969:31;:::i","linkReferences":{},"immutableReferences":{"10474":[{"start":339,"length":32},{"start":823,"length":32},{"start":1377,"length":32},{"start":2002,"length":32},{"start":2223,"length":32},{"start":2428,"length":32},{"start":2611,"length":32},{"start":2658,"length":32},{"start":2841,"length":32}]}},"methodIdentifiers":{"allowInitializePath((uint32,bytes32,uint64))":"ff7bd03d","data()":"73d4a13a","endpoint()":"5e280f11","isComposeMsgSender((uint32,bytes32,uint64),bytes,address)":"82413eac","lzReceive((uint32,bytes32,uint64),bytes32,bytes,address,bytes)":"13137d65","nextNonce(uint32,bytes32)":"7d25a05e","oAppVersion()":"17442b70","owner()":"8da5cb5b","peers(uint32)":"bb0b6a53","quote(uint32,string,bytes,bool)":"f77e5dd3","renounceOwnership()":"715018a6","send(uint32,string,bytes,uint256)":"b4ab5dd1","setDelegate(address)":"ca5eb5e1","setPeer(uint32,bytes32)":"3400288b","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.22+commit.4fc1097e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_endpoint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidDelegate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidEndpointCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LzTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeTokenUnavailable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"}],\"name\":\"NoPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"msgValue\",\"type\":\"uint256\"}],\"name\":\"NotEnoughNative\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"}],\"name\":\"OnlyEndpoint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"}],\"name\":\"OnlyPeer\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"eid\",\"type\":\"uint32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"peer\",\"type\":\"bytes32\"}],\"name\":\"PeerSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"srcEid\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"sender\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"internalType\":\"struct Origin\",\"name\":\"origin\",\"type\":\"tuple\"}],\"name\":\"allowInitializePath\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"v