@unruggable/gateways
Version:
Trustless Ethereum Multichain CCIP-Read Gateway
1 lines • 72.7 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"},{"name":"rollup","type":"address","internalType":"contract IRollup"},{"name":"ethHooks","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":"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":"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":"0x610100604052348015610010575f80fd5b50604051611d52380380611d5283398101604081905261002f91610209565b848484338061005757604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100608161009d565b5082516100749060019060208601906100ec565b506080919091526001600160a01b0390811660a05292831660c052501660e0525061049f915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255905f5260205f20908101928215610130579160200282015b82811115610130578251829061012090826103e0565b509160200191906001019061010a565b5061013c929150610140565b5090565b8082111561013c575f610153828261015c565b50600101610140565b5080546101689061035c565b5f825580601f10610177575050565b601f0160209004905f5260205f20908101906101939190610196565b50565b5b8082111561013c575f8155600101610197565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156101e6576101e66101aa565b604052919050565b80516001600160a01b0381168114610204575f80fd5b919050565b5f805f805f60a0868803121561021d575f80fd5b85516001600160401b0380821115610233575f80fd5b818801915088601f830112610246575f80fd5b815181811115610258576102586101aa565b61026760208260051b016101be565b8082825260208201915060208360051b86010192508b831115610288575f80fd5b602085015b83811015610318578051858111156102a3575f80fd5b8601603f81018e136102b3575f80fd5b6020810151868111156102c8576102c86101aa565b6102db601f8201601f19166020016101be565b8181528f60408385010111156102ef575f80fd5b8160408401602083015e5f6020838301015280865250505060208301925060208101905061028d565b50809950505050505060208601519350610334604087016101ee565b9250610342606087016101ee565b9150610350608087016101ee565b90509295509295909350565b600181811c9082168061037057607f821691505b60208210810361038e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156103db57805f5260205f20601f840160051c810160208510156103b95750805b601f840160051c820191505b818110156103d8575f81556001016103c5565b50505b505050565b81516001600160401b038111156103f9576103f96101aa565b61040d81610407845461035c565b84610394565b602080601f831160018114610440575f84156104295750858301515b5f19600386901b1c1916600185901b178555610497565b5f85815260208120601f198616915b8281101561046e5788860151825594840194600190910190840161044f565b508582101561048b57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b60805160a05160c05160e05161185f6104f35f395f81816104c5015261059501525f81816101810152818161038c015281816104f501526105c401525f818160ba015261068601525f608a015261185f5ff3fe608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610f22565b6100ef61016a565b005b6100f961017d565b6040516100af9190610f64565b6100da610225565b6100ef61011c366004611065565b610233565b61012961027a565b6040516100af9190611121565b6101496101443660046111a1565b61034e565b6040516100af929190611264565b6100ef6101653660046112d2565b610730565b61017261076d565b61017b5f61079f565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166335befa5d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff91906112f8565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b61076d565b805161024e906001906020840190610e54565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba9061130f565b80601f01602080910402602001604051908101604052809291908181526020018280546102e69061130f565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f808580602001905181019061036691906112f8565b90505f8480602001905181019061037d9190611419565b90505f815f01518303610411577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639588eca26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040a91906112f8565b9050610654565b5f61041f83602001516107ee565b90505f6104458260088151811061043857610438611516565b6020026020010151610807565b602080860151805191012090409150811461049d5760405162461bcd60e51b81526020600482015260136024820152720a6e8c2e4d6dccae87440c4d8dec6d6d0c2e6d606b1b60448201526064015b60405180910390fd5b6104c0826003815181106104b3576104b3611516565b6020026020010151610819565b92505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0d907c857f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b81526004016105379392919061152a565b602060405180830381865afa158015610552573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057691906112f8565b6060860151604051631dcc176960e01b81529192506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631dcc17699161060f9185917f0000000000000000000000000000000000000000000000000000000000000000917f71a8ef1b1265359d77973c3524afac225c0a0d829a0d4da5cac3b34532019fec9190600401611553565b602060405180830381865afa15801561062a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064e91906112f8565b93505050505b6040805160a080820183525f825260208201849052608080860151838501529085015160608301526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916106e0918b91600401611589565b5f60405180830381865af41580156106fa573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610721919081019061165a565b94509450505050935093915050565b61073861076d565b6001600160a01b038116610761575f604051631e4fbdf760e01b81526004016104949190610f22565b61076a8161079f565b50565b33610776610225565b6001600160a01b03161461017b573360405163118cdaa760e01b81526004016104949190610f22565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606108016107fc83610858565b61089f565b92915050565b5f61080161081483610a12565b610a9a565b5f8061082483610a12565b90508051602014610848576040516366c9448560e01b815260040160405180910390fd5b610851816116ad565b9392505050565b610860610ea8565b81515f0361088157604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f6108ad85610ae1565b9194509250905060018160018111156108c8576108c86116d0565b146108e6576040516325ce355f60e11b815260040160405180910390fd5b84516108f283856116f8565b1461091057604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b61092f610ea8565b8152602001906001900390816109275790505093505f835b8651811015610a06575f8061098b6040518060400160405280858c5f015161096f919061170b565b8152602001858c6020015161098491906116f8565b9052610ae1565b5091509150604051806040016040528083836109a791906116f8565b8152602001848b602001516109bc91906116f8565b8152508885815181106109d1576109d1611516565b60209081029190910101526109e76001856116f8565b93506109f381836116f8565b6109fd90846116f8565b92505050610947565b50845250919392505050565b60605f805f610a2085610ae1565b919450925090505f816001811115610a3a57610a3a6116d0565b14610a58576040516307fe6cb960e21b815260040160405180910390fd5b610a6282846116f8565b855114610a8257604051630b8aa6f760e31b815260040160405180910390fd5b610a9185602001518484610dc4565b95945050505050565b5f602082511115610abe576040516366c9448560e01b815260040160405180910390fd5b600382516020610ace919061170b565b901b610ad9836116ad565b901c92915050565b5f805f835f01515f03610b0757604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f8111610b29575f60015f9450945094505050610dbd565b60b78111610bbe575f610b3d60808361170b565b905080875f015111610b62576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b0319169082148015610b8e5750600160ff1b6001600160f81b03198216105b15610bac5760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250610dbd915050565b60bf8111610c9c575f610bd260b78361170b565b905080875f015111610bf7576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610c275760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610c565760405163babb01dd60e01b815260040160405180910390fd5b610c6081846116f8565b895111610c80576040516366c9448560e01b815260040160405180910390fd5b610c8b8360016116f8565b975095505f9450610dbd9350505050565b60f78111610ce6575f610cb060c08361170b565b905080875f015111610cd5576040516366c9448560e01b815260040160405180910390fd5b600195509350849250610dbd915050565b5f610cf260f78361170b565b905080875f015111610d17576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610d475760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610d765760405163babb01dd60e01b815260040160405180910390fd5b610d8081846116f8565b895111610da0576040516366c9448560e01b815260040160405180910390fd5b610dab8360016116f8565b9750955060019450610dbd9350505050565b9193909250565b6060816001600160401b03811115610dde57610dde610f76565b6040519080825280601f01601f191660200182016040528015610e08576020820181803683370190505b5090508115610851575f610e1c84866116f8565b9050602082015f5b84811015610e3c578281015182820152602001610e24565b84811115610e4a575f858301525b5050509392505050565b828054828255905f5260205f20908101928215610e98579160200282015b82811115610e985782518290610e88908261176a565b5091602001919060010190610e72565b50610ea4929150610ec0565b5090565b60405180604001604052805f81526020015f81525090565b80821115610ea4575f610ed38282610edc565b50600101610ec0565b508054610ee89061130f565b5f825580601f10610ef7575050565b601f0160209004905f5260205f209081019061076a91905b80821115610ea4575f8155600101610f0f565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6108516020830184610f36565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715610fac57610fac610f76565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610fda57610fda610f76565b604052919050565b5f6001600160401b03821115610ffa57610ffa610f76565b5060051b60200190565b5f6001600160401b0382111561101c5761101c610f76565b50601f01601f191660200190565b5f61103c61103784611004565b610fb2565b905082815283838301111561104f575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215611076575f80fd5b82356001600160401b038082111561108c575f80fd5b818501915085601f83011261109f575f80fd5b81356110ad61103782610fe2565b81815260059190911b830184019084810190888311156110cb575f80fd5b8585015b83811015611114578035858111156110e5575f80fd5b8601603f81018b136110f5575f80fd5b6111068b898301356040840161102a565b8452509186019186016110cf565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561117657603f19888603018452611164858351610f36565b94509285019290850190600101611148565b5092979650505050505050565b5f82601f830112611192575f80fd5b6108518383356020850161102a565b5f805f606084860312156111b3575f80fd5b83356001600160401b03808211156111c9575f80fd5b6111d587838801611183565b945060208601359150808211156111ea575f80fd5b90850190602082880312156111fd575f80fd5b60405160208101818110838211171561121857611218610f76565b604052823582811115611229575f80fd5b61123589828601611183565b8252509350604086013591508082111561124d575f80fd5b5061125a86828701611183565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b838110156112b957605f198887030185526112a7868351610f36565b9550938201939082019060010161128b565b50505050508091505060ff831660208301529392505050565b5f602082840312156112e2575f80fd5b81356001600160a01b0381168114610851575f80fd5b5f60208284031215611308575f80fd5b5051919050565b600181811c9082168061132357607f821691505b60208210810361134157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112611356575f80fd5b815161136461103782611004565b818152846020838601011115611378575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f8301126113a3575f80fd5b815160206113b361103783610fe2565b82815260059290921b840181019181810190868411156113d1575f80fd5b8286015b8481101561140e5780516001600160401b038111156113f2575f80fd5b6114008986838b0101611347565b8452509183019183016113d5565b509695505050505050565b5f60208284031215611429575f80fd5b81516001600160401b038082111561143f575f80fd5b9083019060c08286031215611452575f80fd5b61145a610f8a565b8251815260208301518281111561146f575f80fd5b61147b87828601611347565b602083015250604083015182811115611492575f80fd5b61149e87828601611347565b6040830152506060830151828111156114b5575f80fd5b6114c187828601611347565b6060830152506080830151828111156114d8575f80fd5b6114e487828601611394565b60808301525060a0830151828111156114fb575f80fd5b61150787828601611347565b60a08301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b8381526001600160a01b03831660208201526060604082018190525f90610a9190830184610f36565b84815260018060a01b0384166020820152826040820152608060608201525f61157f6080830184610f36565b9695505050505050565b604081525f835160208060408501526115a56060850183610f36565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b818110156116165760bf19878603018352611604858551610f36565b945092850192918501916001016115e8565b505050506060860151915082810360608401526116338183610f36565b915050608085015161165060808401826001600160a01b03169052565b5095945050505050565b5f806040838503121561166b575f80fd5b82516001600160401b03811115611680575f80fd5b61168c85828601611394565b925050602083015160ff811681146116a2575f80fd5b809150509250929050565b80516020808301519190811015611341575f1960209190910360031b1b16919050565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610801576108016116e4565b81810381811115610801576108016116e4565b601f82111561176557805f5260205f20601f840160051c810160208510156117435750805b601f840160051c820191505b81811015611762575f815560010161174f565b50505b505050565b81516001600160401b0381111561178357611783610f76565b61179781611791845461130f565b8461171e565b602080601f8311600181146117ca575f84156117b35750858301515b5f19600386901b1c1916600185901b178555611821565b5f85815260208120601f198616915b828110156117f8578886015182559484019460019091019084016117d9565b508582101561181557878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea2646970667358221220d758c6274ba18f7bd641c5657236e9532383e8e3a937ed47f82576b5ff7bd2cb64736f6c63430008190033","sourceMap":"629:2194:33:-:0;;;753:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;929:4;935:6;943:5;566:10:0;;1269:95:48;;1322:31;;-1:-1:-1;;;1322:31:48;;1350:1;1322:31;;;2699:51:65;2672: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;960:16:33;;::::1;;::::0;-1:-1:-1;986:20:33::1;;::::0;-1:-1:-1;629:2194:33;;-1:-1:-1;;629:2194:33;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;629:2194:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;629:2194:33;;;-1:-1:-1;629:2194:33;:::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:1924::-;828:6;836;844;852;860;913:3;901:9;892:7;888:23;884:33;881:53;;;930:1;927;920:12;881:53;957:16;;-1:-1:-1;;;;;1022:14:65;;;1019:34;;;1049:1;1046;1039:12;1019:34;1087:6;1076:9;1072:22;1062:32;;1132:7;1125:4;1121:2;1117:13;1113:27;1103:55;;1154:1;1151;1144:12;1103:55;1183:2;1177:9;1205:2;1201;1198:10;1195:36;;;1211:18;;:::i;:::-;1251:38;1283:4;1278:2;1275:1;1271:10;1267:21;1251:38;:::i;:::-;1311:3;1335:2;1330:3;1323:15;1363:4;1358:3;1354:14;1347:21;;1416:4;1410:2;1407:1;1403:10;1399:2;1395:19;1391:30;1377:44;;1444:7;1436:6;1433:19;1430:39;;;1465:1;1462;1455:12;1430:39;1497:4;1493:2;1489:13;1511:708;1527:6;1522:3;1519:15;1511:708;;;1608:3;1602:10;1644:2;1631:11;1628:19;1625:39;;;1660:1;1657;1650:12;1625:39;1687:20;;1742:2;1734:11;;1730:25;-1:-1:-1;1720:53:65;;1769:1;1766;1759:12;1720:53;1810:4;1806:2;1802:13;1796:20;1839:2;1835;1832:10;1829:36;;;1845:18;;:::i;:::-;1891:55;1934:2;1915:13;;-1:-1:-1;;1911:27:65;1940:4;1907:38;1891:55;:::i;:::-;1973:2;1966:5;1959:17;2017:7;2012:2;2007;2003;1999:11;1995:20;1992:33;1989:53;;;2038:1;2035;2028:12;1989:53;2092:2;2087;2083;2079:11;2072:4;2065:5;2061:16;2055:40;2142:1;2135:4;2130:2;2123:5;2119:14;2115:25;2108:36;2169:5;2164:3;2157:18;;;;2204:4;2199:3;2195:14;2188:21;;1553:4;1548:3;1544:14;1537:21;;1511:708;;;1515:3;2238:5;2228:15;;;;;;;2283:4;2272:9;2268:20;2262:27;2252:37;;2308:65;2369:2;2358:9;2354:18;2308:65;:::i;:::-;2298:75;;2392:65;2453:2;2442:9;2438:18;2392:65;:::i;:::-;2382:75;;2476:66;2537:3;2526:9;2522:19;2476:66;:::i;:::-;2466:76;;624:1924;;;;;;;;:::o;2761:380::-;2840:1;2836:12;;;;2883;;;2904:61;;2958:4;2950:6;2946:17;2936:27;;2904:61;3011:2;3003:6;3000:14;2980:18;2977:38;2974:161;;3057:10;3052:3;3048:20;3045:1;3038:31;3092:4;3089:1;3082:15;3120:4;3117:1;3110:15;2974:161;;2761:380;;;:::o;3272:518::-;3374:2;3369:3;3366:11;3363:421;;;3410:5;3407:1;3400:16;3454:4;3451:1;3441:18;3524:2;3512:10;3508:19;3505:1;3501:27;3495:4;3491:38;3560:4;3548:10;3545:20;3542:47;;;-1:-1:-1;3583:4:65;3542:47;3638:2;3633:3;3629:12;3626:1;3622:20;3616:4;3612:31;3602:41;;3693:81;3711:2;3704:5;3701:13;3693:81;;;3770:1;3756:16;;3737:1;3726:13;3693:81;;;3697:3;;3363:421;3272:518;;;:::o;3966:1345::-;4086:10;;-1:-1:-1;;;;;4108:30:65;;4105:56;;;4141:18;;:::i;:::-;4170:97;4260:6;4220:38;4252:4;4246:11;4220:38;:::i;:::-;4214:4;4170:97;:::i;:::-;4322:4;;4379:2;4368:14;;4396:1;4391:663;;;;5098:1;5115:6;5112:89;;;-1:-1:-1;5167:19:65;;;5161:26;5112:89;-1:-1:-1;;3923:1:65;3919:11;;;3915:24;3911:29;3901:40;3947:1;3943:11;;;3898:57;5214:81;;4361:944;;4391:663;3219:1;3212:14;;;3256:4;3243:18;;-1:-1:-1;;4427:20:65;;;4545:236;4559:7;4556:1;4553:14;4545:236;;;4648:19;;;4642:26;4627:42;;4740:27;;;;4708:1;4696:14;;;;4575:19;;4545:236;;;4549:3;4809:6;4800:7;4797:19;4794:201;;;4870:19;;;4864:26;-1:-1:-1;;4953:1:65;4949:14;;;4965:3;4945:24;4941:37;4937:42;4922:58;4907:74;;4794:201;;;5041:1;5032:6;5029:1;5025:14;5021:22;5015:4;5008:36;4361:944;;;;;3966:1345;;:::o;:::-;629:2194:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{"contracts/GatewayVM.sol":{"GatewayVM":[{"start":2987,"length":20}]}}},"deployedBytecode":{"object":"0x608060405234801561000f575f80fd5b5060043610610081575f3560e01c80631d80051d146100855780635cd2525e146100b8578063715018a6146100e757806387c484fe146100f15780638da5cb5b146101065780638e5ea8df1461010e578063b50f2fbc14610121578063e3d1666e14610136578063f2fde38b14610157575b5f80fd5b6040517f000000000000000000000000000000000000000000000000000000000000000081526020015b60405180910390f35b7f00000000000000000000000000000000000000000000000000000000000000005b6040516100af9190610f22565b6100ef61016a565b005b6100f961017d565b6040516100af9190610f64565b6100da610225565b6100ef61011c366004611065565b610233565b61012961027a565b6040516100af9190611121565b6101496101443660046111a1565b61034e565b6040516100af929190611264565b6100ef6101653660046112d2565b610730565b61017261076d565b61017b5f61079f565b565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166335befa5d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101db573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101ff91906112f8565b60405160200161021191815260200190565b604051602081830303815290604052905090565b5f546001600160a01b031690565b61023b61076d565b805161024e906001906020840190610e54565b506040517fe621d803a0c96b9bbeea51d136777f6ea8a4ce0c4ac74f6645e18b4342e2fa07905f90a150565b60606001805480602002602001604051908101604052809291908181526020015f905b82821015610345578382905f5260205f200180546102ba9061130f565b80601f01602080910402602001604051908101604052809291908181526020018280546102e69061130f565b80156103315780601f1061030857610100808354040283529160200191610331565b820191905f5260205f20905b81548152906001019060200180831161031457829003601f168201915b50505050508152602001906001019061029d565b50505050905090565b60605f808580602001905181019061036691906112f8565b90505f8480602001905181019061037d9190611419565b90505f815f01518303610411577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639588eca26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040a91906112f8565b9050610654565b5f61041f83602001516107ee565b90505f6104458260088151811061043857610438611516565b6020026020010151610807565b602080860151805191012090409150811461049d5760405162461bcd60e51b81526020600482015260136024820152720a6e8c2e4d6dccae87440c4d8dec6d6d0c2e6d606b1b60448201526064015b60405180910390fd5b6104c0826003815181106104b3576104b3611516565b6020026020010151610819565b92505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663dd0d907c857f000000000000000000000000000000000000000000000000000000000000000088604001516040518463ffffffff1660e01b81526004016105379392919061152a565b602060405180830381865afa158015610552573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061057691906112f8565b6060860151604051631dcc176960e01b81529192506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631dcc17699161060f9185917f0000000000000000000000000000000000000000000000000000000000000000917f71a8ef1b1265359d77973c3524afac225c0a0d829a0d4da5cac3b34532019fec9190600401611553565b602060405180830381865afa15801561062a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064e91906112f8565b93505050505b6040805160a080820183525f825260208201849052608080860151838501529085015160608301526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169082015290516324a8807560e21b815273__$011ed85421b307e5206de383929e31be73$__916392a201d4916106e0918b91600401611589565b5f60405180830381865af41580156106fa573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610721919081019061165a565b94509450505050935093915050565b61073861076d565b6001600160a01b038116610761575f604051631e4fbdf760e01b81526004016104949190610f22565b61076a8161079f565b50565b33610776610225565b6001600160a01b03161461017b573360405163118cdaa760e01b81526004016104949190610f22565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60606108016107fc83610858565b61089f565b92915050565b5f61080161081483610a12565b610a9a565b5f8061082483610a12565b90508051602014610848576040516366c9448560e01b815260040160405180910390fd5b610851816116ad565b9392505050565b610860610ea8565b81515f0361088157604051635ab458fb60e01b815260040160405180910390fd5b50604080518082019091528151815260209182019181019190915290565b60605f805f6108ad85610ae1565b9194509250905060018160018111156108c8576108c86116d0565b146108e6576040516325ce355f60e11b815260040160405180910390fd5b84516108f283856116f8565b1461091057604051630b8aa6f760e31b815260040160405180910390fd5b604080516020808252610420820190925290816020015b61092f610ea8565b8152602001906001900390816109275790505093505f835b8651811015610a06575f8061098b6040518060400160405280858c5f015161096f919061170b565b8152602001858c6020015161098491906116f8565b9052610ae1565b5091509150604051806040016040528083836109a791906116f8565b8152602001848b602001516109bc91906116f8565b8152508885815181106109d1576109d1611516565b60209081029190910101526109e76001856116f8565b93506109f381836116f8565b6109fd90846116f8565b92505050610947565b50845250919392505050565b60605f805f610a2085610ae1565b919450925090505f816001811115610a3a57610a3a6116d0565b14610a58576040516307fe6cb960e21b815260040160405180910390fd5b610a6282846116f8565b855114610a8257604051630b8aa6f760e31b815260040160405180910390fd5b610a9185602001518484610dc4565b95945050505050565b5f602082511115610abe576040516366c9448560e01b815260040160405180910390fd5b600382516020610ace919061170b565b901b610ad9836116ad565b901c92915050565b5f805f835f01515f03610b0757604051635ab458fb60e01b815260040160405180910390fd5b602084015180515f1a607f8111610b29575f60015f9450945094505050610dbd565b60b78111610bbe575f610b3d60808361170b565b905080875f015111610b62576040516366c9448560e01b815260040160405180910390fd5b6001838101516001600160f81b0319169082148015610b8e5750600160ff1b6001600160f81b03198216105b15610bac5760405163babb01dd60e01b815260040160405180910390fd5b506001955093505f9250610dbd915050565b60bf8111610c9c575f610bd260b78361170b565b905080875f015111610bf7576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610c275760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610c565760405163babb01dd60e01b815260040160405180910390fd5b610c6081846116f8565b895111610c80576040516366c9448560e01b815260040160405180910390fd5b610c8b8360016116f8565b975095505f9450610dbd9350505050565b60f78111610ce6575f610cb060c08361170b565b905080875f015111610cd5576040516366c9448560e01b815260040160405180910390fd5b600195509350849250610dbd915050565b5f610cf260f78361170b565b905080875f015111610d17576040516366c9448560e01b815260040160405180910390fd5b60018301516001600160f81b0319165f819003610d475760405163babb01dd60e01b815260040160405180910390fd5b600184015160088302610100031c60378111610d765760405163babb01dd60e01b815260040160405180910390fd5b610d8081846116f8565b895111610da0576040516366c9448560e01b815260040160405180910390fd5b610dab8360016116f8565b9750955060019450610dbd9350505050565b9193909250565b6060816001600160401b03811115610dde57610dde610f76565b6040519080825280601f01601f191660200182016040528015610e08576020820181803683370190505b5090508115610851575f610e1c84866116f8565b9050602082015f5b84811015610e3c578281015182820152602001610e24565b84811115610e4a575f858301525b5050509392505050565b828054828255905f5260205f20908101928215610e98579160200282015b82811115610e985782518290610e88908261176a565b5091602001919060010190610e72565b50610ea4929150610ec0565b5090565b60405180604001604052805f81526020015f81525090565b80821115610ea4575f610ed38282610edc565b50600101610ec0565b508054610ee89061130f565b5f825580601f10610ef7575050565b601f0160209004905f5260205f209081019061076a91905b80821115610ea4575f8155600101610f0f565b6001600160a01b0391909116815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f6108516020830184610f36565b634e487b7160e01b5f52604160045260245ffd5b60405160c081016001600160401b0381118282101715610fac57610fac610f76565b60405290565b604051601f8201601f191681016001600160401b0381118282101715610fda57610fda610f76565b604052919050565b5f6001600160401b03821115610ffa57610ffa610f76565b5060051b60200190565b5f6001600160401b0382111561101c5761101c610f76565b50601f01601f191660200190565b5f61103c61103784611004565b610fb2565b905082815283838301111561104f575f80fd5b828260208301375f602084830101529392505050565b5f6020808385031215611076575f80fd5b82356001600160401b038082111561108c575f80fd5b818501915085601f83011261109f575f80fd5b81356110ad61103782610fe2565b81815260059190911b830184019084810190888311156110cb575f80fd5b8585015b83811015611114578035858111156110e5575f80fd5b8601603f81018b136110f5575f80fd5b6111068b898301356040840161102a565b8452509186019186016110cf565b5098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101561117657603f19888603018452611164858351610f36565b94509285019290850190600101611148565b5092979650505050505050565b5f82601f830112611192575f80fd5b6108518383356020850161102a565b5f805f606084860312156111b3575f80fd5b83356001600160401b03808211156111c9575f80fd5b6111d587838801611183565b945060208601359150808211156111ea575f80fd5b90850190602082880312156111fd575f80fd5b60405160208101818110838211171561121857611218610f76565b604052823582811115611229575f80fd5b61123589828601611183565b8252509350604086013591508082111561124d575f80fd5b5061125a86828701611183565b9150509250925092565b5f604082016040835280855180835260608501915060608160051b860101925060208088015f5b838110156112b957605f198887030185526112a7868351610f36565b9550938201939082019060010161128b565b50505050508091505060ff831660208301529392505050565b5f602082840312156112e2575f80fd5b81356001600160a01b0381168114610851575f80fd5b5f60208284031215611308575f80fd5b5051919050565b600181811c9082168061132357607f821691505b60208210810361134157634e487b7160e01b5f52602260045260245ffd5b50919050565b5f82601f830112611356575f80fd5b815161136461103782611004565b818152846020838601011115611378575f80fd5b8160208501602083015e5f918101602001919091529392505050565b5f82601f8301126113a3575f80fd5b815160206113b361103783610fe2565b82815260059290921b840181019181810190868411156113d1575f80fd5b8286015b8481101561140e5780516001600160401b038111156113f2575f80fd5b6114008986838b0101611347565b8452509183019183016113d5565b509695505050505050565b5f60208284031215611429575f80fd5b81516001600160401b038082111561143f575f80fd5b9083019060c08286031215611452575f80fd5b61145a610f8a565b8251815260208301518281111561146f575f80fd5b61147b87828601611347565b602083015250604083015182811115611492575f80fd5b61149e87828601611347565b6040830152506060830151828111156114b5575f80fd5b6114c187828601611347565b6060830152506080830151828111156114d8575f80fd5b6114e487828601611394565b60808301525060a0830151828111156114fb575f80fd5b61150787828601611347565b60a08301525095945050505050565b634e487b7160e01b5f52603260045260245ffd5b8381526001600160a01b03831660208201526060604082018190525f90610a9190830184610f36565b84815260018060a01b0384166020820152826040820152608060608201525f61157f6080830184610f36565b9695505050505050565b604081525f835160208060408501526115a56060850183610f36565b91508382038185015260a08201855183528186015182840152604086015160a0604085015281815180845260c08601915060c08160051b870101935084830192505f5b818110156116165760bf19878603018352611604858551610f36565b945092850192918501916001016115e8565b505050506060860151915082810360608401526116338183610f36565b915050608085015161165060808401826001600160a01b03169052565b5095945050505050565b5f806040838503121561166b575f80fd5b82516001600160401b03811115611680575f80fd5b61168c85828601611394565b925050602083015160ff811681146116a2575f80fd5b809150509250929050565b80516020808301519190811015611341575f1960209190910360031b1b16919050565b634e487b7160e01b5f52602160045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610801576108016116e4565b81810381811115610801576108016116e4565b601f82111561176557805f5260205f20601f840160051c810160208510156117435750805b601f840160051c820191505b81811015611762575f815560010161174f565b50505b505050565b81516001600160401b0381111561178357611783610f76565b61179781611791845461130f565b8461171e565b602080601f8311600181146117ca575f84156117b35750858301515b5f19600386901b1c1916600185901b178555611821565b5f85815260208120601f198616915b828110156117f8578886015182559484019460019091019084016117d9565b508582101561181557878501515f19600388901b60f8161c191681555b505060018460011b0185555b50505050505056fea2646970667358221220d758c6274ba18f7bd641c5657236e9532383e8e3a937ed47f82576b5ff7bd2cb64736f6c63430008190033","sourceMap":"629:2194:33:-: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;:::-;;1019:127:33;;;:::i;:::-;;;;;;;:::i;1638:85:48:-;;;:::i;663:129:0:-;;;;;;:::i;:::-;;:::i;798:92::-;;;:::i;:::-;;;;;;;:::i;1348:1473:33:-;;;;;;:::i;:::-;;:::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;1019:127:33:-;1070:12;1112:7;-1:-1:-1;;;;;1112:24:33;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1101:38;;;;;;160:25:65;;148:2;133:18;;14:177;1101:38:33;;;;;;;;;;;;;1094:45;;1019:127;:::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;1348:1473:33:-;1496:14;1512;1538:20;1572:7;1561:30;;;;;;;;;;;;:::i;:::-;1538:53;;1601:21;1636:5;1625:33;;;;;;;;;;;;:::i;:::-;1601:57;;1668:17;1715:1;:13;;;1699:12;:29;1695:963;;1756:7;-1:-1:-1;;;;;1756:17:33;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1744:31;;1695:963;;;1863:28;1894:69;1930:1;:19;;;1894:18;:69::i;:::-;1863:100;;1977:17;2032:33;2060:1;2062;2060:4;;;;;;;;:::i;:::-;;;;;;;2032:27;:33::i;:::-;2142:19;;;;;2132:30;;;;;1997:83;;;-1:-1:-1;2119:43:33;;2094:121;;;;-1:-1:-1;;;2094:121:33;;11026:2:65;2094:121:33;;;11008:21:65;11065:2;11045:18;;;11038:30;-1:-1:-1;;;11084:18:65;;;11077:49;11143:18;;2094:121:33;;;;;;;;;2241:39;2275:1;2277;2275:4;;;;;;;;:::i;:::-;;;;;;;2241:33;:39::i;:::-;2229:51;;2294:19;2316:9;-1:-1:-1;;;;;2316:28:33;;2362:9;2397:7;2423:1;:14;;;2316:135;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2619:14;;;;2477:170;;-1:-1:-1;;;2477:170:33;;2294:157;;-1:-1:-1;;;;;;2477:9:33;:28;;;;:170;;2294:157;;2560:7;;572:52;;2619:14;2477:170;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2465:182;;1792:866;;;1695:963;2746:54;;;;;;;;;-1:-1:-1;2746:54:33;;;;;;;;2774:8;;;;;2746:54;;;;2784:7;;;;2746:54;;;;-1:-1:-1;;;;;2793:6:33;2746:54;;;;;2686:128;;-1:-1:-1;;;2686:128:33;;:9;;:21;;:128;;2725:3;;2686:128;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2686:128:33;;;;;;;;;;;;:::i;:::-;2667:147;;;;;;;1348:1473;;;;;;:::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;579:253::-;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:288::-;593:3;631:5;625:12;658:6;653:3;646:19;714:6;707:4;700:5;696:16;689:4;684:3;680:14;674:47;766:1;759:4;750:6;745:3;741:16;737:27;730:38;829:4;822:2;818:7;813:2;805:6;801:15;797:29;792:3;788:39;784:50;777:57;;;552:288;;;;:::o;845:217::-;992:2;981:9;974:21;955:4;1012:44;1052:2;1041:9;1037:18;1029:6;1012:44;:::i;1275:127::-;1336:10;1331:3;1327:20;1324:1;1317:31;1367:4;1364:1;1357:15;1391:4;1388:1;1381:15;1407:253;1479:2;1473:9;1521:4;1509:17;;-1:-1:-1;;;;;1541:34:65;;1577:22;;;1538:62;1535:88;;;1603:18;;:::i;:::-;1639:2;1632:22;1407:253;:::o;1665:275::-;1736:2;1730:9;1801:2;1782:13;;-1:-1:-1;;1778:27:65;1766:40;;-1:-1:-1;;;;;1821:34:65;;1857:22;;;1818:62;1815:88;;;1883:18;;:::i;:::-;1919:2;1912:22;1665:275;;-1:-1:-1;1665:275:65:o;1945:182::-;2004:4;-1:-1:-1;;;;;2026:30:65;;2023:56;;;2059:18;;:::i;:::-;-1:-1:-1;2104:1:65;2100:14;2116:4;2096:25;;1945:182::o;2132:187::-;2181:4;-1:-1:-1;;;;;2203:30:65;;2200:56;;;2236:18;;:::i;:::-;-1:-1:-1;2302:2:65;2281:15;-1:-1:-1;;2277:29:65;2308:4;2273:40;;2132:187::o;2324:338::-;2389:5;2418:53;2434:36;2463:6;2434:36;:::i;:::-;2418:53;:::i;:::-;2409:62;;2494:6;2487:5;2480:21;2534:3;2525:6;2520:3;2516:16;2513:25;2510:45;;;2551:1;2548;2541:12;2510:45;2600:6;2595:3;2588:4;2581:5;2577:16;2564:43;2654:1;2647:4;2638:6;2631:5;2627:18;2623:29;2616:40;2324:338;;;;;:::o;2667:1197::-;2761:6;2792:2;2835;2823:9;2814:7;2810:23;2806:32;2803:52;;;2851:1;2848;2841:12;2803:52;2878:23;;-1:-1:-1;;;;;2950:14:65;;;2947:34;;;2977:1;2974;2967:12;2947:34;3015:6;3004:9;3000:22;2990:32;;3060:7;3053:4;3049:2;3045:13;3041:27;3031:55;;3082:1;3079;3072:12;3031:55;3118:2;3105:16;3141:59;3157:42;3196:2;3157:42;:::i;3141:59::-;3234:15;;;3316:1;3312:10;;;;3304:19;;3300:28;;;3265:12;;;;3340:19;;;3337:39;;;3372:1;3369;3362:12;3337:39;3404:2;3400;3396:11;3416:418;3432:6;3427:3;3424:15;3416:418;;;3518:3;3505:17;3554:2;3541:11;3538:19;3535:39;;;3570:1;3567;3560:12;3535:39;3597:20;;3652:2;3644:11;;3640:25;-1:-1:-1;3630:53:65;;3679:1;3676;3669:12;3630:53;3708:83;3783:7;3777:2;3773;3769:11;3756:25;3751:2;3747;3743:11;3708:83;:::i;:::-;3696:96;;-1:-1:-1;3812:12:65;;;;3449;;3416:418;;;-1:-1:-1;3853:5:65;2667:1197;-1:-1:-1;;;;;;;;2667:1197:65:o;3869:802::-;4031:4;4060:2;4100;4089:9;4085:18;4130:2;4119:9;4112:21;4153:6;4188;4182:13;4219:6;4211;4204:22;4257:2;4246:9;4242:18;4235:25;;4319:2;4309:6;4306:1;4302:14;4291:9;4287:30;4283:39;4269:53;;4357:2;4349:6;4345:15;4378:1;4388:254;4402:6;4399:1;4396:13;4388:254;;;4495:2;4491:7;4479:9;4471:6;4467:22;4463:36;4458:3;4451:49;4523:39;4555:6;4546;4540:13;4523:39;:::i;:::-;4513:49;-1:-1:-1;4620:12:65;;;;4585:15;;;;4424:1;4417:9;4388:254;;;-1:-1:-1;4659:6:65;;3869:802;-1:-1:-1;;;;;;;3869:802:65:o;4676:221::-;4718:5;4771:3;4764:4;4756:6;4752:17;4748:27;4738:55;;4789:1;4786;4779:12;4738:55;4811:80;4887:3;4878:6;4865:20;4858:4;4850:6;4846:17;4811:80;:::i;4902:1153::-;5029:6;5037;5045;5098:2;5086:9;5077:7;5073:23;5069:32;5066:52;;;5114:1;5111;5104:12;5066:52;5141:23;;-1:-1:-1;;;;;5213:14:65;;;5210:34;;;5240:1;5237;5230:12;5210:34;5263:49;5304:7;5295:6;5284:9;5280:22;5263:49;:::i;:::-;5253:59;;5365:2;5354:9;5350:18;5337:32;5321:48;;5394:2;5384:8;5381:16;5378:36;;;5410:1;5407;5400:12;5378:36;5433:24;;;;5491:2;5473:16;;;5469:25;5466:45;;;5507:1;5504;5497:12;5466:45;5540:2;5534:9;5582:2;5574:6;5570:15;5635:6;5623:10;5620:22;5615:2;5603:10;5600:18;5597:46;5594:72;;;5646:18;;:::i;:::-;5682:2;5675:22;5722:16;;5750;;;5747:36;;;5779:1;5776;5769:12;5747:36;5807:44;5843:7;5832:8;5828:2;5824:17;5807:44;:::i;:::-;5792:60;;-1:-1:-1;5799:6:65;-1:-1:-1;5930:2:65;5915:18;;5902:32;;-1:-1:-1;5946:16:65;;;5943:36;;;5975:1;5972;5965:12;5943:36;;5998:51;6041:7;6030:8;6019:9;6015:24;5998:51;:::i;:::-;5988:61;;;4902:1153;;;;;:::o;6060:884::-;6244:4;6292:2;6281:9;6277:18;6322:2;6311:9;6304:21;6345:6;6380;6374:13;6411:6;6403;6396:22;6449:2;6438:9;6434:18;6427:25;;6511:2;6501:6;6498:1;6494:14;6483:9;6479:30;6475:39;6461:53;;6533:4;6572;6564:6;6560:17;6595:1;6605:254;6619:6;6616:1;6613:13;6605:254;;;6712:2;6708:7;6696:9;6688:6;6684:22;6680:36;6675:3;6668:49;6740:39;6772:6;6763;6757:13;6740:39;:::i;:::-;6730:49;-1:-1:-1;6837:12:65;;;;6802:15;;;;6641:1;6634:9;6605:254;;;6609:3;;;;;6876:6;6868:14;;;6932:4;6924:6;6920:17;6913:4;6902:9;6898:20;6891:47;6060:884;;;;;:::o;6949:286::-;7008:6;7061:2;7049:9;7040:7;7036:23;7032:32;7029:52;;;7077:1;7074;7067:12;7029:52;7103:23;;-1:-1:-1;;;;;7155:31:65;;7145:42;;7135:70;;7201:1;7198;7191:12;7240:184;7310:6;7363:2;7351:9;7342:7;7338:23;7334:32;7331:52;;;7379:1;7376;7369:12;7331:52;-1:-1:-1;7402:16:65;;7240:184;-1:-1:-1;7240:184:65:o;7429:380::-;7508:1;7504:12;;;;7551;;;7572:61;;7626:4;7618:6;7614:17;7604:27;;7572:61;7679:2;7671:6;7668:14;7648:18;7645:38;7642:161;;7725:10;7720:3;7716:20;7713:1;7706:31;7760:4;7757:1;7750:15;7788:4;7785:1;7778:15;7642:161;;7429:380;;;:::o;7814:460::-;7867:5;7920:3;7913:4;7905:6;7901:17;7897:27;7887:55;;7938:1;7935;7928:12;7887:55;7967:6;7961:13;7998:49;8014:32;8043:2;8014:32;:::i;7998:49::-;8072:2;8063:7;8056:19;8118:3;8111:4;8106:2;8098:6;8094:15;8090:26;8087:35;8084:55;;;8135:1;8132;8125:12;8084:55;8193:2;8186:4;8178:6;8174:17;8167:4;8158:7;8154:18;8148:48;8241:1;8216:16;;;8234:4;8212:27;8205:38;;;;8220:7;7814:460;-1:-1:-1;;;7814:460:65:o;8279:823::-;8342:5;8395:3;8388:4;8380:6;8376:17;8372:27;8362:55;;8413:1;8410;8403:12;8362:55;8442:6;8436:13;8468:4;8492:59;8508:42;8547:2;8508:42;:::i;8492:59::-;8585:15;;;8671:1;8667:10;;;;8655:23;;8651:32;;;8616:12;;;;8695:15;;;8692:35;;;8723:1;8720;8713:12;8692:35;8759:2;8751:6;8747:15;8771:302;8787:6;8782:3;8779:15;8771:302;;;8860:10;;-1:-1:-1;;;;;8886:35:65;;8883:55;;;8934:1;8931;8924:12;8883:55;8963:67;9026:3;9021:2;9007:11;8999:6;8995:24;8991:33;8963:67;:::i;:::-;8951:80;;-1:-1:-1;9051:12:65;;;;8804;;8771:302;;;-1:-1:-1;9091:5:65;8279:823;-1:-1:-1;;;;;;8279:823:65:o;9107:1391::-;9208:6;9261:2;9249:9;9240:7;9236:23;9232:32;9229:52;;;9277:1;9274;9267:12;9229:52;9304:16;;-1:-1:-1;;;;;9369:14:65;;;9366:34;;;9396:1;9393;9386:12;9366:34;9419:22;;;;9475:4;9457:16;;;9453:27;9450:47;;;9493:1;9490;9483:12;9450:47;9519:22;;:::i;:::-;9570:2;9564:9;9557:5;9550:24;9613:2;9609;9605:11;9599:18;9642:2;9632:8;9629:16;9626:36;;;9658:1;9655;9648:12;9626:36;9694:55;9741:7;9730:8;9726:2;9722:17;9694:55;:::i;:::-;9689:2;9682:5;9678:14;9671:79;;9789:2;9785;9781:11;9775:18;9818:2;9808:8;9805:16;9802:36;;;9834:1;9831;9824:12;9802:36;9870:55;9917:7;9906:8;9902:2;9898:17;9870:55;:::i;:::-;9865:2;9858:5;9854:14;9847:79;;9965:2;9961;9957:11;9951:18;9994:2;9984:8;9981:16;9978:36;;;10010:1;10007;10000:12;9978:36;10046:55;10093:7;10082:8;10078:2;10074:17;10046:55;:::i;:::-;10041:2;10034:5;10030:14;10023:79;;10141:3;10137:2;10133:12;10127:19;10171:2;10161:8;10158:16;10155:36;;;10187:1;10184;10177:12;10155:36;10224:65;10281:7;10270:8;10266:2;10262:17;10224:65;:::i;:::-;1