@zoralabs/limit-orders 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/.turbo/turbo-build$colon$js.log +50 -49
  2. package/CHANGELOG.md +73 -0
  3. package/abis/ISetLimitOrderConfig.json +27 -0
  4. package/abis/IWETH.json +118 -0
  5. package/abis/IZoraLimitOrderBook.json +5 -0
  6. package/abis/LimitOrderLiquidity.json +7 -0
  7. package/abis/LimitOrderViews.json +62 -0
  8. package/abis/{SimpleAccessManaged.json → Ownable.json} +29 -10
  9. package/abis/Ownable2Step.json +115 -0
  10. package/abis/PermittedCallers.json +181 -0
  11. package/abis/SwapWithLimitOrders.json +134 -14
  12. package/abis/ZoraLimitOrderBook.json +187 -35
  13. package/cache/solidity-files-cache.json +1 -1
  14. package/dist/index.cjs +219 -34
  15. package/dist/index.cjs.map +1 -1
  16. package/dist/index.js +219 -34
  17. package/dist/index.js.map +1 -1
  18. package/dist/wagmiGenerated.d.ts +254 -41
  19. package/dist/wagmiGenerated.d.ts.map +1 -1
  20. package/out/BalanceDelta.sol/BalanceDeltaLibrary.json +1 -1
  21. package/out/BeforeSwapDelta.sol/BeforeSwapDeltaLibrary.json +1 -1
  22. package/out/BitMath.sol/BitMath.json +1 -1
  23. package/out/BytesLib.sol/BytesLib.json +1 -1
  24. package/out/CoinCommon.sol/CoinCommon.json +1 -1
  25. package/out/CoinConfigurationVersions.sol/CoinConfigurationVersions.json +1 -1
  26. package/out/CoinConstants.sol/CoinConstants.json +1 -1
  27. package/out/Context.sol/Context.json +1 -1
  28. package/out/Currency.sol/CurrencyLibrary.json +1 -1
  29. package/out/CurrencyReserves.sol/CurrencyReserves.json +1 -1
  30. package/out/CustomRevert.sol/CustomRevert.json +1 -1
  31. package/out/DopplerMath.sol/DopplerMath.json +1 -1
  32. package/out/FixedPoint128.sol/FixedPoint128.json +1 -1
  33. package/out/FixedPoint96.sol/FixedPoint96.json +1 -1
  34. package/out/FullMath.sol/FullMath.json +1 -1
  35. package/out/IAllowanceTransfer.sol/IAllowanceTransfer.json +1 -1
  36. package/out/ICoin.sol/ICoin.json +1 -1
  37. package/out/ICoin.sol/IHasCoinType.json +1 -1
  38. package/out/ICoin.sol/IHasPoolKey.json +1 -1
  39. package/out/ICoin.sol/IHasSwapPath.json +1 -1
  40. package/out/ICoin.sol/IHasTotalSupplyForPositions.json +1 -1
  41. package/out/IDeployedCoinVersionLookup.sol/IDeployedCoinVersionLookup.json +1 -1
  42. package/out/IDopplerErrors.sol/IDopplerErrors.json +1 -1
  43. package/out/IEIP712.sol/IEIP712.json +1 -1
  44. package/out/IERC1363.sol/IERC1363.json +1 -1
  45. package/out/IERC165.sol/IERC165.json +1 -1
  46. package/out/IERC20.sol/IERC20.json +1 -1
  47. package/out/IERC20Minimal.sol/IERC20Minimal.json +1 -1
  48. package/out/IERC6909Claims.sol/IERC6909Claims.json +1 -1
  49. package/out/IERC7572.sol/IERC7572.json +1 -1
  50. package/out/IExtsload.sol/IExtsload.json +1 -1
  51. package/out/IExttload.sol/IExttload.json +1 -1
  52. package/out/IHasRewardsRecipients.sol/IHasRewardsRecipients.json +1 -1
  53. package/out/IHooks.sol/IHooks.json +1 -1
  54. package/out/IMsgSender.sol/IMsgSender.json +1 -1
  55. package/out/IPoolManager.sol/IPoolManager.json +1 -1
  56. package/out/IProtocolFees.sol/IProtocolFees.json +1 -1
  57. package/out/ISetLimitOrderConfig.sol/ISetLimitOrderConfig.json +1 -0
  58. package/out/ISupportsLimitOrderFill.sol/ISupportsLimitOrderFill.json +1 -1
  59. package/out/ISwapPathRouter.sol/ISwapPathRouter.json +1 -1
  60. package/out/ISwapRouter.sol/ISwapRouter.json +1 -1
  61. package/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +1 -1
  62. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4Hook.json +1 -1
  63. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4HookWithUpdateableFee.json +1 -1
  64. package/out/IUpgradeableV4Hook.sol/IUpgradeableV4Hook.json +1 -1
  65. package/out/IWETH.sol/IWETH.json +1 -0
  66. package/out/IZoraHookRegistry.sol/IZoraHookRegistry.json +1 -1
  67. package/out/IZoraLimitOrderBook.sol/IZoraLimitOrderBook.json +1 -1
  68. package/out/IZoraLimitOrderBookCoinsInterface.sol/IZoraLimitOrderBookCoinsInterface.json +1 -1
  69. package/out/IZoraV4CoinHook.sol/IZoraV4CoinHook.json +1 -1
  70. package/out/LimitOrderBitmap.sol/LimitOrderBitmap.json +1 -1
  71. package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -1
  72. package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -1
  73. package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -1
  74. package/out/LimitOrderLiquidity.sol/LimitOrderLiquidity.json +1 -1
  75. package/out/LimitOrderQueues.sol/LimitOrderQueues.json +1 -1
  76. package/out/LimitOrderStorage.sol/LimitOrderStorage.json +1 -1
  77. package/out/LimitOrderTypes.sol/LimitOrderTypes.json +1 -1
  78. package/out/LimitOrderViews.sol/LimitOrderViews.json +1 -0
  79. package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -1
  80. package/out/LiquidityAmounts.sol/LiquidityAmounts.json +1 -1
  81. package/out/LiquidityMath.sol/LiquidityMath.json +1 -1
  82. package/out/Lock.sol/Lock.json +1 -1
  83. package/out/NonzeroDeltaCount.sol/NonzeroDeltaCount.json +1 -1
  84. package/out/Ownable.sol/Ownable.json +1 -0
  85. package/out/Ownable2Step.sol/Ownable2Step.json +1 -0
  86. package/out/Path.sol/Path.json +1 -1
  87. package/out/PathKey.sol/PathKeyLibrary.json +1 -1
  88. package/out/Permit2Payments.sol/Permit2Payments.json +1 -1
  89. package/out/PermittedCallers.sol/PermittedCallers.json +1 -0
  90. package/out/PoolId.sol/PoolIdLibrary.json +1 -1
  91. package/out/Position.sol/Position.json +1 -1
  92. package/out/SafeCast.sol/SafeCast.json +1 -1
  93. package/out/SafeCast160.sol/SafeCast160.json +1 -1
  94. package/out/SafeERC20.sol/SafeERC20.json +1 -1
  95. package/out/SqrtPriceMath.sol/SqrtPriceMath.json +1 -1
  96. package/out/StateLibrary.sol/StateLibrary.json +1 -1
  97. package/out/SwapLimitOrders.sol/SwapLimitOrders.json +1 -1
  98. package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -1
  99. package/out/TickBitmap.sol/TickBitmap.json +1 -1
  100. package/out/TickMath.sol/TickMath.json +1 -1
  101. package/out/TransientSlot.sol/TransientSlot.json +1 -1
  102. package/out/TransientStateLibrary.sol/TransientStateLibrary.json +1 -1
  103. package/out/UniV4SwapToCurrency.sol/UniV4SwapToCurrency.json +1 -1
  104. package/out/UnsafeMath.sol/UnsafeMath.json +1 -1
  105. package/out/V3ToV4SwapLib.sol/V3ToV4SwapLib.json +1 -1
  106. package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -1
  107. package/out/build-info/37e0124d88d60569.json +1 -0
  108. package/out/uniswap/BitMath.sol/BitMath.json +1 -1
  109. package/out/uniswap/CustomRevert.sol/CustomRevert.json +1 -1
  110. package/out/uniswap/FullMath.sol/FullMath.json +1 -1
  111. package/out/uniswap/SafeCast.sol/SafeCast.json +1 -1
  112. package/out/uniswap/TickMath.sol/TickMath.json +1 -1
  113. package/package/wagmiGenerated.ts +218 -33
  114. package/package.json +1 -1
  115. package/src/IZoraLimitOrderBook.sol +5 -5
  116. package/src/ZoraLimitOrderBook.sol +24 -41
  117. package/src/access/PermittedCallers.sol +41 -0
  118. package/src/libs/LimitOrderBitmap.sol +0 -51
  119. package/src/libs/LimitOrderCommon.sol +48 -30
  120. package/src/libs/LimitOrderCreate.sol +5 -18
  121. package/src/libs/LimitOrderFill.sol +32 -161
  122. package/src/libs/LimitOrderLiquidity.sol +92 -71
  123. package/src/libs/LimitOrderViews.sol +168 -0
  124. package/src/libs/LimitOrderWithdraw.sol +13 -4
  125. package/src/libs/SwapLimitOrders.sol +14 -7
  126. package/src/router/ISetLimitOrderConfig.sol +12 -0
  127. package/src/router/SwapWithLimitOrders.sol +46 -33
  128. package/test/LimitOrderAccessControl.t.sol +173 -156
  129. package/test/LimitOrderBitmap.t.sol +13 -7
  130. package/test/LimitOrderFill.t.sol +42 -4
  131. package/test/LimitOrderLibraries.t.sol +18 -10
  132. package/test/LimitOrderLiquidityPayouts.t.sol +280 -3
  133. package/test/LimitOrderWithdraw.t.sol +28 -1
  134. package/test/SwapWithLimitOrders.t.sol +3 -5
  135. package/test/SwapWithLimitOrdersRouter.t.sol +108 -13
  136. package/test/gas/LimitOrderFillGas.t.sol +0 -7
  137. package/test/gas/LimitOrderSwapGas.t.sol +0 -6
  138. package/test/unit/LimitOrderBitmapUnit.t.sol +0 -134
  139. package/test/unit/LimitOrderCreateUnit.t.sol +32 -0
  140. package/test/unit/SwapLimitOrdersUnit.t.sol +231 -33
  141. package/test/unit/SwapLimitOrdersValidation.t.sol +28 -42
  142. package/test/unit/SwapWithLimitOrdersUnit.t.sol +21 -88
  143. package/test/utils/BaseTest.sol +34 -22
  144. package/test/utils/MockWETH.sol +39 -0
  145. package/test/utils/TestableZoraLimitOrderBook.sol +5 -7
  146. package/abis/IAuthority.json +0 -31
  147. package/abis/SimpleAccessManager.json +0 -351
  148. package/out/IAuthority.sol/IAuthority.json +0 -1
  149. package/out/SimpleAccessManaged.sol/SimpleAccessManaged.json +0 -1
  150. package/out/SimpleAccessManager.sol/SimpleAccessManager.json +0 -1
  151. package/out/build-info/69718f10d1dc37f0.json +0 -1
  152. package/src/access/SimpleAccessManaged.sol +0 -76
  153. package/src/access/SimpleAccessManager.sol +0 -268
  154. package/test/SimpleAccessManager.t.sol +0 -420
