@zoralabs/limit-orders 0.2.0

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 (208) hide show
  1. package/.turbo/turbo-build$colon$js.log +85 -0
  2. package/AUDIT_NOTES.md +33 -0
  3. package/AUDIT_RFP.md +408 -0
  4. package/CHANGELOG.md +25 -0
  5. package/GAS_COMPARISON_RESULTS.md +194 -0
  6. package/LICENSE +21 -0
  7. package/README.md +650 -0
  8. package/SPEC.md +291 -0
  9. package/abis/BalanceDeltaLibrary.json +15 -0
  10. package/abis/BeforeSwapDeltaLibrary.json +15 -0
  11. package/abis/CurrencyLibrary.json +25 -0
  12. package/abis/CustomRevert.json +28 -0
  13. package/abis/IAllowanceTransfer.json +486 -0
  14. package/abis/IAuthority.json +31 -0
  15. package/abis/ICoin.json +1074 -0
  16. package/abis/IDeployedCoinVersionLookup.json +21 -0
  17. package/abis/IDopplerErrors.json +44 -0
  18. package/abis/IEIP712.json +15 -0
  19. package/abis/IERC1363.json +373 -0
  20. package/abis/IERC165.json +21 -0
  21. package/abis/IERC20.json +185 -0
  22. package/abis/IERC20Minimal.json +172 -0
  23. package/abis/IERC6909Claims.json +288 -0
  24. package/abis/IERC7572.json +21 -0
  25. package/abis/IExtsload.json +64 -0
  26. package/abis/IExttload.json +40 -0
  27. package/abis/IHasCoinType.json +15 -0
  28. package/abis/IHasPoolKey.json +42 -0
  29. package/abis/IHasRewardsRecipients.json +54 -0
  30. package/abis/IHasSwapPath.json +60 -0
  31. package/abis/IHasTotalSupplyForPositions.json +15 -0
  32. package/abis/IHooks.json +789 -0
  33. package/abis/IMsgSender.json +15 -0
  34. package/abis/IPoolManager.json +1286 -0
  35. package/abis/IProtocolFees.json +174 -0
  36. package/abis/ISupportsLimitOrderFill.json +15 -0
  37. package/abis/ISwapPathRouter.json +92 -0
  38. package/abis/ISwapRouter.json +219 -0
  39. package/abis/IUniswapV3SwapCallback.json +25 -0
  40. package/abis/IUpgradeableDestinationV4Hook.json +84 -0
  41. package/abis/IUpgradeableDestinationV4HookWithUpdateableFee.json +95 -0
  42. package/abis/IUpgradeableV4Hook.json +112 -0
  43. package/abis/IZoraHookRegistry.json +188 -0
  44. package/abis/IZoraLimitOrderBook.json +623 -0
  45. package/abis/IZoraLimitOrderBookCoinsInterface.json +67 -0
  46. package/abis/IZoraV4CoinHook.json +610 -0
  47. package/abis/Permit2Payments.json +7 -0
  48. package/abis/Position.json +7 -0
  49. package/abis/SafeCast.json +7 -0
  50. package/abis/SafeCast160.json +7 -0
  51. package/abis/SafeERC20.json +34 -0
  52. package/abis/SimpleAccessManaged.json +57 -0
  53. package/abis/SimpleAccessManager.json +351 -0
  54. package/abis/SqrtPriceMath.json +22 -0
  55. package/abis/StateLibrary.json +80 -0
  56. package/abis/SwapLimitOrders.json +22 -0
  57. package/abis/SwapWithLimitOrders.json +457 -0
  58. package/abis/TickBitmap.json +18 -0
  59. package/abis/TickMath.json +24 -0
  60. package/abis/V3ToV4SwapLib.json +28 -0
  61. package/abis/ZoraLimitOrderBook.json +771 -0
  62. package/cache/solidity-files-cache.json +1 -0
  63. package/dist/index.cjs +760 -0
  64. package/dist/index.cjs.map +1 -0
  65. package/dist/index.d.ts +2 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +731 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/wagmiGenerated.d.ts +1012 -0
  70. package/dist/wagmiGenerated.d.ts.map +1 -0
  71. package/foundry.toml +29 -0
  72. package/gas_comparison.py +49 -0
  73. package/out/BalanceDelta.sol/BalanceDeltaLibrary.json +1 -0
  74. package/out/BeforeSwapDelta.sol/BeforeSwapDeltaLibrary.json +1 -0
  75. package/out/BitMath.sol/BitMath.json +1 -0
  76. package/out/BytesLib.sol/BytesLib.json +1 -0
  77. package/out/CoinCommon.sol/CoinCommon.json +1 -0
  78. package/out/CoinConfigurationVersions.sol/CoinConfigurationVersions.json +1 -0
  79. package/out/CoinConstants.sol/CoinConstants.json +1 -0
  80. package/out/Context.sol/Context.json +1 -0
  81. package/out/Currency.sol/CurrencyLibrary.json +1 -0
  82. package/out/CurrencyReserves.sol/CurrencyReserves.json +1 -0
  83. package/out/CustomRevert.sol/CustomRevert.json +1 -0
  84. package/out/DopplerMath.sol/DopplerMath.json +1 -0
  85. package/out/FixedPoint128.sol/FixedPoint128.json +1 -0
  86. package/out/FixedPoint96.sol/FixedPoint96.json +1 -0
  87. package/out/FullMath.sol/FullMath.json +1 -0
  88. package/out/IAllowanceTransfer.sol/IAllowanceTransfer.json +1 -0
  89. package/out/IAuthority.sol/IAuthority.json +1 -0
  90. package/out/ICoin.sol/ICoin.json +1 -0
  91. package/out/ICoin.sol/IHasCoinType.json +1 -0
  92. package/out/ICoin.sol/IHasPoolKey.json +1 -0
  93. package/out/ICoin.sol/IHasSwapPath.json +1 -0
  94. package/out/ICoin.sol/IHasTotalSupplyForPositions.json +1 -0
  95. package/out/IDeployedCoinVersionLookup.sol/IDeployedCoinVersionLookup.json +1 -0
  96. package/out/IDopplerErrors.sol/IDopplerErrors.json +1 -0
  97. package/out/IEIP712.sol/IEIP712.json +1 -0
  98. package/out/IERC1363.sol/IERC1363.json +1 -0
  99. package/out/IERC165.sol/IERC165.json +1 -0
  100. package/out/IERC20.sol/IERC20.json +1 -0
  101. package/out/IERC20Minimal.sol/IERC20Minimal.json +1 -0
  102. package/out/IERC6909Claims.sol/IERC6909Claims.json +1 -0
  103. package/out/IERC7572.sol/IERC7572.json +1 -0
  104. package/out/IExtsload.sol/IExtsload.json +1 -0
  105. package/out/IExttload.sol/IExttload.json +1 -0
  106. package/out/IHasRewardsRecipients.sol/IHasRewardsRecipients.json +1 -0
  107. package/out/IHooks.sol/IHooks.json +1 -0
  108. package/out/IMsgSender.sol/IMsgSender.json +1 -0
  109. package/out/IPoolManager.sol/IPoolManager.json +1 -0
  110. package/out/IProtocolFees.sol/IProtocolFees.json +1 -0
  111. package/out/ISupportsLimitOrderFill.sol/ISupportsLimitOrderFill.json +1 -0
  112. package/out/ISwapPathRouter.sol/ISwapPathRouter.json +1 -0
  113. package/out/ISwapRouter.sol/ISwapRouter.json +1 -0
  114. package/out/IUniswapV3SwapCallback.sol/IUniswapV3SwapCallback.json +1 -0
  115. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4Hook.json +1 -0
  116. package/out/IUpgradeableV4Hook.sol/IUpgradeableDestinationV4HookWithUpdateableFee.json +1 -0
  117. package/out/IUpgradeableV4Hook.sol/IUpgradeableV4Hook.json +1 -0
  118. package/out/IZoraHookRegistry.sol/IZoraHookRegistry.json +1 -0
  119. package/out/IZoraLimitOrderBook.sol/IZoraLimitOrderBook.json +1 -0
  120. package/out/IZoraLimitOrderBookCoinsInterface.sol/IZoraLimitOrderBookCoinsInterface.json +1 -0
  121. package/out/IZoraV4CoinHook.sol/IZoraV4CoinHook.json +1 -0
  122. package/out/LimitOrderBitmap.sol/LimitOrderBitmap.json +1 -0
  123. package/out/LimitOrderCommon.sol/LimitOrderCommon.json +1 -0
  124. package/out/LimitOrderCreate.sol/LimitOrderCreate.json +1 -0
  125. package/out/LimitOrderFill.sol/LimitOrderFill.json +1 -0
  126. package/out/LimitOrderLiquidity.sol/LimitOrderLiquidity.json +1 -0
  127. package/out/LimitOrderQueues.sol/LimitOrderQueues.json +1 -0
  128. package/out/LimitOrderStorage.sol/LimitOrderStorage.json +1 -0
  129. package/out/LimitOrderTypes.sol/LimitOrderTypes.json +1 -0
  130. package/out/LimitOrderWithdraw.sol/LimitOrderWithdraw.json +1 -0
  131. package/out/LiquidityAmounts.sol/LiquidityAmounts.json +1 -0
  132. package/out/LiquidityMath.sol/LiquidityMath.json +1 -0
  133. package/out/Lock.sol/Lock.json +1 -0
  134. package/out/NonzeroDeltaCount.sol/NonzeroDeltaCount.json +1 -0
  135. package/out/Path.sol/Path.json +1 -0
  136. package/out/PathKey.sol/PathKeyLibrary.json +1 -0
  137. package/out/Permit2Payments.sol/Permit2Payments.json +1 -0
  138. package/out/PoolId.sol/PoolIdLibrary.json +1 -0
  139. package/out/Position.sol/Position.json +1 -0
  140. package/out/SafeCast.sol/SafeCast.json +1 -0
  141. package/out/SafeCast160.sol/SafeCast160.json +1 -0
  142. package/out/SafeERC20.sol/SafeERC20.json +1 -0
  143. package/out/SimpleAccessManaged.sol/SimpleAccessManaged.json +1 -0
  144. package/out/SimpleAccessManager.sol/SimpleAccessManager.json +1 -0
  145. package/out/SqrtPriceMath.sol/SqrtPriceMath.json +1 -0
  146. package/out/StateLibrary.sol/StateLibrary.json +1 -0
  147. package/out/SwapLimitOrders.sol/SwapLimitOrders.json +1 -0
  148. package/out/SwapWithLimitOrders.sol/SwapWithLimitOrders.json +1 -0
  149. package/out/TickBitmap.sol/TickBitmap.json +1 -0
  150. package/out/TickMath.sol/TickMath.json +1 -0
  151. package/out/TransientSlot.sol/TransientSlot.json +1 -0
  152. package/out/TransientStateLibrary.sol/TransientStateLibrary.json +1 -0
  153. package/out/UniV4SwapToCurrency.sol/UniV4SwapToCurrency.json +1 -0
  154. package/out/UnsafeMath.sol/UnsafeMath.json +1 -0
  155. package/out/V3ToV4SwapLib.sol/V3ToV4SwapLib.json +1 -0
  156. package/out/ZoraLimitOrderBook.sol/ZoraLimitOrderBook.json +1 -0
  157. package/out/build-info/69718f10d1dc37f0.json +1 -0
  158. package/out/uniswap/BitMath.sol/BitMath.json +1 -0
  159. package/out/uniswap/CustomRevert.sol/CustomRevert.json +1 -0
  160. package/out/uniswap/FullMath.sol/FullMath.json +1 -0
  161. package/out/uniswap/SafeCast.sol/SafeCast.json +1 -0
  162. package/out/uniswap/TickMath.sol/TickMath.json +1 -0
  163. package/package/index.ts +1 -0
  164. package/package/wagmiGenerated.ts +738 -0
  165. package/package.json +57 -0
  166. package/remappings.txt +11 -0
  167. package/src/IZoraLimitOrderBook.sol +195 -0
  168. package/src/ZoraLimitOrderBook.sol +220 -0
  169. package/src/access/SimpleAccessManaged.sol +76 -0
  170. package/src/access/SimpleAccessManager.sol +268 -0
  171. package/src/libs/LimitOrderBitmap.sol +84 -0
  172. package/src/libs/LimitOrderCommon.sol +91 -0
  173. package/src/libs/LimitOrderCreate.sol +277 -0
  174. package/src/libs/LimitOrderFill.sol +362 -0
  175. package/src/libs/LimitOrderLiquidity.sol +222 -0
  176. package/src/libs/LimitOrderQueues.sol +101 -0
  177. package/src/libs/LimitOrderStorage.sol +34 -0
  178. package/src/libs/LimitOrderTypes.sol +41 -0
  179. package/src/libs/LimitOrderWithdraw.sol +100 -0
  180. package/src/libs/Permit2Payments.sol +41 -0
  181. package/src/libs/SwapLimitOrders.sol +209 -0
  182. package/src/router/SwapWithLimitOrders.sol +454 -0
  183. package/test/LimitOrderAccessControl.t.sol +461 -0
  184. package/test/LimitOrderBitmap.t.sol +194 -0
  185. package/test/LimitOrderCreate.t.sol +348 -0
  186. package/test/LimitOrderFill.t.sol +1005 -0
  187. package/test/LimitOrderLibraries.t.sol +354 -0
  188. package/test/LimitOrderLiquidityPayouts.t.sol +333 -0
  189. package/test/LimitOrderV4Pools.t.sol +157 -0
  190. package/test/LimitOrderWithdraw.t.sol +653 -0
  191. package/test/SimpleAccessManager.t.sol +420 -0
  192. package/test/SwapWithLimitOrders.t.sol +107 -0
  193. package/test/SwapWithLimitOrdersRouter.t.sol +1073 -0
  194. package/test/gas/LimitOrderFillGas.t.sol +1008 -0
  195. package/test/gas/LimitOrderSwapGas.t.sol +403 -0
  196. package/test/gas/logs/gas_benchmarks_fill_20251201.log +30 -0
  197. package/test/gas/logs/gas_benchmarks_swap_20251201.log +27 -0
  198. package/test/unit/LimitOrderBitmapUnit.t.sol +276 -0
  199. package/test/unit/LimitOrderCreateUnit.t.sol +358 -0
  200. package/test/unit/SwapLimitOrdersUnit.t.sol +672 -0
  201. package/test/unit/SwapLimitOrdersValidation.t.sol +423 -0
  202. package/test/unit/SwapWithLimitOrdersUnit.t.sol +321 -0
  203. package/test/utils/BaseTest.sol +793 -0
  204. package/test/utils/TestableZoraLimitOrderBook.sol +54 -0
  205. package/tsconfig.build.json +10 -0
  206. package/tsconfig.json +9 -0
  207. package/tsup.config.ts +11 -0
  208. package/wagmi.config.ts +18 -0
