aspens 0.6.0

Aspens crosschain trading SDK
Documentation
1
{"abi":[{"type":"fallback","stateMutability":"nonpayable"},{"type":"function","name":"MIN_ORDER_SIZE","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"WITHDRAW_EPOCH","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint160","internalType":"uint160"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"destinationSettlers","inputs":[{"name":"chainId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"settler","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"eip712Domain","inputs":[],"outputs":[{"name":"fields","type":"bytes1","internalType":"bytes1"},{"name":"name","type":"string","internalType":"string"},{"name":"version","type":"string","internalType":"string"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"verifyingContract","type":"address","internalType":"address"},{"name":"salt","type":"bytes32","internalType":"bytes32"},{"name":"extensions","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"_factory","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"payable"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"_factory","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"setDestinationSettler","inputs":[{"name":"_chainId","type":"uint256","internalType":"uint256"},{"name":"_settler","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawEpochCap","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_cap","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"settleBatch","inputs":[{"name":"_deltas","type":"tuple[]","internalType":"struct MidribV3.SettleDelta[]","components":[{"name":"user","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"delta","type":"int256","internalType":"int256"}]},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tradeBalance","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"usedSettleNonces","inputs":[{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"used","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"usedWithdrawNonces","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"nonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"used","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"_version","type":"uint8","internalType":"uint8"}],"stateMutability":"pure"},{"type":"function","name":"withdraw","inputs":[{"name":"_v","type":"tuple","internalType":"struct MidribV3.WithdrawalVoucher","components":[{"name":"account","type":"address","internalType":"address"},{"name":"token","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"expiry","type":"uint256","internalType":"uint256"}]},{"name":"_signature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"withdrawEpochCap","inputs":[{"name":"token","type":"address","internalType":"address"}],"outputs":[{"name":"cap","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"withdrawnInEpoch","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"epoch","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"DestinationSettlerSet","inputs":[{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"oldSettler","type":"address","indexed":true,"internalType":"address"},{"name":"newSettler","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"NetSettled","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"tokenContract","type":"address","indexed":true,"internalType":"address"},{"name":"delta","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"TokenDeposited","inputs":[{"name":"user","type":"address","indexed":true,"internalType":"address"},{"name":"tokenContract","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint160","indexed":false,"internalType":"uint160"}],"anonymous":false},{"type":"event","name":"Withdrawn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"tokenContract","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"INSUFFICIENT_BALANCE","inputs":[{"name":"available","type":"uint256","internalType":"uint256"},{"name":"required","type":"uint160","internalType":"uint160"}]},{"type":"error","name":"INVALID_SIGNER","inputs":[]},{"type":"error","name":"MINIMUM_ORDER_AMOUNT","inputs":[{"name":"amount","type":"uint160","internalType":"uint160"}]},{"type":"error","name":"Reentrancy","inputs":[]},{"type":"error","name":"SETTLE_NONCE_ALREADY_USED","inputs":[]},{"type":"error","name":"SETTLE_NOT_CONSERVED","inputs":[]},{"type":"error","name":"UNAUTHORIZED_CALLER","inputs":[]},{"type":"error","name":"WITHDRAW_NONCE_ALREADY_USED","inputs":[]},{"type":"error","name":"WITHDRAW_RATE_LIMITED","inputs":[{"name":"cap","type":"uint256","internalType":"uint256"},{"name":"attempted","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"WITHDRAW_VOUCHER_EXPIRED","inputs":[]},{"type":"error","name":"ZERO_AMOUNT","inputs":[]}],"bytecode":{"object":"0x61012060405234801561001157600080fd5b50306080524660a05260608061002561008e565b815160209283012081519183019190912060c082905260e0819052604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8152938401929092529082015246606082015230608082015260a0902061010052506100dc9050565b60408051808201909152600681526526b4b23934b160d11b602082015260606100b760036100bd565b90509091565b6060604051604081016040526001815282603001602082015392915050565b60805160a05160c05160e05161010051611dae61012060003960006115d50152600061168f0152600061166901526000611619015260006115f60152611dae6000f3fe6080604052600436106101295760003560e01c8063742960c1116100a55780638d7b222711610074578063ac9650d811610059578063ac9650d8146103c2578063c45a0155146103e2578063d3f82d8e1461040757600080fd5b80638d7b2227146103525780638da5cb5b146103a057600080fd5b8063742960c11461029757806376ec433e146102cf57806384b0196e146102ef578063892d16be1461031757600080fd5b80634565fe4a116100fc57806354fd4d50116100e157806354fd4d501461024557806362fe8ee114610261578063717653a01461027757600080fd5b80634565fe4a146101e55780634e5c6e4e1461022557600080fd5b806303fde2551461012e57806319d5f0c3146101505780632d2cfb6614610198578063426aabc2146101b8575b600080fd5b34801561013a57600080fd5b5061014e6101493660046117d7565b61042f565b005b34801561015c57600080fd5b5061018561016b3660046117d7565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b5061014e6101b3366004611810565b610475565b3480156101c457600080fd5b506101856101d336600461183c565b60046020526000908152604090205481565b3480156101f157600080fd5b50610215610200366004611860565b60026020526000908152604090205460ff1681565b604051901515815260200161018f565b34801561023157600080fd5b5061014e6102403660046118c2565b6104d9565b34801561025157600080fd5b506040516003815260200161018f565b34801561026d57600080fd5b50610185610e1081565b34801561028357600080fd5b5061014e61029236600461191d565b610846565b3480156102a357600080fd5b506101856102b2366004611810565b600560209081526000928352604080842090915290825290205481565b3480156102db57600080fd5b5061014e6102ea366004611942565b610904565b3480156102fb57600080fd5b50610304610d0f565b60405161018f9796959493929190611a57565b34801561032357600080fd5b50610215610332366004611810565b600360209081526000928352604080842090915290825290205460ff1681565b34801561035e57600080fd5b5061038861036d366004611860565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161018f565b3480156103ac57600080fd5b503660011981013560f01c90033560601c610388565b6103d56103d0366004611b0b565b610d52565b60405161018f9190611b82565b3480156103ee57600080fd5b503660011981013560f01c90036014013560601c610388565b34801561041357600080fd5b5061041c600a81565b60405161ffff909116815260200161018f565b3068929eee149b4bd21268540361044e5763ab143c066000526004601cfd5b3068929eee149b4bd2126855610465338383610d77565b3868929eee149b4bd21268555050565b3660011981013560f01c90033560601c33146104bd576040517fe15e56c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03909116600090815260046020526040902055565b3068929eee149b4bd2126854036104f85763ab143c066000526004601cfd5b3068929eee149b4bd212685561050f838383611095565b826080013542111561054d576040517fcfb1238700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600061055e602086018661183c565b6001600160a01b03168152602080820192909252604090810160009081206060870135825290925290205460ff16156105c3576040517f2152b76d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600360006105d6602087018761183c565b6001600160a01b031681526020808201929092526040908101600090812060608801358252835290812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016931515939093179092558190819061063e9087018761183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000856020016020810190610673919061183c565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080846040013511156106f957806106b085604001356111dd565b6040517ff075336700000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201526044015b60405180910390fd5b61071661070c604086016020870161183c565b8560400135611207565b610724604085013582611c34565b600080610734602088018861183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000866020016020810190610769919061183c565b6001600160a01b03168152602080820192909252604001600020919091556107bb906107979086018661183c565b604086018035906107ab906020890161183c565b6001600160a01b031691906112df565b6107cb604085016020860161183c565b6001600160a01b03166107e1602086018661183c565b6001600160a01b03167f91fb9d98b786c57d74c099ccd2beca1739e9f6a81fb49001ca465c4b7591bbe28660400135876060013560405161082c929190918252602082015260400190565b60405180910390a3503868929eee149b4bd2126855505050565b3660011981013560f01c90033560601c331461088e576040517fe15e56c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b038681169182179093559251911692839186917f26d6df0348ebeb28206400947b117b5e650404f607b1c272f84b52d45592556691a4505050565b3068929eee149b4bd2126854036109235763ab143c066000526004601cfd5b3068929eee149b4bd212685561093c8585858585611338565b60008381526002602052604090205460ff1615610985576040517f539110c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905584905b81811015610b275760008787838181106109db576109db611c47565b90506060020160200160208101906109f3919061183c565b9050600160005b83811015610a5557826001600160a01b03168a8a83818110610a1e57610a1e611c47565b9050606002016020016020810190610a36919061183c565b6001600160a01b031603610a4d5760009150610a55565b6001016109fa565b5080610a62575050610b1f565b6000805b85811015610ae257836001600160a01b03168b8b83818110610a8a57610a8a611c47565b9050606002016020016020810190610aa2919061183c565b6001600160a01b031603610ada578a8a82818110610ac257610ac2611c47565b9050606002016040013582610ad79190611c76565b91505b600101610a66565b508015610b1b576040517f053b624b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505b6001016109bf565b5060005b81811015610cfa5736878783818110610b4657610b46611c47565b606002919091019150600090508080610b62602085018561183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000836020016020810190610b97919061183c565b6001600160a01b03166001600160a01b031681526020019081526020016000205490506000826040013582610bcc9190611c76565b90506000811215610c13576040517ff075336700000000000000000000000000000000000000000000000000000000815260048101839052600060248201526044016106f0565b80600080610c24602087018761183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000856020016020810190610c59919061183c565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550826020016020810190610c90919061183c565b6001600160a01b0316610ca6602085018561183c565b6001600160a01b03167fcb92bc64cc5c68703b92c9fcf4b3a37a69be04873e614837f8aeacfa8589e8f58560400135604051610ce491815260200190565b60405180910390a3505050806001019050610b2b565b50503868929eee149b4bd21268555050505050565b7f0f000000000000000000000000000000000000000000000000000000000000006060806000808083610d4061147e565b97989097965046955030945091925090565b60603415610d5f57600080fd5b610d71610d6c84846114c4565b61155b565b92915050565b806001600160a01b0316600003610dba576040517ff6fa545000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a6001600160a01b0382161015610e09576040517f7ccfd2ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f0565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152600091908416906370a0823190602401602060405180830381865afa158015610e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e909190611c9e565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190611c9e565b9050826001600160a01b0316821015610f6e576040517ff0753367000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03841660248201526044016106f0565b610f886001600160a01b038581169087903090871661156c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009082906001600160a01b038716906370a0823190602401602060405180830381865afa158015610fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190611c9e565b6110189190611c34565b6001600160a01b03808816600081815260208181526040808320948b16808452949091529020805484019055919250907ff252e7564622d27c64805f4295d4aed7999599ad484da4eaa1377fc14df9f1d5611072846111dd565b6040516001600160a01b03909116815260200160405180910390a3505050505050565b60007f232a4ef2241135df893cd0d3f880df0ff65115b1f538078c78353f91a83077026110c5602086018661183c565b6110d5604087016020880161183c565b6040805160208101949094526001600160a01b03928316848201529116606083810191909152908601356080838101919091529086013560a083015285013560c082015260e001604051602081830303815290604052805190602001209050600061113f826115d3565b90506000611172826020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006111818287876116eb565b90503660011981013560f01c90033560601c6001600160a01b038216146111d4576040517f6cbfd82c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b600074010000000000000000000000000000000000000000821061120357611203611792565b5090565b6001600160a01b0382166000908152600460205260408120549081900361122d57505050565b600061123b610e1042611cb7565b6001600160a01b03851660009081526005602090815260408083208484529091528120549192509061126e908590611cf2565b9050828111156112b4576040517f5e7fe40c00000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016106f0565b6001600160a01b03909416600090815260056020908152604080832093835292905220929092555050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af1806001600051141661132d57803d853b15171061132d576390b8ec186000526004601cfd5b506000603452505050565b60007f0caeb2f59f7faee29bc813688a73008850a2c6447d5a79812cc6f052aea3d7eb868660405160200161136e929190611d05565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120908301939093528101919091526060810185905260800160405160208183030381529060405280519060200120905060006113de826115d3565b90506000611411826020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006114208287876116eb565b90503660011981013560f01c90033560601c6001600160a01b03821614611473576040517f6cbfd82c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b60408051808201909152600681527f4d69647269620000000000000000000000000000000000000000000000000000602082015260606114be60036117a0565b90509091565b600060405190506020815281816020015280604001808360051b808684378201808515611543575b835187018035602082018337600038823584305af461150e573d6000873e3d86fd5b5082810384523d815260209384019381013d6000823e60003d8201523d01601f0167ffffffffffffffe01690508184106114ec575b806040528485820360401b1794505050505092915050565b8060401c8167ffffffffffffffff16f35b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af180600160005114166115c457803d873b1517106115c457637939f4246000526004601cfd5b50600060605260405250505050565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f00000000000000000000000000000000000000000000000000000000000000004614166116c65750604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000009181019190915246606082015230608082015260a090205b67190100000000000060005280601a5281603a52604260182090506000603a52919050565b600060405182604081146117075760418114611747575061177c565b60208581013560ff81901c601b0190915285356040527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16606052611759565b604085013560001a6020526040856040375b5084600052602060016080600060015afa5191506000606052806040523d61178a575b638baa579f6000526004601cfd5b509392505050565b6335278d126000526004601cfd5b6060604051604081016040526001815282603001602082015392915050565b6001600160a01b03811681146117d457600080fd5b50565b600080604083850312156117ea57600080fd5b82356117f5816117bf565b91506020830135611805816117bf565b809150509250929050565b6000806040838503121561182357600080fd5b823561182e816117bf565b946020939093013593505050565b60006020828403121561184e57600080fd5b8135611859816117bf565b9392505050565b60006020828403121561187257600080fd5b5035919050565b60008083601f84011261188b57600080fd5b50813567ffffffffffffffff8111156118a357600080fd5b6020830191508360208285010111156118bb57600080fd5b9250929050565b600080600083850360c08112156118d857600080fd5b60a08112156118e657600080fd5b5083925060a084013567ffffffffffffffff81111561190457600080fd5b61191086828701611879565b9497909650939450505050565b6000806040838503121561193057600080fd5b823591506020830135611805816117bf565b60008060008060006060868803121561195a57600080fd5b853567ffffffffffffffff81111561197157600080fd5b8601601f8101881361198257600080fd5b803567ffffffffffffffff81111561199957600080fd5b8860206060830284010111156119ae57600080fd5b6020918201965094508601359250604086013567ffffffffffffffff8111156119d657600080fd5b6119e288828901611879565b969995985093965092949392505050565b6000815180845260005b81811015611a19576020818501810151868301820152016119fd565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201526000611a9260e08301896119f3565b8281036040840152611aa481896119f3565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015611afa578351835260209384019390920191600101611adc565b50909b9a5050505050505050505050565b60008060208385031215611b1e57600080fd5b823567ffffffffffffffff811115611b3557600080fd5b8301601f81018513611b4657600080fd5b803567ffffffffffffffff811115611b5d57600080fd5b8560208260051b8401011115611b7257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015611bf9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611be48583516119f3565b94506020938401939190910190600101611baa565b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610d7157610d71611c05565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018281126000831280158216821582161715611c9657611c96611c05565b505092915050565b600060208284031215611cb057600080fd5b5051919050565b600082611ced577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115610d7157610d71611c05565b6020808252810182905260008360408301825b85811015611d6e578235611d2b816117bf565b6001600160a01b031682526020830135611d44816117bf565b6001600160a01b031660208301526040838101359083015260609283019290910190600101611d18565b509594505050505056fea2646970667358221220d1c44f9f1a937afd386a2b556724dd53886ebd5b50e132fada234c1c7958170964736f6c63430008220033","sourceMap":"2936:16442:46:-:0;;;;;;;;;;;;-1:-1:-1;3066:4:37;3028:45;;3100:13;3083:30;;3124:18;;3240:23;:21;:23::i;:::-;3340:22;;;;;;;3454:25;;;;;;;;;3489:26;;;;3525:32;;;;3737:4;3731:11;;3802:16;3792:27;;3843:12;;;3836:30;;;;3890:12;;;3883:33;3954:9;3947:4;3940:12;;3933:31;4002:9;3995:4;3988:12;;3981:31;4055:4;4042:18;;4093:34;;-1:-1:-1;2936:16442:46;;-1:-1:-1;2936:16442:46;18884:274;19055:16;;;;;;;;;;;;-1:-1:-1;;;19055:16:46;;;;18957:19;19133:18;3637:1;19133:16;:18::i;:::-;19122:29;;18884:274;;:::o;214:334:50:-;264:21;378:4;372:11;416:4;413:1;409:12;403:4;396:26;445:1;442;435:12;504:1;500:2;496:10;489:4;486:1;482:12;474:33;531:1;214:334;-1:-1:-1;;214:334:50:o;2936:16442:46:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106101295760003560e01c8063742960c1116100a55780638d7b222711610074578063ac9650d811610059578063ac9650d8146103c2578063c45a0155146103e2578063d3f82d8e1461040757600080fd5b80638d7b2227146103525780638da5cb5b146103a057600080fd5b8063742960c11461029757806376ec433e146102cf57806384b0196e146102ef578063892d16be1461031757600080fd5b80634565fe4a116100fc57806354fd4d50116100e157806354fd4d501461024557806362fe8ee114610261578063717653a01461027757600080fd5b80634565fe4a146101e55780634e5c6e4e1461022557600080fd5b806303fde2551461012e57806319d5f0c3146101505780632d2cfb6614610198578063426aabc2146101b8575b600080fd5b34801561013a57600080fd5b5061014e6101493660046117d7565b61042f565b005b34801561015c57600080fd5b5061018561016b3660046117d7565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b3480156101a457600080fd5b5061014e6101b3366004611810565b610475565b3480156101c457600080fd5b506101856101d336600461183c565b60046020526000908152604090205481565b3480156101f157600080fd5b50610215610200366004611860565b60026020526000908152604090205460ff1681565b604051901515815260200161018f565b34801561023157600080fd5b5061014e6102403660046118c2565b6104d9565b34801561025157600080fd5b506040516003815260200161018f565b34801561026d57600080fd5b50610185610e1081565b34801561028357600080fd5b5061014e61029236600461191d565b610846565b3480156102a357600080fd5b506101856102b2366004611810565b600560209081526000928352604080842090915290825290205481565b3480156102db57600080fd5b5061014e6102ea366004611942565b610904565b3480156102fb57600080fd5b50610304610d0f565b60405161018f9796959493929190611a57565b34801561032357600080fd5b50610215610332366004611810565b600360209081526000928352604080842090915290825290205460ff1681565b34801561035e57600080fd5b5061038861036d366004611860565b6001602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161018f565b3480156103ac57600080fd5b503660011981013560f01c90033560601c610388565b6103d56103d0366004611b0b565b610d52565b60405161018f9190611b82565b3480156103ee57600080fd5b503660011981013560f01c90036014013560601c610388565b34801561041357600080fd5b5061041c600a81565b60405161ffff909116815260200161018f565b3068929eee149b4bd21268540361044e5763ab143c066000526004601cfd5b3068929eee149b4bd2126855610465338383610d77565b3868929eee149b4bd21268555050565b3660011981013560f01c90033560601c33146104bd576040517fe15e56c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03909116600090815260046020526040902055565b3068929eee149b4bd2126854036104f85763ab143c066000526004601cfd5b3068929eee149b4bd212685561050f838383611095565b826080013542111561054d576040517fcfb1238700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6003600061055e602086018661183c565b6001600160a01b03168152602080820192909252604090810160009081206060870135825290925290205460ff16156105c3576040517f2152b76d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600360006105d6602087018761183c565b6001600160a01b031681526020808201929092526040908101600090812060608801358252835290812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016931515939093179092558190819061063e9087018761183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000856020016020810190610673919061183c565b6001600160a01b03166001600160a01b0316815260200190815260200160002054905080846040013511156106f957806106b085604001356111dd565b6040517ff075336700000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201526044015b60405180910390fd5b61071661070c604086016020870161183c565b8560400135611207565b610724604085013582611c34565b600080610734602088018861183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000866020016020810190610769919061183c565b6001600160a01b03168152602080820192909252604001600020919091556107bb906107979086018661183c565b604086018035906107ab906020890161183c565b6001600160a01b031691906112df565b6107cb604085016020860161183c565b6001600160a01b03166107e1602086018661183c565b6001600160a01b03167f91fb9d98b786c57d74c099ccd2beca1739e9f6a81fb49001ca465c4b7591bbe28660400135876060013560405161082c929190918252602082015260400190565b60405180910390a3503868929eee149b4bd2126855505050565b3660011981013560f01c90033560601c331461088e576040517fe15e56c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526001602052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000081166001600160a01b038681169182179093559251911692839186917f26d6df0348ebeb28206400947b117b5e650404f607b1c272f84b52d45592556691a4505050565b3068929eee149b4bd2126854036109235763ab143c066000526004601cfd5b3068929eee149b4bd212685561093c8585858585611338565b60008381526002602052604090205460ff1615610985576040517f539110c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083815260026020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905584905b81811015610b275760008787838181106109db576109db611c47565b90506060020160200160208101906109f3919061183c565b9050600160005b83811015610a5557826001600160a01b03168a8a83818110610a1e57610a1e611c47565b9050606002016020016020810190610a36919061183c565b6001600160a01b031603610a4d5760009150610a55565b6001016109fa565b5080610a62575050610b1f565b6000805b85811015610ae257836001600160a01b03168b8b83818110610a8a57610a8a611c47565b9050606002016020016020810190610aa2919061183c565b6001600160a01b031603610ada578a8a82818110610ac257610ac2611c47565b9050606002016040013582610ad79190611c76565b91505b600101610a66565b508015610b1b576040517f053b624b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505b6001016109bf565b5060005b81811015610cfa5736878783818110610b4657610b46611c47565b606002919091019150600090508080610b62602085018561183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000836020016020810190610b97919061183c565b6001600160a01b03166001600160a01b031681526020019081526020016000205490506000826040013582610bcc9190611c76565b90506000811215610c13576040517ff075336700000000000000000000000000000000000000000000000000000000815260048101839052600060248201526044016106f0565b80600080610c24602087018761183c565b6001600160a01b03166001600160a01b031681526020019081526020016000206000856020016020810190610c59919061183c565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550826020016020810190610c90919061183c565b6001600160a01b0316610ca6602085018561183c565b6001600160a01b03167fcb92bc64cc5c68703b92c9fcf4b3a37a69be04873e614837f8aeacfa8589e8f58560400135604051610ce491815260200190565b60405180910390a3505050806001019050610b2b565b50503868929eee149b4bd21268555050505050565b7f0f000000000000000000000000000000000000000000000000000000000000006060806000808083610d4061147e565b97989097965046955030945091925090565b60603415610d5f57600080fd5b610d71610d6c84846114c4565b61155b565b92915050565b806001600160a01b0316600003610dba576040517ff6fa545000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a6001600160a01b0382161015610e09576040517f7ccfd2ff0000000000000000000000000000000000000000000000000000000081526001600160a01b03821660048201526024016106f0565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038481166004830152600091908416906370a0823190602401602060405180830381865afa158015610e6c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e909190611c9e565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091506000906001600160a01b038516906370a0823190602401602060405180830381865afa158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190611c9e565b9050826001600160a01b0316821015610f6e576040517ff0753367000000000000000000000000000000000000000000000000000000008152600481018390526001600160a01b03841660248201526044016106f0565b610f886001600160a01b038581169087903090871661156c565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009082906001600160a01b038716906370a0823190602401602060405180830381865afa158015610fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100e9190611c9e565b6110189190611c34565b6001600160a01b03808816600081815260208181526040808320948b16808452949091529020805484019055919250907ff252e7564622d27c64805f4295d4aed7999599ad484da4eaa1377fc14df9f1d5611072846111dd565b6040516001600160a01b03909116815260200160405180910390a3505050505050565b60007f232a4ef2241135df893cd0d3f880df0ff65115b1f538078c78353f91a83077026110c5602086018661183c565b6110d5604087016020880161183c565b6040805160208101949094526001600160a01b03928316848201529116606083810191909152908601356080838101919091529086013560a083015285013560c082015260e001604051602081830303815290604052805190602001209050600061113f826115d3565b90506000611172826020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006111818287876116eb565b90503660011981013560f01c90033560601c6001600160a01b038216146111d4576040517f6cbfd82c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050505050565b600074010000000000000000000000000000000000000000821061120357611203611792565b5090565b6001600160a01b0382166000908152600460205260408120549081900361122d57505050565b600061123b610e1042611cb7565b6001600160a01b03851660009081526005602090815260408083208484529091528120549192509061126e908590611cf2565b9050828111156112b4576040517f5e7fe40c00000000000000000000000000000000000000000000000000000000815260048101849052602481018290526044016106f0565b6001600160a01b03909416600090815260056020908152604080832093835292905220929092555050565b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af1806001600051141661132d57803d853b15171061132d576390b8ec186000526004601cfd5b506000603452505050565b60007f0caeb2f59f7faee29bc813688a73008850a2c6447d5a79812cc6f052aea3d7eb868660405160200161136e929190611d05565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120908301939093528101919091526060810185905260800160405160208183030381529060405280519060200120905060006113de826115d3565b90506000611411826020527b19457468657265756d205369676e6564204d6573736167653a0a3332600052603c60042090565b905060006114208287876116eb565b90503660011981013560f01c90033560601c6001600160a01b03821614611473576040517f6cbfd82c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b60408051808201909152600681527f4d69647269620000000000000000000000000000000000000000000000000000602082015260606114be60036117a0565b90509091565b600060405190506020815281816020015280604001808360051b808684378201808515611543575b835187018035602082018337600038823584305af461150e573d6000873e3d86fd5b5082810384523d815260209384019381013d6000823e60003d8201523d01601f0167ffffffffffffffe01690508184106114ec575b806040528485820360401b1794505050505092915050565b8060401c8167ffffffffffffffff16f35b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af180600160005114166115c457803d873b1517106115c457637939f4246000526004601cfd5b50600060605260405250505050565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000030147f00000000000000000000000000000000000000000000000000000000000000004614166116c65750604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81527f000000000000000000000000000000000000000000000000000000000000000060208201527f00000000000000000000000000000000000000000000000000000000000000009181019190915246606082015230608082015260a090205b67190100000000000060005280601a5281603a52604260182090506000603a52919050565b600060405182604081146117075760418114611747575061177c565b60208581013560ff81901c601b0190915285356040527f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff16606052611759565b604085013560001a6020526040856040375b5084600052602060016080600060015afa5191506000606052806040523d61178a575b638baa579f6000526004601cfd5b509392505050565b6335278d126000526004601cfd5b6060604051604081016040526001815282603001602082015392915050565b6001600160a01b03811681146117d457600080fd5b50565b600080604083850312156117ea57600080fd5b82356117f5816117bf565b91506020830135611805816117bf565b809150509250929050565b6000806040838503121561182357600080fd5b823561182e816117bf565b946020939093013593505050565b60006020828403121561184e57600080fd5b8135611859816117bf565b9392505050565b60006020828403121561187257600080fd5b5035919050565b60008083601f84011261188b57600080fd5b50813567ffffffffffffffff8111156118a357600080fd5b6020830191508360208285010111156118bb57600080fd5b9250929050565b600080600083850360c08112156118d857600080fd5b60a08112156118e657600080fd5b5083925060a084013567ffffffffffffffff81111561190457600080fd5b61191086828701611879565b9497909650939450505050565b6000806040838503121561193057600080fd5b823591506020830135611805816117bf565b60008060008060006060868803121561195a57600080fd5b853567ffffffffffffffff81111561197157600080fd5b8601601f8101881361198257600080fd5b803567ffffffffffffffff81111561199957600080fd5b8860206060830284010111156119ae57600080fd5b6020918201965094508601359250604086013567ffffffffffffffff8111156119d657600080fd5b6119e288828901611879565b969995985093965092949392505050565b6000815180845260005b81811015611a19576020818501810151868301820152016119fd565b5060006020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e060208201526000611a9260e08301896119f3565b8281036040840152611aa481896119f3565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015611afa578351835260209384019390920191600101611adc565b50909b9a5050505050505050505050565b60008060208385031215611b1e57600080fd5b823567ffffffffffffffff811115611b3557600080fd5b8301601f81018513611b4657600080fd5b803567ffffffffffffffff811115611b5d57600080fd5b8560208260051b8401011115611b7257600080fd5b6020919091019590945092505050565b6000602082016020835280845180835260408501915060408160051b86010192506020860160005b82811015611bf9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452611be48583516119f3565b94506020938401939190910190600101611baa565b50929695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610d7157610d71611c05565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8082018281126000831280158216821582161715611c9657611c96611c05565b505092915050565b600060208284031215611cb057600080fd5b5051919050565b600082611ced577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b80820180821115610d7157610d71611c05565b6020808252810182905260008360408301825b85811015611d6e578235611d2b816117bf565b6001600160a01b031682526020830135611d44816117bf565b6001600160a01b031660208301526040838101359083015260609283019290910190600101611d18565b509594505050505056fea2646970667358221220d1c44f9f1a937afd386a2b556724dd53886ebd5b50e132fada234c1c7958170964736f6c63430008220033","sourceMap":"2936:16442:46:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19361:8;;;2936:16442;;;;;;;;;;;19361:8;;;2936:16442;;;;;;;;;;;;;;;;;;;;;19361:8;;;2936:16442;;;;;;;;;;;;;;;;;;;;;;;;;;19361:8;;;2936:16442;;;;;;;;;;;19361:8;;;2936:16442;;;;;;;;;;;;;;;;;;;;;;19361:8;;;9776:126;;;;;;;;;;-1:-1:-1;9776:126:46;;;;;:::i;:::-;;:::i;:::-;;3972:87;;;;;;;;;;-1:-1:-1;3972:87:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;1105:25:58;;;1093:2;1078:18;3972:87:46;;;;;;;;13377:204;;;;;;;;;;-1:-1:-1;13377:204:46;;;;;:::i;:::-;;:::i;4882:61::-;;;;;;;;;;-1:-1:-1;4882:61:46;;;;;:::i;:::-;;;;;;;;;;;;;;4287:59;;;;;;;;;;-1:-1:-1;4287:59:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2161:14:58;;2154:22;2136:41;;2124:2;2109:18;4287:59:46;1996:187:58;11845:1131:46;;;;;;;;;;-1:-1:-1;11845:1131:46;;;;;:::i;:::-;;:::i;8681:89::-;;;;;;;;;;-1:-1:-1;8681:89:46;;3637:1;3252:36:58;;3240:2;3225:18;8681:89:46;3110:184:58;3852:48:46;;;;;;;;;;;;3893:7;3852:48;;9188:358;;;;;;;;;;-1:-1:-1;9188:358:46;;;;;:::i;:::-;;:::i;5076:90::-;;;;;;;;;;-1:-1:-1;5076:90:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;14713:1701;;;;;;;;;;-1:-1:-1;14713:1701:46;;;;;:::i;:::-;;:::i;11383:596:37:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;4514:89:46:-;;;;;;;;;;-1:-1:-1;4514:89:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;4127:70;;;;;;;;;;-1:-1:-1;4127:70:46;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;4127:70:46;;;;;;-1:-1:-1;;;;;6689:55:58;;;6671:74;;6659:2;6644:18;4127:70:46;6525:226:58;8455:103:46;;;;;;;;;;-1:-1:-1;3151:14:0;-1:-1:-1;;3147:22:0;;3134:36;3128:4;3124:47;3071:114;;686:36;680:4;676:47;8455:103:46;;1622:626:40;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;8343:106:46:-;;;;;;;;;;-1:-1:-1;3151:14:0;-1:-1:-1;;3147:22:0;;3134:36;3128:4;3124:47;3071:114;;8439:2:46;699:22:0;686:36;680:4;676:47;8343:106:46;8455:103;3717:42;;;;;;;;;;;;3757:2;3717:42;;;;;8400:6:58;8388:19;;;8370:38;;8358:2;8343:18;3717:42:46;8226:188:58;9776:126:46;1635:9:41;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;9858:37:46::1;9867:10;9879:6;9887:7;9858:8;:37::i;:::-;1937:10:41::0;1913:22;1906:42;9776:126:46;;:::o;13377:204::-;3151:14:0;-1:-1:-1;;3147:22:0;;3134:36;3128:4;3124:47;3071:114;;686:36;680:4;676:47;13459:10:46;:31;13455:78;;13499:34;;;;;;;;;;;;;;13455:78;-1:-1:-1;;;;;13543:24:46;;;;;;;:16;:24;;;;;:31;13377:204::o;11845:1131::-;1635:9:41;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;11953:40:46::1;11978:2;11982:10;;11953:24;:40::i;:::-;12025:2;:9;;;12007:15;:27;12003:79;;;12043:39;;;;;;;;;;;;;;12003:79;12096:18;:30;12115:10;;::::0;::::1;:2:::0;:10:::1;:::i;:::-;-1:-1:-1::0;;;;;12096:30:46::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12096:30:46;;;12127:8:::1;::::0;::::1;;12096:40:::0;;;;;;;;::::1;;12092:120;;;12159:42;;;;;;;;;;;;;;12092:120;12264:4;12221:18;:30;12240:10;;::::0;::::1;:2:::0;:10:::1;:::i;:::-;-1:-1:-1::0;;;;;12221:30:46::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;-1:-1:-1;12221:30:46;;;12252:8:::1;::::0;::::1;;12221:40:::0;;;;;;;:47;;;::::1;::::0;::::1;;::::0;;;::::1;::::0;;;-1:-1:-1;;;;12310:10:46::1;::::0;;::::1;12252:8:::0;12310:10:::1;:::i;:::-;-1:-1:-1::0;;;;;12297:24:46::1;-1:-1:-1::0;;;;;12297:24:46::1;;;;;;;;;;;;:34;12322:2;:8;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12297:34:46::1;-1:-1:-1::0;;;;;12297:34:46::1;;;;;;;;;;;;;12279:52;;12514:7;12502:2;:9;;;:19;12498:145;;;12590:7;12609:21;:2;:9;;;:19;:21::i;:::-;12544:88;::::0;::::1;::::0;;::::1;::::0;::::1;8593:25:58::0;;;;-1:-1:-1;;;;;8654:55:58;8634:18;;;8627:83;8566:18;;12544:88:46::1;;;;;;;;12498:145;12652:43;12675:8;::::0;;;::::1;::::0;::::1;;:::i;:::-;12685:2;:9;;;12652:22;:43::i;:::-;12816:19;12826:9;::::0;::::1;;12816:7:::0;:19:::1;:::i;:::-;12779:12;::::0;12792:10:::1;;::::0;::::1;:2:::0;:10:::1;:::i;:::-;-1:-1:-1::0;;;;;12779:24:46::1;-1:-1:-1::0;;;;;12779:24:46::1;;;;;;;;;;;;:34;12804:2;:8;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12779:34:46::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;-1:-1:-1;12779:34:46;:56;;;;12845:44:::1;::::0;12867:10:::1;::::0;;::::1;:2:::0;:10:::1;:::i;:::-;12879:9;::::0;::::1;::::0;::::1;::::0;12845:8:::1;::::0;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;12845:21:46::1;::::0;:44;:21:::1;:44::i;:::-;12939:8;::::0;;;::::1;::::0;::::1;;:::i;:::-;-1:-1:-1::0;;;;;12904:65:46::1;12927:10;;::::0;::::1;:2:::0;:10:::1;:::i;:::-;-1:-1:-1::0;;;;;12904:65:46::1;;12949:2;:9;;;12960:2;:8;;;12904:65;;;;;;9217:25:58::0;;;9273:2;9258:18;;9251:34;9205:2;9190:18;;9043:248;12904:65:46::1;;;;;;;;11943:1033;1937:10:41::0;1913:22;1906:42;11845:1131:46;;;:::o;9188:358::-;3151:14:0;-1:-1:-1;;3147:22:0;;3134:36;3128:4;3124:47;3071:114;;686:36;680:4;676:47;9278:10:46;:31;9274:78;;9318:34;;;;;;;;;;;;;;9274:78;9362:16;9381:29;;;:19;:29;;;;;;;;9420:40;;;-1:-1:-1;;;;;9420:40:46;;;;;;;;;9475:64;;9381:29;;;;;;;9475:64;;;9264:282;9188:358;;:::o;14713:1701::-;1635:9:41;1610:22;1604:29;1601:44;1598:158;;1677:10;1671:4;1664:24;1737:4;1731;1724:18;1598:158;1800:9;1776:22;1769:41;14861:47:46::1;14880:7;;14889:6;14897:10;;14861:18;:47::i;:::-;14922:24;::::0;;;:16:::1;:24;::::0;;;;;::::1;;14918:102;;;14969:40;;;;;;;;;;;;;;14918:102;15029:24;::::0;;;:16:::1;:24;::::0;;;;:31;;;::::1;15056:4;15029:31;::::0;;15085:7;;15271:613:::1;15291:3;15287:1;:7;15271:613;;;15315:13;15331:7;;15339:1;15331:10;;;;;;;:::i;:::-;;;;;;:16;;;;;;;;;;:::i;:::-;15315:32:::0;-1:-1:-1;15378:4:46::1;15361:14;15396:176;15416:1;15412;:5;15396:176;;;15466:5;-1:-1:-1::0;;;;;15446:25:46::1;:7;;15454:1;15446:10;;;;;;;:::i;:::-;;;;;;:16;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15446:25:46::1;::::0;15442:116:::1;;15507:5;15495:17;;15534:5;;15442:116;15419:3;;15396:176;;;;15590:9;15585:24;;15601:8;;;;15585:24;15623:10;15652:9:::0;15647:157:::1;15667:3;15663:1;:7;15647:157;;;15719:5;-1:-1:-1::0;;;;;15699:25:46::1;:7;;15707:1;15699:10;;;;;;;:::i;:::-;;;;;;:16;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15699:25:46::1;::::0;15695:95:::1;;15755:7;;15763:1;15755:10;;;;;;;:::i;:::-;;;;;;:16;;;15748:23;;;;;:::i;:::-;;;15695:95;15672:3;;15647:157;;;-1:-1:-1::0;15821:8:46;;15817:56:::1;;15838:35;;;;;;;;;;;;;;15817:56;15301:583;;;15271:613;15296:3;;15271:613;;;;15982:9;15977:431;15997:3;15993:1;:7;15977:431;;;16021:22;16046:7;;16054:1;16046:10;;;;;;;:::i;:::-;;;::::0;;;::::1;::::0;-1:-1:-1;16070:11:46::1;::::0;-1:-1:-1;16070:11:46;;16097:6:::1;;::::0;::::1;16046:10:::0;16097:6:::1;:::i;:::-;-1:-1:-1::0;;;;;16084:20:46::1;-1:-1:-1::0;;;;;16084:20:46::1;;;;;;;;;;;;:29;16105:1;:7;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16084:29:46::1;-1:-1:-1::0;;;;;16084:29:46::1;;;;;;;;;;;;;16070:43;;16127:11;16155:1;:7;;;16148:3;16141:21;;;;:::i;:::-;16127:35;;16187:1;16180:4;:8;16176:95;;;16215:41;::::0;::::1;::::0;;::::1;::::0;::::1;8593:25:58::0;;;16254:1:46::1;8634:18:58::0;;;8627:83;8566:18;;16215:41:46::1;8419:297:58::0;16176:95:46::1;16324:4:::0;16284:12:::1;::::0;16297:6:::1;;::::0;::::1;:1:::0;:6:::1;:::i;:::-;-1:-1:-1::0;;;;;16284:20:46::1;-1:-1:-1::0;;;;;16284:20:46::1;;;;;;;;;;;;:29;16305:1;:7;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16284:29:46::1;-1:-1:-1::0;;;;;16284:29:46::1;;;;;;;;;;;;:45;;;;16380:1;:7;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;16348:49:46::1;16372:6;;::::0;::::1;:1:::0;:6:::1;:::i;:::-;-1:-1:-1::0;;;;;16348:49:46::1;;16389:1;:7;;;16348:49;;;;1105:25:58::0;;1093:2;1078:18;;959:177;16348:49:46::1;;;;;;;;16007:401;;;16002:3;;;;;15977:431;;;;14851:1563;1937:10:41::0;1913:22;1906:42;14713:1701:46;;;;;:::o;11383:596:37:-;11721:16;11508:18;;11481:13;;;11508:18;11779:23;:21;:23::i;:::-;11383:596;;11761:41;;;-1:-1:-1;11822:13:37;;-1:-1:-1;11873:4:37;;-1:-1:-1;11383:596:37;;-1:-1:-1;11383:596:37;:::o;1622:626:40:-;1696:14;2069:9;:14;2065:28;;2085:8;;;2065:28;2201:40;2224:16;2235:4;;2224:10;:16::i;:::-;2201:22;:40::i;:::-;1622:626;;;;:::o;5934:1362:46:-;6063:7;-1:-1:-1;;;;;6063:12:46;6074:1;6063:12;6059:76;;6098:26;;;;;;;;;;;;;;6059:76;3757:2;-1:-1:-1;;;;;6206:24:46;;;6202:114;;;6253:52;;;;;-1:-1:-1;;;;;6689:55:58;;6253:52:46;;;6671:74:58;6644:18;;6253:52:46;6525:226:58;6202:114:46;6383:40;;;;;-1:-1:-1;;;;;6689:55:58;;;6383:40:46;;;6671:74:58;6365:15:46;;6383:31;;;;;;6644:18:58;;6383:40:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6499:46;;;;;6539:4;6499:46;;;6671:74:58;6365:58:46;;-1:-1:-1;6475:21:46;;-1:-1:-1;;;;;6499:31:46;;;;;6644:18:58;;6499:46:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6475:70;;6636:7;-1:-1:-1;;;;;6626:17:46;:7;:17;6622:169;;;6706:74;;;;;;;;8593:25:58;;;-1:-1:-1;;;;;8654:55:58;;8634:18;;;8627:83;8566:18;;6706:74:46;8419:297:58;6622:169:46;6846:56;-1:-1:-1;;;;;6846:23:46;;;;6870:7;;6887:4;;6846:56;;:23;:56::i;:::-;6981:46;;;;;7021:4;6981:46;;;6671:74:58;6962:16:46;;7030:13;;-1:-1:-1;;;;;6981:31:46;;;;;6644:18:58;;6981:46:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:62;;;;:::i;:::-;-1:-1:-1;;;;;7114:21:46;;;:12;:21;;;;;;;;;;;:29;;;;;;;;;;;;:41;;;;;;6962:81;;-1:-1:-1;7114:29:46;7223:66;7268:20;6962:81;7268:18;:20::i;:::-;7223:66;;-1:-1:-1;;;;;6689:55:58;;;6671:74;;6659:2;6644:18;7223:66:46;;;;;;;6011:1285;;;5934:1362;;;:::o;17912:805::-;18084:18;18156:105;18279:10;;;;:2;:10;:::i;:::-;18307:8;;;;;;;;:::i;:::-;18333:9;18128:281;;;;;10903:25:58;;;;-1:-1:-1;;;;;10964:55:58;;;10944:18;;;10937:83;11056:55;;18360:8:46;11036:18:58;;;11029:83;;;;18333:9:46;;;;18386;11128:18:58;;;11121:34;;;;18360:8:46;;;;11171:19:58;;;11164:35;18386:9:46;;;11215:19:58;;;11208:35;10875:19;;18128:281:46;;;;;;;;;;;;18105:314;;;;;;18084:335;;18429:14;18446:26;18461:10;18446:14;:26::i;:::-;18429:43;;18482:28;18513:36;18542:6;13444:4:36;13437:18;13524:50;13345:14;13511:64;13627:4;13621;13611:21;;13276:409;18513:36:46;18482:67;;18559:14;18576:55;18598:20;18620:10;;18576:21;:55::i;:::-;18559:72;-1:-1:-1;3151:14:0;-1:-1:-1;;3147:22:0;;3134:36;3128:4;3124:47;3071:114;;686:36;680:4;676:47;-1:-1:-1;;;;;18645:27:46;;;18641:69;;18681:29;;;;;;;;;;;;;;18641:69;18018:699;;;;17912:805;;;:::o;5039:142:42:-;5092:7;5120:8;5115:1;:13;5111:36;;5130:17;:15;:17::i;:::-;-1:-1:-1;5172:1:42;5039:142::o;7452:409:46:-;-1:-1:-1;;;;;7550:24:46;;7536:11;7550:24;;;:16;:24;;;;;;;7588:8;;;7584:21;;7598:7;7452:409;;:::o;7584:21::-;7614:13;7630:32;3893:7;7630:15;:32;:::i;:::-;-1:-1:-1;;;;;7687:24:46;;7672:12;7687:24;;;:16;:24;;;;;;;;:31;;;;;;;;;7614:48;;-1:-1:-1;7672:12:46;7687:41;;7721:7;;7687:41;:::i;:::-;7672:56;;7749:3;7742:4;:10;7738:68;;;7761:45;;;;;;;;9217:25:58;;;9258:18;;;9251:34;;;9190:18;;7761:45:46;9043:248:58;7738:68:46;-1:-1:-1;;;;;7816:24:46;;;;;;;:16;:24;;;;;;;;:31;;;;;;;:38;;;;-1:-1:-1;;7452:409:46:o;13392:887:43:-;13555:2;13549:4;13542:16;13612:6;13606:4;13599:20;13677:34;13671:4;13664:48;13873:4;13867;13861;13855;13852:1;13845:5;13838;13833:45;13925:7;13921:1;13914:4;13908:11;13905:18;13901:32;13891:275;;14016:7;13997:16;13988:5;13976:18;13969:26;13966:48;13963:61;13953:199;;14061:10;14055:4;14048:24;14129:4;14123;14116:18;13953:199;13891:275;14192:1;14186:4;14179:15;13392:887;;;:::o;17032:665:46:-;17235:18;17290:58;17371:7;;17360:19;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;17350:30;;17360:19;17350:30;;;;17279:110;;;12901:25:58;;;;12942:18;;12935:34;;;;12985:18;;;12978:34;;;12874:18;;17279:110:46;;;;;;;;;;;;17256:143;;;;;;17235:164;;17409:14;17426:26;17441:10;17426:14;:26::i;:::-;17409:43;;17462:28;17493:36;17522:6;13444:4:36;13437:18;13524:50;13345:14;13511:64;13627:4;13621;13611:21;;13276:409;17493:36:46;17462:67;;17539:14;17556:55;17578:20;17600:10;;17556:21;:55::i;:::-;17539:72;-1:-1:-1;3151:14:0;-1:-1:-1;;3147:22:0;;3134:36;3128:4;3124:47;3071:114;;686:36;680:4;676:47;-1:-1:-1;;;;;17625:27:46;;;17621:69;;17661:29;;;;;;;;;;;;;;17621:69;17169:528;;;;17032:665;;;;;:::o;18884:274::-;19055:16;;;;;;;;;;;;;;;;;18957:19;19133:18;3637:1;19133:16;:18::i;:::-;19122:29;;18884:274;;:::o;2458:1909:40:-;2527:15;2637:4;2631:11;2620:22;;2671:4;2662:7;2655:21;2716:11;2706:7;2700:4;2696:18;2689:39;2760:7;2754:4;2750:18;2790:1;2822:11;2819:1;2815:19;2876:3;2863:11;2860:1;2847:33;2900:11;;;2949:1252;;;;2982:1205;3048:1;3042:8;3029:11;3025:26;3115:1;3102:15;3095:4;3092:1;3088:12;3085:1;3072:46;3263:4;3251:10;3247:1;3234:15;3231:1;3220:9;3213:5;3200:68;3190:310;;3403:16;3397:4;3388:7;3373:47;3461:16;3452:7;3445:33;3190:310;-1:-1:-1;3531:9:40;;;3521:20;;3685:16;3675:27;;3571:4;3567:12;;;;3732;;3789:16;3783:4;3732:12;3765:41;4073:1;4054:16;4047:24;;4040:35;3974:16;3967:24;3993:4;3963:35;4000:18;3959:60;;-1:-1:-1;4148:10:40;;;2982:1205;4138:31;2982:1205;4227:1;4221:4;4214:15;4302:7;4291;4288:1;4284:15;4280:2;4276:24;4273:37;4262:48;;;;;;2458:1909;;;;:::o;5510:221::-;5706:7;5702:2;5698:16;5688:7;5668:18;5664:32;5657:58;9254:1026:43;9437:4;9431:11;9502:6;9496:4;9489:20;9567:2;9561:4;9554:16;9632:4;9628:2;9624:13;9618:4;9611:27;9694:34;9688:4;9681:48;9841:4;9835;9829;9823;9820:1;9813:5;9806;9801:45;9893:7;9889:1;9882:4;9876:11;9873:18;9869:32;9859:279;;9984:7;9965:16;9956:5;9944:18;9937:26;9934:48;9931:61;9921:203;;10029:10;10023:4;10016:24;10101:4;10095;10088:18;9921:203;-1:-1:-1;10164:1:43;10158:4;10151:15;10220:4;10213:15;-1:-1:-1;;;;9254:1026:43:o;6666:885:37:-;6975:22;13508:11;13649:9;13646:25;13463:14;13619:9;13616:28;13612:60;7011:73;;-1:-1:-1;12939:4:37;12933:11;;13000:16;12990:27;;12777:15;13044:4;13037:12;;13030:31;12820:18;13095:12;;;13088:33;;;;13155:9;13148:4;13141:12;;13134:31;13199:9;13192:4;13185:12;;13178:31;13248:4;13235:18;;7011:73;7218:18;7212:4;7205:32;7284:6;7278:4;7271:20;7348:10;7342:4;7335:24;7424:4;7418;7408:21;7398:31;;7533:1;7527:4;7520:15;6666:885;;;:::o;4336:1373:36:-;4448:14;4565:4;4559:11;4717:16;4755:2;4750:297;;;;5069:2;5064:204;;;;5295:8;;;4750:297;4825:4;4803:27;;;4790:41;4873:3;4869:12;;;4883:2;4865:21;4852:35;;;4929:30;;4923:4;4916:44;5002:18;;4996:4;4989:32;4750:297;;5064:204;5150:4;5132:16;5128:27;5115:41;5112:1;5107:50;5101:4;5094:64;5224:4;5206:16;5200:4;5187:42;4710:595;;5335:4;5329;5322:18;5412:4;5406;5400;5394;5391:1;5384:5;5373:44;5367:51;5357:61;;5448:1;5442:4;5435:15;5506:1;5500:4;5493:15;5653:16;5672:5;5650:29;;4606:10;4600:4;4593:24;4672:4;4666;4659:18;4544:1149;4548:24;4336:1373;;;;;:::o;23502:290:42:-;23691:10;23685:4;23678:24;23771:4;23765;23758:18;214:334:50;264:21;378:4;372:11;416:4;413:1;409:12;403:4;396:26;445:1;442;435:12;504:1;500:2;496:10;489:4;486:1;482:12;474:33;531:1;214:334;-1:-1:-1;;214:334:50:o;14:154:58:-;-1:-1:-1;;;;;93:5:58;89:54;82:5;79:65;69:93;;158:1;155;148:12;69:93;14:154;:::o;173:388::-;241:6;249;302:2;290:9;281:7;277:23;273:32;270:52;;;318:1;315;308:12;270:52;357:9;344:23;376:31;401:5;376:31;:::i;:::-;426:5;-1:-1:-1;483:2:58;468:18;;455:32;496:33;455:32;496:33;:::i;:::-;548:7;538:17;;;173:388;;;;;:::o;1141:367::-;1209:6;1217;1270:2;1258:9;1249:7;1245:23;1241:32;1238:52;;;1286:1;1283;1276:12;1238:52;1325:9;1312:23;1344:31;1369:5;1344:31;:::i;:::-;1394:5;1472:2;1457:18;;;;1444:32;;-1:-1:-1;;;1141:367:58:o;1513:247::-;1572:6;1625:2;1613:9;1604:7;1600:23;1596:32;1593:52;;;1641:1;1638;1631:12;1593:52;1680:9;1667:23;1699:31;1724:5;1699:31;:::i;:::-;1749:5;1513:247;-1:-1:-1;;;1513:247:58:o;1765:226::-;1824:6;1877:2;1865:9;1856:7;1852:23;1848:32;1845:52;;;1893:1;1890;1883:12;1845:52;-1:-1:-1;1938:23:58;;1765:226;-1:-1:-1;1765:226:58:o;2188:347::-;2239:8;2249:6;2303:3;2296:4;2288:6;2284:17;2280:27;2270:55;;2321:1;2318;2311:12;2270:55;-1:-1:-1;2344:20:58;;2387:18;2376:30;;2373:50;;;2419:1;2416;2409:12;2373:50;2456:4;2448:6;2444:17;2432:29;;2508:3;2501:4;2492:6;2484;2480:19;2476:30;2473:39;2470:59;;;2525:1;2522;2515:12;2470:59;2188:347;;;;;:::o;2540:565::-;2657:6;2665;2673;2717:9;2708:7;2704:23;2747:3;2743:2;2739:12;2736:32;;;2764:1;2761;2754:12;2736:32;2788:3;2784:2;2780:12;2777:32;;;2805:1;2802;2795:12;2777:32;;2828:9;2818:19;;2888:3;2877:9;2873:19;2860:33;2916:18;2908:6;2905:30;2902:50;;;2948:1;2945;2938:12;2902:50;2987:58;3037:7;3028:6;3017:9;3013:22;2987:58;:::i;:::-;2540:565;;3064:8;;-1:-1:-1;2961:84:58;;-1:-1:-1;;;;2540:565:58:o;3299:367::-;3367:6;3375;3428:2;3416:9;3407:7;3403:23;3399:32;3396:52;;;3444:1;3441;3434:12;3396:52;3489:23;;;-1:-1:-1;3588:2:58;3573:18;;3560:32;3601:33;3560:32;3601:33;:::i;3671:1066::-;3818:6;3826;3834;3842;3850;3903:2;3891:9;3882:7;3878:23;3874:32;3871:52;;;3919:1;3916;3909:12;3871:52;3959:9;3946:23;3992:18;3984:6;3981:30;3978:50;;;4024:1;4021;4014:12;3978:50;4047:22;;4100:4;4092:13;;4088:27;-1:-1:-1;4078:55:58;;4129:1;4126;4119:12;4078:55;4169:2;4156:16;4195:18;4187:6;4184:30;4181:50;;;4227:1;4224;4217:12;4181:50;4283:7;4276:4;4270:2;4262:6;4258:15;4254:2;4250:24;4246:35;4243:48;4240:68;;;4304:1;4301;4294:12;4240:68;4335:4;4327:13;;;;-1:-1:-1;4359:6:58;-1:-1:-1;4419:20:58;;4406:34;;-1:-1:-1;4517:2:58;4502:18;;4489:32;4546:18;4533:32;;4530:52;;;4578:1;4575;4568:12;4530:52;4617:60;4669:7;4658:8;4647:9;4643:24;4617:60;:::i;:::-;3671:1066;;;;-1:-1:-1;3671:1066:58;;-1:-1:-1;4696:8:58;;4591:86;3671:1066;-1:-1:-1;;;3671:1066:58:o;4742:459::-;4784:3;4822:5;4816:12;4849:6;4844:3;4837:19;4874:1;4884:139;4898:6;4895:1;4892:13;4884:139;;;5006:4;4991:13;;;4987:24;;4981:31;4961:11;;;4957:22;;4950:63;4913:12;4884:139;;;4888:3;5068:1;5061:4;5052:6;5047:3;5043:16;5039:27;5032:38;5190:4;5120:66;5115:2;5107:6;5103:15;5099:88;5094:3;5090:98;5086:109;5079:116;;;4742:459;;;;:::o;5206:1314::-;5603:66;5595:6;5591:79;5580:9;5573:98;5707:3;5702:2;5691:9;5687:18;5680:31;5554:4;5734:46;5775:3;5764:9;5760:19;5752:6;5734:46;:::i;:::-;5828:9;5820:6;5816:22;5811:2;5800:9;5796:18;5789:50;5862:33;5888:6;5880;5862:33;:::i;:::-;5926:2;5911:18;;5904:34;;;-1:-1:-1;;;;;5975:55:58;;5969:3;5954:19;;5947:84;6062:3;6047:19;;6040:35;;;6112:22;;;6106:3;6091:19;;6084:51;6184:13;;6206:22;;;6256:2;6282:15;;;;-1:-1:-1;6244:15:58;;;;-1:-1:-1;6325:169:58;6339:6;6336:1;6333:13;6325:169;;;6400:13;;6388:26;;6443:2;6469:15;;;;6434:12;;;;6361:1;6354:9;6325:169;;;-1:-1:-1;6511:3:58;;5206:1314;-1:-1:-1;;;;;;;;;;;5206:1314:58:o;6756:621::-;6853:6;6861;6914:2;6902:9;6893:7;6889:23;6885:32;6882:52;;;6930:1;6927;6920:12;6882:52;6970:9;6957:23;7003:18;6995:6;6992:30;6989:50;;;7035:1;7032;7025:12;6989:50;7058:22;;7111:4;7103:13;;7099:27;-1:-1:-1;7089:55:58;;7140:1;7137;7130:12;7089:55;7180:2;7167:16;7206:18;7198:6;7195:30;7192:50;;;7238:1;7235;7228:12;7192:50;7291:7;7286:2;7276:6;7273:1;7269:14;7265:2;7261:23;7257:32;7254:45;7251:65;;;7312:1;7309;7302:12;7251:65;7343:2;7335:11;;;;;7365:6;;-1:-1:-1;6756:621:58;-1:-1:-1;;;6756:621:58:o;7382:839::-;7542:4;7590:2;7579:9;7575:18;7620:2;7609:9;7602:21;7643:6;7678;7672:13;7709:6;7701;7694:22;7747:2;7736:9;7732:18;7725:25;;7809:2;7799:6;7796:1;7792:14;7781:9;7777:30;7773:39;7759:53;;7847:2;7839:6;7835:15;7868:1;7878:314;7892:6;7889:1;7886:13;7878:314;;;7981:66;7969:9;7961:6;7957:22;7953:95;7948:3;7941:108;8072:40;8105:6;8096;8090:13;8072:40;:::i;:::-;8062:50;-1:-1:-1;8147:2:58;8170:12;;;;8135:15;;;;;7914:1;7907:9;7878:314;;;-1:-1:-1;8209:6:58;;7382:839;-1:-1:-1;;;;;;7382:839:58:o;8721:184::-;8773:77;8770:1;8763:88;8870:4;8867:1;8860:15;8894:4;8891:1;8884:15;8910:128;8977:9;;;8998:11;;;8995:37;;;9012:18;;:::i;9296:184::-;9348:77;9345:1;9338:88;9445:4;9442:1;9435:15;9469:4;9466:1;9459:15;9485:216;9549:9;;;9577:11;;;9524:3;9607:9;;9635:10;;9631:19;;9660:10;;9652:19;;9628:44;9625:70;;;9675:18;;:::i;:::-;9625:70;;9485:216;;;;:::o;10427:184::-;10497:6;10550:2;10538:9;10529:7;10525:23;10521:32;10518:52;;;10566:1;10563;10556:12;10518:52;-1:-1:-1;10589:16:58;;10427:184;-1:-1:-1;10427:184:58:o;11254:274::-;11294:1;11320;11310:189;;11355:77;11352:1;11345:88;11456:4;11453:1;11446:15;11484:4;11481:1;11474:15;11310:189;-1:-1:-1;11513:9:58;;11254:274::o;11533:125::-;11598:9;;;11619:10;;;11616:36;;;11632:18;;:::i;11663:1031::-;11925:2;11937:21;;;11910:18;;11993:22;;;11877:4;12072:6;12046:2;12031:18;;11877:4;12106:562;12120:6;12117:1;12114:13;12106:562;;;12195:6;12182:20;12215:31;12240:5;12215:31;:::i;:::-;-1:-1:-1;;;;;12271:54:58;12259:67;;12379:2;12367:15;;12354:29;12396:33;12354:29;12396:33;:::i;:::-;-1:-1:-1;;;;;12463:56:58;12458:2;12449:12;;12442:78;12579:2;12567:15;;;12554:29;12540:12;;;12533:51;12613:4;12641:17;;;;12604:14;;;;12142:1;12135:9;12106:562;;;-1:-1:-1;12685:3:58;11663:1031;-1:-1:-1;;;;;11663:1031:58:o","linkReferences":{},"immutableReferences":{"41611":[{"start":5622,"length":32}],"41613":[{"start":5657,"length":32}],"41615":[{"start":5737,"length":32}],"41617":[{"start":5775,"length":32}],"41619":[{"start":5589,"length":32}]}},"methodIdentifiers":{"MIN_ORDER_SIZE()":"d3f82d8e","WITHDRAW_EPOCH()":"62fe8ee1","deposit(address,uint160)":"03fde255","destinationSettlers(uint256)":"8d7b2227","eip712Domain()":"84b0196e","factory()":"c45a0155","multicall(bytes[])":"ac9650d8","owner()":"8da5cb5b","setDestinationSettler(uint256,address)":"717653a0","setWithdrawEpochCap(address,uint256)":"2d2cfb66","settleBatch((address,address,int256)[],uint256,bytes)":"76ec433e","tradeBalance(address,address)":"19d5f0c3","usedSettleNonces(uint256)":"4565fe4a","usedWithdrawNonces(address,uint256)":"892d16be","version()":"54fd4d50","withdraw((address,address,uint256,uint256,uint256),bytes)":"4e5c6e4e","withdrawEpochCap(address)":"426aabc2","withdrawnInEpoch(address,uint256)":"742960c1"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.34+commit.80d5c536\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"required\",\"type\":\"uint160\"}],\"name\":\"INSUFFICIENT_BALANCE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_SIGNER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"amount\",\"type\":\"uint160\"}],\"name\":\"MINIMUM_ORDER_AMOUNT\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Reentrancy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SETTLE_NONCE_ALREADY_USED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SETTLE_NOT_CONSERVED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED_CALLER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WITHDRAW_NONCE_ALREADY_USED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"attempted\",\"type\":\"uint256\"}],\"name\":\"WITHDRAW_RATE_LIMITED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"WITHDRAW_VOUCHER_EXPIRED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_AMOUNT\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldSettler\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newSettler\",\"type\":\"address\"}],\"name\":\"DestinationSettlerSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\"}],\"name\":\"NetSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"amount\",\"type\":\"uint160\"}],\"name\":\"TokenDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"Withdrawn\",\"type\":\"event\"},{\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"MIN_ORDER_SIZE\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"WITHDRAW_EPOCH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint160\",\"name\":\"_amount\",\"type\":\"uint160\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"}],\"name\":\"destinationSettlers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"settler\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"data\",\"type\":\"bytes[]\"}],\"name\":\"multicall\",\"outputs\":[{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_factory\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_settler\",\"type\":\"address\"}],\"name\":\"setDestinationSettler\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"setWithdrawEpochCap\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"int256\",\"name\":\"delta\",\"type\":\"int256\"}],\"internalType\":\"struct MidribV3.SettleDelta[]\",\"name\":\"_deltas\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"settleBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"tradeBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"usedSettleNonces\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"used\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"usedWithdrawNonces\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"used\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"_version\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expiry\",\"type\":\"uint256\"}],\"internalType\":\"struct MidribV3.WithdrawalVoucher\",\"name\":\"_v\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"withdrawEpochCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"epoch\",\"type\":\"uint256\"}],\"name\":\"withdrawnInEpoch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Aspens Technical Team\",\"details\":\"MidribV3 is the post-refactor successor to {MidribV2}. Under the Track A      optimistic ledger, trading happens off-chain inside the TEE: orders never      touch the chain. The contract only ever sees three fund movements \\u2014      deposits, TEE-signed net settlement (`settleBatch`), and TEE-signed      voucher withdrawals (`withdraw`). All of V2's on-chain order machinery      (open / openFor / fill / lock / cancel / resolve, the ERC-7683 origin-      and destination-settler conformance, and Permit2) has been removed.      The legacy contract is retained verbatim as {MidribV2} for historical      reference and for any already-deployed V2 clones.Same immutable-args layout as {MidribV2} (owner@0, factory@20), so the      existing {MidribFactory} clones it unchanged \\u2014 only the implementation      address handed to `updateImplementation` differs.Token compatibility assumptions:      This contract is only safe to use against ERC-20 tokens that satisfy ALL      of the following. Markets must be configured against compliant tokens;      the contract does NOT detect or refuse non-compliant ones.        - Standard `transfer` / `transferFrom` semantics: the sender's balance          drops by exactly the transfer amount, with no re-entrant or          opportunistically-reverting transfer hooks.        - No fee-on-transfer behavior. The `balanceBefore` / `balanceAfter`          reconciliation in `_deposit` assumes the received amount equals the          transferred amount.        - No rebasing / share-based balance model. Balances must be stable          between reads.        - No transfer blocklists that can lock a user's funds after deposit.      Token gating happens off-chain at the arborter / matching-engine      market-config layer. See the SDK README \\\"Token Assumptions\\\" section and      the admin-console Add-Token tooltip.\",\"errors\":{\"INSUFFICIENT_BALANCE(uint256,uint160)\":[{\"details\":\"Error thrown if the balance or allowance is insufficient\"}],\"INVALID_SIGNER()\":[{\"details\":\"Error thrown if the signer is not the owner\"}],\"MINIMUM_ORDER_AMOUNT(uint160)\":[{\"details\":\"Error thrown if order is smaller than the minimal order amount\"}],\"Reentrancy()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SETTLE_NONCE_ALREADY_USED()\":[{\"details\":\"A `settleBatch` nonce was already consumed (replay).\"}],\"SETTLE_NOT_CONSERVED()\":[{\"details\":\"A `settleBatch`'s per-token net deltas do not sum to zero (would      create or destroy value).\"}],\"UNAUTHORIZED_CALLER()\":[{\"details\":\"Error thrown by owner-gated functions when called by a non-owner.\"}],\"WITHDRAW_NONCE_ALREADY_USED()\":[{\"details\":\"A withdrawal voucher's `(account, nonce)` pair was already consumed (replay).\"}],\"WITHDRAW_RATE_LIMITED(uint256,uint256)\":[{\"details\":\"A withdrawal would exceed the per-token per-epoch cap (a TEE-bug      blast-radius backstop). `attempted` is the resulting cumulative epoch total.\"}],\"WITHDRAW_VOUCHER_EXPIRED()\":[{\"details\":\"A withdrawal voucher was submitted after its `expiry`.\"}],\"ZERO_AMOUNT()\":[{\"details\":\"Error thrown if a user try to do anything with any order with a 0 amount\"}]},\"events\":{\"DestinationSettlerSet(uint256,address,address)\":{\"details\":\"Emitted when the instance owner registers (or removes) a destination settler for a chain\"},\"NetSettled(address,address,int256)\":{\"details\":\"Emitted per account in a `settleBatch`: net change applied to      `tradeBalance[user][tokenContract]` (off-chain shadow-ledger net      settlement, Track A \\u00a71c).\"},\"TokenDeposited(address,address,uint160)\":{\"details\":\"Emitted when a token is deposited into the Midrib contract\"},\"Withdrawn(address,address,uint256,uint256)\":{\"details\":\"Emitted on a TEE-voucher-authorized withdrawal (Track A \\u00a78). Carries      the voucher `nonce` so the off-chain listener fold is idempotent on      `(account, nonce)`.\"}},\"kind\":\"dev\",\"methods\":{\"deposit(address,uint160)\":{\"params\":{\"_amount\":\"amount of tokens we want to deposit\",\"_token\":\"contract address of the token we are depositing\"}},\"eip712Domain()\":{\"details\":\"See: https://eips.ethereum.org/EIPS/eip-5267\"},\"multicall(bytes[])\":{\"details\":\"Apply `delegatecall` with the current contract to each calldata in `data`, and store the `abi.encode` formatted results of each `delegatecall` into `results`. If any of the `delegatecall`s reverts, the entire context is reverted, and the error is bubbled up. By default, this function directly returns the results and terminates the call context. If you need to add before and after actions to the multicall, please override this function.\"},\"setDestinationSettler(uint256,address)\":{\"params\":{\"_chainId\":\"destination chain id\",\"_settler\":\"address of the settler contract on `_chainId` (or `address(0)` to clear)\"}},\"setWithdrawEpochCap(address,uint256)\":{\"params\":{\"_cap\":\"cumulative amount withdrawable per `WITHDRAW_EPOCH` (`0` = unlimited)\",\"_token\":\"token whose cap to set\"}},\"settleBatch((address,address,int256)[],uint256,bytes)\":{\"details\":\"Off-chain shadow-ledger net settlement (Track A \\u00a71c). In the      optimistic model funds are NOT locked per order; matched trades      accumulate as net deltas off-chain and are reflected on-chain here in      a single batch. Safety:      - signed by the instance owner (the TEE);      - per-token deltas must sum to zero (no value created/destroyed);      - no account's `tradeBalance` may go negative (no overdraw / mint);      - one-shot per `_nonce` (replay-protected).\",\"params\":{\"_deltas\":\"per-(user,token) signed balance changes\",\"_nonce\":\"unique batch nonce\",\"_signature\":\"owner EIP-712 signature over (deltasHash, nonce)\"}},\"version()\":{\"returns\":{\"_version\":\"The version number\"}},\"withdraw((address,address,uint256,uint256,uint256),bytes)\":{\"details\":\"In the optimistic shadow-ledger model a self-service withdrawal is      unsafe: on-chain `tradeBalance` still includes funds reserved behind      resting orders (reservations are off-chain), so a user could drain      collateral a later `settleBatch` is obligated to pay out. The TEE \\u2014      the authority on the withdrawable balance \\u2014 signs a voucher instead;      the contract enforces only bounded backstops:      - signed by the instance owner (the TEE), like `settleBatch`;      - not past `expiry`; one-shot per `(account, nonce)` (replay-proof);      - hard cap: never pays more of a token than `tradeBalance` holds (no mint);      - per-token per-epoch rate limit (TEE-bug blast-radius backstop).      Anyone may submit it (gas payer need not be the recipient): funds      always go to `_v.account`, so a relayer can pay gas for a gasless      withdrawal.\",\"params\":{\"_signature\":\"owner EIP-712 signature over the voucher fields\",\"_v\":\"the signed voucher\"}}},\"stateVariables\":{\"MIN_ORDER_SIZE\":{\"details\":\"Minimum deposit amount \\u2014 a dust guard inherited from V2.\"},\"VERSION\":{\"details\":\"Current version number\"},\"WITHDRAW_EPOCH\":{\"details\":\"Window for the per-token withdrawal rate-limit accounting (Track A \\u00a78).\"},\"tradeBalance\":{\"details\":\"settled on-chain balance: holder => token => amount\"},\"usedSettleNonces\":{\"details\":\"Nonces already consumed by `settleBatch` (TEE-signed net settlement).\"},\"usedWithdrawNonces\":{\"details\":\"`(account, nonce)` pairs already consumed by a withdrawal voucher      (Track A \\u00a78). Per-account so users' voucher nonces are independent.\"},\"withdrawEpochCap\":{\"details\":\"Per-token cumulative withdrawal cap per epoch \\u2014 a TEE-bug      blast-radius backstop. `0` (the default) means unlimited; the      instance owner raises caps from a conservative start as confidence      grows (`setWithdrawEpochCap`).\"},\"withdrawnInEpoch\":{\"details\":\"Cumulative amount withdrawn per `(token, epoch)`, where      `epoch = block.timestamp / WITHDRAW_EPOCH`.\"}},\"title\":\"Midrib V3\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"deposit(address,uint160)\":{\"notice\":\"Allows a user to deposit tokens into this contract.\"},\"setDestinationSettler(uint256,address)\":{\"notice\":\"Register (or clear) the destination settler address for a given chain id.         Gated to the instance owner (the matching-engine signer at immutable-arg         offset 0). Passing `address(0)` clears the entry.\"},\"setWithdrawEpochCap(address,uint256)\":{\"notice\":\"Set the per-epoch withdrawal cap for a token (instance owner only).         `0` disables the cap (unlimited). Caps bound the blast radius of a         TEE bug; start conservative and raise as confidence grows.\"},\"settleBatch((address,address,int256)[],uint256,bytes)\":{\"notice\":\"Apply a TEE-signed batch of net balance changes to `tradeBalance`.\"},\"version()\":{\"notice\":\"Get current version of the contract\"},\"withdraw((address,address,uint256,uint256,uint256),bytes)\":{\"notice\":\"Withdraw tokens against a TEE-signed voucher (Track A \\u00a78).\"}},\"notice\":\"Optimistic shadow-ledger settlement contract for the Aspens stack.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"chains/evm/src/MidribV3.sol\":\"MidribV3\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":5000},\"remappings\":[\":@across-protocol/=chains/evm/lib/contracts/node_modules/@across-protocol/\",\":@ensdomains/=chains/evm/lib/contracts/node_modules/@ensdomains/\",\":@eth-optimism/=chains/evm/lib/contracts/node_modules/@eth-optimism/\",\":@gnosis.pm/=chains/evm/lib/contracts/node_modules/@gnosis.pm/\",\":@maticnetwork/=chains/evm/lib/contracts/node_modules/@maticnetwork/\",\":@matterlabs/=chains/evm/lib/contracts/node_modules/@matterlabs/\",\":@openzeppelin/=chains/evm/lib/contracts/node_modules/@openzeppelin/\",\":@scroll-tech/=chains/evm/lib/contracts/node_modules/@scroll-tech/\",\":@uma/=chains/evm/lib/contracts/node_modules/@uma/\",\":@uniswap/=chains/evm/lib/contracts/node_modules/@uniswap/\",\":arb-bridge-eth/=chains/evm/lib/contracts/node_modules/arb-bridge-eth/\",\":arb-bridge-peripherals/=chains/evm/lib/contracts/node_modules/arb-bridge-peripherals/\",\":arbos-precompiles/=chains/evm/lib/contracts/node_modules/arbos-precompiles/\",\":base64-sol/=chains/evm/lib/contracts/node_modules/base64-sol/\",\":bitcoinprism-evm/=chains/evm/lib/oif-contracts/lib/bitcoinprism-evm/\",\":clones-with-immutable-args/=chains/evm/lib/clones-with-immutable-args/src/\",\":contracts/=chains/evm/lib/contracts/contracts/\",\":ds-test/=chains/evm/lib/clones-with-immutable-args/lib/ds-test/src/\",\":erc4626-tests/=chains/evm/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":eth-gas-reporter/=chains/evm/lib/contracts/node_modules/eth-gas-reporter/\",\":forge-gas-snapshot/=chains/evm/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=chains/evm/lib/forge-std/src/\",\":halmos-cheatcodes/=chains/evm/lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/\",\":hardhat-deploy/=chains/evm/lib/contracts/node_modules/hardhat-deploy/\",\":hardhat/=chains/evm/lib/contracts/node_modules/hardhat/\",\":oif-contracts/=chains/evm/lib/oif-contracts/\",\":openzeppelin-contracts-upgradeable/=chains/evm/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=chains/evm/lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=chains/evm/lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=chains/evm/lib/oif-contracts/lib/openzeppelin-contracts/contracts/\",\":permit2/=chains/evm/lib/permit2/\",\":solady/=chains/evm/lib/solady/src/\",\":soledge/=chains/evm/lib/oif-contracts/lib/the-compact/lib/soledge/src/\",\":solmate/=chains/evm/lib/permit2/lib/solmate/\",\":the-compact/=chains/evm/lib/oif-contracts/lib/the-compact/\"]},\"sources\":{\"chains/evm/lib/clones-with-immutable-args/src/Clone.sol\":{\"keccak256\":\"0xf75bde15306c97dfc1f265130e5d3dbdcbacc7a42ee4b0adbc09e76b04efd59e\",\"license\":\"BSD\",\"urls\":[\"bzz-raw://517e7dc10088420ebbdcf879c3ab7f7e0c7c6063596e186309bb158895ece712\",\"dweb:/ipfs/QmYcwmBbPXg833XofAVx7X2qFjWZpAQH1DBXTKcVQSKTGM\"]},\"chains/evm/lib/solady/src/utils/ECDSA.sol\":{\"keccak256\":\"0xb0754260daabfe6f20dd16f2213823f27c8df1089b43c8eda9b3c2a6eca07478\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ffef4ca363ec0e2437b5e195fbb3d58bdc6750921fce32f351ca1c092ad36a75\",\"dweb:/ipfs/QmTcnAyxwvQg3h357PdB8S8oz5bBt85J4SvEgmMqwAfPKF\"]},\"chains/evm/lib/solady/src/utils/EIP712.sol\":{\"keccak256\":\"0x53ccaa757944900e7423347c3c35ea5a905580f3f075452b8468a501a9c39839\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://aa5688d98319fbeb5b3c46330a394e15a0f2c862d651415e183da4179b918351\",\"dweb:/ipfs/QmZZFrFWmUCFL1qkZDVm3oqrDkQfumYnnksF6cpPkAHdtJ\"]},\"chains/evm/lib/solady/src/utils/Multicallable.sol\":{\"keccak256\":\"0xccd9f4b1c6dbc1592a2c68f10ef9b9798ab03279c39142f7266f6fd8cfcc0fd4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8a54a9ede45f3537604184f48031279f493eb0075fb51b42b2c37c86540023ef\",\"dweb:/ipfs/QmfCovmCBLJZtPYJyfZEpbgTuQgT1r2DsDJVbRkxamsbZT\"]},\"chains/evm/lib/solady/src/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98\",\"dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi\"]},\"chains/evm/lib/solady/src/utils/SafeCastLib.sol\":{\"keccak256\":\"0x184c2be02a160a07f7e27fea5753d878c5015c0632faa115ed2f4e90614df284\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c721441b505ec68ecfcc08cf8019342f6f304e94165af3e02db726377de2055a\",\"dweb:/ipfs/Qmcwe7wcjeGs7px92YR4XCFB6YS1x8T1Aq9FoDC7LKC4BA\"]},\"chains/evm/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x960d5b7ca568a090c4a7785ddfd88f6ce135ced94f5c79c34e5519a71772a817\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b2dd81d9b7c0e8cd1ba3b84b8d3b3c937e3b942b626e4d5ab4ad454a07666396\",\"dweb:/ipfs/QmcLh9t8qgojjnziKzDfZXNtbsmvsQMRgd9nHds9ZmP668\"]},\"chains/evm/src/MidribV3.sol\":{\"keccak256\":\"0xe5649878ad8d4d7d0a8fc39b099ae594680f780e04af51eeaf07f2412a34e785\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://851a679733a44e2d324c6f2bbdd469204e9c4db09e32d41f45a319ed0c97fb94\",\"dweb:/ipfs/QmVwS3rwSfyBxyT16eP7skahZuBjoUvKdDWQrzsnUf5QeQ\"]},\"chains/evm/src/interfaces/IMinimalErc20.sol\":{\"keccak256\":\"0x5a34550af787ce671c59414f813621ae56327e90b1d6073edd30fc7d3107bb3f\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://1b62cf4b600df271955dfdbd45fef785becf6d910bcf7bb8b586cdfc30a5c2b2\",\"dweb:/ipfs/QmZbJ5zW71QzN73NeLVfixFznBnEvHEtqqRj8Jm1mLAMUh\"]},\"chains/evm/src/libraries/LibString.sol\":{\"keccak256\":\"0x34bce717d04e252a623fd1a27cd6a61e77565a448292224b10ec06beb646d3f3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3d138d27208395ef9122c6c043ea41381e53d3b3c1989d8c7873fbf0ebc79096\",\"dweb:/ipfs/QmedpQ96QxJPdhnbkvbsCDNfBDmeZo5TpM45DA4CH4ffww\"]},\"chains/evm/src/libraries/MidribErrors.sol\":{\"keccak256\":\"0xdeae7ed879503f470b1a8ac1b0cd17b69204d9bce03c1d98c5ffbc2ddc926521\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://3b55af58a3186eed6d952f3981a403b2dbdd12249d6ac83345002977c62fc408\",\"dweb:/ipfs/QmRsVG3YUYF5wvQdMmi37HfVxPmsvJRManNY5DQ5cgLFYY\"]},\"chains/evm/src/libraries/MidribEvents.sol\":{\"keccak256\":\"0x2119797c010099849d7f13ca0f2cfa61d1e88c7427f273373bb879848f919a12\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://e5862e7f73d966307c1e48171e1d5c6f583b3a821f10bad92b1e0e4329c4bb40\",\"dweb:/ipfs/QmPBchDYPSLmcf2j9d2yyFpgY4yRPVXfBNFc5jXjR34zqh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.34+commit.80d5c536"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"uint160","name":"required","type":"uint160"}],"type":"error","name":"INSUFFICIENT_BALANCE"},{"inputs":[],"type":"error","name":"INVALID_SIGNER"},{"inputs":[{"internalType":"uint160","name":"amount","type":"uint160"}],"type":"error","name":"MINIMUM_ORDER_AMOUNT"},{"inputs":[],"type":"error","name":"Reentrancy"},{"inputs":[],"type":"error","name":"SETTLE_NONCE_ALREADY_USED"},{"inputs":[],"type":"error","name":"SETTLE_NOT_CONSERVED"},{"inputs":[],"type":"error","name":"UNAUTHORIZED_CALLER"},{"inputs":[],"type":"error","name":"WITHDRAW_NONCE_ALREADY_USED"},{"inputs":[{"internalType":"uint256","name":"cap","type":"uint256"},{"internalType":"uint256","name":"attempted","type":"uint256"}],"type":"error","name":"WITHDRAW_RATE_LIMITED"},{"inputs":[],"type":"error","name":"WITHDRAW_VOUCHER_EXPIRED"},{"inputs":[],"type":"error","name":"ZERO_AMOUNT"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256","indexed":true},{"internalType":"address","name":"oldSettler","type":"address","indexed":true},{"internalType":"address","name":"newSettler","type":"address","indexed":true}],"type":"event","name":"DestinationSettlerSet","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"tokenContract","type":"address","indexed":true},{"internalType":"int256","name":"delta","type":"int256","indexed":false}],"type":"event","name":"NetSettled","anonymous":false},{"inputs":[{"internalType":"address","name":"user","type":"address","indexed":true},{"internalType":"address","name":"tokenContract","type":"address","indexed":true},{"internalType":"uint160","name":"amount","type":"uint160","indexed":false}],"type":"event","name":"TokenDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"tokenContract","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false}],"type":"event","name":"Withdrawn","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"MIN_ORDER_SIZE","outputs":[{"internalType":"uint16","name":"","type":"uint16"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"WITHDRAW_EPOCH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint160","name":"_amount","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"deposit"},{"inputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"view","type":"function","name":"destinationSettlers","outputs":[{"internalType":"address","name":"settler","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"factory","outputs":[{"internalType":"address","name":"_factory","type":"address"}]},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"stateMutability":"payable","type":"function","name":"multicall","outputs":[{"internalType":"bytes[]","name":"","type":"bytes[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"owner","outputs":[{"internalType":"address","name":"_factory","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_chainId","type":"uint256"},{"internalType":"address","name":"_settler","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setDestinationSettler"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_cap","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setWithdrawEpochCap"},{"inputs":[{"internalType":"struct MidribV3.SettleDelta[]","name":"_deltas","type":"tuple[]","components":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"int256","name":"delta","type":"int256"}]},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"settleBatch"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"tradeBalance","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function","name":"usedSettleNonces","outputs":[{"internalType":"bool","name":"used","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"view","type":"function","name":"usedWithdrawNonces","outputs":[{"internalType":"bool","name":"used","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"version","outputs":[{"internalType":"uint8","name":"_version","type":"uint8"}]},{"inputs":[{"internalType":"struct MidribV3.WithdrawalVoucher","name":"_v","type":"tuple","components":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"}]},{"internalType":"bytes","name":"_signature","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"stateMutability":"view","type":"function","name":"withdrawEpochCap","outputs":[{"internalType":"uint256","name":"cap","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"epoch","type":"uint256"}],"stateMutability":"view","type":"function","name":"withdrawnInEpoch","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"deposit(address,uint160)":{"params":{"_amount":"amount of tokens we want to deposit","_token":"contract address of the token we are depositing"}},"eip712Domain()":{"details":"See: https://eips.ethereum.org/EIPS/eip-5267"},"multicall(bytes[])":{"details":"Apply `delegatecall` with the current contract to each calldata in `data`, and store the `abi.encode` formatted results of each `delegatecall` into `results`. If any of the `delegatecall`s reverts, the entire context is reverted, and the error is bubbled up. By default, this function directly returns the results and terminates the call context. If you need to add before and after actions to the multicall, please override this function."},"setDestinationSettler(uint256,address)":{"params":{"_chainId":"destination chain id","_settler":"address of the settler contract on `_chainId` (or `address(0)` to clear)"}},"setWithdrawEpochCap(address,uint256)":{"params":{"_cap":"cumulative amount withdrawable per `WITHDRAW_EPOCH` (`0` = unlimited)","_token":"token whose cap to set"}},"settleBatch((address,address,int256)[],uint256,bytes)":{"details":"Off-chain shadow-ledger net settlement (Track A §1c). In the      optimistic model funds are NOT locked per order; matched trades      accumulate as net deltas off-chain and are reflected on-chain here in      a single batch. Safety:      - signed by the instance owner (the TEE);      - per-token deltas must sum to zero (no value created/destroyed);      - no account's `tradeBalance` may go negative (no overdraw / mint);      - one-shot per `_nonce` (replay-protected).","params":{"_deltas":"per-(user,token) signed balance changes","_nonce":"unique batch nonce","_signature":"owner EIP-712 signature over (deltasHash, nonce)"}},"version()":{"returns":{"_version":"The version number"}},"withdraw((address,address,uint256,uint256,uint256),bytes)":{"details":"In the optimistic shadow-ledger model a self-service withdrawal is      unsafe: on-chain `tradeBalance` still includes funds reserved behind      resting orders (reservations are off-chain), so a user could drain      collateral a later `settleBatch` is obligated to pay out. The TEE —      the authority on the withdrawable balance — signs a voucher instead;      the contract enforces only bounded backstops:      - signed by the instance owner (the TEE), like `settleBatch`;      - not past `expiry`; one-shot per `(account, nonce)` (replay-proof);      - hard cap: never pays more of a token than `tradeBalance` holds (no mint);      - per-token per-epoch rate limit (TEE-bug blast-radius backstop).      Anyone may submit it (gas payer need not be the recipient): funds      always go to `_v.account`, so a relayer can pay gas for a gasless      withdrawal.","params":{"_signature":"owner EIP-712 signature over the voucher fields","_v":"the signed voucher"}}},"version":1},"userdoc":{"kind":"user","methods":{"deposit(address,uint160)":{"notice":"Allows a user to deposit tokens into this contract."},"setDestinationSettler(uint256,address)":{"notice":"Register (or clear) the destination settler address for a given chain id.         Gated to the instance owner (the matching-engine signer at immutable-arg         offset 0). Passing `address(0)` clears the entry."},"setWithdrawEpochCap(address,uint256)":{"notice":"Set the per-epoch withdrawal cap for a token (instance owner only).         `0` disables the cap (unlimited). Caps bound the blast radius of a         TEE bug; start conservative and raise as confidence grows."},"settleBatch((address,address,int256)[],uint256,bytes)":{"notice":"Apply a TEE-signed batch of net balance changes to `tradeBalance`."},"version()":{"notice":"Get current version of the contract"},"withdraw((address,address,uint256,uint256,uint256),bytes)":{"notice":"Withdraw tokens against a TEE-signed voucher (Track A §8)."}},"version":1}},"settings":{"remappings":["@across-protocol/=chains/evm/lib/contracts/node_modules/@across-protocol/","@ensdomains/=chains/evm/lib/contracts/node_modules/@ensdomains/","@eth-optimism/=chains/evm/lib/contracts/node_modules/@eth-optimism/","@gnosis.pm/=chains/evm/lib/contracts/node_modules/@gnosis.pm/","@maticnetwork/=chains/evm/lib/contracts/node_modules/@maticnetwork/","@matterlabs/=chains/evm/lib/contracts/node_modules/@matterlabs/","@openzeppelin/=chains/evm/lib/contracts/node_modules/@openzeppelin/","@scroll-tech/=chains/evm/lib/contracts/node_modules/@scroll-tech/","@uma/=chains/evm/lib/contracts/node_modules/@uma/","@uniswap/=chains/evm/lib/contracts/node_modules/@uniswap/","arb-bridge-eth/=chains/evm/lib/contracts/node_modules/arb-bridge-eth/","arb-bridge-peripherals/=chains/evm/lib/contracts/node_modules/arb-bridge-peripherals/","arbos-precompiles/=chains/evm/lib/contracts/node_modules/arbos-precompiles/","base64-sol/=chains/evm/lib/contracts/node_modules/base64-sol/","bitcoinprism-evm/=chains/evm/lib/oif-contracts/lib/bitcoinprism-evm/","clones-with-immutable-args/=chains/evm/lib/clones-with-immutable-args/src/","contracts/=chains/evm/lib/contracts/contracts/","ds-test/=chains/evm/lib/clones-with-immutable-args/lib/ds-test/src/","erc4626-tests/=chains/evm/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","eth-gas-reporter/=chains/evm/lib/contracts/node_modules/eth-gas-reporter/","forge-gas-snapshot/=chains/evm/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=chains/evm/lib/forge-std/src/","halmos-cheatcodes/=chains/evm/lib/openzeppelin-contracts-upgradeable/lib/halmos-cheatcodes/src/","hardhat-deploy/=chains/evm/lib/contracts/node_modules/hardhat-deploy/","hardhat/=chains/evm/lib/contracts/node_modules/hardhat/","oif-contracts/=chains/evm/lib/oif-contracts/","openzeppelin-contracts-upgradeable/=chains/evm/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=chains/evm/lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=chains/evm/lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=chains/evm/lib/oif-contracts/lib/openzeppelin-contracts/contracts/","permit2/=chains/evm/lib/permit2/","solady/=chains/evm/lib/solady/src/","soledge/=chains/evm/lib/oif-contracts/lib/the-compact/lib/soledge/src/","solmate/=chains/evm/lib/permit2/lib/solmate/","the-compact/=chains/evm/lib/oif-contracts/lib/the-compact/"],"optimizer":{"enabled":true,"runs":5000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"chains/evm/src/MidribV3.sol":"MidribV3"},"evmVersion":"london","libraries":{}},"sources":{"chains/evm/lib/clones-with-immutable-args/src/Clone.sol":{"keccak256":"0xf75bde15306c97dfc1f265130e5d3dbdcbacc7a42ee4b0adbc09e76b04efd59e","urls":["bzz-raw://517e7dc10088420ebbdcf879c3ab7f7e0c7c6063596e186309bb158895ece712","dweb:/ipfs/QmYcwmBbPXg833XofAVx7X2qFjWZpAQH1DBXTKcVQSKTGM"],"license":"BSD"},"chains/evm/lib/solady/src/utils/ECDSA.sol":{"keccak256":"0xb0754260daabfe6f20dd16f2213823f27c8df1089b43c8eda9b3c2a6eca07478","urls":["bzz-raw://ffef4ca363ec0e2437b5e195fbb3d58bdc6750921fce32f351ca1c092ad36a75","dweb:/ipfs/QmTcnAyxwvQg3h357PdB8S8oz5bBt85J4SvEgmMqwAfPKF"],"license":"MIT"},"chains/evm/lib/solady/src/utils/EIP712.sol":{"keccak256":"0x53ccaa757944900e7423347c3c35ea5a905580f3f075452b8468a501a9c39839","urls":["bzz-raw://aa5688d98319fbeb5b3c46330a394e15a0f2c862d651415e183da4179b918351","dweb:/ipfs/QmZZFrFWmUCFL1qkZDVm3oqrDkQfumYnnksF6cpPkAHdtJ"],"license":"MIT"},"chains/evm/lib/solady/src/utils/Multicallable.sol":{"keccak256":"0xccd9f4b1c6dbc1592a2c68f10ef9b9798ab03279c39142f7266f6fd8cfcc0fd4","urls":["bzz-raw://8a54a9ede45f3537604184f48031279f493eb0075fb51b42b2c37c86540023ef","dweb:/ipfs/QmfCovmCBLJZtPYJyfZEpbgTuQgT1r2DsDJVbRkxamsbZT"],"license":"MIT"},"chains/evm/lib/solady/src/utils/ReentrancyGuard.sol":{"keccak256":"0xdb28f318ec45197a6c7cc2abebed67d7cb8b965838ef962e3844423256a9ddb8","urls":["bzz-raw://873cd46b77a2aeb781e7a0d131e7299151323ed884c330101a51d0727e218d98","dweb:/ipfs/QmddadCjyedztvdSgLZEyKWoRes2SqtpviSjhEbSNrkUoi"],"license":"MIT"},"chains/evm/lib/solady/src/utils/SafeCastLib.sol":{"keccak256":"0x184c2be02a160a07f7e27fea5753d878c5015c0632faa115ed2f4e90614df284","urls":["bzz-raw://c721441b505ec68ecfcc08cf8019342f6f304e94165af3e02db726377de2055a","dweb:/ipfs/Qmcwe7wcjeGs7px92YR4XCFB6YS1x8T1Aq9FoDC7LKC4BA"],"license":"MIT"},"chains/evm/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x960d5b7ca568a090c4a7785ddfd88f6ce135ced94f5c79c34e5519a71772a817","urls":["bzz-raw://b2dd81d9b7c0e8cd1ba3b84b8d3b3c937e3b942b626e4d5ab4ad454a07666396","dweb:/ipfs/QmcLh9t8qgojjnziKzDfZXNtbsmvsQMRgd9nHds9ZmP668"],"license":"MIT"},"chains/evm/src/MidribV3.sol":{"keccak256":"0xe5649878ad8d4d7d0a8fc39b099ae594680f780e04af51eeaf07f2412a34e785","urls":["bzz-raw://851a679733a44e2d324c6f2bbdd469204e9c4db09e32d41f45a319ed0c97fb94","dweb:/ipfs/QmVwS3rwSfyBxyT16eP7skahZuBjoUvKdDWQrzsnUf5QeQ"],"license":"BUSL-1.1"},"chains/evm/src/interfaces/IMinimalErc20.sol":{"keccak256":"0x5a34550af787ce671c59414f813621ae56327e90b1d6073edd30fc7d3107bb3f","urls":["bzz-raw://1b62cf4b600df271955dfdbd45fef785becf6d910bcf7bb8b586cdfc30a5c2b2","dweb:/ipfs/QmZbJ5zW71QzN73NeLVfixFznBnEvHEtqqRj8Jm1mLAMUh"],"license":"BUSL-1.1"},"chains/evm/src/libraries/LibString.sol":{"keccak256":"0x34bce717d04e252a623fd1a27cd6a61e77565a448292224b10ec06beb646d3f3","urls":["bzz-raw://3d138d27208395ef9122c6c043ea41381e53d3b3c1989d8c7873fbf0ebc79096","dweb:/ipfs/QmedpQ96QxJPdhnbkvbsCDNfBDmeZo5TpM45DA4CH4ffww"],"license":"BUSL-1.1"},"chains/evm/src/libraries/MidribErrors.sol":{"keccak256":"0xdeae7ed879503f470b1a8ac1b0cd17b69204d9bce03c1d98c5ffbc2ddc926521","urls":["bzz-raw://3b55af58a3186eed6d952f3981a403b2dbdd12249d6ac83345002977c62fc408","dweb:/ipfs/QmRsVG3YUYF5wvQdMmi37HfVxPmsvJRManNY5DQ5cgLFYY"],"license":"BUSL-1.1"},"chains/evm/src/libraries/MidribEvents.sol":{"keccak256":"0x2119797c010099849d7f13ca0f2cfa61d1e88c7427f273373bb879848f919a12","urls":["bzz-raw://e5862e7f73d966307c1e48171e1d5c6f583b3a821f10bad92b1e0e4329c4bb40","dweb:/ipfs/QmPBchDYPSLmcf2j9d2yyFpgY4yRPVXfBNFc5jXjR34zqh"],"license":"BUSL-1.1"}},"version":1},"id":46}