@@ -1 +1 @@
1
- {"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"contract IPoolManager"},{"name":"zoraLimitOrderBook_","type":"address","internalType":"contract IZoraLimitOrderBook"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"},{"name":"permit2_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"getLimitOrderConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"setLimitOrderConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"swapWithLimitOrders","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"limitOrderConfig","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]},{"name":"inputCurrency","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"v3Route","type":"bytes","internalType":"bytes"},{"name":"v4Route","type":"tuple[]","internalType":"struct PoolKey[]","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"delta","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"payable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"zoraLimitOrderBook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraLimitOrderBook"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderConfigUpdated","inputs":[{"name":"multiples","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"SwapWithLimitOrdersExecuted","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"poolKey","type":"tuple","indexed":false,"internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"delta","type":"int256","indexed":false,"internalType":"BalanceDelta"},{"name":"tickBeforeSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"tickAfterSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"orders","type":"tuple[]","indexed":false,"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","components":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"multiple","type":"uint256","internalType":"uint256"},{"name":"percentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"EmptyV4Route","inputs":[]},{"type":"error","name":"FromAddressIsNotOwner","inputs":[]},{"type":"error","name":"InsufficientInputCurrency","inputs":[{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientOutputAmount","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidLimitOrderConfig","inputs":[]},{"type":"error","name":"InvalidMultiple","inputs":[]},{"type":"error","name":"InvalidPercent","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"OnlyAuthority","inputs":[]},{"type":"error","name":"OnlyPoolManager","inputs":[]},{"type":"error","name":"PercentOverflow","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnsafeCast","inputs":[]},{"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart","inputs":[]},{"type":"error","name":"ZeroSwapDelta","inputs":[]}],"bytecode":{"object":"0x6101003461026857601f61379a38819003918201601f19168301916001600160401b0383118484101761026c578084926080946040528339810103126102685780516001600160a01b038116908181036102685760208301516001600160a01b03811693909290848403610268576040810151946001600160a01b0386169182870361026857606001516001600160a01b038116939084900361026857836080521561022357156101d4571561018f571561014a5760a05260c05260e052604051613519908161028182396080518161057d015260a0518181816105da0152818161090b01528181610e19015281816114b3015281816116c00152818161192601528181611b8e01528181611c5d0152611d29015260c05181818160df01528181610361015281816119d001528181611abd015261223b015260e05181818161044a01526106560152f35b60405162461bcd60e51b815260206004820152601660248201527f5065726d6974322063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f53776170526f757465722063616e6e6f74206265207a65726f000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602160248201527f5a6f72614c696d69744f72646572426f6f6b2063616e6e6f74206265207a65726044820152606f60f81b6064820152608490fd5b60405162461bcd60e51b815260206004820152601a60248201527f506f6f6c4d616e616765722063616e6e6f74206265207a65726f0000000000006044820152606490fd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100995780636baaa1671461009457806391dd73461461008f578063c31c9c071461008a578063c48677f414610085578063d737d0c714610080578063dc4c90d31461007b5763e3e8580c0361000e57610997565b6108f6565b6108c4565b610479565b610435565b6103c8565b61034c565b346101b15760203660031901126101b1576004356001600160401b0381116101b1576100c99036906004016102e3565b60405163bf7e214f60e01b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156101ac577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c9261014e915f9161017d575b506001600160a01b03163314610a62565b61015781611370565b5061016181610b10565b602081519101519061017860405192839283610bd6565b0390a1005b61019f915060203d6020116101a5575b610197818361021f565b810190610a42565b8461013d565b503d61018d565b610a57565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176101e457604052565b6101b5565b60a081019081106001600160401b038211176101e457604052565b606081019081106001600160401b038211176101e457604052565b90601f801991011681019081106001600160401b038211176101e457604052565b6040519061024f60808361021f565b565b6040519061024f60c08361021f565b6040519061024f60608361021f565b6001600160401b0381116101e45760051b60200190565b9080601f830112156101b157813561029d8161026f565b926102ab604051948561021f565b81845260208085019260051b8201019283116101b157602001905b8282106102d35750505090565b81358152602091820191016102c6565b91906040838203126101b157604051906102fc826101c9565b819380356001600160401b0381116101b1578261031a918301610286565b83526020810135916001600160401b0383116101b15760209261033d9201610286565b910152565b5f9103126101b157565b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206103c5928181520190610390565b90565b346101b15760203660031901126101b1576004356001600160401b0381116101b157366023820112156101b1578060040135906001600160401b0382116101b15736602483830101116101b1576104319160246104259201610e17565b604051918291826103b4565b0390f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126101b1576004356001600160401b0381116101b157806004019060e060031982360301126101b1576104b282610f22565b5f5160206134f95f395f51905f525d60248101916104d08382610f2c565b6104d990610f41565b6104e290611370565b506104ed8382610f2c565b6104f690610f41565b6104ff90611dc7565b60a4820161050d8183610f4c565b61051991501515610f81565b60848301936105288584610f97565b9490604482019561053887610f22565b906105438688610f4c565b939091369061055192610fe4565b92369061055d92610c89565b9061056792611e7c565b61057085610f22565b91606482013592343033867f0000000000000000000000000000000000000000000000000000000000000000946105a695611f06565b6105b08486610f4c565b6105ba8688610f4c565b6105c4915061101a565b906105ce92611041565b6105d790611056565b957f00000000000000000000000000000000000000000000000000000000000000009360a088206106089086611fbb565b505099610616915088610f97565b9261062090610f22565b90610629610240565b93369061063592610fe4565b83526001600160a01b03166020830152604082015230606082015261067a907f00000000000000000000000000000000000000000000000000000000000000006120ae565b9061068487610f22565b9561068f9088610f4c565b9460c401359361069f9089610f2c565b946106a8610251565b6001600160a01b03909816885236906106c092610c89565b602087015260408601526001600160a01b031660608501526080840152366106e7916102e3565b60a0830152604051809260208201906106ff916110a4565b03601f1981018352610711908361021f565b6040516348c8949160e01b8152918290819061073090600483016103b4565b6001600160a01b039093169203815a5f948591f180156101ac57610765915f916108a2575b50602080825183010191016111c8565b91949092610791610785610785610785608089015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529190602090839060249082905afa9485156101ac5784847f309c90d7accccb1f970e0a8166ff01a08d97e31ca043803f81b2943e1c84957b97610828955f91610873575b501580610869575b80610859575b610846575b506001600160a01b039261081892509050610f22565b169560405193849333978561129a565b0390a35f5f5160206134f95f395f51905f525d6040515f8152602090f35b610851921589612212565b5f8484610802565b508160020b8160020b14156107fd565b50895115156107f7565b610895915060203d60201161089b575b61088d818361021f565b810190611286565b5f6107ef565b503d610883565b6108be91503d805f833e6108b6818361021f565b81019061114e565b5f610755565b346101b1575f3660031901126101b1576040516001600160a01b035f5160206134f95f395f51905f525c168152602090f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90602080835192838152019201905f5b8181106109575750505090565b825184526020938401939092019160010161094a565b6103c5916020610986835160408452604084019061093a565b92015190602081840391015261093a565b346101b1575f3660031901126101b157606060206040516109b7816101c9565b82815201526040516109c8816101c9565b604051905f5480835260208301905f805260205f20905f5b818110610a1b5761043185876109f88188038261021f565b8152610a026112d2565b602082015260405191829160208352602083019061096d565b82548452602090930192600192830192016109e0565b6001600160a01b038116036101b157565b908160209103126101b157516103c581610a31565b6040513d5f823e3d90fd5b15610a6957565b63d9a88cdb60e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b8151916001600160401b0383116101e457600160401b83116101e4578154838355808410610aea575b506020610ac79101915f5260205f2090565b5f5b838110610ad65750505050565b600190602084519401938184015501610ac9565b825f528360205f2091820191015b818110610b055750610ab5565b5f8155600101610af8565b80518051906001600160401b0382116101e457600160401b82116101e4575f54825f55808310610b93575b505f80526020017f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635f5b838110610b7f5750505050602061024f9101516001610a8c565b600190602084519401938184015501610b65565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639081019083015b818110610bcb5750610b3b565b5f8155600101610bbe565b9091610bed6103c59360408452604084019061093a565b91602081840391015261093a565b359061024f82610a31565b8060020b036101b157565b91908260a09103126101b157604051610c29816101e9565b80928035610c3681610a31565b82526020810135610c4681610a31565b6020830152604081013562ffffff811681036101b157608091829160408501526060810135610c7481610c06565b6060850152013591610c8583610a31565b0152565b90929192610c968161026f565b93610ca4604051958661021f565b60a06020868481520192028301928184116101b157915b838310610cc85750505050565b602060a091610cd78486610c11565b815201920191610cbb565b9080601f830112156101b1578160206103c593359101610c89565b6020818303126101b1578035906001600160401b0382116101b1570160c0818303126101b157610d2b610251565b91610d3582610bfb565b835260208201356001600160401b0381116101b15781610d56918401610ce2565b602084015260408201356040840152610d7160608301610bfb565b60608401526080820135608084015260a08201356001600160401b0381116101b157610d9d92016102e3565b60a082015290565b90602080835192838152019201905f5b818110610dc25750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610db5565b919392610e07604092606085526060850190610da5565b941515602084015260020b910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610f1357610e5391810190610cfd565b6103c5610ecb610f05610eac610ef6610e6b8661143e565b95610e8d6020820151610e8760208a015160018060a01b031690565b90611661565b96919098610e9a826116b7565b9151919690916001600160801b031690565b60a0850151855190929188918b908e906001600160a01b0316966118ec565b6060830151919690916001600160a01b0316604084015193519093906001600160a01b031693611b79565b60405194859360208501610df0565b03601f19810183528261021f565b63f655705d60e01b5f5260045ffd5b356103c581610a31565b903590603e19813603018212156101b1570190565b6103c59036906102e3565b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019160a08202360383136101b157565b15610f8857565b63cbd130a960e01b5f5260045ffd5b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019181360383136101b157565b6001600160401b0381116101e457601f01601f191660200190565b929192610ff082610fc9565b91610ffe604051938461021f565b8294818452818301116101b1578281602093845f960137010152565b5f1981019190821161102857565b610a78565b634e487b7160e01b5f52603260045260245ffd5b91908110156110515760a0020190565b61102d565b6103c5903690610c11565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061112e5750505060a08460406103c59596015160608401526111116060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f198285030191015261096d565b909193602060a0826111436001948951611061565b0195019291016110dd565b6020818303126101b1578051906001600160401b0382116101b1570181601f820112156101b15780519061118182610fc9565b9261118f604051948561021f565b828452602083830101116101b157815f9260208093018386015e8301015290565b519081151582036101b157565b519061024f82610c06565b906060828203126101b15781516001600160401b0381116101b157820181601f820112156101b1578051906111fc8261026f565b9261120a604051948561021f565b828452602060608186019402830101918183116101b157602001925b82841061124a5750505050916103c56040611243602085016111b0565b93016111bd565b6060848303126101b157602060609160405161126581610204565b86518152828701518382015260408701516040820152815201930192611226565b908160209103126101b1576103c5906111b0565b9092610120926112ae836103c59796611061565b5f60a084015260020b60c083015260020b60e0820152816101008201520190610da5565b60405190600154808352826020810160015f5260205f20925f5b81811061130157505061024f9250038361021f565b84548352600194850194879450602090930192016112ec565b80518210156110515760209160051b010190565b1561133557565b635c974e3d60e11b5f5260045ffd5b1561134b57565b63b29d78b760e01b5f5260045ffd5b1561136157565b63d88409d360e01b5f5260045ffd5b8051515f929181151580611402575b156113f357905f915b8183106113a05750505061024f61271083111561135a565b9091936001906113e886602085016113c46113bc83835161131a565b51151561132e565b6113e2670de0b6b3a76400006113db84895161131a565b5111611344565b5161131a565b510194019190611388565b631fec674760e31b5f5260045ffd5b50602081015151821461137f565b6040519061141d826101c9565b5f6020838281520152565b1561142f57565b6342301c2360e01b5f5260045ffd5b611446611410565b50602081015190604081015160018060a01b03606083015116916040519361146d85610204565b845260208401918252604084019283526114a761149961148b611410565b94516001600160a01b031690565b92516001600160801b031690565b925f9560018060a01b037f000000000000000000000000000000000000000000000000000000000000000016935b865180518910156116185790602061151e61150c6114f68c61156e9661131a565b51805190946001600160a01b0390811691161490565b986001600160801b0316600f0b6122c9565b88156115fb576115536401000276a45b611536610260565b8b1515815292600f0b838501526001600160a01b03166040830152565b60405180948192633cf3645360e21b835285600484016122e0565b03815f8a5af180156101ac576001925f916115cd575b5087156115be57828060801b03165b96156115af57602001516001600160a01b03165b9701966114d5565b516001600160a01b03166115a7565b60801d828060801b0316611593565b6115ee915060203d81116115f4575b6115e6818361021f565b810190611fac565b5f611584565b503d6115dc565b61155373fffd8963efd1fc6a506488495d951d5263988d2561152e565b506001600160801b039095168252909550935061024f92909150611646906001600160a01b03166020860152565b8351608091909101516001600160801b039091161015611428565b9190915f6080604051611673816101e9565b828152826020820152826040820152826060820152015280515f198101908111611028576116a09161131a565b51805190926001600160a01b039081169116811491565b60a06116e491207f0000000000000000000000000000000000000000000000000000000000000000611fbb565b50509091565b60405190608082018281106001600160401b038211176101e457604052606080838181528160208201528160408201520152565b6040519061172d60208361021f565b5f80835282815b82811061174057505050565b60209060405161174f81610204565b5f81525f838201525f604082015282828501015201611734565b906117738261026f565b611780604051918261021f565b8281528092611791601f199161026f565b01905f5b8281106117a157505050565b6020906040516117b081610204565b5f81525f838201525f604082015282828501015201611795565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b6020818303126101b1578051906001600160401b0382116101b157019080601f830112156101b15781516118278161026f565b92611835604051948561021f565b81845260208085019260051b8201019283116101b157602001905b82821061185d5750505090565b8151815260209182019101611850565b9594939290916118808761189a94611061565b151560a087015261012060c087015261012086019061093a565b84810360e0860152602080835192838152019201905f5b8181106118d3575050506001600160a01b039091166101009390930192909252565b825160020b8452602093840193909201916001016118b1565b9591936119089398979591986119006116ea565b50898861238c565b94919496855151151580611b67575b15611b55576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b156101b1575f6040518096630b0d9c0960e01b8252818381611972893089600485016117ca565b03925af19485156101ac575f95611b3b575b5080151592838614611b345785935b611aa6575b50508551926119c360208801519660405197889687958695633ac1fb4960e21b87526004870161186d565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91611a84575b50611a138151611769565b935f5b8251811015611a7d5780611a2c6001928561131a565b51611a3b82604088015161131a565b51611a4a83606089015161131a565b5190611a54610260565b92835260208301526040820152611a6b828961131a565b52611a76818861131a565b5001611a16565b5092915050565b611aa091503d805f833e611a98818361021f565b8101906117f4565b5f611a08565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af19384156101ac575f94611b15575b80611998565b611b2d9060203d60201161089b5761088d818361021f565b505f611b0f565b8093611993565b80611b4987611b4f9361021f565b80610342565b5f611984565b50505050505090611b6461171e565b91565b506001600160801b0382161515611917565b9192916001600160a01b0316908115611d0e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af19384156101ac57611c20602094611c26935f97611cfa575b50611c1a85611c098186612a37565b94611c15848383612a9f565b612a37565b92612544565b14612551565b600460405180948193630476982d60e21b83525af180156101ac57611cdb575b505b6001600160801b038116611c5b57505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051630b0d9c0960e01b8152935f938593849286928492611cbc9290916001600160a01b0316600485016117ca565b03925af180156101ac57611ccd5750565b80611b495f61024f9361021f565b611cf39060203d6020116115f4576115e6818361021f565b505f611c46565b80611b4989611d089361021f565b5f611bfa565b604051630476982d60e21b81529150602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156101ac57611d64575b50611c48565b611d7c9060203d6020116115f4576115e6818361021f565b505f611d5e565b15611d8a57565b636741e8e960e11b5f5260045ffd5b5f54811015611051575f805260205f2001905f90565b6001548110156110515760015f5260205f2001905f90565b5f54908115611e6257818151511480611e54575b611de490611d83565b5f5b828110611df257505050565b80611e00600192845161131a565b51611e17611e0d83611d99565b90549060031b1c90565b1480611e2d575b611e2790611d83565b01611de6565b50611e27611e3f82602086015161131a565b51611e4c611e0d84611daf565b149050611e1e565b506020810151518214611ddb565b5050565b15611e6d57565b63bdcc3d9760e01b5f5260045ffd5b825115611ee3578051611ed457505b8151156110515760209190910151805161024f926001600160a01b0390811691168114918215611ebd575b5050611e66565b602001516001600160a01b03161490505f80611eb6565b611ede9150612567565b611e8b565b505050565b15611ef1575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616611f2b5750505061024f9250808214611ee8565b9092919380611f9657506001600160a01b031690611f4890612651565b91813b156101b157604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611cbc565b635d0165db60e01b5f525f60045260245260445ffd5b908160209103126101b1575190565b60209061200693926040518381019182526006604082015260408152611fe260608261021f565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa9182156101ac575f92612049575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61206391925060203d6020116115f4576115e6818361021f565b905f612021565b6020815260806060612087845183602086015260a0850190610390565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156121c057602083810180519092612152916001600160a01b03168061219f575b508551606087015190949061212f90610785906001600160a01b03169260408a0193612117855191612105610240565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6121975751935b60405194858094819363b858183f60e01b83526004830161206a565b03926001600160a01b03165af180156101ac576103c5915f91612178575b509251612567565b612191915060203d6020116115f4576115e6818361021f565b5f612170565b505f93612136565b60408701516121ba916001600160a01b03848116911661267a565b5f6120d5565b5060408201516020909201516001600160a01b031690565b9094935f93610120936121f084610140810199611061565b151560a084015260020b60c083015260020b60e0820152826101008201520152565b919092835f1461229b578060020b8260020b1291825f1461229557805b921561228e57505b925b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156101b1575f8094611cbc60405197889687958694632fc7dd6b60e11b8652600486016121d8565b9050612237565b8161222f565b8060020b8260020b1391825f146122c357805b92156122bc57505b92612239565b90506122b6565b816122ae565b600f0b60016001607f1b03198114611028575f0390565b90916122ef8261014094611061565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b906123328261026f565b61233f604051918261021f565b8281528092612350601f199161026f565b0190602036910137565b6001600160801b03918216908216019190821161102857565b6001600160801b03918216908216039190821161102857565b959395949190929461239c6116ea565b965f96670de0b6b3a76400006001600160801b0385161061252a579493929190835151926123c984612328565b8a526123d484612328565b60208b01526123e284612328565b60408b01526123f084612328565b60608b0152955f955f955b858710612424575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661244f61243f896020859e9c9e015161131a565b516001600160801b038d166127b0565b98891561251e5761246a906001600160801b038b169061235a565b9a61247f906001600160801b038b1690612373565b98818d8a85519061248f9161131a565b5161249d908989898d6128f7565b92828251906124ab9161131a565b5260200151906124ba9161131a565b906124c7919060020b9052565b8b81898451906124d69161131a565b519160400151906124e69161131a565b528b81896020850151906124f99161131a565b519160600151906125099161131a565b52600101966001905b019594939291906123fb565b9a985096600190612512565b505050935050505f9190565b90601f820180921161102857565b9190820180921161102857565b1561255857565b637627529f60e01b5f5260045ffd5b80511561264c575f9160179160429084905b805182611028578661102857831161263757805190858203918083116110285786906125af846125a881612536565b101561300c565b6125bd826125a88682612544565b6125d383516125cc8685612544565b1115613049565b036125ec5750506040515f815260208101604052612579565b60405191601f81169187831560051b80858701019484860193010101905b8084106126245750508252601f01601f1916604052612579565b909260208091855181520193019061260a565b92945050506126469150612b30565b50905090565b505f90565b6001600160a01b03811161266b576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa9283156101ac575f9361278f575b5082018092116110285760205f604051938285019063095ea7b360e01b825260018060a01b03871660248701526044860152604485526126fe60648661021f565b84519082855af15f51903d81612763575b501590505b61271d57505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261024f9261275e906127588160648101610f05565b826130cd565b6130cd565b1515905061278357506127146001600160a01b0382163b15155b5f61270f565b6001612714911461277d565b6127a991935060203d6020116115f4576115e6818361021f565b915f6126bd565b808202905f198382099082808310920391808303928361271011156101b1571461280e577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca0011156101b1571461287b577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b81156128a6570490565b612888565b60020b627fffff198114611028575f0390565b60020b60010190627fffff8213627fffff1983121761102857565b9060020b9060020b0190627fffff198212627fffff83131761102857565b94939261291a6129309294612915670de0b6b3a76400008211611344565b612bb0565b908415612a1e575b6001600160a01b0316612819565b6001600160a01b038111612a10575b61296d90606090612958906001600160a01b0316612bf6565b950194612966865160020b90565b9084612e91565b61298061297b865160020b90565b612f20565b9061298a826128ab565b8160020b8360020b81135f146129ec57505050906129b591945b83156129df575160020b5b906128d9565b90156129cf578060020b8360020b126129cb5750565b9150565b8060020b8360020b136129cb5750565b516129af9060020b6128ab565b90809297935060020b13612a06575b50906129b5916129a4565b94506129b56129fb565b506001600160a01b0361293f565b90612a3190670de0b6b3a764000061289c565b90612922565b6001600160a01b038116612a4a57503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa9081156101ac575f91612a86575090565b6103c5915060203d6020116115f4576115e6818361021f565b9091906001600160a01b038116612acc57505f808080612ac094865af11590565b612ac75750565b612fa3565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612b225750565b6001600160a01b0316612f36565b90612b3f601483511015613089565b602082015160601c916017815110612b7457601781015190602b81612b6b601792602094511015613089565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116110285760011c905b838210612bd657505061024f821515611344565b9092508280156128a6578082049081018091116110285760011c90612bc2565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611612e365760018060a01b0316612c348160201b90565b80612c47612c4183613145565b60ff1690565b9160808310612e295750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612dd79060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f14612e095750905090565b6001600160a01b03612e1a846131c8565b1611612e24575090565b905090565b905081607f031b90612c59565b613125565b600291820b910b0390627fffff198212627fffff83131761102857565b60020b9060020b9081156128a657627fffff1981145f19831416611028570590565b9060020b9060020b02908160020b91820361102857565b90919015612ed5575f8260020b125f14612ec857612ec381612ebe612eb9826103c596612e3b565b6128be565b612e58565b612e7a565b612ec3816103c593612e58565b905f8160020b125f14612ef05790612ec3816103c593612e58565b81612efa916128d9565b60020b5f190190627fffff198212627fffff83131761102857612ec3816103c593612e58565b8060020b80156128a657620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561301357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561305057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b1561309057565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af115610a57575f513d61311c57506001600160a01b0381163b155b6130fc5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156130f5565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b80156101b1577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116134e25763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166134c6575b600481166134aa575b6008811661348e575b60108116613472575b60208116613456575b6040811661343a575b6080811661341e575b6101008116613402575b61020081166133e6575b61040081166133ca575b61080081166133ae575b6110008116613392575b6120008116613376575b614000811661335a575b618000811661333e575b620100008116613322575b620200008116613307575b6204000081166132ec575b62080000166132d3575b5f126132cb575b0160201c90565b5f19046132c4565b6b048a170391f7dc42444e8fa290910260801c906132bd565b6d2216e584f5fa1ea926041bedfe9890920260801c916132b3565b916e5d6af8dedb81196699c329225ee6040260801c916132a8565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161329d565b916f31be135f97d08fd981231505542fcfa60260801c91613292565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613288565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161327e565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613274565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161326a565b916ff3392b0822b70005940c7a398e4b70f30260801c91613260565b916ff987a7253ac413176f2b074cf7815e540260801c91613256565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161324c565b916ffe5dee046a99a2a811c461f1969c30530260801c91613242565b916fff2ea16466c96a3843ec78b326b528610260801c91613239565b916fff973b41fa98c081472e6896dfb254c00260801c91613230565b916fffcb9843d60f6159c9db58835c9266440260801c91613227565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161321e565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91613215565b916ffff97272373d413259a46990580e213a0260801c9161320c565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2610:19103:89:-:0;;;;;;;;;;;;;-1:-1:-1;;2610:19103:89;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;659:38:87;2610:19103:89;659:38:87;6848:35:89;2610:19103;;6932:42;2610:19103;;7030:34;2610:19103;;7112:22;2610:19103;;7171:26;;7207:40;;7257:24;;2610:19103;;;;;;;;;;;;;;7171:26;2610:19103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7207:40;2610:19103;;;;;;;;;;;;;;;;;;;;;;;;;7257:24;2610:19103;;;;;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;-1:-1:-1;2610:19103:89;;;;;-1:-1:-1;2610:19103:89","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100995780636baaa1671461009457806391dd73461461008f578063c31c9c071461008a578063c48677f414610085578063d737d0c714610080578063dc4c90d31461007b5763e3e8580c0361000e57610997565b6108f6565b6108c4565b610479565b610435565b6103c8565b61034c565b346101b15760203660031901126101b1576004356001600160401b0381116101b1576100c99036906004016102e3565b60405163bf7e214f60e01b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9182156101ac577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c9261014e915f9161017d575b506001600160a01b03163314610a62565b61015781611370565b5061016181610b10565b602081519101519061017860405192839283610bd6565b0390a1005b61019f915060203d6020116101a5575b610197818361021f565b810190610a42565b8461013d565b503d61018d565b610a57565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b038211176101e457604052565b6101b5565b60a081019081106001600160401b038211176101e457604052565b606081019081106001600160401b038211176101e457604052565b90601f801991011681019081106001600160401b038211176101e457604052565b6040519061024f60808361021f565b565b6040519061024f60c08361021f565b6040519061024f60608361021f565b6001600160401b0381116101e45760051b60200190565b9080601f830112156101b157813561029d8161026f565b926102ab604051948561021f565b81845260208085019260051b8201019283116101b157602001905b8282106102d35750505090565b81358152602091820191016102c6565b91906040838203126101b157604051906102fc826101c9565b819380356001600160401b0381116101b1578261031a918301610286565b83526020810135916001600160401b0383116101b15760209261033d9201610286565b910152565b5f9103126101b157565b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b9060206103c5928181520190610390565b90565b346101b15760203660031901126101b1576004356001600160401b0381116101b157366023820112156101b1578060040135906001600160401b0382116101b15736602483830101116101b1576104319160246104259201610e17565b604051918291826103b4565b0390f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60203660031901126101b1576004356001600160401b0381116101b157806004019060e060031982360301126101b1576104b282610f22565b5f5160206134f95f395f51905f525d60248101916104d08382610f2c565b6104d990610f41565b6104e290611370565b506104ed8382610f2c565b6104f690610f41565b6104ff90611dc7565b60a4820161050d8183610f4c565b61051991501515610f81565b60848301936105288584610f97565b9490604482019561053887610f22565b906105438688610f4c565b939091369061055192610fe4565b92369061055d92610c89565b9061056792611e7c565b61057085610f22565b91606482013592343033867f0000000000000000000000000000000000000000000000000000000000000000946105a695611f06565b6105b08486610f4c565b6105ba8688610f4c565b6105c4915061101a565b906105ce92611041565b6105d790611056565b957f00000000000000000000000000000000000000000000000000000000000000009360a088206106089086611fbb565b505099610616915088610f97565b9261062090610f22565b90610629610240565b93369061063592610fe4565b83526001600160a01b03166020830152604082015230606082015261067a907f00000000000000000000000000000000000000000000000000000000000000006120ae565b9061068487610f22565b9561068f9088610f4c565b9460c401359361069f9089610f2c565b946106a8610251565b6001600160a01b03909816885236906106c092610c89565b602087015260408601526001600160a01b031660608501526080840152366106e7916102e3565b60a0830152604051809260208201906106ff916110a4565b03601f1981018352610711908361021f565b6040516348c8949160e01b8152918290819061073090600483016103b4565b6001600160a01b039093169203815a5f948591f180156101ac57610765915f916108a2575b50602080825183010191016111c8565b91949092610791610785610785610785608089015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529190602090839060249082905afa9485156101ac5784847f309c90d7accccb1f970e0a8166ff01a08d97e31ca043803f81b2943e1c84957b97610828955f91610873575b501580610869575b80610859575b610846575b506001600160a01b039261081892509050610f22565b169560405193849333978561129a565b0390a35f5f5160206134f95f395f51905f525d6040515f8152602090f35b610851921589612212565b5f8484610802565b508160020b8160020b14156107fd565b50895115156107f7565b610895915060203d60201161089b575b61088d818361021f565b810190611286565b5f6107ef565b503d610883565b6108be91503d805f833e6108b6818361021f565b81019061114e565b5f610755565b346101b1575f3660031901126101b1576040516001600160a01b035f5160206134f95f395f51905f525c168152602090f35b346101b1575f3660031901126101b1576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b90602080835192838152019201905f5b8181106109575750505090565b825184526020938401939092019160010161094a565b6103c5916020610986835160408452604084019061093a565b92015190602081840391015261093a565b346101b1575f3660031901126101b157606060206040516109b7816101c9565b82815201526040516109c8816101c9565b604051905f5480835260208301905f805260205f20905f5b818110610a1b5761043185876109f88188038261021f565b8152610a026112d2565b602082015260405191829160208352602083019061096d565b82548452602090930192600192830192016109e0565b6001600160a01b038116036101b157565b908160209103126101b157516103c581610a31565b6040513d5f823e3d90fd5b15610a6957565b63d9a88cdb60e01b5f5260045ffd5b634e487b7160e01b5f52601160045260245ffd5b8151916001600160401b0383116101e457600160401b83116101e4578154838355808410610aea575b506020610ac79101915f5260205f2090565b5f5b838110610ad65750505050565b600190602084519401938184015501610ac9565b825f528360205f2091820191015b818110610b055750610ab5565b5f8155600101610af8565b80518051906001600160401b0382116101e457600160401b82116101e4575f54825f55808310610b93575b505f80526020017f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635f5b838110610b7f5750505050602061024f9101516001610a8c565b600190602084519401938184015501610b65565b5f80527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5639081019083015b818110610bcb5750610b3b565b5f8155600101610bbe565b9091610bed6103c59360408452604084019061093a565b91602081840391015261093a565b359061024f82610a31565b8060020b036101b157565b91908260a09103126101b157604051610c29816101e9565b80928035610c3681610a31565b82526020810135610c4681610a31565b6020830152604081013562ffffff811681036101b157608091829160408501526060810135610c7481610c06565b6060850152013591610c8583610a31565b0152565b90929192610c968161026f565b93610ca4604051958661021f565b60a06020868481520192028301928184116101b157915b838310610cc85750505050565b602060a091610cd78486610c11565b815201920191610cbb565b9080601f830112156101b1578160206103c593359101610c89565b6020818303126101b1578035906001600160401b0382116101b1570160c0818303126101b157610d2b610251565b91610d3582610bfb565b835260208201356001600160401b0381116101b15781610d56918401610ce2565b602084015260408201356040840152610d7160608301610bfb565b60608401526080820135608084015260a08201356001600160401b0381116101b157610d9d92016102e3565b60a082015290565b90602080835192838152019201905f5b818110610dc25750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610db5565b919392610e07604092606085526060850190610da5565b941515602084015260020b910152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610f1357610e5391810190610cfd565b6103c5610ecb610f05610eac610ef6610e6b8661143e565b95610e8d6020820151610e8760208a015160018060a01b031690565b90611661565b96919098610e9a826116b7565b9151919690916001600160801b031690565b60a0850151855190929188918b908e906001600160a01b0316966118ec565b6060830151919690916001600160a01b0316604084015193519093906001600160a01b031693611b79565b60405194859360208501610df0565b03601f19810183528261021f565b63f655705d60e01b5f5260045ffd5b356103c581610a31565b903590603e19813603018212156101b1570190565b6103c59036906102e3565b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019160a08202360383136101b157565b15610f8857565b63cbd130a960e01b5f5260045ffd5b903590601e19813603018212156101b157018035906001600160401b0382116101b1576020019181360383136101b157565b6001600160401b0381116101e457601f01601f191660200190565b929192610ff082610fc9565b91610ffe604051938461021f565b8294818452818301116101b1578281602093845f960137010152565b5f1981019190821161102857565b610a78565b634e487b7160e01b5f52603260045260245ffd5b91908110156110515760a0020190565b61102d565b6103c5903690610c11565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061112e5750505060a08460406103c59596015160608401526111116060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f198285030191015261096d565b909193602060a0826111436001948951611061565b0195019291016110dd565b6020818303126101b1578051906001600160401b0382116101b1570181601f820112156101b15780519061118182610fc9565b9261118f604051948561021f565b828452602083830101116101b157815f9260208093018386015e8301015290565b519081151582036101b157565b519061024f82610c06565b906060828203126101b15781516001600160401b0381116101b157820181601f820112156101b1578051906111fc8261026f565b9261120a604051948561021f565b828452602060608186019402830101918183116101b157602001925b82841061124a5750505050916103c56040611243602085016111b0565b93016111bd565b6060848303126101b157602060609160405161126581610204565b86518152828701518382015260408701516040820152815201930192611226565b908160209103126101b1576103c5906111b0565b9092610120926112ae836103c59796611061565b5f60a084015260020b60c083015260020b60e0820152816101008201520190610da5565b60405190600154808352826020810160015f5260205f20925f5b81811061130157505061024f9250038361021f565b84548352600194850194879450602090930192016112ec565b80518210156110515760209160051b010190565b1561133557565b635c974e3d60e11b5f5260045ffd5b1561134b57565b63b29d78b760e01b5f5260045ffd5b1561136157565b63d88409d360e01b5f5260045ffd5b8051515f929181151580611402575b156113f357905f915b8183106113a05750505061024f61271083111561135a565b9091936001906113e886602085016113c46113bc83835161131a565b51151561132e565b6113e2670de0b6b3a76400006113db84895161131a565b5111611344565b5161131a565b510194019190611388565b631fec674760e31b5f5260045ffd5b50602081015151821461137f565b6040519061141d826101c9565b5f6020838281520152565b1561142f57565b6342301c2360e01b5f5260045ffd5b611446611410565b50602081015190604081015160018060a01b03606083015116916040519361146d85610204565b845260208401918252604084019283526114a761149961148b611410565b94516001600160a01b031690565b92516001600160801b031690565b925f9560018060a01b037f000000000000000000000000000000000000000000000000000000000000000016935b865180518910156116185790602061151e61150c6114f68c61156e9661131a565b51805190946001600160a01b0390811691161490565b986001600160801b0316600f0b6122c9565b88156115fb576115536401000276a45b611536610260565b8b1515815292600f0b838501526001600160a01b03166040830152565b60405180948192633cf3645360e21b835285600484016122e0565b03815f8a5af180156101ac576001925f916115cd575b5087156115be57828060801b03165b96156115af57602001516001600160a01b03165b9701966114d5565b516001600160a01b03166115a7565b60801d828060801b0316611593565b6115ee915060203d81116115f4575b6115e6818361021f565b810190611fac565b5f611584565b503d6115dc565b61155373fffd8963efd1fc6a506488495d951d5263988d2561152e565b506001600160801b039095168252909550935061024f92909150611646906001600160a01b03166020860152565b8351608091909101516001600160801b039091161015611428565b9190915f6080604051611673816101e9565b828152826020820152826040820152826060820152015280515f198101908111611028576116a09161131a565b51805190926001600160a01b039081169116811491565b60a06116e491207f0000000000000000000000000000000000000000000000000000000000000000611fbb565b50509091565b60405190608082018281106001600160401b038211176101e457604052606080838181528160208201528160408201520152565b6040519061172d60208361021f565b5f80835282815b82811061174057505050565b60209060405161174f81610204565b5f81525f838201525f604082015282828501015201611734565b906117738261026f565b611780604051918261021f565b8281528092611791601f199161026f565b01905f5b8281106117a157505050565b6020906040516117b081610204565b5f81525f838201525f604082015282828501015201611795565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b6020818303126101b1578051906001600160401b0382116101b157019080601f830112156101b15781516118278161026f565b92611835604051948561021f565b81845260208085019260051b8201019283116101b157602001905b82821061185d5750505090565b8151815260209182019101611850565b9594939290916118808761189a94611061565b151560a087015261012060c087015261012086019061093a565b84810360e0860152602080835192838152019201905f5b8181106118d3575050506001600160a01b039091166101009390930192909252565b825160020b8452602093840193909201916001016118b1565b9591936119089398979591986119006116ea565b50898861238c565b94919496855151151580611b67575b15611b55576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b156101b1575f6040518096630b0d9c0960e01b8252818381611972893089600485016117ca565b03925af19485156101ac575f95611b3b575b5080151592838614611b345785935b611aa6575b50508551926119c360208801519660405197889687958695633ac1fb4960e21b87526004870161186d565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156101ac575f91611a84575b50611a138151611769565b935f5b8251811015611a7d5780611a2c6001928561131a565b51611a3b82604088015161131a565b51611a4a83606089015161131a565b5190611a54610260565b92835260208301526040820152611a6b828961131a565b52611a76818861131a565b5001611a16565b5092915050565b611aa091503d805f833e611a98818361021f565b8101906117f4565b5f611a08565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af19384156101ac575f94611b15575b80611998565b611b2d9060203d60201161089b5761088d818361021f565b505f611b0f565b8093611993565b80611b4987611b4f9361021f565b80610342565b5f611984565b50505050505090611b6461171e565b91565b506001600160801b0382161515611917565b9192916001600160a01b0316908115611d0e577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af19384156101ac57611c20602094611c26935f97611cfa575b50611c1a85611c098186612a37565b94611c15848383612a9f565b612a37565b92612544565b14612551565b600460405180948193630476982d60e21b83525af180156101ac57611cdb575b505b6001600160801b038116611c5b57505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156101b157604051630b0d9c0960e01b8152935f938593849286928492611cbc9290916001600160a01b0316600485016117ca565b03925af180156101ac57611ccd5750565b80611b495f61024f9361021f565b611cf39060203d6020116115f4576115e6818361021f565b505f611c46565b80611b4989611d089361021f565b5f611bfa565b604051630476982d60e21b81529150602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156101ac57611d64575b50611c48565b611d7c9060203d6020116115f4576115e6818361021f565b505f611d5e565b15611d8a57565b636741e8e960e11b5f5260045ffd5b5f54811015611051575f805260205f2001905f90565b6001548110156110515760015f5260205f2001905f90565b5f54908115611e6257818151511480611e54575b611de490611d83565b5f5b828110611df257505050565b80611e00600192845161131a565b51611e17611e0d83611d99565b90549060031b1c90565b1480611e2d575b611e2790611d83565b01611de6565b50611e27611e3f82602086015161131a565b51611e4c611e0d84611daf565b149050611e1e565b506020810151518214611ddb565b5050565b15611e6d57565b63bdcc3d9760e01b5f5260045ffd5b825115611ee3578051611ed457505b8151156110515760209190910151805161024f926001600160a01b0390811691168114918215611ebd575b5050611e66565b602001516001600160a01b03161490505f80611eb6565b611ede9150612567565b611e8b565b505050565b15611ef1575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616611f2b5750505061024f9250808214611ee8565b9092919380611f9657506001600160a01b031690611f4890612651565b91813b156101b157604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611cbc565b635d0165db60e01b5f525f60045260245260445ffd5b908160209103126101b1575190565b60209061200693926040518381019182526006604082015260408152611fe260608261021f565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa9182156101ac575f92612049575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61206391925060203d6020116115f4576115e6818361021f565b905f612021565b6020815260806060612087845183602086015260a0850190610390565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156121c057602083810180519092612152916001600160a01b03168061219f575b508551606087015190949061212f90610785906001600160a01b03169260408a0193612117855191612105610240565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6121975751935b60405194858094819363b858183f60e01b83526004830161206a565b03926001600160a01b03165af180156101ac576103c5915f91612178575b509251612567565b612191915060203d6020116115f4576115e6818361021f565b5f612170565b505f93612136565b60408701516121ba916001600160a01b03848116911661267a565b5f6120d5565b5060408201516020909201516001600160a01b031690565b9094935f93610120936121f084610140810199611061565b151560a084015260020b60c083015260020b60e0820152826101008201520152565b919092835f1461229b578060020b8260020b1291825f1461229557805b921561228e57505b925b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156101b1575f8094611cbc60405197889687958694632fc7dd6b60e11b8652600486016121d8565b9050612237565b8161222f565b8060020b8260020b1391825f146122c357805b92156122bc57505b92612239565b90506122b6565b816122ae565b600f0b60016001607f1b03198114611028575f0390565b90916122ef8261014094611061565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b906123328261026f565b61233f604051918261021f565b8281528092612350601f199161026f565b0190602036910137565b6001600160801b03918216908216019190821161102857565b6001600160801b03918216908216039190821161102857565b959395949190929461239c6116ea565b965f96670de0b6b3a76400006001600160801b0385161061252a579493929190835151926123c984612328565b8a526123d484612328565b60208b01526123e284612328565b60408b01526123f084612328565b60608b0152955f955f955b858710612424575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661244f61243f896020859e9c9e015161131a565b516001600160801b038d166127b0565b98891561251e5761246a906001600160801b038b169061235a565b9a61247f906001600160801b038b1690612373565b98818d8a85519061248f9161131a565b5161249d908989898d6128f7565b92828251906124ab9161131a565b5260200151906124ba9161131a565b906124c7919060020b9052565b8b81898451906124d69161131a565b519160400151906124e69161131a565b528b81896020850151906124f99161131a565b519160600151906125099161131a565b52600101966001905b019594939291906123fb565b9a985096600190612512565b505050935050505f9190565b90601f820180921161102857565b9190820180921161102857565b1561255857565b637627529f60e01b5f5260045ffd5b80511561264c575f9160179160429084905b805182611028578661102857831161263757805190858203918083116110285786906125af846125a881612536565b101561300c565b6125bd826125a88682612544565b6125d383516125cc8685612544565b1115613049565b036125ec5750506040515f815260208101604052612579565b60405191601f81169187831560051b80858701019484860193010101905b8084106126245750508252601f01601f1916604052612579565b909260208091855181520193019061260a565b92945050506126469150612b30565b50905090565b505f90565b6001600160a01b03811161266b576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa9283156101ac575f9361278f575b5082018092116110285760205f604051938285019063095ea7b360e01b825260018060a01b03871660248701526044860152604485526126fe60648661021f565b84519082855af15f51903d81612763575b501590505b61271d57505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f604484015261024f9261275e906127588160648101610f05565b826130cd565b6130cd565b1515905061278357506127146001600160a01b0382163b15155b5f61270f565b6001612714911461277d565b6127a991935060203d6020116115f4576115e6818361021f565b915f6126bd565b808202905f198382099082808310920391808303928361271011156101b1571461280e577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca0011156101b1571461287b577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b634e487b7160e01b5f52601260045260245ffd5b81156128a6570490565b612888565b60020b627fffff198114611028575f0390565b60020b60010190627fffff8213627fffff1983121761102857565b9060020b9060020b0190627fffff198212627fffff83131761102857565b94939261291a6129309294612915670de0b6b3a76400008211611344565b612bb0565b908415612a1e575b6001600160a01b0316612819565b6001600160a01b038111612a10575b61296d90606090612958906001600160a01b0316612bf6565b950194612966865160020b90565b9084612e91565b61298061297b865160020b90565b612f20565b9061298a826128ab565b8160020b8360020b81135f146129ec57505050906129b591945b83156129df575160020b5b906128d9565b90156129cf578060020b8360020b126129cb5750565b9150565b8060020b8360020b136129cb5750565b516129af9060020b6128ab565b90809297935060020b13612a06575b50906129b5916129a4565b94506129b56129fb565b506001600160a01b0361293f565b90612a3190670de0b6b3a764000061289c565b90612922565b6001600160a01b038116612a4a57503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa9081156101ac575f91612a86575090565b6103c5915060203d6020116115f4576115e6818361021f565b9091906001600160a01b038116612acc57505f808080612ac094865af11590565b612ac75750565b612fa3565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612b225750565b6001600160a01b0316612f36565b90612b3f601483511015613089565b602082015160601c916017815110612b7457601781015190602b81612b6b601792602094511015613089565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116110285760011c905b838210612bd657505061024f821515611344565b9092508280156128a6578082049081018091116110285760011c90612bc2565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611612e365760018060a01b0316612c348160201b90565b80612c47612c4183613145565b60ff1690565b9160808310612e295750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa9198101612dd79060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f14612e095750905090565b6001600160a01b03612e1a846131c8565b1611612e24575090565b905090565b905081607f031b90612c59565b613125565b600291820b910b0390627fffff198212627fffff83131761102857565b60020b9060020b9081156128a657627fffff1981145f19831416611028570590565b9060020b9060020b02908160020b91820361102857565b90919015612ed5575f8260020b125f14612ec857612ec381612ebe612eb9826103c596612e3b565b6128be565b612e58565b612e7a565b612ec3816103c593612e58565b905f8160020b125f14612ef05790612ec3816103c593612e58565b81612efa916128d9565b60020b5f190190627fffff198212627fffff83131761102857612ec3816103c593612e58565b8060020b80156128a657620d89e8050260020b90565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561301357565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561305057565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b1561309057565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af115610a57575f513d61311c57506001600160a01b0381163b155b6130fc5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b600114156130f5565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b80156101b1577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116134e25763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166134c6575b600481166134aa575b6008811661348e575b60108116613472575b60208116613456575b6040811661343a575b6080811661341e575b6101008116613402575b61020081166133e6575b61040081166133ca575b61080081166133ae575b6110008116613392575b6120008116613376575b614000811661335a575b618000811661333e575b620100008116613322575b620200008116613307575b6204000081166132ec575b62080000166132d3575b5f126132cb575b0160201c90565b5f19046132c4565b6b048a170391f7dc42444e8fa290910260801c906132bd565b6d2216e584f5fa1ea926041bedfe9890920260801c916132b3565b916e5d6af8dedb81196699c329225ee6040260801c916132a8565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161329d565b916f31be135f97d08fd981231505542fcfa60260801c91613292565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613288565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161327e565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613274565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161326a565b916ff3392b0822b70005940c7a398e4b70f30260801c91613260565b916ff987a7253ac413176f2b074cf7815e540260801c91613256565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161324c565b916ffe5dee046a99a2a811c461f1969c30530260801c91613242565b916fff2ea16466c96a3843ec78b326b528610260801c91613239565b916fff973b41fa98c081472e6896dfb254c00260801c91613230565b916fffcb9843d60f6159c9db58835c9266440260801c91613227565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161321e565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91613215565b916ffff97272373d413259a46990580e213a0260801c9161320c565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2610:19103:89:-:0;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;-1:-1:-1;;2610:19103:89;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;7792:60:89;;2610:19103;;;;;7820:18;-1:-1:-1;;;;;2610:19103:89;7792:60;;;;;;;7963:61;7792:60;7770:100;7792:60;2610:19103;7792:60;;;2610:19103;-1:-1:-1;;;;;;2610:19103:89;7778:10;:74;7770:100;:::i;:::-;7880:32;;;:::i;:::-;;2610:19103;;;:::i;:::-;;7987:16;;8005:18;;;2610:19103;7963:61;2610:19103;;7963:61;;;;;:::i;:::-;;;;2610:19103;7792:60;;;;2610:19103;7792:60;2610:19103;7792:60;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;2610:19103::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;:::o;:::-;3381:38;2610:19103;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;:::o;:::-;;;;;9256:14;2610:19103;;:::i;:::-;:::o;:::-;;;;;10535:19;2610:19103;;:::i;:::-;;;;;13856:29;2610:19103;;:::i;:::-;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2610:19103:89;;;;;;2998:55;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;;;-1:-1:-1;;2610:19103:89;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;2610:19103:89;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;2610:19103:89;;;;;;3103:39;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;-1:-1:-1;;2610:19103:89;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;8787:16;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3080:68:7;8925:23:89;;;;;;;;:::i;:::-;8900:49;;;:::i;:::-;;;;:::i;:::-;;9042:23;;;;:::i;:::-;9012:54;;;:::i;:::-;;;;:::i;:::-;9147:14;;;;;;;:::i;:::-;9139:50;;-1:-1:-1;9147:25:89;;9139:50;:::i;:::-;9256:14;;;;;;;;:::i;:::-;9272:20;;;;;;;;;:::i;:::-;9294:14;;;;;:::i;:::-;2610:19103;;;;3381:38;;;;:::i;:::-;2610:19103;;3381:38;;;;:::i;:::-;9227:82;;;;:::i;:::-;9441:20;;;:::i;:::-;9463:18;;;;2610:19103;9510:9;;9503:4;9483:10;9432:7;;9510:9;;;;:::i;:::-;9612:14;;;;:::i;:::-;9627;;;;:::i;:::-;:25;;;;:::i;:::-;9612:41;;;;:::i;:::-;9584:69;;;:::i;:::-;9749:11;;357:173:36;9147:14:89;357:173:36;;9727:53:89;;;;:::i;:::-;10026:14;;;;;;;;:::i;:::-;10073:20;;;;:::i;:::-;3381:38;;;:::i;:::-;2610:19103;;3381:38;;;;:::i;:::-;;;-1:-1:-1;;;;;2610:19103:89;;9972:227;;3381:38;9272:20;9972:227;;3381:38;9503:4;9463:18;9972:227;;3381:38;9907:302;;9948:10;9907:302;:::i;:::-;10362:16;;;;:::i;:::-;10401:14;;;;;:::i;:::-;10535:19;;;2610:19103;10586:23;;;;;:::i;:::-;3381:38;;;:::i;:::-;-1:-1:-1;;;;;2610:19103:89;;;3381:38;;2610:19103;3381:38;;;;:::i;:::-;2610:19103;10324:296;;3381:38;9272:20;10324:296;;3381:38;-1:-1:-1;;;;;2610:19103:89;9463:18;10324:296;;3381:38;9256:14;10324:296;;3381:38;2610:19103;3381:38;;;:::i;:::-;9147:14;10324:296;;3381:38;9272:20;2610:19103;10736:24;;2610:19103;10736:24;;;;;;:::i;:::-;;2610:19103;;10736:24;;;;;;;;:::i;:::-;9272:20;2610:19103;-1:-1:-1;;;10717:44:89;;2610:19103;;;;;10717:44;;2610:19103;10717:44;;;:::i;:::-;-1:-1:-1;;;;;2610:19103:89;;;;10717:44;;;-1:-1:-1;10717:44:89;;;;;;;;10848:49;10717:44;-1:-1:-1;10717:44:89;;;2610:19103;;;;;;10848:49;;;;;;:::i;:::-;11015:16;;;;10999:52;:34;11007:25;3381:38;9256:14;11015:16;;3381:38;2610:19103;;;;;;;;3381:38;-1:-1:-1;;;;;2610:19103:89;;;10999:52;9272:20;2610:19103;-1:-1:-1;;;10999:95:89;;-1:-1:-1;;;2610:19103:89;10999:95;;3381:38;2610:19103;;;;;;3381:38;;2610:19103;;10999:95;;;;;;;;;11345:130;10999:95;11345:130;10999:95;-1:-1:-1;10999:95:89;;;2610:19103;11158:17;;:38;;;2610:19103;11158:73;;;2610:19103;11154:176;;2610:19103;-1:-1:-1;;;;;;2610:19103:89;11385:16;;-1:-1:-1;11385:16:89;-1:-1:-1;11385:16:89;:::i;:::-;2610:19103;;9272:20;2610:19103;9483:10;;;;11345:130;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;;3080:68:7;9272:20:89;2610:19103;8787:16;2610:19103;;;;;11154:176;11305:13;11271:16;;11305:13;;:::i;:::-;11154:176;;;;;11158:73;2610:19103;;;;;;;11200:31;;11158:73;;:38;2610:19103;;;11179:17;;11158:38;;10999:95;;;;2610:19103;10999:95;2610:19103;10999:95;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;10717:44;;;;;;-1:-1:-1;10717:44:89;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2610:19103;;;;;;-1:-1:-1;;2610:19103:89;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;2848:69:7;2610:19103:89;;;;;;;;;;;;-1:-1:-1;;2610:19103:89;;;;;;2904:41;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2610:19103:89;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3381:38;;2610:19103;;:::i;:::-;;;;3381:38;2610:19103;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;:::o;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;-1:-1:-1;2610:19103:89;;;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::o;11887:1335::-;12000:11;-1:-1:-1;;;;;2610:19103:89;11978:10;:34;11974:89;;12108:32;;;;;;:::i;:::-;13160:55;12684:273;13160:55;2610:19103;13119:22;12235:29;;;:::i;:::-;12408:20;12389:67;12408:20;;;;2610:19103;12408:20;12430:25;;2610:19103;;;;;;;;;;12389:67;;:::i;:::-;12556:25;;;;;;;:::i;:::-;2610:19103;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;12882:29;;;;2610:19103;;12882:29;;;;;2610:19103;;;;-1:-1:-1;;;;;2610:19103:89;12684:273;;:::i;:::-;13033:29;;;2610:19103;13033:29;;;;-1:-1:-1;;;;;2610:19103:89;13064:27;;;2610:19103;;;13064:27;;2610:19103;-1:-1:-1;;;;;2610:19103:89;13119:22;;:::i;:::-;13064:27;2610:19103;13160:55;;;12408:20;13160:55;;;:::i;:::-;;2610:19103;;13160:55;;;;;;:::i;11974:89::-;12035:17;;;;;;;;3381:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3381:38:89;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3381:38:89;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3381:38:89;;;;2610:19103;;-1:-1:-1;;2610:19103:89;3381:38;;;:::o;:::-;;;;;;;:::i;:::-;2610:19103;;;;;;;:::i;:::-;3381:38;;;;;;;;;;;;;;;;-1:-1:-1;3381:38:89;;;;;;:::o;:::-;-1:-1:-1;;3381:38:89;;;;;;;;:::o;:::-;;:::i;:::-;2610:19103;;;3381:38;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2610:19103:89;;;;;3381:38;;;;;2610:19103;;3381:38;;;2610:19103;3381:38;;;;;2610:19103;;3381:38;;;;;;;;;2610:19103;;3381:38;;;2610:19103;3381:38;;;;;2610:19103;3381:38;;2610:19103;3381:38::o;:::-;;;;;;;-1:-1:-1;;;;;2610:19103:89;3381:38;;;2610:19103;3381:38;;;;;;;;;2610:19103;;3381:38;;;2610:19103;;;3381:38;;;2610:19103;;;;3381:38;2610:19103;;;;;-1:-1:-1;3381:38:89;;;;;;;;;;;;;;;;;;;;2610:19103;3381:38;;;;;;;;;2610:19103;;;;;;;;;3381:38;;;;;;;;2610:19103;3381:38;;2610:19103;3381:38;2610:19103;;3381:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;2610:19103;;3381:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3381:38:89;;;;;;;;;;;;;;;;;;;:::i;:::-;2610:19103;;;;;;;:::i;:::-;3381:38;;;;;;;;;;;;-1:-1:-1;3381:38:89;;;;;;;;2610:19103;;;;;3381:38;:::o;:::-;;2610:19103;;;;3381:38;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3381:38:89;;;;;;;;;;;;;;;;;;;;:::i;:::-;2610:19103;;;;;;;:::i;:::-;3381:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:19103;3381:38;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;2610:19103;;;;;;:::i;:::-;3381:38;;;;;;;;;;;;2610:19103;3381:38;;;2610:19103;3381:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;-1:-1:-1;3381:38:89;;;2610:19103;;;3381:38;;;2610:19103;;;3381:38;;;2610:19103;3381:38;;;;;;;;:::i;2610:19103::-;;;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;-1:-1:-1;2610:19103:89;;-1:-1:-1;2610:19103:89;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;1795:4:88;;;;:::o;:::-;;;;;;;;;1901:6;;;;:::o;:::-;;;;;;;;;2848:647;2970:16;;2610:19103:89;;;2848:647:88;3012:10;;;;:49;;2848:647;2610:19103:89;;;3120:9:88;2610:19103:89;3115:296:88;3131:10;;;;;;3439:29;;;3431:57;1901:6;3439:29;;;3431:57;:::i;3143:3::-;3174:18;;;2610:19103:89;3174:18:88;3335:21;3174:18;;;;3166:53;3174:21;:18;;;:21;:::i;:::-;2610:19103:89;3174:26:88;;3166:53;:::i;:::-;3237:64;1795:4;3245:19;:16;;;:19;:::i;:::-;2610:19103:89;3245:36:88;3237:64;:::i;:::-;3335:18;:21;:::i;:::-;2610:19103:89;1795:4:88;3143:3;2610:19103:89;3120:9:88;;;;2610:19103:89;;;;;;;;;3012:49:88;3036:18;;;;;2610:19103:89;3026:35:88;;3012:49;;2610:19103:89;;;;;;;:::i;:::-;-1:-1:-1;2610:19103:89;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;13457:603;2610:19103;;:::i;:::-;;13731:20;;;;13779:27;;;;2610:19103;;;;;;13856:29;;;2610:19103;;;13779:27;2610:19103;;;;;:::i;:::-;3381:38;;13731:20;13677:224;;3381:38;;;13779:27;13677:224;;3381:38;;;8099:24:58;2610:19103:89;;;:::i;:::-;;;-1:-1:-1;;;;;2610:19103:89;;;;;;-1:-1:-1;;;;;2610:19103:89;;;8099:24:58;8182:13;-1:-1:-1;2610:19103:89;;;;;;13652:11;2610:19103;8177:819:58;8224:3;8201:14;;2610:19103:89;;8197:25:58;;;;;8268:17;13731:20:89;8538:24:58;8384:36;8268:17;;8456:213;8268:17;;:::i;:::-;;2610:19103:89;;8268:17:58;;-1:-1:-1;;;;;2610:19103:89;;;;;448:51:35;;364:138;8384:36:58;2610:19103:89;-1:-1:-1;;;;;2610:19103:89;;;8538:24:58;:::i;:::-;8564:70;;;;8515:120;1862:10:31;8564:70:58;2610:19103:89;;:::i;:::-;;;;1862:10:31;;8515:120:58;2610:19103:89;;8515:120:58;;;3381:38:89;-1:-1:-1;;;;;2610:19103:89;13779:27;8515:120:58;;3381:38:89;;8515:120:58;13779:27:89;2610:19103;;;;;;;;8456:213:58;;;;;;;:::i;:::-;;;-1:-1:-1;8456:213:58;;;;;;;2610:19103:89;8456:213:58;-1:-1:-1;8456:213:58;;;8564:70;-1:-1:-1;8755:64:58;;;;2610:19103:89;;;;;;8755:64:58;8935:50;;;;13731:20:89;8948:17:58;2610:19103:89;-1:-1:-1;;;;;2610:19103:89;;8224:3:58;2610:19103:89;8182:13:58;;;8935:50;2610:19103:89;-1:-1:-1;;;;;2610:19103:89;8935:50:58;;8755:64;2052:83:33;;2610:19103:89;;;;;;8755:64:58;;8456:213;;;;13731:20:89;8456:213:58;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;8564:70;8515:120;2042:49:31;8564:70:58;;8197:25;-1:-1:-1;;;;;;2610:19103:89;;;1862:10:31;;8197:25:58;;-1:-1:-1;8197:25:58;-1:-1:-1;13964:89:89;;8197:25:58;;-1:-1:-1;9051:39:58;;-1:-1:-1;;;;;2610:19103:89;13731:20;9051:21:58;;3381:38:89;;9051:39:58;2610:19103:89;;13999:25;;;;;2610:19103;-1:-1:-1;;;;;2610:19103:89;;;13972:52;;13964:89;:::i;14413:437::-;;;;-1:-1:-1;2610:19103:89;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3381:38;;;;;;;;;14684:24;;;:::i;:::-;;2610:19103;;14684:24;;-1:-1:-1;;;;;2610:19103:89;;;;;14791:52;;;14413:437::o;15044:204::-;357:173:36;15188:53:89;15044:204;357:173:36;15210:11:89;15188:53;:::i;:::-;15161:80;;;15044:204;:::o;2610:19103::-;;;;3381:38;2610:19103;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2610:19103:89;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;2610:19103:89;;-1:-1:-1;2610:19103:89;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;3381:38;;2610:19103;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2610:19103:89;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;15962:1841;;;;16458:115;15962:1841;;;;;;2610:19103;;:::i;:::-;;16458:115;;;:::i;:::-;16423:150;;;16640:12;;;2610:19103;16640:23;;:40;;;15962:1841;16636:1161;;;-1:-1:-1;;;;;16767:11:89;2610:19103;;;;16767:70;;;;;2610:19103;;;;;;;;16767:70;;16820:4;;;16767:70;16820:4;;16767:70;;;;;:::i;:::-;;;;;;;;;;2610:19103;16767:70;;;16636:1161;16944:25;;;;:41;;;;;;;;;17068:131;;16944:41;17359:12;;;;17373;17290:103;17373:12;;;;2610:19103;;;;;;;;;;;;;17290:103;;16767:70;17290:103;;;:::i;:::-;;;-1:-1:-1;;;;;2610:19103:89;17290:18;-1:-1:-1;;;;;2610:19103:89;17290:103;;;;;;;2610:19103;17290:103;;;16944:41;2610:19103;17424:35;2610:19103;;17424:35;:::i;:::-;17506:9;2610:19103;17538:3;2610:19103;;17517:19;;;;;17607:11;;2610:19103;17607:11;;;:::i;:::-;2610:19103;17630:19;:16;2610:19103;17630:16;;;:19;:::i;:::-;2610:19103;17663:21;:18;2610:19103;17663:18;;;:21;:::i;:::-;2610:19103;;;;:::i;:::-;3381:38;;;17373:12;17584:102;;3381:38;2610:19103;17584:102;;3381:38;17565:121;;;;:::i;:::-;;;;;;:::i;:::-;;2610:19103;17506:9;;17517:19;;;;;;15962:1841::o;17290:103::-;;;;;;2610:19103;17290:103;;;;;;:::i;:::-;;;;;:::i;:::-;;;;17068:131;2610:19103;;-1:-1:-1;;;17117:67:89;;-1:-1:-1;;;;;17153:18:89;2610:19103;16767:70;17117:67;;2610:19103;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;17117:67;;2610:19103;;;;;;;17117:67;;;;;;;2610:19103;17117:67;;;17068:131;;;;17117:67;;;;;;;;;;;;;:::i;:::-;;;;;16944:41;;;;;16767:70;;;;;;;:::i;:::-;;;:::i;:::-;;;;16636:1161;17765:21;;;;;;;;;:::i;:::-;16636:1161;15962:1841::o;16640:40::-;-1:-1:-1;;;;;;2610:19103:89;;16667:13;;16640:40;;18149:431;;;;-1:-1:-1;;;;;2610:19103:89;;4998:58:35;;18809:24:89;;18849:11;-1:-1:-1;;;;;2610:19103:89;18849:26;;;;;2610:19103;;-1:-1:-1;;;18849:26:89;;-1:-1:-1;;;;;2610:19103:89;;18849:26;;;2610:19103;-1:-1:-1;2610:19103:89;;;-1:-1:-1;18849:26:89;;;;;;;;19124:22;19211:20;18849:26;19072:124;18849:26;;;;;18804:504;18957:40;19080;18957;;;;;:::i;:::-;19051:6;;;;;;:::i;:::-;19080:40;:::i;:::-;19124:22;;:::i;:::-;19080:66;19072:124;:::i;:::-;18849:26;2610:19103;;;;;;;;;19211:20;;;;;;;;;;18804:504;;;-1:-1:-1;;;;;2610:19103:89;;18464:110;;18149:431;;;:::o;18464:110::-;18499:11;-1:-1:-1;;;;;2610:19103:89;18499:64;;;;;2610:19103;;-1:-1:-1;;;18499:64:89;;2610:19103;18482:1;;2610:19103;;;;18482:1;;2610:19103;;18499:64;;2610:19103;;-1:-1:-1;;;;;2610:19103:89;18499:64;;;;:::i;:::-;;;;;;;;;;;18149:431;:::o;18499:64::-;;;18482:1;18499:64;;;:::i;19211:20::-;;;;;;;;;;;;;:::i;:::-;;;;;18849:26;;;;;;;:::i;:::-;;;;18804:504;2610:19103;;-1:-1:-1;;;19262:35:89;;2610:19103;-1:-1:-1;19262:35:89;;2610:19103;;19262:35;;2610:19103;;19262:11;-1:-1:-1;;;;;2610:19103:89;19262:35;;;;;;;;18804:504;;;;19262:35;;;;;;;;;;;;;:::i;:::-;;;;;2610:19103;;;;:::o;:::-;;;;;;;;;;20933:17;2610:19103;;;;;;20933:17;2610:19103;;;20933:17;2610:19103;;;20933:17;2610:19103;:::o;:::-;;;;;;;;;-1:-1:-1;2610:19103:89;;-1:-1:-1;2610:19103:89;;;-1:-1:-1;2610:19103:89;:::o;20812:817::-;20933:17;2610:19103;21047:20;;;21043:33;;21131:16;;;2610:19103;21131:42;:90;;;20812:817;21123:126;;;:::i;:::-;20933:17;21346:19;;;;;;20812:817;;;:::o;21367:3::-;21419:16;:19;2610:19103;21419:16;;;:19;:::i;:::-;2610:19103;;21442:30;;;:::i;:::-;2610:19103;;;;;;;;;21419:53;:114;;;21367:3;21390:208;;;:::i;:::-;2610:19103;21335:9;;21419:114;21476:18;21390:208;21476:21;:18;;;;;:21;:::i;:::-;2610:19103;;21501:32;;;:::i;2610:19103::-;21476:57;21419:114;;;;21131:90;-1:-1:-1;21177:18:89;;;;2610:19103;21177:44;;21131:90;;21043:33;21069:7;;:::o;2610:19103::-;;;;:::o;:::-;;;;;;;;;2892:890:58;2610:19103:89;;3015:19:58;3011:83;;2610:19103:89;;3212:14:58;;3327:31;3208:313;2610:19103:89;;;;;;;;;;3558:10:58;2610:19103:89;;3579:196:58;;-1:-1:-1;;;;;2610:19103:89;;;;;3600:55:58;;;:114;;;;3208:313;3579:196;;;:::i;3600:114::-;2610:19103:89;3694:19:58;2610:19103:89;-1:-1:-1;;;;;2610:19103:89;3659:55:58;;-1:-1:-1;3600:114:58;;;;3208:313;3477:33;;;;:::i;:::-;3208:313;;3011:83;3050:7;;;:::o;2610:19103:89:-;;;;;;:::o;:::-;;;;;;;;;;;;;5362:575:58;;;;;;;;-1:-1:-1;;;;;2610:19103:89;;;;5628:23:58;;;5620:82;5628:23;;;;;5620:82;:::i;5526:405::-;5782:13;;;;;2610:19103:89;;-1:-1:-1;;;;;;2610:19103:89;;5881:23:58;;;:::i;:::-;5850:70;;;;;;2610:19103:89;;-1:-1:-1;;;5850:70:58;;-1:-1:-1;;;;;2610:19103:89;;;5850:70:58;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;5555:1:58;;2610:19103:89;;;5555:1:58;2610:19103:89;;;;5850:70:58;2610:19103:89;;;;;5555:1:58;2610:19103:89;5555:1:58;2610:19103:89;;;;;5555:1:58;2610:19103:89;;;;;;;;;;3381:38;2610:19103;:::o;1580:996:29:-;14953:51;1580:996;1892:27;1580:996;;2610:19103:89;;14953:51:29;;;2610:19103:89;;;414:1:29;2610:19103:89;398:19:29;;2610:19103:89;;14953:51:29;;;;;;:::i;:::-;2610:19103:89;14943:62:29;;2610:19103:89;;;;;;;;;;;1892:27:29;;;;;2610:19103:89;;;;;;;;1892:27:29;;;-1:-1:-1;;;;;2610:19103:89;1892:27:29;;;;;;;-1:-1:-1;1892:27:29;;;1580:996;-1:-1:-1;;;;;;2147:423:29;;;2610:19103:89;2147:423:29;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;;14953:51;1892:27;14953:51;1892:27;;;;;;;:::i;:::-;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2610:19103:89;;;;;;;;;;;;;;;;;;;;;;;:::o;6348:1227:58:-;;;;6505:14;;2610:19103:89;6505:26:58;6501:163;;6745:20;;;;2610:19103:89;;6745:20:58;;7452:47;;-1:-1:-1;;;;;2610:19103:89;;6741:156:58;;6348:1227;-1:-1:-1;7054:14:58;;7093:16;;;2610:19103:89;7054:14:58;;7093:16;7366:34;;2610:19103:89;;-1:-1:-1;;;;;2610:19103:89;7133:18:58;;;;2610:19103:89;7005:247:58;2610:19103:89;;3381:38;;;:::i;:::-;;;;-1:-1:-1;;;;;2610:19103:89;7005:247:58;;;3381:38:89;;7005:247:58;7133:18;7005:247;;3381:38:89;-1:-1:-1;7093:16:58;7005:247;;3381:38:89;2610:19103;-1:-1:-1;;;;;2610:19103:89;;;7366:34:58;:59;;2610:19103:89;7366:59:58;;7133:18;2610:19103:89;;;;;;;;;;7452:47:58;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2610:19103:89;7452:47:58;;;;;;7528:40;7452:47;-1:-1:-1;7452:47:58;;;7366:59;7435:64;7553:14;;7528:40;:::i;7452:47::-;;;;6745:20;7452:47;6745:20;7452:47;;;;;;;:::i;:::-;;;;7366:59;;-1:-1:-1;7366:59:58;;;6741:156;6867:18;;;2610:19103:89;6867:18:58;;-1:-1:-1;;;;;2610:19103:89;;;;;6867:18:58;:::i;:::-;6741:156;;;6501:163;-1:-1:-1;6612:18:58;;;2610:19103:89;6632:20:58;;;;2610:19103:89;-1:-1:-1;;;;;2610:19103:89;;:::o;:::-;;;;-1:-1:-1;2610:19103:89;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19601:1080::-;;;;19976:514;;;;;2610:19103;;;;;;20077:30;:63;;;;;;;;20164;;;;;;19976:514;;20594:18;-1:-1:-1;;;;;2610:19103:89;;20594:80;;;;;-1:-1:-1;2610:19103:89;;20594:80;2610:19103;;;;;;;;;;;;20594:80;;;;;;:::i;20164:63::-;;;;;20077;;;;19976:514;2610:19103;;;;;;20329:30;:63;;;;;;;;20416;;;;;;19976:514;;;20416:63;;;;;20329;;;;2610:19103;;;-1:-1:-1;;;;;;2610:19103:89;;;;;;;:::o;1862:10:31:-;;;;;2610:19103:89;1862:10:31;;:::i;:::-;;;2610:19103:89;;1862:10:31;;;2610:19103:89;1862:10:31;;;;;;;2610:19103:89;1862:10:31;;;-1:-1:-1;;;;;2610:19103:89;1862:10:31;;;2610:19103:89;1862:10:31;;;;;;;-1:-1:-1;1862:10:31;;;2610:19103:89;;;1862:10:31:o;2155:4:88:-;;2610:19103:89;;;:::i;:::-;;;;;;;:::i;:::-;;;;2155:4:88;2610:19103:89;2155:4:88;2610:19103:89;;2155:4:88;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2610:19103:89;;;;;;2155:4:88;;;;;;;:::o;:::-;-1:-1:-1;;;;;2610:19103:89;;;;;;2155:4:88;;2610:19103:89;2155:4:88;;;;:::o;4465:1756::-;;;;;;;;;2610:19103:89;;:::i;:::-;4709:17:88;2610:19103:89;;1795:4:88;-1:-1:-1;;;;;2610:19103:89;;4763:32:88;4759:143;;4933:16;;;;;;;2610:19103:89;4977:25:88;;;;:::i;:::-;4967:35;;5022:23;;;:::i;:::-;5012:7;;;:33;5069:25;;;:::i;:::-;5055:11;;;:39;5120:25;;;:::i;:::-;5104:13;;;:41;5195:13;2610:19103:89;5224:9:88;2610:19103:89;5219:659:88;5235:14;;;;;;5888:293;;;;;;;;;;;5012:7;;;;5888:293;;5055:11;;;;5888:293;;5104:13;;;5888:293;;4465:1756;:::o;5251:3::-;5326:18;;;;;;;5290:73;5326:21;:18;5012:7;5326:18;;;;;;:21;:::i;:::-;2610:19103:89;-1:-1:-1;;;;;2610:19103:89;;5290:73:88;:::i;:::-;5381:14;;;5377:28;;5420:31;;-1:-1:-1;;;;;2610:19103:89;;;5420:31:88;:::i;:::-;2610:19103:89;5465:31:88;;-1:-1:-1;;;;;2610:19103:89;;;5465:31:88;:::i;:::-;5589:16;;;;;;:19;;;;:::i;:::-;2610:19103:89;5530:79:88;;;;;;;:::i;:::-;5624:7;;;;:26;;;;:::i;:::-;3381:38:89;5012:7:88;;5664;:27;;;;:::i;:::-;;;;2155:4;2610:19103:89;;2155:4:88;;;5664:27;5726:16;;;;;:19;;;;:::i;:::-;2610:19103:89;5055:11:88;;;5705;:40;;;;:::i;:::-;3381:38:89;5326:18:88;;;5012:7;5326:18;;5782;:21;;;;:::i;:::-;2610:19103:89;5104:13:88;;;5759;:44;;;;:::i;:::-;3381:38:89;2610:19103;;5251:3:88;2610:19103:89;5251:3:88;5224:9;2610:19103:89;5224:9:88;;;;;;;;5377:28;5397:8;;;;2610:19103:89;5397:8:88;;;4759:143;4857:34;;;;;;;2610:19103:89;4857:34:88;;:::o;2610:19103:89:-;;677:2:72;2610:19103:89;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;10510:597:58;2610:19103:89;;10618:16:58;10614:64;;2610:19103:89;;;;;;;;10859:101:58;2610:19103:89;;;;;;;;1229:40:73;-1:-1:-1;10866:30:58;;2610:19103:89;;3381:38;;;;;;;;;;667:12:72;;659:50;667:12;;;;:::i;:::-;:23;;659:50;:::i;:::-;719:53;727:16;;;;;:::i;719:53::-;782:63;2610:19103:89;;807:16:72;;;;:::i;:::-;-1:-1:-1;790:33:72;782:63;:::i;:::-;889:2430;2610:19103:89;;889:2430:72;;;;2610:19103:89;889:2430:72;;;;;;;10859:101:58;;889:2430:72;;;;677:2;889:2430;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;889:2430:72;;677:2;889:2430;-1:-1:-1;;889:2430:72;;;10859:101:58;;889:2430:72;;;;;;;;;;;;;;;;10866:30:58;;;;;;11071:29;10866:30;;11071:29;:::i;:::-;11054:46;;;10510:597;:::o;10614:64::-;10650:17;2610:19103:89;10650:17:58;:::o;288:164:11:-;-1:-1:-1;;;;;368:25:11;;364:50;;-1:-1:-1;;;;;2610:19103:89;;288:164:11:o;364:50::-;402:12;;;;;;;;3146:225:5;2610:19103:89;;-1:-1:-1;;;3265:39:5;;3289:4;3265:39;;;2610:19103:89;-1:-1:-1;;;;;2610:19103:89;;;;;;;3146:225:5;;2610:19103:89;;;;;;3265:39:5;;2610:19103:89;;;;3265:39:5;;;;;;;-1:-1:-1;3265:39:5;;;3146:225;2610:19103:89;;;;;;;;5199:47:5;-1:-1:-1;2610:19103:89;;5199:47:5;;;;2610:19103:89;;;;5199:47:5;;2610:19103:89;;;;;;;5199:47:5;;;2610:19103:89;;;;;;5199:47:5;;;;;;:::i;:::-;9770:199;;;;;;;-1:-1:-1;9770:199:5;;;;9985:80;;3146:225;-1:-1:-1;5261:45:5;;-1:-1:-1;5261:45:5;5257:201;;3146:225;;;:::o;5257:201::-;2610:19103:89;;-1:-1:-1;;;5199:47:5;5349:43;;;-1:-1:-1;;;;;2610:19103:89;;;5199:47:5;5349:43;;2610:19103:89;5389:1:5;2610:19103:89;;;;5434:12:5;;5349:43;;;2610:19103:89;;;;5349:43:5;2610:19103:89;5349:43:5;;;:::i;:::-;5434:12;:::i;9985:80::-;9997:15;;;-1:-1:-1;9997:15:5;;-1:-1:-1;5261:45:5;-1:-1:-1;;;;;2610:19103:89;;10015:26:5;:30;;9997:67;9985:80;;;9997:67;10063:1;5261:45;10048:16;;9997:67;;3265:39;;;;;2610:19103:89;3265:39:5;2610:19103:89;3265:39:5;;;;;;;:::i;:::-;;;;;858:4141:64;2610:19103:89;;;;-1:-1:-1;;2610:19103:89;;1464:147:64;;;;;;;;;;;;1736:19;;1901:6:88;1736:19:64;2610:19103:89;;;1837:10:64;1833:177;;2610:19103:89;2341:95:64;1901:6:88;2341:95:64;;2508:145;;;;;;2610:19103:89;;2508:145:64;;3094:82;;3480:21;2610:19103:89;858:4141:64;:::o;1833:177::-;1867:98;;1901:6:88;1867:98:64;;;1982:13;:::o;858:4141::-;2610:19103:89;;;;-1:-1:-1;;2610:19103:89;;1464:147:64;;;;;;;;;;;;1736:19;;2036:3:88;1736:19:64;2610:19103:89;;;1837:10:64;1833:177;;2610:19103:89;2341:95:64;2036:3:88;2341:95:64;;2508:145;;;;;;2610:19103:89;;2508:145:64;;3094:82;;3480:21;2610:19103:89;858:4141:64;:::o;1833:177::-;1867:98;;2036:3:88;1867:98:64;;;1982:13;:::o;2036:3:88:-;2610:19103:89;;;2036:3:88;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;2610:19103:89;;-1:-1:-1;;2036:3:88;;;;;;;:::o;:::-;2610:19103:89;;;2036:3:88;;;;;-1:-1:-1;;2036:3:88;;;;;:::o;:::-;;2610:19103:89;;;;;2036:3:88;;;;;;;;;;;;:::o;6696:1292::-;;;;6998:23;7178:75;6696:1292;;6909:53;1795:4;6917:25;;6909:53;:::i;:::-;6998:23;:::i;:::-;7035:12;;;7031:120;;6696:1292;-1:-1:-1;;;;;2610:19103:89;7178:75:88;:::i;:::-;-1:-1:-1;;;;;7267:26:88;;7263:58;;6696:1292;7412:73;;7469:15;;7348:44;;-1:-1:-1;;;;;2610:19103:89;7348:44:88;:::i;:::-;7469:15;;2036:3;;;;2610:19103:89;;;;2036:3:88;7412:73;;;:::i;:::-;7512:39;2036:3;;;2610:19103:89;;;;2036:3:88;7512:39;:::i;:::-;7577:8;;;;:::i;:::-;2610:19103:89;;;;;;7600:17:88;;7596:136;7600:17;;;7633;;;;7758:61;7633:17;7596:136;;7770:48;;;;2036:3;2610:19103:89;;2036:3:88;7770:48;7758:61;:::i;:::-;7829:153;;;;2610:19103:89;;;;;;7864:17:88;7860:40;;7829:153;6696:1292::o;7860:40::-;7883:17;-1:-1:-1;18149:431:89:o;7829:153:88:-;2610:19103:89;;;;;;7935:17:88;7931:40;;7829:153;6696:1292::o;7770:48::-;2036:3;7802:16;;2610:19103:89;;7802:16:88;:::i;7596:136::-;2610:19103:89;;;;;;;;-1:-1:-1;7667:65:88;;7596:136;;;7758:61;7596:136;;;7667:65;;-1:-1:-1;7758:61:88;7667:65;;7263:58;-1:-1:-1;;;;;;7263:58:88;;7031:120;7081:41;7080:60;7081:41;2610:19103:89;7080:60:88;:::i;:::-;7031:120;;;4633:271:35;-1:-1:-1;;;;;2610:19103:89;;4732:24:35;;4779:13;;4772:20;:::o;4728:170::-;2610:19103:89;;-1:-1:-1;;;4830:57:35;;-1:-1:-1;;;;;2610:19103:89;;;4830:57:35;;;2610:19103:89;;;;;;4830:57:35;;2610:19103:89;;;4830:57:35;;;;;;;2610:19103:89;4830:57:35;;;4823:64;;:::o;4830:57::-;;;;2610:19103:89;4830:57:35;2610:19103:89;4830:57:35;;;;;;;:::i;1472:2873::-;;;;-1:-1:-1;;;;;2610:19103:89;;1769:24:35;;1809:163;-1:-1:-1;1809:163:35;;;2085:8;1809:163;;;;2085:8;;2610:19103:89;2085:8:35;2081:127;;1765:2574;1472:2873::o;2081:127::-;2163:29;:::i;1765:2574::-;2238:1774;;;-1:-1:-1;;;2238:1774:35;;-1:-1:-1;;;;;2238:1774:35;;;;;;;;;;;;;;;;-1:-1:-1;;2238:1774:35;-1:-1:-1;2238:1774:35;;-1:-1:-1;2238:1774:35;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;-1:-1:-1;;;;;2610:19103:89;4268:28:35;:::i;1925:240:73:-;;3518:62:72;3473:2;2610:19103:89;;3526:28:72;;3518:62;:::i;:::-;3620:119;;;;;;2610:19103:89;;;;3944:27:72;2610:19103:89;;;4032:81:72;;;;2610:19103:89;;3518:62:72;2610:19103:89;;3620:119:72;2610:19103:89;;3526:28:72;;3518:62;:::i;:::-;3620:119;;;;;1925:240:73;:::o;2610:19103:89:-;;;-1:-1:-1;;;2610:19103:89;;3620:119:72;2610:19103:89;;;;3473:2:72;2610:19103:89;;;;-1:-1:-1;;;2610:19103:89;;;;;;;8270:307:88;;8359:17;8410:1;2610:19103:89;;;;;;;8410:1:88;2610:19103:89;8427:95:88;8434:10;;;;;;8539:11;;8531:39;8539:11;;;8531:39;:::i;8427:95::-;8460:10;;-1:-1:-1;8460:10:88;2036:3;;;;;;;2610:19103:89;;;;;;;;8410:1:88;2610:19103:89;8427:95:88;;;7772:4824:68;2391:66;-1:-1:-1;;1979:10:68;;-1:-1:-1;;;;;2610:19103:89;8327:79:68;8323:168;;2610:19103:89;;;;;;8521:27:68;;2610:19103:89;;2391:66:68;;8521:27;;8594:43;8608:29;;;:::i;:::-;2610:19103:89;;2391:66:68;;8594:43;8656:10;8663:3;8656:10;;8663:3;;-1:-1:-1;;;2610:19103:89;;;;8652:83:68;-1:-1:-1;;2391:66:68;2610:19103:89;;8805:196:68;;;;;;;2610:19103:89;8805:196:68;;9014;;;8805;9014;;2610:19103:89;9014:196:68;;9223;;;8805;9223;;2610:19103:89;9223:196:68;;9432;;;8805;9432;;2610:19103:89;9432:196:68;;9641;;;8805;9641;;2610:19103:89;9641:196:68;;9850;;;8805;9850;;2610:19103:89;9850:196:68;;10059;;;;8805;10059;;2610:19103:89;10059:196:68;;10268;;;;8805;10268;;2610:19103:89;10268:196:68;;10477;;;;8805;10477;;2610:19103:89;10477:196:68;;10686;;;;8805;10686;;2610:19103:89;10686:196:68;;10895;;;;8805;10895;;2610:19103:89;10895:196:68;;11104;;;;8805;11104;;2610:19103:89;11104:196:68;;11313;;;;;8805;11313;;2610:19103:89;11313:196:68;;11522:165;;;;;;11313:196;;;;;11104;;;;;10895;;;;;10686;;;;;10477;;;;;10268;2610:19103:89;10268:196:68;;;;;;10059;2610:19103:89;10059:196:68;;;;;;9850;2610:19103:89;9850:196:68;;;;;;9641;2610:19103:89;9641:196:68;;;;;;9432;2610:19103:89;9432:196:68;;;;;;9223;2610:19103:89;9223:196:68;;;;;;9014;2610:19103:89;9014:196:68;;;;;;8805;2610:19103:89;8805:196:68;;;;;;;9014;9223;9432;9641;9850;10059;10268;10477;10686;10895;11104;11313;11522:165;11732:24;2391:66;;;;;11932:62;;2610:19103:89;2391:66:68;;;11932:62;2610:19103:89;;2391:66:68;12346:39;2391:66;2610:19103:89;2391:66:68;2610:19103:89;;12416:163:68;2610:19103:89;;;;;;12416:17:68;:163;:17;;;:163;;;7772:4824;:::o;12416:163::-;-1:-1:-1;;;;;12478:26:68;;;:::i;:::-;2610:19103:89;12478:42:68;:101;;;7772:4824;:::o;12478:101::-;;;2610:19103:89;:::o;8652:83:68:-;2610:19103:89;;;8725:3:68;2610:19103:89;;8652:83:68;;;8323:168;8463:12;:::i;2610:19103:89:-;;;;;;;;;-1:-1:-1;;2610:19103:89;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;2610:19103:89;;-1:-1:-1;;2610:19103:89;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;7790:949:56:-;;;;7908:825;;;2610:19103:89;;;;7978:8:56;7974:349;2610:19103:89;;;8117:38:56;8118:18;:22;:18;;8116:54;8118:18;;:::i;:::-;:22;:::i;:::-;8117:38;:::i;:::-;8116:54;:::i;7974:349::-;8275:18;;8274:34;8275:18;;:::i;7908:825::-;2610:19103:89;;;;;8393:8:56;8389:334;2610:19103:89;;;8519:18:56;;;8518:34;8519:18;;:::i;8389:334::-;8656:18;;;;:::i;:::-;2610:19103:89;;-1:-1:-1;;2610:19103:89;;-1:-1:-1;;2610:19103:89;;;;;;;;8655:38:56;;8654:54;8655:38;;:::i;2533:168:68:-;2610:19103:89;;;1434:6:68;;;;;;;2610:19103:89;;2533:168:68;:::o;3508:1663:21:-;3741:1424;;-1:-1:-1;;;3741:1424:21;;-1:-1:-1;;;;;3741:1424:21;;;;;;;-1:-1:-1;;;3741:1424:21;;;;;;;;;2610:19103:89;3741:1424:21;2610:19103:89;3741:1424:21;-1:-1:-1;;3741:1424:21;;;;;;;;;;;;;;-1:-1:-1;3741:1424:21;;;;;;;;;;;;;4268:28:35;;;3741:1424:21;;;;;;;3508:1663;3741:1424;;-1:-1:-1;;;3741:1424:21;;-1:-1:-1;;;;;3741:1424:21;;;;;;;-1:-1:-1;3741:1424:21;;;;;;;;;;;2610:19103:89;3741:1424:21;2610:19103:89;3741:1424:21;-1:-1:-1;;3741:1424:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:35;;;3741:1424:21;;;;;;;2610:19103:89;;;;:::o;:::-;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2610:19103:89;;;;;;;;;;;;-1:-1:-1;;;2610:19103:89;;;;;;;8370:720:5;;-1:-1:-1;8507:421:5;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:5;;8942:15;;-1:-1:-1;;;;;;2610:19103:89;;8960:26:5;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:5;;;-1:-1:-1;;;;;2610:19103:89;;;;9033:40:5;2610:19103:89;;;9033:40:5;8942:68;9009:1;8994:16;;8942:68;;1793:259:62;-1:-1:-1;;;1869:177:62;;;;-1:-1:-1;;;;;1869:177:62;;;;;;;;;769:648:61;858:5;;2610:19103:89;;875:536:61;;;-1:-1:-1;;;;;875:536:61;-1:-1:-1;875:536:61;;;;;-1:-1:-1;;;;;875:536:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:648::o;3258:4054:68:-;3406:459;;;;;;;;;;1434:6;3883:35;;3879:78;;6533:763;4465:13;;4492:160;;;;;2610:19103:89;4492:160:68;;;4669:13;3406:459;4669:13;;4665:83;;3258:4054;4776:3;4766:13;;4762:83;;3258:4054;4873:3;4863:13;;4859:83;;3258:4054;4970:4;4960:14;;4956:84;;3258:4054;5068:4;5058:14;;5054:84;;3258:4054;5166:4;5156:14;;5152:84;;3258:4054;4492:160;5254:14;;5250:84;;3258:4054;5362:5;5352:15;;5348:85;;3258:4054;5461:5;5451:15;;5447:85;;3258:4054;5560:5;5550:15;;5546:85;;3258:4054;5659:5;5649:15;;5645:85;;3258:4054;5758:6;5748:16;;5744:86;;3258:4054;5858:6;5848:16;;5844:86;;3258:4054;5958:6;5948:16;;5944:86;;3258:4054;6058:6;6048:16;;6044:86;;3258:4054;6158:7;6148:17;;6144:86;;3258:4054;6258:7;6248:17;;6244:85;;3258:4054;6357:7;6347:17;;6343:83;;3258:4054;6454:7;6444:17;6440:78;;3258:4054;-1:-1:-1;;6533:763:68;;3258:4054;6533:763;5068:4;6533:763;3258:4054;:::o;6533:763::-;-1:-1:-1;;6533:763:68;;;6440:78;6485:25;2610:19103:89;;;;;;6440:78:68;;6343:83;6388:30;2610:19103:89;;;;;;6343:83:68;;6244:85;2610:19103:89;6289:32:68;2610:19103:89;;;6244:85:68;;;6144:86;2610:19103:89;6189:33:68;2610:19103:89;;;6144:86:68;;;6044;2610:19103:89;6088:34:68;2610:19103:89;;;6044:86:68;;;5944;2610:19103:89;5988:34:68;2610:19103:89;;;5944:86:68;;;5844;2610:19103:89;5888:34:68;2610:19103:89;;;5844:86:68;;;5744;2610:19103:89;5788:34:68;2610:19103:89;;;5744:86:68;;;5645:85;2610:19103:89;5688:34:68;2610:19103:89;;;5645:85:68;;;5546;2610:19103:89;5589:34:68;2610:19103:89;;;5546:85:68;;;5447;2610:19103:89;5490:34:68;2610:19103:89;;;5447:85:68;;;5348;2610:19103:89;5391:34:68;2610:19103:89;;;5348:85:68;;;5250:84;2610:19103:89;5292:34:68;2610:19103:89;;;5250:84:68;;;5152;2610:19103:89;5194:34:68;2610:19103:89;;;5152:84:68;;;5054;2610:19103:89;5096:34:68;2610:19103:89;;;5054:84:68;;;4956;2610:19103:89;4998:34:68;2610:19103:89;;;4956:84:68;;;4859:83;2610:19103:89;4900:34:68;2610:19103:89;;;4859:83:68;;;4762;2610:19103:89;4803:34:68;2610:19103:89;;;4762:83:68;;;4665;2610:19103:89;4706:34:68;2610:19103:89;;;4665:83:68;;;3879:78;3952:4;3920:20;;;1552:143:62;;;;;;;;","linkReferences":{},"immutableReferences":{"16032":[{"start":1405,"length":32}],"16734":[{"start":1498,"length":32},{"start":2315,"length":32},{"start":3609,"length":32},{"start":5299,"length":32},{"start":5824,"length":32},{"start":6438,"length":32},{"start":7054,"length":32},{"start":7261,"length":32},{"start":7465,"length":32}],"16738":[{"start":223,"length":32},{"start":865,"length":32},{"start":6608,"length":32},{"start":6845,"length":32},{"start":8763,"length":32}],"16742":[{"start":1098,"length":32},{"start":1622,"length":32}]}},"methodIdentifiers":{"getLimitOrderConfig()":"e3e8580c","msgSender()":"d737d0c7","poolManager()":"dc4c90d3","setLimitOrderConfig((uint256[],uint256[]))":"18ed2974","swapRouter()":"c31c9c07","swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":"c48677f4","unlockCallback(bytes)":"91dd7346","zoraLimitOrderBook()":"6baaa167"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"zoraLimitOrderBook_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permit2_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyV4Route\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FromAddressIsNotOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientInputCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLimitOrderConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMultiple\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPercent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyAuthority\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsafeCast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"V3RouteDoesNotConnectToV4RouteStart\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroSwapDelta\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"name\":\"LimitOrderConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct PoolKey\",\"name\":\"poolKey\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickBeforeSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickAfterSwap\",\"type\":\"int24\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"multiple\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct SwapWithLimitOrders.CreatedOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"SwapWithLimitOrdersExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getLimitOrderConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setLimitOrderConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"limitOrderConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"inputCurrency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"v3Route\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey[]\",\"name\":\"v4Route\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct SwapWithLimitOrders.SwapWithLimitOrdersParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swapWithLimitOrders\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraLimitOrderBook\",\"outputs\":[{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"oveddan\",\"details\":\"This contract uses the poolManager unlock/callback pattern to execute swaps, place limit orders based on the tick range crossed during the swap, and attempt to fill those orders in a single transaction. Users call swapWithLimitOrders() directly, which triggers the unlock callback flow. Uses Permit2 for token approvals, matching the universal-router pattern.\",\"errors\":{\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int256,int24,int24,(bytes32,uint256,uint256)[])\":{\"params\":{\"orders\":\"Array of created orders with their configuration. Only includes orders that were actually created (skipped rungs due to rounding are omitted).\"}}},\"kind\":\"dev\",\"methods\":{\"constructor\":{\"params\":{\"permit2_\":\"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)\",\"poolManager_\":\"The Uniswap V4 pool manager\",\"swapRouter_\":\"The Uniswap V3 swap router\",\"zoraLimitOrderBook_\":\"The limit order book contract\"}},\"getLimitOrderConfig()\":{\"returns\":{\"_0\":\"The current limit order configuration\"}},\"msgSender()\":{\"returns\":{\"_0\":\"The address of the message sender.\"}},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"details\":\"Only callable by zoraLimitOrderBook.authority()\",\"params\":{\"config\":\"The new limit order configuration\"}},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"params\":{\"params\":\"The swap and limit order parameters\"},\"returns\":{\"delta\":\"The balance delta from the swap\"}},\"unlockCallback(bytes)\":{\"details\":\"This function executes V4 swaps and settles coins to recipient\",\"params\":{\"data\":\"Encoded CallbackData\"},\"returns\":{\"_0\":\"Encoded UnlockResult containing coin amount and pool info\"}}},\"title\":\"SwapWithLimitOrders\",\"version\":1},\"userdoc\":{\"errors\":{\"EmptyV4Route()\":[{\"notice\":\"Error thrown when v4Route is empty\"}],\"InsufficientOutputAmount()\":[{\"notice\":\"Error thrown when final swap output is below minimum\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidLimitOrderConfig()\":[{\"notice\":\"Error thrown when config does not match canonical config\"}],\"InvalidMultiple()\":[{\"notice\":\"A multiple is \\u2264 1.0x\"}],\"InvalidPercent()\":[{\"notice\":\"A percentage is zero\"}],\"LengthMismatch()\":[{\"notice\":\"Multiples and percentages arrays have different lengths\"}],\"OnlyAuthority()\":[{\"notice\":\"Error thrown when caller is not the authority\"}],\"OnlyPoolManager()\":[{\"notice\":\"Error thrown when caller is not the pool manager\"}],\"PercentOverflow()\":[{\"notice\":\"Percentages sum exceeds 100%\"}],\"UnsafeCast()\":[{\"notice\":\"Thrown when a valude greater than type(uint160).max is cast to uint160\"}],\"ZeroSwapDelta()\":[{\"notice\":\"Error thrown when swap delta is zero\"}]},\"events\":{\"LimitOrderConfigUpdated(uint256[],uint256[])\":{\"notice\":\"Emitted when limit order config is updated\"},\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int256,int24,int24,(bytes32,uint256,uint256)[])\":{\"notice\":\"Emitted when a swap with limit order placement is executed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor\"},\"getLimitOrderConfig()\":{\"notice\":\"Returns the current limit order configuration\"},\"msgSender()\":{\"notice\":\"Returns the address of the message sender.\"},\"poolManager()\":{\"notice\":\"The Uniswap V4 pool manager\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"notice\":\"Sets the canonical limit order configuration\"},\"swapRouter()\":{\"notice\":\"The Uniswap V3 swap router\"},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"notice\":\"Executes a swap with automatic limit order placement and filling\"},\"unlockCallback(bytes)\":{\"notice\":\"Callback function called by the pool manager during unlock\"},\"zoraLimitOrderBook()\":{\"notice\":\"The limit order book contract\"}},\"notice\":\"Standalone router contract that executes swaps with automatic limit order placement and filling.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/router/SwapWithLimitOrders.sol\":\"SwapWithLimitOrders\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92\",\"dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol\":{\"keccak256\":\"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4\",\"dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol\":{\"keccak256\":\"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace\",\"dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85\",\"dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46\",\"dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7\"]},\"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol\":{\"keccak256\":\"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b\",\"dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx\"]},\"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol\":{\"keccak256\":\"0x0fc4e7de08b200a78f3cc68cebf99b3f75e7c87190ece89434b563ac5291894f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8df5d26b3ae49e596baa5e89513435b919cd874b86cf9dc9575ecd6be59bd98d\",\"dweb:/ipfs/QmW11qSa1aSpqcKH9Dha4QzxYgAvd36acmtY5GCBg1fAcN\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol\":{\"keccak256\":\"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070\",\"dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol\":{\"keccak256\":\"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7\",\"dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol\":{\"keccak256\":\"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485\",\"dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9\",\"dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol\":{\"keccak256\":\"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14\",\"dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol\":{\"keccak256\":\"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4\",\"dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x2b2ef15b8e9b1fdfd403fb771542fd90b00b1f9afa1359c1c707c67bdd1dde10\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://a982830679c4f9a09ae38fcb261e70d0be58795f5e911187538312402042b470\",\"dweb:/ipfs/QmVMnET7gFkPEXbWZGB3WeaCw5jFbxiUFzbFsSLbNNSAaa\"]},\"src/access/SimpleAccessManaged.sol\":{\"keccak256\":\"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269\",\"dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM\"]},\"src/libs/Permit2Payments.sol\":{\"keccak256\":\"0x7537454ca103a2ef94bf9cd861c465ecd6192134f8f7cc983dfc6a0310c1f39f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59aaa4f0222cf6a3b0ba24d038cfee3150e483a28fa0c62fb40f44a6ab37d97f\",\"dweb:/ipfs/QmezJ1DcomHmTjiE3qmfL1VvcU74NVR8GSC7ST4ua3euwa\"]},\"src/libs/SwapLimitOrders.sol\":{\"keccak256\":\"0x8cae687f28f2afa4b9ca021c0d8f8e3209534986e2c98036ddfe4bdc5d9b3d1b\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://873f7e137bbbcc9a56bf362525eaf122ca6912d4e20c44bebabf12f565f78b5a\",\"dweb:/ipfs/QmUfYtnhmc8vFNZaWhjYriMXR1bGg6JzdAbXpS6wMASxHM\"]},\"src/router/SwapWithLimitOrders.sol\":{\"keccak256\":\"0x3099dce672e92fba16d89a0fdbc102a18f065526fd80b440984e8f773723515a\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://85ed25ad0efec286508a79193b921ff3240fdb5eaf16086b156db98041364b9a\",\"dweb:/ipfs/QmQv1W6Caqwg4HwdR3r3oXD2FYUd1jnG3Rznu1xP4K7D3r\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IZoraLimitOrderBook","name":"zoraLimitOrderBook_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"},{"internalType":"address","name":"permit2_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EmptyV4Route"},{"inputs":[],"type":"error","name":"FromAddressIsNotOwner"},{"inputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"availableAmount","type":"uint256"}],"type":"error","name":"InsufficientInputCurrency"},{"inputs":[],"type":"error","name":"InsufficientOutputAmount"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[],"type":"error","name":"InvalidLimitOrderConfig"},{"inputs":[],"type":"error","name":"InvalidMultiple"},{"inputs":[],"type":"error","name":"InvalidPercent"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"OnlyAuthority"},{"inputs":[],"type":"error","name":"OnlyPoolManager"},{"inputs":[],"type":"error","name":"PercentOverflow"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnsafeCast"},{"inputs":[],"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart"},{"inputs":[],"type":"error","name":"ZeroSwapDelta"},{"inputs":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"percentages","type":"uint256[]","indexed":false}],"type":"event","name":"LimitOrderConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"indexed":false},{"internalType":"BalanceDelta","name":"delta","type":"int256","indexed":false},{"internalType":"int24","name":"tickBeforeSwap","type":"int24","indexed":false},{"internalType":"int24","name":"tickAfterSwap","type":"int24","indexed":false},{"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint256","name":"multiple","type":"uint256"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"indexed":false}],"type":"event","name":"SwapWithLimitOrdersExecuted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"getLimitOrderConfig","outputs":[{"internalType":"struct LimitOrderConfig","name":"","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[{"internalType":"struct LimitOrderConfig","name":"config","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimitOrderConfig"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct LimitOrderConfig","name":"limitOrderConfig","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]},{"internalType":"address","name":"inputCurrency","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"bytes","name":"v3Route","type":"bytes"},{"internalType":"struct PoolKey[]","name":"v4Route","type":"tuple[]","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"swapWithLimitOrders","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}]},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraLimitOrderBook","outputs":[{"internalType":"contract IZoraLimitOrderBook","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"constructor":{"params":{"permit2_":"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)","poolManager_":"The Uniswap V4 pool manager","swapRouter_":"The Uniswap V3 swap router","zoraLimitOrderBook_":"The limit order book contract"}},"getLimitOrderConfig()":{"returns":{"_0":"The current limit order configuration"}},"msgSender()":{"returns":{"_0":"The address of the message sender."}},"setLimitOrderConfig((uint256[],uint256[]))":{"details":"Only callable by zoraLimitOrderBook.authority()","params":{"config":"The new limit order configuration"}},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"params":{"params":"The swap and limit order parameters"},"returns":{"delta":"The balance delta from the swap"}},"unlockCallback(bytes)":{"details":"This function executes V4 swaps and settles coins to recipient","params":{"data":"Encoded CallbackData"},"returns":{"_0":"Encoded UnlockResult containing coin amount and pool info"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor"},"getLimitOrderConfig()":{"notice":"Returns the current limit order configuration"},"msgSender()":{"notice":"Returns the address of the message sender."},"poolManager()":{"notice":"The Uniswap V4 pool manager"},"setLimitOrderConfig((uint256[],uint256[]))":{"notice":"Sets the canonical limit order configuration"},"swapRouter()":{"notice":"The Uniswap V3 swap router"},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"notice":"Executes a swap with automatic limit order placement and filling"},"unlockCallback(bytes)":{"notice":"Callback function called by the pool manager during unlock"},"zoraLimitOrderBook()":{"notice":"The limit order book contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/router/SwapWithLimitOrders.sol":"SwapWithLimitOrders"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x9c9a58dd831b9bb4a0ea47d96b53c13ab9a6e4270a518ea395b1424092fd74dc","urls":["bzz-raw://d806b0c87fbcaf0cb827b51203b27f8289b13743aeadb5867fbbe041fcf87a92","dweb:/ipfs/QmfTEGiDGxKDaqBuBJ5wWJockGDrsEBZnW5S7UWrKhAxGc"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol":{"keccak256":"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c","urls":["bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4","dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol":{"keccak256":"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa","urls":["bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace","dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol":{"keccak256":"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1","urls":["bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85","dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf","urls":["bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46","dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol":{"keccak256":"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683","urls":["bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b","dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol":{"keccak256":"0x0fc4e7de08b200a78f3cc68cebf99b3f75e7c87190ece89434b563ac5291894f","urls":["bzz-raw://8df5d26b3ae49e596baa5e89513435b919cd874b86cf9dc9575ecd6be59bd98d","dweb:/ipfs/QmW11qSa1aSpqcKH9Dha4QzxYgAvd36acmtY5GCBg1fAcN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol":{"keccak256":"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d","urls":["bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070","dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol":{"keccak256":"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e","urls":["bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7","dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol":{"keccak256":"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64","urls":["bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485","dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol":{"keccak256":"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1","urls":["bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9","dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol":{"keccak256":"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326","urls":["bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14","dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol":{"keccak256":"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff","urls":["bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4","dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4"],"license":"GPL-2.0-or-later"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x2b2ef15b8e9b1fdfd403fb771542fd90b00b1f9afa1359c1c707c67bdd1dde10","urls":["bzz-raw://a982830679c4f9a09ae38fcb261e70d0be58795f5e911187538312402042b470","dweb:/ipfs/QmVMnET7gFkPEXbWZGB3WeaCw5jFbxiUFzbFsSLbNNSAaa"],"license":"ZORA-DELAYED-OSL-v1"},"src/access/SimpleAccessManaged.sol":{"keccak256":"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8","urls":["bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269","dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM"],"license":"MIT"},"src/libs/Permit2Payments.sol":{"keccak256":"0x7537454ca103a2ef94bf9cd861c465ecd6192134f8f7cc983dfc6a0310c1f39f","urls":["bzz-raw://59aaa4f0222cf6a3b0ba24d038cfee3150e483a28fa0c62fb40f44a6ab37d97f","dweb:/ipfs/QmezJ1DcomHmTjiE3qmfL1VvcU74NVR8GSC7ST4ua3euwa"],"license":"MIT"},"src/libs/SwapLimitOrders.sol":{"keccak256":"0x8cae687f28f2afa4b9ca021c0d8f8e3209534986e2c98036ddfe4bdc5d9b3d1b","urls":["bzz-raw://873f7e137bbbcc9a56bf362525eaf122ca6912d4e20c44bebabf12f565f78b5a","dweb:/ipfs/QmUfYtnhmc8vFNZaWhjYriMXR1bGg6JzdAbXpS6wMASxHM"],"license":"ZORA-DELAYED-OSL-v1"},"src/router/SwapWithLimitOrders.sol":{"keccak256":"0x3099dce672e92fba16d89a0fdbc102a18f065526fd80b440984e8f773723515a","urls":["bzz-raw://85ed25ad0efec286508a79193b921ff3240fdb5eaf16086b156db98041364b9a","dweb:/ipfs/QmQv1W6Caqwg4HwdR3r3oXD2FYUd1jnG3Rznu1xP4K7D3r"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":89}
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"contract IPoolManager"},{"name":"zoraLimitOrderBook_","type":"address","internalType":"contract IZoraLimitOrderBook"},{"name":"swapRouter_","type":"address","internalType":"contract ISwapRouter"},{"name":"permit2_","type":"address","internalType":"address"},{"name":"owner_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"acceptOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getLimitOrderConfig","inputs":[],"outputs":[{"name":"","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"stateMutability":"view"},{"type":"function","name":"msgSender","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setLimitOrderConfig","inputs":[{"name":"config","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapRouter","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISwapRouter"}],"stateMutability":"view"},{"type":"function","name":"swapWithLimitOrders","inputs":[{"name":"params","type":"tuple","internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","components":[{"name":"recipient","type":"address","internalType":"address"},{"name":"limitOrderConfig","type":"tuple","internalType":"struct LimitOrderConfig","components":[{"name":"multiples","type":"uint256[]","internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","internalType":"uint256[]"}]},{"name":"inputCurrency","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"v3Route","type":"bytes","internalType":"bytes"},{"name":"v4Route","type":"tuple[]","internalType":"struct PoolKey[]","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"delta","type":"int256","internalType":"BalanceDelta"}],"stateMutability":"payable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unlockCallback","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"zoraLimitOrderBook","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraLimitOrderBook"}],"stateMutability":"view"},{"type":"event","name":"LimitOrderConfigUpdated","inputs":[{"name":"multiples","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"percentages","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"OwnershipTransferStarted","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SwapWithLimitOrdersExecuted","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"poolKey","type":"tuple","indexed":false,"internalType":"struct PoolKey","components":[{"name":"currency0","type":"address","internalType":"Currency"},{"name":"currency1","type":"address","internalType":"Currency"},{"name":"fee","type":"uint24","internalType":"uint24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"hooks","type":"address","internalType":"contract IHooks"}]},{"name":"tickBeforeSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"tickAfterSwap","type":"int24","indexed":false,"internalType":"int24"},{"name":"amount0","type":"int128","indexed":false,"internalType":"int128"},{"name":"amount1","type":"int128","indexed":false,"internalType":"int128"},{"name":"sqrtPriceX96","type":"uint160","indexed":false,"internalType":"uint160"},{"name":"orders","type":"tuple[]","indexed":false,"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","components":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"multiple","type":"uint256","internalType":"uint256"},{"name":"percentage","type":"uint256","internalType":"uint256"}]}],"anonymous":false},{"type":"error","name":"EmptyV4Route","inputs":[]},{"type":"error","name":"InsufficientInputCurrency","inputs":[{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"availableAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"InsufficientOutputAmount","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidLimitOrderConfig","inputs":[]},{"type":"error","name":"InvalidMultiple","inputs":[]},{"type":"error","name":"InvalidPercent","inputs":[]},{"type":"error","name":"LengthMismatch","inputs":[]},{"type":"error","name":"OnlyPoolManager","inputs":[]},{"type":"error","name":"OwnableInvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"OwnableUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"}]},{"type":"error","name":"PercentOverflow","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UnsafeCast","inputs":[]},{"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart","inputs":[]},{"type":"error","name":"ZeroSwapDelta","inputs":[]}],"bytecode":{"object":"0x610100346102e157601f613a5938819003918201601f19168301916001600160401b038311848410176102e55780849260a0946040528339810103126102e1578051906001600160a01b038216908183036102e15760208101516001600160a01b038116929091908383036102e1576040820151936001600160a01b038516918286036102e157610092606085016102f9565b936001600160a01b03906100a8906080016102f9565b169081156102ce57600180546001600160a01b03199081169091555f80549182168417815560405193916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a31561028c57501561023d57156101f8576001600160a01b03169283156101b35760805260a05260c05260e05260405161374b908161030e823960805181818161076701528181610a8c01528181610f880152818161167d015281816118b101528181611af301528181611d5b01528181611e2a0152611ede015260a0518181816103e001528181611b9d01528181611c8a0152612406015260c0518181816105d801526107e3015260e0518161070a0152f35b60405162461bcd60e51b815260206004820152601660248201527f5065726d6974322063616e6e6f74206265207a65726f000000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152601960248201527f53776170526f757465722063616e6e6f74206265207a65726f000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152602160248201527f5a6f72614c696d69744f72646572426f6f6b2063616e6e6f74206265207a65726044820152606f60f81b6064820152608490fd5b62461bcd60e51b815260206004820152601a60248201527f506f6f6c4d616e616765722063616e6e6f74206265207a65726f0000000000006044820152606490fd5b631e4fbdf760e01b5f525f60045260245ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036102e15756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100e95780636baaa167146100e4578063715018a6146100df57806379ba5097146100da5780638da5cb5b146100d557806391dd7346146100d0578063c31c9c07146100cb578063c48677f4146100c6578063d737d0c7146100c1578063dc4c90d3146100bc578063e30c3978146100b7578063e3e8580c146100b25763f2fde38b0361000e57610bf8565b610b40565b610abb565b610a77565b610a45565b610607565b6105c3565b610556565b6104f7565b610472565b61040f565b6103cb565b61027f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761011d57604052565b6100ee565b60a081019081106001600160401b0382111761011d57604052565b606081019081106001600160401b0382111761011d57604052565b90601f801991011681019081106001600160401b0382111761011d57604052565b60405190610188608083610158565b565b6040519061018860c083610158565b60405190610188606083610158565b6001600160401b03811161011d5760051b60200190565b9080601f8301121561021c5781356101d6816101a8565b926101e46040519485610158565b81845260208085019260051b82010192831161021c57602001905b82821061020c5750505090565b81358152602091820191016101ff565b5f80fd5b919060408382031261021c576040519061023982610102565b819380356001600160401b03811161021c57826102579183016101bf565b83526020810135916001600160401b03831161021c5760209261027a92016101bf565b910152565b3461021c57602036600319011261021c576004356001600160401b03811161021c576102af903690600401610220565b6102b76114d3565b6102c08161153c565b5080518051906001600160401b03821161011d57600160401b821161011d576002548260025580831061037d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610369577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103518251610c80565b5190519061036460405192839283610d3b565b0390a1005b600190602084519401938184015501610319565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103b657506102ee565b5f81556001016103a9565b5f91031261021c57565b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576104276114d3565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021c575f36600319011261021c57600154336001600160a01b03909116036104e457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461021c575f36600319011261021c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061055392818152019061051e565b90565b3461021c57602036600319011261021c576004356001600160401b03811161021c573660238201121561021c578060040135906001600160401b03821161021c57366024838301011161021c576105bf9160246105b39201610f86565b60405191829182610542565b0390f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261021c576004356001600160401b03811161021c578060040160e0600319833603011261021c5761063f81611091565b5f51602061372b5f395f51905f525d602482019061065d828261109b565b610666906110b0565b61066f9061153c565b5061067a828261109b565b610683906110b0565b61068c90611fe3565b60a4830161069a81836110bb565b6106a6915015156110f0565b60848401926106b58484611106565b959060448201966106c588611091565b906106d086886110bb565b93909136906106de92611153565b9236906106ea92610de3565b906106f492612099565b6106fd86611091565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461073395612123565b61073d84866110bb565b61074786886110bb565b6107519150611189565b9061075b926111b0565b610764906111c5565b967f00000000000000000000000000000000000000000000000000000000000000009360a0892061079590866121d8565b5050986107a3915088611106565b926107ad90611091565b906107b6610179565b9336906107c292611153565b83526001600160a01b031660208301526040820152306060820152610807907f00000000000000000000000000000000000000000000000000000000000000006122cb565b9061081187611091565b9561081c90886110bb565b9460c401359361082c908961109b565b9461083561018a565b6001600160a01b039098168852369061084d92610de3565b602087015260408601526001600160a01b0316606085015260808401523661087491610220565b60a08301526040518092602082019061088c91611213565b03601f198101835261089e9083610158565b6040516348c8949160e01b815291829081906108bd9060048301610542565b6001600160a01b039093169203815a5f948591f18015610a1e576108f2915f91610a23575b506020808251830101910161134d565b925090959261091f610913610913610913608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a1e577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f60966109b194610990925f916109ef575b5015806109df575b6109cf57611091565b9360405195869560018060a01b031699339983600f0b9360801d9288611435565b0390a35f5f51602061372b5f395f51905f525d6040515f8152602090f35b6109da8a8a896123f5565b611091565b508960020b8960020b1415610987565b610a11915060203d602011610a17575b610a098183610158565b810190611421565b5f61097f565b503d6109ff565b61131f565b610a3f91503d805f833e610a378183610158565b8101906112bd565b5f6108e2565b3461021c575f36600319011261021c576040516001600160a01b035f51602061372b5f395f51905f525c168152602090f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b005750505090565b8251845260209384019390920191600101610af3565b610553916020610b2f8351604084526040840190610ae3565b920151906020818403910152610ae3565b3461021c575f36600319011261021c5760606020604051610b6081610102565b8281520152604051610b7181610102565b60405190600254808352602083019060025f5260205f20905f5b818110610bc6576105bf8587610ba381880382610158565b8152610bad61148b565b6020820152604051918291602083526020830190610b16565b8254845260209093019260019283019201610b8b565b6001600160a01b0381160361021c57565b359061018882610bdc565b3461021c57602036600319011261021c57600435610c1581610bdc565b610c1d6114d3565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161011d57600160401b821161011d5760035482600355808310610cf7575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610ce35750505050565b600190602084519401938184015501610cd6565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d305750610cab565b5f8155600101610d23565b9091610d5261055393604084526040840190610ae3565b916020818403910152610ae3565b8060020b0361021c57565b91908260a091031261021c57604051610d8381610122565b80928035610d9081610bdc565b82526020810135610da081610bdc565b6020830152604081013562ffffff8116810361021c57608091829160408501526060810135610dce81610d60565b6060850152013591610ddf83610bdc565b0152565b90929192610df0816101a8565b93610dfe6040519586610158565b60a060208684815201920283019281841161021c57915b838310610e225750505050565b602060a091610e318486610d6b565b815201920191610e15565b9080601f8301121561021c5781602061055393359101610de3565b60208183031261021c578035906001600160401b03821161021c570160c08183031261021c57610e8561018a565b91610e8f82610bed565b835260208201356001600160401b03811161021c5781610eb0918401610e3c565b602084015260408201356040840152610ecb60608301610bed565b60608401526080820135608084015260a08201356001600160401b03811161021c57610ef79201610220565b60a082015290565b90602080835192838152019201905f5b818110610f1c5750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f0f565b919594939092610f6460809460a0855260a0850190610eff565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361108257610fc291810190610e57565b610553610fce82611610565b6110746110386110626040610ffa6020880151610ff4602088015160018060a01b031690565b90611852565b9691939098611008856118a8565b9690958b878961101e885160018060801b031690565b60a0870151875190948f916001600160a01b031696611ab9565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d46565b01519160405196879560208701610f4a565b03601f198101835282610158565b63f655705d60e01b5f5260045ffd5b3561055381610bdc565b903590603e198136030182121561021c570190565b610553903690610220565b903590601e198136030182121561021c57018035906001600160401b03821161021c576020019160a082023603831361021c57565b156110f757565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561021c57018035906001600160401b03821161021c5760200191813603831361021c57565b6001600160401b03811161011d57601f01601f191660200190565b92919261115f82611138565b9161116d6040519384610158565b82948184528183011161021c578281602093845f960137010152565b5f1981019190821161119757565b610c6c565b634e487b7160e01b5f52603260045260245ffd5b91908110156111c05760a0020190565b61119c565b610553903690610d6b565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061129d5750505060a08460406105539596015160608401526112806060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b16565b909193602060a0826112b260019489516111d0565b01950192910161124c565b60208183031261021c578051906001600160401b03821161021c570181601f8201121561021c578051906112f082611138565b926112fe6040519485610158565b8284526020838301011161021c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361021c57565b519061018882610d60565b519061018882610bdc565b9060a08282031261021c5781516001600160401b03811161021c57820181601f8201121561021c57805190611381826101a8565b9261138f6040519485610158565b8284526020606081860194028301019181831161021c57602001925b8284106113e55750505050916113c36020830161132a565b916113d060408201611337565b9160806113df60608401611342565b92015190565b60608483031261021c5760206060916040516114008161013d565b865181528287015183820152604087015160408201528152019301926113ab565b9081602091031261021c576105539061132a565b939092610160959261144c866105539a99966111d0565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610eff565b60405190600354808352826020810160035f5260205f20925f5b8181106114ba57505061018892500383610158565b84548352600194850194879450602090930192016114a5565b5f546001600160a01b031633036104e457565b80518210156111c05760209160051b010190565b1561150157565b635c974e3d60e11b5f5260045ffd5b1561151757565b63b29d78b760e01b5f5260045ffd5b1561152d57565b63d88409d360e01b5f5260045ffd5b8051515f9291811515806115ce575b156115bf57905f915b81831061156c57505050610188612710831115611526565b9091936001906115b486602085016115906115888383516114e6565b5115156114fa565b6115ae670de0b6b3a76400006115a78489516114e6565b5111611510565b516114e6565b510194019190611554565b631fec674760e31b5f5260045ffd5b50602081015151821461154b565b604051906115e98261013d565b5f6040838281528260208201520152565b1561160157565b6342301c2360e01b5f5260045ffd5b6116186115dc565b50602081015190604081015160018060a01b03606083015116936040519361163f8561013d565b8452602084019182526040840194855261167961166b61165d6115dc565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561180557509160206116fe9994926117356116ea6116d48b6117509a986114e6565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b61248b565b82156117ea576401000276a4905b61171e611717610199565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124a2565b03815f8a5af1948515610a1e575f956117b7575b50600190858a156117a857828060801b03165b991561179957602001516001600160a01b03165b9601959193979092976116aa565b516001600160a01b031661178b565b60801d828060801b0316611777565b60019195506117dc9060203d81116117e3575b6117d48183610158565b8101906121c9565b9490611764565b503d6117ca565b73fffd8963efd1fc6a506488495d951d5263988d259061170c565b6001600160801b039092168952509295506101889450909250611832906001600160a01b03166020870152565b60408501528351608091909101516001600160801b0390911610156115fa565b9190915f608060405161186481610122565b828152826020820152826040820152826060820152015280515f19810190811161119757611891916114e6565b51805190926001600160a01b039081169116811491565b60a06118d591207f00000000000000000000000000000000000000000000000000000000000000006121d8565b50509091565b60405190608082018281106001600160401b0382111761011d57604052606080838181528160208201528160408201520152565b6040519061191e602083610158565b5f80835282815b82811061193157505050565b60209061193c6115dc565b82828501015201611925565b90611952826101a8565b61195f6040519182610158565b8281528092611970601f19916101a8565b01905f5b82811061198057505050565b60209061198b6115dc565b82828501015201611974565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261021c578051906001600160401b03821161021c57019080601f8301121561021c5781516119f4816101a8565b92611a026040519485610158565b81845260208085019260051b82010192831161021c57602001905b828210611a2a5750505090565b8151815260209182019101611a1d565b959493929091611a4d87611a67946111d0565b151560a087015261012060c0870152610120860190610ae3565b84810360e0860152602080835192838152019201905f5b818110611aa0575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611a7e565b959193611ad5939897959198611acd6118db565b508988612561565b94919496855151151580611d34575b15611d22576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561021c575f6040518096630b0d9c0960e01b8252818381611b3f89308960048501611997565b03925af1948515610a1e575f95611d08575b5080151592838614611d015785935b611c73575b5050855192611b9060208801519660405197889687958695633ac1fb4960e21b875260048701611a3a565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a1e575f91611c51575b50611be08151611948565b935f5b8251811015611c4a5780611bf9600192856114e6565b51611c088260408801516114e6565b51611c178360608901516114e6565b5190611c21610199565b92835260208301526040820152611c3882896114e6565b52611c4381886114e6565b5001611be3565b5092915050565b611c6d91503d805f833e611c658183610158565b8101906119c1565b5f611bd5565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a1e575f94611ce2575b80611b65565b611cfa9060203d602011610a1757610a098183610158565b505f611cdc565b8093611b60565b80611d1687611d1c93610158565b806103c1565b5f611b51565b50505050505090611d3161190f565b91565b506001600160801b0382161515611ae4565b9192916001600160a01b0316908115611edb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a1e57611ded602094611df3935f97611ec7575b50611de785611dd68186612d64565b94611de2848383612dcc565b612d64565b9261277a565b14612787565b600460405180948193630476982d60e21b83525af18015610a1e57611ea8575b505b6001600160801b038116611e2857505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051630b0d9c0960e01b8152935f938593849286928492611e899290916001600160a01b031660048501611997565b03925af18015610a1e57611e9a5750565b80611d165f61018893610158565b611ec09060203d6020116117e3576117d48183610158565b505f611e13565b80611d1689611ed593610158565b5f611dc7565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a1e57602092611f89575b50600460405180948193630476982d60e21b83525af18015610a1e57611f6a575b50611e15565b611f829060203d6020116117e3576117d48183610158565b505f611f64565b80611d165f611f9793610158565b5f611f43565b15611fa457565b636741e8e960e11b5f5260045ffd5b6002548110156111c05760025f5260205f2001905f90565b6003548110156111c05760035f5260205f2001905f90565b60025490811561207f57818151511480612071575b61200190611f9d565b5f5b82811061200f57505050565b8061201d60019284516114e6565b5161203461202a83611fb3565b90549060031b1c90565b148061204a575b61204490611f9d565b01612003565b5061204461205c8260208601516114e6565b5161206961202a84611fcb565b14905061203b565b506020810151518214611ff8565b5050565b1561208a57565b63bdcc3d9760e01b5f5260045ffd5b8251156121005780516120f157505b8151156111c057602091909101518051610188926001600160a01b03908116911681149182156120da575b5050612083565b602001516001600160a01b03161490505f806120d3565b6120fb915061279d565b6120a8565b505050565b1561210e575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616612148575050506101889250808214612105565b90929193806121b357506001600160a01b03169061216590612887565b91813b1561021c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611e89565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261021c575190565b602090612223939260405183810191825260066040820152604081526121ff606082610158565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a1e575f92612266575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61228091925060203d6020116117e3576117d48183610158565b905f61223e565b60208152608060606122a4845183602086015260a085019061051e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156123dd5760208381018051909261236f916001600160a01b0316806123bc575b508551606087015190949061234c90610913906001600160a01b03169260408a0193612334855191612322610179565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6123b45751935b60405194858094819363b858183f60e01b835260048301612287565b03926001600160a01b03165af18015610a1e57610553915f91612395575b50925161279d565b6123ae915060203d6020116117e3576117d48183610158565b5f61238d565b505f93612353565b60408701516123d7916001600160a01b0384811691166128b0565b5f6122f2565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612100577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c575f92836101449261245c946040519788968795632fc7dd6b60e11b875260048701906111d0565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a1e57611e9a5750565b600f0b60016001607f1b03198114611197575f0390565b90916124b182610140946111d0565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b60020b627fffff198114611197575f0390565b90612507826101a8565b6125146040519182610158565b8281528092612525601f19916101a8565b0190602036910137565b6001600160801b03918216908216019190821161119757565b6001600160801b03918216908216039190821161119757565b95939594919092946125716118db565b965f966001600160801b0384161561275e57606083016125af6125a86125a061259b845160020b90565b6129fa565b925160020b90565b8389612aa4565b9087156127415760020b9060020b12155b612737579493929190835151926125d6846124fd565b8a526125e1846124fd565b60208b01526125ef846124fd565b60408b01526125fd846124fd565b60608b0152955f955f955b858710612631575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661265c61264c896020859e9c9e01516114e6565b516001600160801b038d16612b33565b98891561272b57612677906001600160801b038b169061252f565b9a61268c906001600160801b038b1690612548565b98818d8a85519061269c916114e6565b516126aa908989898d612c15565b92828251906126b8916114e6565b5260200151906126c7916114e6565b906126d4919060020b9052565b8b81898451906126e3916114e6565b519160400151906126f3916114e6565b528b8189602085015190612706916114e6565b51916060015190612716916114e6565b52600101966001905b01959493929190612608565b9a98509660019061271f565b5091949350505050565b61274d612753916124ea565b60020b90565b9060020b13156125c0565b505f96508695945050505050565b90601f820180921161119757565b9190820180921161119757565b1561278e57565b637627529f60e01b5f5260045ffd5b805115612882575f9160179160429084905b805182611197578661119757831161286d57805190858203918083116111975786906127e5846127de8161276c565b101561323e565b6127f3826127de868261277a565b6128098351612802868561277a565b111561327b565b036128225750506040515f8152602081016040526127af565b60405191601f81169187831560051b80858701019484860193010101905b80841061285a5750508252601f01601f19166040526127af565b9092602080918551815201930190612840565b929450505061287c9150612e5d565b50905090565b505f90565b6001600160a01b0381116128a1576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a1e575f936129c5575b5082018092116111975760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612934606486610158565b84519082855af15f51903d81612999575b501590505b61295357505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610188926129949061298e8160648101611074565b826132ff565b6132ff565b151590506129b9575061294a6001600160a01b0382163b15155b5f612945565b600161294a91146129b3565b6129df91935060203d6020116117e3576117d48183610158565b915f6128f3565b634e487b7160e01b5f52601260045260245ffd5b8060020b8015612a1057620d89e8050260020b90565b6129e6565b60020b60010190627fffff8213627fffff1983121761119757565b9060020b9060020b0190627fffff198212627fffff83131761119757565b600291820b910b0390627fffff198212627fffff83131761119757565b60020b9060020b908115612a1057627fffff1981145f19831416611197570590565b9060020b9060020b02908160020b91820361119757565b90919015612ae8575f8260020b125f14612adb57612ad681612ad1612acc8261055396612a4e565b612a15565b612a6b565b612a8d565b612ad68161055393612a6b565b905f8160020b125f14612b035790612ad68161055393612a6b565b81612b0d91612a30565b60020b5f190190627fffff198212627fffff83131761119757612ad68161055393612a6b565b808202905f1983820990828083109203918083039283612710111561021c5714612b91577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561021c5714612bfe577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b8115612a10570490565b91949392612c39612c4f9294612c34670de0b6b3a76400008211611510565b612edd565b908415612d4b575b6001600160a01b0316612b9c565b6001600160a01b038111612d3d575b612c8c90606090612c77906001600160a01b0316612f23565b920191612c85835160020b90565b9084612aa4565b612c9a61259b835160020b90565b90612ca4826124ea565b8160020b8360020b81135f14612d165750505090612ccd612cdf92955b825160020b9085612aa4565b908315612d09575160020b5b90612a30565b9015612cf9578060020b8360020b12612cf55750565b9150565b8060020b8360020b13612cf55750565b51612cd99060020b6124ea565b90809297935060020b13612d33575b5090612ccd612cdf92612cc1565b9450612ccd612d25565b506001600160a01b03612c5e565b90612d5e90670de0b6b3a7640000612c0b565b90612c41565b6001600160a01b038116612d7757503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a1e575f91612db3575090565b610553915060203d6020116117e3576117d48183610158565b9091906001600160a01b038116612df957505f808080612ded94865af11590565b612df45750565b6131d5565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612e4f5750565b6001600160a01b0316613168565b90612e6c6014835110156132bb565b602082015160601c916017815110612ea157601781015190602b81612e986017926020945110156132bb565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111975760011c905b838210612f03575050610188821515611510565b909250828015612a10578082049081018091116111975760011c90612eef565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b0316116131635760018060a01b0316612f618160201b90565b80612f74612f6e83613377565b60ff1690565b91608083106131565750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa91981016131049060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146131365750905090565b6001600160a01b03613147846133fa565b1611613151575090565b905090565b905081607f031b90612f86565b613357565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561324557565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561328257565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b156132c257565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af11561131f575f513d61334e57506001600160a01b0381163b155b61332e5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415613327565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561021c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137145763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166136f8575b600481166136dc575b600881166136c0575b601081166136a4575b60208116613688575b6040811661366c575b60808116613650575b6101008116613634575b6102008116613618575b61040081166135fc575b61080081166135e0575b61100081166135c4575b61200081166135a8575b614000811661358c575b6180008116613570575b620100008116613554575b620200008116613539575b62040000811661351e575b6208000016613505575b5f126134fd575b0160201c90565b5f19046134f6565b6b048a170391f7dc42444e8fa290910260801c906134ef565b6d2216e584f5fa1ea926041bedfe9890920260801c916134e5565b916e5d6af8dedb81196699c329225ee6040260801c916134da565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916134cf565b916f31be135f97d08fd981231505542fcfa60260801c916134c4565b916f70d869a156d2a1b890bb3df62baf32f70260801c916134ba565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134b0565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916134a6565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161349c565b916ff3392b0822b70005940c7a398e4b70f30260801c91613492565b916ff987a7253ac413176f2b074cf7815e540260801c91613488565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161347e565b916ffe5dee046a99a2a811c461f1969c30530260801c91613474565b916fff2ea16466c96a3843ec78b326b528610260801c9161346b565b916fff973b41fa98c081472e6896dfb254c00260801c91613462565b916fffcb9843d60f6159c9db58835c9266440260801c91613459565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91613450565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91613447565b916ffff97272373d413259a46990580e213a0260801c9161343e565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2771:19105:92:-:0;;;;;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;:::i;:::-;;-1:-1:-1;;;;;2771:19105:92;;;;;;:::i;:::-;;1273:26:0;;;1269:95;;2771:19105:92;;;-1:-1:-1;;;;;;2771:19105:92;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;3052:40:0;;-1:-1:-1;3052:40:0;7441:35:92;2771:19105;;7525:42;;2771:19105;;7623:34;2771:19105;;-1:-1:-1;;;;;2771:19105:92;;7705:22;;2771:19105;;;7764:26;2771:19105;7800:40;7850:24;;7884:38;;2771:19105;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7850:24;2771:19105;;;;;;;;;;7884:38;2771:19105;;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;1269:95:0;1322:31;;;-1:-1:-1;1322:31:0;-1:-1:-1;1322:31:0;2771:19105:92;;-1:-1:-1;1322:31:0;2771:19105:92;-1:-1:-1;2771:19105:92;;;;;;-1:-1:-1;2771:19105:92;;;;;-1:-1:-1;2771:19105:92;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c806318ed2974146100e95780636baaa167146100e4578063715018a6146100df57806379ba5097146100da5780638da5cb5b146100d557806391dd7346146100d0578063c31c9c07146100cb578063c48677f4146100c6578063d737d0c7146100c1578063dc4c90d3146100bc578063e30c3978146100b7578063e3e8580c146100b25763f2fde38b0361000e57610bf8565b610b40565b610abb565b610a77565b610a45565b610607565b6105c3565b610556565b6104f7565b610472565b61040f565b6103cb565b61027f565b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761011d57604052565b6100ee565b60a081019081106001600160401b0382111761011d57604052565b606081019081106001600160401b0382111761011d57604052565b90601f801991011681019081106001600160401b0382111761011d57604052565b60405190610188608083610158565b565b6040519061018860c083610158565b60405190610188606083610158565b6001600160401b03811161011d5760051b60200190565b9080601f8301121561021c5781356101d6816101a8565b926101e46040519485610158565b81845260208085019260051b82010192831161021c57602001905b82821061020c5750505090565b81358152602091820191016101ff565b5f80fd5b919060408382031261021c576040519061023982610102565b819380356001600160401b03811161021c57826102579183016101bf565b83526020810135916001600160401b03831161021c5760209261027a92016101bf565b910152565b3461021c57602036600319011261021c576004356001600160401b03811161021c576102af903690600401610220565b6102b76114d3565b6102c08161153c565b5080518051906001600160401b03821161011d57600160401b821161011d576002548260025580831061037d575b5060025f526020017f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5f5b838110610369577fe171acf371d08508433dc4cca0f4d6dbac760999879c6a6a9e50e78a92e96b9c8560208101906103518251610c80565b5190519061036460405192839283610d3b565b0390a1005b600190602084519401938184015501610319565b60025f527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9081019083015b8181106103b657506102ee565b5f81556001016103a9565b5f91031261021c57565b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576104276114d3565b600180546001600160a01b03199081169091555f80549182168155906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461021c575f36600319011261021c57600154336001600160a01b03909116036104e457600180546001600160a01b03199081169091555f805433928116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a3005b63118cdaa760e01b5f523360045260245ffd5b3461021c575f36600319011261021c575f546040516001600160a01b039091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061055392818152019061051e565b90565b3461021c57602036600319011261021c576004356001600160401b03811161021c573660238201121561021c578060040135906001600160401b03821161021c57366024838301011161021c576105bf9160246105b39201610f86565b60405191829182610542565b0390f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b602036600319011261021c576004356001600160401b03811161021c578060040160e0600319833603011261021c5761063f81611091565b5f51602061372b5f395f51905f525d602482019061065d828261109b565b610666906110b0565b61066f9061153c565b5061067a828261109b565b610683906110b0565b61068c90611fe3565b60a4830161069a81836110bb565b6106a6915015156110f0565b60848401926106b58484611106565b959060448201966106c588611091565b906106d086886110bb565b93909136906106de92611153565b9236906106ea92610de3565b906106f492612099565b6106fd86611091565b91606482013592343033867f00000000000000000000000000000000000000000000000000000000000000009461073395612123565b61073d84866110bb565b61074786886110bb565b6107519150611189565b9061075b926111b0565b610764906111c5565b967f00000000000000000000000000000000000000000000000000000000000000009360a0892061079590866121d8565b5050986107a3915088611106565b926107ad90611091565b906107b6610179565b9336906107c292611153565b83526001600160a01b031660208301526040820152306060820152610807907f00000000000000000000000000000000000000000000000000000000000000006122cb565b9061081187611091565b9561081c90886110bb565b9460c401359361082c908961109b565b9461083561018a565b6001600160a01b039098168852369061084d92610de3565b602087015260408601526001600160a01b0316606085015260808401523661087491610220565b60a08301526040518092602082019061088c91611213565b03601f198101835261089e9083610158565b6040516348c8949160e01b815291829081906108bd9060048301610542565b6001600160a01b039093169203815a5f948591f18015610a1e576108f2915f91610a23575b506020808251830101910161134d565b925090959261091f610913610913610913608088015160018060a01b031690565b6001600160a01b031690565b6040516301ffc9a760e01b815263a0fa294b60e01b60048201529290602090849060249082905afa928315610a1e577fc77d68ff75ce0ac07f330c8270692e057af626bb1ed07c98befcaba698a84f60966109b194610990925f916109ef575b5015806109df575b6109cf57611091565b9360405195869560018060a01b031699339983600f0b9360801d9288611435565b0390a35f5f51602061372b5f395f51905f525d6040515f8152602090f35b6109da8a8a896123f5565b611091565b508960020b8960020b1415610987565b610a11915060203d602011610a17575b610a098183610158565b810190611421565b5f61097f565b503d6109ff565b61131f565b610a3f91503d805f833e610a378183610158565b8101906112bd565b5f6108e2565b3461021c575f36600319011261021c576040516001600160a01b035f51602061372b5f395f51905f525c168152602090f35b3461021c575f36600319011261021c576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461021c575f36600319011261021c576001546040516001600160a01b039091168152602090f35b90602080835192838152019201905f5b818110610b005750505090565b8251845260209384019390920191600101610af3565b610553916020610b2f8351604084526040840190610ae3565b920151906020818403910152610ae3565b3461021c575f36600319011261021c5760606020604051610b6081610102565b8281520152604051610b7181610102565b60405190600254808352602083019060025f5260205f20905f5b818110610bc6576105bf8587610ba381880382610158565b8152610bad61148b565b6020820152604051918291602083526020830190610b16565b8254845260209093019260019283019201610b8b565b6001600160a01b0381160361021c57565b359061018882610bdc565b3461021c57602036600319011261021c57600435610c1581610bdc565b610c1d6114d3565b600180546001600160a01b0319166001600160a01b039283169081179091555f8054919291909116907f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009080a3005b634e487b7160e01b5f52601160045260245ffd5b8051906001600160401b03821161011d57600160401b821161011d5760035482600355808310610cf7575b5060035f526020017fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5f5b838110610ce35750505050565b600190602084519401938184015501610cd6565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9081019083015b818110610d305750610cab565b5f8155600101610d23565b9091610d5261055393604084526040840190610ae3565b916020818403910152610ae3565b8060020b0361021c57565b91908260a091031261021c57604051610d8381610122565b80928035610d9081610bdc565b82526020810135610da081610bdc565b6020830152604081013562ffffff8116810361021c57608091829160408501526060810135610dce81610d60565b6060850152013591610ddf83610bdc565b0152565b90929192610df0816101a8565b93610dfe6040519586610158565b60a060208684815201920283019281841161021c57915b838310610e225750505050565b602060a091610e318486610d6b565b815201920191610e15565b9080601f8301121561021c5781602061055393359101610de3565b60208183031261021c578035906001600160401b03821161021c570160c08183031261021c57610e8561018a565b91610e8f82610bed565b835260208201356001600160401b03811161021c5781610eb0918401610e3c565b602084015260408201356040840152610ecb60608301610bed565b60608401526080820135608084015260a08201356001600160401b03811161021c57610ef79201610220565b60a082015290565b90602080835192838152019201905f5b818110610f1c5750505090565b9091926020606060019260408751805183528481015185840152015160408201520194019101919091610f0f565b919594939092610f6460809460a0855260a0850190610eff565b961515602084015260020b60408301526001600160a01b031660608201520152565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361108257610fc291810190610e57565b610553610fce82611610565b6110746110386110626040610ffa6020880151610ff4602088015160018060a01b031690565b90611852565b9691939098611008856118a8565b9690958b878961101e885160018060801b031690565b60a0870151875190948f916001600160a01b031696611ab9565b6060830151919990916001600160a01b03168684015193519093906001600160a01b031693611d46565b01519160405196879560208701610f4a565b03601f198101835282610158565b63f655705d60e01b5f5260045ffd5b3561055381610bdc565b903590603e198136030182121561021c570190565b610553903690610220565b903590601e198136030182121561021c57018035906001600160401b03821161021c576020019160a082023603831361021c57565b156110f757565b63cbd130a960e01b5f5260045ffd5b903590601e198136030182121561021c57018035906001600160401b03821161021c5760200191813603831361021c57565b6001600160401b03811161011d57601f01601f191660200190565b92919261115f82611138565b9161116d6040519384610158565b82948184528183011161021c578281602093845f960137010152565b5f1981019190821161119757565b610c6c565b634e487b7160e01b5f52603260045260245ffd5b91908110156111c05760a0020190565b61119c565b610553903690610d6b565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b602080825282516001600160a01b0316818301528083015160c06040840152805160e084018190529394936101008401939291909101905f5b81811061129d5750505060a08460406105539596015160608401526112806060820151608085019060018060a01b03169052565b60808101518284015201519060c0601f1982850301910152610b16565b909193602060a0826112b260019489516111d0565b01950192910161124c565b60208183031261021c578051906001600160401b03821161021c570181601f8201121561021c578051906112f082611138565b926112fe6040519485610158565b8284526020838301011161021c57815f9260208093018386015e8301015290565b6040513d5f823e3d90fd5b5190811515820361021c57565b519061018882610d60565b519061018882610bdc565b9060a08282031261021c5781516001600160401b03811161021c57820181601f8201121561021c57805190611381826101a8565b9261138f6040519485610158565b8284526020606081860194028301019181831161021c57602001925b8284106113e55750505050916113c36020830161132a565b916113d060408201611337565b9160806113df60608401611342565b92015190565b60608483031261021c5760206060916040516114008161013d565b865181528287015183820152604087015160408201528152019301926113ab565b9081602091031261021c576105539061132a565b939092610160959261144c866105539a99966111d0565b600290810b60a08701520b60c0850152600f90810b60e08501520b6101008301526001600160a01b031661012082015261014081018290520190610eff565b60405190600354808352826020810160035f5260205f20925f5b8181106114ba57505061018892500383610158565b84548352600194850194879450602090930192016114a5565b5f546001600160a01b031633036104e457565b80518210156111c05760209160051b010190565b1561150157565b635c974e3d60e11b5f5260045ffd5b1561151757565b63b29d78b760e01b5f5260045ffd5b1561152d57565b63d88409d360e01b5f5260045ffd5b8051515f9291811515806115ce575b156115bf57905f915b81831061156c57505050610188612710831115611526565b9091936001906115b486602085016115906115888383516114e6565b5115156114fa565b6115ae670de0b6b3a76400006115a78489516114e6565b5111611510565b516114e6565b510194019190611554565b631fec674760e31b5f5260045ffd5b50602081015151821461154b565b604051906115e98261013d565b5f6040838281528260208201520152565b1561160157565b6342301c2360e01b5f5260045ffd5b6116186115dc565b50602081015190604081015160018060a01b03606083015116936040519361163f8561013d565b8452602084019182526040840194855261167961166b61165d6115dc565b96516001600160a01b031690565b92516001600160801b031690565b5f937f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316939091855b875190815188101561180557509160206116fe9994926117356116ea6116d48b6117509a986114e6565b51805190956001600160a01b0390811691161490565b9b8c926001600160801b0316600f0b61248b565b82156117ea576401000276a4905b61171e611717610199565b9415158552565b600f0b838501526001600160a01b03166040830152565b60405180978192633cf3645360e21b835285600484016124a2565b03815f8a5af1948515610a1e575f956117b7575b50600190858a156117a857828060801b03165b991561179957602001516001600160a01b03165b9601959193979092976116aa565b516001600160a01b031661178b565b60801d828060801b0316611777565b60019195506117dc9060203d81116117e3575b6117d48183610158565b8101906121c9565b9490611764565b503d6117ca565b73fffd8963efd1fc6a506488495d951d5263988d259061170c565b6001600160801b039092168952509295506101889450909250611832906001600160a01b03166020870152565b60408501528351608091909101516001600160801b0390911610156115fa565b9190915f608060405161186481610122565b828152826020820152826040820152826060820152015280515f19810190811161119757611891916114e6565b51805190926001600160a01b039081169116811491565b60a06118d591207f00000000000000000000000000000000000000000000000000000000000000006121d8565b50509091565b60405190608082018281106001600160401b0382111761011d57604052606080838181528160208201528160408201520152565b6040519061191e602083610158565b5f80835282815b82811061193157505050565b60209061193c6115dc565b82828501015201611925565b90611952826101a8565b61195f6040519182610158565b8281528092611970601f19916101a8565b01905f5b82811061198057505050565b60209061198b6115dc565b82828501015201611974565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b60208183031261021c578051906001600160401b03821161021c57019080601f8301121561021c5781516119f4816101a8565b92611a026040519485610158565b81845260208085019260051b82010192831161021c57602001905b828210611a2a5750505090565b8151815260209182019101611a1d565b959493929091611a4d87611a67946111d0565b151560a087015261012060c0870152610120860190610ae3565b84810360e0860152602080835192838152019201905f5b818110611aa0575050506001600160a01b039091166101009390930192909252565b825160020b845260209384019390920191600101611a7e565b959193611ad5939897959198611acd6118db565b508988612561565b94919496855151151580611d34575b15611d22576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169416843b1561021c575f6040518096630b0d9c0960e01b8252818381611b3f89308960048501611997565b03925af1948515610a1e575f95611d08575b5080151592838614611d015785935b611c73575b5050855192611b9060208801519660405197889687958695633ac1fb4960e21b875260048701611a3a565b03916001600160801b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610a1e575f91611c51575b50611be08151611948565b935f5b8251811015611c4a5780611bf9600192856114e6565b51611c088260408801516114e6565b51611c178360608901516114e6565b5190611c21610199565b92835260208301526040820152611c3882896114e6565b52611c4381886114e6565b5001611be3565b5092915050565b611c6d91503d805f833e611c658183610158565b8101906119c1565b5f611bd5565b60405163095ea7b360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001660048201526001600160801b039190911660248201529460209186916044918391905af1938415610a1e575f94611ce2575b80611b65565b611cfa9060203d602011610a1757610a098183610158565b505f611cdc565b8093611b60565b80611d1687611d1c93610158565b806103c1565b5f611b51565b50505050505090611d3161190f565b91565b506001600160801b0382161515611ae4565b9192916001600160a01b0316908115611edb577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b03841660048201525f8160248183865af1938415610a1e57611ded602094611df3935f97611ec7575b50611de785611dd68186612d64565b94611de2848383612dcc565b612d64565b9261277a565b14612787565b600460405180948193630476982d60e21b83525af18015610a1e57611ea8575b505b6001600160801b038116611e2857505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051630b0d9c0960e01b8152935f938593849286928492611e899290916001600160a01b031660048501611997565b03925af18015610a1e57611e9a5750565b80611d165f61018893610158565b611ec09060203d6020116117e3576117d48183610158565b505f611e13565b80611d1689611ed593610158565b5f611dc7565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c57604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af1918215610a1e57602092611f89575b50600460405180948193630476982d60e21b83525af18015610a1e57611f6a575b50611e15565b611f829060203d6020116117e3576117d48183610158565b505f611f64565b80611d165f611f9793610158565b5f611f43565b15611fa457565b636741e8e960e11b5f5260045ffd5b6002548110156111c05760025f5260205f2001905f90565b6003548110156111c05760035f5260205f2001905f90565b60025490811561207f57818151511480612071575b61200190611f9d565b5f5b82811061200f57505050565b8061201d60019284516114e6565b5161203461202a83611fb3565b90549060031b1c90565b148061204a575b61204490611f9d565b01612003565b5061204461205c8260208601516114e6565b5161206961202a84611fcb565b14905061203b565b506020810151518214611ff8565b5050565b1561208a57565b63bdcc3d9760e01b5f5260045ffd5b8251156121005780516120f157505b8151156111c057602091909101518051610188926001600160a01b03908116911681149182156120da575b5050612083565b602001516001600160a01b03161490505f806120d3565b6120fb915061279d565b6120a8565b505050565b1561210e575050565b635d0165db60e01b5f5260045260245260445ffd5b909493919291906001600160a01b038616612148575050506101889250808214612105565b90929193806121b357506001600160a01b03169061216590612887565b91813b1561021c57604051631b63c28b60e11b81526001600160a01b039485166004820152908416602482015291831660448301529190921660648301525f90829081838160848101611e89565b635d0165db60e01b5f525f60045260245260445ffd5b9081602091031261021c575190565b602090612223939260405183810191825260066040820152604081526121ff606082610158565b519020906040518080968194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa918215610a1e575f92612266575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b61228091925060203d6020116117e3576117d48183610158565b905f61223e565b60208152608060606122a4845183602086015260a085019061051e565b60208501516001600160a01b03166040858101919091528501518285015293015191015290565b919091825151156123dd5760208381018051909261236f916001600160a01b0316806123bc575b508551606087015190949061234c90610913906001600160a01b03169260408a0193612334855191612322610179565b9a8b526001600160a01b0316898b0152565b60408901525f6060890152516001600160a01b031690565b6123b45751935b60405194858094819363b858183f60e01b835260048301612287565b03926001600160a01b03165af18015610a1e57610553915f91612395575b50925161279d565b6123ae915060203d6020116117e3576117d48183610158565b5f61238d565b505f93612353565b60408701516123d7916001600160a01b0384811691166128b0565b5f6122f2565b5060408201516020909201516001600160a01b031690565b9060020b9160020b828114612100577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561021c575f92836101449261245c946040519788968795632fc7dd6b60e11b875260048701906111d0565b80821360a486015260c485015260e484015281610104840152816101248401525af18015610a1e57611e9a5750565b600f0b60016001607f1b03198114611197575f0390565b90916124b182610140946111d0565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b60020b627fffff198114611197575f0390565b90612507826101a8565b6125146040519182610158565b8281528092612525601f19916101a8565b0190602036910137565b6001600160801b03918216908216019190821161119757565b6001600160801b03918216908216039190821161119757565b95939594919092946125716118db565b965f966001600160801b0384161561275e57606083016125af6125a86125a061259b845160020b90565b6129fa565b925160020b90565b8389612aa4565b9087156127415760020b9060020b12155b612737579493929190835151926125d6846124fd565b8a526125e1846124fd565b60208b01526125ef846124fd565b60408b01526125fd846124fd565b60608b0152955f955f955b858710612631575050505050505080855152806020860151528060408601515260608501515290565b9091929394959661265c61264c896020859e9c9e01516114e6565b516001600160801b038d16612b33565b98891561272b57612677906001600160801b038b169061252f565b9a61268c906001600160801b038b1690612548565b98818d8a85519061269c916114e6565b516126aa908989898d612c15565b92828251906126b8916114e6565b5260200151906126c7916114e6565b906126d4919060020b9052565b8b81898451906126e3916114e6565b519160400151906126f3916114e6565b528b8189602085015190612706916114e6565b51916060015190612716916114e6565b52600101966001905b01959493929190612608565b9a98509660019061271f565b5091949350505050565b61274d612753916124ea565b60020b90565b9060020b13156125c0565b505f96508695945050505050565b90601f820180921161119757565b9190820180921161119757565b1561278e57565b637627529f60e01b5f5260045ffd5b805115612882575f9160179160429084905b805182611197578661119757831161286d57805190858203918083116111975786906127e5846127de8161276c565b101561323e565b6127f3826127de868261277a565b6128098351612802868561277a565b111561327b565b036128225750506040515f8152602081016040526127af565b60405191601f81169187831560051b80858701019484860193010101905b80841061285a5750508252601f01601f19166040526127af565b9092602080918551815201930190612840565b929450505061287c9150612e5d565b50905090565b505f90565b6001600160a01b0381116128a1576001600160a01b031690565b63c4bd89a960e01b5f5260045ffd5b604051636eb1769f60e11b81523060048201526001600160a01b038084166024830152929390926020908490604490829086165afa928315610a1e575f936129c5575b5082018092116111975760205f604051938285019063095ea7b360e01b825260018060a01b0387166024870152604486015260448552612934606486610158565b84519082855af15f51903d81612999575b501590505b61295357505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610188926129949061298e8160648101611074565b826132ff565b6132ff565b151590506129b9575061294a6001600160a01b0382163b15155b5f612945565b600161294a91146129b3565b6129df91935060203d6020116117e3576117d48183610158565b915f6128f3565b634e487b7160e01b5f52601260045260245ffd5b8060020b8015612a1057620d89e8050260020b90565b6129e6565b60020b60010190627fffff8213627fffff1983121761119757565b9060020b9060020b0190627fffff198212627fffff83131761119757565b600291820b910b0390627fffff198212627fffff83131761119757565b60020b9060020b908115612a1057627fffff1981145f19831416611197570590565b9060020b9060020b02908160020b91820361119757565b90919015612ae8575f8260020b125f14612adb57612ad681612ad1612acc8261055396612a4e565b612a15565b612a6b565b612a8d565b612ad68161055393612a6b565b905f8160020b125f14612b035790612ad68161055393612a6b565b81612b0d91612a30565b60020b5f190190627fffff198212627fffff83131761119757612ad68161055393612a6b565b808202905f1983820990828083109203918083039283612710111561021c5714612b91577fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e9193612710910990828211900360fc1b910360041c170290565b505061271091500490565b808202905f1983820990828083109203918083039283633b9aca00111561021c5714612bfe577f88f2cfb83100cb4e69e7c79c58b316e597157d372fb9787e8e47ce423a2e9c6d93633b9aca00910990828211900360f71b910360091c170290565b5050633b9aca0091500490565b8115612a10570490565b91949392612c39612c4f9294612c34670de0b6b3a76400008211611510565b612edd565b908415612d4b575b6001600160a01b0316612b9c565b6001600160a01b038111612d3d575b612c8c90606090612c77906001600160a01b0316612f23565b920191612c85835160020b90565b9084612aa4565b612c9a61259b835160020b90565b90612ca4826124ea565b8160020b8360020b81135f14612d165750505090612ccd612cdf92955b825160020b9085612aa4565b908315612d09575160020b5b90612a30565b9015612cf9578060020b8360020b12612cf55750565b9150565b8060020b8360020b13612cf55750565b51612cd99060020b6124ea565b90809297935060020b13612d33575b5090612ccd612cdf92612cc1565b9450612ccd612d25565b506001600160a01b03612c5e565b90612d5e90670de0b6b3a7640000612c0b565b90612c41565b6001600160a01b038116612d7757503190565b6040516370a0823160e01b81526001600160a01b0392831660048201529160209183916024918391165afa908115610a1e575f91612db3575090565b610553915060203d6020116117e3576117d48183610158565b9091906001600160a01b038116612df957505f808080612ded94865af11590565b612df45750565b6131d5565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d11600185511416171692828152826020820152015215612e4f5750565b6001600160a01b0316613168565b90612e6c6014835110156132bb565b602082015160601c916017815110612ea157601781015190602b81612e986017926020945110156132bb565b01015160601c91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b9081600181018082116111975760011c905b838210612f03575050610188821515611510565b909250828015612a10578082049081018091116111975760011c90612eef565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b0316116131635760018060a01b0316612f618160201b90565b80612f74612f6e83613377565b60ff1690565b91608083106131565750607e1982011c905b607f190160401b90800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c800260cd1c6604000000000000169d60cc1c6608000000000000169c60cb1c6610000000000000169b60ca1c6620000000000000169a60c91c6640000000000000169960c81c66800000000000001698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c161717171717171717171717171717693627a301d71055774c85026f028f6481ab7f045a5af012a19d003aa91981016131049060801d90565b60020b906fdb2df09e81959a81455e260799a0632f0160801d60020b918260020b8260020b145f146131365750905090565b6001600160a01b03613147846133fa565b1611613151575090565b905090565b905081607f031b90612f86565b613357565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b1561324557565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561328257565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b156132c257565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b905f602091828151910182855af11561131f575f513d61334e57506001600160a01b0381163b155b61332e5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415613327565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b801561021c577f0706060506020500060203020504000106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be6001600160801b03841160071b84811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b60020b908160ff1d82810118620d89e881116137145763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b1891600281166136f8575b600481166136dc575b600881166136c0575b601081166136a4575b60208116613688575b6040811661366c575b60808116613650575b6101008116613634575b6102008116613618575b61040081166135fc575b61080081166135e0575b61100081166135c4575b61200081166135a8575b614000811661358c575b6180008116613570575b620100008116613554575b620200008116613539575b62040000811661351e575b6208000016613505575b5f126134fd575b0160201c90565b5f19046134f6565b6b048a170391f7dc42444e8fa290910260801c906134ef565b6d2216e584f5fa1ea926041bedfe9890920260801c916134e5565b916e5d6af8dedb81196699c329225ee6040260801c916134da565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916134cf565b916f31be135f97d08fd981231505542fcfa60260801c916134c4565b916f70d869a156d2a1b890bb3df62baf32f70260801c916134ba565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916134b0565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916134a6565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161349c565b916ff3392b0822b70005940c7a398e4b70f30260801c91613492565b916ff987a7253ac413176f2b074cf7815e540260801c91613488565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161347e565b916ffe5dee046a99a2a811c461f1969c30530260801c91613474565b916fff2ea16466c96a3843ec78b326b528610260801c9161346b565b916fff973b41fa98c081472e6896dfb254c00260801c91613462565b916fffcb9843d60f6159c9db58835c9266440260801c91613459565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91613450565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91613447565b916ffff97272373d413259a46990580e213a0260801c9161343e565b826345c3193d60e11b5f5260020b60045260245ffdfe83af7c0041fe8b1e39cbe562b7b80186768e34955d84dc69120d42fd8d1d31b8","sourceMap":"2771:19105:92:-:0;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;:::o;:::-;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;:::o;:::-;3690:38;2771:19105;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;:::o;:::-;;;;;9776:14;2771:19105;;:::i;:::-;:::o;:::-;;;;;11055:19;2771:19105;;:::i;:::-;;;;;14669:29;2771:19105;;:::i;:::-;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;-1:-1:-1;;2771:19105:92;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;8400:32:92;;;:::i;:::-;;2771:19105;;;;;-1:-1:-1;;;;;2771:19105:92;;;;-1:-1:-1;;;2771:19105:92;;;;8442:26;2771:19105;;8442:26;2771:19105;;;;;;;-1:-1:-1;8442:26:92;2771:19105;;;;;-1:-1:-1;2771:19105:92;;;;;;8483:61;2771:19105;;;;;;;;;:::i;:::-;8507:16;8525:18;;2771:19105;8483:61;2771:19105;;8483:61;;;;;:::i;:::-;;;;2771:19105;;;;;;;;;;;;;;;;;;8442:26;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;:::o;:::-;;;;;;-1:-1:-1;;2771:19105:92;;;;;;3178:55;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;1500:62:0;;:::i;:::-;2771:19105:92;;;-1:-1:-1;;;;;;2771:19105:92;;;;;;-1:-1:-1;2771:19105:92;;;;;;;-1:-1:-1;;;;;;2771:19105:92;3052:40:0;-1:-1:-1;;3052:40:0;2771:19105:92;;;;;;;-1:-1:-1;;2771:19105:92;;;;;;735:10:7;-1:-1:-1;;;;;2771:19105:92;;;2339:24:1;2335:96;;2771:19105:92;;;-1:-1:-1;;;;;;2771:19105:92;;;;;;-1:-1:-1;2771:19105:92;;735:10:7;2771:19105:92;;;;;;;-1:-1:-1;;;;;2771:19105:92;;3052:40:0;;-1:-1:-1;3052:40:0;2771:19105:92;2335:96:1;2386:34;;;2771:19105:92;2386:34:1;735:10:7;2771:19105:92;;;;2386:34:1;2771:19105:92;;;;;;-1:-1:-1;;2771:19105:92;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;-1:-1:-1;;2771:19105:92;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;-1:-1:-1;;2771:19105:92;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;;;3283:39;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;9307:16;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;3080:68:8;9445:23:92;;;;;;;;:::i;:::-;9420:49;;;:::i;:::-;;;;:::i;:::-;;9562:23;;;;:::i;:::-;9532:54;;;:::i;:::-;;;;:::i;:::-;9667:14;;;;;;;:::i;:::-;9659:50;;-1:-1:-1;9667:25:92;;9659:50;:::i;:::-;9776:14;;;;;;;;:::i;:::-;9792:20;;;;;;;;;:::i;:::-;9814:14;;;;;:::i;:::-;2771:19105;;;;3690:38;;;;:::i;:::-;2771:19105;;3690:38;;;;:::i;:::-;9747:82;;;;:::i;:::-;9961:20;;;:::i;:::-;9983:18;;;;2771:19105;10030:9;;10023:4;10003:10;9952:7;;10030:9;;;;:::i;:::-;10132:14;;;;:::i;:::-;10147;;;;:::i;:::-;:25;;;;:::i;:::-;10132:41;;;;:::i;:::-;10104:69;;;:::i;:::-;10269:11;;357:173:37;9667:14:92;357:173:37;;10247:53:92;;;;:::i;:::-;10546:14;;;;;;;;:::i;:::-;10593:20;;;;:::i;:::-;3690:38;;;:::i;:::-;2771:19105;;3690:38;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19105:92;;10492:227;;3690:38;9792:20;10492:227;;3690:38;10023:4;9983:18;10492:227;;3690:38;10427:302;;10468:10;10427:302;:::i;:::-;10882:16;;;;:::i;:::-;10921:14;;;;;:::i;:::-;11055:19;;;2771:19105;11106:23;;;;;:::i;:::-;3690:38;;;:::i;:::-;-1:-1:-1;;;;;2771:19105:92;;;3690:38;;2771:19105;3690:38;;;;:::i;:::-;2771:19105;10844:296;;3690:38;9792:20;10844:296;;3690:38;-1:-1:-1;;;;;2771:19105:92;9983:18;10844:296;;3690:38;9776:14;10844:296;;3690:38;2771:19105;3690:38;;;:::i;:::-;9667:14;10844:296;;3690:38;9792:20;2771:19105;11256:24;;2771:19105;11256:24;;;;;;:::i;:::-;;2771:19105;;11256:24;;;;;;;;:::i;:::-;9792:20;2771:19105;-1:-1:-1;;;11237:44:92;;2771:19105;;;;;11237:44;;2771:19105;11237:44;;;:::i;:::-;-1:-1:-1;;;;;2771:19105:92;;;;11237:44;;;-1:-1:-1;11237:44:92;;;;;;;;11420:106;11237:44;-1:-1:-1;11237:44:92;;;2771:19105;;;;;;11420:106;;;;;;:::i;:::-;11644:16;;;;;11628:52;:34;11636:25;3690:38;9776:14;11644:16;;3690:38;2771:19105;;;;;;;;3690:38;-1:-1:-1;;;;;2771:19105:92;;;11628:52;9792:20;2771:19105;-1:-1:-1;;;11628:95:92;;-1:-1:-1;;;2771:19105:92;11628:95;;3690:38;2771:19105;;;;;;3690:38;;2771:19105;;11628:95;;;;;;;11952:294;11628:95;11952:294;11628:95;12017:16;11628:95;-1:-1:-1;11628:95:92;;;2771:19105;11787:17;;:52;;;2771:19105;11783:154;;12017:16;:::i;:::-;2771:19105;9792:20;2771:19105;;;;;;;;;;10003:10;;2241:89:34;;;;2052:83;9776:14:92;2052:83:34;11952:294:92;;;:::i;:::-;;;;-1:-1:-1;;;;;;;;;;;;3080:68:8;9792:20:92;2771:19105;9307:16;2771:19105;;;;;11783:154;;;;;;:::i;:::-;12017:16;:::i;11787:52::-;2771:19105;;;;;;;11808:31;;11787:52;;11628:95;;;;2771:19105;11628:95;2771:19105;11628:95;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;:::i;11237:44::-;;;;;;-1:-1:-1;11237:44:92;;;;;;:::i;:::-;;;;;:::i;:::-;;;;2771:19105;;;;;;-1:-1:-1;;2771:19105:92;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;2848:69:8;2771:19105:92;;;;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;;;3084:41;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2771:19105:92;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;8769:17;2771:19105;;;;;;;;8769:17;2771:19105;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3690:38;;2771:19105;;:::i;:::-;;;;3690:38;2771:19105;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;-1:-1:-1;;2771:19105:92;;;;;;;;;:::i;:::-;1500:62:0;;:::i;:::-;2771:19105:92;;;-1:-1:-1;;;;;;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;1777:43:1;;-1:-1:-1;1777:43:1;2771:19105:92;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;:::i;:::-;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;:::o;12658:1377::-;12771:11;-1:-1:-1;;;;;2771:19105:92;12749:10;:34;12745:89;;12879:32;;;;;;:::i;:::-;13931:97;13006:29;;;:::i;:::-;13931:97;13455:273;13890:22;13835:27;13160:67;13179:20;;;;2771:19105;13179:20;13201:25;;2771:19105;;;;;;;;;;13160:67;;:::i;:::-;13327:25;;;;;;;;:::i;:::-;2771:19105;;;;;;;;;;;;;;;;;;13653:29;;;;2771:19105;;13653:29;;;;-1:-1:-1;;;;;2771:19105:92;13455:273;;:::i;:::-;13804:29;;;2771:19105;13804:29;;;;-1:-1:-1;;;;;2771:19105:92;13835:27;;;2771:19105;;;13835:27;;2771:19105;-1:-1:-1;;;;;2771:19105:92;13890:22;;:::i;:::-;14001:26;2771:19105;;13835:27;2771:19105;13931:97;;;13179:20;13931:97;;;:::i;:::-;;2771:19105;;13931:97;;;;;;:::i;12745:89::-;12806:17;;;;;;;;3690:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3690:38:92;;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3690:38:92;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;3690:38:92;;;;2771:19105;;-1:-1:-1;;2771:19105:92;3690:38;;;:::o;:::-;;;;;;;:::i;:::-;2771:19105;;;;;;;:::i;:::-;3690:38;;;;;;;;;;;;;;;;-1:-1:-1;3690:38:92;;;;;;:::o;:::-;-1:-1:-1;;3690:38:92;;;;;;;;:::o;:::-;;:::i;:::-;2771:19105;;;3690:38;;;;;;;;;;;;;;;;;;;;:::o;:::-;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19105:92;;;;;3690:38;;;;;2771:19105;;3690:38;;;2771:19105;3690:38;;;;;2771:19105;;3690:38;;;;;;;;;2771:19105;;3690:38;;;2771:19105;3690:38;;;;;2771:19105;3690:38;;2771:19105;3690:38::o;:::-;;;;;;;-1:-1:-1;;;;;2771:19105:92;3690:38;;;2771:19105;3690:38;;;;;;;;;2771:19105;;3690:38;;;2771:19105;;;3690:38;;;2771:19105;;;;3690:38;2771:19105;;;;;-1:-1:-1;3690:38:92;;;;;;;;;;;;;;;;;;;;2771:19105;3690:38;;;;;;;;;2771:19105;;;;;;;;;3690:38;;;;;;;;2771:19105;3690:38;;2771:19105;3690:38;2771:19105;;3690:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;2771:19105;;3690:38;;;;;;;;;;;;;;;-1:-1:-1;;;;;3690:38:92;;;;;;;;;;;;;;;;;;;:::i;:::-;2771:19105;;;;;;;:::i;:::-;3690:38;;;;;;;;;;;;-1:-1:-1;3690:38:92;;;;;;;;2771:19105;;;;;3690:38;:::o;:::-;2771:19105;;3690:38;;;;;;;;;2771:19105;;;;3690:38;;;;:::o;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3690:38:92;;;;;;;;;;;;;;;;;;;;:::i;:::-;2771:19105;;;;;;;:::i;:::-;3690:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;2771:19105;3690:38;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;2771:19105;;;;;;:::i;:::-;3690:38;;;;;;;;;;;;2771:19105;3690:38;;;2771:19105;3690:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;2771:19105;;;;3690:38;;;2771:19105;;3690:38;;;2771:19105;3690:38;;;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;3690:38;;;2771:19105;3690:38;;;;;;;;;:::i;2771:19105::-;;;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;-1:-1:-1;2771:19105:92;;-1:-1:-1;2771:19105:92;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;2771:19105:92;;;;;;;;1796:162:0;1710:6;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;735:10:7;1855:23:0;1851:101;;1796:162::o;2771:19105:92:-;;;;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;1795:4:90;;;;:::o;:::-;;;;;;;;;1901:6;;;;:::o;:::-;;;;;;;;;2728:647;2850:16;;2771:19105:92;;;2728:647:90;2892:10;;;;:49;;2728:647;2771:19105:92;;;3000:9:90;2771:19105:92;2995:296:90;3011:10;;;;;;3319:29;;;3311:57;1901:6;3319:29;;;3311:57;:::i;3023:3::-;3054:18;;;2771:19105:92;3054:18:90;3215:21;3054:18;;;;3046:53;3054:21;:18;;;:21;:::i;:::-;2771:19105:92;3054:26:90;;3046:53;:::i;:::-;3117:64;1795:4;3125:19;:16;;;:19;:::i;:::-;2771:19105:92;3125:36:90;3117:64;:::i;:::-;3215:18;:21;:::i;:::-;2771:19105:92;1795:4:90;3023:3;2771:19105:92;3000:9:90;;;;2771:19105:92;;;;;;;;;2892:49:90;2916:18;;;;;2771:19105:92;2906:35:90;;2892:49;;2771:19105:92;;;;;;;:::i;:::-;-1:-1:-1;2771:19105:92;;;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;14270:603;2771:19105;;:::i;:::-;;14544:20;;;;14592:27;;;;2771:19105;;;;;;14669:29;;;2771:19105;;;14592:27;2771:19105;;;;;:::i;:::-;3690:38;;14544:20;14490:224;;3690:38;;;14592:27;14490:224;;3690:38;;;8176:24:60;2771:19105:92;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19105:92;;;;;;-1:-1:-1;;;;;2771:19105:92;;;8176:24:60;-1:-1:-1;;14465:11:92;-1:-1:-1;;;;;2771:19105:92;;8210:22:60;;-1:-1:-1;8333:3:60;8310:14;;2771:19105:92;;;8306:25:60;;;;;8377:17;;14544:20:92;8638:24:60;8377:17;;;8615:120;8493:36;8377:17;;8556:213;8377:17;;;:::i;:::-;;2771:19105:92;;8377:17:60;;-1:-1:-1;;;;;2771:19105:92;;;;;448:51:36;;364:138;8493:36:60;2771:19105:92;;;-1:-1:-1;;;;;2771:19105:92;3690:38;;8638:24:60;:::i;:::-;8664:70;;;;1862:10:32;8664:70:60;;8615:120;2771:19105:92;;:::i;:::-;;;;1862:10:32;;;8615:120:60;3690:38:92;;8615:120:60;;;3690:38:92;-1:-1:-1;;;;;2771:19105:92;14592:27;8615:120:60;;3690:38:92;;8615:120:60;14592:27:92;2771:19105;3690:38;;;;;;;8556:213:60;;;;;;;:::i;:::-;;;-1:-1:-1;8556:213:60;;;;;;;;-1:-1:-1;8556:213:60;;;8664:70;-1:-1:-1;2771:19105:92;;8544:225:60;8855:72;;;;2771:19105:92;;;;;;8855:72:60;9043:50;;;;14544:20:92;9056:17:60;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;;8333:3:60;2771:19105:92;8291:13:60;;;;;;;;;9043:50;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;9043:50:60;;8855:72;2052:83:34;;2771:19105:92;;;;;;8855:72:60;;8556:213;2771:19105:92;8556:213:60;;;;;14544:20:92;8556:213:60;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;8664:70;2042:49:32;8664:70:60;;;8306:25;-1:-1:-1;;;;;2771:19105:92;;;1862:10:32;;-1:-1:-1;8306:25:60;;-1:-1:-1;14777:89:92;;-1:-1:-1;8306:25:60;;-1:-1:-1;9159:39:60;;-1:-1:-1;;;;;2771:19105:92;14544:20;9159:21:60;;3690:38:92;;9159:39:60;14592:27:92;9208:22:60;;3690:38:92;2771:19105;;14812:25;;;;;2771:19105;-1:-1:-1;;;;;2771:19105:92;;;14785:52;;14777:89;:::i;15226:437::-;;;;-1:-1:-1;2771:19105:92;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3690:38;;;;;;;;;15497:24;;;:::i;:::-;;2771:19105;;15497:24;;-1:-1:-1;;;;;2771:19105:92;;;;;15604:52;;;15226:437::o;15857:204::-;357:173:37;16001:53:92;15857:204;357:173:37;16023:11:92;16001:53;:::i;:::-;15974:80;;;15857:204;:::o;2771:19105::-;;;;3690:38;2771:19105;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2771:19105:92;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;3690:38;;2771:19105;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;2771:19105:92;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;16775:1841;;;;17271:115;16775:1841;;;;;;2771:19105;;:::i;:::-;;17271:115;;;:::i;:::-;17236:150;;;17453:12;;;2771:19105;17453:23;;:40;;;16775:1841;17449:1161;;;-1:-1:-1;;;;;17580:11:92;2771:19105;;;;17580:70;;;;;2771:19105;;;3690:38;;;;;17580:70;;17633:4;;;17580:70;17633:4;;17580:70;;;;;:::i;:::-;;;;;;;;;;2771:19105;17580:70;;;17449:1161;17757:25;;;;:41;;;;;;;;;17881:131;;17757:41;18172:12;;;;18186;18103:103;18186:12;;;;2771:19105;;;3690:38;;;;;;;;;;18103:103;;17580:70;18103:103;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19105:92;18103:18;-1:-1:-1;;;;;2771:19105:92;18103:103;;;;;;;2771:19105;18103:103;;;17757:41;2771:19105;18237:35;2771:19105;;18237:35;:::i;:::-;18319:9;2771:19105;18351:3;2771:19105;;18330:19;;;;;18420:11;;2771:19105;18420:11;;;:::i;:::-;2771:19105;18443:19;:16;2771:19105;18443:16;;;:19;:::i;:::-;2771:19105;18476:21;:18;2771:19105;18476:18;;;:21;:::i;:::-;2771:19105;;;;:::i;:::-;3690:38;;;18186:12;18397:102;;3690:38;2771:19105;18397:102;;3690:38;18378:121;;;;:::i;:::-;;;;;;:::i;:::-;;2771:19105;18319:9;;18330:19;;;;;;16775:1841::o;18103:103::-;;;;;;2771:19105;18103:103;;;;;;:::i;:::-;;;;;:::i;:::-;;;;17881:131;2771:19105;;-1:-1:-1;;;17930:67:92;;-1:-1:-1;;;;;17966:18:92;2771:19105;17580:70;17930:67;;2771:19105;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;17930:67;;2771:19105;;;;;;;17930:67;;;;;;;2771:19105;17930:67;;;17881:131;;;;17930:67;;;;;;;;;;;;;:::i;:::-;;;;;17757:41;;;;;17580:70;;;;;;;:::i;:::-;;;:::i;:::-;;;;17449:1161;18578:21;;;;;;;;;:::i;:::-;17449:1161;16775:1841::o;17453:40::-;-1:-1:-1;;;;;;2771:19105:92;;17480:13;;17453:40;;18962:431;;;;-1:-1:-1;;;;;2771:19105:92;;4998:58:36;;19622:24:92;;19662:11;-1:-1:-1;;;;;2771:19105:92;19662:26;;;;;2771:19105;;-1:-1:-1;;;19662:26:92;;-1:-1:-1;;;;;2771:19105:92;;19662:26;;;2771:19105;-1:-1:-1;2771:19105:92;;;-1:-1:-1;19662:26:92;;;;;;;;19937:22;20024:20;19662:26;19885:124;19662:26;;;;;19617:593;19770:40;19893;19770;;;;;:::i;:::-;19864:6;;;;;;:::i;:::-;19893:40;:::i;:::-;19937:22;;:::i;:::-;19893:66;19885:124;:::i;:::-;19662:26;2771:19105;;3690:38;;;;;;;20024:20;;;;;;;;;;19617:593;;;-1:-1:-1;;;;;2771:19105:92;;19277:110;;18962:431;;;:::o;19277:110::-;19312:11;-1:-1:-1;;;;;2771:19105:92;19312:64;;;;;2771:19105;;-1:-1:-1;;;19312:64:92;;2771:19105;19295:1;;2771:19105;;;;19295:1;;2771:19105;;19312:64;;3690:38;;-1:-1:-1;;;;;2771:19105:92;19312:64;;;;:::i;:::-;;;;;;;;;;;18962:431;:::o;19312:64::-;;;19295:1;19312:64;;;:::i;20024:20::-;;;;;;;;;;;;;:::i;:::-;;;;;19662:26;;;;;;;:::i;:::-;;;;19617:593;2771:19105;20124:11;-1:-1:-1;;;;;2771:19105:92;20124:26;;;;;2771:19105;;-1:-1:-1;;;20124:26:92;;-1:-1:-1;;;;;2771:19105:92;;;;20124:26;;;2771:19105;-1:-1:-1;2771:19105:92;;;-1:-1:-1;20124:26:92;;;;;;;;20164:35;20124:26;;;19617:593;2771:19105;20124:26;2771:19105;;3690:38;;;;;;;20164:35;;;;;;;;;;19617:593;;;;20164:35;;;;;;;;;;;;;:::i;:::-;;;;;20124:26;;;;;;;:::i;:::-;;;;2771:19105;;;;:::o;:::-;;;;;;;;;;21096:17;2771:19105;;;;;;21096:17;-1:-1:-1;2771:19105:92;;-1:-1:-1;2771:19105:92;;;-1:-1:-1;2771:19105:92;:::o;:::-;21664:29;2771:19105;;;;;;21664:29;-1:-1:-1;2771:19105:92;;-1:-1:-1;2771:19105:92;;;-1:-1:-1;2771:19105:92;:::o;20975:817::-;21096:17;2771:19105;21210:20;;;21206:33;;21294:16;;;2771:19105;21294:42;:90;;;20975:817;21286:126;;;:::i;:::-;21096:27;21509:19;;;;;;20975:817;;;:::o;21530:3::-;21582:16;:19;2771:19105;21582:16;;;:19;:::i;:::-;2771:19105;;21605:30;;;:::i;:::-;2771:19105;;;;;;;;;21582:53;:114;;;21530:3;21553:208;;;:::i;:::-;2771:19105;21498:9;;21582:114;21639:18;21553:208;21639:21;:18;;;;;:21;:::i;:::-;2771:19105;;21664:32;;;:::i;2771:19105::-;21639:57;21582:114;;;;21294:90;-1:-1:-1;21340:18:92;;;;2771:19105;21340:44;;21294:90;;21206:33;21232:7;;:::o;2771:19105::-;;;;:::o;:::-;;;;;;;;;2969:890:60;2771:19105:92;;3092:19:60;3088:83;;2771:19105:92;;3289:14:60;;3404:31;3285:313;2771:19105:92;;;;;;;;;;3635:10:60;2771:19105:92;;3656:196:60;;-1:-1:-1;;;;;2771:19105:92;;;;;3677:55:60;;;:114;;;;3285:313;3656:196;;;:::i;3677:114::-;2771:19105:92;3771:19:60;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;3736:55:60;;-1:-1:-1;3677:114:60;;;;3285:313;3554:33;;;;:::i;:::-;3285:313;;3088:83;3127:7;;;:::o;2771:19105:92:-;;;;;;:::o;:::-;;;;;;;;;;;;;5439:575:60;;;;;;;;-1:-1:-1;;;;;2771:19105:92;;;;5705:23:60;;;5697:82;5705:23;;;;;5697:82;:::i;5603:405::-;5859:13;;;;;2771:19105:92;;-1:-1:-1;;;;;;2771:19105:92;;5958:23:60;;;:::i;:::-;5927:70;;;;;;2771:19105:92;;-1:-1:-1;;;5927:70:60;;-1:-1:-1;;;;;2771:19105:92;;;5927:70:60;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;5632:1:60;;2771:19105:92;;;5632:1:60;2771:19105:92;;;;5927:70:60;2771:19105:92;;;;;5632:1:60;2771:19105:92;5632:1:60;2771:19105:92;;;;;5632:1:60;2771:19105:92;;;;;;;;;;3690:38;2771:19105;:::o;1580:996:30:-;14953:51;1580:996;1892:27;1580:996;;2771:19105:92;;14953:51:30;;;2771:19105:92;;;414:1:30;2771:19105:92;398:19:30;;2771:19105:92;;14953:51:30;;;;;;:::i;:::-;2771:19105:92;14943:62:30;;2771:19105:92;;;3690:38;;;;;;;;1892:27:30;;;;;2771:19105:92;;;;;;;;1892:27:30;;;-1:-1:-1;;;;;2771:19105:92;1892:27:30;;;;;;;-1:-1:-1;1892:27:30;;;1580:996;-1:-1:-1;;;;;;2147:423:30;;;2771:19105:92;2147:423:30;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;;14953:51;1892:27;14953:51;1892:27;;;;;;;:::i;:::-;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;;;;;;;;;;;:::o;6425:1227:60:-;;;;6582:14;;2771:19105:92;6582:26:60;6578:163;;6822:20;;;;2771:19105:92;;6822:20:60;;7529:47;;-1:-1:-1;;;;;2771:19105:92;;6818:156:60;;6425:1227;-1:-1:-1;7131:14:60;;7170:16;;;2771:19105:92;7131:14:60;;7170:16;7443:34;;2771:19105:92;;-1:-1:-1;;;;;2771:19105:92;7210:18:60;;;;2771:19105:92;7082:247:60;2771:19105:92;;3690:38;;;:::i;:::-;;;;-1:-1:-1;;;;;2771:19105:92;7082:247:60;;;3690:38:92;;7082:247:60;7210:18;7082:247;;3690:38:92;-1:-1:-1;7170:16:60;7082:247;;3690:38:92;2771:19105;-1:-1:-1;;;;;2771:19105:92;;;7443:34:60;:59;;2771:19105:92;7443:59:60;;7210:18;2771:19105:92;3690:38;;;;;;;;;7529:47:60;;;;;;:::i;:::-;;;-1:-1:-1;;;;;2771:19105:92;7529:47:60;;;;;;7605:40;7529:47;-1:-1:-1;7529:47:60;;;7443:59;7512:64;7630:14;;7605:40;:::i;7529:47::-;;;;6822:20;7529:47;6822:20;7529:47;;;;;;;:::i;:::-;;;;7443:59;;-1:-1:-1;7443:59:60;;;6818:156;6944:18;;;2771:19105:92;6944:18:60;;-1:-1:-1;;;;;2771:19105:92;;;;;6944:18:60;:::i;:::-;6818:156;;;6578:163;-1:-1:-1;6689:18:60;;;2771:19105:92;6709:20:60;;;;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;;:::o;20443:401::-;;2771:19105;;;;;20560:31;;;20556:68;;20746:18;-1:-1:-1;;;;;2771:19105:92;20746:91;;;;;20823:1;2771:19105;;20746:91;2771:19105;;;;;3690:38;;;;;;;;20746:91;;;;;2771:19105;;:::i;:::-;20705:30;;;2771:19105;;;;;;;;;;;;;;;;;;;;;;20746:91;;;;;;;;20443:401;:::o;2771:19105::-;3690:38;;-1:-1:-1;;;;;;2771:19105:92;;;;;;;:::o;1862:10:32:-;;;;;2771:19105:92;1862:10:32;;:::i;:::-;;;2771:19105:92;;1862:10:32;;;2771:19105:92;1862:10:32;;;;;;;2771:19105:92;1862:10:32;;;-1:-1:-1;;;;;2771:19105:92;1862:10:32;;;2771:19105:92;1862:10:32;;;;;;;-1:-1:-1;1862:10:32;;;2771:19105:92;;;1862:10:32:o;2771:19105:92:-;;;-1:-1:-1;;2771:19105:92;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;2771:19105:92;;;;;;;;;;;;;:::o;4274:2260:90:-;;;;;;;;;2771:19105:92;;:::i;:::-;4518:17:90;2771:19105:92;;-1:-1:-1;;;;;2771:19105:92;;4572:14:90;4568:79;;4908:15;;;4958:74;2771:19105:92;4885:39:90;2771:19105:92;;;;;;;;4885:39:90;:::i;:::-;2771:19105:92;;;;;;;4958:74:90;;;:::i;:::-;5047:70;;;;;2771:19105:92;;;;;5061:26:90;;5047:70;5043:172;;5246:16;;;;;;;2771:19105:92;5290:25:90;;;;:::i;:::-;5280:35;;5335:23;;;:::i;:::-;5325:7;;;:33;5382:25;;;:::i;:::-;5368:11;;;:39;5433:25;;;:::i;:::-;4908:15;5417:13;;:41;5508:13;2771:19105:92;5537:9:90;2771:19105:92;5532:659:90;5548:14;;;;;;6201:293;;;;;;;;;;;5325:7;;;;6201:293;;5368:11;;;;6201:293;;4908:15;5417:13;;6201:293;;4274:2260;:::o;5564:3::-;5639:18;;;;;;;5603:73;5639:21;:18;5325:7;5639:18;;;;;;:21;:::i;:::-;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;;5603:73:90;:::i;:::-;5694:14;;;5690:28;;5733:31;;-1:-1:-1;;;;;2771:19105:92;;;5733:31:90;:::i;:::-;2771:19105:92;5778:31:90;;-1:-1:-1;;;;;2771:19105:92;;;5778:31:90;:::i;:::-;5902:16;;;;;;:19;;;;:::i;:::-;2771:19105:92;5843:79:90;;;;;;;:::i;:::-;5937:7;;;;:26;;;;:::i;:::-;3690:38:92;5325:7:90;;5977;:27;;;;:::i;:::-;;;;2771:19105:92;;;;;;5977:27:90;6039:16;;;;;:19;;;;:::i;:::-;2771:19105:92;5368:11:90;;;6018;:40;;;;:::i;:::-;3690:38:92;5639:18:90;;;5325:7;5639:18;;6095;:21;;;;:::i;:::-;2771:19105:92;5417:13:90;4908:15;5417:13;6072;:44;;;;:::i;:::-;3690:38:92;2771:19105;;5564:3:90;2771:19105:92;5564:3:90;5537:9;2771:19105:92;5537:9:90;;;;;;;;5690:28;5710:8;;;;2771:19105:92;5710:8:90;;;5043:172;-1:-1:-1;5170:34:90;;;-1:-1:-1;;;;5170:34:90:o;5047:70::-;5109:8;5090:27;5109:8;;:::i;:::-;2771:19105:92;;;;5090:27:90;2771:19105:92;;;5090:27:90;;5047:70;;4568:79;-1:-1:-1;2771:19105:92;;-1:-1:-1;2771:19105:92;;4602:34:90;-1:-1:-1;;;;;4602:34:90:o;2771:19105:92:-;;677:2:74;2771:19105:92;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;:::o;:::-;;;;;;;;;10662:597:60;2771:19105:92;;10770:16:60;10766:64;;2771:19105:92;;;;;;;;11011:101:60;2771:19105:92;;;;;;;;1229:40:75;-1:-1:-1;11018:30:60;;2771:19105:92;;3690:38;;;;;;;;;;667:12:74;;659:50;667:12;;;;:::i;:::-;:23;;659:50;:::i;:::-;719:53;727:16;;;;;:::i;719:53::-;782:63;2771:19105:92;;807:16:74;;;;:::i;:::-;-1:-1:-1;790:33:74;782:63;:::i;:::-;889:2430;2771:19105:92;;889:2430:74;;;;2771:19105:92;889:2430:74;;;;;;;11011:101:60;;889:2430:74;;;;677:2;889:2430;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;889:2430:74;;677:2;889:2430;-1:-1:-1;;889:2430:74;;;11011:101:60;;889:2430:74;;;;;;;;;;;;;;;;11018:30:60;;;;;;11223:29;11018:30;;11223:29;:::i;:::-;11206:46;;;10662:597;:::o;10766:64::-;10802:17;2771:19105:92;10802:17:60;:::o;288:164:12:-;-1:-1:-1;;;;;368:25:12;;364:50;;-1:-1:-1;;;;;2771:19105:92;;288:164:12:o;364:50::-;402:12;;;;;;;;3146:225:6;2771:19105:92;;-1:-1:-1;;;3265:39:6;;3289:4;3265:39;;;2771:19105:92;-1:-1:-1;;;;;2771:19105:92;;;;;;;3146:225:6;;2771:19105:92;;;;;;3265:39:6;;2771:19105:92;;;;3265:39:6;;;;;;;-1:-1:-1;3265:39:6;;;3146:225;2771:19105:92;;;;;;;;5199:47:6;-1:-1:-1;2771:19105:92;;5199:47:6;;;;3690:38:92;;;;5199:47:6;;2771:19105:92;;;;;;;5199:47:6;;;2771:19105:92;;;;;;5199:47:6;;;;;;:::i;:::-;9770:199;;;;;;;-1:-1:-1;9770:199:6;;;;9985:80;;3146:225;-1:-1:-1;5261:45:6;;-1:-1:-1;5261:45:6;5257:201;;3146:225;;;:::o;5257:201::-;2771:19105:92;;-1:-1:-1;;;5199:47:6;5349:43;;;-1:-1:-1;;;;;2771:19105:92;;;5199:47:6;5349:43;;2771:19105:92;5389:1:6;2771:19105:92;;;;5434:12:6;;5349:43;;;2771:19105:92;;;;5349:43:6;2771:19105:92;5349:43:6;;;:::i;:::-;5434:12;:::i;9985:80::-;9997:15;;;-1:-1:-1;9997:15:6;;-1:-1:-1;5261:45:6;-1:-1:-1;;;;;2771:19105:92;;10015:26:6;:30;;9997:67;9985:80;;;9997:67;10063:1;5261:45;10048:16;;9997:67;;3265:39;;;;;2771:19105:92;3265:39:6;2771:19105:92;3265:39:6;;;;;;;:::i;:::-;;;;;1434:6:70;2771:19105:92;;;1434:6:70;;;;;;;;2533:168;2771:19105:92;;;1434:6:70;;;;;;;2771:19105:92;;2533:168:70;:::o;1434:6::-;;:::i;2771:19105:92:-;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;2771:19105:92;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;2771:19105:92;;-1:-1:-1;;2771:19105:92;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;7790:949:58:-;;;;7908:825;;;2771:19105:92;;;;7978:8:58;7974:349;2771:19105:92;;;8117:38:58;8118:18;:22;:18;;8116:54;8118:18;;:::i;:::-;:22;:::i;:::-;8117:38;:::i;:::-;8116:54;:::i;7974:349::-;8275:18;;8274:34;8275:18;;:::i;7908:825::-;2771:19105:92;;;;;8393:8:58;8389:334;2771:19105:92;;;8519:18:58;;;8518:34;8519:18;;:::i;8389:334::-;8656:18;;;;:::i;:::-;2771:19105:92;;-1:-1:-1;;2771:19105:92;;-1:-1:-1;;2771:19105:92;;;;;;;;8655:38:58;;8654:54;8655:38;;:::i;858:4141:66:-;2771:19105:92;;;;-1:-1:-1;;2771:19105:92;;1464:147:66;;;;;;;;;;;;1736:19;;1901:6:90;1736:19:66;2771:19105:92;;;1837:10:66;1833:177;;2771:19105:92;2341:95:66;1901:6:90;2341:95:66;;2508:145;;;;;;2771:19105:92;;2508:145:66;;3094:82;;3480:21;2771:19105:92;858:4141:66;:::o;1833:177::-;1867:98;;1901:6:90;1867:98:66;;;1982:13;:::o;858:4141::-;2771:19105:92;;;;-1:-1:-1;;2771:19105:92;;1464:147:66;;;;;;;;;;;;1736:19;;2036:3:90;1736:19:66;2771:19105:92;;;1837:10:66;1833:177;;2771:19105:92;2341:95:66;2036:3:90;2341:95:66;;2508:145;;;;;;2771:19105:92;;2508:145:66;;3094:82;;3480:21;2771:19105:92;858:4141:66;:::o;1833:177::-;1867:98;;2036:3:90;1867:98:66;;;1982:13;:::o;2036:3:90:-;;;;;;;:::o;7009:1407::-;;;;;7311:23;7491:75;7009:1407;;7222:53;1795:4;7230:25;;7222:53;:::i;:::-;7311:23;:::i;:::-;7348:12;;;7344:120;;7009:1407;-1:-1:-1;;;;;2771:19105:92;7491:75:90;:::i;:::-;-1:-1:-1;;;;;7580:26:90;;7576:58;;7009:1407;7725:73;;7782:15;;7661:44;;-1:-1:-1;;;;;2771:19105:92;7661:44:90;:::i;:::-;7782:15;;2771:19105:92;;;;;;;;;7725:73:90;;;:::i;:::-;7825:39;2771:19105:92;;;;;;;7825:39:90;7890:8;;;;:::i;:::-;2771:19105:92;;;;;;7913:17:90;;7909:136;7913:17;;;7946;;;;8079:74;8179:68;7946:17;7909:136;;2771:19105:92;;;;8079:74:90;;;:::i;:::-;8198:48;;;;;2771:19105:92;;;;8198:48:90;8179:68;:::i;:::-;8257:153;;;;2771:19105:92;;;;;;8292:17:90;8288:40;;8257:153;7009:1407::o;8288:40::-;8311:17;-1:-1:-1;18962:431:92:o;8257:153:90:-;2771:19105:92;;;;;;8363:17:90;8359:40;;8257:153;7009:1407::o;8198:48::-;2771:19105:92;8230:16:90;;2771:19105:92;;8230:16:90;:::i;7909:136::-;2771:19105:92;;;;;;;;-1:-1:-1;7980:65:90;;7909:136;;;8079:74;8179:68;7909:136;;;7980:65;8017:17;-1:-1:-1;8079:74:90;7980:65;;7576:58;-1:-1:-1;;;;;;7576:58:90;;7344:120;7394:41;7393:60;7394:41;2771:19105:92;7393:60:90;:::i;:::-;7344:120;;;4633:271:36;-1:-1:-1;;;;;2771:19105:92;;4732:24:36;;4779:13;;4772:20;:::o;4728:170::-;2771:19105:92;;-1:-1:-1;;;4830:57:36;;-1:-1:-1;;;;;2771:19105:92;;;4830:57:36;;;2771:19105:92;;;;;;4830:57:36;;2771:19105:92;;;4830:57:36;;;;;;;2771:19105:92;4830:57:36;;;4823:64;;:::o;4830:57::-;;;;2771:19105:92;4830:57:36;2771:19105:92;4830:57:36;;;;;;;:::i;1472:2873::-;;;;-1:-1:-1;;;;;2771:19105:92;;1769:24:36;;1809:163;-1:-1:-1;1809:163:36;;;2085:8;1809:163;;;;2085:8;;2771:19105:92;2085:8:36;2081:127;;1765:2574;1472:2873::o;2081:127::-;2163:29;:::i;1765:2574::-;2238:1774;;;-1:-1:-1;;;2238:1774:36;;-1:-1:-1;;;;;2238:1774:36;;;;;;;;;;;;;;;;-1:-1:-1;;2238:1774:36;-1:-1:-1;2238:1774:36;;-1:-1:-1;2238:1774:36;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;-1:-1:-1;;;;;2771:19105:92;4268:28:36;:::i;1925:240:75:-;;3518:62:74;3473:2;2771:19105:92;;3526:28:74;;3518:62;:::i;:::-;3620:119;;;;;;2771:19105:92;;;;3944:27:74;2771:19105:92;;;4032:81:74;;;;2771:19105:92;;3518:62:74;2771:19105:92;;3620:119:74;2771:19105:92;;3526:28:74;;3518:62;:::i;:::-;3620:119;;;;;1925:240:75;:::o;2771:19105:92:-;;;-1:-1:-1;;;2771:19105:92;;3620:119:74;2771:19105:92;;;;3473:2:74;2771:19105:92;;;;-1:-1:-1;;;2771:19105:92;;;;;;;8698:307:90;;8787:17;8838:1;2771:19105:92;;;;;;;8838:1:90;2771:19105:92;8855:95:90;8862:10;;;;;;8967:11;;8959:39;8967:11;;;8959:39;:::i;8855:95::-;8888:10;;-1:-1:-1;8888:10:90;2036:3;;;;;;;2771:19105:92;;;;;;;;8838:1:90;2771:19105:92;8855:95:90;;;7772:4824:70;2391:66;-1:-1:-1;;1979:10:70;;-1:-1:-1;;;;;2771:19105:92;8327:79:70;8323:168;;2771:19105:92;;;;;;8521:27:70;;2771:19105:92;;2391:66:70;;8521:27;;8594:43;8608:29;;;:::i;:::-;2771:19105:92;;2391:66:70;;8594:43;8656:10;8663:3;8656:10;;8663:3;;-1:-1:-1;;;2771:19105:92;;;;8652:83:70;-1:-1:-1;;2391:66:70;2771:19105:92;;8805:196:70;;;;;;;2771:19105:92;8805:196:70;;9014;;;8805;9014;;2771:19105:92;9014:196:70;;9223;;;8805;9223;;2771:19105:92;9223:196:70;;9432;;;8805;9432;;2771:19105:92;9432:196:70;;9641;;;8805;9641;;2771:19105:92;9641:196:70;;9850;;;8805;9850;;2771:19105:92;9850:196:70;;10059;;;;8805;10059;;2771:19105:92;10059:196:70;;10268;;;;8805;10268;;2771:19105:92;10268:196:70;;10477;;;;8805;10477;;2771:19105:92;10477:196:70;;10686;;;;8805;10686;;2771:19105:92;10686:196:70;;10895;;;;8805;10895;;2771:19105:92;10895:196:70;;11104;;;;8805;11104;;2771:19105:92;11104:196:70;;11313;;;;;8805;11313;;2771:19105:92;11313:196:70;;11522:165;;;;;;11313:196;;;;;11104;;;;;10895;;;;;10686;;;;;10477;;;;;10268;2771:19105:92;10268:196:70;;;;;;10059;2771:19105:92;10059:196:70;;;;;;9850;2771:19105:92;9850:196:70;;;;;;9641;2771:19105:92;9641:196:70;;;;;;9432;2771:19105:92;9432:196:70;;;;;;9223;2771:19105:92;9223:196:70;;;;;;9014;2771:19105:92;9014:196:70;;;;;;8805;2771:19105:92;8805:196:70;;;;;;;9014;9223;9432;9641;9850;10059;10268;10477;10686;10895;11104;11313;11522:165;11732:24;2391:66;;;;;11932:62;;2771:19105:92;2391:66:70;;;11932:62;2771:19105:92;;2391:66:70;12346:39;2391:66;2771:19105:92;2391:66:70;2771:19105:92;;12416:163:70;2771:19105:92;;;;;;12416:17:70;:163;:17;;;:163;;;7772:4824;:::o;12416:163::-;-1:-1:-1;;;;;12478:26:70;;;:::i;:::-;2771:19105:92;12478:42:70;:101;;;7772:4824;:::o;12478:101::-;;;2771:19105:92;:::o;8652:83:70:-;2771:19105:92;;;8725:3:70;2771:19105:92;;8652:83:70;;;8323:168;8463:12;:::i;3508:1663:22:-;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;;;3741:1424:22;;;;;;;;;2771:19105:92;3741:1424:22;2771:19105:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;;;4268:28:36;;;3741:1424:22;;;;;;;3508:1663;3741:1424;;-1:-1:-1;;;3741:1424:22;;-1:-1:-1;;;;;3741:1424:22;;;;;;;-1:-1:-1;3741:1424:22;;;;;;;;;;;2771:19105:92;3741:1424:22;2771:19105:92;3741:1424:22;-1:-1:-1;;3741:1424:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:36;;;3741:1424:22;;;;;;;2771:19105:92;;;;:::o;:::-;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;2771:19105:92;;;;;;;;;;;;-1:-1:-1;;;2771:19105:92;;;;;;;8370:720:6;;-1:-1:-1;8507:421:6;8370:720;8507:421;;;;;;;;;;;;-1:-1:-1;8507:421:6;;8942:15;;-1:-1:-1;;;;;;2771:19105:92;;8960:26:6;:31;8942:68;8938:146;;8370:720;:::o;8938:146::-;-1:-1:-1;;;;9033:40:6;;;-1:-1:-1;;;;;2771:19105:92;;;;9033:40:6;2771:19105:92;;;9033:40:6;8942:68;9009:1;8994:16;;8942:68;;1793:259:64;-1:-1:-1;;;1869:177:64;;;;-1:-1:-1;;;;;1869:177:64;;;;;;;;;769:648:63;858:5;;2771:19105:92;;875:536:63;;;-1:-1:-1;;;;;875:536:63;-1:-1:-1;875:536:63;;;;;-1:-1:-1;;;;;875:536:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;769:648::o;3258:4054:70:-;3406:459;;;;;;;;;;1434:6;3883:35;;3879:78;;6533:763;4465:13;;4492:160;;;;;2771:19105:92;4492:160:70;;;4669:13;3406:459;4669:13;;4665:83;;3258:4054;4776:3;4766:13;;4762:83;;3258:4054;4873:3;4863:13;;4859:83;;3258:4054;4970:4;4960:14;;4956:84;;3258:4054;5068:4;5058:14;;5054:84;;3258:4054;5166:4;5156:14;;5152:84;;3258:4054;4492:160;5254:14;;5250:84;;3258:4054;5362:5;5352:15;;5348:85;;3258:4054;5461:5;5451:15;;5447:85;;3258:4054;5560:5;5550:15;;5546:85;;3258:4054;5659:5;5649:15;;5645:85;;3258:4054;5758:6;5748:16;;5744:86;;3258:4054;5858:6;5848:16;;5844:86;;3258:4054;5958:6;5948:16;;5944:86;;3258:4054;6058:6;6048:16;;6044:86;;3258:4054;6158:7;6148:17;;6144:86;;3258:4054;6258:7;6248:17;;6244:85;;3258:4054;6357:7;6347:17;;6343:83;;3258:4054;6454:7;6444:17;6440:78;;3258:4054;-1:-1:-1;;6533:763:70;;3258:4054;6533:763;5068:4;6533:763;3258:4054;:::o;6533:763::-;-1:-1:-1;;6533:763:70;;;6440:78;6485:25;2771:19105:92;;;;;;6440:78:70;;6343:83;6388:30;2771:19105:92;;;;;;6343:83:70;;6244:85;2771:19105:92;6289:32:70;2771:19105:92;;;6244:85:70;;;6144:86;2771:19105:92;6189:33:70;2771:19105:92;;;6144:86:70;;;6044;2771:19105:92;6088:34:70;2771:19105:92;;;6044:86:70;;;5944;2771:19105:92;5988:34:70;2771:19105:92;;;5944:86:70;;;5844;2771:19105:92;5888:34:70;2771:19105:92;;;5844:86:70;;;5744;2771:19105:92;5788:34:70;2771:19105:92;;;5744:86:70;;;5645:85;2771:19105:92;5688:34:70;2771:19105:92;;;5645:85:70;;;5546;2771:19105:92;5589:34:70;2771:19105:92;;;5546:85:70;;;5447;2771:19105:92;5490:34:70;2771:19105:92;;;5447:85:70;;;5348;2771:19105:92;5391:34:70;2771:19105:92;;;5348:85:70;;;5250:84;2771:19105:92;5292:34:70;2771:19105:92;;;5250:84:70;;;5152;2771:19105:92;5194:34:70;2771:19105:92;;;5152:84:70;;;5054;2771:19105:92;5096:34:70;2771:19105:92;;;5054:84:70;;;4956;2771:19105:92;4998:34:70;2771:19105:92;;;4956:84:70;;;4859:83;2771:19105:92;4900:34:70;2771:19105:92;;;4859:83:70;;;4762;2771:19105:92;4803:34:70;2771:19105:92;;;4762:83:70;;;4665;2771:19105:92;4706:34:70;2771:19105:92;;;4665:83:70;;;3879:78;3952:4;3920:20;;;1552:143:64;;;;;;;;","linkReferences":{},"immutableReferences":{"16661":[{"start":1895,"length":32},{"start":2700,"length":32},{"start":3976,"length":32},{"start":5757,"length":32},{"start":6321,"length":32},{"start":6899,"length":32},{"start":7515,"length":32},{"start":7722,"length":32},{"start":7902,"length":32}],"16665":[{"start":992,"length":32},{"start":7069,"length":32},{"start":7306,"length":32},{"start":9222,"length":32}],"16669":[{"start":1496,"length":32},{"start":2019,"length":32}],"16673":[{"start":1802,"length":32}]}},"methodIdentifiers":{"acceptOwnership()":"79ba5097","getLimitOrderConfig()":"e3e8580c","msgSender()":"d737d0c7","owner()":"8da5cb5b","pendingOwner()":"e30c3978","poolManager()":"dc4c90d3","renounceOwnership()":"715018a6","setLimitOrderConfig((uint256[],uint256[]))":"18ed2974","swapRouter()":"c31c9c07","swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":"c48677f4","transferOwnership(address)":"f2fde38b","unlockCallback(bytes)":"91dd7346","zoraLimitOrderBook()":"6baaa167"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"zoraLimitOrderBook_\",\"type\":\"address\"},{\"internalType\":\"contract ISwapRouter\",\"name\":\"swapRouter_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"permit2_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"EmptyV4Route\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"availableAmount\",\"type\":\"uint256\"}],\"name\":\"InsufficientInputCurrency\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientOutputAmount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidLimitOrderConfig\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidMultiple\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPercent\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyPoolManager\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PercentOverflow\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnsafeCast\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"V3RouteDoesNotConnectToV4RouteStart\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroSwapDelta\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"name\":\"LimitOrderConfigUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"indexed\":false,\"internalType\":\"struct PoolKey\",\"name\":\"poolKey\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickBeforeSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tickAfterSwap\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount0\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"int128\",\"name\":\"amount1\",\"type\":\"int128\"},{\"indexed\":false,\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"multiple\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"percentage\",\"type\":\"uint256\"}],\"indexed\":false,\"internalType\":\"struct SwapWithLimitOrders.CreatedOrder[]\",\"name\":\"orders\",\"type\":\"tuple[]\"}],\"name\":\"SwapWithLimitOrdersExecuted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLimitOrderConfig\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"msgSender\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"config\",\"type\":\"tuple\"}],\"name\":\"setLimitOrderConfig\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapRouter\",\"outputs\":[{\"internalType\":\"contract ISwapRouter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256[]\",\"name\":\"multiples\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"percentages\",\"type\":\"uint256[]\"}],\"internalType\":\"struct LimitOrderConfig\",\"name\":\"limitOrderConfig\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"inputCurrency\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"v3Route\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"Currency\",\"name\":\"currency0\",\"type\":\"address\"},{\"internalType\":\"Currency\",\"name\":\"currency1\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"fee\",\"type\":\"uint24\"},{\"internalType\":\"int24\",\"name\":\"tickSpacing\",\"type\":\"int24\"},{\"internalType\":\"contract IHooks\",\"name\":\"hooks\",\"type\":\"address\"}],\"internalType\":\"struct PoolKey[]\",\"name\":\"v4Route\",\"type\":\"tuple[]\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"internalType\":\"struct SwapWithLimitOrders.SwapWithLimitOrdersParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"swapWithLimitOrders\",\"outputs\":[{\"internalType\":\"BalanceDelta\",\"name\":\"delta\",\"type\":\"int256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"unlockCallback\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraLimitOrderBook\",\"outputs\":[{\"internalType\":\"contract IZoraLimitOrderBook\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"author\":\"oveddan\",\"details\":\"This contract uses the poolManager unlock/callback pattern to execute swaps, place limit orders based on the tick range crossed during the swap, and attempt to fill those orders in a single transaction. Users call swapWithLimitOrders() directly, which triggers the unlock callback flow. Uses Permit2 for token approvals, matching the universal-router pattern.\",\"errors\":{\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}]},\"events\":{\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"params\":{\"amount0\":\"The amount of currency0 swapped (negative = paid, positive = received)\",\"amount1\":\"The amount of currency1 swapped (negative = paid, positive = received)\",\"orders\":\"Array of created orders with their configuration. Only includes orders that were actually created (skipped rungs due to rounding are omitted).\",\"sqrtPriceX96\":\"The sqrt price after the swap, used for USD price computation\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"constructor\":{\"params\":{\"owner_\":\"The owner address\",\"permit2_\":\"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)\",\"poolManager_\":\"The Uniswap V4 pool manager\",\"swapRouter_\":\"The Uniswap V3 swap router\",\"zoraLimitOrderBook_\":\"The limit order book contract\"}},\"getLimitOrderConfig()\":{\"returns\":{\"_0\":\"The current limit order configuration\"}},\"msgSender()\":{\"returns\":{\"_0\":\"The address of the message sender.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"details\":\"Only callable by the owner\",\"params\":{\"config\":\"The new limit order configuration\"}},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"params\":{\"params\":\"The swap and limit order parameters\"},\"returns\":{\"delta\":\"The balance delta from the swap\"}},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"unlockCallback(bytes)\":{\"details\":\"This function executes V4 swaps and settles coins to recipient\",\"params\":{\"data\":\"Encoded CallbackData\"},\"returns\":{\"_0\":\"Encoded UnlockResult containing coin amount and pool info\"}}},\"title\":\"SwapWithLimitOrders\",\"version\":1},\"userdoc\":{\"errors\":{\"EmptyV4Route()\":[{\"notice\":\"Error thrown when v4Route is empty\"}],\"InsufficientOutputAmount()\":[{\"notice\":\"Error thrown when final swap output is below minimum\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidLimitOrderConfig()\":[{\"notice\":\"Error thrown when config does not match canonical config\"}],\"InvalidMultiple()\":[{\"notice\":\"A multiple is \\u2264 1.0x\"}],\"InvalidPercent()\":[{\"notice\":\"A percentage is zero\"}],\"LengthMismatch()\":[{\"notice\":\"Multiples and percentages arrays have different lengths\"}],\"OnlyPoolManager()\":[{\"notice\":\"Error thrown when caller is not the pool manager\"}],\"PercentOverflow()\":[{\"notice\":\"Percentages sum exceeds 100%\"}],\"UnsafeCast()\":[{\"notice\":\"Thrown when a valude greater than type(uint160).max is cast to uint160\"}],\"ZeroSwapDelta()\":[{\"notice\":\"Error thrown when swap delta is zero\"}]},\"events\":{\"LimitOrderConfigUpdated(uint256[],uint256[])\":{\"notice\":\"Emitted when limit order config is updated\"},\"SwapWithLimitOrdersExecuted(address,address,(address,address,uint24,int24,address),int24,int24,int128,int128,uint160,(bytes32,uint256,uint256)[])\":{\"notice\":\"Emitted when a swap with limit order placement is executed\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor\"},\"getLimitOrderConfig()\":{\"notice\":\"Returns the current limit order configuration\"},\"msgSender()\":{\"notice\":\"Returns the address of the message sender.\"},\"poolManager()\":{\"notice\":\"The Uniswap V4 pool manager\"},\"setLimitOrderConfig((uint256[],uint256[]))\":{\"notice\":\"Sets the canonical limit order configuration\"},\"swapRouter()\":{\"notice\":\"The Uniswap V3 swap router\"},\"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))\":{\"notice\":\"Executes a swap with automatic limit order placement and filling\"},\"unlockCallback(bytes)\":{\"notice\":\"Callback function called by the pool manager during unlock\"},\"zoraLimitOrderBook()\":{\"notice\":\"The limit order book contract\"}},\"notice\":\"Standalone router contract that executes swaps with automatic limit order placement and filling.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/router/SwapWithLimitOrders.sol\":\"SwapWithLimitOrders\"},\"evmVersion\":\"prague\",\"libraries\":{},\"metadata\":{\"appendCBOR\":false,\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":100},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/\",\":@uniswap/v4-core/=node_modules/@uniswap/v4-core/\",\":@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/\",\":@zoralabs/coins/=node_modules/@zoralabs/coins/\",\":@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/\",\":ds-test/=node_modules/ds-test/src/\",\":forge-std/=node_modules/forge-std/src/\",\":permit2/src/=node_modules/@uniswap/permit2/src/\",\":solady/=node_modules/solady/src/\",\":solmate/=node_modules/solmate/src/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6\",\"dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a\"]},\"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol\":{\"keccak256\":\"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0\",\"dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100\",\"dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037\",\"dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d\",\"dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508\",\"dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de\",\"dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol\":{\"keccak256\":\"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0\",\"dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN\"]},\"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol\":{\"keccak256\":\"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72\",\"dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk\"]},\"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol\":{\"keccak256\":\"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7\",\"dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol\":{\"keccak256\":\"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1\",\"dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol\":{\"keccak256\":\"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8\",\"dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol\":{\"keccak256\":\"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec\",\"dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol\":{\"keccak256\":\"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4\",\"dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi\"]},\"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol\":{\"keccak256\":\"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d\",\"dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol\":{\"keccak256\":\"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de\",\"dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d\"]},\"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol\":{\"keccak256\":\"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f\",\"dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK\"]},\"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol\":{\"keccak256\":\"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e\",\"dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi\"]},\"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol\":{\"keccak256\":\"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd\",\"dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt\"]},\"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol\":{\"keccak256\":\"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb\",\"dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy\"]},\"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol\":{\"keccak256\":\"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52\",\"dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC\"]},\"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol\":{\"keccak256\":\"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99\",\"dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD\"]},\"node_modules/@uniswap/v4-core/src/libraries/Position.sol\":{\"keccak256\":\"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2\",\"dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5\"]},\"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol\":{\"keccak256\":\"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59\",\"dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj\"]},\"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol\":{\"keccak256\":\"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0\",\"dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY\"]},\"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol\":{\"keccak256\":\"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70\",\"dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva\"]},\"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol\":{\"keccak256\":\"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9\",\"dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H\"]},\"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol\":{\"keccak256\":\"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782\",\"dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K\"]},\"node_modules/@uniswap/v4-core/src/types/Currency.sol\":{\"keccak256\":\"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01\",\"dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5\"]},\"node_modules/@uniswap/v4-core/src/types/PoolId.sol\":{\"keccak256\":\"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918\",\"dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y\"]},\"node_modules/@uniswap/v4-core/src/types/PoolKey.sol\":{\"keccak256\":\"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639\",\"dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi\"]},\"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol\":{\"keccak256\":\"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07\",\"dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol\":{\"keccak256\":\"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e\",\"dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs\"]},\"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol\":{\"keccak256\":\"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4\",\"dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol\":{\"keccak256\":\"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace\",\"dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85\",\"dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol\":{\"keccak256\":\"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a\",\"dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol\":{\"keccak256\":\"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46\",\"dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7\"]},\"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol\":{\"keccak256\":\"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b\",\"dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx\"]},\"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol\":{\"keccak256\":\"0x89992a589697a2173547514c2b38a023b329f8300a307903352d699b910b9358\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f16db7133c3ff8a98473d7f1e273af67a7c6784f14e3e269811a7a428126eafd\",\"dweb:/ipfs/QmU7beBt7hqYJMdXpaFPxVMZGKq8GdCTv7K7qMZ2uBt2JQ\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol\":{\"keccak256\":\"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070\",\"dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol\":{\"keccak256\":\"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a\",\"dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol\":{\"keccak256\":\"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348\",\"dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol\":{\"keccak256\":\"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509\",\"dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol\":{\"keccak256\":\"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755\",\"dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol\":{\"keccak256\":\"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298\",\"dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol\":{\"keccak256\":\"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74\",\"dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol\":{\"keccak256\":\"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7\",\"dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3\"]},\"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol\":{\"keccak256\":\"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c\",\"dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol\":{\"keccak256\":\"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485\",\"dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57\"]},\"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9\",\"dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol\":{\"keccak256\":\"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14\",\"dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP\"]},\"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol\":{\"keccak256\":\"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4\",\"dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b\",\"dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px\"]},\"src/libs/SwapLimitOrders.sol\":{\"keccak256\":\"0xfe1d3d583d323cc9f1053b048eef645feb6d9c80744b836ecc0ee5c6fa242cd5\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://ae59aaa5e8420e9b8a61f1ff1eaa09a3481f47223842643b66601a2b28490aaf\",\"dweb:/ipfs/QmVS6AXRNV14eaywvrYqGhLvtZfND2ydnubBoiyqeHYrKY\"]},\"src/router/ISetLimitOrderConfig.sol\":{\"keccak256\":\"0x0aa4874d3640a56782781c2822639c39b12f3267906eb3b093e3de4e38e2d054\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://286bf6d6893ae7c02e9a4e44de4cb6d60b8bc9a50248c08f3b325756dc34fdc8\",\"dweb:/ipfs/QmeKMiRmtCdZ4jRpfSxVySqchmRgW7SqUVxoqXBGQqB3UU\"]},\"src/router/SwapWithLimitOrders.sol\":{\"keccak256\":\"0x7b9aa57541de7521d588e6a3f0867529ba3e9865f07f092a7886bb10f5b0e3cd\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://9193c27ad90b4f91183d53999a0974790006278a3edd432a754f87a16ec55017\",\"dweb:/ipfs/QmU7R5NUgMMezSz1DQ9GC522NT69Uxm5AiY2f9sUtCsxq3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IZoraLimitOrderBook","name":"zoraLimitOrderBook_","type":"address"},{"internalType":"contract ISwapRouter","name":"swapRouter_","type":"address"},{"internalType":"address","name":"permit2_","type":"address"},{"internalType":"address","name":"owner_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"EmptyV4Route"},{"inputs":[{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"uint256","name":"availableAmount","type":"uint256"}],"type":"error","name":"InsufficientInputCurrency"},{"inputs":[],"type":"error","name":"InsufficientOutputAmount"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[],"type":"error","name":"InvalidLimitOrderConfig"},{"inputs":[],"type":"error","name":"InvalidMultiple"},{"inputs":[],"type":"error","name":"InvalidPercent"},{"inputs":[],"type":"error","name":"LengthMismatch"},{"inputs":[],"type":"error","name":"OnlyPoolManager"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"OwnableInvalidOwner"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"type":"error","name":"OwnableUnauthorizedAccount"},{"inputs":[],"type":"error","name":"PercentOverflow"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UnsafeCast"},{"inputs":[],"type":"error","name":"V3RouteDoesNotConnectToV4RouteStart"},{"inputs":[],"type":"error","name":"ZeroSwapDelta"},{"inputs":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]","indexed":false},{"internalType":"uint256[]","name":"percentages","type":"uint256[]","indexed":false}],"type":"event","name":"LimitOrderConfigUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"struct PoolKey","name":"poolKey","type":"tuple","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"indexed":false},{"internalType":"int24","name":"tickBeforeSwap","type":"int24","indexed":false},{"internalType":"int24","name":"tickAfterSwap","type":"int24","indexed":false},{"internalType":"int128","name":"amount0","type":"int128","indexed":false},{"internalType":"int128","name":"amount1","type":"int128","indexed":false},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160","indexed":false},{"internalType":"struct SwapWithLimitOrders.CreatedOrder[]","name":"orders","type":"tuple[]","components":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint256","name":"multiple","type":"uint256"},{"internalType":"uint256","name":"percentage","type":"uint256"}],"indexed":false}],"type":"event","name":"SwapWithLimitOrdersExecuted","anonymous":false},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptOwnership"},{"inputs":[],"stateMutability":"view","type":"function","name":"getLimitOrderConfig","outputs":[{"internalType":"struct LimitOrderConfig","name":"","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"msgSender","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"struct LimitOrderConfig","name":"config","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]}],"stateMutability":"nonpayable","type":"function","name":"setLimitOrderConfig"},{"inputs":[],"stateMutability":"view","type":"function","name":"swapRouter","outputs":[{"internalType":"contract ISwapRouter","name":"","type":"address"}]},{"inputs":[{"internalType":"struct SwapWithLimitOrders.SwapWithLimitOrdersParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"struct LimitOrderConfig","name":"limitOrderConfig","type":"tuple","components":[{"internalType":"uint256[]","name":"multiples","type":"uint256[]"},{"internalType":"uint256[]","name":"percentages","type":"uint256[]"}]},{"internalType":"address","name":"inputCurrency","type":"address"},{"internalType":"uint256","name":"inputAmount","type":"uint256"},{"internalType":"bytes","name":"v3Route","type":"bytes"},{"internalType":"struct PoolKey[]","name":"v4Route","type":"tuple[]","components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}]},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}]}],"stateMutability":"payable","type":"function","name":"swapWithLimitOrders","outputs":[{"internalType":"BalanceDelta","name":"delta","type":"int256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraLimitOrderBook","outputs":[{"internalType":"contract IZoraLimitOrderBook","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"acceptOwnership()":{"details":"The new owner accepts the ownership transfer."},"constructor":{"params":{"owner_":"The owner address","permit2_":"The Permit2 contract address (0x000000000022D473030F116dDEE9F6B43aC78BA3)","poolManager_":"The Uniswap V4 pool manager","swapRouter_":"The Uniswap V3 swap router","zoraLimitOrderBook_":"The limit order book contract"}},"getLimitOrderConfig()":{"returns":{"_0":"The current limit order configuration"}},"msgSender()":{"returns":{"_0":"The address of the message sender."}},"owner()":{"details":"Returns the address of the current owner."},"pendingOwner()":{"details":"Returns the address of the pending owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"setLimitOrderConfig((uint256[],uint256[]))":{"details":"Only callable by the owner","params":{"config":"The new limit order configuration"}},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"params":{"params":"The swap and limit order parameters"},"returns":{"delta":"The balance delta from the swap"}},"transferOwnership(address)":{"details":"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer."},"unlockCallback(bytes)":{"details":"This function executes V4 swaps and settles coins to recipient","params":{"data":"Encoded CallbackData"},"returns":{"_0":"Encoded UnlockResult containing coin amount and pool info"}}},"version":1},"userdoc":{"kind":"user","methods":{"constructor":{"notice":"Constructor"},"getLimitOrderConfig()":{"notice":"Returns the current limit order configuration"},"msgSender()":{"notice":"Returns the address of the message sender."},"poolManager()":{"notice":"The Uniswap V4 pool manager"},"setLimitOrderConfig((uint256[],uint256[]))":{"notice":"Sets the canonical limit order configuration"},"swapRouter()":{"notice":"The Uniswap V3 swap router"},"swapWithLimitOrders((address,(uint256[],uint256[]),address,uint256,bytes,(address,address,uint24,int24,address)[],uint256))":{"notice":"Executes a swap with automatic limit order placement and filling"},"unlockCallback(bytes)":{"notice":"Callback function called by the pool manager during unlock"},"zoraLimitOrderBook()":{"notice":"The limit order book contract"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","@uniswap/universal-router/contracts/=node_modules/@uniswap/universal-router/contracts/","@uniswap/v4-core/=node_modules/@uniswap/v4-core/","@uniswap/v4-periphery/=node_modules/@uniswap/v4-periphery/","@zoralabs/coins/=node_modules/@zoralabs/coins/","@zoralabs/shared-contracts/=node_modules/@zoralabs/shared-contracts/src/","ds-test/=node_modules/ds-test/src/","forge-std/=node_modules/forge-std/src/","permit2/src/=node_modules/@uniswap/permit2/src/","solady/=node_modules/solady/src/","solmate/=node_modules/solmate/src/"],"optimizer":{"enabled":true,"runs":100},"metadata":{"bytecodeHash":"none","appendCBOR":false},"compilationTarget":{"src/router/SwapWithLimitOrders.sol":"SwapWithLimitOrders"},"evmVersion":"prague","libraries":{},"viaIR":true},"sources":{"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xff6d0bb2e285473e5311d9d3caacb525ae3538a80758c10649a4d61029b017bb","urls":["bzz-raw://8ed324d3920bb545059d66ab97d43e43ee85fd3bd52e03e401f020afb0b120f6","dweb:/ipfs/QmfEckWLmZkDDcoWrkEvMWhms66xwTLff9DDhegYpvHo1a"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable2Step.sol":{"keccak256":"0xdcad8898fda432696597752e8ec361b87d85c82cb258115427af006dacf7128c","urls":["bzz-raw://e2c9d517f0c136d54bd00cd57959d25681d4d6273f5bbbc263afe228303772f0","dweb:/ipfs/QmReNFjXBiufByiAAzfSQ2SM5r3qeUErn46BmN3yVRvrek"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0xd5ea07362ab630a6a3dee4285a74cf2377044ca2e4be472755ad64d7c5d4b69d","urls":["bzz-raw://da5e832b40fc5c3145d3781e2e5fa60ac2052c9d08af7e300dc8ab80c4343100","dweb:/ipfs/QmTzf7N5ZUdh5raqtzbM11yexiUoLC9z3Ws632MCuycq1d"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0x0afcb7e740d1537b252cb2676f600465ce6938398569f09ba1b9ca240dde2dfc","urls":["bzz-raw://1c299900ac4ec268d4570ecef0d697a3013cd11a6eb74e295ee3fbc945056037","dweb:/ipfs/Qmab9owJoxcA7vJT5XNayCMaUR1qxqj1NDzzisduwaJMcZ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0x1a6221315ce0307746c2c4827c125d821ee796c74a676787762f4778671d4f44","urls":["bzz-raw://1bb2332a7ee26dd0b0de9b7fe266749f54820c99ab6a3bcb6f7e6b751d47ee2d","dweb:/ipfs/QmcRWpaBeCYkhy68PR3B4AgD7asuQk7PwkWxrvJbZcikLF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x982c5cb790ab941d1e04f807120a71709d4c313ba0bfc16006447ffbd27fbbd5","urls":["bzz-raw://8150ceb4ac947e8a442b2a9c017e01e880b2be2dd958f1fa9bc405f4c5a86508","dweb:/ipfs/QmbcBmFX66AY6Kbhnd5gx7zpkgqnUafo43XnmayAM7zVdB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2","urls":["bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12","dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0xac673fa1e374d9e6107504af363333e3e5f6344d2e83faf57d9bfd41d77cc946","urls":["bzz-raw://5982478dbbb218e9dd5a6e83f5c0e8d1654ddf20178484b43ef21dd2246809de","dweb:/ipfs/QmaB1hS68n2kG8vTbt7EPEzmrGhkUbfiFyykGGLsAr9X22"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IAllowanceTransfer.sol":{"keccak256":"0x37f0ac203b6ef605c9533e1a739477e8e9dcea90710b40e645a367f8a21ace29","urls":["bzz-raw://e0104d72aeaec1cd66cc232e7de7b7ead08608efcc179491b8a66387614670b0","dweb:/ipfs/QmfAZDyuNC9FXXbnJUwqHNwmAK6uRrXxtWEytLsxjskPsN"],"license":"MIT"},"node_modules/@uniswap/permit2/src/interfaces/IEIP712.sol":{"keccak256":"0xfdccf2b9639070803cd0e4198427fb0df3cc452ca59bd3b8a0d957a9a4254138","urls":["bzz-raw://f7c936ac42ce89e827db905a1544397f8bdf46db34cdb6aa1b90dea42fdb4c72","dweb:/ipfs/QmVgurxo1N31qZqkPBirw9Z7S9tLYmv6jSwQp8R8ur2cBk"],"license":"MIT"},"node_modules/@uniswap/permit2/src/libraries/SafeCast160.sol":{"keccak256":"0x8a34e2beac108d74f89510c949983212b5f09307a93ee9e17a9d50e93f6bc8e9","urls":["bzz-raw://828697f9567ce617c5c1c8f76b6bcd250e93aea2c4f3ee188be6dff8443c19e7","dweb:/ipfs/QmafxeSPhUc9gGtNDLAw26oZooC5XNLhDMxHxYhJxL5Nwi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExtsload.sol":{"keccak256":"0x80b53ca4907d6f0088c3b931f2b72cad1dc4615a95094d96bd0fb8dff8d5ba43","urls":["bzz-raw://375c69148622aab7a3537d5fd37d373a8e9731022c8d87bdaee46233b0a99fe1","dweb:/ipfs/QmXFjdoYRxsA5B1kyuxEXgNf3FBoL1zPvy26Qy8EtpdFRN"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IExttload.sol":{"keccak256":"0xc6b68283ebd8d1c789df536756726eed51c589134bb20821b236a0d22a135937","urls":["bzz-raw://294394f72dfc219689209f4130d85601dfd0d63c8d47578050d312db70f9b6c8","dweb:/ipfs/QmTDMQ3oxCGHgEBU48a3Lp4S1rRjc8vVCxkhE5ZNej1bsY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IHooks.sol":{"keccak256":"0xc131ffa2d04c10a012fe715fe2c115811526b7ea34285cf0a04ce7ce8320da8d","urls":["bzz-raw://3b212358897db5d99c21244d88f97b2e788527552cb430629b472a8cc6289aec","dweb:/ipfs/QmQtwV4dDe2RYk2ErLpaAX7U82jWh1L6Lw2HRuKDvBi84G"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IPoolManager.sol":{"keccak256":"0xbdab3544da3d32dfdf7457baa94e17d5a3012952428559e013ffac45d067038e","urls":["bzz-raw://ce95ff864468e37c76adf71df061d4f3d6f3a5ec1f9bc3aea090463bc72798f4","dweb:/ipfs/QmSbWh1pLbz51yQF4HEu5NRhr8XVv9JYGEw1hq1HudAnCi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/IProtocolFees.sol":{"keccak256":"0x32a666e588a2f66334430357bb1e2424fe7eebeb98a3364b1dd16eb6ccca9848","urls":["bzz-raw://85751d302125881f72e5f8af051c2d5d9b1f606ebaea8ca7d04fccdd27cc252d","dweb:/ipfs/QmeRwomeh9NWm6A6fgNA4KZPQZHPpdKsPQyYsHSFmvud7J"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC20Minimal.sol":{"keccak256":"0xeccadf1bf69ba2eb51f2fe4fa511bc7bb05bbd6b9f9a3cb8e5d83d9582613e0f","urls":["bzz-raw://118757369892687b99ef46ce28d6861f62c098285bd7687a4f17f7e44e5f81de","dweb:/ipfs/QmUxqbYqQtcEwwFbb9e6BBMePEaSgN8C45v6RKubD4ib8d"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/interfaces/external/IERC6909Claims.sol":{"keccak256":"0xa586f345739e52b0488a0fe40b6e375cce67fdd25758408b0efcb5133ad96a48","urls":["bzz-raw://e8c557b7e52abdbbd82e415a1acc27921446a7fd090b7d4877e52be72619547f","dweb:/ipfs/QmXE2KNPbXmGX8BQF3ei6zhzRTnhoTQg39XmqMnkhbr6QK"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/BitMath.sol":{"keccak256":"0x51b9be4f5c4fd3e80cbc9631a65244a2eb2be250b6b7f128a2035080e18aee8d","urls":["bzz-raw://fe98bbd5498e912146b9319827fc63621eb66ff55d5baae0fa02a7a972ab8d1e","dweb:/ipfs/QmY5hCuyrtgsJtk4AavrxcvBkRrChfr4N6ZnhdC8roPpNi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/CustomRevert.sol":{"keccak256":"0x111ed3031b6990c80a93ae35dde6b6ac0b7e6af471388fdd7461e91edda9b7de","urls":["bzz-raw://c9ea883c98d6ae1829160d0977bb5195761cfd5bc81692d0a941f45717f594cd","dweb:/ipfs/QmZPwxzaeMNv536wzrAMrMswu7vMHuqPVpjcqL3YvCMoxt"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FixedPoint128.sol":{"keccak256":"0xad236e10853f4b4b20a35a9bb52b857c4fc79874846b7e444e06ead7f2630542","urls":["bzz-raw://0de1f9a06520b1a689660943faa14fc0b8344ab41fab9e6012ea34bff4b9b3eb","dweb:/ipfs/QmRNMPTyko7W6d6KxuTsnDBa9oZgDK4xiwRRq3H9ASTbwy"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/FullMath.sol":{"keccak256":"0x4fc73a00817193fd3cac1cc03d8167d21af97d75f1815a070ee31a90c702b4c2","urls":["bzz-raw://c3b2d66d36b1ad56b1ab6e2eb8a816740877b40b461c93f125e88621c8378e52","dweb:/ipfs/QmPGvMZzKQvNiWKd8aRzzdW7oAizwrMgcMtnaworDkVHFC"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/LiquidityMath.sol":{"keccak256":"0x000ef2eadcc1eb7b2c18a77655f94e76e0e860f605783484657ef65fd6eda353","urls":["bzz-raw://a766b620a7a22798b43c6c1f23b5c6cff0ebf588deb89842bad05208d448cd99","dweb:/ipfs/QmVKjaFJdzkqA3ey2Byum8iTCMssWVD8MmVC8rw62Tj5WD"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/Position.sol":{"keccak256":"0xddab2a831f1befb6abf5567e77c4582169ca8156cf69eb4f22d8e87f7226a3f9","urls":["bzz-raw://c79fe61b50f3b70cff503abfa6f5643fcbefb9b794855bee1019b1e6d9c083b2","dweb:/ipfs/QmbKmYNQesaMz8bo1b7TMHQcAwaDd3eDPrE5pAdPPZTtk5"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/SafeCast.sol":{"keccak256":"0x42c4a24f996a14d358be397b71f7ec9d7daf666aaec78002c63315a6ee67aa86","urls":["bzz-raw://c3db86e2ba3679105fc32edec656c70282e1fede6cab11217702443f6c26fa59","dweb:/ipfs/QmX4yaaSPdKQzYNRsezjTvZKsubzS8JRTEGFD3fPpTTCcj"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/StateLibrary.sol":{"keccak256":"0x96db333ee126a841dd959e38e452cc59d73583cb0437a1d48b2052e33a74f952","urls":["bzz-raw://8672bba1eb69608299b0904f4ff305238eb18479d371c26518f278c9ee184cd0","dweb:/ipfs/QmTLu3s6ECvsEDHStQv8HTVHYtvkviBbdjPrFJd4SpVRFY"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/libraries/TickMath.sol":{"keccak256":"0x4e1a11e154eb06106cb1c4598f06cca5f5ca16eaa33494ba2f0e74981123eca8","urls":["bzz-raw://a79a57f7b240783b045168d1c4f774ac1812caf8f9a83cb6959a86b0b07b6c70","dweb:/ipfs/QmTb5kvxwDNW8jDuQaqdJ445cCFejNkUqEB17Bjo8UBiva"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BalanceDelta.sol":{"keccak256":"0xa719c8fe51e0a9524280178f19f6851bcc3b3b60e73618f3d60905d35ae5569f","urls":["bzz-raw://7436928dc9de35c6c7c5c636cb51adaf295cfd590da83b19a004ae33cbec9ef9","dweb:/ipfs/QmRJ9yZkUpzk4433GX3LgVVL8jwpbSYSUwXcucKisf3v4H"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/BeforeSwapDelta.sol":{"keccak256":"0x2a774312d91285313d569da1a718c909655da5432310417692097a1d4dc83a78","urls":["bzz-raw://a2c7a0379955cff9c17ab9e61f95e42909aa5947c22740f86ce940d09856f782","dweb:/ipfs/QmaAuo8UBYXsGrVuKh8iRoAAdqwtg1jDq515cW1ZRP5m9K"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/Currency.sol":{"keccak256":"0x4a0b84b282577ff6f8acf13ec9f4d32dbb9348748b49611d00e68bee96609c93","urls":["bzz-raw://45f9d62ab3d51b52957279e353853ba1547c3182c9a1e3d1846ada4a90263b01","dweb:/ipfs/QmS8NG84ccQS1yXVD8cv3eKX7J1UKxuJhbUfHTQR2opKF5"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolId.sol":{"keccak256":"0x308311916ea0f5c2fd878b6a2751eb223d170a69e33f601fae56dfe3c5d392af","urls":["bzz-raw://669c2cd7ac17690b5d8831e0bda72822376c3a04b36afed6d31df4d75fe60918","dweb:/ipfs/QmT6EpkxqU8VF3WsgrZ66F3s1cCQRffR95z1HDYZz7ph6y"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolKey.sol":{"keccak256":"0xf89856e0580d7a4856d3187a76858377ccee9d59702d230c338d84388221b786","urls":["bzz-raw://6f3118fa189025695c37fdf0bdd1190f085ad097484d3c88cf4c56d1db65f639","dweb:/ipfs/QmamXpgtB8GV1CaFLvqefPWSoikLDhMk1yU4heBnVzU8gi"],"license":"MIT"},"node_modules/@uniswap/v4-core/src/types/PoolOperation.sol":{"keccak256":"0x7a1a107fc1f2208abb2c9364c8c54e56e98dca27673e9441bed2b949b6382162","urls":["bzz-raw://4ad2470383bc5595d5af17840c64971f457adac68895a4db41ba5c71a4478e07","dweb:/ipfs/QmdwKhBHDZFuqXrR2BfDBD9r7rB2ULGQBznsajRTkTmL4c"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDopplerErrors.sol":{"keccak256":"0xf78efeb8a0d37914bae9be8c6ed70d54a1d48305b3f9e3f8b95d20f9685640ea","urls":["bzz-raw://1e51cc18a8367dc9363a958f179cf2e8af662cbe41474647aa78424be781120e","dweb:/ipfs/QmNrxrY2P7FMRY7tJtV2n5eiPDyM5pRhBpn9wgDfgwdDCs"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IMsgSender.sol":{"keccak256":"0xd3928a356b5055c1699b3e51850e3f5febeca9b2e5fe8b13bd94444eec650f2c","urls":["bzz-raw://691bea8613e6549099039b28a1426fce547188fca70a1fe530f1722b244c3fd4","dweb:/ipfs/QmTZi3jQatxmGACRcGMnLoyaHu86rPU3xHxgS7k73a4vWm"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISupportsLimitOrderFill.sol":{"keccak256":"0xf02724436809e4a1acbecc11ab3e2cd4a0996dd6a9e881d724d54cd702c737fa","urls":["bzz-raw://8d4080b8a6626ecdb2d2e1b5bf0e117509649188d08ea7a0497d89f56f414ace","dweb:/ipfs/QmR4iB65jqWfnqCHdVFDy3NExQZ2kfa3gGBk7Ew2CfjoEG"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapRouter.sol":{"keccak256":"0xaf30c3539218aaf53155bc673c47b9cb425d8b4f9018628d506cd90b1a80dfd1","urls":["bzz-raw://930eab99801c6858ae3024eec13c8e6aceecca22cb25277a82bd99e0478eee85","dweb:/ipfs/Qmdiac9xNoydkqX7GQdkW2NnGHeJZS7XnDXPHSyiTxLkQi"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/coins/src/interfaces/IZoraLimitOrderBookCoinsInterface.sol":{"keccak256":"0xcf41c76b6dcf12b79c26ba93040c0ec6b68614c00597203c9330f4b769dcd389","urls":["bzz-raw://f2c1b3b86b7f67c3de52e7886697fc02de9837ba724cbfde34031ecf832faf7a","dweb:/ipfs/QmXStRKqsn9KC5WXQvTz57Qxqcr1WrB2Lrs1b28bZmL4Sy"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConstants.sol":{"keccak256":"0x0c17b040ed707c2353e4b238bf6bac90d22a71980ff1a091f763da281b7035bf","urls":["bzz-raw://083bb0022dd69434858946ea15b55d08483913baf57b428d600ede1eb5a19f46","dweb:/ipfs/QmXdNPvCm2Wv4R8Kbd7FYdnjjQCLWVGsr1DhCn5MrQj3Z7"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/DopplerMath.sol":{"keccak256":"0xafa02392a303dd86c7728266484b038b933bba74cad3a0fb44848a2463626683","urls":["bzz-raw://b307a817e4a60a99b1d4ccdbae1fe65b9ce7e6753bb2bb019c8588712cfbe96b","dweb:/ipfs/QmeCjTfTGADS9aU9x2zMyauak3vqSCmiWSEoSBhBVLWaAx"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/V3ToV4SwapLib.sol":{"keccak256":"0x89992a589697a2173547514c2b38a023b329f8300a307903352d699b910b9358","urls":["bzz-raw://f16db7133c3ff8a98473d7f1e273af67a7c6784f14e3e269811a7a428126eafd","dweb:/ipfs/QmU7beBt7hqYJMdXpaFPxVMZGKq8GdCTv7K7qMZ2uBt2JQ"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/BitMath.sol":{"keccak256":"0x4b5411b3868695776c707738846c79a2dd96bf2fd29e5fe8a47818cd20e1a19d","urls":["bzz-raw://3d9016ed3d9902f455ce8aba6cb4e29d7cb47e5af555de00bb802d7f01566070","dweb:/ipfs/QmeHZHQsXkuCN3i1YAt9WayYTTWWtNz5F8R1EspyEER2JN"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/CustomRevert.sol":{"keccak256":"0x5c17fced6eedcacc452d65842bb5904bd26b8a72a7973a2d6fac0167700328d4","urls":["bzz-raw://07044645057353591b0e9f03e0c6802d225307963b45f443c082bce0738c0c2a","dweb:/ipfs/QmWPo2kbp4jkm6CETwPjpqhdVgeA3EfJAtF1SVZMGbf8xU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FixedPoint96.sol":{"keccak256":"0x711b83cbdbbfe19afc1df6f45f2f71abb1b75305ecb288e36a37cc286bc8de46","urls":["bzz-raw://2957b0c179395705c49084b5b0c1033c0f47beeca043658a6c572226f5d07348","dweb:/ipfs/QmZQD8s7u1Kjnydkw6n9FUyzVK9Loo6gYSZXic732Y7J76"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/FullMath.sol":{"keccak256":"0xc6b0d61b8d60acb295d196a72f81e577007e822f63c737ae0fa87d63e228f074","urls":["bzz-raw://643ddf8897f3d2610ce5ac45c0571e86cd2a97542c2599121fa39a06daa95509","dweb:/ipfs/QmZ74RCf31apWy8UukKUrFi98kgSK6sRH68MFMGudPVpqx"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/LiquidityAmounts.sol":{"keccak256":"0x4811d0187e6ccf97d6323c597355967e481392cbdc65dea804f770dec91cece7","urls":["bzz-raw://8d41f633f2a92b4caeb0430096851b62b0be1f68915603ff8c5b220c693e9755","dweb:/ipfs/QmY9c5EwQVKi2Ak7xude2iUe7TGAdwmChUtwzwWcGb62PE"],"license":"UNLICENSED"},"node_modules/@zoralabs/coins/src/utils/uniswap/SafeCast.sol":{"keccak256":"0x5ec831c0fbdcb16091d35eee2e49d54eaadf7ce72d971aec9ea30f379cba258a","urls":["bzz-raw://9440106f4a5ff5d829ed68c82de4f92e171c4e9306e89d28fe75b4ca30b5f298","dweb:/ipfs/QmdLJitnGXNMZxG6XZxhvCMjoNEKzpZVJ2dnzGVXtWUSFf"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/SqrtPriceMath.sol":{"keccak256":"0x45ed757203ba04c7337435dd32e6231b768abf1709917b1d5e81ae1333513f75","urls":["bzz-raw://2fa319aa9c92b8da5a9634407ff487cbf0e0e6e234a99146f49c9ded06e8fd74","dweb:/ipfs/QmcqHrXBGpcfgMyb8DqyPYuafBKuESGcvJo1tfCAUrYokb"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/TickMath.sol":{"keccak256":"0xb8d86efe55d877582bdd2d2580d5c57c0fd955fdfb08116dba033f2e8f429e2e","urls":["bzz-raw://997e7fc24b30ff5464a5d3db14ac17eb07bed862bbce553a060f38affd8cb6f7","dweb:/ipfs/QmfQ8bo8zEGT6NEDVRdWJaCWaAXMoH7eH8xz14XA1p4Ex3"],"license":"MIT"},"node_modules/@zoralabs/coins/src/utils/uniswap/UnsafeMath.sol":{"keccak256":"0x44ea34293d502dcff60379eff5504313d7a042ebcae72e7d82ca937f199f3d84","urls":["bzz-raw://142c8209cf7ff88b88fa5fe41c0c22a59a8065e1726c0e18b0582facbead3c5c","dweb:/ipfs/QmRZZfsipKck8Ja4pPCK5GYFNfD5TeZggjqLVwJi1AjBzt"],"license":"MIT"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/ISwapRouter.sol":{"keccak256":"0xccaccab57b0d5a23ba1092ef049ece0352d276fbbf20baf22f5aa5ade46ffe64","urls":["bzz-raw://51a3e5c723fa25de65bc0a01778fa25eae3f6309afe239bdd2baeab5e995c485","dweb:/ipfs/QmXYticnovthF2AzTkwSQdUbeXhiu7TuSQTJLrUpTLDd57"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/interfaces/uniswap/IUniswapV3SwapCallback.sol":{"keccak256":"0xf2f5787cbc1a19abdedeacfa625ab7f733b1545e75e7085948dbe92c01e613d1","urls":["bzz-raw://a1161d4ce4f7f0740900fa69b6a745186d73b03767ff51fea368939542bec9b9","dweb:/ipfs/Qma3egiUREoMGPiji678bkhjnKgLPCdJKz7Ku9JK1iVkFM"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/BytesLib.sol":{"keccak256":"0x1835886738a49409fa8eff78c12bd09ced0545e0a52d5b26d66fadf2c80c8326","urls":["bzz-raw://9c50f3408c2f2c38c841962bf2437a8fc23249b733c5c53650819a4328151c14","dweb:/ipfs/QmNRKcsT6Mb9G8kEcNwiPAw5TouMdgTSNhSgQCy4f1pxdP"],"license":"GPL-2.0-or-later"},"node_modules/@zoralabs/shared-contracts/src/libs/UniswapV3/Path.sol":{"keccak256":"0x5d8c2b62745b5270877adc9b6037c9db98433735dff4b722e79a3d4506c29dff","urls":["bzz-raw://15d03ccf38d2f706a506d20c239045d26902fae92fd82869dd06b897f997f0b4","dweb:/ipfs/QmWSYmEyZCr619LfLQYY4fHMeEU178YzWsuqbZi9tYCxx4"],"license":"GPL-2.0-or-later"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x82a8534201a434e47401690a3b3725d2ec835f2bd8e340a3088628ec1c2cff18","urls":["bzz-raw://bcb05ff8ddb6b9a37fdab91436e40d29651c1250bb58f1684c51ca704dd5163b","dweb:/ipfs/QmSSwpPRuTu1KoBAnS5pH7GBJp4RexAdUY5NHbTcdzH9Px"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/SwapLimitOrders.sol":{"keccak256":"0xfe1d3d583d323cc9f1053b048eef645feb6d9c80744b836ecc0ee5c6fa242cd5","urls":["bzz-raw://ae59aaa5e8420e9b8a61f1ff1eaa09a3481f47223842643b66601a2b28490aaf","dweb:/ipfs/QmVS6AXRNV14eaywvrYqGhLvtZfND2ydnubBoiyqeHYrKY"],"license":"ZORA-DELAYED-OSL-v1"},"src/router/ISetLimitOrderConfig.sol":{"keccak256":"0x0aa4874d3640a56782781c2822639c39b12f3267906eb3b093e3de4e38e2d054","urls":["bzz-raw://286bf6d6893ae7c02e9a4e44de4cb6d60b8bc9a50248c08f3b325756dc34fdc8","dweb:/ipfs/QmeKMiRmtCdZ4jRpfSxVySqchmRgW7SqUVxoqXBGQqB3UU"],"license":"MIT"},"src/router/SwapWithLimitOrders.sol":{"keccak256":"0x7b9aa57541de7521d588e6a3f0867529ba3e9865f07f092a7886bb10f5b0e3cd","urls":["bzz-raw://9193c27ad90b4f91183d53999a0974790006278a3edd432a754f87a16ec55017","dweb:/ipfs/QmU7R5NUgMMezSz1DQ9GC522NT69Uxm5AiY2f9sUtCsxq3"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":92}