@@ -0,0 +1 @@
1
+ {"abi":[{"type":"constructor","inputs":[{"name":"poolManager_","type":"address","internalType":"address"},{"name":"zoraCoinVersionLookup_","type":"address","internalType":"address"},{"name":"zoraHookRegistry_","type":"address","internalType":"address"},{"name":"authority_","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"balanceOf","inputs":[{"name":"maker","type":"address","internalType":"address"},{"name":"coin","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"create","inputs":[{"name":"key","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":"isCurrency0","type":"bool","internalType":"bool"},{"name":"orderSizes","type":"uint256[]","internalType":"uint256[]"},{"name":"orderTicks","type":"int24[]","internalType":"int24[]"},{"name":"maker","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32[]","internalType":"bytes32[]"}],"stateMutability":"payable"},{"type":"function","name":"fill","inputs":[{"name":"key","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":"isCurrency0","type":"bool","internalType":"bool"},{"name":"startTick","type":"int24","internalType":"int24"},{"name":"endTick","type":"int24","internalType":"int24"},{"name":"maxFillCount","type":"uint256","internalType":"uint256"},{"name":"fillReferral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fill","inputs":[{"name":"batches","type":"tuple[]","internalType":"struct IZoraLimitOrderBook.OrderBatch[]","components":[{"name":"key","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":"isCurrency0","type":"bool","internalType":"bool"},{"name":"orderIds","type":"bytes32[]","internalType":"bytes32[]"}]},{"name":"fillReferral","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getMaxFillCount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"poolManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPoolManager"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxFillCount","inputs":[{"name":"maxFillCount","type":"uint256","internalType":"uint256"}],"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":"withdraw","inputs":[{"name":"orderIds","type":"bytes32[]","internalType":"bytes32[]"},{"name":"coin","type":"address","internalType":"address"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"},{"name":"recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"zoraCoinVersionLookup","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IDeployedCoinVersionLookup"}],"stateMutability":"view"},{"type":"function","name":"zoraHookRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IZoraHookRegistry"}],"stateMutability":"view"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"LimitOrderCreated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCurrency0","type":"bool","indexed":false,"internalType":"bool"},{"name":"orderTick","type":"int24","indexed":false,"internalType":"int24"},{"name":"currentTick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderSize","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"LimitOrderFilled","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coinIn","type":"address","indexed":true,"internalType":"address"},{"name":"coinOut","type":"address","indexed":false,"internalType":"address"},{"name":"amountIn","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"amountOut","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"fillReferral","type":"address","indexed":false,"internalType":"address"},{"name":"fillReferralAmount","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"LimitOrderUpdated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"poolKeyHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCurrency0","type":"bool","indexed":false,"internalType":"bool"},{"name":"tick","type":"int24","indexed":false,"internalType":"int24"},{"name":"orderSize","type":"uint128","indexed":false,"internalType":"uint128"},{"name":"orderId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"isCancelled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"MakerBalanceUpdated","inputs":[{"name":"maker","type":"address","indexed":true,"internalType":"address"},{"name":"coin","type":"address","indexed":true,"internalType":"address"},{"name":"newBalance","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[]},{"type":"error","name":"AddressZero","inputs":[]},{"type":"error","name":"ArrayLengthMismatch","inputs":[]},{"type":"error","name":"CoinMismatch","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"expectedCoin","type":"address","internalType":"address"},{"name":"actualCoin","type":"address","internalType":"address"}]},{"type":"error","name":"InsufficientForwardedFunds","inputs":[]},{"type":"error","name":"InsufficientTransferFunds","inputs":[]},{"type":"error","name":"InvalidFillWindow","inputs":[{"name":"startTick","type":"int24","internalType":"int24"},{"name":"endTick","type":"int24","internalType":"int24"},{"name":"isCurrency0","type":"bool","internalType":"bool"}]},{"type":"error","name":"InvalidOrder","inputs":[]},{"type":"error","name":"InvalidPoolKey","inputs":[]},{"type":"error","name":"MaxFillCountCannotBeZero","inputs":[]},{"type":"error","name":"MinAmountNotReached","inputs":[{"name":"withdrawn","type":"uint256","internalType":"uint256"},{"name":"minAmountOut","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NativeValueMismatch","inputs":[]},{"type":"error","name":"NotPoolManager","inputs":[]},{"type":"error","name":"OnlyZoraHook","inputs":[]},{"type":"error","name":"OrderClosed","inputs":[]},{"type":"error","name":"OrderNotMaker","inputs":[]},{"type":"error","name":"PathMustHaveAtLeastOneStep","inputs":[]},{"type":"error","name":"RouterMsgSenderInvalid","inputs":[]},{"type":"error","name":"UnknownCallback","inputs":[]},{"type":"error","name":"UnlockedFillNotAllowed","inputs":[]},{"type":"error","name":"ZeroMaker","inputs":[]},{"type":"error","name":"ZeroOrderSize","inputs":[]},{"type":"error","name":"ZeroRealizedOrder","inputs":[]}],"bytecode":{"object":"0x60e03461017d57601f615d0138819003918201601f19168301916001600160401b038311848410176101815780849260809460405283398101031261017d5761004781610195565b61005360208301610195565b907f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad602061008360408601610195565b946001600160a01b039061009990606001610195565b168060018060a01b03195f5416175f55604051908152a16001600160a01b0390811660805290811660a0521660c052604051615b5790816101aa8239608051818181601c0152818161031d015281816103e20152818161063d01528181610d47015281816110e401528181611536015281816115a4015281816115f90152818161165a0152818161179a015281816117ef01528181611aa201528181611d1c01528181611dd001528181611e0901528181611e4101528181612484015261282e015260a0518181816109a601526124a9015260c0518181816106e00152610f9c0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361017d5756fe60c080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b63570c108560e11b5f5260045ffd5b5f3560e01c9081635ef3e95514610994575080635f8fbad6146109335780637a9cf2731461081b5780637a9e5e4b1461078057806391dd73461461070f578063a6de70b4146106cb578063bf7e214f146106a4578063c2ec68ea146104eb578063c96d060b1461043a578063d8c3177214610411578063dc4c90d3146103cd578063eb07ed24146101565763f7888aec146100f6575f61000f565b346101525760403660031901126101525761010f610a08565b6101176109f2565b6001600160a01b039182165f9081525f516020615b375f395f51905f5260209081526040808320949093168252928352819020549051908152f35b5f80fd5b366003190161012081126101525760a0136101525760405161017781610a86565b6004356001600160a01b03811681036101525781526024356001600160a01b038116810361015257602082015260443562ffffff811681036101525760408201526064358060020b81036101525760608201526084356001600160a01b03811681036101525760808201526101ea6109d5565b9060c4356001600160401b03811161015257366023820112156101525780600401359061021682610bbc565b916102246040519384610b21565b8083526024602084019160051b8301019136831161015257602401905b8282106103bd5750505060e4356001600160401b03811161015257366023820112156101525780600401359061027682610bbc565b916102846040519384610b21565b8083526024602084019160051b8301019136831161015257602401905b8282106103a5575050610104359290506001600160a01b0383168303610152575f5460405163b700961360e01b8152336004820152306024820152633ac1fb4960e21b604482015290602090829060649082906001600160a01b03165afa90811561039a575f91610360575b50156103515761034d94610341947f0000000000000000000000000000000000000000000000000000000000000000612973565b60405191829182610bd3565b0390f35b6370dbefff60e11b5f5260045ffd5b90506020813d602011610392575b8161037b60209383610b21565b810103126101525761038c90610c0c565b8661030d565b3d915061036e565b6040513d5f823e3d90fd5b602080916103b2846109e4565b8152019101906102a1565b8135815260209182019101610241565b34610152575f366003190112610152576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610152575f3660031901126101525760205f516020615b175f395f51905f5254604051908152f35b34610152576020366003190112610152575f5460405163b700961360e01b815233600482015230602482015263c96d060b60e01b604482015290602090829060649082906001600160a01b03165afa90811561039a575f916104b1575b5015610351576004355f516020615b175f395f51905f5255005b90506020813d6020116104e3575b816104cc60209383610b21565b81010312610152576104dd90610c0c565b81610497565b3d91506104bf565b34610152576080366003190112610152576004356001600160401b0381116101525761051b903690600401610a32565b906105246109f2565b916064356001600160a01b0381169190829003610152576105e09261054a91369161106d565b926040519161055883610a86565b33835260208301948552604083019160018060a01b03168252606083016044358152608084019182526105b160405196879560208088015260018060a01b0390511660408701525160a0606087015260e0860190610c8e565b92516001600160a01b039081166080860152905160a085015290511660c083015203601f198101835282610b21565b6040519081610616816106085f94600260206106389801526040808401526060830190610a62565b03601f198101835282610b21565b604051809381926348c8949160e01b8352602060048401526024830190610a62565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561039a5761067357005b61068e903d805f833e6106868183610b21565b8101906127dc565b005b634e487b7160e01b5f52602160045260245ffd5b34610152575f366003190112610152575f546040516001600160a01b039091168152602090f35b34610152575f366003190112610152576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610152576020366003190112610152576004356001600160401b0381116101525736602382011215610152578060040135906001600160401b0382116101525736602483830101116101525761034d91602461076c92016110de565b604051918291602083526020830190610a62565b3461015257602036600319011261015257610799610a08565b5f546001600160a01b038116330361035157813b156107fa576001600160a01b0319166001600160a01b039091169081175f556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1005b506361798f2f60e11b5f9081526001600160a01b0391909116600452602490fd5b34610152576040366003190112610152576004356001600160401b0381116101525761084b903690600401610a32565b6108536109f2565b913681900360de1901905f5b8381101561068e578060051b820135838112156101525782019060c082016108878184611038565b9050610899575b50600191500161085f565b6108a66108ad9184611038565b369161106d565b60a0830135908115158092036101525761092861092d92826001966108d86106089551913690610b42565b92604051936108e685610ad0565b6108ee6124d0565b50845260208401525f60408401525f60608401526080830152868060a01b038b1660a083015260c082015260405192839160208301610cc1565b612801565b8661088e565b3461015257366003190161014081126101525760a013610152576109556109d5565b60c435908160020b82036101525760e435908160020b82036101525761012435916001600160a01b03831683036101525761068e936101043592610d36565b34610152575f366003190112610152577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a43590811515820361015257565b35908160020b820361015257565b602435906001600160a01b038216820361015257565b600435906001600160a01b038216820361015257565b35906001600160a01b038216820361015257565b9181601f84011215610152578235916001600160401b038311610152576020808501948460051b01011161015257565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610aa157604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610aa157604052565b60e081019081106001600160401b03821117610aa157604052565b604081019081106001600160401b03821117610aa157604052565b60c081019081106001600160401b03821117610aa157604052565b90601f801991011681019081106001600160401b03821117610aa157604052565b91908260a091031261015257604051610b5a81610a86565b8092610b6581610a1e565b8252610b7360208201610a1e565b602083015260408101359062ffffff82168203610152576080916040840152610b9e606082016109e4565b60608401520135906001600160a01b03821682036101525760800152565b6001600160401b038111610aa15760051b60200190565b60206040818301928281528451809452019201905f5b818110610bf65750505090565b8251845260209384019390920191600101610be9565b5190811515820361015257565b90610c2382610bbc565b610c306040519182610b21565b8281528092610c41601f1991610bbc565b0190602036910137565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b90602080835192838152019201905f5b818110610cab5750505090565b8251845260209384019390920191600101610c9e565b61018060c0610d339360208452610cdc602085018251610c4b565b60208101511515848301526040810151600290810b60e08601526060820151900b610100850152608081015161012085015260a08101516001600160a01b0316610140850152015161016080840152910190610c8e565b90565b90939291928215611022575b610d6b7f00000000000000000000000000000000000000000000000000000000000000006123de565b9283610f81575b610d7a61246d565b94610d836124d0565b50610d97610d92366004610b42565b6135a9565b5f525f516020615af75f395f51905f5260205260405f2096604051610dbb81610a86565b88546001600160a01b03908116825260018a0154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529a01541660808201529715610f50575b8651610e1f92919086908a906001600160a01b03166135cf565b9060020b90620d89e71982128015610f44575b610f255760020b90620d89e71982128015610f19575b610edb578415610ef857818113610edb575b60405194610e69602087610b21565b5f86525f36813760405198610e7d8a610ad0565b610e856124d0565b508952151560208901526040880152606087015260808601526001600160a01b031660a085015260c0840152610ed15750610608610928610ecf9260405192839160208301610cc1565b565b90610ecf91612544565b849250636ec3c1c760e11b5f52600452602452151560445260645ffd5b81811215610e5a57636ec3c1c760e11b5f526004526024525f60445260645ffd5b50620d89e88213610e48565b8491636ec3c1c760e11b5f5260045260020b602452151560445260645ffd5b50620d89e88213610e32565b909650610f5e366004610b42565b96606088015160020b15610f725790610e05565b63c256622b60e01b5f5260045ffd5b60405163082984f360e41b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561039a575f91610fe8575b50610d72576344863e8560e11b5f5260045ffd5b90506020813d60201161101a575b8161100360209383610b21565b810103126101525761101490610c0c565b5f610fd4565b3d9150610ff6565b5f516020615b175f395f51905f52549250610d42565b903590601e198136030182121561015257018035906001600160401b03821161015257602001918160051b3603831361015257565b92919061107981610bbc565b936110876040519586610b21565b602085838152019160051b810192831161015257905b8282106110a957505050565b813581526020918201910161109d565b6001600160401b038111610aa157601f01601f191660200190565b6003111561069057565b906060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57820191604081840312610152578035906003821015610152576020810135906001600160401b03821161015257019183601f84011215610152578235611157816110b9565b936111656040519586610b21565b81855260208501956020838301011161015257815f92602080930188378501015261118f826110d4565b81156118fa575061119f816110d4565b600181036112945750906111b161246d565b825183019260208401926020828603126101525751906001600160401b038211610152570192610160908490031261015257604051916111f083610ad0565b6111fd81602086016128ad565b835261120b60c08501610c0c565b602084015261121c60e0850161289f565b604084015261122e610100850161289f565b6060840152610120840151608084015261124b610140850161287b565b60a0840152610160840151906001600160401b03821161015257602061127692611280960101612916565b60c0830152612544565b60405161128e602082610b21565b5f815290565b6002906112a0816110d4565b036118eb5780518101916020828403126101525751906001600160401b03821161015257019060a08282031261015257604051906112dd82610a86565b6112e96020840161287b565b825260408301516001600160401b0381116101525760208061130f930191850101612916565b8060208301526113216060840161287b565b9182604082015261133f60a06080860151958660608501520161287b565b6080820181905290516001600160a01b03908116908216156118dc5782519182156118af579392905f945f94871515935b8587106113a2575b5050505050505081811061138d575050611280565b6303449a8f60e41b5f5260045260245260445ffd5b909192939495966113b3888361251c565b51805f525f516020615ad75f395f51905f5260205260405f20600481019182548060601c80156118af5789036118cd57600160ff8260501c166113f5816110d4565b036118be576003830154936002840154805f525f516020615af75f395f51905f5260205260405f206040519061142a82610a86565b80546001600160a01b0390811683526001820154808216602085015260a081901c62ffffff16604085015260b81c600290810b60608501819052920154166080830152156118af57611531916114e08761148381613c26565b9561149460ff8960581c1686613bcb565b5f9485525f516020615ab75f395f51905f52602090815260408087206001600160a01b0384168852825280872060028b900b885290915290942060ff60501b19891690915583856142fd565b5060406114ef8960801c614203565b8151906114fb82610ab5565b8760020b82528760181c60020b602083015282820152876060820152815180958192632d35e7ed60e11b83528660048401614229565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561039a575f9361187e575b508c605886901c60ff168061186f575b1561173c575081516001600160801b03608085901d1694906001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b15610152575f908e6115f46040519889938493630b0d9c0960e01b855260018060a01b0316906004850161476e565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af194851561039a5760ff988f965f516020615a975f395f51905f529660c09660029461167e9361172c575b505b81600f0b9160801d907f0000000000000000000000000000000000000000000000000000000000000000614ab7565b01549160018060a01b031697889660405193845260581c161515602083015260020b60408201525f6060820152856080820152600160a0820152a36001600160a01b038616820361170a57506116e1926001600160801b03909216919050614094565b968580611700575b6116fb57600101959493929190611370565b611378565b50888810156116e9565b8590630b34ff7d60e11b5f5260045260018060a01b031660245260445260645ffd5b5f61173691610b21565b5f61164d565b939160ff8660589593951c161580611863575b611775575b91600260ff9861167e5f516020615a975f395f51905f52969460c09661164f565b60208101516001600160801b03831695509193909290916001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b15610152575f908e6117ea6040519889938493630b0d9c0960e01b855260018060a01b0316906004850161476e565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af194851561039a5760ff988f965f516020615a975f395f51905f529660c09660029461167e93611853575b5094965094965050985050611754565b5f61185d91610b21565b5f611843565b505f82600f0b1361174f565b505f8460801d600f0b1361157e565b6118a091935060403d81116118a8575b6118988183610b21565b810190614213565b50915f61156e565b503d61188e565b63af61069360e01b5f5260045ffd5b632fec94b960e01b5f5260045ffd5b637383a4fd60e01b5f5260045ffd5b639fabe1c160e01b5f5260045ffd5b6310309b7d60e31b5f5260045ffd5b8251830193602080860194929350828603126101525751906001600160401b0382116101525701926101209084900312610152576040519161193b83610a86565b61194881602086016128ad565b835261195660c08501610c0c565b916020840192835260e08501516001600160401b038111610152576020908601019382601f860112156101525784519461198f86610bbc565b9561199d6040519788610b21565b80875260208088019160051b8301019185831161015257602001905b8282106123bf57505050604081019485526101008601516001600160401b038111610152576020908701019280601f850112156101525783516119fb81610bbc565b94611a096040519687610b21565b81865260208087019260051b82010192831161015257602001905b8282106123a757505050611a61611a4461012084840198868a520161287b565b60808301818152875190956001600160a01b0390921691906140a1565b505191611a6d836135a9565b93845f525f516020615af75f395f51905f52602052600160405f20015460b81c60020b15612306575b611ac660a085989798207f000000000000000000000000000000000000000000000000000000000000000061414a565b5050929050611ad88251151586613bcb565b865f525f516020615a775f395f51905f5260205260405f20549160018060a01b03905116925115159360405197611b0e89610b06565b885260020b60208801526001600160a01b0316604087015283860152608085015260a0840152845151611b4090610c19565b905f94818401955b87519081518110156122e6576020835192818360051b80920101519301015160a0880151151592895160020b935f146122d357611b8682948361412c565b935b60a08a01511515611b9882615188565b90611ba287615188565b901561228557611bfe91611bf99180826001600160a01b038083169082161161227a575b50611bf19050611be26001600160a01b038381169085166158a3565b926001600160a01b03926154b5565b1690856158ec565b61596c565b905b6001600160801b0382161561221b5789938893611d1760408e9460a08651600180831b038489015116600180841b0360808a015116805f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee602052855f2091611c6a83546124fa565b8093558651938452602084015288868401528b8301526080820152209889835199611c948b610b06565b828b528360020b60208c01528d60020b858c015260018060801b038a16818c015260808b019660018060801b0316875260a0808c0199838b5201511515995f9e865195611ce087610ab5565b600290810b87520b60208601526001600160801b0316858501528301528251632d35e7ed60e11b8152938492839260048401614229565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561039a575f9161225b575b508060801d90600f0b855f1461223157505f81600f0b125f1461222a57611d7a90614e78565b6001600160801b03165b945b6001600160801b0386161561221b5790518a9889958f939288906001600160801b039081169082168111612201575b505082518051611e659290611df4906001600160a01b0316307f00000000000000000000000000000000000000000000000000000000000000006159ba565b6020830151611e2d906001600160a01b0316307f00000000000000000000000000000000000000000000000000000000000000006159ba565b9082156121fa575f925b156121f35730935b7f0000000000000000000000000000000000000000000000000000000000000000614eb1565b6001600160801b0381166121cd575b5080519382519687915190608085015194600160a01b60019003604082015116998a9560a083015115159a8b81602086015160020b950151928a600160801b60019003848301511694602083015192604001518a5f525f516020615ad75f395f51905f5260205260405f20966003880190600160801b600190038c16600160801b6001900319835416178255611f09916142da565b60048701958654936001600160601b0319911b169460ff60581b9060581b1693600160501b9360ff60501b199162ffffff169069ffffffffffffffffffff191617169060181b65ffffff00000016179060301b63ffffffff60301b1617176001600160581b03161717905560020155835f525f516020615ab75f395f51905f5260205260405f20600160a01b6001900386165f5260205260405f208760020b5f5260205260405f209c8d978360028a015460801c90611fc791615511565b611fd49060028b016142da565b855f525f516020615a575f395f51905f5260205260405f20600160a01b6001900388165f526020528160405f209a015160020b98600160801b60019003906002015416159e60019f9a60209a5f516020615a375f395f51905f529c61219a575b50508f86908201805480155f1461217c578284555b825f525f516020615ad75f395f51905f528d52600160405f200155558f8060029160801b0360018060801b036001808060801b03848601541601161660018060801b03198284015416179101558e8060a01b0388165f525f516020615b375f395f51905f52895260405f208f8060a01b0388165f5289526120d760405f2060018060801b0386169054614094565b9a8f8060a01b0389165f525f516020615b375f395f51905f528a5260405f2060018060a01b0389165f528a528b60405f20556040519687528987015260020b60408601528401528b8060801b0316608083015260a08201527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c08b8060a01b03851692a3604051938452878060a01b031692a3612175828761251c565b5201611b48565b805f525f516020615ad75f395f51905f528d528260405f2055612049565b8360020b905f81830712910503908160020b60081d60010b5f528b52600160ff60405f2092161b81541790555f80612034565b6121ed90825160a0850151151560018060a01b03608087015116916154ce565b5f611e74565b5f93611e3f565b3092611e37565b611e6592935090612211916142c1565b919050875f611db5565b63f8db18c360e01b5f5260045ffd5b505f611d84565b90505f8112156122545761224490614e78565b6001600160801b03165b94611d86565b505f61224e565b612273915060403d81116118a8576118988183610b21565b505f611d54565b915091505f80611bc6565b6122c091611bf9919081816001600160a01b03808316908216116122c6575b506001600160a01b03926122b99291506154b5565b1684615819565b90611c00565b925090506122b95f6122a4565b926122de9082613738565b928193611b88565b505050509150506106089250610d33915060405192839160208301610bd3565b5f8581525f516020615af75f395f51905f526020908152604091829020865181546001600160a01b039182166001600160a01b031991821617835592880151600183018054958a0151898b015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b0319909716969096179190911794909417909355608087015160029091018054919093169116179055611a96565b602080916123b48461289f565b815201910190611a24565b81518152602091820191016119b9565b90816020910312610152575190565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa90811561039a575f9161243b575b50151590565b90506020813d602011612465575b8161245660209383610b21565b8101031261015257515f612435565b3d9150612449565b6040519061247a82610aeb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811683527f0000000000000000000000000000000000000000000000000000000000000000166020830152565b604051906124dd82610a86565b5f6080838281528260208201528260408201528260608201520152565b5f1981146125085760010190565b634e487b7160e01b5f52601160045260245ffd5b80518210156125305760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b9061254f81516135a9565b91825f525f516020615a775f395f51905f5260205260405f2061257281546124fa565b809155835f525f516020615af75f395f51905f5260205260405f209360405161259a81610a86565b85546001600160a01b0390811682526001870154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529701541660808201529415612776575b825160a086206125fc916001600160a01b031661414a565b505093905060c085019586515115612757576020860151151592805f525f516020615ab75f395f51905f5260205260405f206126388584613bcb565b60018060a01b03165f5260205260405f209660a0600180821b039101511695885151985f5b8a8110612671575050505050505050505050565b808a8a612681600194865161251c565b51805f525f516020615ad75f395f51905f5260205260405f2060048101548d8760ff8360501c166126b1816110d4565b149182612749575b82612736575b82612723575b505080612713575b6126dc575b505050500161265d565b61270a936126e982613c26565b60020b5f5260205260405f208a5f516020615b175f395f51905f528d613c46565b8a8a5f806126d2565b5061271e8882613bfa565b6126cd565b60301c63ffffffff161090508d5f6126c5565b91508d60ff8360581c16151514916126bf565b60028401548c1492506126b9565b50915050610ecf93505f516020615b175f395f51905f52929192613755565b9350825193606085015160020b6125e45763c256622b60e01b5f5260045ffd5b81601f82011215610152578051906127ad826110b9565b926127bb6040519485610b21565b8284526020838301011161015257815f9260208093018386015e8301015290565b906020828203126101525781516001600160401b03811161015257610d339201612796565b6040519081610616816106085f94600160206128299801526040808401526060830190610a62565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561039a576128655750565b612878903d805f833e6106868183610b21565b50565b51906001600160a01b038216820361015257565b519062ffffff8216820361015257565b51908160020b820361015257565b91908260a0910312610152576040516128c581610a86565b60806129118183956128d68161287b565b85526128e46020820161287b565b60208601526128f56040820161288f565b60408601526129066060820161289f565b60608601520161287b565b910152565b9080601f8301121561015257815161292d81610bbc565b9261293b6040519485610b21565b81845260208085019260051b82010192831161015257602001905b8282106129635750505090565b8151815260209182019101612956565b91959491936001600160a01b038316929091606091841561359a576129c5905f60806040516129a181610a86565b6129a96124d0565b81528260208201528660408201528680820152015284876140a1565b90612a06604051966129d688610a86565b82885299151560208801818152604089019b909b52848801958652608088019687526001600160a01b0392613bcb565b168061343b5750340361342c575b612a1d856123de565b612ba257506040805193602080860152610160850197612a408387018351610c4b565b51151560e08601520151956101206101008501528651809152602061018085019701905f5b818110612b8c575050505194603f1983820301610120840152602080875192838152019601905f5b818110612b735750505091610608612ae583612ac9612b09955f9899899860018060a01b0390511661014083015203601f198101835282610b21565b6040519283918760208401526040808401526060830190610a62565b6040519485809481936348c8949160e01b8352602060048401526024830190610a62565b03926001600160a01b03165af190811561039a575f91612b59575b508051810190602081830312610152576020810151916001600160401b03831161015257610d33926020809201920101612916565b612b6d91503d805f833e6106868183610b21565b5f612b24565b825160020b885260209788019790920191600101612a8d565b8251895260209889019890920191600101612a65565b9193959294855194612bb3866135a9565b94855f525f516020615af75f395f51905f52602052600160405f20015460b81c60020b1561338b575b612be960a088208a61414a565b5050929050612bfb8251151589613bcb565b875f525f516020615a775f395f51905f5260205260405f20549160018060a01b03905116925115159360405198612c318a610b06565b895260020b602089015260018060a01b0316604088015285870152608086015260a0850152612c64604087015151610c19565b915f5b6040880151805182101561337e576020835191818460051b8092010151920101519160a08801511515878a015160020b905f1461336d57612ca984918561412c565b925b60a08a01511515612cbb83615188565b90612cc586615188565b901561331f57612d0d91611bf99180826001600160a01b0380831690821611613314575b50612d059050611be26001600160a01b038381169085166158a3565b1690846158ec565b935b6001600160801b0385161561221b57612e3660408f948d958f89968f60a0808e8c805191600180851b038b83015116916080600180871b039101511690600180861b0382165f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee6020528b5f2092612d8884546124fa565b8094558c5194855260208501528b840152858301526080820152209a8b9388519b612db28d610b06565b868d52600289810b60208f01528c900b8a8e01526001600160801b03908116858e01521660808c0152818b01849052015186519015159c5f999196909190612df988610ab5565b600290810b88520b60208701526001600160801b0316868601528401528351632d35e7ed60e11b815294859384925f928492909160048401614229565b03926001600160a01b03165af190811561039a575f916132f5575b508060801d90600f0b865f146132d457505f81600f0b125f146132cd57612e7790614e78565b6001600160801b03165b6001600160801b0381161561221b578b958f9287938360018060801b036080880151168060018060801b038316106132b5575b5050612f0091928651612ed160018060a01b0382511630856159ba565b6020820151612eea906001600160a01b031630866159ba565b9183156132ae575f935b156132a7573094614eb1565b6001600160801b038116613281575b508a83519183519460a081015160a05285608086015192600160a01b600190036040880151169788938660a08a01511515996020015160020b9d015189600160801b600190038984015116926020810151906040015160a0515f525f516020615ad75f395f51905f5260205260405f20946003860190600160801b600190038916600160801b6001900319835416178255612fa9916142da565b60048501938454918c8c6001600160601b0319911b169460ff60581b9060581b1693600160501b9360ff60501b199162ffffff169069ffffffffffffffffffff191617169060181b65ffffff00000016179060301b63ffffffff60301b1617176001600160581b03161717905560020155815f525f516020615ab75f395f51905f5260205260405f20600160a01b6001900384165f5260205260405f205f6080528c60020b5f5260205260405f206080526080516002019a818c5460801c9061307191615511565b61307b908d6142da565b825f525f516020615a575f395f51905f5260205260405f20600160a01b6001900385165f526020528560405f2097015160020b95600160801b600190038d5416159d60019d60409f996020995f516020615a375f395f51905f529b61324c575b50506080518f0180548061322c5760a051608051555b60a0515f525f516020615ad75f395f51905f528b5260406001905f20015560a05190558e8060801b038f8060801b036001808060801b038454160116168f8060801b03198254161790558d8060a01b038e8060a01b038816165f525f516020615b375f395f51905f5288528e5f208e8060a01b0387165f5288526131808f5f208f8060801b0386169054614094565b998e8060a01b038f8060a01b038916165f525f516020615b375f395f51905f5289528f5f208f8060a01b0388165f5289528f8b905f20558f519586528886015260020b8e8501528301528a8060801b0316608082015260a05160a08201527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c08b8060a01b03851692a38851938452878060a01b031692a3613223828861251c565b52019050612c67565b805f525f516020615ad75f395f51905f528b5260a05160405f20556130f1565b8360020b905f81830712910503908160020b60081d60010b5f528a52604060019060ff905f2092161b81541790555f806130db565b6132a190845160a0850151151560018060a01b03608087015116916154ce565b5f612f0f565b5f94614eb1565b3093612ef4565b612f009350906132c4916142c1565b9150835f612eb4565b505f612e81565b90505f8112156132cd576132e790614e78565b6001600160801b0316612e81565b61330d915060403d81116118a8576118988183610b21565b505f612e51565b915091505f80612ce9565b61335a91611bf9919081816001600160a01b0380831690821611613360575b506001600160a01b03926133539291506154b5565b1683615819565b93612d0f565b925090506133535f61333e565b6133779084613738565b8392612cab565b5050509550935050505090565b5f8681525f516020615af75f395f51905f526020908152604091829020895181546001600160a01b039182166001600160a01b0319918216178355928b0151600183018054958d01518b8e015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b031990971696909617919091179490941790935560808a015160029091018054919093169116179055612bdc565b636d295d4f60e11b5f5260045ffd5b3461342c576040516370a0823160e01b815230600482015291602083602481855afa92831561039a575f93613566575b506040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f875af190811561039a575f9161352c575b50156134e7576020602492604051938480926370a0823160e01b82523060048301525afa91821561039a575f926134f6575b506134e19192614094565b14612a14575b637627529f60e01b5f5260045ffd5b91506020823d602011613524575b8161351160209383610b21565b81010312610152576134e19151916134d6565b3d9150613504565b90506020813d60201161355e575b8161354760209383610b21565b810103126101525761355890610c0c565b5f6134a4565b3d915061353a565b9092506020813d602011613592575b8161358260209383610b21565b810103126101525751915f61346b565b3d9150613575565b633b77ab5760e11b5f5260045ffd5b6040516135ba602082018093610c4b565b60a081526135c960c082610b21565b51902090565b90919493946135f3606084015160020b9260a0627fffff8960020b1495209061414a565b5050905082810780155f146136e85750925b82156136d4578280620d89e719050260020b8380620d89e8050260020b94858160020b8381125f146136c35750505080935b613641818661412c565b95808760020b136136b9575b506136589085613738565b90808260020b126136b1575b50627ffffe198660020b14613692575061367f575050509190565b92945090911561368d575090565b905090565b929693945091929091156136aa57501561368d575090565b9250505090565b90505f613664565b955061365861364d565b959195131561363757859450613637565b634e487b7160e01b5f52601260045260245ffd5b60029190910b90835f831261370a575061370191614114565b60020b92613605565b906137189061370193614114565b614114565b60020b5f190190627fffff198212627fffff83131761250857565b600291820b910b0390627fffff198212627fffff83131761250857565b6080830191825115613bc45761376b84516135a9565b6020850151158015613bae5785516020015191969594916001600160a01b03165b60018060a01b031696805f526005850160205260405f2060018060a01b0389165f5260205260405f2097815f526006860160205260405f209060018060a01b03165f5260205260405f20905f526004850160205260405f2054965f935193604088015160020b92606089015160020b9360608a51015160020b905b87841061381e575b50505050505050505050505050565b5f9d9495969798999a9b9c9d50875f14613ba257868160020b13155b613b9a5760020b815f8183071291050393875f14613aa0578d60ff8616908660020b60081d60010b5f5260205260405f205f198260ff031c9054169586159687159785895f14613a8b5750610152578492817f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff9460018060801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b945b8815613a8057878660020b13155b613a795715613a5f57845f528260205260405f209687548015613a42579490919293945b80151580613a39575b15613a275790818f96959493928e6001915f520160205260405f208054976004820154600160ff8260501c16613988816110d4565b03613a1c5760301c63ffffffff16146139ed57908f918f8f938d916139ad8e85613bfa565b156139e05791816139d29593600198979593519160a08a80821b039101511695613c46565b0194935b949091929361394a565b50505050505094936139d6565b50509b9a999897509594909d9293505b8615613a1757613a0c9061371d565b9b9a9992919b613807565b613a0c565b5050505094936139d6565b509a999897965094939c91909c6139fd565b508a8210613953565b509594909d92939a9998979650865f14613a1757613a179061371d565b9c919299989796959493865f14613a1757613a179061371d565b509c61380f565b878660020b13613926565b9391505060020b900360020b0260020b613916565b93600101938d8560020b958060ff16918760081d60010b5f5260205260405f2090600160ff5f1992161b01199054169586159687159785895f14613b8057506101525784928160ff925f03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b94613918565b93905060ff809250031660020b0160020b0260020b613b7a565b849d5061380f565b868160020b121561383a565b85515191969594916001600160a01b031661378c565b5050505050565b9015613be857516001600160a01b03165b6001600160a01b031690565b602001516001600160a01b0316613bdc565b6004015460ff8160581c165f14613c1a5760181c60020b9060020b121590565b60020b9060020b131590565b6004015460ff8160581c165f14613c3d5760020b90565b60181c60020b90565b60048501805460ff60501b1916600160511b179081905591969195613cee9590949391929091613c7d605889901c60ff1682613bcb565b9260018060a01b0385511694602060018060a01b0391015116915f946040600384019b613cad8d5460801c614203565b825191613cb983610ab5565b8060020b835260181c60020b6020830152828201528a60608201528151809c8192632d35e7ed60e11b83528660048401614229565b03815f8b5af196871561039a578c975f9b5f9161406f575b506001600160a01b038716614059578b60801d9b5b6001600160a01b0388166140435780600f0b9c5b6001600160a01b038916614039575f9d5b6001600160a01b038a1661402957613d72613d5d5f9a5b886144dd565b93908093859260048d015460601c8c8b614798565b99909f5f81600f0b13801561401d575b613ff6575b505050509084613db2613db89493613da58460801d8260801d61429c565b93600f0b90600f0b61429c565b92614ab7565b60018060801b038b5416915f60028a0199613de0613dda868d5460801c6142c1565b8c6142da565b60018a01865490600188019283549283158614613fe4578082555b80158614613fd157506001915001555b8a546001600160801b031680613fae575b5081865555613e2a84613c26565b98600560028601998a545f520160205260405f2060018060a01b0384165f52602052606060405f2092015160020b9060018060801b0390541615613f79575b50506007600484015460601c9c0160018060a01b038d165f528060205260405f2060018060a01b0383165f5260205260405f2054928303928311612508576001600160a01b038d81165f908152602092835260408082209490921680825293835281902084905551928352909b8c9290915f516020615a375f395f51905f5291a36004015497549354604080516001600160a01b03998a1681526001600160801b039687166020820152928616908301529190961660608781019190915291909216608086015260a085019190915260029190910b60c084015260e08301919091529190911c907f59d8d839dc2a16f78d0e321652546b26bd10065beade9541895b54e0ec058a379061010090a3565b8960020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613e69565b8b546001600160801b03191683199091016001600160801b0316178b555f613e1c565b8552506020526040832060010155613e0b565b83865282602052806040872055613dfb565b8695949c5092613db292614011928a958e87613db89b614798565b90509a9293945f613d87565b505f82600f0b13613d82565b613d72613d5d85600f0b9a613d57565b8260801d9d613d40565b61405382600f0b82600f0b614277565b9c613d2f565b6140698160801d8d60801d614277565b9b613d1b565b905061408b919b5060403d6040116118a8576118988183610b21565b9a909a5f613d06565b9190820180921161250857565b5f93926001600160a01b03161561359a5780519151820361410557905f915b8183106140cc57505050565b9091936140d9858361251c565b519081156140f6576001916140ed91614094565b940191906140c0565b633fa8802d60e21b5f5260045ffd5b63512509d360e11b5f5260045ffd5b81810392915f13801582851316918412161761250857565b9060020b9060020b0190627fffff198212627fffff83131761250857565b9190602090604051828101918252600660408201526040815261416e606082610b21565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa91821561039a575f926141cf575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d6020116141fb575b816141eb60209383610b21565b810103126101525751905f6141a7565b3d91506141de565b600160ff1b8114612508575f0390565b9190826040910312610152576020825192015190565b906101609261423a83606093610c4b565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b910b039060016001607f1b0319821260016001607f1b0383131761250857565b600f91820b910b019060016001607f1b0319821260016001607f1b0383131761250857565b6001600160801b03918216908216039190821161250857565b80546001600160801b031660809290921b6001600160801b031916919091179055565b91939260049060018060801b03600382015416935f600288019761432e614328888b5460801c6142c1565b8a6142da565b8354906001850191825491821585146144be578181555b8115851461449d576001915001555b88546001600160801b03168061447a575b508184555561437382613c26565b9660028301545f525f516020615a575f395f51905f5260205260405f2060018060a01b0386165f52602052606060405f2092015160020b9060018060801b0390541615614445575b5050015460601c90815f525f516020615b375f395f51905f5260205260405f2060018060a01b0382165f5260205260405f20549283039283116125085760205f516020615a375f395f51905f5291835f525f516020615b375f395f51905f52825260405f2060018060a01b0382165f5282528460405f205560405194855260018060a01b031693a3565b8760020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f806143bb565b89546001600160801b03191683199091016001600160801b03161789555f614365565b5083525f516020615ad75f395f51905f526020526001604084200155614354565b8285525f516020615ad75f395f51905f52602052816040862055614345565b919091604051906144ed82610aeb565b606082525f602083015290926001600160a01b0382169190848315614764575060405163442f7de960e11b8152600481018490526001600160a01b03919091169190602081602481865afa5f9181614726575b5061454f575b505050505f9190565b60ff6004911610159081614716575b5061456b575b8080614546565b5f91935060246040518095819363f3ffe14b60e01b835260048301525afa91821561039a575f926145ad575b50818051516145a65780614564565b6001925090565b9091503d805f833e6145bf8183610b21565b810190602081830312610152578051906001600160401b038211610152570160408183031261015257604051916145f583610aeb565b81516001600160401b0381116101525782019080601f830112156101525781519161461f83610bbc565b9261462d6040519485610b21565b80845260208085019160051b830101918383116101525760208101915b8383106146715750505050506146659160209184520161287b565b6020820152905f614597565b82516001600160401b0381116101525782019060a0828703601f190112610152576040519061469f82610a86565b6146ab6020840161287b565b82526146b96040840161288f565b60208301526146ca6060840161289f565b60408301526146db6080840161287b565b606083015260a0830151916001600160401b0383116101525761470688602080969581960101612796565b608082015281520192019161464a565b6147209150614dfa565b5f61455e565b9091506020813d60201161475c575b8161474260209383610b21565b81010312610152575160ff8116810361015257905f614540565b3d9150614735565b94505050505f9190565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b9695929193945f1461498957506020820151915180516001600160801b0392831695919391909216911561497a578251156125305760208301516147e5916001600160a01b03169061552a565b9081156149745785925b82156149635760208201516001600160a01b0316965b831561495b5750925b6001600160801b0316806149105750505093909192935b93916001916020935b82518410156148b657614867959661488361485560019361484f888861251c565b5161552a565b989092848060801b0316600f0b614e78565b600f0b604051906148788983610b21565b5f825289848d6155b2565b828060801b0316965f146148a85785828060a01b03910151165b93019295949561482e565b818060a01b0390511661489d565b96909493508692508591506001600160a01b0316803b15610152576148f5935f809460405196879586948593630b0d9c0960e01b85526004850161476e565b03925af1801561039a576149065750565b5f610ecf91610b21565b91614942916149256149519594600f0b614e78565b9160405192614935602085610b21565b5f8452600f0b918b6155b2565b6001600160801b031690615511565b9390919293614825565b90509261480e565b81516001600160a01b031696614805565b826147ef565b6319dcad4d60e31b5f5260045ffd5b909495939291505f925f905f905f88600f0b135f14614a2857505090516001600160a01b03908116956001600160801b03169416919050813b15614a2457836149ec92849283604051809681958294630b0d9c0960e01b84528c6004850161476e565b03925af18015614a1957614a01575b50509091565b614a0c828092610b21565b614a1657806149fb565b80fd5b6040513d84823e3d90fd5b8280fd5b5f91969493929750809550600f0b13614a44575b505050509091565b602001516001600160a01b0390811695506001600160801b0390931693509116803b1561015257825f91614a909383604051809681958294630b0d9c0960e01b84528b6004850161476e565b03925af1801561039a57614aa7575b808080614a3c565b5f614ab191610b21565b5f614a9f565b9293925f92600f0b83811215614df257945b600f0b5f811215614dea57945b8015801590614de1575b614aed575b505050509050565b5f811380614dda575b614d65575b838112614c99575b5082851380614c92575b614c21575b828512614b20575b80614ae5565b60209190910180516001600160a01b039081169592169190823b15614c125760405195632961046560e21b87526004870152838660248183875af1958615614c1657849596614bf5575b505160209291614b8f916001600160a01b0316908390614b8990614203565b916156d6565b600460405180958193630476982d60e21b83525af1908115614be95750614bba575b80808392614b1a565b614bdb9060203d602011614be2575b614bd38183610b21565b8101906123cf565b505f614bb1565b503d614bc9565b604051903d90823e3d90fd5b84614c04919592939495610b21565b614c1257908392915f614b6a565b8380fd5b6040513d86823e3d90fd5b60208201516001600160a01b038281169116813b15614c8e5786614c60928680809460405196879586948593630b0d9c0960e01b855260048501614e8f565b03925af18015614c1657908491614c79575b5050614b12565b81614c8391610b21565b614a2457825f614c72565b8480fd5b5082614b0d565b82516001600160a01b03838116929116823b15614d615760405190632961046560e21b82526004820152858160248183875af18015614d56579086939291614d3b575b50845160209291614cfc916001600160a01b0316908390614b8990614203565b600460405180948193630476982d60e21b83525af18015614c165715614b0357614d349060203d602011614be257614bd38183610b21565b505f614b03565b83614d499194929394610b21565b614c8e579084915f614cdc565b6040513d88823e3d90fd5b8580fd5b82516001600160a01b03908116908316803b1561015257604051630b0d9c0960e01b81526001600160a01b0390921660048301525f6024830181905260448301849052908290606490829084905af1801561039a57614dc5575b50614afb565b614dd29194505f90610b21565b5f925f614dbf565b505f614af6565b50851515614ae0565b505f94614ad6565b505f94614ac9565b6040516301ffc9a760e01b815263f3ffe14b60e01b600482015290602090829060249082906001600160a01b03165afa5f9181614e3c575b50610d3357505f90565b9091506020813d602011614e70575b81614e5860209383610b21565b8101031261015257614e6990610c0c565b905f614e32565b3d9150614e4b565b600f0b60016001607f1b03198114612508575f0390565b6001600160a01b03918216815291166020820152604081019190915260600190565b9195949092955f945f821380615176575b615115575b5084811261503e575b508386138061502c575b614fbf575b50828512614eef575b5050509050565b60209190910180516001600160a01b039081169592169190823b15614c125760405195632961046560e21b87526004870152838660248183875af1958615614c1657849596614fa2575b505160209291614f58916001600160a01b0316908390614b8990614203565b600460405180958193630476982d60e21b83525af1908115614be95750614f83575b80808392614ee8565b614f9b9060203d602011614be257614bd38183610b21565b505f614f7a565b84614fb1919592939495610b21565b614c1257908392915f614f39565b60208301516001600160a01b03838116929116823b15614d6157614fff928692838a9360405196879586948593630b0d9c0960e01b855260048501614e8f565b03925af18015614c1657908491615017575b50614edf565b8161502191610b21565b614a2457825f615011565b506001600160a01b0381161515614eda565b83516001600160a01b03848116929116823b156151115760405190632961046560e21b82526004820152868160248183875af180156151065790879392916150eb575b508551602092916150a1916001600160a01b0316908390614b8990614203565b600460405180948193630476982d60e21b83525af180156150e05715614ed0576150d99060203d602011614be257614bd38183610b21565b505f614ed0565b6040513d87823e3d90fd5b836150f99194929394610b21565b614d61579085915f615081565b6040513d89823e3d90fd5b8680fd5b84516001600160a01b03858116929116823b1561015257615152925f9283869360405196879586948593630b0d9c0960e01b855260048501614e8f565b03925af1801561039a5715614ec75761516e9195505f90610b21565b5f935f614ec7565b506001600160a01b0381161515614ec2565b60020b908160ff1d82810118620d89e881116154a25763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116615486575b6004811661546a575b6008811661544e575b60108116615432575b60208116615416575b604081166153fa575b608081166153de575b61010081166153c2575b61020081166153a6575b610400811661538a575b610800811661536e575b6110008116615352575b6120008116615336575b614000811661531a575b61800081166152fe575b6201000081166152e2575b6202000081166152c7575b6204000081166152ac575b6208000016615293575b5f1261528b575b0160201c90565b5f1904615284565b6b048a170391f7dc42444e8fa290910260801c9061527d565b6d2216e584f5fa1ea926041bedfe9890920260801c91615273565b916e5d6af8dedb81196699c329225ee6040260801c91615268565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161525d565b916f31be135f97d08fd981231505542fcfa60260801c91615252565b916f70d869a156d2a1b890bb3df62baf32f70260801c91615248565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161523e565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91615234565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161522a565b916ff3392b0822b70005940c7a398e4b70f30260801c91615220565b916ff987a7253ac413176f2b074cf7815e540260801c91615216565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161520c565b916ffe5dee046a99a2a811c461f1969c30530260801c91615202565b916fff2ea16466c96a3843ec78b326b528610260801c916151f9565b916fff973b41fa98c081472e6896dfb254c00260801c916151f0565b916fffcb9843d60f6159c9db58835c9266440260801c916151e7565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916151de565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916151d5565b916ffff97272373d413259a46990580e213a0260801c916151cc565b826345c3193d60e11b5f5260045260245ffd5b6001600160a01b03918216908216039190821161250857565b90926001600160801b03169190821561550b57610ecf93156154f957516001600160a01b03166156d6565b602001516001600160a01b03166156d6565b50505050565b6001600160801b03918216908216019190821161250857565b906155336124d0565b5081516001600160a01b0382811692911690818310156155aa575b60018060a01b03168092149262ffffff602082015116604082015160020b91606060018060a01b0391015116926040519461558886610a86565b85526001600160a01b0316602085015260408401526060830152608082015291565b50819061554e565b93929180156156bb576401000276a4945b6040519160608301908382106001600160401b03831117610aa1576020946156585f92615627946040521515988987528787019a898c52604088019060018060a01b031681526040519b8c9889978896633cf3645360e21b88526004880190610c4b565b51151560a48601525160c4850152516001600160a01b031660e4840152610120610104840152610124830190610a62565b03926001600160a01b03165af192831561039a575f93615687575b505f130361568157600f0b90565b60801d90565b9092506020813d6020116156b3575b816156a360209383610b21565b810103126101525751915f615673565b3d9150615696565b73fffd8963efd1fc6a506488495d951d5263988d25946155c3565b9091906001600160a01b03811690816157645750505f80808093855af1156156fb5750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156157b55750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b90606082901b905f19600160601b840992828085109403938085039485841115610152571461589c578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b111561015257146158e357600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f19818509938380861095039480860395868511156101525714615964579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b6001600160801b0381169190820361598057565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fd5b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa90811561039a575f91615a07575090565b90506020813d602011615a2e575b81615a2260209383610b21565b81010312610152575190565b3d9150615a1556fea942ad2d47c64ce0859147575881ee76ce335036216e9378b100614f683006cb98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf198b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf073544fee6e45e543d5464c5d945a19046ad773dabfc95c7d1c119b135d947dde98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf298b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6ced98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cef98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cec98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf3","sourceMap":"1453:7731:75:-:0;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;2290:30:76;1453:7731:75;;;;;;:::i;:::-;;-1:-1:-1;;;;;1453:7731:75;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;2290:30:76;-1:-1:-1;;;;;1453:7731:75;;;;1862:40;1453:7731;;;;1912:74;1453:7731;1996:55;;1453:7731;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1912:74;1453:7731;;;;;;;;;;1996:55;1453:7731;;;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60c080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b63570c108560e11b5f5260045ffd5b5f3560e01c9081635ef3e95514610994575080635f8fbad6146109335780637a9cf2731461081b5780637a9e5e4b1461078057806391dd73461461070f578063a6de70b4146106cb578063bf7e214f146106a4578063c2ec68ea146104eb578063c96d060b1461043a578063d8c3177214610411578063dc4c90d3146103cd578063eb07ed24146101565763f7888aec146100f6575f61000f565b346101525760403660031901126101525761010f610a08565b6101176109f2565b6001600160a01b039182165f9081525f516020615b375f395f51905f5260209081526040808320949093168252928352819020549051908152f35b5f80fd5b366003190161012081126101525760a0136101525760405161017781610a86565b6004356001600160a01b03811681036101525781526024356001600160a01b038116810361015257602082015260443562ffffff811681036101525760408201526064358060020b81036101525760608201526084356001600160a01b03811681036101525760808201526101ea6109d5565b9060c4356001600160401b03811161015257366023820112156101525780600401359061021682610bbc565b916102246040519384610b21565b8083526024602084019160051b8301019136831161015257602401905b8282106103bd5750505060e4356001600160401b03811161015257366023820112156101525780600401359061027682610bbc565b916102846040519384610b21565b8083526024602084019160051b8301019136831161015257602401905b8282106103a5575050610104359290506001600160a01b0383168303610152575f5460405163b700961360e01b8152336004820152306024820152633ac1fb4960e21b604482015290602090829060649082906001600160a01b03165afa90811561039a575f91610360575b50156103515761034d94610341947f0000000000000000000000000000000000000000000000000000000000000000612973565b60405191829182610bd3565b0390f35b6370dbefff60e11b5f5260045ffd5b90506020813d602011610392575b8161037b60209383610b21565b810103126101525761038c90610c0c565b8661030d565b3d915061036e565b6040513d5f823e3d90fd5b602080916103b2846109e4565b8152019101906102a1565b8135815260209182019101610241565b34610152575f366003190112610152576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610152575f3660031901126101525760205f516020615b175f395f51905f5254604051908152f35b34610152576020366003190112610152575f5460405163b700961360e01b815233600482015230602482015263c96d060b60e01b604482015290602090829060649082906001600160a01b03165afa90811561039a575f916104b1575b5015610351576004355f516020615b175f395f51905f5255005b90506020813d6020116104e3575b816104cc60209383610b21565b81010312610152576104dd90610c0c565b81610497565b3d91506104bf565b34610152576080366003190112610152576004356001600160401b0381116101525761051b903690600401610a32565b906105246109f2565b916064356001600160a01b0381169190829003610152576105e09261054a91369161106d565b926040519161055883610a86565b33835260208301948552604083019160018060a01b03168252606083016044358152608084019182526105b160405196879560208088015260018060a01b0390511660408701525160a0606087015260e0860190610c8e565b92516001600160a01b039081166080860152905160a085015290511660c083015203601f198101835282610b21565b6040519081610616816106085f94600260206106389801526040808401526060830190610a62565b03601f198101835282610b21565b604051809381926348c8949160e01b8352602060048401526024830190610a62565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561039a5761067357005b61068e903d805f833e6106868183610b21565b8101906127dc565b005b634e487b7160e01b5f52602160045260245ffd5b34610152575f366003190112610152575f546040516001600160a01b039091168152602090f35b34610152575f366003190112610152576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610152576020366003190112610152576004356001600160401b0381116101525736602382011215610152578060040135906001600160401b0382116101525736602483830101116101525761034d91602461076c92016110de565b604051918291602083526020830190610a62565b3461015257602036600319011261015257610799610a08565b5f546001600160a01b038116330361035157813b156107fa576001600160a01b0319166001600160a01b039091169081175f556040519081527f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad90602090a1005b506361798f2f60e11b5f9081526001600160a01b0391909116600452602490fd5b34610152576040366003190112610152576004356001600160401b0381116101525761084b903690600401610a32565b6108536109f2565b913681900360de1901905f5b8381101561068e578060051b820135838112156101525782019060c082016108878184611038565b9050610899575b50600191500161085f565b6108a66108ad9184611038565b369161106d565b60a0830135908115158092036101525761092861092d92826001966108d86106089551913690610b42565b92604051936108e685610ad0565b6108ee6124d0565b50845260208401525f60408401525f60608401526080830152868060a01b038b1660a083015260c082015260405192839160208301610cc1565b612801565b8661088e565b3461015257366003190161014081126101525760a013610152576109556109d5565b60c435908160020b82036101525760e435908160020b82036101525761012435916001600160a01b03831683036101525761068e936101043592610d36565b34610152575f366003190112610152577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b60a43590811515820361015257565b35908160020b820361015257565b602435906001600160a01b038216820361015257565b600435906001600160a01b038216820361015257565b35906001600160a01b038216820361015257565b9181601f84011215610152578235916001600160401b038311610152576020808501948460051b01011161015257565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a081019081106001600160401b03821117610aa157604052565b634e487b7160e01b5f52604160045260245ffd5b608081019081106001600160401b03821117610aa157604052565b60e081019081106001600160401b03821117610aa157604052565b604081019081106001600160401b03821117610aa157604052565b60c081019081106001600160401b03821117610aa157604052565b90601f801991011681019081106001600160401b03821117610aa157604052565b91908260a091031261015257604051610b5a81610a86565b8092610b6581610a1e565b8252610b7360208201610a1e565b602083015260408101359062ffffff82168203610152576080916040840152610b9e606082016109e4565b60608401520135906001600160a01b03821682036101525760800152565b6001600160401b038111610aa15760051b60200190565b60206040818301928281528451809452019201905f5b818110610bf65750505090565b8251845260209384019390920191600101610be9565b5190811515820361015257565b90610c2382610bbc565b610c306040519182610b21565b8281528092610c41601f1991610bbc565b0190602036910137565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b90602080835192838152019201905f5b818110610cab5750505090565b8251845260209384019390920191600101610c9e565b61018060c0610d339360208452610cdc602085018251610c4b565b60208101511515848301526040810151600290810b60e08601526060820151900b610100850152608081015161012085015260a08101516001600160a01b0316610140850152015161016080840152910190610c8e565b90565b90939291928215611022575b610d6b7f00000000000000000000000000000000000000000000000000000000000000006123de565b9283610f81575b610d7a61246d565b94610d836124d0565b50610d97610d92366004610b42565b6135a9565b5f525f516020615af75f395f51905f5260205260405f2096604051610dbb81610a86565b88546001600160a01b03908116825260018a0154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529a01541660808201529715610f50575b8651610e1f92919086908a906001600160a01b03166135cf565b9060020b90620d89e71982128015610f44575b610f255760020b90620d89e71982128015610f19575b610edb578415610ef857818113610edb575b60405194610e69602087610b21565b5f86525f36813760405198610e7d8a610ad0565b610e856124d0565b508952151560208901526040880152606087015260808601526001600160a01b031660a085015260c0840152610ed15750610608610928610ecf9260405192839160208301610cc1565b565b90610ecf91612544565b849250636ec3c1c760e11b5f52600452602452151560445260645ffd5b81811215610e5a57636ec3c1c760e11b5f526004526024525f60445260645ffd5b50620d89e88213610e48565b8491636ec3c1c760e11b5f5260045260020b602452151560445260645ffd5b50620d89e88213610e32565b909650610f5e366004610b42565b96606088015160020b15610f725790610e05565b63c256622b60e01b5f5260045ffd5b60405163082984f360e41b81523360048201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561039a575f91610fe8575b50610d72576344863e8560e11b5f5260045ffd5b90506020813d60201161101a575b8161100360209383610b21565b810103126101525761101490610c0c565b5f610fd4565b3d9150610ff6565b5f516020615b175f395f51905f52549250610d42565b903590601e198136030182121561015257018035906001600160401b03821161015257602001918160051b3603831361015257565b92919061107981610bbc565b936110876040519586610b21565b602085838152019160051b810192831161015257905b8282106110a957505050565b813581526020918201910161109d565b6001600160401b038111610aa157601f01601f191660200190565b6003111561069057565b906060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57820191604081840312610152578035906003821015610152576020810135906001600160401b03821161015257019183601f84011215610152578235611157816110b9565b936111656040519586610b21565b81855260208501956020838301011161015257815f92602080930188378501015261118f826110d4565b81156118fa575061119f816110d4565b600181036112945750906111b161246d565b825183019260208401926020828603126101525751906001600160401b038211610152570192610160908490031261015257604051916111f083610ad0565b6111fd81602086016128ad565b835261120b60c08501610c0c565b602084015261121c60e0850161289f565b604084015261122e610100850161289f565b6060840152610120840151608084015261124b610140850161287b565b60a0840152610160840151906001600160401b03821161015257602061127692611280960101612916565b60c0830152612544565b60405161128e602082610b21565b5f815290565b6002906112a0816110d4565b036118eb5780518101916020828403126101525751906001600160401b03821161015257019060a08282031261015257604051906112dd82610a86565b6112e96020840161287b565b825260408301516001600160401b0381116101525760208061130f930191850101612916565b8060208301526113216060840161287b565b9182604082015261133f60a06080860151958660608501520161287b565b6080820181905290516001600160a01b03908116908216156118dc5782519182156118af579392905f945f94871515935b8587106113a2575b5050505050505081811061138d575050611280565b6303449a8f60e41b5f5260045260245260445ffd5b909192939495966113b3888361251c565b51805f525f516020615ad75f395f51905f5260205260405f20600481019182548060601c80156118af5789036118cd57600160ff8260501c166113f5816110d4565b036118be576003830154936002840154805f525f516020615af75f395f51905f5260205260405f206040519061142a82610a86565b80546001600160a01b0390811683526001820154808216602085015260a081901c62ffffff16604085015260b81c600290810b60608501819052920154166080830152156118af57611531916114e08761148381613c26565b9561149460ff8960581c1686613bcb565b5f9485525f516020615ab75f395f51905f52602090815260408087206001600160a01b0384168852825280872060028b900b885290915290942060ff60501b19891690915583856142fd565b5060406114ef8960801c614203565b8151906114fb82610ab5565b8760020b82528760181c60020b602083015282820152876060820152815180958192632d35e7ed60e11b83528660048401614229565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af192831561039a575f9361187e575b508c605886901c60ff168061186f575b1561173c575081516001600160801b03608085901d1694906001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b15610152575f908e6115f46040519889938493630b0d9c0960e01b855260018060a01b0316906004850161476e565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af194851561039a5760ff988f965f516020615a975f395f51905f529660c09660029461167e9361172c575b505b81600f0b9160801d907f0000000000000000000000000000000000000000000000000000000000000000614ab7565b01549160018060a01b031697889660405193845260581c161515602083015260020b60408201525f6060820152856080820152600160a0820152a36001600160a01b038616820361170a57506116e1926001600160801b03909216919050614094565b968580611700575b6116fb57600101959493929190611370565b611378565b50888810156116e9565b8590630b34ff7d60e11b5f5260045260018060a01b031660245260445260645ffd5b5f61173691610b21565b5f61164d565b939160ff8660589593951c161580611863575b611775575b91600260ff9861167e5f516020615a975f395f51905f52969460c09661164f565b60208101516001600160801b03831695509193909290916001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000163b15610152575f908e6117ea6040519889938493630b0d9c0960e01b855260018060a01b0316906004850161476e565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af194851561039a5760ff988f965f516020615a975f395f51905f529660c09660029461167e93611853575b5094965094965050985050611754565b5f61185d91610b21565b5f611843565b505f82600f0b1361174f565b505f8460801d600f0b1361157e565b6118a091935060403d81116118a8575b6118988183610b21565b810190614213565b50915f61156e565b503d61188e565b63af61069360e01b5f5260045ffd5b632fec94b960e01b5f5260045ffd5b637383a4fd60e01b5f5260045ffd5b639fabe1c160e01b5f5260045ffd5b6310309b7d60e31b5f5260045ffd5b8251830193602080860194929350828603126101525751906001600160401b0382116101525701926101209084900312610152576040519161193b83610a86565b61194881602086016128ad565b835261195660c08501610c0c565b916020840192835260e08501516001600160401b038111610152576020908601019382601f860112156101525784519461198f86610bbc565b9561199d6040519788610b21565b80875260208088019160051b8301019185831161015257602001905b8282106123bf57505050604081019485526101008601516001600160401b038111610152576020908701019280601f850112156101525783516119fb81610bbc565b94611a096040519687610b21565b81865260208087019260051b82010192831161015257602001905b8282106123a757505050611a61611a4461012084840198868a520161287b565b60808301818152875190956001600160a01b0390921691906140a1565b505191611a6d836135a9565b93845f525f516020615af75f395f51905f52602052600160405f20015460b81c60020b15612306575b611ac660a085989798207f000000000000000000000000000000000000000000000000000000000000000061414a565b5050929050611ad88251151586613bcb565b865f525f516020615a775f395f51905f5260205260405f20549160018060a01b03905116925115159360405197611b0e89610b06565b885260020b60208801526001600160a01b0316604087015283860152608085015260a0840152845151611b4090610c19565b905f94818401955b87519081518110156122e6576020835192818360051b80920101519301015160a0880151151592895160020b935f146122d357611b8682948361412c565b935b60a08a01511515611b9882615188565b90611ba287615188565b901561228557611bfe91611bf99180826001600160a01b038083169082161161227a575b50611bf19050611be26001600160a01b038381169085166158a3565b926001600160a01b03926154b5565b1690856158ec565b61596c565b905b6001600160801b0382161561221b5789938893611d1760408e9460a08651600180831b038489015116600180841b0360808a015116805f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee602052855f2091611c6a83546124fa565b8093558651938452602084015288868401528b8301526080820152209889835199611c948b610b06565b828b528360020b60208c01528d60020b858c015260018060801b038a16818c015260808b019660018060801b0316875260a0808c0199838b5201511515995f9e865195611ce087610ab5565b600290810b87520b60208601526001600160801b0316858501528301528251632d35e7ed60e11b8152938492839260048401614229565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190811561039a575f9161225b575b508060801d90600f0b855f1461223157505f81600f0b125f1461222a57611d7a90614e78565b6001600160801b03165b945b6001600160801b0386161561221b5790518a9889958f939288906001600160801b039081169082168111612201575b505082518051611e659290611df4906001600160a01b0316307f00000000000000000000000000000000000000000000000000000000000000006159ba565b6020830151611e2d906001600160a01b0316307f00000000000000000000000000000000000000000000000000000000000000006159ba565b9082156121fa575f925b156121f35730935b7f0000000000000000000000000000000000000000000000000000000000000000614eb1565b6001600160801b0381166121cd575b5080519382519687915190608085015194600160a01b60019003604082015116998a9560a083015115159a8b81602086015160020b950151928a600160801b60019003848301511694602083015192604001518a5f525f516020615ad75f395f51905f5260205260405f20966003880190600160801b600190038c16600160801b6001900319835416178255611f09916142da565b60048701958654936001600160601b0319911b169460ff60581b9060581b1693600160501b9360ff60501b199162ffffff169069ffffffffffffffffffff191617169060181b65ffffff00000016179060301b63ffffffff60301b1617176001600160581b03161717905560020155835f525f516020615ab75f395f51905f5260205260405f20600160a01b6001900386165f5260205260405f208760020b5f5260205260405f209c8d978360028a015460801c90611fc791615511565b611fd49060028b016142da565b855f525f516020615a575f395f51905f5260205260405f20600160a01b6001900388165f526020528160405f209a015160020b98600160801b60019003906002015416159e60019f9a60209a5f516020615a375f395f51905f529c61219a575b50508f86908201805480155f1461217c578284555b825f525f516020615ad75f395f51905f528d52600160405f200155558f8060029160801b0360018060801b036001808060801b03848601541601161660018060801b03198284015416179101558e8060a01b0388165f525f516020615b375f395f51905f52895260405f208f8060a01b0388165f5289526120d760405f2060018060801b0386169054614094565b9a8f8060a01b0389165f525f516020615b375f395f51905f528a5260405f2060018060a01b0389165f528a528b60405f20556040519687528987015260020b60408601528401528b8060801b0316608083015260a08201527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c08b8060a01b03851692a3604051938452878060a01b031692a3612175828761251c565b5201611b48565b805f525f516020615ad75f395f51905f528d528260405f2055612049565b8360020b905f81830712910503908160020b60081d60010b5f528b52600160ff60405f2092161b81541790555f80612034565b6121ed90825160a0850151151560018060a01b03608087015116916154ce565b5f611e74565b5f93611e3f565b3092611e37565b611e6592935090612211916142c1565b919050875f611db5565b63f8db18c360e01b5f5260045ffd5b505f611d84565b90505f8112156122545761224490614e78565b6001600160801b03165b94611d86565b505f61224e565b612273915060403d81116118a8576118988183610b21565b505f611d54565b915091505f80611bc6565b6122c091611bf9919081816001600160a01b03808316908216116122c6575b506001600160a01b03926122b99291506154b5565b1684615819565b90611c00565b925090506122b95f6122a4565b926122de9082613738565b928193611b88565b505050509150506106089250610d33915060405192839160208301610bd3565b5f8581525f516020615af75f395f51905f526020908152604091829020865181546001600160a01b039182166001600160a01b031991821617835592880151600183018054958a0151898b015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b0319909716969096179190911794909417909355608087015160029091018054919093169116179055611a96565b602080916123b48461289f565b815201910190611a24565b81518152602091820191016119b9565b90816020910312610152575190565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa90811561039a575f9161243b575b50151590565b90506020813d602011612465575b8161245660209383610b21565b8101031261015257515f612435565b3d9150612449565b6040519061247a82610aeb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811683527f0000000000000000000000000000000000000000000000000000000000000000166020830152565b604051906124dd82610a86565b5f6080838281528260208201528260408201528260608201520152565b5f1981146125085760010190565b634e487b7160e01b5f52601160045260245ffd5b80518210156125305760209160051b010190565b634e487b7160e01b5f52603260045260245ffd5b9061254f81516135a9565b91825f525f516020615a775f395f51905f5260205260405f2061257281546124fa565b809155835f525f516020615af75f395f51905f5260205260405f209360405161259a81610a86565b85546001600160a01b0390811682526001870154808216602084015260a081901c62ffffff16604084015260b81c600290810b606084018190529701541660808201529415612776575b825160a086206125fc916001600160a01b031661414a565b505093905060c085019586515115612757576020860151151592805f525f516020615ab75f395f51905f5260205260405f206126388584613bcb565b60018060a01b03165f5260205260405f209660a0600180821b039101511695885151985f5b8a8110612671575050505050505050505050565b808a8a612681600194865161251c565b51805f525f516020615ad75f395f51905f5260205260405f2060048101548d8760ff8360501c166126b1816110d4565b149182612749575b82612736575b82612723575b505080612713575b6126dc575b505050500161265d565b61270a936126e982613c26565b60020b5f5260205260405f208a5f516020615b175f395f51905f528d613c46565b8a8a5f806126d2565b5061271e8882613bfa565b6126cd565b60301c63ffffffff161090508d5f6126c5565b91508d60ff8360581c16151514916126bf565b60028401548c1492506126b9565b50915050610ecf93505f516020615b175f395f51905f52929192613755565b9350825193606085015160020b6125e45763c256622b60e01b5f5260045ffd5b81601f82011215610152578051906127ad826110b9565b926127bb6040519485610b21565b8284526020838301011161015257815f9260208093018386015e8301015290565b906020828203126101525781516001600160401b03811161015257610d339201612796565b6040519081610616816106085f94600160206128299801526040808401526060830190610a62565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561039a576128655750565b612878903d805f833e6106868183610b21565b50565b51906001600160a01b038216820361015257565b519062ffffff8216820361015257565b51908160020b820361015257565b91908260a0910312610152576040516128c581610a86565b60806129118183956128d68161287b565b85526128e46020820161287b565b60208601526128f56040820161288f565b60408601526129066060820161289f565b60608601520161287b565b910152565b9080601f8301121561015257815161292d81610bbc565b9261293b6040519485610b21565b81845260208085019260051b82010192831161015257602001905b8282106129635750505090565b8151815260209182019101612956565b91959491936001600160a01b038316929091606091841561359a576129c5905f60806040516129a181610a86565b6129a96124d0565b81528260208201528660408201528680820152015284876140a1565b90612a06604051966129d688610a86565b82885299151560208801818152604089019b909b52848801958652608088019687526001600160a01b0392613bcb565b168061343b5750340361342c575b612a1d856123de565b612ba257506040805193602080860152610160850197612a408387018351610c4b565b51151560e08601520151956101206101008501528651809152602061018085019701905f5b818110612b8c575050505194603f1983820301610120840152602080875192838152019601905f5b818110612b735750505091610608612ae583612ac9612b09955f9899899860018060a01b0390511661014083015203601f198101835282610b21565b6040519283918760208401526040808401526060830190610a62565b6040519485809481936348c8949160e01b8352602060048401526024830190610a62565b03926001600160a01b03165af190811561039a575f91612b59575b508051810190602081830312610152576020810151916001600160401b03831161015257610d33926020809201920101612916565b612b6d91503d805f833e6106868183610b21565b5f612b24565b825160020b885260209788019790920191600101612a8d565b8251895260209889019890920191600101612a65565b9193959294855194612bb3866135a9565b94855f525f516020615af75f395f51905f52602052600160405f20015460b81c60020b1561338b575b612be960a088208a61414a565b5050929050612bfb8251151589613bcb565b875f525f516020615a775f395f51905f5260205260405f20549160018060a01b03905116925115159360405198612c318a610b06565b895260020b602089015260018060a01b0316604088015285870152608086015260a0850152612c64604087015151610c19565b915f5b6040880151805182101561337e576020835191818460051b8092010151920101519160a08801511515878a015160020b905f1461336d57612ca984918561412c565b925b60a08a01511515612cbb83615188565b90612cc586615188565b901561331f57612d0d91611bf99180826001600160a01b0380831690821611613314575b50612d059050611be26001600160a01b038381169085166158a3565b1690846158ec565b935b6001600160801b0385161561221b57612e3660408f948d958f89968f60a0808e8c805191600180851b038b83015116916080600180871b039101511690600180861b0382165f527f98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cee6020528b5f2092612d8884546124fa565b8094558c5194855260208501528b840152858301526080820152209a8b9388519b612db28d610b06565b868d52600289810b60208f01528c900b8a8e01526001600160801b03908116858e01521660808c0152818b01849052015186519015159c5f999196909190612df988610ab5565b600290810b88520b60208701526001600160801b0316868601528401528351632d35e7ed60e11b815294859384925f928492909160048401614229565b03926001600160a01b03165af190811561039a575f916132f5575b508060801d90600f0b865f146132d457505f81600f0b125f146132cd57612e7790614e78565b6001600160801b03165b6001600160801b0381161561221b578b958f9287938360018060801b036080880151168060018060801b038316106132b5575b5050612f0091928651612ed160018060a01b0382511630856159ba565b6020820151612eea906001600160a01b031630866159ba565b9183156132ae575f935b156132a7573094614eb1565b6001600160801b038116613281575b508a83519183519460a081015160a05285608086015192600160a01b600190036040880151169788938660a08a01511515996020015160020b9d015189600160801b600190038984015116926020810151906040015160a0515f525f516020615ad75f395f51905f5260205260405f20946003860190600160801b600190038916600160801b6001900319835416178255612fa9916142da565b60048501938454918c8c6001600160601b0319911b169460ff60581b9060581b1693600160501b9360ff60501b199162ffffff169069ffffffffffffffffffff191617169060181b65ffffff00000016179060301b63ffffffff60301b1617176001600160581b03161717905560020155815f525f516020615ab75f395f51905f5260205260405f20600160a01b6001900384165f5260205260405f205f6080528c60020b5f5260205260405f206080526080516002019a818c5460801c9061307191615511565b61307b908d6142da565b825f525f516020615a575f395f51905f5260205260405f20600160a01b6001900385165f526020528560405f2097015160020b95600160801b600190038d5416159d60019d60409f996020995f516020615a375f395f51905f529b61324c575b50506080518f0180548061322c5760a051608051555b60a0515f525f516020615ad75f395f51905f528b5260406001905f20015560a05190558e8060801b038f8060801b036001808060801b038454160116168f8060801b03198254161790558d8060a01b038e8060a01b038816165f525f516020615b375f395f51905f5288528e5f208e8060a01b0387165f5288526131808f5f208f8060801b0386169054614094565b998e8060a01b038f8060a01b038916165f525f516020615b375f395f51905f5289528f5f208f8060a01b0388165f5289528f8b905f20558f519586528886015260020b8e8501528301528a8060801b0316608082015260a05160a08201527f36c14a3cb6751895ef6ab64f123dcca47c492ec447d69f86bb560eb5ad0e47a360c08b8060a01b03851692a38851938452878060a01b031692a3613223828861251c565b52019050612c67565b805f525f516020615ad75f395f51905f528b5260a05160405f20556130f1565b8360020b905f81830712910503908160020b60081d60010b5f528a52604060019060ff905f2092161b81541790555f806130db565b6132a190845160a0850151151560018060a01b03608087015116916154ce565b5f612f0f565b5f94614eb1565b3093612ef4565b612f009350906132c4916142c1565b9150835f612eb4565b505f612e81565b90505f8112156132cd576132e790614e78565b6001600160801b0316612e81565b61330d915060403d81116118a8576118988183610b21565b505f612e51565b915091505f80612ce9565b61335a91611bf9919081816001600160a01b0380831690821611613360575b506001600160a01b03926133539291506154b5565b1683615819565b93612d0f565b925090506133535f61333e565b6133779084613738565b8392612cab565b5050509550935050505090565b5f8681525f516020615af75f395f51905f526020908152604091829020895181546001600160a01b039182166001600160a01b0319918216178355928b0151600183018054958d01518b8e015160b81b62ffffff60b81b1662ffffff60a01b60a09290921b919091169284166001600160d01b031990971696909617919091179490941790935560808a015160029091018054919093169116179055612bdc565b636d295d4f60e11b5f5260045ffd5b3461342c576040516370a0823160e01b815230600482015291602083602481855afa92831561039a575f93613566575b506040516323b872dd60e01b8152336004820152306024820152604481018290526020816064815f875af190811561039a575f9161352c575b50156134e7576020602492604051938480926370a0823160e01b82523060048301525afa91821561039a575f926134f6575b506134e19192614094565b14612a14575b637627529f60e01b5f5260045ffd5b91506020823d602011613524575b8161351160209383610b21565b81010312610152576134e19151916134d6565b3d9150613504565b90506020813d60201161355e575b8161354760209383610b21565b810103126101525761355890610c0c565b5f6134a4565b3d915061353a565b9092506020813d602011613592575b8161358260209383610b21565b810103126101525751915f61346b565b3d9150613575565b633b77ab5760e11b5f5260045ffd5b6040516135ba602082018093610c4b565b60a081526135c960c082610b21565b51902090565b90919493946135f3606084015160020b9260a0627fffff8960020b1495209061414a565b5050905082810780155f146136e85750925b82156136d4578280620d89e719050260020b8380620d89e8050260020b94858160020b8381125f146136c35750505080935b613641818661412c565b95808760020b136136b9575b506136589085613738565b90808260020b126136b1575b50627ffffe198660020b14613692575061367f575050509190565b92945090911561368d575090565b905090565b929693945091929091156136aa57501561368d575090565b9250505090565b90505f613664565b955061365861364d565b959195131561363757859450613637565b634e487b7160e01b5f52601260045260245ffd5b60029190910b90835f831261370a575061370191614114565b60020b92613605565b906137189061370193614114565b614114565b60020b5f190190627fffff198212627fffff83131761250857565b600291820b910b0390627fffff198212627fffff83131761250857565b6080830191825115613bc45761376b84516135a9565b6020850151158015613bae5785516020015191969594916001600160a01b03165b60018060a01b031696805f526005850160205260405f2060018060a01b0389165f5260205260405f2097815f526006860160205260405f209060018060a01b03165f5260205260405f20905f526004850160205260405f2054965f935193604088015160020b92606089015160020b9360608a51015160020b905b87841061381e575b50505050505050505050505050565b5f9d9495969798999a9b9c9d50875f14613ba257868160020b13155b613b9a5760020b815f8183071291050393875f14613aa0578d60ff8616908660020b60081d60010b5f5260205260405f205f198260ff031c9054169586159687159785895f14613a8b5750610152578492817f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff9460018060801b031060071b83811c6001600160401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b945b8815613a8057878660020b13155b613a795715613a5f57845f528260205260405f209687548015613a42579490919293945b80151580613a39575b15613a275790818f96959493928e6001915f520160205260405f208054976004820154600160ff8260501c16613988816110d4565b03613a1c5760301c63ffffffff16146139ed57908f918f8f938d916139ad8e85613bfa565b156139e05791816139d29593600198979593519160a08a80821b039101511695613c46565b0194935b949091929361394a565b50505050505094936139d6565b50509b9a999897509594909d9293505b8615613a1757613a0c9061371d565b9b9a9992919b613807565b613a0c565b5050505094936139d6565b509a999897965094939c91909c6139fd565b508a8210613953565b509594909d92939a9998979650865f14613a1757613a179061371d565b9c919299989796959493865f14613a1757613a179061371d565b509c61380f565b878660020b13613926565b9391505060020b900360020b0260020b613916565b93600101938d8560020b958060ff16918760081d60010b5f5260205260405f2090600160ff5f1992161b01199054169586159687159785895f14613b8057506101525784928160ff925f03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b5b94613918565b93905060ff809250031660020b0160020b0260020b613b7a565b849d5061380f565b868160020b121561383a565b85515191969594916001600160a01b031661378c565b5050505050565b9015613be857516001600160a01b03165b6001600160a01b031690565b602001516001600160a01b0316613bdc565b6004015460ff8160581c165f14613c1a5760181c60020b9060020b121590565b60020b9060020b131590565b6004015460ff8160581c165f14613c3d5760020b90565b60181c60020b90565b60048501805460ff60501b1916600160511b179081905591969195613cee9590949391929091613c7d605889901c60ff1682613bcb565b9260018060a01b0385511694602060018060a01b0391015116915f946040600384019b613cad8d5460801c614203565b825191613cb983610ab5565b8060020b835260181c60020b6020830152828201528a60608201528151809c8192632d35e7ed60e11b83528660048401614229565b03815f8b5af196871561039a578c975f9b5f9161406f575b506001600160a01b038716614059578b60801d9b5b6001600160a01b0388166140435780600f0b9c5b6001600160a01b038916614039575f9d5b6001600160a01b038a1661402957613d72613d5d5f9a5b886144dd565b93908093859260048d015460601c8c8b614798565b99909f5f81600f0b13801561401d575b613ff6575b505050509084613db2613db89493613da58460801d8260801d61429c565b93600f0b90600f0b61429c565b92614ab7565b60018060801b038b5416915f60028a0199613de0613dda868d5460801c6142c1565b8c6142da565b60018a01865490600188019283549283158614613fe4578082555b80158614613fd157506001915001555b8a546001600160801b031680613fae575b5081865555613e2a84613c26565b98600560028601998a545f520160205260405f2060018060a01b0384165f52602052606060405f2092015160020b9060018060801b0390541615613f79575b50506007600484015460601c9c0160018060a01b038d165f528060205260405f2060018060a01b0383165f5260205260405f2054928303928311612508576001600160a01b038d81165f908152602092835260408082209490921680825293835281902084905551928352909b8c9290915f516020615a375f395f51905f5291a36004015497549354604080516001600160a01b03998a1681526001600160801b039687166020820152928616908301529190961660608781019190915291909216608086015260a085019190915260029190910b60c084015260e08301919091529190911c907f59d8d839dc2a16f78d0e321652546b26bd10065beade9541895b54e0ec058a379061010090a3565b8960020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f80613e69565b8b546001600160801b03191683199091016001600160801b0316178b555f613e1c565b8552506020526040832060010155613e0b565b83865282602052806040872055613dfb565b8695949c5092613db292614011928a958e87613db89b614798565b90509a9293945f613d87565b505f82600f0b13613d82565b613d72613d5d85600f0b9a613d57565b8260801d9d613d40565b61405382600f0b82600f0b614277565b9c613d2f565b6140698160801d8d60801d614277565b9b613d1b565b905061408b919b5060403d6040116118a8576118988183610b21565b9a909a5f613d06565b9190820180921161250857565b5f93926001600160a01b03161561359a5780519151820361410557905f915b8183106140cc57505050565b9091936140d9858361251c565b519081156140f6576001916140ed91614094565b940191906140c0565b633fa8802d60e21b5f5260045ffd5b63512509d360e11b5f5260045ffd5b81810392915f13801582851316918412161761250857565b9060020b9060020b0190627fffff198212627fffff83131761250857565b9190602090604051828101918252600660408201526040815261416e606082610b21565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa91821561039a575f926141cf575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d6020116141fb575b816141eb60209383610b21565b810103126101525751905f6141a7565b3d91506141de565b600160ff1b8114612508575f0390565b9190826040910312610152576020825192015190565b906101609261423a83606093610c4b565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b910b039060016001607f1b0319821260016001607f1b0383131761250857565b600f91820b910b019060016001607f1b0319821260016001607f1b0383131761250857565b6001600160801b03918216908216039190821161250857565b80546001600160801b031660809290921b6001600160801b031916919091179055565b91939260049060018060801b03600382015416935f600288019761432e614328888b5460801c6142c1565b8a6142da565b8354906001850191825491821585146144be578181555b8115851461449d576001915001555b88546001600160801b03168061447a575b508184555561437382613c26565b9660028301545f525f516020615a575f395f51905f5260205260405f2060018060a01b0386165f52602052606060405f2092015160020b9060018060801b0390541615614445575b5050015460601c90815f525f516020615b375f395f51905f5260205260405f2060018060a01b0382165f5260205260405f20549283039283116125085760205f516020615a375f395f51905f5291835f525f516020615b375f395f51905f52825260405f2060018060a01b0382165f5282528460405f205560405194855260018060a01b031693a3565b8760020b905f81830712910503908160020b60081d60010b5f52602052600160ff60405f2092161b1981541690555f806143bb565b89546001600160801b03191683199091016001600160801b03161789555f614365565b5083525f516020615ad75f395f51905f526020526001604084200155614354565b8285525f516020615ad75f395f51905f52602052816040862055614345565b919091604051906144ed82610aeb565b606082525f602083015290926001600160a01b0382169190848315614764575060405163442f7de960e11b8152600481018490526001600160a01b03919091169190602081602481865afa5f9181614726575b5061454f575b505050505f9190565b60ff6004911610159081614716575b5061456b575b8080614546565b5f91935060246040518095819363f3ffe14b60e01b835260048301525afa91821561039a575f926145ad575b50818051516145a65780614564565b6001925090565b9091503d805f833e6145bf8183610b21565b810190602081830312610152578051906001600160401b038211610152570160408183031261015257604051916145f583610aeb565b81516001600160401b0381116101525782019080601f830112156101525781519161461f83610bbc565b9261462d6040519485610b21565b80845260208085019160051b830101918383116101525760208101915b8383106146715750505050506146659160209184520161287b565b6020820152905f614597565b82516001600160401b0381116101525782019060a0828703601f190112610152576040519061469f82610a86565b6146ab6020840161287b565b82526146b96040840161288f565b60208301526146ca6060840161289f565b60408301526146db6080840161287b565b606083015260a0830151916001600160401b0383116101525761470688602080969581960101612796565b608082015281520192019161464a565b6147209150614dfa565b5f61455e565b9091506020813d60201161475c575b8161474260209383610b21565b81010312610152575160ff8116810361015257905f614540565b3d9150614735565b94505050505f9190565b6001600160a01b039182168152911660208201526001600160801b03909116604082015260600190565b9695929193945f1461498957506020820151915180516001600160801b0392831695919391909216911561497a578251156125305760208301516147e5916001600160a01b03169061552a565b9081156149745785925b82156149635760208201516001600160a01b0316965b831561495b5750925b6001600160801b0316806149105750505093909192935b93916001916020935b82518410156148b657614867959661488361485560019361484f888861251c565b5161552a565b989092848060801b0316600f0b614e78565b600f0b604051906148788983610b21565b5f825289848d6155b2565b828060801b0316965f146148a85785828060a01b03910151165b93019295949561482e565b818060a01b0390511661489d565b96909493508692508591506001600160a01b0316803b15610152576148f5935f809460405196879586948593630b0d9c0960e01b85526004850161476e565b03925af1801561039a576149065750565b5f610ecf91610b21565b91614942916149256149519594600f0b614e78565b9160405192614935602085610b21565b5f8452600f0b918b6155b2565b6001600160801b031690615511565b9390919293614825565b90509261480e565b81516001600160a01b031696614805565b826147ef565b6319dcad4d60e31b5f5260045ffd5b909495939291505f925f905f905f88600f0b135f14614a2857505090516001600160a01b03908116956001600160801b03169416919050813b15614a2457836149ec92849283604051809681958294630b0d9c0960e01b84528c6004850161476e565b03925af18015614a1957614a01575b50509091565b614a0c828092610b21565b614a1657806149fb565b80fd5b6040513d84823e3d90fd5b8280fd5b5f91969493929750809550600f0b13614a44575b505050509091565b602001516001600160a01b0390811695506001600160801b0390931693509116803b1561015257825f91614a909383604051809681958294630b0d9c0960e01b84528b6004850161476e565b03925af1801561039a57614aa7575b808080614a3c565b5f614ab191610b21565b5f614a9f565b9293925f92600f0b83811215614df257945b600f0b5f811215614dea57945b8015801590614de1575b614aed575b505050509050565b5f811380614dda575b614d65575b838112614c99575b5082851380614c92575b614c21575b828512614b20575b80614ae5565b60209190910180516001600160a01b039081169592169190823b15614c125760405195632961046560e21b87526004870152838660248183875af1958615614c1657849596614bf5575b505160209291614b8f916001600160a01b0316908390614b8990614203565b916156d6565b600460405180958193630476982d60e21b83525af1908115614be95750614bba575b80808392614b1a565b614bdb9060203d602011614be2575b614bd38183610b21565b8101906123cf565b505f614bb1565b503d614bc9565b604051903d90823e3d90fd5b84614c04919592939495610b21565b614c1257908392915f614b6a565b8380fd5b6040513d86823e3d90fd5b60208201516001600160a01b038281169116813b15614c8e5786614c60928680809460405196879586948593630b0d9c0960e01b855260048501614e8f565b03925af18015614c1657908491614c79575b5050614b12565b81614c8391610b21565b614a2457825f614c72565b8480fd5b5082614b0d565b82516001600160a01b03838116929116823b15614d615760405190632961046560e21b82526004820152858160248183875af18015614d56579086939291614d3b575b50845160209291614cfc916001600160a01b0316908390614b8990614203565b600460405180948193630476982d60e21b83525af18015614c165715614b0357614d349060203d602011614be257614bd38183610b21565b505f614b03565b83614d499194929394610b21565b614c8e579084915f614cdc565b6040513d88823e3d90fd5b8580fd5b82516001600160a01b03908116908316803b1561015257604051630b0d9c0960e01b81526001600160a01b0390921660048301525f6024830181905260448301849052908290606490829084905af1801561039a57614dc5575b50614afb565b614dd29194505f90610b21565b5f925f614dbf565b505f614af6565b50851515614ae0565b505f94614ad6565b505f94614ac9565b6040516301ffc9a760e01b815263f3ffe14b60e01b600482015290602090829060249082906001600160a01b03165afa5f9181614e3c575b50610d3357505f90565b9091506020813d602011614e70575b81614e5860209383610b21565b8101031261015257614e6990610c0c565b905f614e32565b3d9150614e4b565b600f0b60016001607f1b03198114612508575f0390565b6001600160a01b03918216815291166020820152604081019190915260600190565b9195949092955f945f821380615176575b615115575b5084811261503e575b508386138061502c575b614fbf575b50828512614eef575b5050509050565b60209190910180516001600160a01b039081169592169190823b15614c125760405195632961046560e21b87526004870152838660248183875af1958615614c1657849596614fa2575b505160209291614f58916001600160a01b0316908390614b8990614203565b600460405180958193630476982d60e21b83525af1908115614be95750614f83575b80808392614ee8565b614f9b9060203d602011614be257614bd38183610b21565b505f614f7a565b84614fb1919592939495610b21565b614c1257908392915f614f39565b60208301516001600160a01b03838116929116823b15614d6157614fff928692838a9360405196879586948593630b0d9c0960e01b855260048501614e8f565b03925af18015614c1657908491615017575b50614edf565b8161502191610b21565b614a2457825f615011565b506001600160a01b0381161515614eda565b83516001600160a01b03848116929116823b156151115760405190632961046560e21b82526004820152868160248183875af180156151065790879392916150eb575b508551602092916150a1916001600160a01b0316908390614b8990614203565b600460405180948193630476982d60e21b83525af180156150e05715614ed0576150d99060203d602011614be257614bd38183610b21565b505f614ed0565b6040513d87823e3d90fd5b836150f99194929394610b21565b614d61579085915f615081565b6040513d89823e3d90fd5b8680fd5b84516001600160a01b03858116929116823b1561015257615152925f9283869360405196879586948593630b0d9c0960e01b855260048501614e8f565b03925af1801561039a5715614ec75761516e9195505f90610b21565b5f935f614ec7565b506001600160a01b0381161515614ec2565b60020b908160ff1d82810118620d89e881116154a25763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116615486575b6004811661546a575b6008811661544e575b60108116615432575b60208116615416575b604081166153fa575b608081166153de575b61010081166153c2575b61020081166153a6575b610400811661538a575b610800811661536e575b6110008116615352575b6120008116615336575b614000811661531a575b61800081166152fe575b6201000081166152e2575b6202000081166152c7575b6204000081166152ac575b6208000016615293575b5f1261528b575b0160201c90565b5f1904615284565b6b048a170391f7dc42444e8fa290910260801c9061527d565b6d2216e584f5fa1ea926041bedfe9890920260801c91615273565b916e5d6af8dedb81196699c329225ee6040260801c91615268565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161525d565b916f31be135f97d08fd981231505542fcfa60260801c91615252565b916f70d869a156d2a1b890bb3df62baf32f70260801c91615248565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161523e565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91615234565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161522a565b916ff3392b0822b70005940c7a398e4b70f30260801c91615220565b916ff987a7253ac413176f2b074cf7815e540260801c91615216565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161520c565b916ffe5dee046a99a2a811c461f1969c30530260801c91615202565b916fff2ea16466c96a3843ec78b326b528610260801c916151f9565b916fff973b41fa98c081472e6896dfb254c00260801c916151f0565b916fffcb9843d60f6159c9db58835c9266440260801c916151e7565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916151de565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916151d5565b916ffff97272373d413259a46990580e213a0260801c916151cc565b826345c3193d60e11b5f5260045260245ffd5b6001600160a01b03918216908216039190821161250857565b90926001600160801b03169190821561550b57610ecf93156154f957516001600160a01b03166156d6565b602001516001600160a01b03166156d6565b50505050565b6001600160801b03918216908216019190821161250857565b906155336124d0565b5081516001600160a01b0382811692911690818310156155aa575b60018060a01b03168092149262ffffff602082015116604082015160020b91606060018060a01b0391015116926040519461558886610a86565b85526001600160a01b0316602085015260408401526060830152608082015291565b50819061554e565b93929180156156bb576401000276a4945b6040519160608301908382106001600160401b03831117610aa1576020946156585f92615627946040521515988987528787019a898c52604088019060018060a01b031681526040519b8c9889978896633cf3645360e21b88526004880190610c4b565b51151560a48601525160c4850152516001600160a01b031660e4840152610120610104840152610124830190610a62565b03926001600160a01b03165af192831561039a575f93615687575b505f130361568157600f0b90565b60801d90565b9092506020813d6020116156b3575b816156a360209383610b21565b810103126101525751915f615673565b3d9150615696565b73fffd8963efd1fc6a506488495d951d5263988d25946155c3565b9091906001600160a01b03811690816157645750505f80808093855af1156156fb5750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156157b55750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b90606082901b905f19600160601b840992828085109403938085039485841115610152571461589c578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b111561015257146158e357600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f19818509938380861095039480860395868511156101525714615964579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b6001600160801b0381169190820361598057565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fd5b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa90811561039a575f91615a07575090565b90506020813d602011615a2e575b81615a2260209383610b21565b81010312610152575190565b3d9150615a1556fea942ad2d47c64ce0859147575881ee76ce335036216e9378b100614f683006cb98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf198b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf073544fee6e45e543d5464c5d945a19046ad773dabfc95c7d1c119b135d947dde98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf298b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6ced98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cef98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cec98b43bb10ca7bc310641b07883d9e14c04b3983640df6b07dd1c99d10a3c6cf3","sourceMap":"1453:7731:75:-:0;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;7879:11;-1:-1:-1;;;;;1453:7731:75;7857:10;:34;1453:7731;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;;;;;;;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;-1:-1:-1;;;;;;1453:7731:75;;;;;;;;;;-1:-1:-1;;;2641:68:76;;2673:10;1453:7731:75;2641:68:76;;1453:7731:75;2693:4:76;1453:7731:75;;;;-1:-1:-1;;;1453:7731:75;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;2641:68:76;;;;;;;1453:7731:75;2641:68:76;;;1453:7731:75;;;;;;3916:11;3864:113;3916:11;;3864:113;:::i;:::-;1453:7731;;;;;;;:::i;:::-;;;;;1813:27:76;;;1453:7731:75;;;;;2641:68:76;;;1453:7731:75;2641:68:76;;1453:7731:75;2641:68:76;;;;;;1453:7731:75;2641:68:76;;;:::i;:::-;;;1453:7731:75;;;;;;;:::i;:::-;2641:68:76;;;;;;-1:-1:-1;2641:68:76;;;1453:7731:75;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;1531:41;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;;;-1:-1:-1;;;2641:68:76;;2673:10;1453:7731:75;2641:68:76;;1453:7731:75;2693:4:76;1453:7731:75;;;;-1:-1:-1;;;1453:7731:75;;;;;;;;;2641:68:76;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;2641:68:76;;;;;;;1453:7731:75;2641:68:76;;;1453:7731:75;;;;;;;-1:-1:-1;;;;;;;;;;;1453:7731:75;;2641:68:76;;;1453:7731:75;2641:68:76;;1453:7731:75;2641:68:76;;;;;;1453:7731:75;2641:68:76;;;:::i;:::-;;;1453:7731:75;;;;;;;:::i;:::-;2641:68:76;;;;;;-1:-1:-1;2641:68:76;;1453:7731:75;;;;;;-1:-1:-1;;1453:7731:75;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;8895:136;1453:7731;;;;;;:::i;:::-;;;;;;;;:::i;:::-;6330:10;1453:7731;;;8906:124;;1453:7731;;;;8906:124;;1453:7731;;;;;;;;;;8906:124;;1453:7731;;;;;8906:124;;1453:7731;;;;;;8895:136;;;1453:7731;8895:136;;;1453:7731;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;8895:136;-1:-1:-1;;8895:136:75;;;;;;:::i;:::-;1453:7731;;;9143:31;;;1453:7731;;9143:31;6280:26;1453:7731;;9143:31;;1453:7731;;;;;;;;;;;:::i;:::-;9143:31;5899:98;;9143:31;;;;;;:::i;:::-;1453:7731;;;;;;;;;9124:51;;1453:7731;;9124:51;;1453:7731;;;;;;:::i;:::-;9124:51;1453:7731;;9124:11;-1:-1:-1;;;;;1453:7731:75;9124:51;;;;;;;;1453:7731;9124:51;;;;;1453:7731;9124:51;;;;;;:::i;:::-;;;;;:::i;:::-;1453:7731;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;1649:51;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1453:7731:75;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;;1765:10:76;:25;1761:90;;1864:24;;:29;1860:110;;-1:-1:-1;;;;;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;2290:30:76;;1453:7731:75;;2290:30:76;1453:7731:75;1860:110:76;-1:-1:-1;;;;1453:7731:75;1916:43:76;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;1916:43:76;1453:7731:75;;;;;;-1:-1:-1;;1453:7731:75;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;:::i;:::-;;;:::i;:::-;5604:13;1453:7731;;;;-1:-1:-1;;1453:7731:75;;;5631:3;5619:10;;;;;;1453:7731;;;;;;;;;;;;;;5707:14;;;;;;;;:::i;:::-;:26;;5703:327;;5631:3;;1453:7731;5631:3;;1453:7731;5604:13;;5703:327;5781:14;1453:7731;5781:14;;;:::i;:::-;1453:7731;;;:::i;:::-;5931:17;;;1453:7731;;;;;;;;;;5899:98;;1453:7731;;;;;5899:98;1453:7731;;;;;;:::i;:::-;5910:86;1453:7731;;;;;;:::i;:::-;;;:::i;:::-;;8411:18;;1453:7731;;;;;;;;;;;;;;;;;;;;;;;;;5931:17;1453:7731;;;5707:14;1453:7731;;8631:24;1453:7731;;5899:98;;;1453:7731;5899:98;;;:::i;:::-;;:::i;:::-;5703:327;;;1453:7731;;;;;-1:-1:-1;;1453:7731:75;;;;;;;-1:-1:-1;1453:7731:75;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;1453:7731:75;;;;1578:65;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;;1453:7731:75;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;:::o;:::-;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;:::o;:::-;;;5899:98;;1453:7731;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;:::o;:::-;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;5899:98;1453:7731;5899:98;;1453:7731;;:::i;:::-;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;:::i;:::-;;:::o;4030:1427::-;;;;;;4192:17;;4188:80;;4030:1427;4296:45;4329:11;4296:45;:::i;:::-;4409:121;;;;4030:1427;4653:14;;:::i;:::-;4750:164;1453:7731;;:::i;:::-;;2135:35:81;1453:7731:75;;;;:::i;:::-;2135:35:81;:::i;:::-;4208:1:75;1453:7731;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;4208:1;1453:7731;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2236:29:81;2232:178;;4030:1427:75;1453:7731;;2451:81:81;;1453:7731:75;;;;;;-1:-1:-1;;;;;1453:7731:75;2451:81:81;:::i;:::-;1453:7731:75;;;1032:7:31;;;13865:29:81;;:62;;;;4030:1427:75;13861:170:81;;1453:7731:75;;;-1:-1:-1;;14044:27:81;;:58;;;;4030:1427:75;14040:166:81;;14216:277;;;;14251:19;;;14247:102;;14216:277;1453:7731:75;;;;;;;:::i;:::-;4208:1;1453:7731;;4208:1;1453:7731;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;8411:18:75;;1453:7731;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;8631:24;5195:152;;1453:7731;5429:20;;;1453:7731;;;5429:20;;;1453:7731;5429:20;;;:::i;:::-;4030:1427::o;5195:152::-;5307:8;;;;:::i;14247:102:81:-;13950:70;;;;;;4208:1:75;14279:70:81;1453:7731:75;;1317:6:31;1453:7731:75;;;1317:6:31;1453:7731:75;1317:6:31;4208:1:75;14279:70:81;14216:277;14384:19;;;14380:102;14216:277;14380:102;13950:70;;;4208:1:75;14412:70:81;1453:7731:75;;1317:6:31;1453:7731:75;4208:1;1317:6:31;1453:7731:75;1317:6:31;4208:1:75;14412:70:81;14044:58;14075:27;1317:6:31;14075:27:81;;14044:58;;13861:170;13950:70;;;;;4208:1:75;13950:70:81;1453:7731:75;;;;1317:6:31;1453:7731:75;;;1317:6:31;1453:7731:75;1317:6:31;4208:1:75;13950:70:81;13865:62;13898:29;1317:6:31;13898:29:81;;13865:62;;2232:178;1453:7731:75;;;;;;;:::i;:::-;2325:24:81;1453:7731:75;2325:24:81;;1453:7731:75;;;2325:29:81;2321:78;;2232:178;;;2321:78;2363:36;;;4208:1:75;2363:36:81;1453:7731:75;4208:1;2363:36:81;4409:121:75;1453:7731;;-1:-1:-1;;;4447:45:75;;4481:10;1453:7731;4447:45;;1453:7731;;;4447:45;1453:7731;4447:16;-1:-1:-1;;;;;1453:7731:75;4447:45;;;;;;;4208:1;4447:45;;;4409:121;1453:7731;4409:121;1453:7731;;;;4208:1;1453:7731;;4208:1;1453:7731;4447:45;;;1453:7731;4447:45;;1453:7731;4447:45;;;;;;1453:7731;4447:45;;;:::i;:::-;;;1453:7731;;;;;;;:::i;:::-;4447:45;;;;;;-1:-1:-1;4447:45:75;;4188:80;-1:-1:-1;;;;;;;;;;;1453:7731:75;;-1:-1:-1;4188:80:75;;1453:7731;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;-1:-1:-1;;1453:7731:75;;;;:::o;:::-;;-1:-1:-1;1453:7731:75;;;:::o;6629:863::-;;1453:7731;;6746:11;-1:-1:-1;;;;;1453:7731:75;6724:10;:34;1453:7731;;6841:37;;1453:7731;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;:::i;:::-;6970:31;;6966:140;;1453:7731;;;;:::i;:::-;;7120:29;;1453:7731;;7206:14;;;;:::i;:::-;1453:7731;;2799:64:81;;;1453:7731:75;2799:64:81;;1453:7731:75;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;2897:4:81;1453:7731:75;;;;:::i;:::-;;;;;2897:4:81;:::i;:::-;1453:7731:75;;;;;;:::i;:::-;-1:-1:-1;1453:7731:75;;6629:863;:::o;7116:343::-;7270:26;1453:7731;;;;:::i;:::-;7256:40;7270:26;;1453:7731;;1257:69:86;;1453:7731:75;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;1257:69:86;1453:7731:75;1257:69:86;;1453:7731:75;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;1733:23:86;1453:7731:75;;;;1856:15:86;;;1453:7731:75;;1919:22:86;;;-1:-1:-1;1957:9:86;-1:-1:-1;2878:16:86;;;;1952:1026;1968:14;;;;;;1952:1026;3039:30;;;;;;;;;;1453:7731:75;;7252:207;;7116:343;;1453:7731;;;;-1:-1:-1;1453:7731:75;2138:11:86;1453:7731:75;;;;-1:-1:-1;1453:7731:75;1984:3:86;2021:11;;;;;;;;;;;:::i;:::-;1453:7731:75;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;2138:11:86;;;1453:7731:75;;;;;;2138:25:86;;1453:7731:75;;2222:20:86;;1453:7731:75;;;;;;;;;;;:::i;:::-;2302:48:86;1453:7731:75;;;2421:15:86;;1453:7731:75;3466:17:86;7270:26:75;3466:17:86;;1453:7731:75;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;7270:26;1453:7731;;;;;;;;;;;;;;;;;3502:20:86;1453:7731:75;;6768:208:82;3588:36:86;4153:64;3588:36;;;;:::i;:::-;1453:7731:75;3641:53:86;1453:7731:75;;;;;3641:53:86;;:::i;:::-;-1:-1:-1;1453:7731:75;;;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1453:7731:75;;;;;;4153:64:86;;:::i;:::-;;1453:7731:75;6909:27:82;1453:7731:75;;;6909:27:82;:::i;:::-;1453:7731:75;;;;;;:::i;:::-;;7270:26;1453:7731;;;;;;7270:26;1453:7731;;6826:124:82;;1453:7731:75;6826:124:82;;;1453:7731:75;6826:124:82;1453:7731:75;6826:124:82;;1453:7731:75;;;;;;;;;;6768:208:82;;;2138:11:86;6768:208:82;;;:::i;:::-;;1453:7731:75;-1:-1:-1;6746:11:75;-1:-1:-1;;;;;1453:7731:75;6768:208:82;;;;;;;-1:-1:-1;6768:208:82;;;1984:3:86;-1:-1:-1;1453:7731:75;;;;;;;;5327:26:82;;1984:3:86;5323:311:82;;;-1:-1:-1;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;2052:83:33;;;1453:7731:75;;;-1:-1:-1;;;;;1453:7731:75;;;;6746:11;1453:7731;5411:53:82;;;;-1:-1:-1;1453:7731:75;;5411:53:82;1453:7731:75;;;;;;;;;;5411:53:82;;1453:7731:75;;;;;;5411:53:82;2138:11:86;5411:53:82;;;:::i;:::-;;1453:7731:75;;6746:11;-1:-1:-1;;;;;1453:7731:75;5411:53:82;;;;;;;1453:7731:75;5411:53:82;;;-1:-1:-1;;;;;;;;;;;5411:53:82;1453:7731:75;5411:53:82;7270:26:75;5411:53:82;5693:7;5411:53;;;5323:311;;;2241:89:33;;;2052:83;1453:7731:75;2052:83:33;6746:11:75;;5693:7:82;:::i;:::-;3466:17:86;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;7270:26;1453:7731;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;4409:111:86;-1:-1:-1;;;;;1453:7731:75;;2643:19:86;;2639:125;;-1:-1:-1;2778:27:86;;-1:-1:-1;;;;;1453:7731:75;;;;;-1:-1:-1;2778:27:86;:::i;:::-;2878:50;;;;;5323:311:82;2874:94:86;;1453:7731:75;;1957:9:86;;;;;;;;2874:94;2948:5;;2878:50;2898:30;;;;;2878:50;;2639:125;2689:60;;;;;-1:-1:-1;2689:60:86;2138:11;1453:7731:75;;;;;;;;;;;;-1:-1:-1;2689:60:86;5411:53:82;-1:-1:-1;5411:53:82;;;:::i;:::-;;;;5323:311;1453:7731:75;;;;;;;;;;5485:12:82;:27;;;5323:311;5481:153;;5323:311;;7270:26:75;1453:7731;5323:311:82;5693:7;-1:-1:-1;;;;;;;;;;;5323:311:82;;1453:7731:75;5323:311:82;;;5481:153;1453:7731:75;;;;-1:-1:-1;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;6746:11;1453:7731;5570:53:82;;;;-1:-1:-1;1453:7731:75;;5570:53:82;1453:7731:75;;;;;;;;;;5570:53:82;;1453:7731:75;;;;;;5570:53:82;2138:11:86;5570:53:82;;;:::i;:::-;;1453:7731:75;;6746:11;-1:-1:-1;;;;;1453:7731:75;5570:53:82;;;;;;;1453:7731:75;5570:53:82;;;-1:-1:-1;;;;;;;;;;;5570:53:82;1453:7731:75;5570:53:82;7270:26:75;5570:53:82;5693:7;5570:53;;;5481:153;;;;;;;;;;;;;;5570:53;-1:-1:-1;5570:53:82;;;:::i;:::-;;;;5485:27;2241:89:33;-1:-1:-1;2241:89:33;;;5501:11:82;5485:27;;5327:26;2052:83:33;-1:-1:-1;2052:83:33;1453:7731:75;2052:83:33;2241:89;1453:7731:75;5342:11:82;5327:26;;6768:208;;;;;1453:7731:75;6768:208:82;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1453:7731:75;;;;-1:-1:-1;1453:7731:75;2138:11:86;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;2138:11:86;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;2138:11:86;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;;-1:-1:-1;1453:7731:75;7252:207;7431:17;;;-1:-1:-1;7431:17:75;;-1:-1:-1;7431:17:75;6966:140;1453:7731;;3293:61:80;;;1453:7731:75;3293:61:80;;;;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3364:66:80;1453:7731:75;;;;;;;;;;;:::i;:::-;;;;;;;3385:15:80;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;3364:66:80;:::i;:::-;;5128:8;5168:27;;;;:::i;:::-;1453:7731:75;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;;-1:-1:-1;1453:7731:75;5282:39:80;1453:7731:75;;;;;5282:44:80;5278:108;;1453:7731:75;14636:46:81;1453:7731:75;357:173:36;;;;;6746:11:75;14636:46:81;:::i;:::-;1453:7731:75;;;;;5559:52:80;1453:7731:75;;;;5559:52:80;;:::i;:::-;1453:7731:75;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;5423:323:80;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;;5423:323:80;;1453:7731:75;5423:323:80;;;1453:7731:75;;5423:323:80;;1453:7731:75;;5423:323:80;;1453:7731:75;5782:15:80;;1453:7731:75;5768:37:80;;;:::i;:::-;5821:9;-1:-1:-1;6712:15:80;;;;5816:229;5821:9;5836:15;;1453:7731:75;;;5832:26:80;;;;;1453:7731:75;5956:15:80;;6427:190;;;1453:7731:75;6427:190:80;;;;;;;;;;1453:7731:75;5423:323:80;;1453:7731:75;;;;;;;;6664:64:80;7539:205;;;;7617:19;7570:21;7617:19;;;:::i;:::-;7539:205;;1453:7731:75;5423:323:80;;1453:7731:75;;;1850:38:82;;;:::i;:::-;1923;;;;:::i;:::-;1990:203;;;;1511:80:65;;1521:69;;2020:77:82;;-1:-1:-1;;;;;1453:7731:75;;;;;;1304:29:65;1300:98;;1990:203:82;-1:-1:-1;1560:29:65;;-1:-1:-1;1431:63:65;-1:-1:-1;;;;;1453:7731:75;;;;;;1431:63:65;:::i;:::-;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;1560:29:65;:::i;:::-;1453:7731:75;1521:69:65;;;:::i;:::-;1511:80;:::i;:::-;1990:203:82;;-1:-1:-1;;;;;1453:7731:75;;6864:14:80;1453:7731:75;;;;;;9349:323:80;1453:7731:75;;;;;;;;;;;5423:323:80;;;1453:7731:75;;;;;;;;5423:323:80;;1453:7731:75;;;-1:-1:-1;1453:7731:75;7009:17:80;1453:7731:75;;;-1:-1:-1;1453:7731:75;;7007:30:80;1453:7731:75;;7007:30:80;:::i;:::-;1453:7731:75;;;7913:323:80;;;;;1453:7731:75;7913:323:80;;;;;;;;;;;;1453:7731:75;7913:323:80;;;;1453:7731:75;;;;;;;;:::i;:::-;;;;;;;;7080:223:80;;1453:7731:75;;;;7080:223:80;;;1453:7731:75;;;;;;;;7080:223:80;;;1453:7731:75;;7080:223:80;;1453:7731:75;;;;;;;;;;7080:223:80;;;1453:7731:75;;;;5423:323:80;1453:7731:75;;;8519:56:80;-1:-1:-1;1453:7731:75;;;;;;;:::i;:::-;;;;;;;;;9414:232:80;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;9414:232:80;;;1453:7731:75;9414:232:80;;1453:7731:75;;;-1:-1:-1;;;9349:323:80;;1453:7731:75;;;;;5632:16:80;9349:323;;;:::i;:::-;;1453:7731:75;-1:-1:-1;6746:11:75;-1:-1:-1;;;;;1453:7731:75;9349:323:80;;;;;;;-1:-1:-1;9349:323:80;;;1990:203:82;2052:83:33;;1453:7731:75;2052:83:33;2241:89;;;9768:207:80;;;;;9814:52;-1:-1:-1;1453:7731:75;2241:89:33;1453:7731:75;9814:11:80;:52;-1:-1:-1;;;9851:8:80;;;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;9814:52:80;9768:207;;-1:-1:-1;;;;;1453:7731:75;;9993:17:80;1453:7731:75;;;;;;;;;;-1:-1:-1;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;10067:35:80;-1:-1:-1;10063:112:80;;9768:207;-1:-1:-1;;10236:10:80;;1453:7731:75;;3005:7:82;;10236:10:80;2619:78:82;;-1:-1:-1;;;;;1453:7731:75;2676:4:82;6746:11:75;2619:78:82;:::i;:::-;1453:7731:75;2787:13:82;;1453:7731:75;2723:78:82;;-1:-1:-1;;;;;1453:7731:75;2676:4:82;6746:11:75;2723:78:82;:::i;:::-;2830:40;;;;;-1:-1:-1;2830:40:82;;2898;;;2676:4;2898:40;;6746:11:75;3005:7:82;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;;8586:132:80;;2898:40:82;8792:14:80;;;1453:7731:75;;;;;;;5423:323:80;1453:7731:75;5423:323:80;;1453:7731:75;;;;;;;;;5423:323:80;;1453:7731:75;;5423:323:80;;;1453:7731:75;5423:323:80;;1453:7731:75;;;5423:323:80;;;1453:7731:75;5423:323:80;;1453:7731:75;;;5423:323:80;;1453:7731:75;;;;;;;;;7080:223:80;;;1453:7731:75;;7080:223:80;1453:7731:75;7080:223:80;;1453:7731:75;7080:223:80;1453:7731:75;7080:223:80;1453:7731:75;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;2066:15:79;1453:7731:75;2066:15:79;;1453:7731:75;;;;;;;;;;;;;;;871:1:83;;;;;;;2106:27:79;;;:::i;:::-;5632:16:80;2143:15:79;;1453:7731:75;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1453:7731:75;;;-1:-1:-1;;;;;1453:7731:75;;;;;;2388:17:79;1453:7731:75;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;2528:17:79;;;;1453:7731:75;2528:17:79;;1453:7731:75;;;2528:33:79;;;;:::i;:::-;;;1453:7731:75;2528:17:79;;:33;:::i;:::-;1453:7731:75;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;2649:15:79;;1453:7731:75;;;;;;;;;;2528:17:79;1453:7731:75;2528:17:79;1453:7731:75;;864:15:78;860:218;1453:7731:75;860:218:78;;1453:7731:75;860:218:78;-1:-1:-1;;;;;;;;;;;860:218:78;;;2898:40:82;1107:6:83;;;;;;;1453:7731:75;;1128:18:83;;1124:235;1128:18;;;1453:7731:75;;;1124:235:83;3594:343;-1:-1:-1;3594:343:83;-1:-1:-1;;;;;;;;;;;3594:343:83;;1453:7731:75;;-1:-1:-1;3594:343:83;;;1453:7731:75;;;;;;;;;;;;;;;;;;;2528:17:79;;;1453:7731:75;;;;;;;;;;871:1:83;2528:17:79;;;871:1:83;;;2528:17:79;;871:1:83;1453:7731:75;;;;;;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;2793:47:79;1453:7731:75;-1:-1:-1;1453:7731:75;;;;;;;;;;2793:47:79;:::i;:::-;2850:26;1453:7731:75;;;;;;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2916:123:79;1453:7731:75;;;;;;;;2916:123:79;;1453:7731:75;;;;;;;;;;;3054:69:79;;5876:99:80;;;;:::i;:::-;1453:7731:75;;5821:9:80;;1124:235:83;3594:343;-1:-1:-1;3594:343:83;-1:-1:-1;;;;;;;;;;;3594:343:83;;;1453:7731:75;-1:-1:-1;3594:343:83;;1124:235;;860:218:78;846:396:30;1453:7731:75;846:396:30;;-1:-1:-1;846:396:30;;;;;;;1039:11:78;1676:170:30;1453:7731:75;1676:170:30;;;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;1676:170:30;1453:7731:75;-1:-1:-1;1453:7731:75;1676:170:30;;1453:7731:75;;;1039:28:78;1453:7731:75;;860:218:78;;;;8586:132:80;8698:8;8654:14;;;1453:7731:75;5423:323:80;;1453:7731:75;;;;;;;;;5423:323:80;;1453:7731:75;;8698:8:80;;:::i;:::-;8586:132;;;2898:40:82;-1:-1:-1;2898:40:82;;;2830;2676:4;2830:40;;;10063:112:80;3005:7:82;10129:35:80;;;;;;;:::i;:::-;10063:112;;;;;;;1453:7731:75;;;;-1:-1:-1;1453:7731:75;5632:16:80;-1:-1:-1;1453:7731:75;9814:52:80;;-1:-1:-1;9814:52:80;;9768:207;9912:52;-1:-1:-1;;9912:11:80;;-1:-1:-1;;;9949:8:80;;;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;9912:52:80;9768:207;;;9912:52;;-1:-1:-1;9912:52:80;;9349:323;;;;1453:7731:75;9349:323:80;;;;;;;;;:::i;:::-;;;;;1300:98:65;1335:63;;;;1300:98;;;;1990:203:82;2299:84:65;;2309:73;;2116:77:82;;;-1:-1:-1;;;;;1453:7731:75;;;;;;2188:29:65;2184:98;;1990:203:82;-1:-1:-1;;;;;;1453:7731:75;2352:29:65;;1453:7731:75;-1:-1:-1;2352:29:65;:::i;:::-;1453:7731:75;2309:73:65;;:::i;2299:84::-;1990:203:82;;;2184:98:65;2219:63;-1:-1:-1;2219:63:65;-1:-1:-1;2352:29:65;2184:98;;;7539:205:80;7679:19;;;;;:::i;:::-;7712:21;;7539:205;;;5832:26;;;;;;;;3520:20;5832:26;;3520:20;5832:26;;1453:7731:75;;3520:20:80;;;1453:7731:75;3520:20:80;;;:::i;5278:108::-;-1:-1:-1;1453:7731:75;;;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;-1:-1:-1;;;;;;1453:7731:75;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;-1:-1:-1;;;1453:7731:75;-1:-1:-1;;;1453:7731:75;;;;;;;;;;;;-1:-1:-1;;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5278:108:80;;1453:7731:75;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;417:66:25;;;;;;;;;;;:::o;2217:141:32:-;1453:7731:75;;-1:-1:-1;;;2305:39:32;;417:66:25;2305:39:32;;;1453:7731:75;;417:66:25;;1453:7731:75;;2305:39:32;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;2305:39:32;;;;;;;-1:-1:-1;2305:39:32;;;2217:141;2305:46;;;2217:141;:::o;2305:39::-;;;417:66:25;2305:39:32;;417:66:25;2305:39:32;;;;;;417:66:25;2305:39:32;;;:::i;:::-;;;417:66:25;;;;;2305:39:32;;;;;;-1:-1:-1;2305:39:32;;7923:178:75;1453:7731;;;;;;:::i;:::-;-1:-1:-1;;;;;8032:11:75;1453:7731;;;;8073:21;1453:7731;;;;;7923:178::o;1453:7731::-;;;;;;;:::i;:::-;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;-1:-1:-1;;1453:7731:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;2915:2047:81;;3258:36;3281:12;;3258:36;:::i;:::-;1453:7731:75;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;3327:31:81;1453:7731:75;;3327:31:81;:::i;:::-;1453:7731:75;;;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3431:20:81;3427:152;;2915:2047;1453:7731:75;;;357:173:36;;14636:46:81;;-1:-1:-1;;;;;1453:7731:75;14636:46:81;:::i;:::-;3662:13;;;;;;;;;;;1453:7731:75;3662:25:81;3658:123;;1453:7731:75;3810:16:81;;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;3927:47:81;;;;:::i;:::-;1453:7731:75;;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;;;;;;4099:17:81;;1453:7731:75;;4144:13:81;;;1453:7731:75;4179:9:81;-1:-1:-1;4190:10:81;;;;;;2915:2047;;;;;;;;;;;:::o;4179:9::-;4236:13;;;:16;1453:7731:75;4236:13:81;;;:16;:::i;:::-;1453:7731:75;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;3329:16:81;4360:12;;1453:7731:75;;;;;;;;;;;:::i;:::-;4360:48:81;:100;;;;4179:9;4360:152;;;4179:9;4360:205;;;4179:9;4360:256;;;;;4179:9;4339:547;;4179:9;1453:7731:75;;;;;4179:9:81;;4339:547;4858:12;4667:36;;;;:::i;:::-;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;4858:12:81;-1:-1:-1;;;;;;;;;;;4858:12:81;;:::i;:::-;4339:547;;;;;;4360:256;4585:31;;;;;:::i;:::-;4360:256;;:205;1453:7731:75;;;;4532:33:81;;-1:-1:-1;4360:205:81;;;;:152;1453:7731:75;;;;;;;;;;4480:32:81;4360:152;;;:100;1453:7731:75;4428:17:81;;1453:7731:75;4428:32:81;;;-1:-1:-1;4360:100:81;;3658:123;3738:11;;;;;;;-1:-1:-1;;;;;;;;;;;3738:11:81;;;;:::i;3427:152::-;3473:12;;;;3503:15;1453:7731:75;3503:15:81;;1453:7731:75;;;3427:152:81;3499:69;2363:36;;;-1:-1:-1;3532:36:81;3329:16;-1:-1:-1;3532:36:81;1453:7731:75;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;:::i;9044:138::-;1453:7731;;;9143:31;;;1453:7731;-1:-1:-1;9143:31:75;1453:7731;9143:31;1453:7731;9143:31;;1453:7731;;;;;;;;;;;:::i;:::-;9124:51;1453:7731;;9124:11;-1:-1:-1;;;;;1453:7731:75;9124:51;;;;;;;;9044:138;:::o;9124:51::-;;;;;-1:-1:-1;9124:51:75;;;;;;:::i;:::-;;9044:138::o;1453:7731::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;417:66:25;;1453:7731:75;;;;;;;;;;1903:1171:80;;;;;;-1:-1:-1;;;;;1453:7731:75;;;1903:1171:80;;1453:7731:75;;2210:19:80;;1453:7731:75;;10571:51:80;1453:7731:75;2227:1:80;1453:7731:75;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;10571:51:80;;;:::i;:::-;1453:7731:75;4292:47:80;1453:7731:75;;;;;;:::i;:::-;;;;;;;;10639:138:80;;1453:7731:75;;;;10639:138:80;;1453:7731:75;;;;10639:138:80;;;1453:7731:75;;;;10639:138:80;;1453:7731:75;;;-1:-1:-1;;;;;1453:7731:75;4292:47:80;:::i;:::-;1453:7731:75;4354:18:80;1453:7731:75;;4396:9:80;;:18;1453:7731:75;;4350:526:80;2659:45;;;:::i;:::-;2655:196;;1453:7731:75;;;;2994:22:80;1453:7731:75;2994:22:80;;;1453:7731:75;;;;;;;;;;;;:::i;:::-;;;;;;;;10639:138:80;1453:7731:75;;;;;;;;;;;;;;;;;;;2227:1:80;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2227:1:80;1453:7731:75;;;;;;;;;;;2944:73:80;1453:7731:75;2994:22:80;1453:7731:75;;2227:1:80;1453:7731:75;;;;;;;;;;;;;;;;2994:22:80;5899:98:75;;2994:22:80;;;;;;:::i;:::-;1453:7731:75;;;;;2944:73:80;1453:7731:75;2944:73:80;;1453:7731:75;;;;;;;;;;;:::i;2944:73:80:-;1453:7731:75;;;;;;;;;;;2925:93:80;;1453:7731:75;2925:93:80;;;1453:7731:75;;;;;;:::i;:::-;2925:93:80;;-1:-1:-1;;;;;1453:7731:75;2925:93:80;;;;;;;2227:1;2925:93;;;1453:7731:75;;;;3036:31:80;;1453:7731:75;;;;;;;;;3036:31:80;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;3036:31:80;1453:7731:75;3036:31:80;;;1453:7731:75;;;;:::i;2925:93:80:-;;;;;;2227:1;2925:93;;;;;;:::i;:::-;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2655:196:80;2801:39;;;;;5128:8;;5168:27;;;;:::i;:::-;1453:7731:75;;2227:1:80;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;5282:39:80;1453:7731:75;2227:1:80;1453:7731:75;5282:39:80;1453:7731:75;;;;;5282:44:80;5278:108;;2655:196;14636:46:81;357:173:36;;;14636:46:81;;:::i;:::-;1453:7731:75;;;;;5559:52:80;1453:7731:75;;;;5559:52:80;;:::i;:::-;1453:7731:75;2227:1:80;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;2227:1:80;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;5423:323:80;;1453:7731:75;;;;;;;;5423:323:80;;1453:7731:75;5423:323:80;;;1453:7731:75;;5423:323:80;;1453:7731:75;357:173:36;5423:323:80;;1453:7731:75;5768:37:80;1453:7731:75;10639:138:80;;5782:15;1453:7731:75;5768:37:80;:::i;:::-;5821:9;2227:1;5821:9;1453:7731:75;10639:138:80;;5836:15;1453:7731:75;;5832:26:80;;;;;1453:7731:75;5956:15:80;;6427:190;;;;;;;;;;;;;;5423:323;357:173:36;5423:323:80;;1453:7731:75;;;6712:15:80;;;1453:7731:75;;;6664:64:80;7539:205;;;;7617:19;7570:21;7617:19;;;:::i;:::-;7539:205;;357:173:36;5423:323:80;;1453:7731:75;;;1850:38:82;;;:::i;:::-;1923;;;;:::i;:::-;1990:203;;;;1511:80:65;;1521:69;;2020:77:82;;-1:-1:-1;;;;;1453:7731:75;;;;;;1304:29:65;1300:98;;1990:203:82;-1:-1:-1;1560:29:65;;-1:-1:-1;1431:63:65;-1:-1:-1;;;;;1453:7731:75;;;;;;1431:63:65;:::i;1560:29::-;1453:7731:75;1521:69:65;;;:::i;1511:80::-;1990:203:82;;-1:-1:-1;;;;;1453:7731:75;;6864:14:80;1453:7731:75;;9349:323:80;1453:7731:75;;;;;;;;;357:173:36;1453:7731:75;;;;;;;;;;;5423:323:80;;;1453:7731:75;;;;;;;;;5423:323:80;;1453:7731:75;;7009:28:80;1453:7731:75;;;;;;;-1:-1:-1;1453:7731:75;7009:17:80;1453:7731:75;;;-1:-1:-1;1453:7731:75;;7007:30:80;1453:7731:75;;7007:30:80;:::i;:::-;1453:7731:75;;;7913:323:80;;;;;1453:7731:75;7913:323:80;;;;;;;;;;;1453:7731:75;7913:323:80;;;;1453:7731:75;;;;;;;;;:::i;:::-;;;;;;;;;7080:223:80;;1453:7731:75;;;;7080:223:80;;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;;;7080:223:80;;;1453:7731:75;;;7080:223:80;;1453:7731:75;7080:223:80;;;1453:7731:75;;;5423:323:80;1453:7731:75;;;;;;;-1:-1:-1;;1453:7731:75;;8519:56:80;;1453:7731:75;;;;:::i;:::-;;;;;;;;;9414:232:80;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;9414:232:80;;;1453:7731:75;9414:232:80;;1453:7731:75;;;-1:-1:-1;;;9349:323:80;;1453:7731:75;;;;;-1:-1:-1;;1453:7731:75;;;;5632:16:80;9349:323;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;9349:323:80;;;;;;;2227:1;9349:323;;;1990:203:82;2052:83:33;;1453:7731:75;2052:83:33;2241:89;;;9768:207:80;;;;;9814:52;2227:1;1453:7731:75;2241:89:33;1453:7731:75;9814:11:80;:52;2227:1;;;9851:8;;;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;9814:52:80;-1:-1:-1;;;;;1453:7731:75;;9993:17:80;1453:7731:75;;;;;;;;;;;;;;;7080:223:80;;1453:7731:75;;;;;;;;;;10067:35:80;10063:112;;9768:207;10236:10;;3005:7:82;10236:10:80;;;;2619:78:82;1453:7731:75;;;;;;;;2559:4:80;2619:78:82;;:::i;:::-;1453:7731:75;2787:13:82;;1453:7731:75;2723:78:82;;-1:-1:-1;;;;;1453:7731:75;2559:4:80;2723:78:82;;:::i;:::-;2830:40;;;;;2227:1:80;2830:40:82;;2898;;;2559:4:80;2898:40:82;3005:7;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;;8586:132:80;;2898:40:82;8792:14:80;;;;1453:7731:75;;;7080:223:80;357:173:36;7080:223:80;;1453:7731:75;;;5423:323:80;1453:7731:75;5423:323:80;;1453:7731:75;;;;;;;;;5423:323:80;;1453:7731:75;;5423:323:80;;;;357:173:36;5423:323:80;;1453:7731:75;;;5423:323:80;1453:7731:75;5423:323:80;1453:7731:75;;;5423:323:80;;1453:7731:75;;;;;;;;7080:223:80;;;1453:7731:75;;7080:223:80;1453:7731:75;7080:223:80;;1453:7731:75;7080:223:80;1453:7731:75;7080:223:80;1453:7731:75;;;2227:1:80;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;2227:1:80;1453:7731:75;2066:15:79;5282:14:80;2066:15:79;;1453:7731:75;;;;;;;;;;;;;;;871:1:83;;;;;;;2106:27:79;;;:::i;:::-;5632:16:80;2143:15:79;;1453:7731:75;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1453:7731:75;;;-1:-1:-1;;;;;1453:7731:75;;;;;;2388:17:79;1453:7731:75;;2227:1:80;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;2227:1:80;1453:7731:75;;;;;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;-1:-1:-1;2472:46:79;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;2528:17:79;;1453:7731:75;2528:17:79;1453:7731:75;;;;;;2528:33:79;;;;:::i;:::-;;;;;:::i;:::-;1453:7731:75;2227:1:80;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;2227:1:80;1453:7731:75;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;2649:15:79;;1453:7731:75;;;;;;;;;;;;;864:15:78;860:218;5282:39:80;860:218:78;1453:7731:75;860:218:78;;1453:7731:75;860:218:78;-1:-1:-1;;;;;;;;;;;860:218:78;;;2898:40:82;-1:-1:-1;;1107:6:83;;;;1453:7731:75;;1128:18:83;;;1453:7731:75;;;;;1124:235:83;3594:343;;2227:1:80;3594:343:83;-1:-1:-1;;;;;;;;;;;3594:343:83;;1453:7731:75;5282:39:80;3594:343:83;2227:1:80;3594:343:83;;;1453:7731:75;;;;;;;;;;;;;;5282:39:80;1453:7731:75;;;;;;;;;;;;;;;;871:1:83;;;;;;;1453:7731:75;;;;;;;;;;;;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;2793:47:79;1453:7731:75;-1:-1:-1;1453:7731:75;;;;;;;;;;2793:47:79;:::i;:::-;2850:26;1453:7731:75;;;;;;;;;;;;;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;357:173:36;1453:7731:75;;;2916:123:79;1453:7731:75;;;;;;;;2916:123:79;;1453:7731:75;;;;;;;;;;;3054:69:79;;5876:99:80;;;;:::i;:::-;1453:7731:75;;5821:9:80;;;;1124:235:83;3594:343;2227:1:80;3594:343:83;-1:-1:-1;;;;;;;;;;;3594:343:83;;;;1453:7731:75;2227:1:80;3594:343:83;;1124:235;;860:218:78;846:396:30;1453:7731:75;846:396:30;;2227:1:80;846:396:30;;;;;;;1039:11:78;1676:170:30;1453:7731:75;1676:170:30;;;5282:39:80;1453:7731:75;-1:-1:-1;1453:7731:75;;;;5282:39:80;1453:7731:75;1676:170:30;1453:7731:75;-1:-1:-1;1453:7731:75;1676:170:30;;1453:7731:75;;;1039:28:78;1453:7731:75;;860:218:78;;;;8586:132:80;8698:8;8654:14;;;357:173:36;5423:323:80;;1453:7731:75;;;;;;;;;5423:323:80;;1453:7731:75;;8698:8:80;;:::i;:::-;8586:132;;;2898:40:82;2227:1:80;2898:40:82;3005:7;:::i;2830:40::-;2559:4:80;2830:40:82;;;10063:112:80;3005:7:82;10129:35:80;;;;;;:::i;:::-;10063:112;;;;;;9814:52;;2227:1;9814:52;;9768:207;9912:52;-1:-1:-1;2227:1:80;9912:11;;2227:1;;;9949:8;;;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;9768:207:80;;9349:323;;;;1453:7731:75;9349:323:80;;;;;;;;;:::i;:::-;;;;;1300:98:65;1335:63;;;;1300:98;;;;1990:203:82;2299:84:65;;2309:73;;2116:77:82;;;-1:-1:-1;;;;;1453:7731:75;;;;;;2188:29:65;2184:98;;1990:203:82;-1:-1:-1;;;;;;1453:7731:75;2352:29:65;;1453:7731:75;-1:-1:-1;2352:29:65;:::i;:::-;1453:7731:75;2309:73:65;;:::i;2299:84::-;1990:203:82;;;2184:98:65;2219:63;-1:-1:-1;2219:63:65;-1:-1:-1;2352:29:65;2184:98;;;7539:205:80;7679:19;;;;:::i;:::-;7712:21;7539:205;;;5832:26;;;;;;;;;;;2794:46;:::o;5278:108::-;2227:1;1453:7731:75;;;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;-1:-1:-1;;;;;;1453:7731:75;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;-1:-1:-1;;;1453:7731:75;-1:-1:-1;;;1453:7731:75;;;;;;;;;;;;-1:-1:-1;;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5278:108:80;;1453:7731:75;;;;2227:1:80;1453:7731:75;;2227:1:80;1453:7731:75;4350:526:80;4497:9;1453:7731:75;;;;-1:-1:-1;;;4594:28:80;;2559:4;4594:28;;;1453:7731:75;;;;4594:28:80;1453:7731:75;4594:28:80;;;;;;;;2227:1;4594:28;;;4350:526;-1:-1:-1;1453:7731:75;;-1:-1:-1;;;4645:45:80;;2539:10;4594:28;4645:45;;1453:7731:75;2559:4:80;4594:28;1453:7731:75;;;;;;;;;;;4645:45:80;1453:7731:75;-1:-1:-1;4645:45:80;;;;;;;;2227:1;4645:45;;;4350:526;1453:7731:75;;;;;4594:28:80;1453:7731:75;;;;;;;;;;4762:28:80;;2559:4;4594:28;4762;;1453:7731:75;4762:28:80;;;;;;;2227:1;4762:28;;;4350:526;4794:21;;;;;:::i;:::-;4762:53;4350:526;1453:7731:75;;;;;2227:1:80;1453:7731:75;4594:28:80;2227:1;1453:7731:75;4762:28:80;;;1453:7731:75;4762:28:80;;1453:7731:75;4762:28:80;;;;;;417:66:25;4762:28:80;;;:::i;:::-;;;417:66:25;;;;4794:21:80;417:66:25;;4762:28:80;;;;;;-1:-1:-1;4762:28:80;;4645:45;;;1453:7731:75;4645:45:80;;1453:7731:75;4645:45:80;;;;;;1453:7731:75;4645:45:80;;;:::i;:::-;;;1453:7731:75;;;;;;;:::i;:::-;4645:45:80;;;;;;-1:-1:-1;4645:45:80;;4594:28;;;;1453:7731:75;4594:28:80;;1453:7731:75;4594:28:80;;;;;;417:66:25;4594:28:80;;;:::i;:::-;;;417:66:25;;;;;4594:28:80;;;;;;;-1:-1:-1;4594:28:80;;1453:7731:75;;;;2227:1:80;1453:7731:75;;2227:1:80;1453:7731:75;874:123:53;1453:7731:75;;;974:15:53;;;1453:7731:75;;;:::i;:::-;974:15:53;;;;;;;:::i;:::-;1453:7731:75;964:26:53;;874:123;:::o;10560:1108:81:-;;;;;;14636:46;10817:15;;;1453:7731:75;;;;357:173:36;1656:15:81;1453:7731:75;;;10920:24:81;11014:40;357:173:36;14636:46:81;;:::i;:::-;12838:88;;;;;;;12940:14;;12936:265;12940:14;;;12970:24;12936:265;;1453:7731:75;;;;1032:7:31;;;;1453:7731:75;;;;;;;;;;;;;;;;13334:22:81;;;13330:156;13334:22;;;13372;;;;13330:156;;13510:20;;;;:::i;:::-;1453:7731:75;;;;;13544:23:81;13540:77;;13330:156;13641:20;;;;;:::i;:::-;1453:7731:75;;;;;13675:23:81;13671:77;;13330:156;1656:15;;;1453:7731:75;;;10864:27:81;11065:293;;11368:182;;;11626:35;;;;10560:1108;:::o;11368:182::-;11452:38;;-1:-1:-1;11452:38:81;;;;;;11504:35;:::o;11452:38::-;;;11504:35;:::o;11065:293::-;11233:65;;;;-1:-1:-1;11233:65:81;;;;;;;-1:-1:-1;11248:39:81;;;;11312:35;:::o;11233:65::-;;;;;11312:35;:::o;13671:77::-;13714:23;;13671:77;;;13540;;-1:-1:-1;13641:20:81;13540:77;;13330:156;13415:22;;;;13411:75;13330:156;13411:75;13453:22;;-1:-1:-1;13330:156:81;;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;12936:265:81;1453:7731:75;;;;;;13015:16:81;-1:-1:-1;13015:16:81;;-1:-1:-1;;13066:31:81;;;;:::i;:::-;1453:7731:75;;13011:190:81;12936:265;;13011:190;13148:31;;;:41;:31;;:::i;:::-;:41;:::i;1453:7731:75:-;;;-1:-1:-1;;1453:7731:75;;-1:-1:-1;;1453:7731:75;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;;;:::o;4968:3403:81:-;5183:17;;;1453:7731:75;;;5183:22:81;5179:59;;5270:36;5293:12;;5270:36;:::i;:::-;5335:16;;;1453:7731:75;;5392:60:81;;;;5405:12;;5335:16;5405:22;1453:7731:75;5392:60:81;;;5405:12;5392:60;-1:-1:-1;;;;;1453:7731:75;5392:60:81;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;5507:17:81;;;5335:16;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;-1:-1:-1;1453:7731:75;5614:16:81;;;5335;1453:7731:75;;-1:-1:-1;1453:7731:75;5614:35:81;1453:7731:75;;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;-1:-1:-1;1453:7731:75;5773:16:81;;;5335;1453:7731:75;;-1:-1:-1;1453:7731:75;;5924:17:81;-1:-1:-1;1453:7731:75;;6052:14:81;1453:7731:75;6052:14:81;;1453:7731:75;;;6091:12:81;;;;1453:7731:75;;;6133:12:81;6091;6133;;:24;1453:7731:75;;;6168:2197:81;6175:19;;;;;;6168:2197;4968:3403;;;;;;;;;;;;;:::o;6168:2197::-;-1:-1:-1;6214:51:81;;;;;;;;;;;;;;;;;1453:7731:75;;;;6230:16:81;;6214:51;6210:62;;1453:7731:75;846:396:30;;-1:-1:-1;846:396:30;;;;;;;4565:1682;;;;;;1676:170;1453:7731:75;1676:170:30;;4839:13;1676:170;1453:7731:75;1676:170:30;;;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;;;;;;;4839:20:30;5014:11;;;;;;5164:194;;;;;;;1453:7731:75;;;;;;759:552:19;;1453:7731:75;;;;;;;759:552:19;;;;;;-1:-1:-1;;;;;759:552:19;5614:16:81;759:552:19;;;;;1453:7731:75;759:552:19;5507:17:81;759:552:19;;;;;;;5773:16:81;759:552:19;;;;;;;1453:7731:75;759:552:19;;;;;;;;;;1453:7731:75;;;;;;;;;;;;5164:194:30;4565:1682;;6446:54:81;;;;1453:7731:75;;;;6462:18:81;;6446:54;6514:24;;6557:12;6553:125;;6771:265;-1:-1:-1;6771:265:81;;5335:16;6771:265;1453:7731:75;-1:-1:-1;6771:265:81;;;;7054:18;;7050:131;;7195:22;;;;;;7231:1061;7238:21;;;:44;;;7231:1061;7238:44;;;7397:286;;;;;;;;;5723:17;7397:286;-1:-1:-1;7397:286:81;5723:17;5335:16;7397:286;1453:7731:75;-1:-1:-1;7397:286:81;;;7705:12;5773:16;7705:12;;1453:7731:75;5723:17:81;1453:7731:75;;;;;;;;:::i;:::-;7705:48:81;7701:146;;1453:7731:75;;;;7868:34:81;7864:45;;7932:31;;;;;;;;;;;;:::i;:::-;7931:32;7927:130;;8098:12;;8139:17;8098:12;;5723:17;8098:12;;;;;1453:7731:75;8139:17:81;1453:7731:75;;;;;8139:17:81;;1453:7731:75;;8139:17:81;;:::i;:::-;1453:7731:75;8256:21:81;7231:1061;;;;;;;;;7927:130;7987:21;;;;;;;8030:8;;;7864:45;7904:5;;;;;;;;;;;;;;;7231:1061;8315:39;;;;8331:12;;;:::i;:::-;6168:2197;;;;;;;;8315:39;;;7701:146;7777:21;;;;;7820:8;;;7238:44;;;;;;;;;;;;;;;;;7263:19;;;;7238:44;;7050:131;7101:39;;;;;;;;;;;;;;;;;;7117:12;;;:::i;6553:125::-;6598:39;;;;;;;;;;;;;;;6614:12;;;:::i;6514:24::-;6533:5;;;;6446:54;1453:7731:75;;;;6483:17:81;6446:54;;5164:194:30;1453:7731:75;;;;;;;;;;;;;5164:194:30;;4565:1682;1453:7731:75;5723:17:81;1453:7731:75;;;;;;1676:170:30;;1453:7731:75;1676:170:30;5702:13;1676:170;;;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;5723:17:81;1453:7731:75;;;;;;;5647:20:30;1453:7731:75;;5702:20:30;5869:11;;;;;;6019:213;;;;;;;1453:7731:75;;;1766:834:19;;;1453:7731:75;1766:834:19;-1:-1:-1;1766:834:19;;;;;;;;;;;;;;;;;;;;;;;;;1453:7731:75;;;;;;;;;;6019:213:30;4565:1682;;;6019:213;1453:7731:75;;;;;;;;;;;;;;;;;6019:213:30;;6210:62:81;6267:5;;;;;6214:51;1453:7731:75;;;;6249:16:81;;6214:51;;5392:60;5430:12;;1453:7731:75;5392:60:81;;;5430:12;5392:60;-1:-1:-1;;;;;1453:7731:75;5392:60:81;;5179:59;5221:7;;;;;:::o;1373:176:79:-;;1498:43;;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;1498:43:79;-1:-1:-1;;;;;1453:7731:75;;1373:176:79:o;1498:43::-;1528:13;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;1498:43:79;;14775:217:81;14902:17;;1453:7731:75;;;;;;14902:83:81;1453:7731:75;;;;;;;;;;14922:30:81;;14775:217;:::o;14902:83::-;1453:7731:75;;;;;14955:30:81;;14775:217;:::o;1196:171:79:-;1307:17;;1453:7731:75;;;;;;1307:53:79;1453:7731:75;;;;;1196:171:79;:::o;1307:53::-;1453:7731:75;;;;1196:171:79;:::o;8377:1153:81:-;8679:12;;;1453:7731:75;;-1:-1:-1;;;;1453:7731:75;-1:-1:-1;;;1453:7731:75;;;;;8377:1153:81;;1453:7731:75;;3445:229:82;;8377:1153:81;;;;;;;8754:53;1453:7731:75;;;;;;8377:1153:81;8754:53;:::i;:::-;1453:7731:75;;;;;;;;;;9069:17:81;1453:7731:75;;;;;9069:17:81;;1453:7731:75;;8892:204:81;-1:-1:-1;3614:15:82;1453:7731:75;;3614:15:82;;1453:7731:75;3598:33:82;1453:7731:75;;;;3598:33:82;:::i;:::-;1453:7731:75;;;;;;:::i;:::-;;8694:34:81;1453:7731:75;;;;;8694:34:81;1453:7731:75;9069:17:81;3503:145:82;;1453:7731:75;3503:145:82;;;1453:7731:75;3503:145:82;;;;1453:7731:75;;;;;;;;;;3445:229:82;;;8679:12:81;3445:229:82;;;:::i;:::-;;;-1:-1:-1;3445:229:82;;;;;;;;;;-1:-1:-1;;;3445:229:82;;;8377:1153:81;-1:-1:-1;;;;;;1453:7731:75;;;;2052:83:33;1453:7731:75;2052:83:33;3912:66:82;;-1:-1:-1;;;;;1453:7731:75;;;;2241:89:33;;;4018:66:82;;-1:-1:-1;;;;;1453:7731:75;;;;-1:-1:-1;4127:60:82;;-1:-1:-1;;;;;1453:7731:75;;;;4447:112:82;4365:38;-1:-1:-1;4230:60:82;;4365:38;;:::i;:::-;8679:12:81;;;;;;;;;1453:7731:75;3503:145:82;1453:7731:75;4447:112:82;;;:::i;:::-;1453:7731:75;;;-1:-1:-1;1453:7731:75;2241:89:33;1453:7731:75;4574:27:82;:58;;;;4230:60;4570:232;;4230:60;2052:83:33;;;;;;4878:24:82;;2052:83:33;;4852:24:82;2052:83:33;1453:7731:75;2052:83:33;;1453:7731:75;2052:83:33;4852:24:82;:::i;:::-;2241:89:33;;;;;;4878:24:82;:::i;:::-;;;:::i;:::-;1453:7731:75;;;;;;;;3445:17:79;-1:-1:-1;8694:34:81;3445:17:79;;1453:7731:75;3445:25:79;;1453:7731:75;;;;;3445:25:79;:::i;:::-;;;:::i;:::-;1453:7731:75;3516:17:79;;2079:369:83;;;1453:7731:75;2079:369:83;;;;;2530:20;;;;;;;1453:7731:75;;;2526:145:83;2748:20;;;;;;2784:6;1453:7731:75;2784:6:83;;;1453:7731:75;2744:145:83;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;2899:95:83;;2744:145;3187:167;;;;;3608:19:79;;;:::i;:::-;3685:17;3667;8694:34:81;3685:17:79;;1453:7731:75;;;-1:-1:-1;1453:7731:75;3667:17:79;9069::81;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;3503:145:82;1453:7731:75;-1:-1:-1;1453:7731:75;3722:15:79;;1453:7731:75;8694:34:81;1453:7731:75;;;;;;;;;;1219:14:78;1215:218;;2744:145:83;8679:12:81;;3830:19:79;8679:12:81;;;1453:7731:75;3503:145:82;1453:7731:75;3830:19:79;;1453:7731:75;;;;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3944:69:79;;8679:12:81;;1453:7731:75;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;-1:-1:-1;;;;;1453:7731:75;;;9069:17:81;1453:7731:75;;;;;;;;;;;;;;3503:145:82;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;8694:34:81;1453:7731:75;;;;;;;;;;;;;;;;;;;;9205:318:81;;1453:7731:75;;9205:318:81;8377:1153::o;1215:218:78:-;846:396:30;8694:34:81;846:396:30;;-1:-1:-1;846:396:30;;;;;;;1393:11:78;1676:170:30;8694:34:81;1676:170:30;;;1453:7731:75;;-1:-1:-1;1453:7731:75;;;;;;-1:-1:-1;1453:7731:75;1676:170:30;;1453:7731:75;1408:14:78;1453:7731:75;;1393:29:78;1453:7731:75;;1215:218:78;;;;2899:95:83;871:1;;-1:-1:-1;;;;;;871:1:83;1453:7731:75;;871:1:83;;;-1:-1:-1;;;;;1453:7731:75;871:1:83;;;-1:-1:-1;2899:95:83;;2744:145;3594:343;;-1:-1:-1;9069:17:81;3594:343:83;1453:7731:75;3594:343:83;;1453:7731:75;3594:343:83;;2744:145;;2526;3594:343;;;;9069:17:81;3594:343:83;;1453:7731:75;3594:343:83;;;2526:145;;4570:232:82;4672:119;;;;;;4878:24;4672:119;;;;;;;4878:24;4672:119;;:::i;:::-;4648:143;;4570:232;;;;;;;4574:58;1453:7731:75;-1:-1:-1;1453:7731:75;2241:89:33;1453:7731:75;4605:27:82;4574:58;;4230:60;4447:112;4365:38;2241:89:33;;;4230:60:82;;;4127;2052:83:33;1453:7731:75;2052:83:33;4127:60:82;;;4018:66;4060:24;2241:89:33;;;;;;4060:24:82;:::i;:::-;4018:66;;;3912;3954:24;2052:83:33;1453:7731:75;2052:83:33;;1453:7731:75;2052:83:33;3954:24:82;:::i;:::-;3912:66;;;3445:229;;;;;;;1453:7731:75;3445:229:82;1453:7731:75;3445:229:82;;;;;;;:::i;:::-;;;;;;;1453:7731:75;;;;;;;;;;:::o;3553:598:80:-;1453:7731:75;;3553:598:80;-1:-1:-1;;;;;1453:7731:75;3709:19:80;1453:7731:75;;;;;;3825:27:80;;1453:7731:75;;3912:9:80;1453:7731:75;3907:238:80;3923:10;;;;;;3553:598;;;:::o;3912:9::-;3966:13;;;;;;;:::i;:::-;1453:7731:75;4001:9:80;;;1453:7731:75;;;4062:13:80;;;;:::i;:::-;1453:7731:75;;3912:9:80;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;:::o;:::-;;;;;;;;;1656:15:81;1453:7731:75;;;;;;;;;:::o;1580:996:29:-;;;14953:51;1580:996;1453:7731:75;;14953:51:29;;;1453:7731:75;;;414:1:29;1453:7731:75;398:19:29;;1453:7731:75;;14953:51:29;;;;;;:::i;:::-;1453:7731:75;14943:62:29;;1453:7731:75;;-1:-1:-1;;;1892:27:29;;;;;1453:7731:75;;;;;;;1892:27:29;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;1892:27:29;;;;;;;-1:-1:-1;1892:27:29;;;1580:996;-1:-1:-1;;;;;;2147:423:29;;;1453:7731:75;2147:423:29;;;;;;;;;;;;;;;;;;1580:996::o;1892:27::-;;;;14953:51;1892:27;;14953:51;1892:27;;;;;;417:66:25;1892:27:29;;;:::i;:::-;;;417:66:25;;;;;1892:27:29;;;;;;;-1:-1:-1;1892:27:29;;1453:7731:75;-1:-1:-1;;;1453:7731:75;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;:::o;:::-;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;-1:-1:-1;;;;;;1453:7731:75;;;;;;;:::o;3136:884:79:-;;;;3783:11;3136:884;1453:7731:75;;;;;3420:15:79;;;1453:7731:75;;3445:17:79;-1:-1:-1;3445:17:79;;;1453:7731:75;3445:25:79;;1453:7731:75;;;;;3445:25:79;:::i;:::-;;;:::i;:::-;2079:369:83;;;3516:17:79;2079:369:83;;;;;2530:20;;;;;;;1453:7731:75;;;2526:145:83;2748:20;;;;;;3516:17:79;2784:6:83;;;1453:7731:75;2744:145:83;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;2899:95:83;;2744:145;3187:167;;;;;3608:19:79;;;:::i;:::-;3685:17;3445;3685;;1453:7731:75;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;3722:15:79;1453:7731:75;-1:-1:-1;1453:7731:75;3722:15:79;;1453:7731:75;3445:17:79;1453:7731:75;;;;;;;;;;1219:14:78;1215:218;;2744:145:83;3783:11:79;;;1453:7731:75;3722:15:79;1453:7731:75;3830:26:79;1453:7731:75;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;3879:26:79;1453:7731:75;-1:-1:-1;1453:7731:75;-1:-1:-1;;;;;;;;;;;1453:7731:75;;;-1:-1:-1;1453:7731:75;;;;;;;;-1:-1:-1;1453:7731:75;;;;;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;3944:69:79;;3136:884::o;1215:218:78:-;846:396:30;3445:17:79;846:396:30;;-1:-1:-1;846:396:30;;;;;;;1393:11:78;1676:170:30;3445:17:79;1676:170:30;;;1453:7731:75;;-1:-1:-1;1453:7731:75;;;3516:17:79;1676:170:30;1453:7731:75;-1:-1:-1;1453:7731:75;1676:170:30;;1453:7731:75;1408:14:78;1453:7731:75;;1393:29:78;1453:7731:75;;1215:218:78;;;;2899:95:83;871:1;;-1:-1:-1;;;;;;871:1:83;1453:7731:75;;871:1:83;;;-1:-1:-1;;;;;1453:7731:75;871:1:83;;;-1:-1:-1;2899:95:83;;2744:145;3594:343;;;-1:-1:-1;;;;;;;;;;;3594:343:83;;3516:17:79;3594:343:83;;;;;2744:145;;2526;3594:343;;;-1:-1:-1;;;;;;;;;;;3594:343:83;;;;;;;2526:145;;7059:692:82;;;;1453:7731:75;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;7261:20:82;;7257:77;;-1:-1:-1;1453:7731:75;;-1:-1:-1;;;7348:44:82;;;;;1453:7731:75;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;7348:44:82;1453:7731:75;;7348:44:82;;1453:7731:75;;7348:44:82;;;7059:692;7344:364;;;7059:692;7718:26;;;;1453:7731:75;7718:26:82;7059:692;:::o;7344:364::-;1453:7731:75;7348:44:82;1453:7731:75;;7435:12:82;;:41;;;;7344:364;7431:258;;;7344:364;;;;;7431:258;1453:7731:75;;;;7348:44:82;1453:7731:75;;;;;;;;;7509:50:82;;7348:44;7509:50;;1453:7731:75;7509:50:82;;;;;;;1453:7731:75;7509:50:82;;;7431:258;7496:63;;7581:15;;1453:7731:75;7577:98:82;;7431:258;;;7577:98;7639:4;;-1:-1:-1;7631:25:82;:::o;7509:50::-;;;;;;1453:7731:75;7509:50:82;;;;;;:::i;:::-;;;1453:7731:75;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;7509:50:82;;;;1453:7731:75;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;-1:-1:-1;;1453:7731:75;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;7435:41:82;7451:25;;;;:::i;:::-;7435:41;;;7348:44;;;;1453:7731:75;7348:44:82;;1453:7731:75;7348:44:82;;;;;;1453:7731:75;7348:44:82;;;:::i;:::-;;;1453:7731:75;;;;;;;;;;;;7348:44:82;;;;;;;-1:-1:-1;7348:44:82;;7257:77;7297:26;;;;;1453:7731:75;7297:26:82;;:::o;1453:7731:75:-;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;:::o;8427:674:82:-;;;;;;;8737:358;;;;-1:-1:-1;8867:21:82;;;1453:7731:75;8890:15:82;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;8890:15:82;;1453:7731:75;;;;;1868:15:57;1453:7731:75;;;;;;;8867:21:82;1453:7731:75;;2145:7:57;2929:39;;-1:-1:-1;;;;;1453:7731:75;;2929:39:57;:::i;:::-;3001:30;;;;;;;;3059:50;;;;8867:21:82;3072:17:57;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;;3059:50:57;3152:30;;;;;;;-1:-1:-1;;;;;1453:7731:75;3283:16:57;1453:7731:75;;3315:36:57;;;3279:234;;;;;;2064:119;2264:13;2276:1;1453:7731:75;;2259:355:57;2296:3;1453:7731:75;;2279:15:57;;;;;2490:28;2384:7;;2450:73;2359:47;2276:1;2384:7;;;;;:::i;:::-;;2359:47;:::i;:::-;1453:7731:75;;;;;;;;;;;2490:28:57;:::i;:::-;1453:7731:75;;;;;;;;;:::i;:::-;-1:-1:-1;1453:7731:75;;2450:73:57;;;;:::i;:::-;1453:7731:75;;;;;;2553:50:57;;;;;1453:7731:75;;;;;;2566:17:57;;1453:7731:75;;2553:50:57;2296:3;1453:7731:75;2264:13:57;;;;;;2553:50;1453:7731:75;;;;;;;;2553:50:57;;2279:15;;;;;-1:-1:-1;2279:15:57;;-1:-1:-1;8764:142:82;;-1:-1:-1;;;;;;1453:7731:75;8920:47:82;;;;;;1453:7731:75;-1:-1:-1;1453:7731:75;;;;;;;;;;;;;;8920:47:82;;;;;;:::i;:::-;;;;;;;;;;;8737:358;8427:674::o;8920:47::-;-1:-1:-1;8920:47:82;;;:::i;3279:234:57:-;1453:7731:75;3429:72:57;1453:7731:75;3469:20:57;3397:105;1453:7731:75;;;;3469:20:57;:::i;:::-;1453:7731:75;;;;;;;;:::i;:::-;-1:-1:-1;1453:7731:75;;;;3429:72:57;;;:::i;:::-;-1:-1:-1;;;;;1453:7731:75;;3397:105:57;:::i;:::-;3279:234;;;;;;;3152:30;;;;;;3059:50;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;3059:50:57;;3001:30;;;;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;-1:-1:-1;1453:7731:75;8737:358:82;9021:63;;;;;;;-1:-1:-1;9021:63:82;-1:-1:-1;9311:17:82;-1:-1:-1;1453:7731:75;-1:-1:-1;1453:7731:75;;;9344:11:82;9340:342;-1:-1:-1;;;;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;-1:-1:-1;;;;;1453:7731:75;;;;9450:47:82;-1:-1:-1;9450:47:82;;;;;1453:7731:75;9450:47:82;1453:7731:75;;;;;;;;;;;;;;;9450:47:82;;;;;;;:::i;:::-;;;;;;;;;;;9340:342;;;8998:86;8737:358;8427:674::o;9450:47::-;;;;;;:::i;:::-;1453:7731:75;;9450:47:82;;;1453:7731:75;;;9450:47:82;1453:7731:75;;;;;;;;;9450:47:82;1453:7731:75;;;9340:342:82;-1:-1:-1;1453:7731:75;;;;;;;;;;;;9518:11:82;9514:168;;9340:342;;;;;8998:86;8737:358;8427:674::o;9514:168::-;9555:13;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;;;;-1:-1:-1;;;;;;1453:7731:75;;;;-1:-1:-1;1453:7731:75;;9624:47:82;;;;;1453:7731:75;-1:-1:-1;1453:7731:75;9624:47:82;1453:7731:75;;;;;;;;;;;;;9624:47:82;;;;;;;:::i;:::-;;;;;;;;;;;9514:168;;;;;;9624:47;-1:-1:-1;9624:47:82;;;:::i;:::-;-1:-1:-1;9624:47:82;;8026:395;;;;8179:1;;1453:7731:75;;8169:11:82;;;8179:1;;;8169:41;;1453:7731:75;;8179:1:82;8236:11;;8179:1;;;8236:41;;8292:11;;;;:26;;;8236:41;8288:127;;8236:41;8026:395;;;;;;:::o;8288:127::-;8179:1;5861:6;;:31;;;8288:127;5857:115;;8288:127;5985:6;;;5981:183;;8288:127;6178:6;;;;:31;;;8288:127;6174:115;;8288:127;6302:6;;;6298:183;;8288:127;;;;6298:183;6341:13;;;;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;6324:31:82;;;;;1453:7731:75;;;;;;6324:31:82;;;;;1453:7731:75;6324:31:82;;;;;;;;;;;;;;;;;;6298:183;-1:-1:-1;1453:7731:75;6341:13:82;;1453:7731:75;6414:21:82;;-1:-1:-1;;;;;1453:7731:75;;;;6430:3:82;;;:::i;:::-;6414:21;;:::i;:::-;6324:31;1453:7731:75;;;;;;;;;6450:20:82;;;;;;;;;;;;6298:183;;;;;;;6450:20;;;6341:13;6450:20;6341:13;6450:20;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1453:7731:75;;;;;;;;;;6324:31:82;;;;;;;;;;:::i;:::-;1453:7731:75;;6324:31:82;;;;;;;1453:7731:75;;;;6324:31:82;1453:7731:75;;;;;;;;;6174:115:82;6242:13;;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;;;;;6225:53:82;;;;;1453:7731:75;6225:53:82;1453:7731:75;;;;;;;;;;;;;;;;;6225:53:82;;;;;;:::i;:::-;;;;;;;;;;;;;;6174:115;;;;;6225:53;;;;;:::i;:::-;1453:7731:75;;6225:53:82;;;;;1453:7731:75;;;6178:31:82;;;;;5981:183;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;6007:31:82;;;;;1453:7731:75;;;;;;6007:31:82;;;;;1453:7731:75;6007:31:82;;;;;;;;;;;;;;;;;;;5981:183;-1:-1:-1;1453:7731:75;;;;;6097:21:82;;-1:-1:-1;;;;;1453:7731:75;;;;6113:3:82;;;:::i;6097:21::-;6007:31;1453:7731:75;;;;;;;;;6133:20:82;;;;;;;;;5981:183;6133:20;;;1453:7731:75;6133:20:82;1453:7731:75;6133:20:82;;;;;;;:::i;:::-;;;5981:183;;6007:31;;;;;;;;;:::i;:::-;1453:7731:75;;6007:31:82;;;;;;;1453:7731:75;;;;;;;;;6007:31:82;1453:7731:75;;;5857:115:82;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;5908:53:82;;;;;1453:7731:75;;-1:-1:-1;;;5908:53:82;;-1:-1:-1;;;;;1453:7731:75;;;5908:53:82;;;1453:7731:75;8179:1:82;1453:7731:75;;;;;;;;;;;;8179:1:82;1453:7731:75;;;;;;8179:1:82;;5908:53;;;;;;;;5857:115;;;;5908:53;;;;;8179:1;5908:53;;:::i;:::-;8179:1;5908:53;;;;5861:31;;8179:1;5861:31;;8292:26;8307:11;;;;8292:26;;8236:41;;8179:1;8236:41;;;8169;;8179:1;8169:41;;;7757:263;1453:7731:75;;-1:-1:-1;;;7840:63:82;;-1:-1:-1;;;7840:63:82;;;1453:7731:75;;;;;;7840:63:82;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;7840:63:82;;1453:7731:75;;7840:63:82;;;7757:263;-1:-1:-1;7836:178:82;;7991:12;1453:7731:75;7991:12:82;:::o;7840:63::-;;;;1453:7731:75;7840:63:82;;1453:7731:75;7840:63:82;;;;;;1453:7731:75;7840:63:82;;;:::i;:::-;;;1453:7731:75;;;;;;;:::i;:::-;7840:63:82;;;;;;;-1:-1:-1;7840:63:82;;1453:7731:75;;;-1:-1:-1;;;;;;1453:7731:75;;;;;;;:::o;:::-;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;:::o;5714:773:82:-;;;;;;;5866:1;5861:6;5866:1;5861:6;;:31;;;5714:773;5857:115;;5714:773;5985:6;;;;5981:183;;5714:773;6178:6;;;;:31;;;5714:773;6174:115;;5714:773;6302:6;;;;6298:183;;5714:773;;;;;;:::o;6298:183::-;6341:13;;;;;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;;;6324:31:82;;;;;1453:7731:75;;;;;;6324:31:82;;;;;1453:7731:75;6324:31:82;;;;;;;;;;;;;;;;;;6298:183;-1:-1:-1;1453:7731:75;6341:13:82;;1453:7731:75;6414:21:82;;-1:-1:-1;;;;;1453:7731:75;;;;6430:3:82;;;:::i;6414:21::-;6324:31;1453:7731:75;;;;;;;;;6450:20:82;;;;;;;;;;;;6298:183;;;;;;;6450:20;;;6341:13;6450:20;6341:13;6450:20;;;;;;;:::i;:::-;;;;;6324:31;;;;;;;;;;:::i;:::-;1453:7731:75;;6324:31:82;;;;;;;6174:115;6242:13;;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;;;;;;6225:53:82;;;;;;1453:7731:75;;;;;;;;;;;;;;;;;;6225:53:82;;;;;;:::i;:::-;;;;;;;;;;;;;;6174:115;;;;6225:53;;;;;:::i;:::-;1453:7731:75;;6225:53:82;;;;6178:31;-1:-1:-1;;;;;;1453:7731:75;;6188:21:82;;6178:31;;5981:183;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;6007:31:82;;;;;1453:7731:75;;;;;;6007:31:82;;;;;1453:7731:75;6007:31:82;;;;;;;;;;;;;;;;;;;5981:183;-1:-1:-1;1453:7731:75;;;;;6097:21:82;;-1:-1:-1;;;;;1453:7731:75;;;;6113:3:82;;;:::i;6097:21::-;6007:31;1453:7731:75;;;;;;;;;6133:20:82;;;;;;;;;5981:183;6133:20;;;1453:7731:75;6133:20:82;1453:7731:75;6133:20:82;;;;;;;:::i;:::-;;;5981:183;;6133:20;1453:7731:75;;;;;;;;;6007:31:82;;;;;;;;;:::i;:::-;1453:7731:75;;6007:31:82;;;;;;;1453:7731:75;;;;;;;;;6007:31:82;1453:7731:75;;;5857:115:82;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;5908:53:82;;;;;;1453:7731:75;5866:1:82;1453:7731:75;;;;;;;;;;;;;;;;5908:53:82;;;;;;:::i;:::-;;;;;;;;;;5857:115;5908:53;;;;;5866:1;5908:53;;:::i;:::-;5866:1;5908:53;;5857:115;;5861:31;-1:-1:-1;;;;;;1453:7731:75;;5871:21:82;;5861:31;;3149:4018:31;3297:459;;;;;;;;;;1317:6;3774:35;;3770:78;;6424:727;4356:13;;4383:160;;;;;1453:7731:75;4383:160:31;;;4560:13;3297:459;4560:13;;4556:83;;3149:4018;4667:3;4657:13;;4653:83;;3149:4018;4764:3;4754:13;;4750:83;;3149:4018;4861:4;4851:14;;4847:84;;3149:4018;4959:4;4949:14;;4945:84;;3149:4018;5057:4;5047:14;;5043:84;;3149:4018;4383:160;5145:14;;5141:84;;3149:4018;5253:5;5243:15;;5239:85;;3149:4018;5352:5;5342:15;;5338:85;;3149:4018;5451:5;5441:15;;5437:85;;3149:4018;5550:5;5540:15;;5536:85;;3149:4018;5649:6;5639:16;;5635:86;;3149:4018;5749:6;5739:16;;5735:86;;3149:4018;5849:6;5839:16;;5835:86;;3149:4018;5949:6;5939:16;;5935:86;;3149:4018;6049:7;6039:17;;6035:86;;3149:4018;6149:7;6139:17;;6135:85;;3149:4018;6248:7;6238:17;;6234:83;;3149:4018;6345:7;6335:17;6331:78;;3149:4018;-1:-1:-1;;6424:727:31;;3149:4018;6424:727;4959:4;6424:727;3149:4018;:::o;6424:727::-;-1:-1:-1;;6424:727:31;;;6331:78;6376:25;1453:7731:75;;;4383:160:31;1453:7731:75;;6331:78:31;;6234:83;6279:30;1453:7731:75;;;4383:160:31;1453:7731:75;;6234:83:31;;6135:85;1453:7731:75;6180:32:31;1453:7731:75;4383:160:31;1453:7731:75;6135:85:31;;;6035:86;1453:7731:75;6080:33:31;1453:7731:75;4383:160:31;1453:7731:75;6035:86:31;;;5935;1453:7731:75;5979:34:31;1453:7731:75;4383:160:31;1453:7731:75;5935:86:31;;;5835;1453:7731:75;5879:34:31;1453:7731:75;4383:160:31;1453:7731:75;5835:86:31;;;5735;1453:7731:75;5779:34:31;1453:7731:75;4383:160:31;1453:7731:75;5735:86:31;;;5635;1453:7731:75;5679:34:31;1453:7731:75;4383:160:31;1453:7731:75;5635:86:31;;;5536:85;1453:7731:75;5579:34:31;1453:7731:75;4383:160:31;1453:7731:75;5536:85:31;;;5437;1453:7731:75;5480:34:31;1453:7731:75;4383:160:31;1453:7731:75;5437:85:31;;;5338;1453:7731:75;5381:34:31;1453:7731:75;4383:160:31;1453:7731:75;5338:85:31;;;5239;1453:7731:75;5282:34:31;1453:7731:75;4383:160:31;1453:7731:75;5239:85:31;;;5141:84;1453:7731:75;5183:34:31;1453:7731:75;4383:160:31;1453:7731:75;5141:84:31;;;5043;1453:7731:75;5085:34:31;1453:7731:75;4383:160:31;1453:7731:75;5043:84:31;;;4945;1453:7731:75;4987:34:31;1453:7731:75;4383:160:31;1453:7731:75;4945:84:31;;;4847;1453:7731:75;4889:34:31;1453:7731:75;4383:160:31;1453:7731:75;4847:84:31;;;4750:83;1453:7731:75;4791:34:31;1453:7731:75;4383:160:31;1453:7731:75;4750:83:31;;;4653;1453:7731:75;4694:34:31;1453:7731:75;4383:160:31;1453:7731:75;4653:83:31;;;4556;1453:7731:75;4597:34:31;1453:7731:75;4383:160:31;1453:7731:75;4556:83:31;;;3770:78;3811:20;;;;1431:143:21;;;;;;;456:27:63;-1:-1:-1;;;;;1453:7731:75;;;;;;456:27:63;;1453:7731:75;456:27:63;;;;:::o;2206:281:82:-;;;-1:-1:-1;;;;;1453:7731:75;;2206:281:82;2322:11;;2318:48;;2448:32;;2395:43;;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;2448:32:82;:::i;2395:43::-;2425:13;;1453:7731:75;-1:-1:-1;;;;;1453:7731:75;2448:32:82;:::i;2318:48::-;2349:7;;;;:::o;1453:7731:75:-;-1:-1:-1;;;;;1453:7731:75;;;;;;;;;;;;;:::o;4545:484:57:-;;1453:7731:75;;:::i;:::-;-1:-1:-1;1453:7731:75;;-1:-1:-1;;;;;1453:7731:75;;;;;;;734:50:35;;;1453:7731:75;;;4800:80:57;1453:7731:75;;;;;;448:51:35;;;4977:10:57;1453:7731:75;4977:10:57;;;1453:7731:75;;4989:18:57;;;1453:7731:75;;;;5009:12:57;1453:7731:75;;;;;5009:12:57;;1453:7731:75;;;4989:18:57;1453:7731:75;;;;;:::i;:::-;;;-1:-1:-1;;;;;1453:7731:75;4977:10:57;4947:75;;1453:7731:75;4989:18:57;4947:75;;1453:7731:75;5009:12:57;4947:75;;1453:7731:75;4947:75:57;;;1453:7731:75;;4545:484:57:o;4800:80::-;;;;;;3525:709;;;;4001:70;;;;1862:10:31;4001:70:57;;1453:7731:75;;;1862:10:31;1453:7731:75;;;;;;-1:-1:-1;;;;;1453:7731:75;;;;;3961:111:57;1453:7731:75;1862:10:31;-1:-1:-1;1453:7731:75;1862:10:31;1453:7731:75;;;;;;;;;3961:111:57;;;1453:7731:75;;;;;3961:111:57;;1453:7731:75;;;;;;;;;;;;;;;;;;;;;3902:210:57;;;;;1862:10:31;;:::i;:::-;;1453:7731:75;;1862:10:31;;;1453:7731:75;1862:10:31;;;;1453:7731:75;1862:10:31;-1:-1:-1;;;;;1453:7731:75;1862:10:31;;;1453:7731:75;1862:10:31;;;;;;;;;;:::i;:::-;3902:210:57;;-1:-1:-1;;;;;1453:7731:75;3902:210:57;;;;;;;-1:-1:-1;3902:210:57;;;4001:70;-1:-1:-1;;;4147:33:57;-1:-1:-1;;2241:89:33;;3525:709:57;:::o;4146:71::-;2052:83:33;;3525:709:57;:::o;3902:210::-;;;;3961:111;3902:210;;3961:111;3902:210;;;;;;3961:111;3902:210;;;:::i;:::-;;;1862:10:31;;;;1453:7731:75;;-1:-1:-1;3902:210:57;;;;;-1:-1:-1;3902:210:57;;4001:70;2042:49:31;4001:70:57;;;1472:2873:35;;;;-1:-1:-1;;;;;1453:7731:75;;;4998:58:35;1453:7731:75;;1809:163:35;;-1:-1:-1;1809:163:35;;;;;;;2085:8;2081:127;;1765:2574;1472:2873::o;2081:127::-;3741:1424:21;;-1:-1:-1;;;3741:1424:21;;-1:-1:-1;;;;;3741:1424:21;;;;;;;-1:-1:-1;3741:1424:21;;;;;;;;;;;1453:7731:75;3741:1424:21;5899:98:75;3741:1424:21;-1:-1:-1;;3741:1424:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29:35;;;3741:1424:21;;;;;;;1765:2574:35;2238:1774;-1:-1:-1;2238:1774:35;;;;;;;;;;;;;;;;;1453:7731:75;;;;;2238:1774:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4124:8;4120:209;;1765:2574;1472:2873::o;4120:209::-;2238:1774;3741:1424:21;-1:-1:-1;;;3741:1424:21;;2238:1774:35;3741:1424:21;;;;;;-1:-1:-1;;;2238:1774:35;3741:1424:21;;;;2238:1774:35;3741:1424:21;;;5899:98:75;3741:1424:21;;-1:-1:-1;;3741:1424:21;;;;;;;;;;;;;;-1:-1:-1;3741:1424:21;;;;;;;2238:1774:35;3741:1424:21;;;;;4268:28:35;;;3741:1424:21;;;;;;;858:4141:64;;1453:7731:75;;;;;-1:-1:-1;;;;;858:4141:64;1464:147;;;;;;;;;;;;1736:19;;;;1453:7731:75;;;1837:10:64;1833:177;;456:27:63;;-1:-1:-1;;;456:27:63;2341:95:64;1453:7731:75;;;;2833:31:64;2928:94;;;3893:1;1453:7731:75;3874:1:64;1453:7731:75;3873:21:64;1453:7731:75;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;3371:96:64;;;;1453:7731:75;3371:96:64;;;2508:145;;;;;;1453:7731:75;2508:145:64;;3094:82;3480:21;1453:7731:75;858:4141:64;:::o;1833:177::-;1867:98;;;;1982:13;:::o;858:4141::-;1453:7731:75;;;;858:4141:64;-1:-1:-1;;858:4141:64;;1464:147;;;;;;;;;;;;456:27:63;;1453:7731:75;456:27:63;;1736:19:64;1453:7731:75;;;1837:10:64;1833:177;;-1:-1:-1;;;456:27:63;2341:95:64;2508:145;;;;;;1453:7731:75;;2508:145:64;;3094:82;;3480:21;858:4141;:::o;1833:177::-;1867:98;;;;;1982:13;:::o;858:4141::-;;1453:7731:75;;;;-1:-1:-1;;1453:7731:75;858:4141:64;1464:147;;;;;;;;;;;;1736:19;;;;1453:7731:75;;;1837:10:64;1833:177;;2341:95;;;;1453:7731:75;;;;2833:31:64;2928:94;;;3893:1;1453:7731:75;3874:1:64;1453:7731:75;3873:21:64;1453:7731:75;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;;;;3893:1:64;1453:7731:75;;3371:96:64;;;;1453:7731:75;3371:96:64;;;2508:145;;;;;;1453:7731:75;2508:145:64;;3094:82;3480:21;1453:7731:75;858:4141:64;:::o;1833:177::-;1867:98;;;;;1982:13;:::o;553:132:65:-;-1:-1:-1;;;;;1453:7731:75;;;553:132:65;634:21;;1453:7731:75;;553:132:65:o;1453:7731:75:-;;;-1:-1:-1;;;1453:7731:75;;;;;;;;;;;;-1:-1:-1;;;1453:7731:75;;;;;;;1711:436:32;-1:-1:-1;;;;;1853:233:32;;;-1:-1:-1;1853:233:32;;;;;;;;;;;;;;;1453:7731:75;;-1:-1:-1;;;2117:21:32;;;;;1453:7731:75;;;;1853:233:32;1453:7731:75;;2117:21:32;;1453:7731:75;;;2117:21:32;;;;;;;-1:-1:-1;2117:21:32;;;2095:45;1711:436;:::o;2117:21::-;;;1853:233;2117:21;;1853:233;2117:21;;;;;;417:66:25;2117:21:32;;;:::i;:::-;;;417:66:25;;;;;1711:436:32;:::o;2117:21::-;;;-1:-1:-1;2117:21:32;","linkReferences":{},"immutableReferences":{"10410":[{"start":28,"length":32},{"start":797,"length":32},{"start":994,"length":32},{"start":1597,"length":32},{"start":3399,"length":32},{"start":4324,"length":32},{"start":5430,"length":32},{"start":5540,"length":32},{"start":5625,"length":32},{"start":5722,"length":32},{"start":6042,"length":32},{"start":6127,"length":32},{"start":6818,"length":32},{"start":7452,"length":32},{"start":7632,"length":32},{"start":7689,"length":32},{"start":7745,"length":32},{"start":9348,"length":32},{"start":10286,"length":32}],"10413":[{"start":2470,"length":32},{"start":9385,"length":32}],"10416":[{"start":1760,"length":32},{"start":3996,"length":32}]}},"methodIdentifiers":{"authority()":"bf7e214f","balanceOf(address,address)":"f7888aec","create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":"eb07ed24","fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":"7a9cf273","fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":"5f8fbad6","getMaxFillCount()":"d8c31772","poolManager()":"dc4c90d3","setAuthority(address)":"7a9e5e4b","setMaxFillCount(uint256)":"c96d060b","unlockCallback(bytes)":"91dd7346","withdraw(bytes32[],address,uint256,address)":"c2ec68ea","zoraCoinVersionLookup()":"5ef3e955","zoraHookRegistry()":"a6de70b4"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.28+commit.7893614a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"poolManager_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zoraCoinVersionLookup_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"zoraHookRegistry_\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"authority_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ArrayLengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"expectedCoin\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"actualCoin\",\"type\":\"address\"}],\"name\":\"CoinMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientForwardedFunds\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientTransferFunds\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int24\",\"name\":\"startTick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"endTick\",\"type\":\"int24\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"}],\"name\":\"InvalidFillWindow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOrder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPoolKey\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxFillCountCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"withdrawn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"}],\"name\":\"MinAmountNotReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NativeValueMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotPoolManager\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyZoraHook\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderClosed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OrderNotMaker\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PathMustHaveAtLeastOneStep\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RouterMsgSenderInvalid\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownCallback\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnlockedFillNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroMaker\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroOrderSize\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroRealizedOrder\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"orderTick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"currentTick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"orderSize\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"LimitOrderCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coinIn\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"coinOut\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amountIn\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"amountOut\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"fillReferralAmount\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"}],\"name\":\"LimitOrderFilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"poolKeyHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"int24\",\"name\":\"tick\",\"type\":\"int24\"},{\"indexed\":false,\"internalType\":\"uint128\",\"name\":\"orderSize\",\"type\":\"uint128\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"orderId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"isCancelled\",\"type\":\"bool\"}],\"name\":\"LimitOrderUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newBalance\",\"type\":\"uint256\"}],\"name\":\"MakerBalanceUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"orderSizes\",\"type\":\"uint256[]\"},{\"internalType\":\"int24[]\",\"name\":\"orderTicks\",\"type\":\"int24[]\"},{\"internalType\":\"address\",\"name\":\"maker\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"int24\",\"name\":\"startTick\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"endTick\",\"type\":\"int24\"},{\"internalType\":\"uint256\",\"name\":\"maxFillCount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"}],\"name\":\"fill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"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\":\"key\",\"type\":\"tuple\"},{\"internalType\":\"bool\",\"name\":\"isCurrency0\",\"type\":\"bool\"},{\"internalType\":\"bytes32[]\",\"name\":\"orderIds\",\"type\":\"bytes32[]\"}],\"internalType\":\"struct IZoraLimitOrderBook.OrderBatch[]\",\"name\":\"batches\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"fillReferral\",\"type\":\"address\"}],\"name\":\"fill\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxFillCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolManager\",\"outputs\":[{\"internalType\":\"contract IPoolManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxFillCount\",\"type\":\"uint256\"}],\"name\":\"setMaxFillCount\",\"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\":[{\"internalType\":\"bytes32[]\",\"name\":\"orderIds\",\"type\":\"bytes32[]\"},{\"internalType\":\"address\",\"name\":\"coin\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraCoinVersionLookup\",\"outputs\":[{\"internalType\":\"contract IDeployedCoinVersionLookup\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"zoraHookRegistry\",\"outputs\":[{\"internalType\":\"contract IZoraHookRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"AccessManagedInvalidAuthority(address)\":[{\"details\":\"Thrown when trying to set an invalid authority (e.g., not a contract)\"}],\"AccessManagedUnauthorized()\":[{\"details\":\"Thrown when an unauthorized caller attempts to access a restricted function\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Emitted when the authority is updated\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority address.\",\"returns\":{\"_0\":\"The address of the authority contract\"}},\"balanceOf(address,address)\":{\"params\":{\"coin\":\"Address of the coin (use address(0) for native ETH).\",\"maker\":\"Address of the maker.\"},\"returns\":{\"_0\":\"Total value of open orders.\"}},\"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)\":{\"details\":\"This function is access-controlled via OpenZeppelin's AccessManager. The caller must have the appropriate role as configured in the AccessManager contract. Initially, this can be set to PUBLIC_ROLE to allow anyone to create orders, or it can be restricted to specific addresses/roles for permissioned operation.\",\"params\":{\"isCurrency0\":\"Whether the orders are denominated in currency0.\",\"key\":\"Pool key specifying currency pair and tick spacing.\",\"maker\":\"Address of the maker who will own the orders.\",\"orderSizes\":\"Order liquidity sizes.\",\"orderTicks\":\"Corresponding ticks.\"},\"returns\":{\"_0\":\"Deterministic order identifiers.\"}},\"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)\":{\"params\":{\"batches\":\"Array of per-pool batches containing order ids to process.\",\"fillReferral\":\"Address to receive accrued LP fees; use address(0) to give fees to maker.\"}},\"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)\":{\"params\":{\"endTick\":\"Inclusive ending tick. Use `type(int24).max` for the default upper bound.\",\"fillReferral\":\"Address to receive accrued LP fees; use address(0) to give fees to maker.\",\"isCurrency0\":\"Whether currency0 orders are targeted; otherwise currency1.\",\"key\":\"Pool key whose orders should be processed.\",\"maxFillCount\":\"Maximum orders to fill in this pass.\",\"startTick\":\"Inclusive starting tick. Use `-type(int24).max` for the default lower bound.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control of the contract to a new authority. Can only be called by the current authority.\",\"params\":{\"newAuthority\":\"The address of the new authority contract\"}},\"setMaxFillCount(uint256)\":{\"details\":\"This function is access-controlled via OpenZeppelin's AccessManager. The caller must have the appropriate role as configured in the AccessManager contract.\",\"params\":{\"maxFillCount\":\"The new maximum fill count value.\"}},\"unlockCallback(bytes)\":{\"params\":{\"data\":\"ABI encoded callback identifier and callback data.\"},\"returns\":{\"_0\":\"result Optional return data for create flows.\"}},\"withdraw(bytes32[],address,uint256,address)\":{\"details\":\"Orders are cancelled sequentially until minAmountOut is reached. If minAmountOut is 0, all provided orders are cancelled. Reverts if total withdrawn is less than minAmountOut.\",\"params\":{\"coin\":\"The coin address that all orders must match (use address(0) for native ETH).\",\"minAmountOut\":\"Minimum amount to withdraw (0 = cancel all provided orders).\",\"orderIds\":\"Order identifiers to cancel.\",\"recipient\":\"Destination for returned assets.\"}}},\"version\":1},\"userdoc\":{\"errors\":{\"AddressZero()\":[{\"notice\":\"Address argument was zero.\"}],\"ArrayLengthMismatch()\":[{\"notice\":\"Input arrays must have equal length.\"}],\"CoinMismatch(bytes32,address,address)\":[{\"notice\":\"Order coin does not match expected coin for batch withdrawal.\"}],\"InsufficientForwardedFunds()\":[{\"notice\":\"Forwarded funds from hook were insufficient.\"}],\"InsufficientTransferFunds()\":[{\"notice\":\"Transfer in of funds failed or was insufficient.\"}],\"InvalidFillWindow(int24,int24,bool)\":[{\"notice\":\"Tick range inputs were invalid or misaligned.\"}],\"InvalidOrder()\":[{\"notice\":\"Order id was not found.\"}],\"InvalidPoolKey()\":[{\"notice\":\"Referenced pool key hash is unknown.\"}],\"MaxFillCountCannotBeZero()\":[{\"notice\":\"Fill requests must cap the number of orders processed.\"}],\"MinAmountNotReached(uint256,uint256)\":[{\"notice\":\"Withdrawal did not reach minimum amount threshold.\"}],\"NativeValueMismatch()\":[{\"notice\":\"Supplied ETH must match expected amount.\"}],\"NotPoolManager()\":[{\"notice\":\"Caller must be the configured pool manager.\"}],\"OnlyZoraHook()\":[{\"notice\":\"Caller must be a registered Zora hook.\"}],\"OrderClosed()\":[{\"notice\":\"Order is no longer open.\"}],\"OrderNotMaker()\":[{\"notice\":\"Operation attempted by non-maker.\"}],\"PathMustHaveAtLeastOneStep()\":[{\"notice\":\"Thrown when a attempting to swap with a path that has no steps.\"}],\"RouterMsgSenderInvalid()\":[{\"notice\":\"Router caller failed to expose the original message sender.\"}],\"UnknownCallback()\":[{\"notice\":\"Unlock callback id was not recognized.\"}],\"UnlockedFillNotAllowed()\":[{\"notice\":\"Non-hook caller attempted to fill orders while pool is unlocked.\"}],\"ZeroMaker()\":[{\"notice\":\"Maker address cannot be zero.\"}],\"ZeroOrderSize()\":[{\"notice\":\"Orders must specify a non-zero size.\"}],\"ZeroRealizedOrder()\":[{\"notice\":\"Callback realized zero fills when one was expected.\"}]},\"events\":{\"LimitOrderCreated(address,address,bytes32,bool,int24,int24,uint128,bytes32)\":{\"notice\":\"Emitted when a new order joins a tick queue.\"},\"LimitOrderFilled(address,address,address,uint128,uint128,address,uint128,bytes32,int24,bytes32)\":{\"notice\":\"Emitted when an order is filled and removed from the book.\"},\"LimitOrderUpdated(address,address,bytes32,bool,int24,uint128,bytes32,bool)\":{\"notice\":\"Emitted when an order is amended or marked inactive.\"},\"MakerBalanceUpdated(address,address,uint256)\":{\"notice\":\"Emitted when a maker's aggregate balance for a coin changes.\"}},\"kind\":\"user\",\"methods\":{\"balanceOf(address,address)\":{\"notice\":\"Returns the aggregate balance of open orders for a maker/coin pair.\"},\"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)\":{\"notice\":\"Creates limit orders, pulling funds from msg.sender when pool manager is locked, or using funds already in manager when unlocked.\"},\"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)\":{\"notice\":\"Fills explicit order ids grouped by pool.\"},\"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)\":{\"notice\":\"Fills limit orders within a tick window.\"},\"setMaxFillCount(uint256)\":{\"notice\":\"Sets the maximum number of orders that can be filled in a single fill operation.\"},\"unlockCallback(bytes)\":{\"notice\":\"Processes pool-manager unlock callbacks and routes them to the correct handler.\"},\"withdraw(bytes32[],address,uint256,address)\":{\"notice\":\"Cancels orders and withdraws resulting funds to a recipient.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ZoraLimitOrderBook.sol\":\"ZoraLimitOrderBook\"},\"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/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303\",\"dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617\",\"dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u\"]},\"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/CurrencyReserves.sol\":{\"keccak256\":\"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725\",\"dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX\"]},\"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/Lock.sol\":{\"keccak256\":\"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c\",\"dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF\"]},\"node_modules/@uniswap/v4-core/src/libraries/NonzeroDeltaCount.sol\":{\"keccak256\":\"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59\",\"dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm\"]},\"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/TickBitmap.sol\":{\"keccak256\":\"0x6779f89e28a0b4af6e09d518caf014b7e8fc627400f5561f86fed11635b1458a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a64dee983106de3be3f968be94368c1e37592f5418aa2a39e8dd358d5a962b0d\",\"dweb:/ipfs/QmYuECZTiEeQVxDLYx6pBSSnVrg56Apw75bugQiM3FmGwy\"]},\"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/libraries/TransientStateLibrary.sol\":{\"keccak256\":\"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5\",\"dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV\"]},\"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/@uniswap/v4-periphery/src/libraries/PathKey.sol\":{\"keccak256\":\"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89\",\"dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg\"]},\"node_modules/@zoralabs/coins/src/interfaces/ICoin.sol\":{\"keccak256\":\"0xff3bcd3254ea7e582b75eebbff7436f20a2d485d9999974e02e98cc94217790c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://898dd5381336d821fff4a637be1bb667b6f24006ebe8f2df56a530f3fbe01fc3\",\"dweb:/ipfs/QmayrLdYhSPvjDzDA7Mss1i1SjJ5uorndpDZkVn1LQ2YSU\"]},\"node_modules/@zoralabs/coins/src/interfaces/IDeployedCoinVersionLookup.sol\":{\"keccak256\":\"0x2d9efe898233cf17e24e266d8bd6d197b4dde07fae8b954f247b1c04262b96ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://550fbe232af1052e113c1e664f4adf0c514501c38669d82bb4debd57e5842baa\",\"dweb:/ipfs/QmRBzWwCvmWZEBh6uRHvdzZQCW7Q8pgGg8Sc9hD7p5UuLK\"]},\"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/IERC7572.sol\":{\"keccak256\":\"0xf42b7816c4ed223c89d93d71e64c2fd2222b37d1280bfd067f57ff3301b0a937\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9bff9cab44e297b6f01a044b44d0acf68319789d47634708c384a9c32962db9d\",\"dweb:/ipfs/QmTg4oAc7yoGJnk3cjMEYixboAjJLgL4ys3KNSsvvtX91u\"]},\"node_modules/@zoralabs/coins/src/interfaces/IHasRewardsRecipients.sol\":{\"keccak256\":\"0x88401512f4b4f197a0961b56e4f32f9660625dd238c7ed704bba8543a30087eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e6ca303775da2421a341f23f73a5641fc159d57b37f091f9adb7d7f1da7f81b5\",\"dweb:/ipfs/QmPinYGLrFfZ5kZqRo7epqdybw5Bhc7Lzocw1nFvYpGqJR\"]},\"node_modules/@zoralabs/coins/src/interfaces/ISwapPathRouter.sol\":{\"keccak256\":\"0xeebfdea1a86042bd63677468b3612fae436640f9d6349b256492bb07e11579ce\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://836f51152dea368c8b26fccca6996bf209a3b856bd48083ddf28054695ad35df\",\"dweb:/ipfs/QmRQqekV2mAXhkWKiaYqEJNiobDnaqsTNzmpRQZ8sRjERk\"]},\"node_modules/@zoralabs/coins/src/interfaces/IUpgradeableV4Hook.sol\":{\"keccak256\":\"0x5a36e59307830bcddcb8ef0e19dd762625cf9c60b963b62e02b6563e053ba6d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://161542fe80b54ebb967878953ecb94f65d36522d320c80f1b946ff5988ffcd9f\",\"dweb:/ipfs/QmZRoC2EiCsYwGAYxJBDpBYYnxjGumYfdMhTFPE89bHPVg\"]},\"node_modules/@zoralabs/coins/src/interfaces/IZoraHookRegistry.sol\":{\"keccak256\":\"0xa18bdb2bd39e678349266ffc3d7317463e1c123468ae1ddadf92adbfdd6cd2de\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://d4cc3af34f7e247a4270dd560c42c10fb32e95ddabca80fab849a74d1ec89df1\",\"dweb:/ipfs/Qme4dLBrAYQc9jHRyb52bH2S3xxKK45s7TiQf8YJNcy52M\"]},\"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/interfaces/IZoraV4CoinHook.sol\":{\"keccak256\":\"0x66b599b02c7b42b08c39d495350942053f0dcd845f3a931cf5d0e80db4262e37\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://028eab54390c4f05437e1e1bf8afc3cad71f1ea307d7b51b31d005b5381375f7\",\"dweb:/ipfs/QmQxRjsFrbH86P1sEuueAJQGSTi1UECKQEvVWbZkJbwHgM\"]},\"node_modules/@zoralabs/coins/src/libs/CoinCommon.sol\":{\"keccak256\":\"0x29819e0c132622098240e65e4b23ac22be043721b9e57180020b4efd24558d21\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://edffc9cbf8434fc046e4b72013b740f1985aaff0344bc7a9a03631bf3e09ddc6\",\"dweb:/ipfs/QmcsFJqL4gWNoKVPfHoPUyH6gH6KTb5b3zQnnMFDabSqn1\"]},\"node_modules/@zoralabs/coins/src/libs/CoinConfigurationVersions.sol\":{\"keccak256\":\"0x5fb77e3319d5b78357c1495a1c9956a71a430311fab5b828dad269c38d5068dd\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://43f88dfa477cec2ecb219a66d2dfa17b7a88b3d9ee5af95c6cca8ca42fcaf9e0\",\"dweb:/ipfs/QmdwZ8eeMFWUcFE6DoNV8pJY1j2ptPeY2Jfr4DoE8rcWP4\"]},\"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/UniV4SwapToCurrency.sol\":{\"keccak256\":\"0xe692c69e9af5549c745565fc33bf2b40e52e9bf12360332ea04795a351a808ac\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://a4ffb4d6279e84b739de7955b73239563b6cc02fe7e419da35e4db8e9362fda0\",\"dweb:/ipfs/QmWUedeoMpPVZyrGNan8bvbeDdNv5SYrfBKHoD2h8eZ8z2\"]},\"node_modules/@zoralabs/coins/src/types/LpPosition.sol\":{\"keccak256\":\"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6\",\"dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t\"]},\"node_modules/@zoralabs/coins/src/types/PoolConfiguration.sol\":{\"keccak256\":\"0xaecffdbd5d6f33d9d3450a155d0a2efcdd8e0636cc473328dd852afef6a76b22\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://20d8ed8f4a4f1b7657004faada7367b923c35f8f194fd853d5af7a8440bd7319\",\"dweb:/ipfs/QmUi9BT4rHdxUuycz3YBrowgpNdcKEoBfVDVYxsptQ8c8t\"]},\"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\"]},\"src/IZoraLimitOrderBook.sol\":{\"keccak256\":\"0x2b2ef15b8e9b1fdfd403fb771542fd90b00b1f9afa1359c1c707c67bdd1dde10\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://a982830679c4f9a09ae38fcb261e70d0be58795f5e911187538312402042b470\",\"dweb:/ipfs/QmVMnET7gFkPEXbWZGB3WeaCw5jFbxiUFzbFsSLbNNSAaa\"]},\"src/ZoraLimitOrderBook.sol\":{\"keccak256\":\"0x66f40ccf0eb57c58edb179797a4dcbb9d14eb5c9db5cd83bb27ec0f1b36943d6\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://6f8dd8048747be9d05efa910e51bfbad24a49b64a8db9da7fdfeea3b31d9038c\",\"dweb:/ipfs/QmaVwAqV7yv29ApZoYUx6Wev6UCNC8r1LreVSgaLy55Xk6\"]},\"src/access/SimpleAccessManaged.sol\":{\"keccak256\":\"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269\",\"dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM\"]},\"src/libs/LimitOrderBitmap.sol\":{\"keccak256\":\"0xc70e40f69debd6d2bf06548e7ba9287b4236d09ca0d6ecfd2f93ce7a7c00864a\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://5493aece7257a15bbb734fa24ccd372abf47be0ddd7872de696b592dcec1f7fc\",\"dweb:/ipfs/Qmdu6EAgkEaXHUhqh9WdX2cdKCjQNgVpMuqKED68smKvhW\"]},\"src/libs/LimitOrderCommon.sol\":{\"keccak256\":\"0x895101ce1c1d55221263251088053d7c898057a3bdeba60befa7393cf4c3bfb1\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://39e1aecc33284c7e44de2f0281d1364505597aebe1959d9431ad1d9428ac0450\",\"dweb:/ipfs/QmPA5EkfhX9eYWCiDoYKrX3ugTdm6zu2CSL7zjaewuiryU\"]},\"src/libs/LimitOrderCreate.sol\":{\"keccak256\":\"0xe380c163fa89c686ddfcd01ae32b76e5c38371f2a2ad1bd4889f7712aec23a56\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://62d2b7effd4ff02570bfc16ed1637a8d1765ed74a4c8427f49efaf8996ae0929\",\"dweb:/ipfs/QmYUV61DoB9C5yw5GAmgKtw1tieeZnzc5aZLCSX1HrUz6F\"]},\"src/libs/LimitOrderFill.sol\":{\"keccak256\":\"0x9d9d5602b86f4dd14628cf9e8b4b6950b952884120c15c5169c5966b641ed60e\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://1a49882edea3f255ced68772ecf781fe39582543a5c5b4c23408907856ea9509\",\"dweb:/ipfs/QmQFWuNcJFD4FRy4W2BKwy1DPXqS4cY3D1yFArmu2zays7\"]},\"src/libs/LimitOrderLiquidity.sol\":{\"keccak256\":\"0x5a936b43c7804fb50f0f0bb7e12c5adb6c99ab24cf17e49c3739ff1b4bd083e7\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://c8f87935288d98de07aba8e7d4c9fc0fe36b81a0b12543f180f5f0c10e23158b\",\"dweb:/ipfs/QmdveWQy42aMVdQZLbNaZZqaf5ppPtp4sY4PAsrCQBbrej\"]},\"src/libs/LimitOrderQueues.sol\":{\"keccak256\":\"0x395d7b34ac9ab6558e159089acdbeef4640df54e6431f3b7ca89ea9255634c24\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://5f5ee7211e5e9003f266279f8770fabec82e2bd4ef7870d1ecf1f125db48ddc4\",\"dweb:/ipfs/QmV7KHUvjACyvgCV8Bue59DHHr6CJTEqYuVhiPYG76E1Lt\"]},\"src/libs/LimitOrderStorage.sol\":{\"keccak256\":\"0x834d00e4c2bcb79807601b63b3e824adf46ef3d47e941cd318fa09e2fa940367\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://b1fc3a11e9e31c0072d9ba749c48d5f4a53092f89bdb6b70c8f7fcd2fdc6ee72\",\"dweb:/ipfs/QmRDyNEAzCZ7R4fuQoicwdB9U1Dt6rkN3LmfRGSxPfaYPu\"]},\"src/libs/LimitOrderTypes.sol\":{\"keccak256\":\"0xcf1cf64d8815dc1d3fe050ee9f3e2815894c98f17f6fc1a139596935bd590258\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://e7063f4743899eedfadf2fb32fd2b9c8fb617a0726ca0ed9e2a9a2c7d389479e\",\"dweb:/ipfs/QmTZFNfyx5V2YguGomHaqHumQfDiiAQaLJqRPXt9XqviE5\"]},\"src/libs/LimitOrderWithdraw.sol\":{\"keccak256\":\"0x9119feac654be4029374c1248797727c95dff26bc05cb564f79c49302ab5d0e9\",\"license\":\"ZORA-DELAYED-OSL-v1\",\"urls\":[\"bzz-raw://793573a236a253b0605bd8c73dc59e00319336a33627921a916f344ccace63b0\",\"dweb:/ipfs/QmTB23GS9Qw5FXLWdkivb9xDy9oZuZA2w4ntQTsqN4KhNv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.28+commit.7893614a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"poolManager_","type":"address"},{"internalType":"address","name":"zoraCoinVersionLookup_","type":"address"},{"internalType":"address","name":"zoraHookRegistry_","type":"address"},{"internalType":"address","name":"authority_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[],"type":"error","name":"AddressZero"},{"inputs":[],"type":"error","name":"ArrayLengthMismatch"},{"inputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"address","name":"expectedCoin","type":"address"},{"internalType":"address","name":"actualCoin","type":"address"}],"type":"error","name":"CoinMismatch"},{"inputs":[],"type":"error","name":"InsufficientForwardedFunds"},{"inputs":[],"type":"error","name":"InsufficientTransferFunds"},{"inputs":[{"internalType":"int24","name":"startTick","type":"int24"},{"internalType":"int24","name":"endTick","type":"int24"},{"internalType":"bool","name":"isCurrency0","type":"bool"}],"type":"error","name":"InvalidFillWindow"},{"inputs":[],"type":"error","name":"InvalidOrder"},{"inputs":[],"type":"error","name":"InvalidPoolKey"},{"inputs":[],"type":"error","name":"MaxFillCountCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"withdrawn","type":"uint256"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"}],"type":"error","name":"MinAmountNotReached"},{"inputs":[],"type":"error","name":"NativeValueMismatch"},{"inputs":[],"type":"error","name":"NotPoolManager"},{"inputs":[],"type":"error","name":"OnlyZoraHook"},{"inputs":[],"type":"error","name":"OrderClosed"},{"inputs":[],"type":"error","name":"OrderNotMaker"},{"inputs":[],"type":"error","name":"PathMustHaveAtLeastOneStep"},{"inputs":[],"type":"error","name":"RouterMsgSenderInvalid"},{"inputs":[],"type":"error","name":"UnknownCallback"},{"inputs":[],"type":"error","name":"UnlockedFillNotAllowed"},{"inputs":[],"type":"error","name":"ZeroMaker"},{"inputs":[],"type":"error","name":"ZeroOrderSize"},{"inputs":[],"type":"error","name":"ZeroRealizedOrder"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCurrency0","type":"bool","indexed":false},{"internalType":"int24","name":"orderTick","type":"int24","indexed":false},{"internalType":"int24","name":"currentTick","type":"int24","indexed":false},{"internalType":"uint128","name":"orderSize","type":"uint128","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false}],"type":"event","name":"LimitOrderCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coinIn","type":"address","indexed":true},{"internalType":"address","name":"coinOut","type":"address","indexed":false},{"internalType":"uint128","name":"amountIn","type":"uint128","indexed":false},{"internalType":"uint128","name":"amountOut","type":"uint128","indexed":false},{"internalType":"address","name":"fillReferral","type":"address","indexed":false},{"internalType":"uint128","name":"fillReferralAmount","type":"uint128","indexed":false},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false}],"type":"event","name":"LimitOrderFilled","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCurrency0","type":"bool","indexed":false},{"internalType":"int24","name":"tick","type":"int24","indexed":false},{"internalType":"uint128","name":"orderSize","type":"uint128","indexed":false},{"internalType":"bytes32","name":"orderId","type":"bytes32","indexed":false},{"internalType":"bool","name":"isCancelled","type":"bool","indexed":false}],"type":"event","name":"LimitOrderUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"maker","type":"address","indexed":true},{"internalType":"address","name":"coin","type":"address","indexed":true},{"internalType":"uint256","name":"newBalance","type":"uint256","indexed":false}],"type":"event","name":"MakerBalanceUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"maker","type":"address"},{"internalType":"address","name":"coin","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"struct PoolKey","name":"key","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":"bool","name":"isCurrency0","type":"bool"},{"internalType":"uint256[]","name":"orderSizes","type":"uint256[]"},{"internalType":"int24[]","name":"orderTicks","type":"int24[]"},{"internalType":"address","name":"maker","type":"address"}],"stateMutability":"payable","type":"function","name":"create","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}]},{"inputs":[{"internalType":"struct PoolKey","name":"key","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":"bool","name":"isCurrency0","type":"bool"},{"internalType":"int24","name":"startTick","type":"int24"},{"internalType":"int24","name":"endTick","type":"int24"},{"internalType":"uint256","name":"maxFillCount","type":"uint256"},{"internalType":"address","name":"fillReferral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"fill"},{"inputs":[{"internalType":"struct IZoraLimitOrderBook.OrderBatch[]","name":"batches","type":"tuple[]","components":[{"internalType":"struct PoolKey","name":"key","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":"bool","name":"isCurrency0","type":"bool"},{"internalType":"bytes32[]","name":"orderIds","type":"bytes32[]"}]},{"internalType":"address","name":"fillReferral","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"fill"},{"inputs":[],"stateMutability":"view","type":"function","name":"getMaxFillCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"uint256","name":"maxFillCount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxFillCount"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[{"internalType":"bytes32[]","name":"orderIds","type":"bytes32[]"},{"internalType":"address","name":"coin","type":"address"},{"internalType":"uint256","name":"minAmountOut","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw"},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraCoinVersionLookup","outputs":[{"internalType":"contract IDeployedCoinVersionLookup","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"zoraHookRegistry","outputs":[{"internalType":"contract IZoraHookRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority address.","returns":{"_0":"The address of the authority contract"}},"balanceOf(address,address)":{"params":{"coin":"Address of the coin (use address(0) for native ETH).","maker":"Address of the maker."},"returns":{"_0":"Total value of open orders."}},"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":{"details":"This function is access-controlled via OpenZeppelin's AccessManager. The caller must have the appropriate role as configured in the AccessManager contract. Initially, this can be set to PUBLIC_ROLE to allow anyone to create orders, or it can be restricted to specific addresses/roles for permissioned operation.","params":{"isCurrency0":"Whether the orders are denominated in currency0.","key":"Pool key specifying currency pair and tick spacing.","maker":"Address of the maker who will own the orders.","orderSizes":"Order liquidity sizes.","orderTicks":"Corresponding ticks."},"returns":{"_0":"Deterministic order identifiers."}},"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":{"params":{"batches":"Array of per-pool batches containing order ids to process.","fillReferral":"Address to receive accrued LP fees; use address(0) to give fees to maker."}},"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":{"params":{"endTick":"Inclusive ending tick. Use `type(int24).max` for the default upper bound.","fillReferral":"Address to receive accrued LP fees; use address(0) to give fees to maker.","isCurrency0":"Whether currency0 orders are targeted; otherwise currency1.","key":"Pool key whose orders should be processed.","maxFillCount":"Maximum orders to fill in this pass.","startTick":"Inclusive starting tick. Use `-type(int24).max` for the default lower bound."}},"setAuthority(address)":{"details":"Transfers control of the contract to a new authority. Can only be called by the current authority.","params":{"newAuthority":"The address of the new authority contract"}},"setMaxFillCount(uint256)":{"details":"This function is access-controlled via OpenZeppelin's AccessManager. The caller must have the appropriate role as configured in the AccessManager contract.","params":{"maxFillCount":"The new maximum fill count value."}},"unlockCallback(bytes)":{"params":{"data":"ABI encoded callback identifier and callback data."},"returns":{"_0":"result Optional return data for create flows."}},"withdraw(bytes32[],address,uint256,address)":{"details":"Orders are cancelled sequentially until minAmountOut is reached. If minAmountOut is 0, all provided orders are cancelled. Reverts if total withdrawn is less than minAmountOut.","params":{"coin":"The coin address that all orders must match (use address(0) for native ETH).","minAmountOut":"Minimum amount to withdraw (0 = cancel all provided orders).","orderIds":"Order identifiers to cancel.","recipient":"Destination for returned assets."}}},"version":1},"userdoc":{"kind":"user","methods":{"balanceOf(address,address)":{"notice":"Returns the aggregate balance of open orders for a maker/coin pair."},"create((address,address,uint24,int24,address),bool,uint256[],int24[],address)":{"notice":"Creates limit orders, pulling funds from msg.sender when pool manager is locked, or using funds already in manager when unlocked."},"fill(((address,address,uint24,int24,address),bool,bytes32[])[],address)":{"notice":"Fills explicit order ids grouped by pool."},"fill((address,address,uint24,int24,address),bool,int24,int24,uint256,address)":{"notice":"Fills limit orders within a tick window."},"setMaxFillCount(uint256)":{"notice":"Sets the maximum number of orders that can be filled in a single fill operation."},"unlockCallback(bytes)":{"notice":"Processes pool-manager unlock callbacks and routes them to the correct handler."},"withdraw(bytes32[],address,uint256,address)":{"notice":"Cancels orders and withdraws resulting funds to a recipient."}},"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/ZoraLimitOrderBook.sol":"ZoraLimitOrderBook"},"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/token/ERC20/IERC20.sol":{"keccak256":"0x74ed01eb66b923d0d0cfe3be84604ac04b76482a55f9dd655e1ef4d367f95bc2","urls":["bzz-raw://5282825a626cfe924e504274b864a652b0023591fa66f06a067b25b51ba9b303","dweb:/ipfs/QmeCfPykghhMc81VJTrHTC7sF6CRvaA1FXVq2pJhwYp1dV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x8891738ffe910f0cf2da09566928589bf5d63f4524dd734fd9cedbac3274dd5c","urls":["bzz-raw://971f954442df5c2ef5b5ebf1eb245d7105d9fbacc7386ee5c796df1d45b21617","dweb:/ipfs/QmadRjHbkicwqwwh61raUEapaVEtaLMcYbQZWs9gUkgj3u"],"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/CurrencyReserves.sol":{"keccak256":"0x1576616129933fcdf3b684cea33cffd9c95e18fafbd2832a8c48ac3d8526d4c3","urls":["bzz-raw://33b050efb9b81803b18f562271e7cca2ec5362c4d505860d6419b4a345636725","dweb:/ipfs/QmQtFtTwKZ5pFVGD2ENDUXvp7ECFvzqeCuJ1miJcUHdmiX"],"license":"BUSL-1.1"},"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/Lock.sol":{"keccak256":"0x9338be4b5695f1da5f3d3f7a3eeaf7a356c1045458289586ac0cbe9cef77c6d5","urls":["bzz-raw://485ec42ed6155469d612a9a0c18068ebfbad74448792a338a435503de3ef1b2c","dweb:/ipfs/QmVnnv5u74MYatfRmBgrcfFYQcsMAJMG9jQ6ju8UiydKNF"],"license":"BUSL-1.1"},"node_modules/@uniswap/v4-core/src/libraries/NonzeroDeltaCount.sol":{"keccak256":"0x0666ebd5d3528d7d52c48538296367a4cff97a578cf13365c51983fae3219b87","urls":["bzz-raw://d27f1be3bd09d85c53d3e6a539dd6529ddd8b2b764ccb47fd7765fc81f9add59","dweb:/ipfs/QmQdZujNXhKEXQBkKtF5jbdvo1yXMqPDUoBBaF9S5u3Kpm"],"license":"BUSL-1.1"},"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/TickBitmap.sol":{"keccak256":"0x6779f89e28a0b4af6e09d518caf014b7e8fc627400f5561f86fed11635b1458a","urls":["bzz-raw://a64dee983106de3be3f968be94368c1e37592f5418aa2a39e8dd358d5a962b0d","dweb:/ipfs/QmYuECZTiEeQVxDLYx6pBSSnVrg56Apw75bugQiM3FmGwy"],"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/libraries/TransientStateLibrary.sol":{"keccak256":"0x7d1e0875747bd89b32c25f1a48da2766e5f4aff1f671ad5f3c0c07ebbbcb946a","urls":["bzz-raw://d76cfeb1cb60595b41ecc51c8a12fb4bf63a7fc733d0b1a2e3adb55abeb1f9d5","dweb:/ipfs/Qmb8oX7DtsRpw3tTtdWZwGhauj1evq43d3PLwe4nSDAKkV"],"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/@uniswap/v4-periphery/src/libraries/PathKey.sol":{"keccak256":"0xbbd79ffefe045f025263e389539021266fb4d371463aefba405e1ff1d3fcf9bc","urls":["bzz-raw://2d1c47b81a01218be46ee79f0a8837095479b94dc5cfd18abbf2006709f0ea89","dweb:/ipfs/QmRb6CQ13Zp7f3WF5jbZtsF2szhxpPgcuWs9mjwQXxzqtg"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ICoin.sol":{"keccak256":"0xff3bcd3254ea7e582b75eebbff7436f20a2d485d9999974e02e98cc94217790c","urls":["bzz-raw://898dd5381336d821fff4a637be1bb667b6f24006ebe8f2df56a530f3fbe01fc3","dweb:/ipfs/QmayrLdYhSPvjDzDA7Mss1i1SjJ5uorndpDZkVn1LQ2YSU"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IDeployedCoinVersionLookup.sol":{"keccak256":"0x2d9efe898233cf17e24e266d8bd6d197b4dde07fae8b954f247b1c04262b96ba","urls":["bzz-raw://550fbe232af1052e113c1e664f4adf0c514501c38669d82bb4debd57e5842baa","dweb:/ipfs/QmRBzWwCvmWZEBh6uRHvdzZQCW7Q8pgGg8Sc9hD7p5UuLK"],"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/IERC7572.sol":{"keccak256":"0xf42b7816c4ed223c89d93d71e64c2fd2222b37d1280bfd067f57ff3301b0a937","urls":["bzz-raw://9bff9cab44e297b6f01a044b44d0acf68319789d47634708c384a9c32962db9d","dweb:/ipfs/QmTg4oAc7yoGJnk3cjMEYixboAjJLgL4ys3KNSsvvtX91u"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IHasRewardsRecipients.sol":{"keccak256":"0x88401512f4b4f197a0961b56e4f32f9660625dd238c7ed704bba8543a30087eb","urls":["bzz-raw://e6ca303775da2421a341f23f73a5641fc159d57b37f091f9adb7d7f1da7f81b5","dweb:/ipfs/QmPinYGLrFfZ5kZqRo7epqdybw5Bhc7Lzocw1nFvYpGqJR"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/ISwapPathRouter.sol":{"keccak256":"0xeebfdea1a86042bd63677468b3612fae436640f9d6349b256492bb07e11579ce","urls":["bzz-raw://836f51152dea368c8b26fccca6996bf209a3b856bd48083ddf28054695ad35df","dweb:/ipfs/QmRQqekV2mAXhkWKiaYqEJNiobDnaqsTNzmpRQZ8sRjERk"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IUpgradeableV4Hook.sol":{"keccak256":"0x5a36e59307830bcddcb8ef0e19dd762625cf9c60b963b62e02b6563e053ba6d7","urls":["bzz-raw://161542fe80b54ebb967878953ecb94f65d36522d320c80f1b946ff5988ffcd9f","dweb:/ipfs/QmZRoC2EiCsYwGAYxJBDpBYYnxjGumYfdMhTFPE89bHPVg"],"license":"MIT"},"node_modules/@zoralabs/coins/src/interfaces/IZoraHookRegistry.sol":{"keccak256":"0xa18bdb2bd39e678349266ffc3d7317463e1c123468ae1ddadf92adbfdd6cd2de","urls":["bzz-raw://d4cc3af34f7e247a4270dd560c42c10fb32e95ddabca80fab849a74d1ec89df1","dweb:/ipfs/Qme4dLBrAYQc9jHRyb52bH2S3xxKK45s7TiQf8YJNcy52M"],"license":"ZORA-DELAYED-OSL-v1"},"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/interfaces/IZoraV4CoinHook.sol":{"keccak256":"0x66b599b02c7b42b08c39d495350942053f0dcd845f3a931cf5d0e80db4262e37","urls":["bzz-raw://028eab54390c4f05437e1e1bf8afc3cad71f1ea307d7b51b31d005b5381375f7","dweb:/ipfs/QmQxRjsFrbH86P1sEuueAJQGSTi1UECKQEvVWbZkJbwHgM"],"license":"MIT"},"node_modules/@zoralabs/coins/src/libs/CoinCommon.sol":{"keccak256":"0x29819e0c132622098240e65e4b23ac22be043721b9e57180020b4efd24558d21","urls":["bzz-raw://edffc9cbf8434fc046e4b72013b740f1985aaff0344bc7a9a03631bf3e09ddc6","dweb:/ipfs/QmcsFJqL4gWNoKVPfHoPUyH6gH6KTb5b3zQnnMFDabSqn1"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/libs/CoinConfigurationVersions.sol":{"keccak256":"0x5fb77e3319d5b78357c1495a1c9956a71a430311fab5b828dad269c38d5068dd","urls":["bzz-raw://43f88dfa477cec2ecb219a66d2dfa17b7a88b3d9ee5af95c6cca8ca42fcaf9e0","dweb:/ipfs/QmdwZ8eeMFWUcFE6DoNV8pJY1j2ptPeY2Jfr4DoE8rcWP4"],"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/UniV4SwapToCurrency.sol":{"keccak256":"0xe692c69e9af5549c745565fc33bf2b40e52e9bf12360332ea04795a351a808ac","urls":["bzz-raw://a4ffb4d6279e84b739de7955b73239563b6cc02fe7e419da35e4db8e9362fda0","dweb:/ipfs/QmWUedeoMpPVZyrGNan8bvbeDdNv5SYrfBKHoD2h8eZ8z2"],"license":"ZORA-DELAYED-OSL-v1"},"node_modules/@zoralabs/coins/src/types/LpPosition.sol":{"keccak256":"0x19dfc13b9f6a831ee7a624094c17a7c0b20bbc9ef62121dd98d85a8641d53aaf","urls":["bzz-raw://fe77a4cb9ff9afbf7561ed647d15729b201259ef767d6c140a0b6e9254a97fe6","dweb:/ipfs/QmaieKjUcT2SG2Spdg2sHzZso8zd5YTVsMRRoDzz6Kgn1t"],"license":"MIT"},"node_modules/@zoralabs/coins/src/types/PoolConfiguration.sol":{"keccak256":"0xaecffdbd5d6f33d9d3450a155d0a2efcdd8e0636cc473328dd852afef6a76b22","urls":["bzz-raw://20d8ed8f4a4f1b7657004faada7367b923c35f8f194fd853d5af7a8440bd7319","dweb:/ipfs/QmUi9BT4rHdxUuycz3YBrowgpNdcKEoBfVDVYxsptQ8c8t"],"license":"ZORA-DELAYED-OSL-v1"},"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"},"src/IZoraLimitOrderBook.sol":{"keccak256":"0x2b2ef15b8e9b1fdfd403fb771542fd90b00b1f9afa1359c1c707c67bdd1dde10","urls":["bzz-raw://a982830679c4f9a09ae38fcb261e70d0be58795f5e911187538312402042b470","dweb:/ipfs/QmVMnET7gFkPEXbWZGB3WeaCw5jFbxiUFzbFsSLbNNSAaa"],"license":"ZORA-DELAYED-OSL-v1"},"src/ZoraLimitOrderBook.sol":{"keccak256":"0x66f40ccf0eb57c58edb179797a4dcbb9d14eb5c9db5cd83bb27ec0f1b36943d6","urls":["bzz-raw://6f8dd8048747be9d05efa910e51bfbad24a49b64a8db9da7fdfeea3b31d9038c","dweb:/ipfs/QmaVwAqV7yv29ApZoYUx6Wev6UCNC8r1LreVSgaLy55Xk6"],"license":"ZORA-DELAYED-OSL-v1"},"src/access/SimpleAccessManaged.sol":{"keccak256":"0xd92f23941a7a5709efdb66928036b6812d6742eca3b4d7d1ff42197a7b8916c8","urls":["bzz-raw://6ea18ad22ef178f454a65f55fcb29cdbd45396e1da3bab178357c54162be0269","dweb:/ipfs/QmZVGjcJ1v6bFaG3VTkGZHz3Fb32xZ4KBDmAxdJHxdQzBM"],"license":"MIT"},"src/libs/LimitOrderBitmap.sol":{"keccak256":"0xc70e40f69debd6d2bf06548e7ba9287b4236d09ca0d6ecfd2f93ce7a7c00864a","urls":["bzz-raw://5493aece7257a15bbb734fa24ccd372abf47be0ddd7872de696b592dcec1f7fc","dweb:/ipfs/Qmdu6EAgkEaXHUhqh9WdX2cdKCjQNgVpMuqKED68smKvhW"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderCommon.sol":{"keccak256":"0x895101ce1c1d55221263251088053d7c898057a3bdeba60befa7393cf4c3bfb1","urls":["bzz-raw://39e1aecc33284c7e44de2f0281d1364505597aebe1959d9431ad1d9428ac0450","dweb:/ipfs/QmPA5EkfhX9eYWCiDoYKrX3ugTdm6zu2CSL7zjaewuiryU"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderCreate.sol":{"keccak256":"0xe380c163fa89c686ddfcd01ae32b76e5c38371f2a2ad1bd4889f7712aec23a56","urls":["bzz-raw://62d2b7effd4ff02570bfc16ed1637a8d1765ed74a4c8427f49efaf8996ae0929","dweb:/ipfs/QmYUV61DoB9C5yw5GAmgKtw1tieeZnzc5aZLCSX1HrUz6F"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderFill.sol":{"keccak256":"0x9d9d5602b86f4dd14628cf9e8b4b6950b952884120c15c5169c5966b641ed60e","urls":["bzz-raw://1a49882edea3f255ced68772ecf781fe39582543a5c5b4c23408907856ea9509","dweb:/ipfs/QmQFWuNcJFD4FRy4W2BKwy1DPXqS4cY3D1yFArmu2zays7"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderLiquidity.sol":{"keccak256":"0x5a936b43c7804fb50f0f0bb7e12c5adb6c99ab24cf17e49c3739ff1b4bd083e7","urls":["bzz-raw://c8f87935288d98de07aba8e7d4c9fc0fe36b81a0b12543f180f5f0c10e23158b","dweb:/ipfs/QmdveWQy42aMVdQZLbNaZZqaf5ppPtp4sY4PAsrCQBbrej"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderQueues.sol":{"keccak256":"0x395d7b34ac9ab6558e159089acdbeef4640df54e6431f3b7ca89ea9255634c24","urls":["bzz-raw://5f5ee7211e5e9003f266279f8770fabec82e2bd4ef7870d1ecf1f125db48ddc4","dweb:/ipfs/QmV7KHUvjACyvgCV8Bue59DHHr6CJTEqYuVhiPYG76E1Lt"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderStorage.sol":{"keccak256":"0x834d00e4c2bcb79807601b63b3e824adf46ef3d47e941cd318fa09e2fa940367","urls":["bzz-raw://b1fc3a11e9e31c0072d9ba749c48d5f4a53092f89bdb6b70c8f7fcd2fdc6ee72","dweb:/ipfs/QmRDyNEAzCZ7R4fuQoicwdB9U1Dt6rkN3LmfRGSxPfaYPu"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderTypes.sol":{"keccak256":"0xcf1cf64d8815dc1d3fe050ee9f3e2815894c98f17f6fc1a139596935bd590258","urls":["bzz-raw://e7063f4743899eedfadf2fb32fd2b9c8fb617a0726ca0ed9e2a9a2c7d389479e","dweb:/ipfs/QmTZFNfyx5V2YguGomHaqHumQfDiiAQaLJqRPXt9XqviE5"],"license":"ZORA-DELAYED-OSL-v1"},"src/libs/LimitOrderWithdraw.sol":{"keccak256":"0x9119feac654be4029374c1248797727c95dff26bc05cb564f79c49302ab5d0e9","urls":["bzz-raw://793573a236a253b0605bd8c73dc59e00319336a33627921a916f344ccace63b0","dweb:/ipfs/QmTB23GS9Qw5FXLWdkivb9xDy9oZuZA2w4ntQTsqN4KhNv"],"license":"ZORA-DELAYED-OSL-v1"}},"version":1},"id":75}