@unruggable/gateways
Version:
Trustless Ethereum Multichain CCIP-Read Gateway
1 lines • 73.5 kB
JSON
{"abi":[{"type":"constructor","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"},{"name":"window","type":"uint256","internalType":"uint256"},{"name":"hooks","type":"address","internalType":"contract IVerifierHooks"}],"stateMutability":"nonpayable"},{"type":"function","name":"gatewayURLs","inputs":[],"outputs":[{"name":"","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"getHooks","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVerifierHooks"}],"stateMutability":"view"},{"type":"function","name":"getLatestContext","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"getStorageValues","inputs":[{"name":"context","type":"bytes","internalType":"bytes"},{"name":"req","type":"tuple","internalType":"struct GatewayRequest","components":[{"name":"ops","type":"bytes","internalType":"bytes"}]},{"name":"proof","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"},{"name":"exitCode","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"getWindow","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setGatewayURLs","inputs":[{"name":"urls","type":"string[]","internalType":"string[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verify","inputs":[{"name":"req","type":"tuple","internalType":"struct GatewayRequest","components":[{"name":"ops","type":"bytes","internalType":"bytes"}]},{"name":"stateRoot","type":"bytes32","internalType":"bytes32"},{"name":"proofs","type":"bytes[]","internalType":"bytes[]"},{"name":"order","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"outputs","type":"bytes[]","internalType":"bytes[]"},{"name":"exitCode","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"event","name":"GatewayURLsChanged","inputs":[],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CommitTooNew","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"CommitTooOld","inputs":[{"name":"latest","type":"uint256","internalType":"uint256"},{"name":"got","type":"uint256","internalType":"uint256"},{"name":"window","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ContentLengthMismatch","inputs":[]},{"type":"error","name":"EmptyItem","inputs":[]},{"type":"error","name":"InvalidDataRemainder","inputs":[]},{"type":"error","name":"InvalidHeader","inputs":[]},{"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":"UnexpectedList","inputs":[]},{"type":"error","name":"UnexpectedString","inputs":[]}],"bytecode":{"object":"0x60c060405234801561000f575f80fd5b50604051611bb5380380611bb583398101604081905261002e916101fc565b828282338061005657604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005f81610090565b5082516100739060019060208601906100df565b506080919091526001600160a01b031660a0525061046592505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215610123579160200282015b82811115610123578251829061011390826103a6565b50916020019190600101906100fd565b5061012f929150610133565b5090565b8082111561012f575f610146828261014f565b50600101610133565b50805461015b90610322565b5f825580601f1061016a575050565b601f0160209004905f5260205f20908101906101869190610189565b50565b5b8082111561012f575f815560010161018a565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101d9576101d961019d565b604052919050565b80516001600160a01b03811681146101f7575f80fd5b919050565b5f805f6060848603121561020e575f80fd5b83516001600160401b0380821115610224575f80fd5b818601915086601f830112610237575f80fd5b815160208282111561024b5761024b61019d565b8160051b61025a8282016101b1565b928352848101820192828101908b851115610273575f80fd5b83870192505b848310156102fd5782518681111561028f575f80fd5b8701603f81018d1361029f575f80fd5b848101516040888211156102b5576102b561019d565b6102c7601f8301601f191688016101b1565b8281528f828486010111156102da575f80fd5b828285018983015e5f928101880192909252508352509183019190830190610279565b80995050505080880151955050505050610319604085016101e1565b90509250925092565b600181811c9082168061033657607f821691505b60208210810361035457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103a157805f5260205f20601f840160051c8101602085101561037f5750805b601f840160051c820191505b8181101561039e575f815560010161038b565b50505b505050565b81516001600160401b038111156103bf576103bf61019d565b6103d3816103cd8454610322565b8461035a565b602080601f831160018114610406575f84156103ef5750858301515b5f19600386901b1c1916600185901b17855561045d565b5f85815260208120601f198616915b8281101561043457888601518255948401946001909101908401610415565b508582101561045157878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05161171c6104995f395f818160c501526101de01525f81816095015281816105cd0152610615015261171c5ff3fe608060405234801561000f575f80fd5b506004361061008c575f3560e01c80631d80051d146100905780635cd2525e146100c3578063715018a6146100f25780637a26fd76146100fc57806387c484fe1461011d5780638da5cb5b146101325780638e5ea8df1461013a578063b50f2fbc1461014d578063e3d1666e14610162578063f2fde38b14610175575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100ba9190610d79565b6100fa610188565b005b61010f61010a366004610efb565b61019b565b6040516100ba92919061101f565b610125610274565b6040516100ba919061108d565b6100e56102a7565b6100fa61014836600461109f565b6102b5565b6101556102fc565b6040516100ba919061115b565b61010f6101703660046111bd565b6103d0565b6100fa61018336600461123e565b6104de565b61019061051b565b6101995f61054d565b565b60605f73__$011ed85421b307e5206de383929e31be73$__6392a201d4876040518060a001604052805f81526020018981526020018881526020018781526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152506040518363ffffffff1660e01b8152600401610226929190611264565b5f60405180830381865af4158015610240573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102679190810190611407565b9150915094509492505050565b606061028160014361146e565b60405160200161029391815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b6102bd61051b565b80516102d0906001906020840190610cab565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b828210156103c7578382905f5260205f2001805461033c90611481565b80601f016020809104026020016040519081016040528092919081815260200182805461036890611481565b80156103b35780601f1061038a576101008083540402835291602001916103b3565b820191905f5260205f20905b81548152906001019060200180831161039657829003601f168201915b50505050508152602001906001019061031f565b50505050905090565b60605f80858060200190518101906103e891906114b9565b90505f848060200190518101906103ff91906114d0565b90505f61040e825f015161059c565b90505f610434826008815181106104275761042761157d565b60200260200101516105b5565b905061044084826105c7565b8251805160209091012081409081146104925760405162461bcd60e51b815260206004820152600f60248201526e0a6cad8cc7440c4d8dec6d6d0c2e6d608b1b60448201526064015b60405180910390fd5b5f6104b6846003815181106104a9576104a961157d565b6020026020010151610670565b90506104cc8a828760200151886040015161019b565b97509750505050505050935093915050565b6104e661051b565b6001600160a01b03811661050f575f604051631e4fbdf760e01b81526004016104899190610d79565b6105188161054d565b50565b336105246102a7565b6001600160a01b031614610199573360405163118cdaa760e01b81526004016104899190610d79565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606105af6105aa836106af565b6106f6565b92915050565b5f6105af6105c283610869565b6108f1565b816105f27f000000000000000000000000000000000000000000000000000000000000000083611591565b101561064157604051632a54241d60e21b815260048101839052602481018290527f00000000000000000000000000000000000000000000000000000000000000006044820152606401610489565b8181111561066c5760405163b356ade760e01b81526004810183905260248101829052604401610489565b5050565b5f8061067b83610869565b9050805160201461069f576040516366c9448560e01b815260040160405180910390fd5b6106a8816115a4565b9392505050565b6106b7610cff565b81515f036106d857604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f61070485610938565b91945092509050600181600181111561071f5761071f6115c7565b1461073d576040516325ce355f60e11b815260040160405180910390fd5b84516107498385611591565b1461076757604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b610786610cff565b81526020019060019003908161077e5790505093505f835b865181101561085d575f806107e26040518060400160405280858c5f01516107c6919061146e565b8152602001858c602001516107db9190611591565b9052610938565b5091509150604051806040016040528083836107fe9190611591565b8152602001848b602001516108139190611591565b8152508885815181106108285761082861157d565b602090810291909101015261083e600185611591565b935061084a8183611591565b6108549084611591565b9250505061079e565b50845250919392505050565b60605f805f61087785610938565b919450925090505f816001811115610891576108916115c7565b146108af576040516307fe6cb960e21b815260040160405180910390fd5b6108b98284611591565b8551146108d957604051630b8aa6f760e31b815260040160405180910390fd5b6108e885602001518484610c1b565b95945050505050565b5f602082511115610915576040516366c9448560e01b815260040160405180910390fd5b600382516020610925919061146e565b901b610930836115a4565b901c92915050565b5f805f835f01515f0361095e57604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f8111610980575f60015f9450945094505050610c14565b60b78111610a15575f61099460808361146e565b905080875f0151116109b9576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b03191690821480156109e55750600160ff1b6001600160f81b03198216105b15610a035760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250610c14915050565b60bf8111610af3575f610a2960b78361146e565b905080875f015111610a4e576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610a7e5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610aad5760405163babb01dd60e01b815260040160405180910390fd5b610ab78184611591565b895111610ad7576040516366c9448560e01b815260040160405180910390fd5b610ae2836001611591565b975095505f9450610c149350505050565b60f78111610b3d575f610b0760c08361146e565b905080875f015111610b2c576040516366c9448560e01b815260040160405180910390fd5b600195509350849250610c14915050565b5f610b4960f78361146e565b905080875f015111610b6e576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610b9e5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610bcd5760405163babb01dd60e01b815260040160405180910390fd5b610bd78184611591565b895111610bf7576040516366c9448560e01b815260040160405180910390fd5b610c02836001611591565b9750955060019450610c149350505050565b9193909250565b6060816001600160401b03811115610c3557610c35610d8d565b6040519080825280601f01601f191660200182016040528015610c5f576020820181803683370190505b50905081156106a8575f610c738486611591565b9050602082015f5b84811015610c93578281015182820152602001610c7b565b84811115610ca1575f858301525b5050509392505050565b828054828255905f5260205f20908101928215610cef579160200282015b82811115610cef5782518290610cdf9082611627565b5091602001919060010190610cc9565b50610cfb929150610d17565b5090565b60405180604001604052805f81526020015f81525090565b80821115610cfb575f610d2a8282610d33565b50600101610d17565b508054610d3f90611481565b5f825580601f10610d4e575050565b601f0160209004905f5260205f209081019061051891905b80821115610cfb575f8155600101610d66565b6001600160a01b0391909116815260200190565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715610dc357610dc3610d8d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610df157610df1610d8d565b604052919050565b5f6001600160401b03821115610e1157610e11610d8d565b50601f01601f191660200190565b5f610e31610e2c84610df9565b610dc9565b9050828152838383011115610e44575f80fd5b828260208301375f602084830101529392505050565b5f82601f830112610e69575f80fd5b6106a883833560208501610e1f565b5f60208284031215610e88575f80fd5b604051602081016001600160401b038082118383101715610eab57610eab610d8d565b816040528293508435915080821115610ec2575f80fd5b50610ecf85828601610e5a565b8252505092915050565b5f6001600160401b03821115610ef157610ef1610d8d565b5060051b60200190565b5f805f8060808587031215610f0e575f80fd5b84356001600160401b0380821115610f24575f80fd5b610f3088838901610e78565b955060209150818701359450604087013581811115610f4d575f80fd5b8701601f81018913610f5d575f80fd5b8035610f6b610e2c82610ed9565b81815260059190911b8201840190848101908b831115610f89575f80fd5b8584015b83811015610fbf57803586811115610fa3575f80fd5b610fb18e8983890101610e5a565b845250918601918601610f8d565b5096505050506060870135915080821115610fd8575f80fd5b50610fe587828801610e5a565b91505092959194509250565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b8381101561107457605f19888703018552611062868351610ff1565b95509382019390820190600101611046565b50505050508091505060ff831660208301529392505050565b602081525f6106a86020830184610ff1565b5f60208083850312156110b0575f80fd5b82356001600160401b03808211156110c6575f80fd5b818501915085601f8301126110d9575f80fd5b81356110e7610e2c82610ed9565b81815260059190911b83018401908481019088831115611105575f80fd5b8585015b8381101561114e5780358581111561111f575f80fd5b8601603f81018b1361112f575f80fd5b6111408b8983013560408401610e1f565b845250918601918601611109565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156111b057603f1988860301845261119e858351610ff1565b94509285019290850190600101611182565b5092979650505050505050565b5f805f606084860312156111cf575f80fd5b83356001600160401b03808211156111e5575f80fd5b6111f187838801610e5a565b94506020860135915080821115611206575f80fd5b61121287838801610e78565b93506040860135915080821115611227575f80fd5b5061123486828701610e5a565b9150509250925092565b5f6020828403121561124e575f80fd5b81356001600160a01b03811681146106a8575f80fd5b604081525f835160208060408501526112806060850183610ff1565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b818110156112f15760bf198786030183526112df858551610ff1565b945092850192918501916001016112c3565b5050505060608601519150828103606084015261130e8183610ff1565b915050608085015161132b60808401826001600160a01b03169052565b5095945050505050565b5f82601f830112611344575f80fd5b8151611352610e2c82610df9565b818152846020838601011115611366575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112611391575f80fd5b815160206113a1610e2c83610ed9565b82815260059290921b840181019181810190868411156113bf575f80fd5b8286015b848110156113fc5780516001600160401b038111156113e0575f80fd5b6113ee8986838b0101611335565b8452509183019183016113c3565b509695505050505050565b5f8060408385031215611418575f80fd5b82516001600160401b0381111561142d575f80fd5b61143985828601611382565b925050602083015160ff8116811461144f575f80fd5b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105af576105af61145a565b600181811c9082168061149557607f821691505b6020821081036114b357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156114c9575f80fd5b5051919050565b5f602082840312156114e0575f80fd5b81516001600160401b03808211156114f6575f80fd5b9083019060608286031215611509575f80fd5b611511610da1565b82518281111561151f575f80fd5b61152b87828601611335565b82525060208301518281111561153f575f80fd5b61154b87828601611382565b602083015250604083015182811115611562575f80fd5b61156e87828601611335565b60408301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b808201808211156105af576105af61145a565b805160208083015191908110156114b3575f1960209190910360031b1b16919050565b634e487b7160e01b5f52602160045260245ffd5b601f82111561162257805f5260205f20601f840160051c810160208510156116005750805b601f840160051c820191505b8181101561161f575f815560010161160c565b50505b505050565b81516001600160401b0381111561164057611640610d8d565b6116548161164e8454611481565b846115db565b602080601f831160018114611687575f84156116705750858301515b5f19600386901b1c1916600185901b1785556116de565b5f85815260208120601f198616915b828110156116b557888601518255948401946001909101908401611696565b50858210156116d257878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea2646970667358221220838281e0f04cf625f4cc0ea78f82ba78ac91e156705dd95805823a849f79c67a64736f6c63430008190033","sourceMap":"266:1648:11:-:0;;;314:142;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;433:4;439:6;447:5;566:10:0;;1269:95:48;;1322:31;;-1:-1:-1;;;1322:31:48;;1350:1;1322:31;;;2494:51:65;2467:18;;1322:31:48;;;;;;;1269:95;1373:32;1392:12;1373:18;:32::i;:::-;-1:-1:-1;588:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;610:16:0::1;::::0;;;;-1:-1:-1;;;;;636:14:0::1;;::::0;-1:-1:-1;266:1648:11;;-1:-1:-1;;;266:1648:11;2912:187:48;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:48;;;-1:-1:-1;;;;;;3020:17:48;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;266:1648:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;266:1648:11;;;-1:-1:-1;266:1648:11;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;14:127:65;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:65;247:40;;-1:-1:-1;;;;;302:34:65;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:65:o;426:193::-;521:13;;-1:-1:-1;;;;;563:31:65;;553:42;;543:70;;609:1;606;599:12;543:70;426:193;;;:::o;624:1719::-;770:6;778;786;839:2;827:9;818:7;814:23;810:32;807:52;;;855:1;852;845:12;807:52;882:16;;-1:-1:-1;;;;;947:14:65;;;944:34;;;974:1;971;964:12;944:34;1012:6;1001:9;997:22;987:32;;1057:7;1050:4;1046:2;1042:13;1038:27;1028:55;;1079:1;1076;1069:12;1028:55;1108:2;1102:9;1130:4;1153:2;1149;1146:10;1143:36;;;1159:18;;:::i;:::-;1205:2;1202:1;1198:10;1228:28;1252:2;1248;1244:11;1228:28;:::i;:::-;1290:15;;;1360:11;;;1356:20;;;1321:12;;;;1388:19;;;1385:39;;;1420:1;1417;1410:12;1385:39;1452:2;1448;1444:11;1433:22;;1464:721;1480:6;1475:3;1472:15;1464:721;;;1559:3;1553:10;1595:2;1582:11;1579:19;1576:39;;;1611:1;1608;1601:12;1576:39;1638:20;;1693:2;1685:11;;1681:25;-1:-1:-1;1671:53:65;;1720:1;1717;1710:12;1671:53;1761:2;1757;1753:11;1747:18;1788:2;1813;1809;1806:10;1803:36;;;1819:18;;:::i;:::-;1865:53;1908:2;1889:13;;-1:-1:-1;;1885:27:65;1881:36;;1865:53;:::i;:::-;1945:2;1938:5;1931:17;1989:7;1984:2;1979;1975;1971:11;1967:20;1964:33;1961:53;;;2010:1;2007;2000:12;1961:53;2062:2;2057;2053;2049:11;2044:2;2037:5;2033:14;2027:38;2110:1;2089:14;;;2085:23;;2078:34;;;;-1:-1:-1;2125:18:65;;-1:-1:-1;1497:12:65;;;;2163;;;;1464:721;;;2204:5;2194:15;;;;;2249:2;2238:9;2234:18;2228:25;2218:35;;;;;;2272:65;2333:2;2322:9;2318:18;2272:65;:::i;:::-;2262:75;;624:1719;;;;;:::o;2556:380::-;2635:1;2631:12;;;;2678;;;2699:61;;2753:4;2745:6;2741:17;2731:27;;2699:61;2806:2;2798:6;2795:14;2775:18;2772:38;2769:161;;2852:10;2847:3;2843:20;2840:1;2833:31;2887:4;2884:1;2877:15;2915:4;2912:1;2905:15;2769:161;;2556:380;;;:::o;3067:518::-;3169:2;3164:3;3161:11;3158:421;;;3205:5;3202:1;3195:16;3249:4;3246:1;3236:18;3319:2;3307:10;3303:19;3300:1;3296:27;3290:4;3286:38;3355:4;3343:10;3340:20;3337:47;;;-1:-1:-1;3378:4:65;3337:47;3433:2;3428:3;3424:12;3421:1;3417:20;3411:4;3407:31;3397:41;;3488:81;3506:2;3499:5;3496:13;3488:81;;;3565:1;3551:16;;3532:1;3521:13;3488:81;;;3492:3;;3158:421;3067:518;;;:::o;3761:1345::-;3881:10;;-1:-1:-1;;;;;3903:30:65;;3900:56;;;3936:18;;:::i;:::-;3965:97;4055:6;4015:38;4047:4;4041:11;4015:38;:::i;:::-;4009:4;3965:97;:::i;:::-;4117:4;;4174:2;4163:14;;4191:1;4186:663;;;;4893:1;4910:6;4907:89;;;-1:-1:-1;4962:19:65;;;4956:26;4907:89;-1:-1:-1;;3718:1:65;3714:11;;;3710:24;3706:29;3696:40;3742:1;3738:11;;;3693:57;5009:81;;4156:944;;4186:663;3014:1;3007:14;;;3051:4;3038:18;;-1:-1:-1;;4222:20:65;;;4340:236;4354:7;4351:1;4348:14;4340:236;;;4443:19;;;4437:26;4422:42;;4535:27;;;;4503:1;4491:14;;;;4370:19;;4340:236;;;4344:3;4604:6;4595:7;4592:19;4589:201;;;4665:19;;;4659:26;-1:-1:-1;;4748:1:65;4744:14;;;4760:3;4740:24;4736:37;4732:42;4717:58;4702:74;;4589:201;;;4836:1;4827:6;4824:1;4820:14;4816:22;4810:4;4803:36;4156:944;;;;;3761:1345;;:::o;:::-;266:1648:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":1593,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b506004361061008c575f3560e01c80631d80051d146100905780635cd2525e146100c3578063715018a6146100f25780637a26fd76146100fc57806387c484fe1461011d5780638da5cb5b146101325780638e5ea8df1461013a578063b50f2fbc1461014d578063e3d1666e14610162578063f2fde38b14610175575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100ba9190610d79565b6100fa610188565b005b61010f61010a366004610efb565b61019b565b6040516100ba92919061101f565b610125610274565b6040516100ba919061108d565b6100e56102a7565b6100fa61014836600461109f565b6102b5565b6101556102fc565b6040516100ba919061115b565b61010f6101703660046111bd565b6103d0565b6100fa61018336600461123e565b6104de565b61019061051b565b6101995f61054d565b565b60605f73__$011ed85421b307e5206de383929e31be73$__6392a201d4876040518060a001604052805f81526020018981526020018881526020018781526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152506040518363ffffffff1660e01b8152600401610226929190611264565b5f60405180830381865af4158015610240573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526102679190810190611407565b9150915094509492505050565b606061028160014361146e565b60405160200161029391815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b6102bd61051b565b80516102d0906001906020840190610cab565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b828210156103c7578382905f5260205f2001805461033c90611481565b80601f016020809104026020016040519081016040528092919081815260200182805461036890611481565b80156103b35780601f1061038a576101008083540402835291602001916103b3565b820191905f5260205f20905b81548152906001019060200180831161039657829003601f168201915b50505050508152602001906001019061031f565b50505050905090565b60605f80858060200190518101906103e891906114b9565b90505f848060200190518101906103ff91906114d0565b90505f61040e825f015161059c565b90505f610434826008815181106104275761042761157d565b60200260200101516105b5565b905061044084826105c7565b8251805160209091012081409081146104925760405162461bcd60e51b815260206004820152600f60248201526e0a6cad8cc7440c4d8dec6d6d0c2e6d608b1b60448201526064015b60405180910390fd5b5f6104b6846003815181106104a9576104a961157d565b6020026020010151610670565b90506104cc8a828760200151886040015161019b565b97509750505050505050935093915050565b6104e661051b565b6001600160a01b03811661050f575f604051631e4fbdf760e01b81526004016104899190610d79565b6105188161054d565b50565b336105246102a7565b6001600160a01b031614610199573360405163118cdaa760e01b81526004016104899190610d79565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606105af6105aa836106af565b6106f6565b92915050565b5f6105af6105c283610869565b6108f1565b816105f27f000000000000000000000000000000000000000000000000000000000000000083611591565b101561064157604051632a54241d60e21b815260048101839052602481018290527f00000000000000000000000000000000000000000000000000000000000000006044820152606401610489565b8181111561066c5760405163b356ade760e01b81526004810183905260248101829052604401610489565b5050565b5f8061067b83610869565b9050805160201461069f576040516366c9448560e01b815260040160405180910390fd5b6106a8816115a4565b9392505050565b6106b7610cff565b81515f036106d857604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f61070485610938565b91945092509050600181600181111561071f5761071f6115c7565b1461073d576040516325ce355f60e11b815260040160405180910390fd5b84516107498385611591565b1461076757604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b610786610cff565b81526020019060019003908161077e5790505093505f835b865181101561085d575f806107e26040518060400160405280858c5f01516107c6919061146e565b8152602001858c602001516107db9190611591565b9052610938565b5091509150604051806040016040528083836107fe9190611591565b8152602001848b602001516108139190611591565b8152508885815181106108285761082861157d565b602090810291909101015261083e600185611591565b935061084a8183611591565b6108549084611591565b9250505061079e565b50845250919392505050565b60605f805f61087785610938565b919450925090505f816001811115610891576108916115c7565b146108af576040516307fe6cb960e21b815260040160405180910390fd5b6108b98284611591565b8551146108d957604051630b8aa6f760e31b815260040160405180910390fd5b6108e885602001518484610c1b565b95945050505050565b5f602082511115610915576040516366c9448560e01b815260040160405180910390fd5b600382516020610925919061146e565b901b610930836115a4565b901c92915050565b5f805f835f01515f0361095e57604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f8111610980575f60015f9450945094505050610c14565b60b78111610a15575f61099460808361146e565b905080875f0151116109b9576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b03191690821480156109e55750600160ff1b6001600160f81b03198216105b15610a035760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250610c14915050565b60bf8111610af3575f610a2960b78361146e565b905080875f015111610a4e576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610a7e5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610aad5760405163babb01dd60e01b815260040160405180910390fd5b610ab78184611591565b895111610ad7576040516366c9448560e01b815260040160405180910390fd5b610ae2836001611591565b975095505f9450610c149350505050565b60f78111610b3d575f610b0760c08361146e565b905080875f015111610b2c576040516366c9448560e01b815260040160405180910390fd5b600195509350849250610c14915050565b5f610b4960f78361146e565b905080875f015111610b6e576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610b9e5760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610bcd5760405163babb01dd60e01b815260040160405180910390fd5b610bd78184611591565b895111610bf7576040516366c9448560e01b815260040160405180910390fd5b610c02836001611591565b9750955060019450610c149350505050565b9193909250565b6060816001600160401b03811115610c3557610c35610d8d565b6040519080825280601f01601f191660200182016040528015610c5f576020820181803683370190505b50905081156106a8575f610c738486611591565b9050602082015f5b84811015610c93578281015182820152602001610c7b565b84811115610ca1575f858301525b5050509392505050565b828054828255905f5260205f20908101928215610cef579160200282015b82811115610cef5782518290610cdf9082611627565b5091602001919060010190610cc9565b50610cfb929150610d17565b5090565b60405180604001604052805f81526020015f81525090565b80821115610cfb575f610d2a8282610d33565b50600101610d17565b508054610d3f90611481565b5f825580601f10610d4e575050565b601f0160209004905f5260205f209081019061051891905b80821115610cfb575f8155600101610d66565b6001600160a01b0391909116815260200190565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b0381118282101715610dc357610dc3610d8d565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610df157610df1610d8d565b604052919050565b5f6001600160401b03821115610e1157610e11610d8d565b50601f01601f191660200190565b5f610e31610e2c84610df9565b610dc9565b9050828152838383011115610e44575f80fd5b828260208301375f602084830101529392505050565b5f82601f830112610e69575f80fd5b6106a883833560208501610e1f565b5f60208284031215610e88575f80fd5b604051602081016001600160401b038082118383101715610eab57610eab610d8d565b816040528293508435915080821115610ec2575f80fd5b50610ecf85828601610e5a565b8252505092915050565b5f6001600160401b03821115610ef157610ef1610d8d565b5060051b60200190565b5f805f8060808587031215610f0e575f80fd5b84356001600160401b0380821115610f24575f80fd5b610f3088838901610e78565b955060209150818701359450604087013581811115610f4d575f80fd5b8701601f81018913610f5d575f80fd5b8035610f6b610e2c82610ed9565b81815260059190911b8201840190848101908b831115610f89575f80fd5b8584015b83811015610fbf57803586811115610fa3575f80fd5b610fb18e8983890101610e5a565b845250918601918601610f8d565b5096505050506060870135915080821115610fd8575f80fd5b50610fe587828801610e5a565b91505092959194509250565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b8381101561107457605f19888703018552611062868351610ff1565b95509382019390820190600101611046565b50505050508091505060ff831660208301529392505050565b602081525f6106a86020830184610ff1565b5f60208083850312156110b0575f80fd5b82356001600160401b03808211156110c6575f80fd5b818501915085601f8301126110d9575f80fd5b81356110e7610e2c82610ed9565b81815260059190911b83018401908481019088831115611105575f80fd5b8585015b8381101561114e5780358581111561111f575f80fd5b8601603f81018b1361112f575f80fd5b6111408b8983013560408401610e1f565b845250918601918601611109565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b828110156111b057603f1988860301845261119e858351610ff1565b94509285019290850190600101611182565b5092979650505050505050565b5f805f606084860312156111cf575f80fd5b83356001600160401b03808211156111e5575f80fd5b6111f187838801610e5a565b94506020860135915080821115611206575f80fd5b61121287838801610e78565b93506040860135915080821115611227575f80fd5b5061123486828701610e5a565b9150509250925092565b5f6020828403121561124e575f80fd5b81356001600160a01b03811681146106a8575f80fd5b604081525f835160208060408501526112806060850183610ff1565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b818110156112f15760bf198786030183526112df858551610ff1565b945092850192918501916001016112c3565b5050505060608601519150828103606084015261130e8183610ff1565b915050608085015161132b60808401826001600160a01b03169052565b5095945050505050565b5f82601f830112611344575f80fd5b8151611352610e2c82610df9565b818152846020838601011115611366575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f830112611391575f80fd5b815160206113a1610e2c83610ed9565b82815260059290921b840181019181810190868411156113bf575f80fd5b8286015b848110156113fc5780516001600160401b038111156113e0575f80fd5b6113ee8986838b0101611335565b8452509183019183016113c3565b509695505050505050565b5f8060408385031215611418575f80fd5b82516001600160401b0381111561142d575f80fd5b61143985828601611382565b925050602083015160ff8116811461144f575f80fd5b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156105af576105af61145a565b600181811c9082168061149557607f821691505b6020821081036114b357634e487b7160e01b5f52602260045260245ffd5b50919050565b5f602082840312156114c9575f80fd5b5051919050565b5f602082840312156114e0575f80fd5b81516001600160401b03808211156114f6575f80fd5b9083019060608286031215611509575f80fd5b611511610da1565b82518281111561151f575f80fd5b61152b87828601611335565b82525060208301518281111561153f575f80fd5b61154b87828601611382565b602083015250604083015182811115611562575f80fd5b61156e87828601611335565b60408301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b808201808211156105af576105af61145a565b805160208083015191908110156114b3575f1960209190910360031b1b16919050565b634e487b7160e01b5f52602160045260245ffd5b601f82111561162257805f5260205f20601f840160051c810160208510156116005750805b601f840160051c820191505b8181101561161f575f815560010161160c565b50505b505050565b81516001600160401b0381111561164057611640610d8d565b6116548161164e8454611481565b846115db565b602080601f831160018114611687575f84156116705750858301515b5f19600386901b1c1916600185901b1785556116de565b5f85815260208120601f198616915b828110156116b557888601518255948401946001909101908401611696565b50858210156116d257878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea2646970667358221220838281e0f04cf625f4cc0ea78f82ba78ac91e156705dd95805823a849f79c67a64736f6c63430008190033","sourceMap":"266:1648:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;896:84:0;;;966:7;160:25:65;;148:2;133:18;896:84:0;;;;;;;;986:89;1062:6;986:89;;;;;;;:::i;2293:101:48:-;;;:::i;:::-;;1548:364:11;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;462:117::-;;;:::i;:::-;;;;;;;:::i;1638:85:48:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;694:848:11:-;;;;;;:::i;:::-;;:::i;2543:215:48:-;;;;;;:::i;:::-;;:::i;2293:101::-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;1548:364:11:-;1712:22;1736:14;1781:9;:21;1820:3;1841:50;;;;;;;;1855:1;1841:50;;;;1858:9;1841:50;;;;1869:6;1841:50;;;;1877:5;1841:50;;;;1884:6;-1:-1:-1;;;;;1841:50:11;;;;1781:124;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1781:124:11;;;;;;;;;;;;:::i;:::-;1762:143;;;;1548:364;;;;;;;:::o;462:117::-;513:12;555:16;570:1;555:12;:16;:::i;:::-;544:28;;;;;;160:25:65;;148:2;133:18;;14:177;544:28:11;;;;;;;;;;;;;537:35;;462:117;:::o;1638:85:48:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:48;;1638:85::o;663:129:0:-;1531:13:48;:11;:13::i;:::-;738:12:0;;::::1;::::0;:5:::1;::::0;:12:::1;::::0;::::1;::::0;::::1;:::i;:::-;-1:-1:-1::0;765:20:0::1;::::0;::::1;::::0;;;::::1;663:129:::0;:::o;798:92::-;844:15;878:5;871:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;798:92;:::o;694:848:11:-;842:14;858;884:20;918:7;907:30;;;;;;;;;;;;:::i;:::-;884:53;;947:21;982:5;971:33;;;;;;;;;;;;:::i;:::-;947:57;;1014:28;1045:37;1064:1;:17;;;1045:18;:37::i;:::-;1014:68;;1092:19;1122:33;1150:1;1152;1150:4;;;;;;;;:::i;:::-;;;;;;;1122:27;:33::i;:::-;1114:42;-1:-1:-1;1166:39:11;1179:12;1114:42;1166:12;:39::i;:::-;1370:17;;1360:28;;;;;;;1307:22;;;1347:41;;1339:69;;;;-1:-1:-1;;;1339:69:11;;14525:2:65;1339:69:11;;;14507:21:65;14564:2;14544:18;;;14537:30;-1:-1:-1;;;14583:18:65;;;14576:45;14638:18;;1339:69:11;;;;;;;;;1418:17;1438:39;1472:1;1474;1472:4;;;;;;;;:::i;:::-;;;;;;;1438:33;:39::i;:::-;1418:59;;1494:41;1501:3;1506:9;1517:1;:8;;;1527:1;:7;;;1494:6;:41::i;:::-;1487:48;;;;;;;;;;694:848;;;;;;:::o;2543:215:48:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:48;::::1;2623:91;;2700:1;2672:31;;-1:-1:-1::0;;;2672:31:48::1;;;;;;;;:::i;2623:91::-;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;1796:162::-;735:10:50;1855:7:48;:5;:7::i;:::-;-1:-1:-1;;;;;1855:23:48;;1851:101;;735:10:50;1901:40:48;;-1:-1:-1;;;1901:40:48;;;;;;;;:::i;2912:187::-;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:48;;;-1:-1:-1;;;;;;3020:17:48;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;3631:130:63:-;3690:21;3730:24;3739:14;3749:3;3739:9;:14::i;:::-;3730:8;:24::i;:::-;3723:31;3631:130;-1:-1:-1;;3631:130:63:o;210:166:9:-;302:7;328:41;343:25;363:4;343:19;:25::i;:::-;328:14;:41::i;1081:211:0:-;1176:6;1160:13;1166:7;1160:3;:13;:::i;:::-;:22;1156:69;;;1191:34;;-1:-1:-1;;;1191:34:0;;;;;14999:25:65;;;15040:18;;;15033:34;;;1217:7:0;15083:18:65;;;15076:34;14972:18;;1191:34:0;14797:319:65;1156:69:0;1245:6;1239:3;:12;1235:50;;;1260:25;;-1:-1:-1;;;1260:25:0;;;;;15295::65;;;15336:18;;;15329:34;;;15268:18;;1260:25:0;15121:248:65;1235:50:0;1081:211;;:::o;579:253:9:-;677:7;696:14;713:25;733:4;713:19;:25::i;:::-;696:42;;752:1;:8;764:2;752:14;748:50;;775:23;;-1:-1:-1;;;775:23:9;;;;;;;;;;;748:50;815:10;823:1;815:10;:::i;:::-;808:17;579:253;-1:-1:-1;;;579:253:9:o;1325:328:63:-;1385:19;;:::i;:::-;1463:3;:10;1477:1;1463:15;1459:39;;1487:11;;-1:-1:-1;;;1487:11:63;;;;;;;;;;;1459:39;-1:-1:-1;1605:41:63;;;;;;;;;1623:10;;1605:41;;1575:2;1566:12;;;1605:41;;;;;;;;1325:328::o;1805:1674::-;1866:21;1900:18;1920;1940:20;1964:18;1978:3;1964:13;:18::i;:::-;1899:83;;-1:-1:-1;1899:83:63;-1:-1:-1;1899:83:63;-1:-1:-1;2009:21:63;1997:8;:33;;;;;;;;:::i;:::-;;1993:64;;2039:18;;-1:-1:-1;;;2039:18:63;;;;;;;;;;;1993:64;2099:10;;2072:23;2085:10;2072;:23;:::i;:::-;:37;2068:72;;2118:22;;-1:-1:-1;;;2118:22:63;;;;;;;;;;;2068:72;2550:30;;;1150:2;2550:30;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;2543:37:63;-1:-1:-1;2591:17:63;2639:10;2659:681;2675:10;;2666:19;;2659:681;;;2702:18;2722;2745:150;2776:105;;;;;;;;2807:6;2794:3;:10;;;:19;;;;:::i;:::-;2776:105;;;;2871:6;2860:3;:7;;;2839:38;;;;:::i;:::-;2776:105;;2745:13;:150::i;:::-;2701:194;;;;;3100:153;;;;;;;;3147:10;3134;:23;;;;:::i;:::-;3100:153;;;;3231:6;3220:3;:7;;;3199:38;;;;:::i;:::-;3100:153;;;3082:4;3087:9;3082:15;;;;;;;;:::i;:::-;;;;;;;;;;:171;3268:14;3281:1;3268:14;;:::i;:::-;;-1:-1:-1;3306:23:63;3319:10;3306;:23;:::i;:::-;3296:33;;;;:::i;:::-;;;2687:653;;2659:681;;;-1:-1:-1;3440:23:63;;-1:-1:-1;3447:4:63;;1805:1674;-1:-1:-1;;;1805:1674:63:o;3892:393::-;3954:17;3984:18;4004;4024:20;4048:18;4062:3;4048:13;:18::i;:::-;3983:83;;-1:-1:-1;3983:83:63;-1:-1:-1;3983:83:63;-1:-1:-1;4093:21:63;4081:8;:33;;;;;;;;:::i;:::-;;4077:62;;4123:16;;-1:-1:-1;;;4123:16:63;;;;;;;;;;;4077:62;4168:23;4181:10;4168;:23;:::i;:::-;4154:10;;:37;4150:72;;4200:22;;-1:-1:-1;;;4200:22:63;;;;;;;;;;;4150:72;4240:38;4246:3;:7;;;4255:10;4267;4240:5;:38::i;:::-;4233:45;3892:393;-1:-1:-1;;;;;3892:393:63:o;382:191:9:-;445:7;479:2;468:1;:8;:13;464:49;;;490:23;;-1:-1:-1;;;490:23:9;;;;;;;;;;;464:49;564:1;551;:8;546:2;:13;;;;:::i;:::-;545:20;;530:10;538:1;530:10;:::i;:::-;:36;;;382:191;-1:-1:-1;;382:191:9:o;5074:3092:63:-;5163:15;5180;5197:17;5516:3;:10;;;5530:1;5516:15;5512:39;;5540:11;;-1:-1:-1;;;5540:11:63;;;;;;;;;;;5512:39;5582:7;;;;5664:10;;5562:17;5656:19;5709:4;5699:14;;5695:2465;;5765:1;5768;5771:21;5757:36;;;;;;;;;;5695:2465;5824:4;5814:6;:14;5810:2350;;5930:14;5947:13;5956:4;5947:6;:13;:::i;:::-;5930:30;;5993:6;5979:3;:10;;;:20;5975:56;;6008:23;;-1:-1:-1;;;6008:23:63;;;;;;;;;;;5975:56;6153:1;6144:11;;;6138:18;-1:-1:-1;;;;;;6134:39:63;;6205:11;;:40;;;;-1:-1:-1;;;;;;;;;;6220:25:63;;;6205:40;6201:68;;;6254:15;;-1:-1:-1;;;6254:15:63;;;;;;;;;;;6201:68;-1:-1:-1;6292:1:63;;-1:-1:-1;6295:6:63;-1:-1:-1;6303:21:63;;-1:-1:-1;6284:41:63;;-1:-1:-1;;6284:41:63;5810:2350;6356:4;6346:6;:14;6342:1818;;6404:19;6426:13;6435:4;6426:6;:13;:::i;:::-;6404:35;;6472:11;6458:3;:10;;;:25;6454:61;;6492:23;;-1:-1:-1;;;6492:23:63;;;;;;;;;;;6454:61;6637:1;6628:11;;6622:18;-1:-1:-1;;;;;;6618:39:63;6530:25;6689:26;;;6685:54;;6724:15;;-1:-1:-1;;;6724:15:63;;;;;;;;;;;6685:54;6869:1;6860:11;;6854:18;6836:1;6832:19;;6827:3;6823:29;6819:54;6915:2;6905:12;;6901:40;;6926:15;;-1:-1:-1;;;6926:15:63;;;;;;;;;;;6901:40;6974:20;6988:6;6974:11;:20;:::i;:::-;6960:10;;:34;6956:70;;7003:23;;-1:-1:-1;;;7003:23:63;;;;;;;;;;;6956:70;7049:15;7053:11;7049:1;:15;:::i;:::-;7041:55;-1:-1:-1;7066:6:63;-1:-1:-1;7074:21:63;;-1:-1:-1;7041:55:63;;-1:-1:-1;;;;7041:55:63;6342:1818;7127:4;7117:6;:14;7113:1047;;7230:15;7248:13;7257:4;7248:6;:13;:::i;:::-;7230:31;;7294:7;7280:3;:10;;;:21;7276:57;;7310:23;;-1:-1:-1;;;7310:23:63;;;;;;;;;;;7276:57;7356:1;;-1:-1:-1;7359:7:63;-1:-1:-1;7356:1:63;;-1:-1:-1;7348:42:63;;-1:-1:-1;;7348:42:63;7113:1047;7447:20;7470:13;7479:4;7470:6;:13;:::i;:::-;7447:36;;7516:12;7502:3;:10;;;:26;7498:62;;7537:23;;-1:-1:-1;;;7537:23:63;;;;;;;;;;;7498:62;7682:1;7673:11;;7667:18;-1:-1:-1;;;;;;7663:39:63;7575:25;7734:26;;;7730:54;;7769:15;;-1:-1:-1;;;7769:15:63;;;;;;;;;;;7730:54;7917:1;7908:11;;7902:18;7883:1;7879:20;;7874:3;7870:30;7866:55;7964:2;7953:13;;7949:41;;7975:15;;-1:-1:-1;;;7975:15:63;;;;;;;;;;;7949:41;8023:22;8038:7;8023:12;:22;:::i;:::-;8009:10;;:36;8005:72;;8054:23;;-1:-1:-1;;;8054:23:63;;;;;;;;;;;8005:72;8100:16;8104:12;8100:1;:16;:::i;:::-;8092:57;-1:-1:-1;8118:7:63;-1:-1:-1;8127:21:63;;-1:-1:-1;8092:57:63;;-1:-1:-1;;;;8092:57:63;5074:3092;;;;;;:::o;8426:737::-;8517:17;8563:7;-1:-1:-1;;;;;8553:18:63;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8553:18:63;-1:-1:-1;8546:25:63;-1:-1:-1;8581:54:63;;8613:11;8581:54;8851:11;8865:36;8894:7;8886:4;8865:36;:::i;:::-;8851:50;;8956:2;8950:4;8946:13;8981:1;8995:87;9009:7;9006:1;9003:14;8995:87;;;9067:11;;;9061:18;9047:12;;;9040:40;9032:2;9025:10;8995:87;;;9105:7;9102:1;9099:14;9096:51;;;9143:1;9133:7;9127:4;9123:18;9116:29;9096:51;;;8920:237;8426:737;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;321:226:65;-1:-1:-1;;;;;508:32:65;;;;490:51;;478:2;463:18;;321:226::o;552:127::-;613:10;608:3;604:20;601:1;594:31;644:4;641:1;634:15;668:4;665:1;658:15;684:253;756:2;750:9;798:4;786:17;;-1:-1:-1;;;;;818:34:65;;854:22;;;815:62;812:88;;;880:18;;:::i;:::-;916:2;909:22;684:253;:::o;942:275::-;1013:2;1007:9;1078:2;1059:13;;-1:-1:-1;;1055:27:65;1043:40;;-1:-1:-1;;;;;1098:34:65;;1134:22;;;1095:62;1092:88;;;1160:18;;:::i;:::-;1196:2;1189:22;942:275;;-1:-1:-1;942:275:65:o;1222:186::-;1270:4;-1:-1:-1;;;;;1292:30:65;;1289:56;;;1325:18;;:::i;:::-;-1:-1:-1;1391:2:65;1370:15;-1:-1:-1;;1366:29:65;1397:4;1362:40;;1222:186::o;1413:336::-;1477:5;1506:52;1522:35;1550:6;1522:35;:::i;:::-;1506:52;:::i;:::-;1497:61;;1581:6;1574:5;1567:21;1621:3;1612:6;1607:3;1603:16;1600:25;1597:45;;;1638:1;1635;1628:12;1597:45;1687:6;1682:3;1675:4;1668:5;1664:16;1651:43;1741:1;1734:4;1725:6;1718:5;1714:18;1710:29;1703:40;1413:336;;;;;:::o;1754:220::-;1796:5;1849:3;1842:4;1834:6;1830:17;1826:27;1816:55;;1867:1;1864;1857:12;1816:55;1889:79;1964:3;1955:6;1942:20;1935:4;1927:6;1923:17;1889:79;:::i;1979:545::-;2040:5;2088:4;2076:9;2071:3;2067:19;2063:30;2060:50;;;2106:1;2103;2096:12;2060:50;2139:2;2133:9;2181:4;2169:17;;-1:-1:-1;;;;;2238:18:65;;;2258:22;;;2235:46;2232:72;;;2284:18;;:::i;:::-;2324:10;2320:2;2313:22;2353:6;2344:15;;2395:9;2382:23;2368:37;;2428:2;2420:6;2417:14;2414:34;;;2444:1;2441;2434:12;2414:34;;2472:45;2513:3;2504:6;2493:9;2489:22;2472:45;:::i;:::-;2464:6;2457:61;;;1979:545;;;;:::o;2529:181::-;2587:4;-1:-1:-1;;;;;2609:30:65;;2606:56;;;2642:18;;:::i;:::-;-1:-1:-1;2687:1:65;2683:14;2699:4;2679:25;;2529:181::o;2715:1563::-;2876:6;2884;2892;2900;2953:3;2941:9;2932:7;2928:23;2924:33;2921:53;;;2970:1;2967;2960:12;2921:53;2997:23;;-1:-1:-1;;;;;3069:14:65;;;3066:34;;;3096:1;3093;3086:12;3066:34;3119:65;3176:7;3167:6;3156:9;3152:22;3119:65;:::i;:::-;3109:75;;3203:2;3193:12;;3252:2;3241:9;3237:18;3224:32;3214:42;;3309:2;3298:9;3294:18;3281:32;3338:2;3328:8;3325:16;3322:36;;;3354:1;3351;3344:12;3322:36;3377:24;;3432:4;3424:13;;3420:27;-1:-1:-1;3410:55:65;;3461:1;3458;3451:12;3410:55;3497:2;3484:16;3520:58;3536:41;3574:2;3536:41;:::i;3520:58::-;3612:15;;;3694:1;3690:10;;;;3682:19;;3678:28;;;3643:12;;;;3718:19;;;3715:39;;;3750:1;3747;3740:12;3715:39;3782:2;3778;3774:11;3794:282;3810:6;3805:3;3802:15;3794:282;;;3896:3;3883:17;3932:2;3919:11;3916:19;3913:39;;;3948:1;3945;3938:12;3913:39;3977:56;4025:7;4020:2;4006:11;4002:2;3998:20;3994:29;3977:56;:::i;:::-;3965:69;;-1:-1:-1;4054:12:65;;;;3827;;3794:282;;;-1:-1:-1;4095:5:65;-1:-1:-1;;;;4153:2:65;4138:18;;4125:32;;-1:-1:-1;4169:16:65;;;4166:36;;;4198:1;4195;4188:12;4166:36;;4221:51;4264:7;4253:8;4242:9;4238:24;4221:51;:::i;:::-;4211:61;;;2715:1563;;;;;;;:::o;4283:288::-;4324:3;4362:5;4356:12;4389:6;4384:3;4377:19;4445:6;4438:4;4431:5;4427:16;4420:4;4415:3;4411:14;4405:47;4497:1;4490:4;4481:6;4476:3;4472:16;4468:27;4461:38;4560:4;4553:2;4549:7;4544:2;4536:6;4532:15;4528:29;4523:3;4519:39;4515:50;4508:57;;;4283:288;;;;:::o;4576:884::-;4760:4;4808:2;4797:9;4793:18;4838:2;4827:9;4820:21;4861:6;4896;4890:13;4927:6;4919;4912:22;4965:2;4954:9;4950:18;4943:25;;5027:2;5017:6;5014:1;5010:14;4999:9;4995:30;4991:39;4977:53;;5049:4;5088;5080:6;5076:17;5111:1;5121:254;5135:6;5132:1;5129:13;5121:254;;;5228:2;5224:7;5212:9;5204:6;5200:22;5196:36;5191:3;5184:49;5256:39;5288:6;5279;5273:13;5256:39;:::i;:::-;5246:49;-1:-1:-1;5353:12:65;;;;5318:15;;;;5157:1;5150:9;5121:254;;;5125:3;;;;;5392:6;5384:14;;;5448:4;5440:6;5436:17;5429:4;5418:9;5414:20;5407:47;4576:884;;;;;:::o;5465:217::-;5612:2;5601:9;5594:21;5575:4;5632:44;5672:2;5661:9;5657:18;5649:6;5632:44;:::i;5895:1195::-;5989:6;6020:2;6063;6051:9;6042:7;6038:23;6034:32;6031:52;;;6079:1;6076;6069:12;6031:52;6106:23;;-1:-1:-1;;;;;6178:14:65;;;6175:34;;;6205:1;6202;6195:12;6175:34;6243:6;6232:9;6228:22;6218:32;;6288:7;6281:4;6277:2;6273:13;6269:27;6259:55;;6310:1;6307;6300:12;6259:55;6346:2;6333:16;6369:58;6385:41;6423:2;6385:41;:::i;6369:58::-;6461:15;;;6543:1;6539:10;;;;6531:19;;6527:28;;;6492:12;;;;6567:19;;;6564:39;;;6599:1;6596;6589:12;6564:39;6631:2;6627;6623:11;6643:417;6659:6;6654:3;6651:15;6643:417;;;6745:3;6732:17;6781:2;6768:11;6765:19;6762:39;;;6797:1;6794;6787:12;6762:39;6824:20;;6879:2;6871:11;;6867:25;-1:-1:-1;6857:53:65;;6906:1;6903;6896:12;6857:53;6935:82;7009:7;7003:2;6999;6995:11;6982:25;6977:2;6973;6969:11;6935:82;:::i;:::-;6923:95;;-1:-1:-1;7038:12:65;;;;6676;;6643:417;;;-1:-1:-1;7079:5:65;5895:1195;-1:-1:-1;;;;;;;;5895:1195:65:o;7095:802::-;7257:4;7286:2;7326;7315:9;7311:18;7356:2;7345:9;7338:21;7379:6;7414;7408:13;7445:6;7437;7430:22;7483:2;7472:9;7468:18;7461:25;;7545:2;7535:6;7532:1;7528:14;7517:9;7513:30;7509:39;7495:53;;7583:2;7575:6;7571:15;7604:1;7614:254;7628:6;7625:1;7622:13;7614:254;;;7721:2;7717:7;7705:9;7697:6;7693:22;7689:36;7684:3;7677:49;7749:39;7781:6;7772;7766:13;7749:39;:::i;:::-;7739:49;-1:-1:-1;7846:12:65;;;;7811:15;;;;7650:1;7643:9;7614:254;;;-1:-1:-1;7885:6:65;;7095:802;-1:-1:-1;;;;;;;7095:802:65:o;7902:776::-;8029:6;8037;8045;8098:2;8086:9;8077:7;8073:23;8069:32;8066:52;;;8114:1;8111;8104:12;8066:52;8141:23;;-1:-1:-1;;;;;8213:14:65;;;8210:34;;;8240:1;8237;8230:12;8210:34;8263:49;8304:7;8295:6;8284:9;8280:22;8263:49;:::i;:::-;8253:59;;8365:2;8354:9;8350:18;8337:32;8321:48;;8394:2;8384:8;8381:16;8378:36;;;8410:1;8407;8400:12;8378:36;8433:67;8492:7;8481:8;8470:9;8466:24;8433:67;:::i;:::-;8423:77;;8553:2;8542:9;8538:18;8525:32;8509:48;;8582:2;8572:8;8569:16;8566:36;;;8598:1;8595;8588:12;8566:36;;8621:51;8664:7;8653:8;8642:9;8638:24;8621:51;:::i;:::-;8611:61;;;7902:776;;;;;:::o;8683:286::-;8742:6;8795:2;8783:9;8774:7;8770:23;8766:32;8763:52;;;8811:1;8808;8801:12;8763:52;8837:23;;-1:-1:-1;;;;;8889:31:65;;8879:42;;8869:70;;8935:1;8932;8925:12;8974:1569;9265:2;9254:9;9247:21;9228:4;9303:6;9297:13;9329:4;9369:2;9364;9353:9;9349:18;9342:30;9392:50;9438:2;9427:9;9423:18;9409:12;9392:50;:::i;:::-;9381:61;;9487:9;9482:3;9478:19;9473:2;9462:9;9458:18;9451:47;9530:4;9525:3;9521:14;9562:6;9556:13;9551:3;9544:26;9618:2;9610:6;9606:15;9600:22;9595:2;9590:3;9586:12;9579:44;9672:2;9664:6;9660:15;9654:22;9706:4;9701:2;9696:3;9692:12;9685:26;9731:6;9766:14;9760:21;9805:6;9797;9790:22;9837:3;9832;9828:13;9821:20;;9894:3;9884:6;9881:1;9877:14;9872:3;9868:24;9864:34;9850:48;;9941:2;9925:14;9921:23;9907:37;;9962:1;9972:249;9986:6;9983:1;9980:13;9972:249;;;10073:3;10069:8;10063:3;10055:6;10051:16;10047:31;10042:3;10035:44;10102:39;10134:6;10125;10119:13;10102:39;:::i;:::-;10092:49;-1:-1:-1;10164:15:65;;;;10199:12;;;;10008:1;10001:9;9972:249;;;9976:3;;;;10270:2;10262:6;10258:15;10252:22;10230:44;;10316:3;10308:6;10304:16;10299:2;10294:3;10290:12;10283:38;10344:40;10377:6;10361:14;10344:40;:::i;:::-;10330:54;;;10433:4;10425:6;10421:17;10415:24;10448:66;10508:4;10503:3;10499:14;10483;-1:-1:-1;;;;;278:31:65;266:44;;196:120;10448:66;-1:-1:-1;10531:6:65;8974:1569;-1:-1:-1;;;;;8974:1569:65:o;10548:459::-;10601:5;10654:3;10647:4;10639:6;10635:17;10631:27;10621:55;;10672:1;10669;10662:12;10621:55;10701:6;10695:13;10732:48;10748:31;10776:2;10748:31;:::i;10732:48::-;10805:2;10796:7;10789:19;10851:3;10844:4;10839:2;10831:6;10827:15;10823:26;10820:35;10817:55;;;10868:1;10865;10858:12;10817:55;10926:2;10919:4;10911:6;10907:17;10900:4;10891:7;10887:18;10881:48;10974:1;10949:16;;;10967:4;10945:27;10938:38;;;;10953:7;10548:459;-1:-1:-1;;;10548:459:65:o;11012:822::-;11075:5;11128:3;11121:4;11113:6;11109:17;11105:27;11095:55;;11146:1;11143;11136:12;11095:55;11175:6;11169:13;11201:4;11225:58;11241:41;11279:2;11241:41;:::i;11225:58::-;11317:15;;;11403:1;11399:10;;;;11387:23;;11383:32;;;11348:12;;;;11427:15;;;11424:35;;;11455:1;11452;11445:12;11424:35;11491:2;11483:6;11479:15;11503:302;11519:6;11514:3;11511:15;11503:302;;;11592:10;;-1:-1:-1;;;;;11618:35:65;;11615:55;;;11666:1;11663;11656:12;11615:55;11695:67;11758:3;11753:2;11739:11;11731:6;11727:24;11723:33;11695:67;:::i;:::-;11683:80;;-1:-1:-1;11783:12:65;;;;11536;;11503:302;;;-1:-1:-1;11823:5:65;11012:822;-1:-1:-1;;;;;;11012:822:65:o;11839:520::-;119