@aloudata/ink-flow 1.0.6 → 1.0.8

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 (124) hide show
  1. package/dist/components/EdgeWrapper/EdgeUpdateAnchors.d.ts +1 -1
  2. package/dist/components/EdgeWrapper/EdgeUpdateAnchors.d.ts.map +1 -1
  3. package/dist/components/Edges/BezierEdge.d.ts.map +1 -1
  4. package/dist/components/Edges/EdgeAnchor.d.ts +1 -1
  5. package/dist/components/Edges/SimpleBezierEdge.d.ts +1 -1
  6. package/dist/components/Edges/SimpleBezierEdge.d.ts.map +1 -1
  7. package/dist/components/Handle/index.d.ts +5 -3
  8. package/dist/components/Handle/index.d.ts.map +1 -1
  9. package/dist/components/NodeWrapper/utils.d.ts +1 -1
  10. package/dist/components/Nodes/DefaultNode.d.ts.map +1 -1
  11. package/dist/components/Nodes/InputNode.d.ts +1 -2
  12. package/dist/components/Nodes/InputNode.d.ts.map +1 -1
  13. package/dist/components/Nodes/OutputNode.d.ts.map +1 -1
  14. package/dist/components/Nodes/utils.d.ts.map +1 -1
  15. package/dist/components/Panel/index.d.ts +1 -1
  16. package/dist/components/StoreUpdater/index.d.ts.map +1 -1
  17. package/dist/container/EdgeRenderer/MarkerSymbols.d.ts +1 -1
  18. package/dist/container/EdgeRenderer/MarkerSymbols.d.ts.map +1 -1
  19. package/dist/container/InkFlow/index.d.ts.map +1 -1
  20. package/dist/container/InkFlow/init-values.d.ts +1 -1
  21. package/dist/hooks/useGlobalKeyHandler.d.ts +1 -1
  22. package/dist/hooks/useGlobalKeyHandler.d.ts.map +1 -1
  23. package/dist/hooks/useInkFlow.d.ts.map +1 -1
  24. package/dist/hooks/useKeyPress.d.ts +1 -1
  25. package/dist/hooks/useKeyPress.d.ts.map +1 -1
  26. package/dist/hooks/useMoveSelectedNodes.d.ts +1 -1
  27. package/dist/hooks/useMoveSelectedNodes.d.ts.map +1 -1
  28. package/dist/hooks/useStore.d.ts.map +1 -1
  29. package/dist/index.cjs.js +2 -2
  30. package/dist/index.cjs.js.map +1 -1
  31. package/dist/index.d.ts +2 -0
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.esm.js +3 -3
  34. package/dist/index.esm.js.map +1 -1
  35. package/dist/plugins/Controls/types.d.ts +1 -1
  36. package/dist/store/initialState.d.ts.map +1 -1
  37. package/dist/types/edges.d.ts +1 -1
  38. package/dist/types/edges.d.ts.map +1 -1
  39. package/dist/types/general.d.ts +1 -1
  40. package/dist/types/general.d.ts.map +1 -1
  41. package/dist/types/index.d.ts +1 -1
  42. package/dist/types/index.d.ts.map +1 -1
  43. package/dist/types/instance.d.ts +1 -1
  44. package/dist/types/instance.d.ts.map +1 -1
  45. package/dist/types/nodes.d.ts +1 -1
  46. package/dist/types/nodes.d.ts.map +1 -1
  47. package/dist/types/props.d.ts +1 -1
  48. package/dist/types/props.d.ts.map +1 -1
  49. package/dist/types/store.d.ts +1 -1
  50. package/dist/types/store.d.ts.map +1 -1
  51. package/dist/types/utils/types.d.ts +1 -1
  52. package/dist/types/utils/types.d.ts.map +1 -1
  53. package/dist/utils/changes.d.ts +1 -1
  54. package/dist/utils/changes.d.ts.map +1 -1
  55. package/dist/utils/dom.d.ts +1 -1
  56. package/dist/utils/dom.d.ts.map +1 -1
  57. package/dist/utils/edges/bezier-edge.d.ts +1 -1
  58. package/dist/utils/edges/general.d.ts +1 -1
  59. package/dist/utils/edges/general.d.ts.map +1 -1
  60. package/dist/utils/edges/positions.d.ts +1 -1
  61. package/dist/utils/edges/positions.d.ts.map +1 -1
  62. package/dist/utils/edges/smoothstep-edge.d.ts +1 -1
  63. package/dist/utils/general.d.ts +1 -1
  64. package/dist/utils/general.d.ts.map +1 -1
  65. package/dist/utils/graph.d.ts +1 -1
  66. package/dist/utils/graph.d.ts.map +1 -1
  67. package/dist/utils/marker.d.ts +1 -1
  68. package/dist/utils/marker.d.ts.map +1 -1
  69. package/dist/utils/positions.d.ts +1 -1
  70. package/dist/utils/positions.d.ts.map +1 -1
  71. package/dist/utils/store.d.ts +1 -1
  72. package/dist/utils/store.d.ts.map +1 -1
  73. package/package.json +2 -3
  74. package/dist/base.css +0 -6
  75. package/dist/constants/errorMessages.d.ts +0 -22
  76. package/dist/constants/errorMessages.d.ts.map +0 -1
  77. package/dist/constants/index.d.ts +0 -2
  78. package/dist/constants/index.d.ts.map +0 -1
  79. package/dist/types/system/changes.d.ts +0 -51
  80. package/dist/types/system/changes.d.ts.map +0 -1
  81. package/dist/types/system/edges.d.ts +0 -83
  82. package/dist/types/system/edges.d.ts.map +0 -1
  83. package/dist/types/system/general.d.ts +0 -119
  84. package/dist/types/system/general.d.ts.map +0 -1
  85. package/dist/types/system/handles.d.ts +0 -51
  86. package/dist/types/system/handles.d.ts.map +0 -1
  87. package/dist/types/system/index.d.ts +0 -8
  88. package/dist/types/system/index.d.ts.map +0 -1
  89. package/dist/types/system/nodes.d.ts +0 -126
  90. package/dist/types/system/nodes.d.ts.map +0 -1
  91. package/dist/types/system/panzoom.d.ts +0 -49
  92. package/dist/types/system/panzoom.d.ts.map +0 -1
  93. package/dist/types/system/utils.d.ts +0 -25
  94. package/dist/types/system/utils.d.ts.map +0 -1
  95. package/dist/utils/bezier-edge.d.ts +0 -59
  96. package/dist/utils/bezier-edge.d.ts.map +0 -1
  97. package/dist/utils/edges.d.ts +0 -26
  98. package/dist/utils/edges.d.ts.map +0 -1
  99. package/dist/utils/smoothstep-edge.d.ts +0 -43
  100. package/dist/utils/smoothstep-edge.d.ts.map +0 -1
  101. package/dist/utils/straight-edge.d.ts +0 -34
  102. package/dist/utils/straight-edge.d.ts.map +0 -1
  103. package/dist/utils/xydrag/XYDrag.d.ts +0 -52
  104. package/dist/utils/xydrag/XYDrag.d.ts.map +0 -1
  105. package/dist/utils/xydrag/index.d.ts +0 -2
  106. package/dist/utils/xydrag/index.d.ts.map +0 -1
  107. package/dist/utils/xydrag/utils.d.ts +0 -10
  108. package/dist/utils/xydrag/utils.d.ts.map +0 -1
  109. package/dist/utils/xyhandle/XYHandle.d.ts +0 -49
  110. package/dist/utils/xyhandle/XYHandle.d.ts.map +0 -1
  111. package/dist/utils/xyhandle/index.d.ts +0 -2
  112. package/dist/utils/xyhandle/index.d.ts.map +0 -1
  113. package/dist/utils/xyhandle/utils.d.ts +0 -14
  114. package/dist/utils/xyhandle/utils.d.ts.map +0 -1
  115. package/dist/utils/xypanzoom/XYPanZoom.d.ts +0 -12
  116. package/dist/utils/xypanzoom/XYPanZoom.d.ts.map +0 -1
  117. package/dist/utils/xypanzoom/eventhandler.d.ts +0 -46
  118. package/dist/utils/xypanzoom/eventhandler.d.ts.map +0 -1
  119. package/dist/utils/xypanzoom/filter.d.ts +0 -14
  120. package/dist/utils/xypanzoom/filter.d.ts.map +0 -1
  121. package/dist/utils/xypanzoom/index.d.ts +0 -2
  122. package/dist/utils/xypanzoom/index.d.ts.map +0 -1
  123. package/dist/utils/xypanzoom/utils.d.ts +0 -10
  124. package/dist/utils/xypanzoom/utils.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs.js","sources":["../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/classnames/index.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/shim/index.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/.pnpm/zustand@4.5.2_@types+react@18.3.1_react@18.3.1/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@4.5.2_@types+react@18.3.1_react@18.3.1/node_modules/zustand/esm/traditional.mjs","../src/contexts/StoreContext.ts","../src/constants/errorMessages.ts","../src/hooks/useStore.ts","../src/utils/store.ts","../src/utils/general.ts","../src/utils/dom.ts","../src/hooks/useKeyPress.ts","../../../node_modules/.pnpm/zustand@4.5.2_@types+react@18.3.1_react@18.3.1/node_modules/zustand/esm/shallow.mjs","../src/styles/utils.ts","../src/types/system/general.ts","../src/types/system/edges.ts","../src/types/system/utils.ts","../../../node_modules/d3-dispatch/src/dispatch.js","../../../node_modules/d3-selection/src/namespaces.js","../../../node_modules/d3-selection/src/namespace.js","../../../node_modules/d3-selection/src/creator.js","../../../node_modules/d3-selection/src/selector.js","../../../node_modules/d3-selection/src/selectorAll.js","../../../node_modules/d3-selection/src/selection/selectAll.js","../../../node_modules/d3-selection/src/array.js","../../../node_modules/d3-selection/src/matcher.js","../../../node_modules/d3-selection/src/selection/selectChild.js","../../../node_modules/d3-selection/src/selection/selectChildren.js","../../../node_modules/d3-selection/src/selection/sparse.js","../../../node_modules/d3-selection/src/selection/enter.js","../../../node_modules/d3-selection/src/selection/data.js","../../../node_modules/d3-selection/src/selection/sort.js","../../../node_modules/d3-selection/src/selection/attr.js","../../../node_modules/d3-selection/src/window.js","../../../node_modules/d3-selection/src/selection/style.js","../../../node_modules/d3-selection/src/selection/property.js","../../../node_modules/d3-selection/src/selection/classed.js","../../../node_modules/d3-selection/src/selection/text.js","../../../node_modules/d3-selection/src/selection/html.js","../../../node_modules/d3-selection/src/selection/raise.js","../../../node_modules/d3-selection/src/selection/lower.js","../../../node_modules/d3-selection/src/selection/insert.js","../../../node_modules/d3-selection/src/selection/remove.js","../../../node_modules/d3-selection/src/selection/clone.js","../../../node_modules/d3-selection/src/selection/on.js","../../../node_modules/d3-selection/src/selection/dispatch.js","../../../node_modules/d3-selection/src/selection/index.js","../../../node_modules/d3-selection/src/select.js","../../../node_modules/d3-selection/src/pointer.js","../../../node_modules/d3-selection/src/sourceEvent.js","../../../node_modules/d3-selection/src/selection/select.js","../../../node_modules/d3-selection/src/selection/filter.js","../../../node_modules/d3-selection/src/constant.js","../../../node_modules/d3-selection/src/selection/exit.js","../../../node_modules/d3-selection/src/selection/join.js","../../../node_modules/d3-selection/src/selection/merge.js","../../../node_modules/d3-selection/src/selection/order.js","../../../node_modules/d3-selection/src/selection/call.js","../../../node_modules/d3-selection/src/selection/nodes.js","../../../node_modules/d3-selection/src/selection/node.js","../../../node_modules/d3-selection/src/selection/size.js","../../../node_modules/d3-selection/src/selection/empty.js","../../../node_modules/d3-selection/src/selection/each.js","../../../node_modules/d3-selection/src/selection/append.js","../../../node_modules/d3-selection/src/selection/datum.js","../../../node_modules/d3-selection/src/selection/iterator.js","../../../node_modules/d3-drag/src/noevent.js","../../../node_modules/d3-drag/src/nodrag.js","../../../node_modules/d3-drag/src/constant.js","../../../node_modules/d3-drag/src/event.js","../../../node_modules/d3-drag/src/drag.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/transform/decompose.js","../../../node_modules/d3-interpolate/src/transform/parse.js","../../../node_modules/d3-interpolate/src/transform/index.js","../../../node_modules/d3-interpolate/src/zoom.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/d3-timer/src/timeout.js","../../../node_modules/d3-transition/src/transition/schedule.js","../../../node_modules/d3-transition/src/interrupt.js","../../../node_modules/d3-transition/src/transition/tween.js","../../../node_modules/d3-transition/src/transition/interpolate.js","../../../node_modules/d3-transition/src/transition/attr.js","../../../node_modules/d3-transition/src/transition/attrTween.js","../../../node_modules/d3-transition/src/transition/delay.js","../../../node_modules/d3-transition/src/transition/duration.js","../../../node_modules/d3-transition/src/transition/selection.js","../../../node_modules/d3-transition/src/transition/style.js","../../../node_modules/d3-transition/src/transition/index.js","../../../node_modules/d3-transition/src/transition/select.js","../../../node_modules/d3-transition/src/transition/selectAll.js","../../../node_modules/d3-transition/src/transition/filter.js","../../../node_modules/d3-transition/src/transition/merge.js","../../../node_modules/d3-transition/src/transition/transition.js","../../../node_modules/d3-transition/src/transition/on.js","../../../node_modules/d3-transition/src/transition/styleTween.js","../../../node_modules/d3-transition/src/transition/text.js","../../../node_modules/d3-transition/src/transition/textTween.js","../../../node_modules/d3-transition/src/transition/remove.js","../../../node_modules/d3-transition/src/transition/ease.js","../../../node_modules/d3-transition/src/transition/easeVarying.js","../../../node_modules/d3-transition/src/transition/end.js","../../../node_modules/d3-transition/src/selection/transition.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-transition/src/selection/index.js","../../../node_modules/d3-transition/src/selection/interrupt.js","../../../node_modules/d3-zoom/src/constant.js","../../../node_modules/d3-zoom/src/event.js","../../../node_modules/d3-zoom/src/transform.js","../../../node_modules/d3-zoom/src/noevent.js","../../../node_modules/d3-zoom/src/zoom.js","../src/utils/xypanzoom/utils.ts","../src/utils/xypanzoom/XYPanZoom.ts","../src/utils/xypanzoom/eventhandler.ts","../src/utils/xypanzoom/filter.ts","../src/container/ZoomPane/index.tsx","../src/hooks/useResizeHandler.ts","../src/hooks/useGlobalKeyHandler.ts","../src/utils/changes.ts","../src/utils/graph.ts","../src/components/UserSelection/index.tsx","../src/container/Pane/index.tsx","../src/container/FlowRenderer/index.tsx","../src/hooks/useIsomorphicLayoutEffect.ts","../src/components/BatchProvider/useQueue.ts","../src/components/BatchProvider/index.tsx","../src/hooks/useViewportHelper.ts","../src/hooks/useInkFlow.ts","../src/container/NodeRenderer/useResizeObserver.ts","../src/hooks/useVisibleNodeIds.ts","../src/contexts/NodeIdContext.ts","../src/components/A11yDescriptions/index.tsx","../src/utils/edges/bezier-edge.ts","../src/utils/edges/general.ts","../src/utils/edges/smoothstep-edge.ts","../src/utils/xyhandle/utils.ts","../src/utils/xyhandle/XYHandle.ts","../src/components/Handle/index.tsx","../src/components/NodeWrapper/utils.tsx","../src/components/Nodes/InputNode.tsx","../src/components/Nodes/DefaultNode.tsx","../src/components/Nodes/OutputNode.tsx","../src/components/Nodes/GroupNode.tsx","../src/components/Nodes/utils.ts","../src/utils/xydrag/utils.ts","../src/utils/xydrag/XYDrag.ts","../src/hooks/useMoveSelectedNodes.ts","../src/components/NodeWrapper/index.tsx","../src/components/NodeWrapper/useNodeObserver.ts","../src/hooks/useDrag.ts","../src/container/NodeRenderer/index.tsx","../src/container/EdgeRenderer/MarkerSymbols.tsx","../src/utils/marker.ts","../src/container/EdgeRenderer/MarkerDefinitions.tsx","../src/components/Edges/EdgeText.tsx","../src/components/Edges/BaseEdge.tsx","../src/components/Edges/SimpleBezierEdge.tsx","../src/components/Edges/SmoothStepEdge.tsx","../src/components/Edges/StepEdge.tsx","../src/components/Edges/StraightEdge.tsx","../src/utils/edges/straight-edge.ts","../src/components/Edges/BezierEdge.tsx","../src/components/EdgeWrapper/utils.ts","../src/components/Edges/EdgeAnchor.tsx","../src/components/EdgeWrapper/EdgeUpdateAnchors.tsx","../src/utils/positions.ts","../src/components/EdgeWrapper/index.tsx","../src/container/EdgeRenderer/index.tsx","../src/hooks/useVisibleEdgeIds.ts","../src/container/Viewport/index.tsx","../src/container/GraphView/index.tsx","../src/store/initialState.ts","../src/store/index.ts","../src/components/InkFlowProvider/index.tsx","../src/container/InkFlow/Wrapper.tsx","../src/container/InkFlow/init-values.ts","../src/components/StoreUpdater/index.tsx","../src/container/InkFlow/index.tsx","../src/plugins/Controls/Icons/Plus.tsx","../src/plugins/Controls/Icons/Minus.tsx","../src/plugins/Controls/Icons/FitView.tsx","../src/plugins/Controls/Icons/Lock.tsx","../src/plugins/Controls/Icons/Unlock.tsx","../src/plugins/Controls/ControlButton.tsx","../src/components/Panel/index.tsx","../src/plugins/Controls/Controls.tsx","../src/types/index.ts","../../ink-core/dist/index.esm.js","../src/hooks/useEdgesState.ts","../src/hooks/useNodesState.ts"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, getInitialState, subscribe, destroy };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","import ReactExports from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\nimport { createStore } from 'zustand/vanilla';\n\nconst { useDebugValue } = ReactExports;\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nconst identity = (arg) => arg;\nfunction useStoreWithEqualityFn(api, selector = identity, equalityFn) {\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getInitialState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createWithEqualityFnImpl = (createState, defaultEqualityFn) => {\n const api = createStore(createState);\n const useBoundStoreWithEqualityFn = (selector, equalityFn = defaultEqualityFn) => useStoreWithEqualityFn(api, selector, equalityFn);\n Object.assign(useBoundStoreWithEqualityFn, api);\n return useBoundStoreWithEqualityFn;\n};\nconst createWithEqualityFn = (createState, defaultEqualityFn) => createState ? createWithEqualityFnImpl(createState, defaultEqualityFn) : createWithEqualityFnImpl;\n\nexport { createWithEqualityFn, useStoreWithEqualityFn };\n","import { createContext } from 'react';\n\nimport { createStore } from '../store';\n\nconst StoreContext = createContext<ReturnType<typeof createStore> | null>(null);\n\nexport const Provider = StoreContext.Provider;\nexport default StoreContext;\n","import { CoordinateExtent, HandleType } from '../types/system';\n\nexport const errorMessages = {\n error001: () =>\n '[Ink Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://InkFlow.dev/error#001',\n error002: () =>\n \"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.\",\n error003: (nodeType: string) =>\n `Node type \"${nodeType}\" not found. Using fallback type \"default\".`,\n error004: () =>\n 'The Ink Flow parent container needs a width and a height to render the graph.',\n error005: () => 'Only child nodes can use a parent extent.',\n error006: () => \"Can't create edge. An edge needs a source and a target.\",\n error007: (id: string) => `The old edge with id=${id} does not exist.`,\n error009: (type: string) => `Marker type \"${type}\" doesn't exist.`,\n error008: (\n handleType: HandleType,\n {\n id,\n sourceHandle,\n targetHandle,\n }: { id: string; sourceHandle: string | null; targetHandle: string | null },\n ) =>\n `Couldn't create edge for ${handleType} handle id: \"${\n !sourceHandle ? sourceHandle : targetHandle\n }\", edge id: ${id}.`,\n error010: () =>\n 'Handle: No node id found. Make sure to only use a Handle inside a custom Node.',\n error011: (edgeType: string) =>\n `Edge type \"${edgeType}\" not found. Using fallback type \"default\".`,\n error012: (id: string) =>\n `Node with id \"${id}\" does not exist, it may have been removed. This can happen when a node is deleted before the \"onNodeClick\" handler is called.`,\n};\n\nexport const infiniteExtent: CoordinateExtent = [\n [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY],\n [Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY],\n];\n\nexport const elementSelectionKeys = ['Enter', ' ', 'Escape'];\n","import { useContext, useMemo } from 'react';\nimport {\n UseBoundStoreWithEqualityFn,\n useStoreWithEqualityFn as useZustandStore,\n} from 'zustand/traditional';\nimport { StoreApi } from 'zustand';\nimport type { Edge, Node, InkFlowState } from '../types';\n\nimport StoreContext from '../contexts/StoreContext';\n\nimport { errorMessages } from '../constants/errorMessages';\n\nconst zustandErrorMessage = errorMessages['error001']();\n\n/**\n * Hook for accessing the internal store. Should only be used in rare cases.\n *\n * @public\n * @param selector\n * @param equalityFn\n * @returns The selected state slice\n *\n * @example\n * const nodes = useStore((state: InkFlowState<MyNodeType>) => state.nodes);\n *\n */\nfunction useStore<StateSlice = unknown>(\n selector: (state: InkFlowState) => StateSlice,\n equalityFn?: (a: StateSlice, b: StateSlice) => boolean,\n) {\n const store = useContext(StoreContext);\n\n if (store === null) {\n throw new Error(zustandErrorMessage);\n }\n\n return useZustandStore(store, selector, equalityFn);\n}\n\nfunction useStoreApi<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>() {\n const store = useContext(StoreContext) as UseBoundStoreWithEqualityFn<\n StoreApi<InkFlowState<NodeType, EdgeType>>\n > | null;\n\n if (store === null) {\n throw new Error(zustandErrorMessage);\n }\n\n return useMemo(\n () => ({\n getState: store.getState,\n setState: store.setState,\n subscribe: store.subscribe,\n }),\n [store],\n );\n}\n\nexport { useStore, useStoreApi };\n","import {\n ConnectionLookup,\n CoordinateExtent,\n EdgeBase,\n EdgeLookup,\n InternalNodeBase,\n InternalNodeUpdate,\n NodeBase,\n NodeDimensionChange,\n NodeLookup,\n NodeOrigin,\n NodePositionChange,\n PanZoomInstance,\n ParentLookup,\n Rect,\n Transform,\n XYPosition,\n XYZPosition,\n} from '../types/system';\nimport { ParentExpandChild } from '../types/utils/types';\nimport { getDimensions, getHandleBounds } from './dom';\nimport {\n getBoundsOfRects,\n getNodeDimensions,\n isNumeric,\n nodeToRect,\n} from './general';\n\ntype UpdateNodesOptions<NodeType extends NodeBase> = {\n nodeOrigin?: NodeOrigin;\n elevateNodesOnSelect?: boolean;\n defaults?: Partial<NodeType>;\n checkEquality?: boolean;\n};\n\nexport function updateAbsolutePositions<NodeType extends NodeBase>(\n nodeLookup: Map<string, InternalNodeBase<NodeType>>,\n options: UpdateNodesOptions<NodeType> = {\n nodeOrigin: [0, 0] as NodeOrigin,\n elevateNodesOnSelect: true,\n defaults: {},\n },\n) {\n const selectedNodeZ: number = options?.elevateNodesOnSelect ? 1000 : 0;\n\n for (const [, node] of nodeLookup) {\n const parentId = node.parentId;\n\n if (!parentId) {\n continue;\n }\n\n if (!nodeLookup.has(parentId)) {\n throw new Error(`Parent node ${parentId} not found`);\n }\n\n const parentNode = nodeLookup.get(parentId);\n const { x, y, z } = calculateXYZPosition(\n node,\n nodeLookup,\n {\n ...node.position,\n z:\n (isNumeric(node.zIndex) ? node.zIndex : 0) +\n (node.selected ? selectedNodeZ : 0),\n },\n parentNode?.origin ?? options.nodeOrigin,\n );\n\n const currPosition = node.internals.positionAbsolute;\n const positionChanged = x !== currPosition.x || y !== currPosition.y;\n\n if (positionChanged || z !== node.internals.z) {\n node.internals = {\n ...node.internals,\n positionAbsolute: positionChanged ? { x, y } : currPosition,\n z,\n };\n }\n }\n}\n\nexport function updateNodeInternals<NodeType extends InternalNodeBase>(\n updates: Map<string, InternalNodeUpdate>,\n nodeLookup: NodeLookup<NodeType>,\n parentLookup: ParentLookup<NodeType>,\n domNode: HTMLElement | null,\n nodeOrigin?: NodeOrigin,\n): {\n changes: (NodeDimensionChange | NodePositionChange)[];\n updatedInternals: boolean;\n} {\n const viewportNode = domNode?.querySelector('.xyflow__viewport');\n let updatedInternals = false;\n\n if (!viewportNode) {\n return { changes: [], updatedInternals };\n }\n\n const changes: (NodeDimensionChange | NodePositionChange)[] = [];\n const style = window.getComputedStyle(viewportNode);\n const { m22: zoom } = new window.DOMMatrixReadOnly(style.transform);\n // in this array we collect nodes, that might trigger changes (like expanding parent)\n const parentExpandChildren: ParentExpandChild[] = [];\n\n updates.forEach((update) => {\n const node = nodeLookup.get(update.id);\n\n if (node?.hidden) {\n nodeLookup.set(node.id, {\n ...node,\n internals: {\n ...node.internals,\n handleBounds: undefined,\n },\n });\n updatedInternals = true;\n } else if (node) {\n const dimensions = getDimensions(update.nodeElement);\n const dimensionChanged =\n node.measured.width !== dimensions.width ||\n node.measured.height !== dimensions.height;\n const doUpdate = !!(\n dimensions.width &&\n dimensions.height &&\n (dimensionChanged || !node.internals.handleBounds || update.force)\n );\n\n if (doUpdate) {\n const newNode = {\n ...node,\n measured: dimensions,\n internals: {\n ...node.internals,\n handleBounds: {\n source: getHandleBounds(\n '.source',\n update.nodeElement,\n zoom,\n node.origin || nodeOrigin,\n ),\n target: getHandleBounds(\n '.target',\n update.nodeElement,\n zoom,\n node.origin || nodeOrigin,\n ),\n },\n },\n };\n\n nodeLookup.set(node.id, newNode);\n updatedInternals = true;\n\n if (dimensionChanged) {\n changes.push({\n id: newNode.id,\n type: 'dimensions',\n dimensions,\n });\n\n if (newNode.expandParent && newNode.parentId) {\n parentExpandChildren.push({\n id: newNode.id,\n parentId: newNode.parentId,\n rect: nodeToRect(newNode, newNode.origin || nodeOrigin),\n });\n }\n }\n }\n }\n });\n\n if (parentExpandChildren.length > 0) {\n const parentExpandChanges = handleExpandParent(\n parentExpandChildren,\n nodeLookup,\n parentLookup,\n nodeOrigin,\n );\n changes.push(...parentExpandChanges);\n }\n\n return { changes, updatedInternals };\n}\n\nfunction calculateXYZPosition<NodeType extends NodeBase>(\n node: NodeType,\n nodeLookup: Map<string, InternalNodeBase<NodeType>>,\n result: XYZPosition,\n nodeOrigin: NodeOrigin = [0, 0],\n): XYZPosition {\n if (!node.parentId) {\n return result;\n }\n\n const parent = nodeLookup.get(node.parentId)!;\n const parentPosition = getNodePositionWithOrigin(parent, nodeOrigin).position;\n\n return calculateXYZPosition(\n parent,\n nodeLookup,\n {\n x: (result.x ?? 0) + parentPosition.x,\n y: (result.y ?? 0) + parentPosition.y,\n z:\n (parent.internals.z ?? 0) > (result.z ?? 0)\n ? parent.internals.z ?? 0\n : result.z ?? 0,\n },\n parent.origin || nodeOrigin,\n );\n}\n\nexport const getNodePositionWithOrigin = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): { position: XYPosition; positionAbsolute: XYPosition } => {\n const { width, height } = getNodeDimensions(node);\n const positionAbsolute =\n 'internals' in node ? node.internals.positionAbsolute : node.position;\n const origin = node.origin || nodeOrigin;\n const offsetX = width * origin[0];\n const offsetY = height * origin[1];\n\n return {\n position: {\n x: node.position.x - offsetX,\n y: node.position.y - offsetY,\n },\n positionAbsolute: {\n x: positionAbsolute.x - offsetX,\n y: positionAbsolute.y - offsetY,\n },\n };\n};\n\nexport function updateConnectionLookup(\n connectionLookup: ConnectionLookup,\n edgeLookup: EdgeLookup,\n edges: EdgeBase[],\n) {\n connectionLookup.clear();\n edgeLookup.clear();\n\n for (const edge of edges) {\n const { source, target, sourceHandle = null, targetHandle = null } = edge;\n\n const sourceKey = `${source}-source-${sourceHandle}`;\n const targetKey = `${target}-target-${targetHandle}`;\n\n const prevSource = connectionLookup.get(sourceKey) || new Map();\n const prevTarget = connectionLookup.get(targetKey) || new Map();\n const connection = {\n edgeId: edge.id,\n source,\n target,\n sourceHandle,\n targetHandle,\n };\n\n edgeLookup.set(edge.id, edge);\n connectionLookup.set(\n sourceKey,\n prevSource.set(`${target}-${targetHandle}`, connection),\n );\n connectionLookup.set(\n targetKey,\n prevTarget.set(`${source}-${sourceHandle}`, connection),\n );\n }\n}\n\nexport function adoptUserNodes<NodeType extends NodeBase>(\n nodes: NodeType[],\n nodeLookup: Map<string, InternalNodeBase<NodeType>>,\n parentLookup: Map<string, InternalNodeBase<NodeType>[]>,\n options: UpdateNodesOptions<NodeType> = {\n nodeOrigin: [0, 0] as NodeOrigin,\n elevateNodesOnSelect: true,\n defaults: {},\n checkEquality: true,\n },\n) {\n const tmpLookup = new Map(nodeLookup);\n nodeLookup.clear();\n parentLookup.clear();\n\n const selectedNodeZ: number = options?.elevateNodesOnSelect ? 1000 : 0;\n\n nodes.forEach((userNode) => {\n let internalNode = tmpLookup.get(userNode.id);\n\n if (\n options.checkEquality &&\n userNode === internalNode?.internals.userNode\n ) {\n nodeLookup.set(userNode.id, internalNode);\n } else {\n internalNode = {\n ...options.defaults,\n ...userNode,\n measured: {\n width: userNode.measured?.width,\n height: userNode.measured?.height,\n },\n internals: {\n positionAbsolute: userNode.position,\n handleBounds: internalNode?.internals.handleBounds,\n z:\n (isNumeric(userNode.zIndex) ? userNode.zIndex : 0) +\n (userNode.selected ? selectedNodeZ : 0),\n userNode,\n },\n };\n nodeLookup.set(userNode.id, internalNode);\n }\n\n if (userNode.parentId) {\n const childNodes = parentLookup.get(userNode.parentId);\n if (childNodes) {\n childNodes.push(internalNode);\n } else {\n parentLookup.set(userNode.parentId, [internalNode]);\n }\n }\n });\n\n if (parentLookup.size > 0) {\n updateAbsolutePositions(nodeLookup, options);\n }\n}\n\nexport function handleExpandParent(\n children: ParentExpandChild[],\n nodeLookup: NodeLookup,\n parentLookup: ParentLookup,\n nodeOrigin?: NodeOrigin,\n): (NodeDimensionChange | NodePositionChange)[] {\n const changes: (NodeDimensionChange | NodePositionChange)[] = [];\n const parentExpansions = new Map<\n string,\n { expandedRect: Rect; parent: InternalNodeBase }\n >();\n\n // determine the expanded rectangle the child nodes would take for each parent\n for (const child of children) {\n const parent = nodeLookup.get(child.parentId);\n if (!parent) {\n continue;\n }\n\n const parentRect =\n parentExpansions.get(child.parentId)?.expandedRect ??\n nodeToRect(parent, parent.origin ?? nodeOrigin);\n const expandedRect = getBoundsOfRects(parentRect, child.rect);\n parentExpansions.set(child.parentId, { expandedRect, parent });\n }\n\n if (parentExpansions.size > 0) {\n parentExpansions.forEach(({ expandedRect, parent }, parentId) => {\n // determine the position & dimensions of the parent\n const { position } = getNodePositionWithOrigin(parent, parent.origin);\n const dimensions = getNodeDimensions(parent);\n\n // determine how much the parent expands by moving the position\n const xChange =\n expandedRect.x < position.x\n ? Math.round(Math.abs(position.x - expandedRect.x))\n : 0;\n const yChange =\n expandedRect.y < position.y\n ? Math.round(Math.abs(position.y - expandedRect.y))\n : 0;\n\n if (xChange > 0 || yChange > 0) {\n changes.push({\n id: parentId,\n type: 'position',\n position: {\n x: position.x - xChange,\n y: position.y - yChange,\n },\n });\n\n // We move all child nodes in the oppsite direction\n // so the x,y changes of the parent do not move the children\n const childNodes = parentLookup.get(parentId);\n childNodes?.forEach((childNode) => {\n if (!children.some((child) => child.id === childNode.id)) {\n changes.push({\n id: childNode.id,\n type: 'position',\n position: {\n x: childNode.position.x + xChange,\n y: childNode.position.y + yChange,\n },\n });\n }\n });\n }\n\n if (\n dimensions.width < expandedRect.width ||\n dimensions.height < expandedRect.height\n ) {\n changes.push({\n id: parentId,\n type: 'dimensions',\n setAttributes: true,\n dimensions: {\n width: Math.max(dimensions.width, Math.round(expandedRect.width)),\n height: Math.max(\n dimensions.height,\n Math.round(expandedRect.height),\n ),\n },\n });\n }\n });\n }\n\n return changes;\n}\n\nexport function panBy({\n delta,\n panZoom,\n transform,\n translateExtent,\n width,\n height,\n}: {\n delta: XYPosition;\n panZoom: PanZoomInstance | null;\n transform: Transform;\n translateExtent: CoordinateExtent;\n width: number;\n height: number;\n}) {\n if (!panZoom || (!delta.x && !delta.y)) {\n return false;\n }\n\n const nextViewport = panZoom.setViewportConstrained(\n {\n x: transform[0] + delta.x,\n y: transform[1] + delta.y,\n zoom: transform[2],\n },\n [\n [0, 0],\n [width, height],\n ],\n translateExtent,\n );\n\n const transformChanged =\n !!nextViewport &&\n (nextViewport.x !== transform[0] ||\n nextViewport.y !== transform[1] ||\n nextViewport.k !== transform[2]);\n\n return transformChanged;\n}\n","import { Ref, ReactNode, RefAttributes, forwardRef } from 'react';\nimport {\n XYPosition,\n Transform,\n SnapGrid,\n InternalNodeBase,\n NodeBase,\n NodeOrigin,\n Rect,\n Box,\n CoordinateExtent,\n Viewport,\n Dimensions,\n NodeLookup,\n} from '../types/system';\nimport { Node } from '../types';\nimport { getNodePositionWithOrigin } from './store';\n\nexport const clamp = (val: number, min = 0, max = 1): number =>\n Math.min(Math.max(val, min), max);\n\nexport const clampPosition = (\n position: XYPosition = { x: 0, y: 0 },\n extent: CoordinateExtent,\n) => ({\n x: clamp(position.x, extent[0][0], extent[1][0]),\n y: clamp(position.y, extent[0][1], extent[1][1]),\n});\n\nexport function getNodeDimensions(node: {\n measured?: { width?: number; height?: number };\n width?: number;\n height?: number;\n initialWidth?: number;\n initialHeight?: number;\n}): { width: number; height: number } {\n return {\n width: node.measured?.width ?? node.width ?? node.initialWidth ?? 0,\n height: node.measured?.height ?? node.height ?? node.initialHeight ?? 0,\n };\n}\n\nexport const isNumeric = (n: any): n is number => !isNaN(n) && isFinite(n);\n\nexport const snapPosition = (\n position: XYPosition,\n snapGrid: SnapGrid = [1, 1],\n): XYPosition => {\n return {\n x: snapGrid[0] * Math.round(position.x / snapGrid[0]),\n y: snapGrid[1] * Math.round(position.y / snapGrid[1]),\n };\n};\n\nexport const pointToRendererPoint = (\n { x, y }: XYPosition,\n [tx, ty, tScale]: Transform,\n snapToGrid = false,\n snapGrid: SnapGrid = [1, 1],\n): XYPosition => {\n const position: XYPosition = {\n x: (x - tx) / tScale,\n y: (y - ty) / tScale,\n };\n\n return snapToGrid ? snapPosition(position, snapGrid) : position;\n};\n\nexport const nodeToRect = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): Rect => {\n const { x, y } = getNodePositionWithOrigin(node, nodeOrigin).positionAbsolute;\n\n return {\n x,\n y,\n width: node.measured?.width ?? node.width ?? 0,\n height: node.measured?.height ?? node.height ?? 0,\n };\n};\n\nexport const getBoundsOfBoxes = (box1: Box, box2: Box): Box => ({\n x: Math.min(box1.x, box2.x),\n y: Math.min(box1.y, box2.y),\n x2: Math.max(box1.x2, box2.x2),\n y2: Math.max(box1.y2, box2.y2),\n});\n\nexport const rectToBox = ({ x, y, width, height }: Rect): Box => ({\n x,\n y,\n x2: x + width,\n y2: y + height,\n});\n\nexport const boxToRect = ({ x, y, x2, y2 }: Box): Rect => ({\n x,\n y,\n width: x2 - x,\n height: y2 - y,\n});\n\nexport const nodeToBox = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): Box => {\n const { x, y } = getNodePositionWithOrigin(node, nodeOrigin).positionAbsolute;\n\n return {\n x,\n y,\n x2: x + (node.measured?.width ?? node.width ?? 0),\n y2: y + (node.measured?.height ?? node.height ?? 0),\n };\n};\n\nexport const getBoundsOfRects = (rect1: Rect, rect2: Rect): Rect =>\n boxToRect(getBoundsOfBoxes(rectToBox(rect1), rectToBox(rect2)));\n\nexport function fixedForwardRef<T, P = {}>(\n render: (props: P, ref: Ref<T>) => JSX.Element,\n): (props: P & RefAttributes<T>) => JSX.Element {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return forwardRef(render) as any;\n}\n\nexport const getOverlappingArea = (rectA: Rect, rectB: Rect): number => {\n const xOverlap = Math.max(\n 0,\n Math.min(rectA.x + rectA.width, rectB.x + rectB.width) -\n Math.max(rectA.x, rectB.x),\n );\n const yOverlap = Math.max(\n 0,\n Math.min(rectA.y + rectA.height, rectB.y + rectB.height) -\n Math.max(rectA.y, rectB.y),\n );\n\n return Math.ceil(xOverlap * yOverlap);\n};\n\nexport const getViewportForBounds = (\n bounds: Rect,\n width: number,\n height: number,\n minZoom: number,\n maxZoom: number,\n padding: number,\n): Viewport => {\n const xZoom = width / (bounds.width * (1 + padding));\n const yZoom = height / (bounds.height * (1 + padding));\n const zoom = Math.min(xZoom, yZoom);\n const clampedZoom = clamp(zoom, minZoom, maxZoom);\n const boundsCenterX = bounds.x + bounds.width / 2;\n const boundsCenterY = bounds.y + bounds.height / 2;\n const x = width / 2 - boundsCenterX * clampedZoom;\n const y = height / 2 - boundsCenterY * clampedZoom;\n\n return { x, y, zoom: clampedZoom };\n};\n\nexport function isCoordinateExtent(\n extent?: CoordinateExtent | 'parent',\n): extent is CoordinateExtent {\n return extent !== undefined && extent !== 'parent';\n}\n\nexport function nodeHasDimensions<NodeType extends NodeBase = NodeBase>(\n node: NodeType,\n): boolean {\n return (\n (node.measured?.width ?? node.width ?? node.initialWidth) !== undefined &&\n (node.measured?.height ?? node.height ?? node.initialHeight) !== undefined\n );\n}\n\nconst calcAutoPanVelocity = (\n value: number,\n min: number,\n max: number,\n): number => {\n if (value < min) {\n return clamp(Math.abs(value - min), 1, 50) / 50;\n } else if (value > max) {\n return -clamp(Math.abs(value - max), 1, 50) / 50;\n }\n\n return 0;\n};\n\nexport const calcAutoPan = (pos: XYPosition, bounds: Dimensions): number[] => {\n const xMovement = calcAutoPanVelocity(pos.x, 35, bounds.width - 35) * 20;\n const yMovement = calcAutoPanVelocity(pos.y, 35, bounds.height - 35) * 20;\n\n return [xMovement, yMovement];\n};\n\nexport const getPositionWithOrigin = ({\n x,\n y,\n width,\n height,\n origin = [0, 0],\n}: {\n x: number;\n y: number;\n width: number;\n height: number;\n origin?: NodeOrigin;\n}): XYPosition => {\n if (\n !width ||\n !height ||\n origin[0] < 0 ||\n origin[1] < 0 ||\n origin[0] > 1 ||\n origin[1] > 1\n ) {\n return { x, y };\n }\n\n return {\n x: x - width * origin[0],\n y: y - height * origin[1],\n };\n};\n\nexport const rendererPointToPoint = (\n { x, y }: XYPosition,\n [tx, ty, tScale]: Transform,\n): XYPosition => {\n return {\n x: x * tScale + tx,\n y: y * tScale + ty,\n };\n};\n\nexport const isMacOs = () =>\n typeof navigator !== 'undefined' && navigator?.userAgent?.indexOf('Mac') >= 0;\n\nexport const isNode = <NodeType extends Node = Node>(\n element: unknown,\n): element is NodeType => isNodeBase<NodeType>(element);\n\nexport const isNodeBase = <NodeType extends NodeBase = NodeBase>(\n element: any,\n): element is NodeType =>\n 'id' in element &&\n 'position' in element &&\n !('source' in element) &&\n !('target' in element);\n\n/**\n * Convert child position to aboslute position\n *\n * @internal\n * @param position\n * @param parentId\n * @param nodeLookup\n * @param nodeOrigin\n * @returns an internal node with an absolute position\n */\nexport function evaluateAbsolutePosition(\n position: XYPosition,\n parentId: string,\n nodeLookup: NodeLookup,\n nodeOrigin: NodeOrigin = [0, 0],\n): XYPosition {\n let nextParentId: string | undefined = parentId;\n const positionAbsolute = { ...position };\n\n while (nextParentId) {\n const parent = nodeLookup.get(parentId);\n nextParentId = parent?.parentId;\n\n if (parent) {\n const origin = parent.origin || nodeOrigin;\n const xOffset = (parent.measured.width ?? 0) * origin[0];\n const yOffset = (parent.measured.height ?? 0) * origin[1];\n positionAbsolute.x += parent.position.x - xOffset;\n positionAbsolute.y += parent.position.y - yOffset;\n }\n }\n\n return positionAbsolute;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isRectObject = (obj: any): obj is Rect =>\n isNumeric(obj.width) &&\n isNumeric(obj.height) &&\n isNumeric(obj.x) &&\n isNumeric(obj.y);\n\nexport const devWarn = (id: string, message: string) => {\n // if (process.env.NODE_ENV === 'development') {\n // console.warn(\n // `[Ink Flow]: ${message} Help: https://reactflow.dev/error#${id}`,\n // );\n // }\n};\n","import {\n Transform,\n SnapGrid,\n XYPosition,\n Dimensions,\n NodeOrigin,\n HandleElement,\n Position,\n} from '../types/system';\nimport { pointToRendererPoint, snapPosition } from './general';\n\nexport type GetPointerPositionParams = {\n transform: Transform;\n snapGrid?: SnapGrid;\n snapToGrid?: boolean;\n};\n\nexport function getPointerPosition(\n event: MouseEvent | TouchEvent,\n {\n snapGrid = [0, 0],\n snapToGrid = false,\n transform,\n }: GetPointerPositionParams,\n): XYPosition & { xSnapped: number; ySnapped: number } {\n const { x, y } = getEventPosition(event);\n const pointerPos = pointToRendererPoint({ x, y }, transform);\n const { x: xSnapped, y: ySnapped } = snapToGrid\n ? snapPosition(pointerPos, snapGrid)\n : pointerPos;\n\n // we need the snapped position in order to be able to skip unnecessary drag events\n return {\n xSnapped,\n ySnapped,\n ...pointerPos,\n };\n}\n\nexport const getDimensions = (node: HTMLDivElement): Dimensions => ({\n width: node.offsetWidth,\n height: node.offsetHeight,\n});\n\nexport const getHostForElement = (\n element: HTMLElement,\n): Document | ShadowRoot =>\n (element.getRootNode?.() as Document | ShadowRoot) || window?.document;\n\nconst inputTags = ['INPUT', 'SELECT', 'TEXTAREA'];\n\nexport function isInputDOMNode(event: KeyboardEvent): boolean {\n // using composed path for handling shadow dom\n const target = (event.composedPath?.()?.[0] || event.target) as HTMLElement;\n const isInput =\n inputTags.includes(target?.nodeName) ||\n target?.hasAttribute('contenteditable');\n\n // when an input field is focused we don't want to trigger deletion or movement of nodes\n return isInput || !!target?.closest('.nokey');\n}\n\nexport const isMouseEvent = (\n event: MouseEvent | TouchEvent,\n): event is MouseEvent => 'clientX' in event;\n\nexport const getEventPosition = (\n event: MouseEvent | TouchEvent,\n bounds?: DOMRect,\n) => {\n const isMouse = isMouseEvent(event);\n const evtX = isMouse ? event.clientX : event.touches?.[0].clientX;\n const evtY = isMouse ? event.clientY : event.touches?.[0].clientY;\n\n return {\n x: evtX - (bounds?.left ?? 0),\n y: evtY - (bounds?.top ?? 0),\n };\n};\n\n// The handle bounds are calculated relative to the node element.\n// We store them in the internals object of the node in order to avoid\n// unnecessary recalculations.\nexport const getHandleBounds = (\n selector: string,\n nodeElement: HTMLDivElement,\n zoom: number,\n nodeOrigin: NodeOrigin = [0, 0],\n): HandleElement[] | null => {\n const handles = nodeElement.querySelectorAll(selector);\n\n if (!handles || !handles.length) {\n return null;\n }\n\n const handlesArray = Array.from(handles) as HTMLDivElement[];\n\n // @todo can't we use the node dimensions here?\n const nodeBounds = nodeElement.getBoundingClientRect();\n const nodeOffset = {\n x: nodeBounds.width * nodeOrigin[0],\n y: nodeBounds.height * nodeOrigin[1],\n };\n\n return handlesArray.map((handle): HandleElement => {\n const handleBounds = handle.getBoundingClientRect();\n\n return {\n id: handle.getAttribute('data-handleid'),\n position: handle.getAttribute('data-handlepos') as unknown as Position,\n x: (handleBounds.left - nodeBounds.left - nodeOffset.x) / zoom,\n y: (handleBounds.top - nodeBounds.top - nodeOffset.y) / zoom,\n ...getDimensions(handle),\n };\n });\n};\n","import { useState, useEffect, useRef, useMemo } from 'react';\nimport { KeyCode } from '../types/system';\nimport { isInputDOMNode } from '../utils/dom';\n\ntype Keys = Array<string>;\ntype PressedKeys = Set<string>;\ntype KeyOrCode = 'key' | 'code';\n\nexport type UseKeyPressOptions = {\n target?: Window | Document | HTMLElement | ShadowRoot | null;\n actInsideInputWithModifier?: boolean;\n};\n\nconst defaultDoc = typeof document !== 'undefined' ? document : null;\n\n/**\n * Hook for handling key events.\n *\n * @public\n * @param param.keyCode - The key code (string or array of strings) to use\n * @param param.options - Options\n * @returns boolean\n */\nexport function useKeyPress(\n // the keycode can be a string 'a' or an array of strings ['a', 'a+d']\n // a string means a single key 'a' or a combination when '+' is used 'a+d'\n // an array means different possibilites. Explainer: ['a', 'd+s'] here the\n // user can use the single key 'a' or the combination 'd' + 's'\n keyCode: KeyCode | null = null,\n options: UseKeyPressOptions = {\n target: defaultDoc,\n actInsideInputWithModifier: true,\n },\n): boolean {\n const [keyPressed, setKeyPressed] = useState(false);\n\n // we need to remember if a modifier key is pressed in order to track it\n const modifierPressed = useRef(false);\n\n // we need to remember the pressed keys in order to support combinations\n const pressedKeys = useRef<PressedKeys>(new Set([]));\n\n // keyCodes = array with single keys [['a']] or key combinations [['a', 's']]\n // keysToWatch = array with all keys flattened ['a', 'd', 'ShiftLeft']\n // used to check if we store event.code or event.key. When the code is in the list of keysToWatch\n // we use the code otherwise the key. Explainer: When you press the left \"command\" key, the code is \"MetaLeft\"\n // and the key is \"Meta\". We want users to be able to pass keys and codes so we assume that the key is meant when\n // we can't find it in the list of keysToWatch.\n const [keyCodes, keysToWatch] = useMemo<[Array<Keys>, Keys]>(() => {\n if (keyCode !== null) {\n const keyCodeArr = Array.isArray(keyCode) ? keyCode : [keyCode];\n const keys = keyCodeArr\n .filter((kc) => typeof kc === 'string')\n .map((kc) => kc.split('+'));\n const keysFlat = keys.reduce(\n (res: Keys, item) => res.concat(...item),\n [],\n );\n\n return [keys, keysFlat];\n }\n\n return [[], []];\n }, [keyCode]);\n\n useEffect(() => {\n const target = options?.target || defaultDoc;\n\n if (keyCode !== null) {\n const downHandler = (event: KeyboardEvent) => {\n modifierPressed.current =\n event.ctrlKey || event.metaKey || event.shiftKey;\n const preventAction =\n (!modifierPressed.current ||\n (modifierPressed.current && !options.actInsideInputWithModifier)) &&\n isInputDOMNode(event);\n\n if (preventAction) {\n return false;\n }\n const keyOrCode = useKeyOrCode(event.code, keysToWatch);\n pressedKeys.current.add(event[keyOrCode]);\n\n if (isMatchingKey(keyCodes, pressedKeys.current, false)) {\n event.preventDefault();\n setKeyPressed(true);\n }\n };\n\n const upHandler = (event: KeyboardEvent) => {\n const preventAction =\n (!modifierPressed.current ||\n (modifierPressed.current && !options.actInsideInputWithModifier)) &&\n isInputDOMNode(event);\n\n if (preventAction) {\n return false;\n }\n const keyOrCode = useKeyOrCode(event.code, keysToWatch);\n\n if (isMatchingKey(keyCodes, pressedKeys.current, true)) {\n setKeyPressed(false);\n pressedKeys.current.clear();\n } else {\n pressedKeys.current.delete(event[keyOrCode]);\n }\n\n // fix for Mac: when cmd key is pressed, keyup is not triggered for any other key, see: https://stackoverflow.com/questions/27380018/when-cmd-key-is-kept-pressed-keyup-is-not-triggered-for-any-other-key\n if (event.key === 'Meta') {\n pressedKeys.current.clear();\n }\n\n modifierPressed.current = false;\n };\n\n const resetHandler = () => {\n pressedKeys.current.clear();\n setKeyPressed(false);\n };\n\n target?.addEventListener(\n 'keydown',\n downHandler as EventListenerOrEventListenerObject,\n );\n target?.addEventListener(\n 'keyup',\n upHandler as EventListenerOrEventListenerObject,\n );\n window.addEventListener('blur', resetHandler);\n window.addEventListener('contextmenu', resetHandler);\n\n return () => {\n target?.removeEventListener(\n 'keydown',\n downHandler as EventListenerOrEventListenerObject,\n );\n target?.removeEventListener(\n 'keyup',\n upHandler as EventListenerOrEventListenerObject,\n );\n window.removeEventListener('blur', resetHandler);\n window.removeEventListener('contextmenu', resetHandler);\n };\n }\n }, [keyCode, setKeyPressed]);\n\n return keyPressed;\n}\n\n// utils\n\nfunction isMatchingKey(\n keyCodes: Array<Keys>,\n pressedKeys: PressedKeys,\n isUp: boolean,\n): boolean {\n return (\n keyCodes\n // we only want to compare same sizes of keyCode definitions\n // and pressed keys. When the user specified 'Meta' as a key somewhere\n // this would also be truthy without this filter when user presses 'Meta' + 'r'\n .filter((keys) => isUp || keys.length === pressedKeys.size)\n // since we want to support multiple possibilities only one of the\n // combinations need to be part of the pressed keys\n .some((keys) => keys.every((k) => pressedKeys.has(k)))\n );\n}\n\nfunction useKeyOrCode(eventCode: string, keysToWatch: KeyCode): KeyOrCode {\n return keysToWatch.includes(eventCode) ? 'code' : 'key';\n}\n","function shallow$1(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size)\n return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size)\n return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const keyA of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {\n return false;\n }\n }\n return true;\n}\n\nvar shallow = (objA, objB) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { shallow } from 'zustand/shallow'`.\"\n );\n }\n return shallow$1(objA, objB);\n};\n\nexport { shallow as default, shallow$1 as shallow };\n","import type { CSSProperties } from 'react';\n\nexport const containerStyle: CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n D3DragEvent,\n Selection as D3Selection,\n SubjectPosition,\n ZoomBehavior,\n} from 'd3';\n\nimport type { XYPosition, Rect } from './utils';\nimport type {\n InternalNodeBase,\n NodeBase,\n NodeDragItem,\n NodeOrigin,\n} from './nodes';\nimport type { ConnectingHandle, HandleType } from './handles';\nimport { PanZoomInstance } from './panzoom';\nimport { EdgeBase } from '.';\n\nexport type Project = (position: XYPosition) => XYPosition;\n\nexport type OnMove = (\n event: MouseEvent | TouchEvent | null,\n viewport: Viewport,\n) => void;\nexport type OnMoveStart = OnMove;\nexport type OnMoveEnd = OnMove;\n\nexport type ZoomInOut = (options?: ViewportHelperFunctionOptions) => void;\nexport type ZoomTo = (\n zoomLevel: number,\n options?: ViewportHelperFunctionOptions,\n) => void;\nexport type GetZoom = () => number;\nexport type GetViewport = () => Viewport;\nexport type SetViewport = (\n viewport: Viewport,\n options?: ViewportHelperFunctionOptions,\n) => void;\nexport type SetCenter = (\n x: number,\n y: number,\n options?: SetCenterOptions,\n) => void;\nexport type FitBounds = (bounds: Rect, options?: FitBoundsOptions) => void;\n\nexport type Connection = {\n source: string;\n target: string;\n sourceHandle: string | null;\n targetHandle: string | null;\n};\n\nexport type HandleConnection = Connection & {\n edgeId: string;\n};\n\nexport type ConnectionStatus = 'valid' | 'invalid';\n\nexport enum ConnectionMode {\n Strict = 'strict',\n Loose = 'loose',\n}\n\nexport type OnConnectStartParams = {\n nodeId: string | null;\n handleId: string | null;\n handleType: HandleType | null;\n};\n\nexport type OnConnectStart = (\n event: MouseEvent | TouchEvent,\n params: OnConnectStartParams,\n) => void;\nexport type OnConnect = (connection: Connection) => void;\nexport type OnConnectEnd = (event: MouseEvent | TouchEvent) => void;\n\nexport type IsValidConnection = (edge: EdgeBase | Connection) => boolean;\n\nexport type FitViewParamsBase<NodeType extends NodeBase> = {\n nodeLookup: Map<string, InternalNodeBase<NodeType>>;\n width: number;\n height: number;\n panZoom: PanZoomInstance;\n minZoom: number;\n maxZoom: number;\n nodeOrigin?: NodeOrigin;\n};\n\nexport type FitViewOptionsBase<NodeType extends NodeBase = NodeBase> = {\n padding?: number;\n includeHiddenNodes?: boolean;\n minZoom?: number;\n maxZoom?: number;\n duration?: number;\n nodes?: (NodeType | { id: string })[];\n};\n\nexport type Viewport = {\n x: number;\n y: number;\n zoom: number;\n};\n\nexport type KeyCode = string | Array<string>;\n\nexport type SnapGrid = [number, number];\n\nexport enum PanOnScrollMode {\n Free = 'free',\n Vertical = 'vertical',\n Horizontal = 'horizontal',\n}\n\nexport type ViewportHelperFunctionOptions = {\n duration?: number;\n};\n\nexport type SetCenterOptions = ViewportHelperFunctionOptions & {\n zoom?: number;\n};\n\nexport type FitBoundsOptions = ViewportHelperFunctionOptions & {\n padding?: number;\n};\n\nexport type OnViewportChange = (viewport: Viewport) => void;\n\nexport type D3ZoomInstance = ZoomBehavior<Element, unknown>;\nexport type D3SelectionInstance = D3Selection<\n Element,\n unknown,\n null,\n undefined\n>;\nexport type D3ZoomHandler = (this: Element, event: any, d: unknown) => void;\n\nexport type UpdateNodeInternals = (nodeId: string | string[]) => void;\n\nexport type PanelPosition =\n | 'top-left'\n | 'top-center'\n | 'top-right'\n | 'bottom-left'\n | 'bottom-center'\n | 'bottom-right';\n\nexport type ProOptions = {\n account?: string;\n hideAttribution: boolean;\n};\n\nexport type UseDragEvent = D3DragEvent<HTMLDivElement, null, SubjectPosition>;\n\nexport enum SelectionMode {\n Partial = 'partial',\n Full = 'full',\n}\n\nexport type SelectionRect = Rect & {\n startX: number;\n startY: number;\n};\n\nexport type OnError = (id: string, message: string) => void;\n\nexport type UpdateNodePositions = (\n dragItems: Map<string, NodeDragItem | InternalNodeBase>,\n dragging?: boolean,\n) => void;\nexport type PanBy = (delta: XYPosition) => boolean;\n\nexport type UpdateConnection = (params: {\n connectionPosition: XYPosition | null;\n connectionStatus: ConnectionStatus | null;\n connectionStartHandle: ConnectingHandle | null;\n connectionEndHandle: ConnectingHandle | null;\n}) => void;\n\nexport type ColorModeClass = 'light' | 'dark';\nexport type ColorMode = ColorModeClass | 'system';\n\nexport type ConnectionLookup = Map<string, Map<string, HandleConnection>>;\n\nexport type OnBeforeDeleteBase<\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n> = ({\n nodes,\n edges,\n}: {\n nodes: NodeType[];\n edges: EdgeType[];\n}) => Promise<boolean | { nodes: NodeType[]; edges: EdgeType[] }>;\n","import { Position } from './utils';\n\nexport type EdgeBase<\n EdgeData extends Record<string, unknown> = Record<string, unknown>,\n EdgeType extends string | undefined = string | undefined\n> = {\n /** Unique id of an edge */\n id: string;\n /** Type of an edge defined in edgeTypes */\n type?: EdgeType;\n /** Id of source node */\n source: string;\n /** Id of target node */\n target: string;\n /** Id of source handle\n * only needed if there are multiple handles per node\n */\n sourceHandle?: string | null;\n /** Id of target handle\n * only needed if there are multiple handles per node\n */\n targetHandle?: string | null;\n animated?: boolean;\n hidden?: boolean;\n deletable?: boolean;\n selectable?: boolean;\n /** Arbitrary data passed to an edge */\n data?: EdgeData;\n selected?: boolean;\n /** Set the marker on the beginning of an edge\n * @example 'arrow', 'arrowclosed' or custom marker\n */\n markerStart?: EdgeMarkerType;\n /** Set the marker on the end of an edge\n * @example 'arrow', 'arrowclosed' or custom marker\n */\n markerEnd?: EdgeMarkerType;\n zIndex?: number;\n ariaLabel?: string;\n /** Padding around the edge where interaction is still possible */\n interactionWidth?: number;\n};\n\nexport type SmoothStepPathOptions = {\n offset?: number;\n borderRadius?: number;\n};\n\nexport type StepPathOptions = {\n offset?: number;\n};\n\nexport type BezierPathOptions = {\n curvature?: number;\n};\n\nexport type DefaultEdgeOptionsBase<EdgeType extends EdgeBase> = Omit<\n EdgeType,\n 'id' | 'source' | 'target' | 'sourceHandle' | 'targetHandle' | 'selected'\n>;\n\nexport enum ConnectionLineType {\n Bezier = 'default',\n Straight = 'straight',\n Step = 'step',\n SmoothStep = 'smoothstep',\n SimpleBezier = 'simplebezier',\n}\n\nexport type EdgeMarker = {\n type: MarkerType;\n color?: string;\n width?: number;\n height?: number;\n markerUnits?: string;\n orient?: string;\n strokeWidth?: number;\n};\n\nexport type EdgeMarkerType = string | EdgeMarker;\n\nexport enum MarkerType {\n Arrow = 'arrow',\n ArrowClosed = 'arrowclosed',\n}\n\nexport type MarkerProps = EdgeMarker & {\n id: string;\n};\n\nexport type EdgePosition = {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n sourcePosition: Position;\n targetPosition: Position;\n};\n\nexport type EdgeLookup<EdgeType extends EdgeBase = EdgeBase> = Map<string, EdgeType>;\n","export enum Position {\n Left = 'left',\n Top = 'top',\n Right = 'right',\n Bottom = 'bottom',\n}\n\nexport type XYPosition = {\n x: number;\n y: number;\n};\n\nexport type XYZPosition = XYPosition & { z: number };\n\nexport type Dimensions = {\n width: number;\n height: number;\n};\n\nexport type Rect = Dimensions & XYPosition;\n\nexport type Box = XYPosition & {\n x2: number;\n y2: number;\n};\n\nexport type Transform = [number, number, number];\n\nexport type CoordinateExtent = [[number, number], [number, number]];\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default x => () => x;\n","export default function DragEvent(type, {\n sourceEvent,\n subject,\n target,\n identifier,\n active,\n x, y, dx, dy,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n subject: {value: subject, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n identifier: {value: identifier, enumerable: true, configurable: true},\n active: {value: active, enumerable: true, configurable: true},\n x: {value: x, enumerable: true, configurable: true},\n y: {value: y, enumerable: true, configurable: true},\n dx: {value: dx, enumerable: true, configurable: true},\n dy: {value: dy, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n\nDragEvent.prototype.on = function() {\n var value = this._.on.apply(this._, arguments);\n return value === this._ ? this : value;\n};\n","import {dispatch} from \"d3-dispatch\";\nimport {select, pointer} from \"d3-selection\";\nimport nodrag, {yesdrag} from \"./nodrag.js\";\nimport noevent, {nonpassive, nonpassivecapture, nopropagation} from \"./noevent.js\";\nimport constant from \"./constant.js\";\nimport DragEvent from \"./event.js\";\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter(event) {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultContainer() {\n return this.parentNode;\n}\n\nfunction defaultSubject(event, d) {\n return d == null ? {x: event.x, y: event.y} : d;\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nexport default function() {\n var filter = defaultFilter,\n container = defaultContainer,\n subject = defaultSubject,\n touchable = defaultTouchable,\n gestures = {},\n listeners = dispatch(\"start\", \"drag\", \"end\"),\n active = 0,\n mousedownx,\n mousedowny,\n mousemoving,\n touchending,\n clickDistance2 = 0;\n\n function drag(selection) {\n selection\n .on(\"mousedown.drag\", mousedowned)\n .filter(touchable)\n .on(\"touchstart.drag\", touchstarted)\n .on(\"touchmove.drag\", touchmoved, nonpassive)\n .on(\"touchend.drag touchcancel.drag\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n function mousedowned(event, d) {\n if (touchending || !filter.call(this, event, d)) return;\n var gesture = beforestart(this, container.call(this, event, d), event, d, \"mouse\");\n if (!gesture) return;\n select(event.view)\n .on(\"mousemove.drag\", mousemoved, nonpassivecapture)\n .on(\"mouseup.drag\", mouseupped, nonpassivecapture);\n nodrag(event.view);\n nopropagation(event);\n mousemoving = false;\n mousedownx = event.clientX;\n mousedowny = event.clientY;\n gesture(\"start\", event);\n }\n\n function mousemoved(event) {\n noevent(event);\n if (!mousemoving) {\n var dx = event.clientX - mousedownx, dy = event.clientY - mousedowny;\n mousemoving = dx * dx + dy * dy > clickDistance2;\n }\n gestures.mouse(\"drag\", event);\n }\n\n function mouseupped(event) {\n select(event.view).on(\"mousemove.drag mouseup.drag\", null);\n yesdrag(event.view, mousemoving);\n noevent(event);\n gestures.mouse(\"end\", event);\n }\n\n function touchstarted(event, d) {\n if (!filter.call(this, event, d)) return;\n var touches = event.changedTouches,\n c = container.call(this, event, d),\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = beforestart(this, c, event, d, touches[i].identifier, touches[i])) {\n nopropagation(event);\n gesture(\"start\", event, touches[i]);\n }\n }\n }\n\n function touchmoved(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n noevent(event);\n gesture(\"drag\", event, touches[i]);\n }\n }\n }\n\n function touchended(event) {\n var touches = event.changedTouches,\n n = touches.length, i, gesture;\n\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n for (i = 0; i < n; ++i) {\n if (gesture = gestures[touches[i].identifier]) {\n nopropagation(event);\n gesture(\"end\", event, touches[i]);\n }\n }\n }\n\n function beforestart(that, container, event, d, identifier, touch) {\n var dispatch = listeners.copy(),\n p = pointer(touch || event, container), dx, dy,\n s;\n\n if ((s = subject.call(that, new DragEvent(\"beforestart\", {\n sourceEvent: event,\n target: drag,\n identifier,\n active,\n x: p[0],\n y: p[1],\n dx: 0,\n dy: 0,\n dispatch\n }), d)) == null) return;\n\n dx = s.x - p[0] || 0;\n dy = s.y - p[1] || 0;\n\n return function gesture(type, event, touch) {\n var p0 = p, n;\n switch (type) {\n case \"start\": gestures[identifier] = gesture, n = active++; break;\n case \"end\": delete gestures[identifier], --active; // falls through\n case \"drag\": p = pointer(touch || event, container), n = active; break;\n }\n dispatch.call(\n type,\n that,\n new DragEvent(type, {\n sourceEvent: event,\n subject: s,\n target: drag,\n identifier,\n active: n,\n x: p[0] + dx,\n y: p[1] + dy,\n dx: p[0] - p0[0],\n dy: p[1] - p0[1],\n dispatch\n }),\n d\n );\n };\n }\n\n drag.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), drag) : filter;\n };\n\n drag.container = function(_) {\n return arguments.length ? (container = typeof _ === \"function\" ? _ : constant(_), drag) : container;\n };\n\n drag.subject = function(_) {\n return arguments.length ? (subject = typeof _ === \"function\" ? _ : constant(_), drag) : subject;\n };\n\n drag.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), drag) : touchable;\n };\n\n drag.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? drag : value;\n };\n\n drag.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, drag) : Math.sqrt(clickDistance2);\n };\n\n return drag;\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { type ZoomTransform, zoomIdentity } from 'd3-zoom';\nimport { Viewport, D3SelectionInstance } from '../../types/system';\nimport { isMacOs } from '../general';\n\nexport const viewChanged = (\n prevViewport: Viewport,\n eventViewport: any,\n): boolean =>\n prevViewport.x !== eventViewport.x ||\n prevViewport.y !== eventViewport.y ||\n prevViewport.zoom !== eventViewport.k;\n\nexport const transformToViewport = (transform: ZoomTransform): Viewport => ({\n x: transform.x,\n y: transform.y,\n zoom: transform.k,\n});\n\nexport const viewportToTransform = ({ x, y, zoom }: Viewport): ZoomTransform =>\n zoomIdentity.translate(x, y).scale(zoom);\n\nexport const isWrappedWithClass = (event: any, className: string | undefined) =>\n event.target.closest(`.${className}`);\n\nexport const isRightClickPan = (\n panOnDrag: boolean | number[],\n usedButton: number,\n) => usedButton === 2 && Array.isArray(panOnDrag) && panOnDrag.includes(2);\n\nexport const getD3Transition = (selection: D3SelectionInstance, duration = 0) =>\n typeof duration === 'number' && duration > 0\n ? selection.transition().duration(duration)\n : selection;\n\nexport const wheelDelta = (event: any) => {\n const factor = event.ctrlKey && isMacOs() ? 10 : 1;\n\n return (\n -event.deltaY *\n (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) *\n factor\n );\n};\n","import { type ZoomTransform, zoom, zoomTransform } from 'd3-zoom';\nimport { select } from 'd3-selection';\n\nimport { getD3Transition, viewportToTransform, wheelDelta } from './utils';\nimport {\n createPanOnScrollHandler,\n createPanZoomEndHandler,\n createPanZoomHandler,\n createPanZoomStartHandler,\n createZoomOnScrollHandler,\n} from './eventhandler';\nimport { createFilter } from './filter';\nimport {\n Viewport,\n PanZoomInstance,\n PanZoomTransformOptions,\n PanZoomUpdateOptions,\n CoordinateExtent,\n PanZoomParams,\n} from '../../types/system';\nimport { clamp } from '../general';\n\nexport type ZoomPanValues = {\n isZoomingOrPanning: boolean;\n usedRightMouseButton: boolean;\n prevViewport: Viewport;\n mouseButton: number;\n timerId: ReturnType<typeof setTimeout> | undefined;\n panScrollTimeout: ReturnType<typeof setTimeout> | undefined;\n isPanScrolling: boolean;\n};\n\nexport function XYPanZoom({\n domNode,\n minZoom,\n maxZoom,\n translateExtent,\n viewport,\n onPanZoom,\n onPanZoomStart,\n onPanZoomEnd,\n onTransformChange,\n onDraggingChange,\n}: PanZoomParams): PanZoomInstance {\n const zoomPanValues: ZoomPanValues = {\n isZoomingOrPanning: false,\n usedRightMouseButton: false,\n prevViewport: { x: 0, y: 0, zoom: 0 },\n mouseButton: 0,\n timerId: undefined,\n panScrollTimeout: undefined,\n isPanScrolling: false,\n };\n const bbox = domNode.getBoundingClientRect();\n const d3ZoomInstance = zoom()\n .scaleExtent([minZoom, maxZoom])\n .translateExtent(translateExtent);\n const d3Selection = select(domNode).call(d3ZoomInstance);\n\n setViewportConstrained(\n {\n x: viewport.x,\n y: viewport.y,\n zoom: clamp(viewport.zoom, minZoom, maxZoom),\n },\n [\n [0, 0],\n [bbox.width, bbox.height],\n ],\n translateExtent,\n );\n\n const d3ZoomHandler = d3Selection.on('wheel.zoom')!;\n const d3DblClickZoomHandler = d3Selection.on('dblclick.zoom')!;\n d3ZoomInstance.wheelDelta(wheelDelta);\n\n function setTransform(\n transform: ZoomTransform,\n options?: PanZoomTransformOptions,\n ) {\n if (d3Selection) {\n d3ZoomInstance?.transform(\n getD3Transition(d3Selection, options?.duration),\n transform,\n );\n }\n }\n\n // public functions\n function update({\n noWheelClassName,\n noPanClassName,\n onPaneContextMenu,\n userSelectionActive,\n panOnScroll,\n panOnDrag,\n panOnScrollMode,\n panOnScrollSpeed,\n preventScrolling,\n zoomOnPinch,\n zoomOnScroll,\n zoomOnDoubleClick,\n zoomActivationKeyPressed,\n lib,\n }: PanZoomUpdateOptions) {\n if (userSelectionActive && !zoomPanValues.isZoomingOrPanning) {\n destroy();\n }\n\n const isPanOnScroll =\n panOnScroll && !zoomActivationKeyPressed && !userSelectionActive;\n\n const wheelHandler = isPanOnScroll\n ? createPanOnScrollHandler({\n zoomPanValues,\n noWheelClassName,\n d3Selection,\n d3Zoom: d3ZoomInstance,\n panOnScrollMode,\n panOnScrollSpeed,\n zoomOnPinch,\n onPanZoomStart,\n onPanZoom,\n onPanZoomEnd,\n })\n : createZoomOnScrollHandler({\n noWheelClassName,\n preventScrolling,\n d3ZoomHandler,\n });\n\n d3Selection.on('wheel.zoom', wheelHandler, { passive: false });\n\n if (!userSelectionActive) {\n // pan zoom start\n const startHandler = createPanZoomStartHandler({\n zoomPanValues,\n onDraggingChange,\n onPanZoomStart,\n });\n d3ZoomInstance.on('start', startHandler);\n\n // pan zoom\n const panZoomHandler = createPanZoomHandler({\n zoomPanValues,\n panOnDrag,\n onPaneContextMenu: !!onPaneContextMenu,\n onPanZoom,\n onTransformChange,\n });\n d3ZoomInstance.on('zoom', panZoomHandler);\n\n // pan zoom end\n const panZoomEndHandler = createPanZoomEndHandler({\n zoomPanValues,\n panOnDrag,\n panOnScroll,\n onPaneContextMenu,\n onPanZoomEnd,\n onDraggingChange,\n });\n d3ZoomInstance.on('end', panZoomEndHandler);\n }\n\n const filter = createFilter({\n zoomActivationKeyPressed,\n panOnDrag,\n zoomOnScroll,\n panOnScroll,\n zoomOnDoubleClick,\n zoomOnPinch,\n userSelectionActive,\n noPanClassName,\n noWheelClassName,\n lib,\n });\n d3ZoomInstance.filter(filter);\n\n // We cannot add zoomOnDoubleClick to the filter above because\n // double tapping on touch screens circumvents the filter and\n // dblclick.zoom is fired on the selection directly\n if (zoomOnDoubleClick) {\n d3Selection.on('dblclick.zoom', d3DblClickZoomHandler);\n } else {\n d3Selection.on('dblclick.zoom', null);\n }\n }\n\n function destroy() {\n d3ZoomInstance.on('zoom', null);\n }\n\n function setViewportConstrained(\n viewport: Viewport,\n extent: CoordinateExtent,\n translateExtent: CoordinateExtent,\n ): ZoomTransform | undefined {\n const nextTransform = viewportToTransform(viewport);\n const contrainedTransform = d3ZoomInstance?.constrain()(\n nextTransform,\n extent,\n translateExtent,\n );\n\n if (contrainedTransform) {\n setTransform(contrainedTransform);\n }\n\n return contrainedTransform;\n }\n\n function setViewport(viewport: Viewport, options?: PanZoomTransformOptions) {\n const nextTransform = viewportToTransform(viewport);\n\n setTransform(nextTransform, options);\n\n return nextTransform;\n }\n\n function syncViewport(viewport: Viewport) {\n if (d3Selection) {\n const nextTransform = viewportToTransform(viewport);\n const currentTransform = d3Selection.property('__zoom');\n\n if (\n currentTransform.k !== viewport.zoom ||\n currentTransform.x !== viewport.x ||\n currentTransform.y !== viewport.y\n ) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n d3ZoomInstance?.transform(d3Selection, nextTransform, null, {\n sync: true,\n });\n }\n }\n }\n\n function getViewport(): Viewport {\n const transform = d3Selection\n ? zoomTransform(d3Selection.node() as Element)\n : { x: 0, y: 0, k: 1 };\n return { x: transform.x, y: transform.y, zoom: transform.k };\n }\n\n function scaleTo(zoom: number, options?: PanZoomTransformOptions) {\n if (d3Selection) {\n d3ZoomInstance?.scaleTo(\n getD3Transition(d3Selection, options?.duration),\n zoom,\n );\n }\n }\n\n function scaleBy(factor: number, options?: PanZoomTransformOptions) {\n if (d3Selection) {\n d3ZoomInstance?.scaleBy(\n getD3Transition(d3Selection, options?.duration),\n factor,\n );\n }\n }\n\n function setScaleExtent(scaleExtent: [number, number]) {\n d3ZoomInstance?.scaleExtent(scaleExtent);\n }\n\n function setTranslateExtent(translateExtent: CoordinateExtent) {\n d3ZoomInstance?.translateExtent(translateExtent);\n }\n\n return {\n update,\n destroy,\n setViewport,\n setViewportConstrained,\n getViewport,\n scaleTo,\n scaleBy,\n setScaleExtent,\n setTranslateExtent,\n syncViewport,\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport type { D3ZoomEvent } from 'd3-zoom';\nimport { pointer } from 'd3-selection';\n\nimport {\n isRightClickPan,\n isWrappedWithClass,\n transformToViewport,\n viewChanged,\n wheelDelta,\n} from './utils';\nimport { ZoomPanValues } from './XYPanZoom';\nimport {\n D3SelectionInstance,\n D3ZoomInstance,\n PanOnScrollMode,\n OnPanZoom,\n D3ZoomHandler,\n OnDraggingChange,\n OnTransformChange,\n} from '../../types/system';\nimport { isMacOs } from '../general';\n\nexport type PanOnScrollParams = {\n zoomPanValues: ZoomPanValues;\n noWheelClassName: string;\n d3Selection: D3SelectionInstance;\n d3Zoom: D3ZoomInstance;\n panOnScrollMode: PanOnScrollMode;\n panOnScrollSpeed: number;\n zoomOnPinch: boolean;\n onPanZoomStart?: OnPanZoom;\n onPanZoom?: OnPanZoom;\n onPanZoomEnd?: OnPanZoom;\n};\n\nexport type ZoomOnScrollParams = {\n noWheelClassName: string;\n preventScrolling: boolean;\n d3ZoomHandler: D3ZoomHandler;\n};\n\nexport type PanZoomStartParams = {\n zoomPanValues: ZoomPanValues;\n onDraggingChange: OnDraggingChange;\n onPanZoomStart?: OnPanZoom;\n};\n\nexport type PanZoomParams = {\n zoomPanValues: ZoomPanValues;\n panOnDrag: boolean | number[];\n onPaneContextMenu: boolean;\n onTransformChange: OnTransformChange;\n onPanZoom?: OnPanZoom;\n};\n\nexport type PanZoomEndParams = {\n zoomPanValues: ZoomPanValues;\n panOnDrag: boolean | number[];\n panOnScroll: boolean;\n onDraggingChange: (isDragging: boolean) => void;\n onPanZoomEnd?: OnPanZoom;\n onPaneContextMenu?: (event: any) => void;\n};\n\nexport function createPanOnScrollHandler({\n zoomPanValues,\n noWheelClassName,\n d3Selection,\n d3Zoom,\n panOnScrollMode,\n panOnScrollSpeed,\n zoomOnPinch,\n onPanZoomStart,\n onPanZoom,\n onPanZoomEnd,\n}: PanOnScrollParams) {\n return (event: any) => {\n if (isWrappedWithClass(event, noWheelClassName)) {\n return false;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n\n const currentZoom = d3Selection.property('__zoom').k || 1;\n\n // macos sets ctrlKey=true for pinch gesture on a trackpad\n if (event.ctrlKey && zoomOnPinch) {\n const point = pointer(event);\n const pinchDelta = wheelDelta(event);\n const zoom = currentZoom * Math.pow(2, pinchDelta);\n // @ts-ignore\n d3Zoom.scaleTo(d3Selection, zoom, point, event);\n\n return;\n }\n\n // increase scroll speed in firefox\n // firefox: deltaMode === 1; chrome: deltaMode === 0\n const deltaNormalize = event.deltaMode === 1 ? 20 : 1;\n let deltaX =\n panOnScrollMode === PanOnScrollMode.Vertical\n ? 0\n : event.deltaX * deltaNormalize;\n let deltaY =\n panOnScrollMode === PanOnScrollMode.Horizontal\n ? 0\n : event.deltaY * deltaNormalize;\n\n // this enables vertical scrolling with shift + scroll on windows\n if (\n !isMacOs() &&\n event.shiftKey &&\n panOnScrollMode !== PanOnScrollMode.Vertical\n ) {\n deltaX = event.deltaY * deltaNormalize;\n deltaY = 0;\n }\n\n d3Zoom.translateBy(\n d3Selection,\n -(deltaX / currentZoom) * panOnScrollSpeed,\n -(deltaY / currentZoom) * panOnScrollSpeed,\n // @ts-ignore\n { internal: true },\n );\n\n const nextViewport = transformToViewport(d3Selection.property('__zoom'));\n\n clearTimeout(zoomPanValues.panScrollTimeout);\n\n // for pan on scroll we need to handle the event calls on our own\n // we can't use the start, zoom and end events from d3-zoom\n // because start and move gets called on every scroll event and not once at the beginning\n if (!zoomPanValues.isPanScrolling) {\n zoomPanValues.isPanScrolling = true;\n\n onPanZoomStart?.(event, nextViewport);\n }\n\n if (zoomPanValues.isPanScrolling) {\n onPanZoom?.(event, nextViewport);\n\n zoomPanValues.panScrollTimeout = setTimeout(() => {\n onPanZoomEnd?.(event, nextViewport);\n\n zoomPanValues.isPanScrolling = false;\n }, 150);\n }\n };\n}\n\nexport function createZoomOnScrollHandler({\n noWheelClassName,\n preventScrolling,\n d3ZoomHandler,\n}: ZoomOnScrollParams) {\n return function (this: Element, event: any, d: unknown) {\n // we still want to enable pinch zooming even if preventScrolling is set to false\n const preventZoom =\n !preventScrolling && event.type === 'wheel' && !event.ctrlKey;\n\n if (preventZoom || isWrappedWithClass(event, noWheelClassName)) {\n return null;\n }\n\n event.preventDefault();\n\n d3ZoomHandler.call(this, event, d);\n };\n}\n\nexport function createPanZoomStartHandler({\n zoomPanValues,\n onDraggingChange,\n onPanZoomStart,\n}: PanZoomStartParams) {\n return (event: D3ZoomEvent<HTMLDivElement, any>) => {\n if (event.sourceEvent?.internal) {\n return;\n }\n\n const viewport = transformToViewport(event.transform);\n\n // we need to remember it here, because it's always 0 in the \"zoom\" event\n zoomPanValues.mouseButton = event.sourceEvent?.button || 0;\n zoomPanValues.isZoomingOrPanning = true;\n zoomPanValues.prevViewport = viewport;\n\n if (event.sourceEvent?.type === 'mousedown') {\n onDraggingChange(true);\n }\n\n if (onPanZoomStart) {\n onPanZoomStart?.(event.sourceEvent as MouseEvent | TouchEvent, viewport);\n }\n };\n}\n\nexport function createPanZoomHandler({\n zoomPanValues,\n panOnDrag,\n onPaneContextMenu,\n onTransformChange,\n onPanZoom,\n}: PanZoomParams) {\n return (event: D3ZoomEvent<HTMLDivElement, any>) => {\n zoomPanValues.usedRightMouseButton = !!(\n onPaneContextMenu &&\n isRightClickPan(panOnDrag, zoomPanValues.mouseButton ?? 0)\n );\n\n if (!event.sourceEvent?.sync) {\n onTransformChange([\n event.transform.x,\n event.transform.y,\n event.transform.k,\n ]);\n }\n\n if (onPanZoom && !event.sourceEvent?.internal) {\n onPanZoom?.(\n event.sourceEvent as MouseEvent | TouchEvent,\n transformToViewport(event.transform),\n );\n }\n };\n}\n\nexport function createPanZoomEndHandler({\n zoomPanValues,\n panOnDrag,\n panOnScroll,\n onDraggingChange,\n onPanZoomEnd,\n onPaneContextMenu,\n}: PanZoomEndParams) {\n return (event: D3ZoomEvent<HTMLDivElement, any>) => {\n if (event.sourceEvent?.internal) {\n return;\n }\n\n zoomPanValues.isZoomingOrPanning = false;\n\n if (\n onPaneContextMenu &&\n isRightClickPan(panOnDrag, zoomPanValues.mouseButton ?? 0) &&\n !zoomPanValues.usedRightMouseButton &&\n event.sourceEvent\n ) {\n onPaneContextMenu(event.sourceEvent);\n }\n zoomPanValues.usedRightMouseButton = false;\n\n onDraggingChange(false);\n\n if (\n onPanZoomEnd &&\n viewChanged(zoomPanValues.prevViewport, event.transform)\n ) {\n const viewport = transformToViewport(event.transform);\n zoomPanValues.prevViewport = viewport;\n\n clearTimeout(zoomPanValues.timerId);\n zoomPanValues.timerId = setTimeout(\n () => {\n onPanZoomEnd?.(\n event.sourceEvent as MouseEvent | TouchEvent,\n viewport,\n );\n },\n // we need a setTimeout for panOnScroll to supress multiple end events fired during scroll\n panOnScroll ? 150 : 0,\n );\n }\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isWrappedWithClass } from './utils';\n\nexport type FilterParams = {\n zoomActivationKeyPressed: boolean;\n zoomOnScroll: boolean;\n zoomOnPinch: boolean;\n panOnDrag: boolean | number[];\n panOnScroll: boolean;\n zoomOnDoubleClick: boolean;\n userSelectionActive: boolean;\n noWheelClassName: string;\n noPanClassName: string;\n lib: string;\n};\n\nexport function createFilter({\n zoomActivationKeyPressed,\n zoomOnScroll,\n zoomOnPinch,\n panOnDrag,\n panOnScroll,\n zoomOnDoubleClick,\n userSelectionActive,\n noWheelClassName,\n noPanClassName,\n lib,\n}: FilterParams) {\n return (event: any): boolean => {\n const zoomScroll = zoomActivationKeyPressed || zoomOnScroll;\n const pinchZoom = zoomOnPinch && event.ctrlKey;\n\n if (\n event.button === 1 &&\n event.type === 'mousedown' &&\n (isWrappedWithClass(event, `${lib}-flow__node`) || isWrappedWithClass(event, `${lib}-flow__edge`))\n ) {\n return true;\n }\n\n // if all interactions are disabled, we prevent all zoom events\n if (!panOnDrag && !zoomScroll && !panOnScroll && !zoomOnDoubleClick && !zoomOnPinch) {\n return false;\n }\n\n // during a selection we prevent all other interactions\n if (userSelectionActive) {\n return false;\n }\n\n // if the target element is inside an element with the nowheel class, we prevent zooming\n if (isWrappedWithClass(event, noWheelClassName) && event.type === 'wheel') {\n return false;\n }\n\n // if the target element is inside an element with the nopan class, we prevent panning\n if (\n isWrappedWithClass(event, noPanClassName) &&\n (event.type !== 'wheel' || (panOnScroll && event.type === 'wheel' && !zoomActivationKeyPressed))\n ) {\n return false;\n }\n\n if (!zoomOnPinch && event.ctrlKey && event.type === 'wheel') {\n return false;\n }\n\n // when there is no scroll handling enabled, we prevent all wheel events\n if (!zoomScroll && !panOnScroll && !pinchZoom && event.type === 'wheel') {\n return false;\n }\n\n // if the pane is not movable, we prevent dragging it with mousestart or touchstart\n if (!panOnDrag && (event.type === 'mousedown' || event.type === 'touchstart')) {\n return false;\n }\n\n // if the pane is only movable using allowed clicks\n if (Array.isArray(panOnDrag) && !panOnDrag.includes(event.button) && event.type === 'mousedown') {\n return false;\n }\n\n // We only allow right clicks if pan on drag is set to right click\n const buttonAllowed =\n (Array.isArray(panOnDrag) && panOnDrag.includes(event.button)) || !event.button || event.button <= 1;\n\n // default filter for d3-zoom\n return (!event.ctrlKey || event.type === 'wheel') && buttonAllowed;\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useRef } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { containerStyle } from '../../styles/utils';\nimport type { FlowRendererProps } from '../FlowRenderer';\nimport { InkFlowState } from '../../types';\nimport {\n PanOnScrollMode,\n PanZoomInstance,\n Transform,\n} from '../../types/system';\nimport { useKeyPress } from '../../hooks/useKeyPress';\nimport { useResizeHandler } from '../../hooks/useResizeHandler';\nimport { XYPanZoom } from '../../utils/xypanzoom';\n\ntype ZoomPaneProps = Omit<\n FlowRendererProps,\n | 'deleteKeyCode'\n | 'selectionKeyCode'\n | 'multiSelectionKeyCode'\n | 'noDragClassName'\n | 'disableKeyboardA11y'\n | 'selectionOnDrag'\n> & {\n isControlledViewport: boolean;\n};\n\nconst selector = (s: InkFlowState) => ({\n userSelectionActive: s.userSelectionActive,\n lib: s.lib,\n});\n\nexport function ZoomPane({\n onPaneContextMenu,\n zoomOnScroll = true,\n zoomOnPinch = true,\n panOnScroll = false,\n panOnScrollSpeed = 0.5,\n panOnScrollMode = PanOnScrollMode.Free,\n zoomOnDoubleClick = true,\n panOnDrag = true,\n defaultViewport,\n translateExtent,\n minZoom,\n maxZoom,\n zoomActivationKeyCode,\n preventScrolling = true,\n children,\n noWheelClassName,\n noPanClassName,\n onViewportChange,\n isControlledViewport,\n}: ZoomPaneProps) {\n const store = useStoreApi();\n const zoomPane = useRef<HTMLDivElement>(null);\n const { userSelectionActive, lib } = useStore(selector, shallow);\n const zoomActivationKeyPressed = useKeyPress(zoomActivationKeyCode);\n const panZoom = useRef<PanZoomInstance>();\n\n useResizeHandler(zoomPane);\n\n useEffect(() => {\n if (zoomPane.current) {\n panZoom.current = XYPanZoom({\n domNode: zoomPane.current,\n minZoom,\n maxZoom,\n translateExtent,\n viewport: defaultViewport,\n onTransformChange: (transform: Transform) => {\n onViewportChange?.({\n x: transform[0],\n y: transform[1],\n zoom: transform[2],\n });\n\n if (!isControlledViewport) {\n store.setState({ transform });\n }\n },\n onDraggingChange: (paneDragging: boolean) =>\n store.setState({ paneDragging }),\n onPanZoomStart: (event, vp) => {\n const { onViewportChangeStart, onMoveStart } = store.getState();\n onMoveStart?.(event, vp);\n onViewportChangeStart?.(vp);\n },\n onPanZoom: (event, vp) => {\n const { onViewportChange, onMove } = store.getState();\n onMove?.(event, vp);\n onViewportChange?.(vp);\n },\n onPanZoomEnd: (event, vp) => {\n const { onViewportChangeEnd, onMoveEnd } = store.getState();\n onMoveEnd?.(event, vp);\n onViewportChangeEnd?.(vp);\n },\n });\n\n const { x, y, zoom } = panZoom.current!.getViewport();\n\n store.setState({\n panZoom: panZoom.current,\n transform: [x, y, zoom],\n domNode: zoomPane.current.closest('.ink-flow') as HTMLDivElement,\n });\n\n return () => {\n panZoom.current?.destroy();\n };\n }\n }, []);\n\n useEffect(() => {\n panZoom.current?.update({\n onPaneContextMenu,\n zoomOnScroll,\n zoomOnPinch,\n panOnScroll,\n panOnScrollSpeed,\n panOnScrollMode,\n zoomOnDoubleClick,\n panOnDrag,\n zoomActivationKeyPressed,\n preventScrolling,\n noPanClassName,\n userSelectionActive,\n noWheelClassName,\n lib,\n });\n }, [\n onPaneContextMenu,\n zoomOnScroll,\n zoomOnPinch,\n panOnScroll,\n panOnScrollSpeed,\n panOnScrollMode,\n zoomOnDoubleClick,\n panOnDrag,\n zoomActivationKeyPressed,\n preventScrolling,\n noPanClassName,\n userSelectionActive,\n noWheelClassName,\n lib,\n ]);\n\n return (\n <div className=\"ink-flow__renderer\" ref={zoomPane} style={containerStyle}>\n {children}\n </div>\n );\n}\n","import { useEffect, type MutableRefObject } from 'react';\n\nimport { useStoreApi } from '../hooks/useStore';\nimport { errorMessages } from '../constants';\nimport { getDimensions } from '../utils/dom';\n\n/**\n * Hook for handling resize events.\n *\n * @internal\n */\nexport function useResizeHandler(\n domNode: MutableRefObject<HTMLDivElement | null>,\n): void {\n const store = useStoreApi();\n\n useEffect(() => {\n const updateDimensions = () => {\n if (!domNode.current) {\n return false;\n }\n const size = getDimensions(domNode.current!);\n\n if (size.height === 0 || size.width === 0) {\n store.getState().onError?.('004', errorMessages['error004']());\n }\n\n store.setState({ width: size.width || 500, height: size.height || 500 });\n };\n\n if (domNode.current) {\n updateDimensions();\n window.addEventListener('resize', updateDimensions);\n\n const resizeObserver = new ResizeObserver(() => updateDimensions());\n resizeObserver.observe(domNode.current);\n\n return () => {\n window.removeEventListener('resize', updateDimensions);\n\n if (resizeObserver && domNode.current) {\n resizeObserver.unobserve(domNode.current);\n }\n };\n }\n }, []);\n}\n","import { useEffect } from 'react';\n\nimport { useStoreApi } from '../hooks/useStore';\nimport { useKeyPress, UseKeyPressOptions } from './useKeyPress';\nimport { Edge, Node } from '../types';\nimport { KeyCode } from '../types/system';\n\nconst selected = (item: Node | Edge) => item.selected;\n\nconst deleteKeyOptions: UseKeyPressOptions = {\n actInsideInputWithModifier: false,\n};\n\n/**\n * Hook for handling global key events.\n *\n * @internal\n */\nexport function useGlobalKeyHandler({\n deleteKeyCode,\n multiSelectionKeyCode,\n}: {\n deleteKeyCode: KeyCode | null;\n multiSelectionKeyCode: KeyCode | null;\n}): void {\n const store = useStoreApi();\n // const { deleteElements } = useInkFlow();\n\n const deleteKeyPressed = useKeyPress(deleteKeyCode, deleteKeyOptions);\n const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode);\n\n useEffect(() => {\n if (deleteKeyPressed) {\n const { edges, nodes } = store.getState();\n // deleteElements({\n // nodes: nodes.filter(selected),\n // edges: edges.filter(selected),\n // });\n store.setState({ nodesSelectionActive: false });\n }\n }, [deleteKeyPressed]);\n\n useEffect(() => {\n store.setState({ multiSelectionActive: multiSelectionKeyPressed });\n }, [multiSelectionKeyPressed]);\n}\n","import { Edge, InternalNode, Node } from '../types';\nimport {\n EdgeChange,\n EdgeLookup,\n EdgeRemoveChange,\n EdgeSelectionChange,\n NodeChange,\n NodeLookup,\n NodeRemoveChange,\n NodeSelectionChange,\n} from '../types/system';\n\nfunction applyChange(change: any, element: any): any {\n switch (change.type) {\n case 'select': {\n element.selected = change.selected;\n break;\n }\n\n case 'position': {\n if (typeof change.position !== 'undefined') {\n element.position = change.position;\n }\n\n if (typeof change.dragging !== 'undefined') {\n element.dragging = change.dragging;\n }\n\n break;\n }\n\n case 'dimensions': {\n if (typeof change.dimensions !== 'undefined') {\n element.measured ??= {};\n element.measured.width = change.dimensions.width;\n element.measured.height = change.dimensions.height;\n\n if (change.setAttributes) {\n element.width = change.dimensions.width;\n element.height = change.dimensions.height;\n }\n }\n\n if (typeof change.resizing === 'boolean') {\n element.resizing = change.resizing;\n }\n\n break;\n }\n }\n}\n\nfunction applyChanges(changes: any[], elements: any[]): any[] {\n const updatedElements: any[] = [];\n // By storing a map of changes for each element, we can a quick lookup as we\n // iterate over the elements array!\n const changesMap = new Map<any, any[]>();\n\n for (const change of changes) {\n if (change.type === 'add') {\n updatedElements.push(change.item);\n continue;\n } else if (change.type === 'remove' || change.type === 'replace') {\n // For a 'remove' change we can safely ignore any other changes queued for\n // the same element, it's going to be removed anyway!\n changesMap.set(change.id, [change]);\n } else {\n const elementChanges = changesMap.get(change.id);\n\n if (elementChanges) {\n // If we have some changes queued already, we can do a mutable update of\n // that array and save ourselves some copying.\n elementChanges.push(change);\n } else {\n changesMap.set(change.id, [change]);\n }\n }\n }\n\n for (const element of elements) {\n const changes = changesMap.get(element.id);\n\n // When there are no changes for an element we can just push it unmodified,\n // no need to copy it.\n if (!changes) {\n updatedElements.push(element);\n continue;\n }\n\n // If we have a 'remove' change queued, it'll be the only change in the array\n if (changes[0].type === 'remove') {\n continue;\n }\n\n if (changes[0].type === 'replace') {\n updatedElements.push({ ...changes[0].item });\n continue;\n }\n\n // For other types of changes, we want to start with a shallow copy of the\n // object so React knows this element has changed. Sequential changes will\n /// each _mutate_ this object, so there's only ever one copy.\n const updatedElement = { ...element };\n\n for (const change of changes) {\n applyChange(change, updatedElement);\n }\n\n updatedElements.push(updatedElement);\n }\n\n return updatedElements;\n}\n\nexport function applyEdgeChanges<EdgeType extends Edge = Edge>(\n changes: EdgeChange<EdgeType>[],\n edges: EdgeType[],\n): EdgeType[] {\n return applyChanges(changes, edges) as EdgeType[];\n}\n\nexport function applyNodeChanges<NodeType extends Node = Node>(\n changes: NodeChange<NodeType>[],\n nodes: NodeType[],\n): NodeType[] {\n return applyChanges(changes, nodes) as NodeType[];\n}\n\nexport function createSelectionChange(\n id: string,\n selected: boolean,\n): NodeSelectionChange | EdgeSelectionChange {\n return {\n id,\n type: 'select',\n selected,\n };\n}\n\nexport function getSelectionChanges(\n items: Map<string, any>,\n selectedIds: Set<string> = new Set(),\n mutateItem = false,\n): NodeSelectionChange[] | EdgeSelectionChange[] {\n const changes: NodeSelectionChange[] | EdgeSelectionChange[] = [];\n\n for (const [id, item] of items) {\n const willBeSelected = selectedIds.has(id);\n\n // we don't want to set all items to selected=false on the first selection\n if (\n !(item.selected === undefined && !willBeSelected) &&\n item.selected !== willBeSelected\n ) {\n if (mutateItem) {\n // this hack is needed for nodes. When the user dragged a node, it's selected.\n // When another node gets dragged, we need to deselect the previous one,\n // in order to have only one selected node at a time - the onNodesChange callback comes too late here :/\n item.selected = willBeSelected;\n }\n changes.push(createSelectionChange(item.id, willBeSelected));\n }\n }\n\n return changes;\n}\n\nexport function getElementsDiffChanges({\n items,\n lookup,\n}: {\n items: Node[] | undefined;\n lookup: NodeLookup<InternalNode<Node>>;\n}): NodeChange[];\nexport function getElementsDiffChanges({\n items,\n lookup,\n}: {\n items: Edge[] | undefined;\n lookup: EdgeLookup;\n}): EdgeChange[];\nexport function getElementsDiffChanges({\n items = [],\n lookup,\n}: {\n items: any[] | undefined;\n lookup: Map<string, any>;\n}): any[] {\n const changes: any[] = [];\n const itemsLookup = new Map<string, any>(\n items.map((item) => [item.id, item]),\n );\n\n for (const item of items) {\n const lookupItem = lookup.get(item.id);\n const storeItem = lookupItem?.internals?.userNode ?? lookupItem;\n\n if (storeItem !== undefined && storeItem !== item) {\n changes.push({ id: item.id, item: item, type: 'replace' });\n }\n\n if (storeItem === undefined) {\n changes.push({ item: item, type: 'add' });\n }\n }\n\n for (const [id] of lookup) {\n const nextNode = itemsLookup.get(id);\n\n if (nextNode === undefined) {\n changes.push({ id, type: 'remove' });\n }\n }\n\n return changes;\n}\n\nexport function elementToRemoveChange<T extends Node | Edge>(\n item: T,\n): NodeRemoveChange | EdgeRemoveChange {\n return {\n id: item.id,\n type: 'remove',\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n boxToRect,\n clampPosition,\n getBoundsOfBoxes,\n getOverlappingArea,\n nodeToRect,\n pointToRendererPoint,\n getViewportForBounds,\n isCoordinateExtent,\n getNodeDimensions,\n nodeToBox,\n} from './general';\n\nimport { errorMessages } from '../constants';\nimport {\n EdgeBase,\n NodeBase,\n InternalNodeBase,\n NodeOrigin,\n XYPosition,\n Rect,\n NodeDragItem,\n Transform,\n FitViewParamsBase,\n FitViewOptionsBase,\n CoordinateExtent,\n NodeLookup,\n OnError,\n OnBeforeDeleteBase,\n} from '../types/system';\n\n/**\n * Test whether an object is useable as an Edge\n * @public\n * @remarks In TypeScript this is a type guard that will narrow the type of whatever you pass in to Edge if it returns true\n * @param element - The element to test\n * @returns A boolean indicating whether the element is an Edge\n */\nexport const isEdgeBase = <EdgeType extends EdgeBase = EdgeBase>(\n element: any,\n): element is EdgeType =>\n 'id' in element && 'source' in element && 'target' in element;\n\n/**\n * Test whether an object is useable as a Node\n * @public\n * @remarks In TypeScript this is a type guard that will narrow the type of whatever you pass in to Node if it returns true\n * @param element - The element to test\n * @returns A boolean indicating whether the element is an Node\n */\nexport const isNodeBase = <NodeType extends NodeBase = NodeBase>(\n element: any,\n): element is NodeType =>\n 'id' in element &&\n 'position' in element &&\n !('source' in element) &&\n !('target' in element);\n\nexport const isInternalNodeBase = <\n NodeType extends InternalNodeBase = InternalNodeBase,\n>(\n element: any,\n): element is NodeType =>\n 'id' in element &&\n 'internals' in element &&\n !('source' in element) &&\n !('target' in element);\n\n/**\n * Pass in a node, and get connected nodes where edge.source === node.id\n * @public\n * @param node - The node to get the connected nodes from\n * @param nodes - The array of all nodes\n * @param edges - The array of all edges\n * @returns An array of nodes that are connected over eges where the source is the given node\n */\nexport const getOutgoers = <\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>(\n node: NodeType | { id: string },\n nodes: NodeType[],\n edges: EdgeType[],\n): NodeType[] => {\n if (!node.id) {\n return [];\n }\n\n const outgoerIds = new Set();\n edges.forEach((edge) => {\n if (edge.source === node.id) {\n outgoerIds.add(edge.target);\n }\n });\n\n return nodes.filter((n) => outgoerIds.has(n.id));\n};\n\n/**\n * Pass in a node, and get connected nodes where edge.target === node.id\n * @public\n * @param node - The node to get the connected nodes from\n * @param nodes - The array of all nodes\n * @param edges - The array of all edges\n * @returns An array of nodes that are connected over eges where the target is the given node\n */\nexport const getIncomers = <\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>(\n node: NodeType | { id: string },\n nodes: NodeType[],\n edges: EdgeType[],\n): NodeType[] => {\n if (!node.id) {\n return [];\n }\n const incomersIds = new Set();\n edges.forEach((edge) => {\n if (edge.target === node.id) {\n incomersIds.add(edge.source);\n }\n });\n\n return nodes.filter((n) => incomersIds.has(n.id));\n};\n\nexport const getNodePositionWithOrigin = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): { position: XYPosition; positionAbsolute: XYPosition } => {\n const { width, height } = getNodeDimensions(node);\n const positionAbsolute =\n 'internals' in node ? node.internals.positionAbsolute : node.position;\n const origin = node.origin || nodeOrigin;\n const offsetX = width * origin[0];\n const offsetY = height * origin[1];\n\n return {\n position: {\n x: node.position.x - offsetX,\n y: node.position.y - offsetY,\n },\n positionAbsolute: {\n x: positionAbsolute.x - offsetX,\n y: positionAbsolute.y - offsetY,\n },\n };\n};\n\nexport type GetNodesBoundsParams = {\n nodeOrigin?: NodeOrigin;\n};\n\n/**\n * Determines a bounding box that contains all given nodes in an array\n * @public\n * @remarks Useful when combined with {@link getViewportForBounds} to calculate the correct transform to fit the given nodes in a viewport.\n * @param nodes - Nodes to calculate the bounds for\n * @param params.nodeOrigin - Origin of the nodes: [0, 0] - top left, [0.5, 0.5] - center\n * @returns Bounding box enclosing all nodes\n */\nexport const getNodesBounds = (\n nodes: NodeBase[],\n params: GetNodesBoundsParams = { nodeOrigin: [0, 0] },\n): Rect => {\n if (nodes.length === 0) {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n\n const box = nodes.reduce(\n (currBox, node) => {\n const nodeBox = nodeToBox(node, params.nodeOrigin);\n return getBoundsOfBoxes(currBox, nodeBox);\n },\n { x: Infinity, y: Infinity, x2: -Infinity, y2: -Infinity },\n );\n\n return boxToRect(box);\n};\n\nexport type GetInternalNodesBoundsParams<NodeType> = {\n nodeOrigin?: NodeOrigin;\n useRelativePosition?: boolean;\n filter?: (node: NodeType) => boolean;\n};\n\n/**\n * Determines a bounding box that contains all given nodes in an array\n * @internal\n */\nexport const getInternalNodesBounds = <\n NodeType extends InternalNodeBase | NodeDragItem,\n>(\n nodeLookup: Map<string, NodeType>,\n params: GetInternalNodesBoundsParams<NodeType> = {\n nodeOrigin: [0, 0],\n },\n): Rect => {\n if (nodeLookup.size === 0) {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n\n let box = { x: Infinity, y: Infinity, x2: -Infinity, y2: -Infinity };\n\n nodeLookup.forEach((node) => {\n if (params.filter == undefined || params.filter(node)) {\n const nodeBox = nodeToBox(node as InternalNodeBase, params.nodeOrigin);\n box = getBoundsOfBoxes(box, nodeBox);\n }\n });\n\n return boxToRect(box);\n};\n\nexport const getNodesInside = <NodeType extends NodeBase = NodeBase>(\n nodes: Map<string, InternalNodeBase<NodeType>>,\n rect: Rect,\n [tx, ty, tScale]: Transform = [0, 0, 1],\n partially = false,\n // set excludeNonSelectableNodes if you want to pay attention to the nodes \"selectable\" attribute\n excludeNonSelectableNodes = false,\n nodeOrigin: NodeOrigin = [0, 0],\n): InternalNodeBase<NodeType>[] => {\n const paneRect = {\n ...pointToRendererPoint(rect, [tx, ty, tScale]),\n width: rect.width / tScale,\n height: rect.height / tScale,\n };\n\n const visibleNodes: InternalNodeBase<NodeType>[] = [];\n\n for (const [, node] of nodes) {\n const { measured, selectable = true, hidden = false } = node;\n const width = measured.width ?? node.width ?? node.initialWidth ?? null;\n const height = measured.height ?? node.height ?? node.initialHeight ?? null;\n\n if ((excludeNonSelectableNodes && !selectable) || hidden) {\n continue;\n }\n\n const overlappingArea = getOverlappingArea(\n paneRect,\n nodeToRect(node, nodeOrigin),\n );\n const notInitialized = width === null || height === null;\n\n const partiallyVisible = partially && overlappingArea > 0;\n const area = (width ?? 0) * (height ?? 0);\n const isVisible =\n notInitialized || partiallyVisible || overlappingArea >= area;\n\n if (isVisible || node.dragging) {\n visibleNodes.push(node);\n }\n }\n\n return visibleNodes;\n};\n\n/**\n * Get all connecting edges for a given set of nodes\n * @param nodes - Nodes you want to get the connected edges for\n * @param edges - All edges\n * @returns Array of edges that connect any of the given nodes with each other\n */\nexport const getConnectedEdges = <\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>(\n nodes: NodeType[],\n edges: EdgeType[],\n): EdgeType[] => {\n const nodeIds = new Set();\n nodes.forEach((node) => {\n nodeIds.add(node.id);\n });\n\n return edges.filter(\n (edge) => nodeIds.has(edge.source) || nodeIds.has(edge.target),\n );\n};\n\nexport function fitView<\n Params extends FitViewParamsBase<NodeBase>,\n Options extends FitViewOptionsBase<NodeBase>,\n>(\n {\n nodeLookup,\n width,\n height,\n panZoom,\n minZoom,\n maxZoom,\n nodeOrigin = [0, 0],\n }: Params,\n options?: Options,\n) {\n const filteredNodes: InternalNodeBase[] = [];\n const optionNodeIds = options?.nodes\n ? new Set(options.nodes.map((node) => node.id))\n : null;\n\n nodeLookup.forEach((n) => {\n const isVisible =\n n.measured.width &&\n n.measured.height &&\n (options?.includeHiddenNodes || !n.hidden);\n\n if (isVisible && (!optionNodeIds || optionNodeIds.has(n.id))) {\n filteredNodes.push(n);\n }\n });\n\n if (filteredNodes.length > 0) {\n const bounds = getNodesBounds(filteredNodes, { nodeOrigin });\n\n const viewport = getViewportForBounds(\n bounds,\n width,\n height,\n options?.minZoom ?? minZoom,\n options?.maxZoom ?? maxZoom,\n options?.padding ?? 0.1,\n );\n\n panZoom.setViewport(viewport, { duration: options?.duration });\n\n return true;\n }\n\n return false;\n}\n\n/**\n * This function clamps the passed extend by the node's width and height.\n * This is needed to prevent the node from being dragged outside of its extent.\n *\n * @param node\n * @param extent\n * @returns\n */\nfunction clampNodeExtent<NodeType extends NodeBase>(\n node: NodeType,\n extent?: CoordinateExtent | 'parent',\n): CoordinateExtent | 'parent' | undefined {\n if (!extent || extent === 'parent') {\n return extent;\n }\n return [\n extent[0],\n [\n extent[1][0] - (node.measured?.width ?? 0),\n extent[1][1] - (node.measured?.height ?? 0),\n ],\n ];\n}\n\n/**\n * This function calculates the next position of a node, taking into account the node's extent, parent node, and origin.\n *\n * @internal\n * @returns position, positionAbsolute\n */\nexport function calculateNodePosition<NodeType extends NodeBase>({\n nodeId,\n nextPosition,\n nodeLookup,\n nodeOrigin = [0, 0],\n nodeExtent,\n onError,\n}: {\n nodeId: string;\n nextPosition: XYPosition;\n nodeLookup: NodeLookup<InternalNodeBase<NodeType>>;\n nodeOrigin?: NodeOrigin;\n nodeExtent?: CoordinateExtent;\n onError?: OnError;\n}): { position: XYPosition; positionAbsolute: XYPosition } {\n const node = nodeLookup.get(nodeId)!;\n const parentNode = node.parentId ? nodeLookup.get(node.parentId) : undefined;\n const { x: parentX, y: parentY } = parentNode\n ? getNodePositionWithOrigin(parentNode, parentNode.origin || nodeOrigin)\n .positionAbsolute\n : { x: 0, y: 0 };\n\n let currentExtent = clampNodeExtent(node, node.extent || nodeExtent);\n\n if (node.extent === 'parent' && !node.expandParent) {\n if (!parentNode) {\n onError?.('005', errorMessages['error005']());\n } else {\n const nodeWidth = node.measured.width;\n const nodeHeight = node.measured.height;\n const parentWidth = parentNode.measured.width;\n const parentHeight = parentNode.measured.height;\n\n if (nodeWidth && nodeHeight && parentWidth && parentHeight) {\n const currNodeOrigin = node.origin || nodeOrigin;\n const extentX = parentX + nodeWidth * currNodeOrigin[0];\n const extentY = parentY + nodeHeight * currNodeOrigin[1];\n\n currentExtent = [\n [extentX, extentY],\n [\n extentX + parentWidth - nodeWidth,\n extentY + parentHeight - nodeHeight,\n ],\n ];\n }\n }\n } else if (parentNode && isCoordinateExtent(node.extent)) {\n currentExtent = [\n [node.extent[0][0] + parentX, node.extent[0][1] + parentY],\n [node.extent[1][0] + parentX, node.extent[1][1] + parentY],\n ];\n }\n\n const positionAbsolute = isCoordinateExtent(currentExtent)\n ? clampPosition(nextPosition, currentExtent)\n : nextPosition;\n\n return {\n position: {\n x: positionAbsolute.x - parentX,\n y: positionAbsolute.y - parentY,\n },\n positionAbsolute,\n };\n}\n\n/**\n * Pass in nodes & edges to delete, get arrays of nodes and edges that actually can be deleted\n * @internal\n * @param param.nodesToRemove - The nodes to remove\n * @param param.edgesToRemove - The edges to remove\n * @param param.nodes - All nodes\n * @param param.edges - All edges\n * @param param.onBeforeDelete - Callback to check which nodes and edges can be deleted\n * @returns nodes: nodes that can be deleted, edges: edges that can be deleted\n */\nexport async function getElementsToRemove<\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>({\n nodesToRemove = [],\n edgesToRemove = [],\n nodes,\n edges,\n onBeforeDelete,\n}: {\n nodesToRemove: Partial<NodeType>[];\n edgesToRemove: Partial<EdgeType>[];\n nodes: NodeType[];\n edges: EdgeType[];\n onBeforeDelete?: OnBeforeDeleteBase<NodeType, EdgeType>;\n}): Promise<{\n nodes: NodeType[];\n edges: EdgeType[];\n}> {\n const nodeIds = new Set(nodesToRemove.map((node) => node.id));\n const matchingNodes: NodeType[] = [];\n\n for (const node of nodes) {\n if (node.deletable === false) {\n continue;\n }\n\n const isIncluded = nodeIds.has(node.id);\n const parentHit =\n !isIncluded &&\n node.parentId &&\n matchingNodes.find((n) => n.id === node.parentId);\n\n if (isIncluded || parentHit) {\n matchingNodes.push(node);\n }\n }\n\n const edgeIds = new Set(edgesToRemove.map((edge) => edge.id));\n const deletableEdges = edges.filter((edge) => edge.deletable !== false);\n const connectedEdges = getConnectedEdges(matchingNodes, deletableEdges);\n const matchingEdges: EdgeType[] = connectedEdges;\n\n for (const edge of deletableEdges) {\n const isIncluded = edgeIds.has(edge.id);\n\n if (isIncluded && !matchingEdges.find((e) => e.id === edge.id)) {\n matchingEdges.push(edge);\n }\n }\n\n if (!onBeforeDelete) {\n return {\n edges: matchingEdges,\n nodes: matchingNodes,\n };\n }\n\n const onBeforeDeleteResult = await onBeforeDelete({\n nodes: matchingNodes,\n edges: matchingEdges,\n });\n\n if (typeof onBeforeDeleteResult === 'boolean') {\n return onBeforeDeleteResult\n ? { edges: matchingEdges, nodes: matchingNodes }\n : { edges: [], nodes: [] };\n }\n\n return onBeforeDeleteResult;\n}\n","import { shallow } from 'zustand/shallow';\n\nimport { useStore } from '../../hooks/useStore';\nimport { InkFlowState } from '../../types';\n\nconst selector = (s: InkFlowState) => ({\n userSelectionActive: s.userSelectionActive,\n userSelectionRect: s.userSelectionRect,\n});\n\nexport function UserSelection() {\n const { userSelectionActive, userSelectionRect } = useStore(\n selector,\n shallow,\n );\n const isActive = userSelectionActive && userSelectionRect;\n\n if (!isActive) {\n return null;\n }\n\n return (\n <div\n className=\"ink-flow__selection ink-flow__container\"\n style={{\n width: userSelectionRect.width,\n height: userSelectionRect.height,\n transform: `translate(${userSelectionRect.x}px, ${userSelectionRect.y}px)`,\n }}\n />\n );\n}\n","/**\n * The user selection rectangle gets displayed when a user drags the mouse while pressing shift\n */\n\nimport {\n useRef,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from 'react';\nimport { shallow } from 'zustand/shallow';\nimport cc from 'classnames';\n\nimport { containerStyle } from '../../styles/utils';\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { InkFlowProps, InkFlowState } from '../../types';\nimport { SelectionMode, NodeChange, EdgeChange } from '../../types/system';\nimport { getSelectionChanges } from '../../utils/changes';\nimport { getEventPosition } from '../../utils/dom';\nimport { getNodesInside } from '../../utils/graph';\nimport { UserSelection } from '../../components/UserSelection';\n\ntype PaneProps = {\n isSelecting: boolean;\n children: ReactNode;\n} & Partial<\n Pick<\n InkFlowProps,\n | 'selectionMode'\n | 'panOnDrag'\n | 'onSelectionStart'\n | 'onSelectionEnd'\n | 'onPaneClick'\n | 'onPaneContextMenu'\n | 'onPaneScroll'\n | 'onPaneMouseEnter'\n | 'onPaneMouseMove'\n | 'onPaneMouseLeave'\n >\n>;\n\nconst wrapHandler = (\n handler: React.MouseEventHandler | undefined,\n containerRef: React.MutableRefObject<HTMLDivElement | null>,\n): React.MouseEventHandler => {\n return (event: ReactMouseEvent) => {\n if (event.target !== containerRef.current) {\n return;\n }\n handler?.(event);\n };\n};\n\nconst selector = (s: InkFlowState) => ({\n userSelectionActive: s.userSelectionActive,\n elementsSelectable: s.elementsSelectable,\n dragging: s.paneDragging,\n});\n\nexport function Pane({\n isSelecting,\n selectionMode,\n panOnDrag,\n onSelectionStart,\n onSelectionEnd,\n onPaneClick,\n onPaneContextMenu,\n onPaneScroll,\n onPaneMouseEnter,\n onPaneMouseMove,\n onPaneMouseLeave,\n children,\n}: PaneProps) {\n const container = useRef<HTMLDivElement | null>(null);\n const store = useStoreApi();\n const prevSelectedNodesCount = useRef<number>(0);\n const prevSelectedEdgesCount = useRef<number>(0);\n const containerBounds = useRef<DOMRect>();\n const edgeIdLookup = useRef<Map<string, Set<string>>>(new Map());\n\n const { userSelectionActive, elementsSelectable, dragging } = useStore(\n selector,\n shallow,\n );\n\n const resetUserSelection = () => {\n store.setState({ userSelectionActive: false, userSelectionRect: null });\n\n prevSelectedNodesCount.current = 0;\n prevSelectedEdgesCount.current = 0;\n };\n\n const onClick = (event: ReactMouseEvent) => {\n onPaneClick?.(event);\n store.getState().resetSelectedElements();\n store.setState({ nodesSelectionActive: false });\n };\n\n const onContextMenu = (event: ReactMouseEvent) => {\n if (Array.isArray(panOnDrag) && panOnDrag?.includes(2)) {\n event.preventDefault();\n return;\n }\n\n onPaneContextMenu?.(event);\n };\n\n const onWheel = onPaneScroll\n ? (event: React.WheelEvent) => onPaneScroll(event)\n : undefined;\n\n const onMouseDown = (event: ReactMouseEvent): void => {\n const { resetSelectedElements, domNode, edgeLookup } = store.getState();\n containerBounds.current = domNode?.getBoundingClientRect();\n\n if (\n !elementsSelectable ||\n !isSelecting ||\n event.button !== 0 ||\n event.target !== container.current ||\n !containerBounds.current\n ) {\n return;\n }\n\n edgeIdLookup.current = new Map();\n\n for (const [id, edge] of edgeLookup) {\n edgeIdLookup.current.set(\n edge.source,\n edgeIdLookup.current.get(edge.source)?.add(id) || new Set([id]),\n );\n edgeIdLookup.current.set(\n edge.target,\n edgeIdLookup.current.get(edge.target)?.add(id) || new Set([id]),\n );\n }\n\n const { x, y } = getEventPosition(\n event.nativeEvent,\n containerBounds.current,\n );\n\n resetSelectedElements();\n\n store.setState({\n userSelectionRect: {\n width: 0,\n height: 0,\n startX: x,\n startY: y,\n x,\n y,\n },\n });\n\n onSelectionStart?.(event);\n };\n\n const onMouseMove = (event: ReactMouseEvent): void => {\n const {\n userSelectionRect,\n edgeLookup,\n transform,\n nodeOrigin,\n nodeLookup,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = store.getState();\n\n if (!isSelecting || !containerBounds.current || !userSelectionRect) {\n return;\n }\n\n const { x: mouseX, y: mouseY } = getEventPosition(\n event.nativeEvent,\n containerBounds.current,\n );\n const { startX, startY } = userSelectionRect;\n\n const nextUserSelectRect = {\n startX,\n startY,\n x: mouseX < startX ? mouseX : startX,\n y: mouseY < startY ? mouseY : startY,\n width: Math.abs(mouseX - startX),\n height: Math.abs(mouseY - startY),\n };\n\n const selectedNodes = getNodesInside(\n nodeLookup,\n nextUserSelectRect,\n transform,\n false,\n true,\n nodeOrigin,\n );\n\n const selectedEdgeIds = new Set<string>();\n const selectedNodeIds = new Set<string>();\n\n for (const selectedNode of selectedNodes) {\n selectedNodeIds.add(selectedNode.id);\n\n const edgeIds = edgeIdLookup.current.get(selectedNode.id);\n\n if (edgeIds) {\n for (const edgeId of edgeIds) {\n selectedEdgeIds.add(edgeId);\n }\n }\n }\n\n if (prevSelectedNodesCount.current !== selectedNodeIds.size) {\n prevSelectedNodesCount.current = selectedNodeIds.size;\n const changes = getSelectionChanges(\n nodeLookup,\n selectedNodeIds,\n true,\n ) as NodeChange[];\n triggerNodeChanges(changes);\n }\n\n if (prevSelectedEdgesCount.current !== selectedEdgeIds.size) {\n prevSelectedEdgesCount.current = selectedEdgeIds.size;\n const changes = getSelectionChanges(\n edgeLookup,\n selectedEdgeIds,\n ) as EdgeChange[];\n triggerEdgeChanges(changes);\n }\n\n store.setState({\n userSelectionRect: nextUserSelectRect,\n userSelectionActive: true,\n nodesSelectionActive: false,\n });\n };\n\n const onMouseUp = (event: ReactMouseEvent) => {\n if (event.button !== 0) {\n return;\n }\n const { userSelectionRect } = store.getState();\n // We only want to trigger click functions when in selection mode if\n // the user did not move the mouse.\n if (\n !userSelectionActive &&\n userSelectionRect &&\n event.target === container.current\n ) {\n onClick?.(event);\n }\n\n store.setState({\n nodesSelectionActive: prevSelectedNodesCount.current > 0,\n });\n\n resetUserSelection();\n onSelectionEnd?.(event);\n };\n\n const onMouseLeave = (event: ReactMouseEvent) => {\n if (userSelectionActive) {\n store.setState({\n nodesSelectionActive: prevSelectedNodesCount.current > 0,\n });\n onSelectionEnd?.(event);\n }\n\n resetUserSelection();\n };\n\n const hasActiveSelection =\n elementsSelectable && (isSelecting || userSelectionActive);\n\n return (\n <div\n className={cc([\n 'ink-flow__pane',\n { draggable: panOnDrag, dragging, selection: isSelecting },\n ])}\n onClick={hasActiveSelection ? undefined : wrapHandler(onClick, container)}\n onContextMenu={wrapHandler(onContextMenu, container)}\n onWheel={wrapHandler(onWheel, container)}\n onMouseEnter={hasActiveSelection ? undefined : onPaneMouseEnter}\n onMouseDown={hasActiveSelection ? onMouseDown : undefined}\n onMouseMove={hasActiveSelection ? onMouseMove : onPaneMouseMove}\n onMouseUp={hasActiveSelection ? onMouseUp : undefined}\n onMouseLeave={hasActiveSelection ? onMouseLeave : onPaneMouseLeave}\n ref={container}\n style={containerStyle}\n >\n {children}\n <UserSelection />\n </div>\n );\n}\n","import { memo, type ReactNode } from 'react';\n\nimport { useStore } from '../../hooks/useStore';\nimport { GraphViewProps } from '../GraphView';\nimport { InkFlowState, Node } from '../../types';\nimport { useKeyPress } from '../../hooks/useKeyPress';\nimport { ZoomPane } from '../ZoomPane';\nimport { useGlobalKeyHandler } from '../../hooks/useGlobalKeyHandler';\nimport { Pane } from '../Pane';\n\nexport type FlowRendererProps<NodeType extends Node = Node> = Omit<\n GraphViewProps<NodeType>,\n | 'snapToGrid'\n | 'nodeTypes'\n | 'edgeTypes'\n | 'snapGrid'\n | 'connectionLineType'\n | 'connectionLineContainerStyle'\n | 'arrowHeadColor'\n | 'onlyRenderVisibleElements'\n | 'selectNodesOnDrag'\n | 'defaultMarkerColor'\n | 'rfId'\n | 'nodeOrigin'\n> & {\n isControlledViewport: boolean;\n children: ReactNode;\n};\n\nconst selector = (s: InkFlowState) => {\n return {\n nodesSelectionActive: s.nodesSelectionActive,\n userSelectionActive: s.userSelectionActive,\n };\n};\n\nfunction FlowRendererComponent<NodeType extends Node = Node>({\n children,\n onPaneClick,\n onPaneMouseEnter,\n onPaneMouseMove,\n onPaneMouseLeave,\n onPaneContextMenu,\n onPaneScroll,\n deleteKeyCode,\n selectionKeyCode,\n selectionOnDrag,\n selectionMode,\n onSelectionStart,\n onSelectionEnd,\n multiSelectionKeyCode,\n panActivationKeyCode,\n zoomActivationKeyCode,\n elementsSelectable,\n zoomOnScroll,\n zoomOnPinch,\n panOnScroll: _panOnScroll,\n panOnScrollSpeed,\n panOnScrollMode,\n zoomOnDoubleClick,\n panOnDrag: _panOnDrag,\n defaultViewport,\n translateExtent,\n minZoom,\n maxZoom,\n preventScrolling,\n onSelectionContextMenu,\n noWheelClassName,\n noPanClassName,\n disableKeyboardA11y,\n onViewportChange,\n isControlledViewport,\n}: FlowRendererProps<NodeType>) {\n const { nodesSelectionActive, userSelectionActive } = useStore(selector);\n const selectionKeyPressed = useKeyPress(selectionKeyCode);\n const panActivationKeyPressed = useKeyPress(panActivationKeyCode);\n\n const panOnDrag = panActivationKeyPressed || _panOnDrag;\n const panOnScroll = panActivationKeyPressed || _panOnScroll;\n const isSelecting =\n selectionKeyPressed ||\n userSelectionActive ||\n (selectionOnDrag && panOnDrag !== true);\n\n useGlobalKeyHandler({ deleteKeyCode, multiSelectionKeyCode });\n\n return (\n <ZoomPane\n onPaneContextMenu={onPaneContextMenu}\n elementsSelectable={elementsSelectable}\n zoomOnScroll={zoomOnScroll}\n zoomOnPinch={zoomOnPinch}\n panOnScroll={panOnScroll}\n panOnScrollSpeed={panOnScrollSpeed}\n panOnScrollMode={panOnScrollMode}\n zoomOnDoubleClick={zoomOnDoubleClick}\n panOnDrag={!selectionKeyPressed && panOnDrag}\n defaultViewport={defaultViewport}\n translateExtent={translateExtent}\n minZoom={minZoom}\n maxZoom={maxZoom}\n zoomActivationKeyCode={zoomActivationKeyCode}\n preventScrolling={preventScrolling}\n noWheelClassName={noWheelClassName}\n noPanClassName={noPanClassName}\n onViewportChange={onViewportChange}\n isControlledViewport={isControlledViewport}\n >\n <Pane\n onSelectionStart={onSelectionStart}\n onSelectionEnd={onSelectionEnd}\n onPaneClick={onPaneClick}\n onPaneMouseEnter={onPaneMouseEnter}\n onPaneMouseMove={onPaneMouseMove}\n onPaneMouseLeave={onPaneMouseLeave}\n onPaneContextMenu={onPaneContextMenu}\n onPaneScroll={onPaneScroll}\n panOnDrag={panOnDrag}\n isSelecting={!!isSelecting}\n selectionMode={selectionMode}\n >\n {children}\n {/* {nodesSelectionActive && (\n <NodesSelection\n onSelectionContextMenu={onSelectionContextMenu}\n noPanClassName={noPanClassName}\n disableKeyboardA11y={disableKeyboardA11y}\n />\n )} */}\n </Pane>\n </ZoomPane>\n );\n}\n\nFlowRendererComponent.displayName = 'FlowRenderer';\n\nexport const FlowRenderer = memo(\n FlowRendererComponent,\n) as typeof FlowRendererComponent;\n","import { useEffect, useLayoutEffect } from 'react';\n\n// we need this hook to prevent a warning when using ink-flow in SSR\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n","import { useState } from 'react';\n\nimport { Queue, QueueItem } from './types';\nimport { useIsomorphicLayoutEffect } from '../../hooks/useIsomorphicLayoutEffect';\n\n/**\n * This hook returns a queue that can be used to batch updates.\n *\n * @param runQueue - a function that gets called when the queue is flushed\n * @internal\n *\n * @returns a Queue object\n */\nexport function useQueue<T>(runQueue: (items: QueueItem<T>[]) => void) {\n // Because we're using a ref above, we need some way to let React know when to\n // actually process the queue. We flip this bit of state to `true` any time we\n // mutate the queue and then flip it back to `false` after flushing the queue.\n const [shouldFlush, setShouldFlush] = useState(false);\n\n // A reference of all the batched updates to process before the next render. We\n // want a reference here so multiple synchronous calls to `setNodes` etc can be\n // batched together.\n const [queue] = useState(() => createQueue<T>(() => setShouldFlush(true)));\n\n // Layout effects are guaranteed to run before the next render which means we\n // shouldn't run into any issues with stale state or weird issues that come from\n // rendering things one frame later than expected (we used to use `setTimeout`).\n useIsomorphicLayoutEffect(() => {\n // Because we need to flip the state back to false after flushing, this should\n // trigger the hook again (!). If the hook is being run again we know that any\n // updates should have been processed by now and we can safely clear the queue\n // and bail early.\n if (!shouldFlush) {\n queue.reset();\n return;\n }\n\n const queueItems = queue.get();\n\n if (queueItems.length) {\n runQueue(queueItems);\n\n queue.reset();\n }\n\n // Beacuse we're using reactive state to trigger this effect, we need to flip\n // it back to false.\n setShouldFlush(false);\n }, [shouldFlush]);\n\n return queue;\n}\n\nfunction createQueue<T>(cb: () => void): Queue<T> {\n let queue: QueueItem<T>[] = [];\n\n return {\n get: () => queue,\n reset: () => {\n queue = [];\n },\n push: (item) => {\n queue.push(item);\n cb();\n },\n };\n}\n","import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\n\nimport { useStoreApi } from '../../hooks/useStore';\nimport { Queue, QueueItem } from './types';\nimport type { Edge, Node } from '../../types';\nimport { useQueue } from './useQueue';\nimport { NodeChange, EdgeChange } from '../../types/system';\nimport { getElementsDiffChanges } from '../../utils/changes';\n\nconst BatchContext = createContext<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodeQueue: Queue<any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n edgeQueue: Queue<any>;\n} | null>(null);\n\n/**\n * This is a context provider that holds and processes the node and edge update queues\n * that are needed to handle setNodes, addNodes, setEdges and addEdges.\n *\n * @internal\n */\nexport function BatchProvider<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>({ children }: { children: ReactNode }) {\n const store = useStoreApi<NodeType, EdgeType>();\n\n const nodeQueueHandler = useCallback((queueItems: QueueItem<NodeType>[]) => {\n const {\n nodes = [],\n setNodes,\n hasDefaultNodes,\n onNodesChange,\n nodeLookup,\n } = store.getState();\n\n // This is essentially an `Array.reduce` in imperative clothing. Processing\n // this queue is a relatively hot path so we'd like to avoid the overhead of\n // array methods where we can.\n let next = nodes as NodeType[];\n for (const payload of queueItems) {\n next = typeof payload === 'function' ? payload(next) : payload;\n }\n\n if (hasDefaultNodes) {\n setNodes(next);\n } else if (onNodesChange) {\n onNodesChange(\n getElementsDiffChanges({\n items: next,\n lookup: nodeLookup,\n }) as NodeChange<NodeType>[],\n );\n }\n }, []);\n const nodeQueue = useQueue<NodeType>(nodeQueueHandler);\n\n const edgeQueueHandler = useCallback((queueItems: QueueItem<EdgeType>[]) => {\n const {\n edges = [],\n setEdges,\n hasDefaultEdges,\n onEdgesChange,\n edgeLookup,\n } = store.getState();\n\n let next = edges as EdgeType[];\n for (const payload of queueItems) {\n next = typeof payload === 'function' ? payload(next) : payload;\n }\n\n if (hasDefaultEdges) {\n setEdges(next);\n } else if (onEdgesChange) {\n onEdgesChange(\n getElementsDiffChanges({\n items: next,\n lookup: edgeLookup,\n }) as EdgeChange<EdgeType>[],\n );\n }\n }, []);\n const edgeQueue = useQueue<EdgeType>(edgeQueueHandler);\n\n const value = useMemo(() => ({ nodeQueue, edgeQueue }), []);\n\n return (\n <BatchContext.Provider value={value}>{children}</BatchContext.Provider>\n );\n}\n\nexport function useBatchContext() {\n const batchContext = useContext(BatchContext);\n\n if (!batchContext) {\n throw new Error('useBatchContext must be used within a BatchProvider');\n }\n\n return batchContext;\n}\n","import { useMemo } from 'react';\n\nimport { useStoreApi } from '../hooks/useStore';\nimport { ViewportHelperFunctions } from '../types';\nimport { XYPosition } from '../types/system';\nimport {\n getViewportForBounds,\n pointToRendererPoint,\n rendererPointToPoint,\n} from '../utils/general';\nimport { fitView } from '../utils/graph';\n\n/**\n * Hook for getting viewport helper functions.\n *\n * @internal\n * @returns viewport helper functions\n */\nconst useViewportHelper = (): ViewportHelperFunctions => {\n const store = useStoreApi();\n\n return useMemo<ViewportHelperFunctions>(() => {\n return {\n zoomIn: (options) =>\n store.getState().panZoom?.scaleBy(1.2, { duration: options?.duration }),\n zoomOut: (options) =>\n store\n .getState()\n .panZoom?.scaleBy(1 / 1.2, { duration: options?.duration }),\n zoomTo: (zoomLevel, options) =>\n store\n .getState()\n .panZoom?.scaleTo(zoomLevel, { duration: options?.duration }),\n getZoom: () => store.getState().transform[2],\n setViewport: (viewport, options) => {\n const {\n transform: [tX, tY, tZoom],\n panZoom,\n } = store.getState();\n\n panZoom?.setViewport(\n {\n x: viewport.x ?? tX,\n y: viewport.y ?? tY,\n zoom: viewport.zoom ?? tZoom,\n },\n { duration: options?.duration },\n );\n },\n getViewport: () => {\n const [x, y, zoom] = store.getState().transform;\n return { x, y, zoom };\n },\n fitView: (options) => {\n const {\n nodeLookup,\n width,\n height,\n nodeOrigin,\n minZoom,\n maxZoom,\n panZoom,\n } = store.getState();\n\n return panZoom\n ? fitView(\n {\n nodeLookup,\n width,\n height,\n nodeOrigin,\n minZoom,\n maxZoom,\n panZoom,\n },\n options,\n )\n : false;\n },\n setCenter: (x, y, options) => {\n const { width, height, maxZoom, panZoom } = store.getState();\n const nextZoom =\n typeof options?.zoom !== 'undefined' ? options.zoom : maxZoom;\n const centerX = width / 2 - x * nextZoom;\n const centerY = height / 2 - y * nextZoom;\n\n panZoom?.setViewport(\n {\n x: centerX,\n y: centerY,\n zoom: nextZoom,\n },\n { duration: options?.duration },\n );\n },\n fitBounds: (bounds, options) => {\n const { width, height, minZoom, maxZoom, panZoom } = store.getState();\n const viewport = getViewportForBounds(\n bounds,\n width,\n height,\n minZoom,\n maxZoom,\n options?.padding ?? 0.1,\n );\n\n panZoom?.setViewport(viewport, { duration: options?.duration });\n },\n screenToFlowPosition: (\n clientPosition: XYPosition,\n options: { snapToGrid: boolean } = { snapToGrid: true },\n ) => {\n const { transform, snapGrid, domNode } = store.getState();\n\n if (!domNode) {\n return clientPosition;\n }\n\n const { x: domX, y: domY } = domNode.getBoundingClientRect();\n\n const correctedPosition = {\n x: clientPosition.x - domX,\n y: clientPosition.y - domY,\n };\n\n return pointToRendererPoint(\n correctedPosition,\n transform,\n options.snapToGrid,\n snapGrid,\n );\n },\n flowToScreenPosition: (flowPosition: XYPosition) => {\n const { transform, domNode } = store.getState();\n\n if (!domNode) {\n return flowPosition;\n }\n\n const { x: domX, y: domY } = domNode.getBoundingClientRect();\n const rendererPosition = rendererPointToPoint(flowPosition, transform);\n\n return {\n x: rendererPosition.x + domX,\n y: rendererPosition.y + domY,\n };\n },\n };\n }, []);\n};\n\nexport default useViewportHelper;\n","import { useMemo } from 'react';\n\nimport { useStore, useStoreApi } from './useStore';\nimport { useBatchContext } from '../components/BatchProvider';\nimport useViewportHelper from './useViewportHelper';\nimport { Node, Edge, InkFlowState, InternalNode } from '../types';\nimport { Rect, EdgeRemoveChange, NodeRemoveChange } from '../types/system';\nimport {\n nodeToRect,\n getOverlappingArea,\n isNode,\n evaluateAbsolutePosition,\n isRectObject,\n} from '../utils/general';\nimport { getElementsToRemove } from '../utils/graph';\nimport { GeneralHelpers, InkFlowInstance } from '../types/instance';\nimport { elementToRemoveChange } from '../utils/changes';\n\nconst selector = (s: InkFlowState) => !!s.panZoom;\n\n/**\n * Hook for accessing the ReactFlow instance.\n *\n * @public\n * @returns ReactFlowInstance\n */\nexport function useInkFlow<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>(): InkFlowInstance<NodeType, EdgeType> {\n const viewportHelper = useViewportHelper();\n const store = useStoreApi();\n const batchContext = useBatchContext();\n const viewportInitialized = useStore(selector);\n\n const generalHelper = useMemo<GeneralHelpers<NodeType, EdgeType>>(() => {\n const getInternalNode: GeneralHelpers<\n NodeType,\n EdgeType\n >['getInternalNode'] = (id) =>\n store.getState().nodeLookup.get(id) as InternalNode<NodeType>;\n\n const setNodes: GeneralHelpers<NodeType, EdgeType>['setNodes'] = (\n payload,\n ) => {\n batchContext.nodeQueue.push(payload as NodeType[]);\n };\n\n const getNodeRect = (node: NodeType | { id: string }): Rect | null => {\n const { nodeLookup, nodeOrigin } = store.getState();\n\n const nodeToUse = isNode<NodeType>(node)\n ? node\n : nodeLookup.get(node.id)!;\n const position = nodeToUse.parentId\n ? evaluateAbsolutePosition(\n nodeToUse.position,\n nodeToUse.parentId,\n nodeLookup,\n nodeOrigin,\n )\n : nodeToUse.position;\n\n const nodeWithPosition = {\n id: nodeToUse.id,\n position,\n width: nodeToUse.measured?.width ?? nodeToUse.width,\n height: nodeToUse.measured?.height ?? nodeToUse.height,\n data: nodeToUse.data,\n };\n\n return nodeToRect(nodeWithPosition);\n };\n\n const updateNode: GeneralHelpers<NodeType, EdgeType>['updateNode'] = (\n id,\n nodeUpdate,\n options = { replace: false },\n ) => {\n setNodes((prevNodes) =>\n prevNodes.map((node) => {\n if (node.id === id) {\n const nextNode =\n typeof nodeUpdate === 'function'\n ? nodeUpdate(node as NodeType)\n : nodeUpdate;\n return options.replace && isNode(nextNode)\n ? (nextNode as NodeType)\n : { ...node, ...nextNode };\n }\n\n return node;\n }),\n );\n };\n\n return {\n getNodes: () =>\n store.getState().nodes.map((n) => ({ ...n })) as NodeType[],\n getNode: (id) => getInternalNode(id)?.internals.userNode as NodeType,\n getInternalNode,\n getEdges: () => {\n const { edges = [] } = store.getState();\n return edges.map((e) => ({ ...e })) as EdgeType[];\n },\n getEdge: (id) => store.getState().edgeLookup.get(id) as EdgeType,\n setNodes,\n setEdges: (payload) => {\n batchContext.edgeQueue.push(payload as EdgeType[]);\n },\n addNodes: (payload) => {\n const newNodes = Array.isArray(payload) ? payload : [payload];\n batchContext.nodeQueue.push((nodes) => [...nodes, ...newNodes]);\n },\n addEdges: (payload) => {\n const newEdges = Array.isArray(payload) ? payload : [payload];\n batchContext.edgeQueue.push((edges) => [...edges, ...newEdges]);\n },\n toObject: () => {\n const { nodes = [], edges = [], transform } = store.getState();\n const [x, y, zoom] = transform;\n return {\n nodes: nodes.map((n) => ({ ...n })) as NodeType[],\n edges: edges.map((e) => ({ ...e })) as EdgeType[],\n viewport: {\n x,\n y,\n zoom,\n },\n };\n },\n deleteElements: async ({\n nodes: nodesToRemove = [],\n edges: edgesToRemove = [],\n }) => {\n const {\n nodes,\n edges,\n onNodesDelete,\n onEdgesDelete,\n triggerNodeChanges,\n triggerEdgeChanges,\n onDelete,\n onBeforeDelete,\n } = store.getState();\n const { nodes: matchingNodes, edges: matchingEdges } =\n await getElementsToRemove({\n nodesToRemove,\n edgesToRemove,\n nodes,\n edges,\n onBeforeDelete,\n });\n\n const hasMatchingEdges = matchingEdges.length > 0;\n const hasMatchingNodes = matchingNodes.length > 0;\n\n if (hasMatchingEdges) {\n const edgeChanges: EdgeRemoveChange[] = matchingEdges.map(\n elementToRemoveChange,\n );\n\n onEdgesDelete?.(matchingEdges);\n triggerEdgeChanges(edgeChanges);\n }\n\n if (hasMatchingNodes) {\n const nodeChanges: NodeRemoveChange[] = matchingNodes.map(\n elementToRemoveChange,\n );\n\n onNodesDelete?.(matchingNodes);\n triggerNodeChanges(nodeChanges);\n }\n\n if (hasMatchingNodes || hasMatchingEdges) {\n onDelete?.({ nodes: matchingNodes, edges: matchingEdges });\n }\n\n return { deletedNodes: matchingNodes, deletedEdges: matchingEdges };\n },\n getIntersectingNodes: (nodeOrRect, partially = true, nodes) => {\n const isRect = isRectObject(nodeOrRect);\n const nodeRect = isRect ? nodeOrRect : getNodeRect(nodeOrRect);\n const hasNodesOption = nodes !== undefined;\n\n if (!nodeRect) {\n return [];\n }\n\n return (nodes || store.getState().nodes).filter((n) => {\n const internalNode = store.getState().nodeLookup.get(n.id);\n\n if (\n internalNode &&\n !isRect &&\n (n.id === nodeOrRect!.id ||\n !internalNode.internals.positionAbsolute)\n ) {\n return false;\n }\n\n const currNodeRect = nodeToRect(hasNodesOption ? n : internalNode!);\n const overlappingArea = getOverlappingArea(currNodeRect, nodeRect);\n const partiallyVisible = partially && overlappingArea > 0;\n\n return (\n partiallyVisible ||\n overlappingArea >= nodeRect.width * nodeRect.height\n );\n }) as NodeType[];\n },\n isNodeIntersecting: (nodeOrRect, area, partially = true) => {\n const isRect = isRectObject(nodeOrRect);\n const nodeRect = isRect ? nodeOrRect : getNodeRect(nodeOrRect);\n\n if (!nodeRect) {\n return false;\n }\n\n const overlappingArea = getOverlappingArea(nodeRect, area);\n const partiallyVisible = partially && overlappingArea > 0;\n\n return (\n partiallyVisible ||\n overlappingArea >= nodeRect.width * nodeRect.height\n );\n },\n updateNode,\n updateNodeData: (id, dataUpdate, options = { replace: false }) => {\n updateNode(\n id,\n (node) => {\n const nextData =\n typeof dataUpdate === 'function' ? dataUpdate(node) : dataUpdate;\n return options.replace\n ? { ...node, data: nextData }\n : { ...node, data: { ...node.data, ...nextData } };\n },\n options,\n );\n },\n };\n }, []);\n\n return useMemo(() => {\n return {\n ...generalHelper,\n ...viewportHelper,\n viewportInitialized,\n };\n }, [viewportInitialized]);\n}\n","import { useEffect, useState } from 'react';\n\nimport { InkFlowState } from '../../types';\nimport { useStore } from '../../hooks';\nimport { InternalNodeUpdate } from '../../types/system';\n\nconst selector = (s: InkFlowState) => s.updateNodeInternals;\n\nexport function useResizeObserver() {\n const updateNodeInternals = useStore(selector);\n const [resizeObserver] = useState(() => {\n if (typeof ResizeObserver === 'undefined') {\n return null;\n }\n\n return new ResizeObserver((entries: ResizeObserverEntry[]) => {\n const updates = new Map<string, InternalNodeUpdate>();\n entries.forEach((entry: ResizeObserverEntry) => {\n const id = entry.target.getAttribute('data-id') as string;\n updates.set(id, {\n id,\n nodeElement: entry.target as HTMLDivElement,\n });\n });\n\n updateNodeInternals(updates);\n });\n });\n\n useEffect(() => {\n return () => {\n resizeObserver?.disconnect();\n };\n }, [resizeObserver]);\n\n return resizeObserver;\n}\n","import { useCallback } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore } from './useStore';\nimport type { Node, InkFlowState } from '../types';\nimport { getNodesInside } from '../utils/graph';\n\nconst selector = (onlyRenderVisible: boolean) => (s: InkFlowState) => {\n return onlyRenderVisible\n ? getNodesInside<Node>(\n s.nodeLookup,\n { x: 0, y: 0, width: s.width, height: s.height },\n s.transform,\n true,\n ).map((node) => node.id)\n : Array.from(s.nodeLookup.keys());\n};\n\n/**\n * Hook for getting the visible node ids from the store.\n *\n * @internal\n * @param onlyRenderVisible\n * @returns array with visible node ids\n */\nexport function useVisibleNodeIds(onlyRenderVisible: boolean) {\n const nodeIds = useStore(\n useCallback(selector(onlyRenderVisible), [onlyRenderVisible]),\n shallow,\n );\n\n return nodeIds;\n}\n","import { createContext, useContext } from 'react';\n\nexport const NodeIdContext = createContext<string | null>(null);\nexport const Provider = NodeIdContext.Provider;\nexport const Consumer = NodeIdContext.Consumer;\n\nexport const useNodeId = (): string | null => {\n const nodeId = useContext(NodeIdContext);\n return nodeId;\n};\n\nexport default NodeIdContext;\n","import { CSSProperties } from 'react';\n\nimport { useStore } from '../../hooks/useStore';\nimport type { InkFlowState } from '../../types';\n\nconst style: CSSProperties = { display: 'none' };\nconst ariaLiveStyle: CSSProperties = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0px, 0px, 0px, 0px)',\n clipPath: 'inset(100%)',\n};\n\nexport const ARIA_NODE_DESC_KEY = 'ink-flow__node-desc';\nexport const ARIA_EDGE_DESC_KEY = 'ink-flow__edge-desc';\nexport const ARIA_LIVE_MESSAGE = 'ink-flow__aria-live';\n\nconst selector = (s: InkFlowState) => s.ariaLiveMessage;\n\nfunction AriaLiveMessage({ rfId }: { rfId: string }) {\n const ariaLiveMessage = useStore(selector);\n\n return (\n <div\n id={`${ARIA_LIVE_MESSAGE}-${rfId}`}\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n style={ariaLiveStyle}\n >\n {ariaLiveMessage}\n </div>\n );\n}\n\nexport function A11yDescriptions({\n rfId,\n disableKeyboardA11y,\n}: {\n rfId: string;\n disableKeyboardA11y: boolean;\n}) {\n return (\n <>\n <div id={`${ARIA_NODE_DESC_KEY}-${rfId}`} style={style}>\n Press enter or space to select a node.\n {!disableKeyboardA11y &&\n 'You can then use the arrow keys to move the node around.'}{' '}\n Press delete to remove it and escape to cancel.{' '}\n </div>\n <div id={`${ARIA_EDGE_DESC_KEY}-${rfId}`} style={style}>\n Press enter or space to select an edge. You can then press delete to\n remove it or escape to cancel.\n </div>\n {!disableKeyboardA11y && <AriaLiveMessage rfId={rfId} />}\n </>\n );\n}\n","import { Position } from '../../types/system';\n\nexport type GetBezierPathParams = {\n sourceX: number;\n sourceY: number;\n sourcePosition?: Position;\n targetX: number;\n targetY: number;\n targetPosition?: Position;\n curvature?: number;\n};\n\nexport type GetControlWithCurvatureParams = {\n pos: Position;\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n c: number;\n};\n\nexport function getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY,\n}: {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n sourceControlX: number;\n sourceControlY: number;\n targetControlX: number;\n targetControlY: number;\n}): [number, number, number, number] {\n // cubic bezier t=0.5 mid point, not the actual mid point, but easy to calculate\n // https://stackoverflow.com/questions/67516101/how-to-find-distance-mid-point-of-bezier-curve\n const centerX =\n sourceX * 0.125 +\n sourceControlX * 0.375 +\n targetControlX * 0.375 +\n targetX * 0.125;\n const centerY =\n sourceY * 0.125 +\n sourceControlY * 0.375 +\n targetControlY * 0.375 +\n targetY * 0.125;\n const offsetX = Math.abs(centerX - sourceX);\n const offsetY = Math.abs(centerY - sourceY);\n\n return [centerX, centerY, offsetX, offsetY];\n}\n\nfunction calculateControlOffset(distance: number, curvature: number): number {\n if (distance >= 0) {\n return 0.5 * distance;\n }\n\n return curvature * 25 * Math.sqrt(-distance);\n}\n\nfunction getControlWithCurvature({\n pos,\n x1,\n y1,\n x2,\n y2,\n c,\n}: GetControlWithCurvatureParams): [number, number] {\n switch (pos) {\n case Position.Left:\n return [x1 - calculateControlOffset(x1 - x2, c), y1];\n case Position.Right:\n return [x1 + calculateControlOffset(x2 - x1, c), y1];\n case Position.Top:\n return [x1, y1 - calculateControlOffset(y1 - y2, c)];\n case Position.Bottom:\n return [x1, y1 + calculateControlOffset(y2 - y1, c)];\n }\n}\n\n/**\n * Get a bezier path from source to target handle\n * @param params.sourceX - The x position of the source handle\n * @param params.sourceY - The y position of the source handle\n * @param params.sourcePosition - The position of the source handle (default: Position.Bottom)\n * @param params.targetX - The x position of the target handle\n * @param params.targetY - The y position of the target handle\n * @param params.targetPosition - The position of the target handle (default: Position.Top)\n * @param params.curvature - The curvature of the bezier edge\n * @returns A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label\n * @example\n * const source = { x: 0, y: 20 };\n const target = { x: 150, y: 100 };\n \n const [path, labelX, labelY, offsetX, offsetY] = getBezierPath({\n sourceX: source.x,\n sourceY: source.y,\n sourcePosition: Position.Right,\n targetX: target.x,\n targetY: target.y,\n targetPosition: Position.Left,\n});\n */\nexport function getBezierPath({\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n curvature = 0.25,\n}: GetBezierPathParams): [\n path: string,\n labelX: number,\n labelY: number,\n offsetX: number,\n offsetY: number,\n] {\n const [sourceControlX, sourceControlY] = getControlWithCurvature({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY,\n c: curvature,\n });\n const [targetControlX, targetControlY] = getControlWithCurvature({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY,\n c: curvature,\n });\n const [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY,\n });\n\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n labelX,\n labelY,\n offsetX,\n offsetY,\n ];\n}\n","import { errorMessages } from '../../constants';\nimport {\n Connection,\n EdgeBase,\n InternalNodeBase,\n Transform,\n} from '../../types/system';\nimport {\n getOverlappingArea,\n boxToRect,\n nodeToBox,\n getBoundsOfBoxes,\n devWarn,\n} from '../general';\nimport { isEdgeBase } from '../graph';\n\n// this is used for straight edges and simple smoothstep edges (LTR, RTL, BTT, TTB)\nexport function getEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n}: {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n}): [number, number, number, number] {\n const xOffset = Math.abs(targetX - sourceX) / 2;\n const centerX = targetX < sourceX ? targetX + xOffset : targetX - xOffset;\n\n const yOffset = Math.abs(targetY - sourceY) / 2;\n const centerY = targetY < sourceY ? targetY + yOffset : targetY - yOffset;\n\n return [centerX, centerY, xOffset, yOffset];\n}\n\nexport type GetEdgeZIndexParams = {\n sourceNode: InternalNodeBase;\n targetNode: InternalNodeBase;\n selected?: boolean;\n zIndex?: number;\n elevateOnSelect?: boolean;\n};\n\nexport function getElevatedEdgeZIndex({\n sourceNode,\n targetNode,\n selected = false,\n zIndex = 0,\n elevateOnSelect = false,\n}: GetEdgeZIndexParams): number {\n if (!elevateOnSelect) {\n return zIndex;\n }\n\n const edgeOrConnectedNodeSelected =\n selected || targetNode.selected || sourceNode.selected;\n const selectedZIndex = Math.max(\n sourceNode.internals.z || 0,\n targetNode.internals.z || 0,\n 1000,\n );\n\n return zIndex + (edgeOrConnectedNodeSelected ? selectedZIndex : 0);\n}\n\ntype IsEdgeVisibleParams = {\n sourceNode: InternalNodeBase;\n targetNode: InternalNodeBase;\n width: number;\n height: number;\n transform: Transform;\n};\n\nexport function isEdgeVisible({\n sourceNode,\n targetNode,\n width,\n height,\n transform,\n}: IsEdgeVisibleParams): boolean {\n const edgeBox = getBoundsOfBoxes(\n nodeToBox(sourceNode),\n nodeToBox(targetNode),\n );\n\n if (edgeBox.x === edgeBox.x2) {\n edgeBox.x2 += 1;\n }\n\n if (edgeBox.y === edgeBox.y2) {\n edgeBox.y2 += 1;\n }\n\n const viewRect = {\n x: -transform[0] / transform[2],\n y: -transform[1] / transform[2],\n width: width / transform[2],\n height: height / transform[2],\n };\n\n return getOverlappingArea(viewRect, boxToRect(edgeBox)) > 0;\n}\n\nconst getEdgeId = ({\n source,\n sourceHandle,\n target,\n targetHandle,\n}: Connection | EdgeBase): string =>\n `xy-edge__${source}${sourceHandle || ''}-${target}${targetHandle || ''}`;\n\nconst connectionExists = (edge: EdgeBase, edges: EdgeBase[]) => {\n return edges.some(\n (el) =>\n el.source === edge.source &&\n el.target === edge.target &&\n (el.sourceHandle === edge.sourceHandle ||\n (!el.sourceHandle && !edge.sourceHandle)) &&\n (el.targetHandle === edge.targetHandle ||\n (!el.targetHandle && !edge.targetHandle)),\n );\n};\n\n/**\n * This util is a convenience function to add a new Edge to an array of edges\n * @remarks It also performs some validation to make sure you don't add an invalid edge or duplicate an existing one.\n * @public\n * @param edgeParams - Either an Edge or a Connection you want to add\n * @param edges - The array of all current edges\n * @returns A new array of edges with the new edge added\n */\nexport const addEdge = <EdgeType extends EdgeBase>(\n edgeParams: EdgeType | Connection,\n edges: EdgeType[],\n): EdgeType[] => {\n if (!edgeParams.source || !edgeParams.target) {\n devWarn('006', errorMessages['error006']());\n\n return edges;\n }\n\n let edge: EdgeType;\n if (isEdgeBase(edgeParams)) {\n edge = { ...edgeParams };\n } else {\n edge = {\n ...edgeParams,\n id: getEdgeId(edgeParams),\n } as EdgeType;\n }\n\n if (connectionExists(edge, edges)) {\n return edges;\n }\n\n if (edge.sourceHandle === null) {\n delete edge.sourceHandle;\n }\n\n if (edge.targetHandle === null) {\n delete edge.targetHandle;\n }\n\n return edges.concat(edge);\n};\n\nexport type UpdateEdgeOptions = {\n shouldReplaceId?: boolean;\n};\n\n/**\n * A handy utility to update an existing Edge with new properties\n * @param oldEdge - The edge you want to update\n * @param newConnection - The new connection you want to update the edge with\n * @param edges - The array of all current edges\n * @param options.shouldReplaceId - should the id of the old edge be replaced with the new connection id\n * @returns the updated edges array\n */\nexport const updateEdge = <EdgeType extends EdgeBase>(\n oldEdge: EdgeType,\n newConnection: Connection,\n edges: EdgeType[],\n options: UpdateEdgeOptions = { shouldReplaceId: true },\n): EdgeType[] => {\n const { id: oldEdgeId, ...rest } = oldEdge;\n\n if (!newConnection.source || !newConnection.target) {\n devWarn('006', errorMessages['error006']());\n\n return edges;\n }\n\n const foundEdge = edges.find((e) => e.id === oldEdge.id) as EdgeType;\n\n if (!foundEdge) {\n devWarn('007', errorMessages['error007'](oldEdgeId));\n\n return edges;\n }\n\n // Remove old edge and create the new edge with parameters of old edge.\n const edge = {\n ...rest,\n id: options.shouldReplaceId ? getEdgeId(newConnection) : oldEdgeId,\n source: newConnection.source,\n target: newConnection.target,\n sourceHandle: newConnection.sourceHandle,\n targetHandle: newConnection.targetHandle,\n } as EdgeType;\n\n return edges.filter((e) => e.id !== oldEdgeId).concat(edge);\n};\n","import { Position, XYPosition } from '../../types/system';\nimport { getEdgeCenter } from './general';\n\nexport interface GetSmoothStepPathParams {\n sourceX: number;\n sourceY: number;\n sourcePosition?: Position;\n targetX: number;\n targetY: number;\n targetPosition?: Position;\n borderRadius?: number;\n centerX?: number;\n centerY?: number;\n offset?: number;\n}\n\nconst handleDirections = {\n [Position.Left]: { x: -1, y: 0 },\n [Position.Right]: { x: 1, y: 0 },\n [Position.Top]: { x: 0, y: -1 },\n [Position.Bottom]: { x: 0, y: 1 },\n};\n\nconst getDirection = ({\n source,\n sourcePosition = Position.Bottom,\n target,\n}: {\n source: XYPosition;\n sourcePosition: Position;\n target: XYPosition;\n}): XYPosition => {\n if (sourcePosition === Position.Left || sourcePosition === Position.Right) {\n return source.x < target.x ? { x: 1, y: 0 } : { x: -1, y: 0 };\n }\n return source.y < target.y ? { x: 0, y: 1 } : { x: 0, y: -1 };\n};\n\nconst distance = (a: XYPosition, b: XYPosition) =>\n Math.sqrt(Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2));\n\n// ith this function we try to mimic a orthogonal edge routing behaviour\n// It's not as good as a real orthogonal edge routing but it's faster and good enough as a default for step and smooth step edges\nfunction getPoints({\n source,\n sourcePosition = Position.Bottom,\n target,\n targetPosition = Position.Top,\n center,\n offset,\n}: {\n source: XYPosition;\n sourcePosition: Position;\n target: XYPosition;\n targetPosition: Position;\n center: Partial<XYPosition>;\n offset: number;\n}): [XYPosition[], number, number, number, number] {\n const sourceDir = handleDirections[sourcePosition];\n const targetDir = handleDirections[targetPosition];\n const sourceGapped: XYPosition = {\n x: source.x + sourceDir.x * offset,\n y: source.y + sourceDir.y * offset,\n };\n const targetGapped: XYPosition = {\n x: target.x + targetDir.x * offset,\n y: target.y + targetDir.y * offset,\n };\n const dir = getDirection({\n source: sourceGapped,\n sourcePosition,\n target: targetGapped,\n });\n const dirAccessor = dir.x !== 0 ? 'x' : 'y';\n const currDir = dir[dirAccessor];\n\n let points: XYPosition[] = [];\n let centerX, centerY;\n const sourceGapOffset = { x: 0, y: 0 };\n const targetGapOffset = { x: 0, y: 0 };\n\n const [defaultCenterX, defaultCenterY, defaultOffsetX, defaultOffsetY] =\n getEdgeCenter({\n sourceX: source.x,\n sourceY: source.y,\n targetX: target.x,\n targetY: target.y,\n });\n\n // opposite handle positions, default case\n if (sourceDir[dirAccessor] * targetDir[dirAccessor] === -1) {\n centerX = center.x ?? defaultCenterX;\n centerY = center.y ?? defaultCenterY;\n // --->\n // |\n // >---\n const verticalSplit: XYPosition[] = [\n { x: centerX, y: sourceGapped.y },\n { x: centerX, y: targetGapped.y },\n ];\n // |\n // ---\n // |\n const horizontalSplit: XYPosition[] = [\n { x: sourceGapped.x, y: centerY },\n { x: targetGapped.x, y: centerY },\n ];\n\n if (sourceDir[dirAccessor] === currDir) {\n points = dirAccessor === 'x' ? verticalSplit : horizontalSplit;\n } else {\n points = dirAccessor === 'x' ? horizontalSplit : verticalSplit;\n }\n } else {\n // sourceTarget means we take x from source and y from target, targetSource is the opposite\n const sourceTarget: XYPosition[] = [\n { x: sourceGapped.x, y: targetGapped.y },\n ];\n const targetSource: XYPosition[] = [\n { x: targetGapped.x, y: sourceGapped.y },\n ];\n // this handles edges with same handle positions\n if (dirAccessor === 'x') {\n points = sourceDir.x === currDir ? targetSource : sourceTarget;\n } else {\n points = sourceDir.y === currDir ? sourceTarget : targetSource;\n }\n\n if (sourcePosition === targetPosition) {\n const diff = Math.abs(source[dirAccessor] - target[dirAccessor]);\n\n // if an edge goes from right to right for example (sourcePosition === targetPosition) and the distance between source.x and target.x is less than the offset, the added point and the gapped source/target will overlap. This leads to a weird edge path. To avoid this we add a gapOffset to the source/target\n if (diff <= offset) {\n const gapOffset = Math.min(offset - 1, offset - diff);\n if (sourceDir[dirAccessor] === currDir) {\n sourceGapOffset[dirAccessor] =\n (sourceGapped[dirAccessor] > source[dirAccessor] ? -1 : 1) *\n gapOffset;\n } else {\n targetGapOffset[dirAccessor] =\n (targetGapped[dirAccessor] > target[dirAccessor] ? -1 : 1) *\n gapOffset;\n }\n }\n }\n\n // these are conditions for handling mixed handle positions like Right -> Bottom for example\n if (sourcePosition !== targetPosition) {\n const dirAccessorOpposite = dirAccessor === 'x' ? 'y' : 'x';\n const isSameDir =\n sourceDir[dirAccessor] === targetDir[dirAccessorOpposite];\n const sourceGtTargetOppo =\n sourceGapped[dirAccessorOpposite] > targetGapped[dirAccessorOpposite];\n const sourceLtTargetOppo =\n sourceGapped[dirAccessorOpposite] < targetGapped[dirAccessorOpposite];\n const flipSourceTarget =\n (sourceDir[dirAccessor] === 1 &&\n ((!isSameDir && sourceGtTargetOppo) ||\n (isSameDir && sourceLtTargetOppo))) ||\n (sourceDir[dirAccessor] !== 1 &&\n ((!isSameDir && sourceLtTargetOppo) ||\n (isSameDir && sourceGtTargetOppo)));\n\n if (flipSourceTarget) {\n points = dirAccessor === 'x' ? sourceTarget : targetSource;\n }\n }\n\n const sourceGapPoint = {\n x: sourceGapped.x + sourceGapOffset.x,\n y: sourceGapped.y + sourceGapOffset.y,\n };\n const targetGapPoint = {\n x: targetGapped.x + targetGapOffset.x,\n y: targetGapped.y + targetGapOffset.y,\n };\n const maxXDistance = Math.max(\n Math.abs(sourceGapPoint.x - points[0].x),\n Math.abs(targetGapPoint.x - points[0].x),\n );\n const maxYDistance = Math.max(\n Math.abs(sourceGapPoint.y - points[0].y),\n Math.abs(targetGapPoint.y - points[0].y),\n );\n\n // we want to place the label on the longest segment of the edge\n if (maxXDistance >= maxYDistance) {\n centerX = (sourceGapPoint.x + targetGapPoint.x) / 2;\n centerY = points[0].y;\n } else {\n centerX = points[0].x;\n centerY = (sourceGapPoint.y + targetGapPoint.y) / 2;\n }\n }\n\n const pathPoints = [\n source,\n {\n x: sourceGapped.x + sourceGapOffset.x,\n y: sourceGapped.y + sourceGapOffset.y,\n },\n ...points,\n {\n x: targetGapped.x + targetGapOffset.x,\n y: targetGapped.y + targetGapOffset.y,\n },\n target,\n ];\n\n return [pathPoints, centerX, centerY, defaultOffsetX, defaultOffsetY];\n}\n\nfunction getBend(\n a: XYPosition,\n b: XYPosition,\n c: XYPosition,\n size: number,\n): string {\n const bendSize = Math.min(distance(a, b) / 2, distance(b, c) / 2, size);\n const { x, y } = b;\n\n // no bend\n if ((a.x === x && x === c.x) || (a.y === y && y === c.y)) {\n return `L${x} ${y}`;\n }\n\n // first segment is horizontal\n if (a.y === y) {\n const xDir = a.x < c.x ? -1 : 1;\n const yDir = a.y < c.y ? 1 : -1;\n return `L ${x + bendSize * xDir},${y}Q ${x},${y} ${x},${\n y + bendSize * yDir\n }`;\n }\n\n const xDir = a.x < c.x ? 1 : -1;\n const yDir = a.y < c.y ? -1 : 1;\n return `L ${x},${y + bendSize * yDir}Q ${x},${y} ${x + bendSize * xDir},${y}`;\n}\n\n/**\n * Get a smooth step path from source to target handle\n * @param params.sourceX - The x position of the source handle\n * @param params.sourceY - The y position of the source handle\n * @param params.sourcePosition - The position of the source handle (default: Position.Bottom)\n * @param params.targetX - The x position of the target handle\n * @param params.targetY - The y position of the target handle\n * @param params.targetPosition - The position of the target handle (default: Position.Top)\n * @returns A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label\n * @example\n * const source = { x: 0, y: 20 };\n const target = { x: 150, y: 100 };\n \n const [path, labelX, labelY, offsetX, offsetY] = getSmoothStepPath({\n sourceX: source.x,\n sourceY: source.y,\n sourcePosition: Position.Right,\n targetX: target.x,\n targetY: target.y,\n targetPosition: Position.Left,\n });\n */\nexport function getSmoothStepPath({\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n borderRadius = 5,\n centerX,\n centerY,\n offset = 20,\n}: GetSmoothStepPathParams): [\n path: string,\n labelX: number,\n labelY: number,\n offsetX: number,\n offsetY: number,\n] {\n const [points, labelX, labelY, offsetX, offsetY] = getPoints({\n source: { x: sourceX, y: sourceY },\n sourcePosition,\n target: { x: targetX, y: targetY },\n targetPosition,\n center: { x: centerX, y: centerY },\n offset,\n });\n\n const path = points.reduce<string>((res, p, i) => {\n let segment = '';\n\n if (i > 0 && i < points.length - 1) {\n segment = getBend(points[i - 1], p, points[i + 1], borderRadius);\n } else {\n segment = `${i === 0 ? 'M' : 'L'}${p.x} ${p.y}`;\n }\n\n res += segment;\n\n return res;\n }, '');\n\n return [path, labelX, labelY, offsetX, offsetY];\n}\n","// this functions collects all handles and adds an absolute position\n\nimport {\n InternalNodeBase,\n NodeHandleBounds,\n HandleType,\n ConnectionHandle,\n XYPosition,\n NodeLookup,\n ConnectionStatus,\n} from '../../types/system';\n\n// so that we can later find the closest handle to the mouse position\nexport function getHandles(\n node: InternalNodeBase,\n handleBounds: NodeHandleBounds,\n type: HandleType,\n currentHandle: string,\n): ConnectionHandle[] {\n return (handleBounds[type] || []).reduce<ConnectionHandle[]>((res, h) => {\n if (`${node.id}-${h.id}-${type}` !== currentHandle) {\n res.push({\n id: h.id || null,\n type,\n nodeId: node.id,\n x: node.internals.positionAbsolute.x + h.x + h.width / 2,\n y: node.internals.positionAbsolute.y + h.y + h.height / 2,\n });\n }\n return res;\n }, []);\n}\n\nexport function getClosestHandle(\n pos: XYPosition,\n connectionRadius: number,\n handles: ConnectionHandle[],\n): ConnectionHandle | null {\n let closestHandles: ConnectionHandle[] = [];\n let minDistance = Infinity;\n\n for (const handle of handles) {\n const distance = Math.sqrt(\n Math.pow(handle.x - pos.x, 2) + Math.pow(handle.y - pos.y, 2),\n );\n if (distance <= connectionRadius) {\n if (distance < minDistance) {\n closestHandles = [handle];\n } else if (distance === minDistance) {\n // when multiple handles are on the same distance we collect all of them\n closestHandles.push(handle);\n }\n minDistance = distance;\n }\n }\n\n if (!closestHandles.length) {\n return null;\n }\n\n return closestHandles.length === 1\n ? closestHandles[0]\n : // if multiple handles are layouted on top of each other we take the one with type = target because it's more likely that the user wants to connect to this one\n closestHandles.find((handle) => handle.type === 'target') ||\n closestHandles[0];\n}\n\ntype GetHandleLookupParams = {\n nodeLookup: NodeLookup;\n nodeId: string;\n handleId: string | null;\n handleType: string;\n};\n\nexport function getHandleLookup({\n nodeLookup,\n nodeId,\n handleId,\n handleType,\n}: GetHandleLookupParams): ConnectionHandle[] {\n const connectionHandles: ConnectionHandle[] = [];\n\n for (const [, node] of nodeLookup) {\n if (node.internals.handleBounds) {\n const id = `${nodeId}-${handleId}-${handleType}`;\n const sourceHandles = getHandles(\n node,\n node.internals.handleBounds,\n 'source',\n id,\n );\n const targetHandles = getHandles(\n node,\n node.internals.handleBounds,\n 'target',\n id,\n );\n connectionHandles.push(...sourceHandles, ...targetHandles);\n }\n }\n\n return connectionHandles;\n}\n\nexport function getHandleType(\n edgeUpdaterType: HandleType | undefined,\n handleDomNode: Element | null,\n): HandleType | null {\n if (edgeUpdaterType) {\n return edgeUpdaterType;\n } else if (handleDomNode?.classList.contains('target')) {\n return 'target';\n } else if (handleDomNode?.classList.contains('source')) {\n return 'source';\n }\n\n return null;\n}\n\nexport function getConnectionStatus(\n isInsideConnectionRadius: boolean,\n isHandleValid: boolean,\n) {\n let connectionStatus = null;\n\n if (isHandleValid) {\n connectionStatus = 'valid';\n } else if (isInsideConnectionRadius && !isHandleValid) {\n connectionStatus = 'invalid';\n }\n\n return connectionStatus as ConnectionStatus;\n}\n","import { IsValidConnection } from '../../types';\nimport {\n ConnectionMode,\n NodeLookup,\n HandleType,\n UpdateConnection,\n PanBy,\n OnConnectStart,\n OnConnect,\n OnConnectEnd,\n Transform,\n ConnectingHandle,\n ConnectionHandle,\n Connection,\n} from '../../types/system';\nimport { getHostForElement, getEventPosition } from '../dom';\nimport {\n calcAutoPan,\n pointToRendererPoint,\n rendererPointToPoint,\n} from '../general';\nimport {\n getClosestHandle,\n getConnectionStatus,\n getHandleLookup,\n getHandleType,\n} from './utils';\n\nexport type OnPointerDownParams = {\n autoPanOnConnect: boolean;\n connectionMode: ConnectionMode;\n connectionRadius: number;\n domNode: HTMLDivElement | null;\n handleId: string | null;\n nodeId: string;\n isTarget: boolean;\n nodeLookup: NodeLookup;\n lib: string;\n flowId: string | null;\n edgeUpdaterType?: HandleType;\n updateConnection: UpdateConnection;\n panBy: PanBy;\n cancelConnection: () => void;\n onConnectStart?: OnConnectStart;\n onConnect?: OnConnect;\n onConnectEnd?: OnConnectEnd;\n isValidConnection?: IsValidConnection;\n onEdgeUpdateEnd?: (evt: MouseEvent | TouchEvent) => void;\n getTransform: () => Transform;\n getConnectionStartHandle: () => ConnectingHandle | null;\n};\n\nexport type IsValidParams = {\n handle: Pick<ConnectionHandle, 'nodeId' | 'id' | 'type'> | null;\n connectionMode: ConnectionMode;\n fromNodeId: string;\n fromHandleId: string | null;\n fromType: HandleType;\n isValidConnection?: IsValidConnection;\n doc: Document | ShadowRoot;\n lib: string;\n flowId: string | null;\n};\n\nexport type XYHandleInstance = {\n onPointerDown: (\n event: MouseEvent | TouchEvent,\n params: OnPointerDownParams,\n ) => void;\n isValid: (event: MouseEvent | TouchEvent, params: IsValidParams) => Result;\n};\n\ntype Result = {\n handleDomNode: Element | null;\n isValid: boolean;\n connection: Connection | null;\n endHandle: ConnectingHandle | null;\n};\n\nconst alwaysValid = () => true;\n\nlet connectionStartHandle: ConnectingHandle | null = null;\n\nfunction onPointerDown(\n event: MouseEvent | TouchEvent,\n {\n connectionMode,\n connectionRadius,\n handleId,\n nodeId,\n edgeUpdaterType,\n isTarget,\n domNode,\n nodeLookup,\n lib,\n autoPanOnConnect,\n flowId,\n panBy,\n cancelConnection,\n onConnectStart,\n onConnect,\n onConnectEnd,\n isValidConnection = alwaysValid,\n onEdgeUpdateEnd,\n updateConnection,\n getTransform,\n getConnectionStartHandle,\n }: OnPointerDownParams,\n) {\n // when xyflow is used inside a shadow root we can't use document\n const doc = getHostForElement(event.target as HTMLElement);\n let autoPanId = 0;\n let closestHandle: ConnectionHandle | null;\n\n const { x, y } = getEventPosition(event);\n const clickedHandle = doc?.elementFromPoint(x, y);\n const handleType = getHandleType(edgeUpdaterType, clickedHandle);\n const containerBounds = domNode?.getBoundingClientRect();\n\n if (!containerBounds || !handleType) {\n return;\n }\n\n let connectionPosition = getEventPosition(event, containerBounds);\n let autoPanStarted = false;\n let connection: Connection | null = null;\n let isValid = false;\n let handleDomNode: Element | null = null;\n\n const handleLookup = getHandleLookup({\n nodeLookup,\n nodeId,\n handleId,\n handleType,\n });\n\n // when the user is moving the mouse close to the edge of the canvas while connecting we move the canvas\n function autoPan(): void {\n if (!autoPanOnConnect || !containerBounds) {\n return;\n }\n const [x, y] = calcAutoPan(connectionPosition, containerBounds);\n\n panBy({ x, y });\n autoPanId = requestAnimationFrame(autoPan);\n }\n\n // Stays the same for all consecutive pointermove events\n connectionStartHandle = {\n nodeId,\n handleId,\n type: handleType,\n };\n\n updateConnection({\n connectionPosition,\n connectionStatus: null,\n // connectionNodeId etc will be removed in the next major in favor of connectionStartHandle\n connectionStartHandle,\n connectionEndHandle: null,\n });\n\n onConnectStart?.(event, { nodeId, handleId, handleType });\n\n function onPointerMove(event: MouseEvent | TouchEvent) {\n if (!getConnectionStartHandle()) {\n onPointerUp(event);\n }\n\n const transform = getTransform();\n connectionPosition = getEventPosition(event, containerBounds);\n closestHandle = getClosestHandle(\n pointToRendererPoint(connectionPosition, transform, false, [1, 1]),\n connectionRadius,\n handleLookup,\n );\n\n if (!autoPanStarted) {\n autoPan();\n autoPanStarted = true;\n }\n\n const result = isValidHandle(event, {\n handle: closestHandle,\n connectionMode,\n fromNodeId: nodeId,\n fromHandleId: handleId,\n fromType: isTarget ? 'target' : 'source',\n isValidConnection,\n doc,\n lib,\n flowId,\n });\n\n handleDomNode = result.handleDomNode;\n connection = result.connection;\n isValid = result.isValid;\n\n updateConnection({\n connectionStartHandle,\n connectionPosition:\n closestHandle && isValid\n ? rendererPointToPoint(\n {\n x: closestHandle.x,\n y: closestHandle.y,\n },\n transform,\n )\n : connectionPosition,\n connectionStatus: getConnectionStatus(!!closestHandle, isValid),\n connectionEndHandle: result.endHandle,\n });\n }\n\n function onPointerUp(event: MouseEvent | TouchEvent) {\n if ((closestHandle || handleDomNode) && connection && isValid) {\n onConnect?.(connection);\n }\n\n // it's important to get a fresh reference from the store here\n // in order to get the latest state of onConnectEnd\n onConnectEnd?.(event);\n\n if (edgeUpdaterType) {\n onEdgeUpdateEnd?.(event);\n }\n\n cancelConnection();\n cancelAnimationFrame(autoPanId);\n autoPanStarted = false;\n isValid = false;\n connection = null;\n handleDomNode = null;\n connectionStartHandle = null;\n\n doc.removeEventListener('mousemove', onPointerMove as EventListener);\n doc.removeEventListener('mouseup', onPointerUp as EventListener);\n\n doc.removeEventListener('touchmove', onPointerMove as EventListener);\n doc.removeEventListener('touchend', onPointerUp as EventListener);\n }\n\n doc.addEventListener('mousemove', onPointerMove as EventListener);\n doc.addEventListener('mouseup', onPointerUp as EventListener);\n\n doc.addEventListener('touchmove', onPointerMove as EventListener);\n doc.addEventListener('touchend', onPointerUp as EventListener);\n}\n\n// checks if and returns connection in fom of an object { source: 123, target: 312 }\nfunction isValidHandle(\n event: MouseEvent | TouchEvent,\n {\n handle,\n connectionMode,\n fromNodeId,\n fromHandleId,\n fromType,\n doc,\n lib,\n flowId,\n isValidConnection = alwaysValid,\n }: IsValidParams,\n) {\n const isTarget = fromType === 'target';\n const handleDomNode = handle\n ? doc.querySelector(\n `.${lib}-flow__handle[data-id=\"${flowId}-${handle?.nodeId}-${handle?.id}-${handle?.type}\"]`,\n )\n : null;\n\n const { x, y } = getEventPosition(event);\n const handleBelow = doc.elementFromPoint(x, y);\n // we always want to prioritize the handle below the mouse cursor over the closest distance handle,\n // because it could be that the center of another handle is closer to the mouse pointer than the handle below the cursor\n const handleToCheck = handleBelow?.classList.contains(`${lib}-flow__handle`)\n ? handleBelow\n : handleDomNode;\n\n const result: Result = {\n handleDomNode: handleToCheck,\n isValid: false,\n connection: null,\n endHandle: null,\n };\n\n if (handleToCheck) {\n const handleType = getHandleType(undefined, handleToCheck);\n const handleNodeId = handleToCheck.getAttribute('data-nodeid');\n const handleId = handleToCheck.getAttribute('data-handleid');\n const connectable = handleToCheck.classList.contains('connectable');\n const connectableEnd = handleToCheck.classList.contains('connectableend');\n\n if (!handleNodeId) {\n return result;\n }\n\n const connection: Connection = {\n source: isTarget ? handleNodeId : fromNodeId,\n sourceHandle: isTarget ? handleId : fromHandleId,\n target: isTarget ? fromNodeId : handleNodeId,\n targetHandle: isTarget ? fromHandleId : handleId,\n };\n\n result.connection = connection;\n\n const isConnectable = connectable && connectableEnd;\n // in strict mode we don't allow target to target or source to source connections\n const isValid =\n isConnectable &&\n (connectionMode === ConnectionMode.Strict\n ? (isTarget && handleType === 'source') ||\n (!isTarget && handleType === 'target')\n : handleNodeId !== fromNodeId || handleId !== fromHandleId);\n\n if (isValid) {\n result.endHandle = {\n nodeId: handleNodeId as string,\n handleId,\n type: handleType as HandleType,\n };\n\n result.isValid = isValidConnection(connection);\n }\n }\n\n return result;\n}\n\nexport const XYHandle: XYHandleInstance = {\n onPointerDown,\n isValid: isValidHandle,\n};\n","import {\n type HTMLAttributes,\n type MouseEvent as ReactMouseEvent,\n type TouchEvent as ReactTouchEvent,\n type ForwardedRef,\n memo,\n} from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { useNodeId } from '../../contexts/NodeIdContext';\nimport { errorMessages } from '../../constants';\nimport {\n HandleProps,\n HandleType,\n ConnectionMode,\n Position,\n Connection,\n} from '../../types/system';\nimport { isMouseEvent, getHostForElement } from '../../utils/dom';\nimport { fixedForwardRef } from '../../utils/general';\nimport { InkFlowState } from '../../types';\nimport { addEdge } from '../../utils/edges';\nimport { XYHandle } from '../../utils/xyhandle';\n\nexport interface HandleComponentProps\n extends HandleProps,\n Omit<HTMLAttributes<HTMLDivElement>, 'id'> {}\n\nconst selector = (s: InkFlowState) => ({\n connectOnClick: s.connectOnClick,\n noPanClassName: s.noPanClassName,\n rfId: s.rfId,\n});\n\nconst connectingSelector =\n (nodeId: string | null, handleId: string | null, type: HandleType) =>\n (state: InkFlowState) => {\n const {\n connectionStartHandle: startHandle,\n connectionEndHandle: endHandle,\n connectionClickStartHandle: clickHandle,\n connectionMode,\n connectionStatus,\n } = state;\n\n const connectingTo =\n endHandle?.nodeId === nodeId &&\n endHandle?.handleId === handleId &&\n endHandle?.type === type;\n\n return {\n connectingFrom:\n startHandle?.nodeId === nodeId &&\n startHandle?.handleId === handleId &&\n startHandle?.type === type,\n connectingTo,\n clickConnecting:\n clickHandle?.nodeId === nodeId &&\n clickHandle?.handleId === handleId &&\n clickHandle?.type === type,\n isPossibleEndHandle:\n connectionMode === ConnectionMode.Strict\n ? startHandle?.type !== type\n : nodeId !== startHandle?.nodeId ||\n handleId !== startHandle?.handleId,\n connectionInProcess: !!startHandle,\n valid: connectingTo && connectionStatus === 'valid',\n };\n };\n\nfunction HandleComponent(\n {\n type = 'source',\n position = Position.Top,\n isValidConnection,\n isConnectable = true,\n isConnectableStart = true,\n isConnectableEnd = true,\n id,\n onConnect,\n children,\n className,\n onMouseDown,\n onTouchStart,\n ...rest\n }: HandleComponentProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const handleId = id || null;\n const isTarget = type === 'target';\n const store = useStoreApi();\n const nodeId = useNodeId();\n const { connectOnClick, noPanClassName, rfId } = useStore(selector, shallow);\n const {\n connectingFrom,\n connectingTo,\n clickConnecting,\n isPossibleEndHandle,\n connectionInProcess,\n valid,\n } = useStore(connectingSelector(nodeId, handleId, type), shallow);\n\n if (!nodeId) {\n store.getState().onError?.('010', errorMessages['error010']());\n }\n\n const onConnectExtended = (params: Connection) => {\n const {\n defaultEdgeOptions,\n onConnect: onConnectAction,\n hasDefaultEdges,\n } = store.getState();\n\n const edgeParams = {\n ...defaultEdgeOptions,\n ...params,\n };\n if (hasDefaultEdges) {\n const { edges, setEdges } = store.getState();\n setEdges(addEdge(edgeParams, edges));\n }\n\n onConnectAction?.(edgeParams);\n onConnect?.(edgeParams);\n };\n\n const onPointerDown = (\n event: ReactMouseEvent<HTMLDivElement> | ReactTouchEvent<HTMLDivElement>,\n ) => {\n if (!nodeId) {\n return;\n }\n\n const isMouseTriggered = isMouseEvent(event.nativeEvent);\n\n if (\n isConnectableStart &&\n ((isMouseTriggered &&\n (event as ReactMouseEvent<HTMLDivElement>).button === 0) ||\n !isMouseTriggered)\n ) {\n const currentStore = store.getState();\n\n XYHandle.onPointerDown(event.nativeEvent, {\n autoPanOnConnect: currentStore.autoPanOnConnect,\n connectionMode: currentStore.connectionMode,\n connectionRadius: currentStore.connectionRadius,\n domNode: currentStore.domNode,\n nodeLookup: currentStore.nodeLookup,\n lib: currentStore.lib,\n isTarget,\n handleId,\n nodeId,\n flowId: currentStore.rfId,\n panBy: currentStore.panBy,\n cancelConnection: currentStore.cancelConnection,\n onConnectStart: currentStore.onConnectStart,\n onConnectEnd: currentStore.onConnectEnd,\n updateConnection: currentStore.updateConnection,\n onConnect: onConnectExtended,\n isValidConnection: isValidConnection || currentStore.isValidConnection,\n getTransform: () => store.getState().transform,\n getConnectionStartHandle: () => store.getState().connectionStartHandle,\n });\n }\n\n if (isMouseTriggered) {\n onMouseDown?.(event as ReactMouseEvent<HTMLDivElement>);\n } else {\n onTouchStart?.(event as ReactTouchEvent<HTMLDivElement>);\n }\n };\n\n const onClick = (event: ReactMouseEvent) => {\n const {\n onClickConnectStart,\n onClickConnectEnd,\n connectionClickStartHandle,\n connectionMode,\n isValidConnection: isValidConnectionStore,\n lib,\n rfId: flowId,\n } = store.getState();\n\n if (!nodeId || (!connectionClickStartHandle && !isConnectableStart)) {\n return;\n }\n\n if (!connectionClickStartHandle) {\n onClickConnectStart?.(event.nativeEvent, {\n nodeId,\n handleId,\n handleType: type,\n });\n store.setState({\n connectionClickStartHandle: { nodeId, type, handleId },\n });\n return;\n }\n\n const doc = getHostForElement(event.target as HTMLElement);\n const isValidConnectionHandler =\n isValidConnection || isValidConnectionStore;\n const { connection, isValid } = XYHandle.isValid(event.nativeEvent, {\n handle: {\n nodeId,\n id: handleId,\n type,\n },\n connectionMode,\n fromNodeId: connectionClickStartHandle.nodeId,\n fromHandleId: connectionClickStartHandle.handleId || null,\n fromType: connectionClickStartHandle.type,\n isValidConnection: isValidConnectionHandler,\n flowId,\n doc,\n lib,\n });\n\n if (isValid && connection) {\n onConnectExtended(connection);\n }\n\n onClickConnectEnd?.(event as unknown as MouseEvent);\n\n store.setState({ connectionClickStartHandle: null });\n };\n\n return (\n <div\n data-handleid={handleId}\n data-nodeid={nodeId}\n data-handlepos={position}\n data-id={`${rfId}-${nodeId}-${handleId}-${type}`}\n className={cc([\n 'ink-flow__handle',\n `ink-flow__handle-${position}`,\n 'nodrag',\n noPanClassName,\n className,\n {\n source: !isTarget,\n target: isTarget,\n connectable: isConnectable,\n connectablestart: isConnectableStart,\n connectableend: isConnectableEnd,\n clickconnecting: clickConnecting,\n connectingfrom: connectingFrom,\n connectingto: connectingTo,\n valid,\n // shows where you can start a connection from\n // and where you can end it while connecting\n connectionindicator:\n isConnectable &&\n (!connectionInProcess || isPossibleEndHandle) &&\n (connectionInProcess ? isConnectableEnd : isConnectableStart),\n },\n ])}\n onMouseDown={onPointerDown}\n onTouchStart={onPointerDown}\n onClick={connectOnClick ? onClick : undefined}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\n/**\n * The Handle component is a UI element that is used to connect nodes.\n */\nexport const Handle = memo(fixedForwardRef(HandleComponent));\n","import { InputNode } from '../Nodes/InputNode';\nimport { DefaultNode } from '../Nodes/DefaultNode';\nimport { GroupNode } from '../Nodes/GroupNode';\nimport { OutputNode } from '../Nodes/OutputNode';\nimport type { InternalNode, Node, NodeTypes } from '../../types';\nimport { XYPosition } from '../../types/system';\n\nexport const arrowKeyDiffs: Record<string, XYPosition> = {\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 },\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 },\n};\n\nexport const builtinNodeTypes: NodeTypes = {\n input: InputNode,\n default: DefaultNode,\n output: OutputNode,\n group: GroupNode,\n};\n\nexport function getNodeInlineStyleDimensions<NodeType extends Node = Node>(\n node: InternalNode<NodeType>,\n): {\n width: number | string | undefined;\n height: number | string | undefined;\n} {\n if (node.internals.handleBounds === undefined) {\n return {\n width: node.width ?? node.initialWidth ?? node.style?.width,\n height: node.height ?? node.initialHeight ?? node.style?.height,\n };\n }\n\n return {\n width: node.width ?? node.style?.width,\n height: node.height ?? node.style?.height,\n };\n}\n","import { BuiltInNode } from '../../types';\nimport { NodeProps, Position } from '../../types/system';\nimport { Handle } from '../Handle';\n\nexport function InputNode({\n data,\n isConnectable,\n sourcePosition = Position.Bottom,\n}: NodeProps<BuiltInNode>) {\n return (\n <>\n {data?.label}\n <Handle\n type=\"source\"\n position={sourcePosition}\n isConnectable={isConnectable}\n />\n </>\n );\n}\n","import { BuiltInNode, NodeProps } from '../../types';\nimport { Position } from '../../types/system';\nimport { Handle } from '../Handle';\n\nexport function DefaultNode({\n data,\n isConnectable,\n targetPosition = Position.Top,\n sourcePosition = Position.Bottom,\n}: NodeProps<BuiltInNode>) {\n return (\n <>\n <Handle\n type=\"target\"\n position={targetPosition}\n isConnectable={isConnectable}\n />\n {data?.label}\n <Handle\n type=\"source\"\n position={sourcePosition}\n isConnectable={isConnectable}\n />\n </>\n );\n}\n","import { BuiltInNode, NodeProps } from '../../types';\nimport { Position } from '../../types/system';\nimport { Handle } from '../Handle';\n\nexport function OutputNode({\n data,\n isConnectable,\n targetPosition = Position.Top,\n}: NodeProps<BuiltInNode>) {\n return (\n <>\n <Handle\n type=\"target\"\n position={targetPosition}\n isConnectable={isConnectable}\n />\n {data?.label}\n </>\n );\n}\n","export function GroupNode() {\n return null;\n}\n","import type { RefObject } from 'react';\nimport type { StoreApi } from 'zustand';\nimport { errorMessages } from '../../constants';\nimport { InkFlowState } from '../../types';\n\n// this handler is called by\n// 1. the click handler when node is not draggable or selectNodesOnDrag = false\n// or\n// 2. the on drag start handler when node is draggable and selectNodesOnDrag = true\nexport function handleNodeClick({\n id,\n store,\n unselect = false,\n nodeRef,\n}: {\n id: string;\n store: {\n getState: StoreApi<InkFlowState>['getState'];\n setState: StoreApi<InkFlowState>['setState'];\n };\n unselect?: boolean;\n nodeRef?: RefObject<HTMLDivElement>;\n}) {\n const {\n addSelectedNodes,\n unselectNodesAndEdges,\n multiSelectionActive,\n nodeLookup,\n onError,\n } = store.getState();\n const node = nodeLookup.get(id);\n\n if (!node) {\n onError?.('012', errorMessages['error012'](id));\n return;\n }\n\n store.setState({ nodesSelectionActive: false });\n\n if (!node.selected) {\n addSelectedNodes([id]);\n } else if (unselect || (node.selected && multiSelectionActive)) {\n unselectNodesAndEdges({ nodes: [node], edges: [] });\n\n requestAnimationFrame(() => nodeRef?.current?.blur());\n }\n}\n","import {\n NodeBase,\n NodeLookup,\n InternalNodeBase,\n XYPosition,\n NodeDragItem,\n} from '../../types/system';\n\nexport function isParentSelected<NodeType extends NodeBase>(\n node: NodeType,\n nodeLookup: NodeLookup,\n): boolean {\n if (!node.parentId) {\n return false;\n }\n\n const parentNode = nodeLookup.get(node.parentId);\n\n if (!parentNode) {\n return false;\n }\n\n if (parentNode.selected) {\n return true;\n }\n\n return isParentSelected(parentNode, nodeLookup);\n}\n\nexport function hasSelector(\n target: Element,\n selector: string,\n domNode: Element,\n): boolean {\n let current = target;\n\n do {\n if (current?.matches(selector)) return true;\n if (current === domNode) return false;\n current = current.parentElement as Element;\n } while (current);\n\n return false;\n}\n\n// looks for all selected nodes and created a NodeDragItem for each of them\nexport function getDragItems<NodeType extends NodeBase>(\n nodeLookup: Map<string, InternalNodeBase<NodeType>>,\n nodesDraggable: boolean,\n mousePos: XYPosition,\n nodeId?: string,\n): Map<string, NodeDragItem> {\n const dragItems = new Map<string, NodeDragItem>();\n\n for (const [id, node] of nodeLookup) {\n if (\n (node.selected || node.id === nodeId) &&\n (!node.parentId || !isParentSelected(node, nodeLookup)) &&\n (node.draggable ||\n (nodesDraggable && typeof node.draggable === 'undefined'))\n ) {\n const internalNode = nodeLookup.get(id);\n\n if (internalNode) {\n dragItems.set(id, {\n id,\n position: internalNode.position || { x: 0, y: 0 },\n distance: {\n x: mousePos.x - internalNode.internals.positionAbsolute.x,\n y: mousePos.y - internalNode.internals.positionAbsolute.y,\n },\n extent: internalNode.extent,\n parentId: internalNode.parentId,\n origin: internalNode.origin,\n expandParent: internalNode.expandParent,\n internals: {\n positionAbsolute: internalNode.internals.positionAbsolute || {\n x: 0,\n y: 0,\n },\n },\n measured: {\n width: internalNode.measured.width ?? 0,\n height: internalNode.measured.height ?? 0,\n },\n });\n }\n }\n }\n\n return dragItems;\n}\n\n// returns two params:\n// 1. the dragged node (or the first of the list, if we are dragging a node selection)\n// 2. array of selected nodes (for multi selections)\nexport function getEventHandlerParams<NodeType extends InternalNodeBase>({\n nodeId,\n dragItems,\n nodeLookup,\n}: {\n nodeId?: string;\n dragItems: Map<string, NodeDragItem>;\n nodeLookup: Map<string, NodeType>;\n}): [NodeBase, NodeBase[]] {\n const nodesFromDragItems: NodeBase[] = [];\n\n for (const [id, dragItem] of dragItems) {\n const node = nodeLookup.get(id)?.internals.userNode;\n\n if (node) {\n nodesFromDragItems.push({\n ...node,\n position: dragItem.position,\n });\n }\n }\n\n if (!nodeId) {\n return [nodesFromDragItems[0], nodesFromDragItems];\n }\n\n const node = nodeLookup.get(nodeId)!.internals.userNode;\n\n return [\n {\n ...node,\n position: dragItems.get(nodeId)?.position || node.position,\n },\n nodesFromDragItems,\n ];\n}\n","import { drag } from 'd3-drag';\nimport { select, type Selection } from 'd3-selection';\n\nimport { getDragItems, getEventHandlerParams, hasSelector } from './utils';\nimport {\n NodeDragItem,\n NodeBase,\n InternalNodeBase,\n EdgeBase,\n CoordinateExtent,\n SnapGrid,\n NodeOrigin,\n Transform,\n PanBy,\n OnError,\n OnSelectionDrag,\n UpdateNodePositions,\n XYPosition,\n Box,\n UseDragEvent,\n} from '../../types/system';\nimport { getPointerPosition, getEventPosition } from '../dom';\nimport { calcAutoPan, rectToBox, snapPosition } from '../general';\nimport { getInternalNodesBounds, calculateNodePosition } from '../graph';\n\nexport type OnDrag = (\n event: MouseEvent,\n dragItems: Map<string, NodeDragItem>,\n node: NodeBase,\n nodes: NodeBase[],\n) => void;\n\ntype StoreItems<OnNodeDrag> = {\n nodes: NodeBase[];\n nodeLookup: Map<string, InternalNodeBase>;\n edges: EdgeBase[];\n nodeExtent: CoordinateExtent;\n snapGrid: SnapGrid;\n snapToGrid: boolean;\n nodeOrigin: NodeOrigin;\n multiSelectionActive: boolean;\n domNode?: Element | null;\n transform: Transform;\n autoPanOnNodeDrag: boolean;\n nodesDraggable: boolean;\n selectNodesOnDrag: boolean;\n nodeDragThreshold: number;\n panBy: PanBy;\n unselectNodesAndEdges: (params?: {\n nodes?: NodeBase[];\n edges?: EdgeBase[];\n }) => void;\n onError?: OnError;\n onNodeDragStart?: OnNodeDrag;\n onNodeDrag?: OnNodeDrag;\n onNodeDragStop?: OnNodeDrag;\n onSelectionDragStart?: OnSelectionDrag;\n onSelectionDrag?: OnSelectionDrag;\n onSelectionDragStop?: OnSelectionDrag;\n updateNodePositions: UpdateNodePositions;\n};\n\nexport type XYDragParams<OnNodeDrag> = {\n getStoreItems: () => StoreItems<OnNodeDrag>;\n onDragStart?: OnDrag;\n onDrag?: OnDrag;\n onDragStop?: OnDrag;\n onNodeMouseDown?: (id: string) => void;\n};\n\nexport type XYDragInstance = {\n update: (params: DragUpdateParams) => void;\n destroy: () => void;\n};\n\nexport type DragUpdateParams = {\n noDragClassName?: string;\n handleSelector?: string;\n isSelectable?: boolean;\n nodeId?: string;\n domNode: Element;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function XYDrag<\n OnNodeDrag extends (e: any, nodes: any, node: any) => void | undefined,\n>({\n onNodeMouseDown,\n getStoreItems,\n onDragStart,\n onDrag,\n onDragStop,\n}: XYDragParams<OnNodeDrag>): XYDragInstance {\n let lastPos: { x: number | null; y: number | null } = { x: null, y: null };\n let autoPanId = 0;\n let dragItems = new Map<string, NodeDragItem>();\n let autoPanStarted = false;\n let mousePosition: XYPosition = { x: 0, y: 0 };\n let containerBounds: DOMRect | null = null;\n let dragStarted = false;\n let d3Selection: Selection<Element, unknown, null, undefined> | null = null;\n\n // public functions\n function update({\n noDragClassName,\n handleSelector,\n domNode,\n isSelectable,\n nodeId,\n }: DragUpdateParams) {\n d3Selection = select(domNode);\n function updateNodes({ x, y }: XYPosition, dragEvent: MouseEvent | null) {\n const {\n nodeLookup,\n nodeExtent,\n snapGrid,\n snapToGrid,\n nodeOrigin,\n onNodeDrag,\n onSelectionDrag,\n onError,\n updateNodePositions,\n } = getStoreItems();\n\n lastPos = { x, y };\n\n let hasChange = false;\n let nodesBox: Box = { x: 0, y: 0, x2: 0, y2: 0 };\n\n if (dragItems.size > 1 && nodeExtent) {\n const rect = getInternalNodesBounds(dragItems, { nodeOrigin });\n nodesBox = rectToBox(rect);\n }\n\n for (const [id, dragItem] of dragItems) {\n let nextPosition = {\n x: x - dragItem.distance.x,\n y: y - dragItem.distance.y,\n };\n\n if (snapToGrid) {\n nextPosition = snapPosition(nextPosition, snapGrid);\n }\n\n // if there is selection with multiple nodes and a node extent is set, we need to adjust the node extent for each node\n // based on its position so that the node stays at it's position relative to the selection.\n let adjustedNodeExtent: CoordinateExtent = [\n [nodeExtent[0][0], nodeExtent[0][1]],\n [nodeExtent[1][0], nodeExtent[1][1]],\n ];\n\n if (dragItems.size > 1 && nodeExtent && !dragItem.extent) {\n const { positionAbsolute } = dragItem.internals;\n const x1 = positionAbsolute.x - nodesBox.x + nodeExtent[0][0];\n const x2 =\n positionAbsolute.x +\n dragItem.measured.width -\n nodesBox.x2 +\n nodeExtent[1][0];\n\n const y1 = positionAbsolute.y - nodesBox.y + nodeExtent[0][1];\n const y2 =\n positionAbsolute.y +\n dragItem.measured.height -\n nodesBox.y2 +\n nodeExtent[1][1];\n\n adjustedNodeExtent = [\n [x1, y1],\n [x2, y2],\n ];\n }\n\n const { position, positionAbsolute } = calculateNodePosition({\n nodeId: id,\n nextPosition,\n nodeLookup,\n nodeExtent: adjustedNodeExtent,\n nodeOrigin,\n onError,\n });\n\n // we want to make sure that we only fire a change event when there is a change\n hasChange =\n hasChange ||\n dragItem.position.x !== position.x ||\n dragItem.position.y !== position.y;\n\n dragItem.position = position;\n dragItem.internals.positionAbsolute = positionAbsolute;\n }\n\n if (!hasChange) {\n return;\n }\n\n updateNodePositions(dragItems, true);\n\n if (dragEvent && (onDrag || onNodeDrag || (!nodeId && onSelectionDrag))) {\n const [currentNode, currentNodes] = getEventHandlerParams({\n nodeId,\n dragItems,\n nodeLookup,\n });\n\n onDrag?.(dragEvent, dragItems, currentNode, currentNodes);\n onNodeDrag?.(dragEvent, currentNode, currentNodes);\n\n if (!nodeId) {\n onSelectionDrag?.(dragEvent, currentNodes);\n }\n }\n }\n\n function autoPan() {\n if (!containerBounds) {\n return;\n }\n\n const [xMovement, yMovement] = calcAutoPan(\n mousePosition,\n containerBounds,\n );\n\n if (xMovement !== 0 || yMovement !== 0) {\n const { transform, panBy } = getStoreItems();\n\n lastPos.x = (lastPos.x ?? 0) - xMovement / transform[2];\n lastPos.y = (lastPos.y ?? 0) - yMovement / transform[2];\n\n if (panBy({ x: xMovement, y: yMovement })) {\n updateNodes(lastPos as XYPosition, null);\n }\n }\n autoPanId = requestAnimationFrame(autoPan);\n }\n\n function startDrag(event: UseDragEvent) {\n const {\n nodeLookup,\n multiSelectionActive,\n nodesDraggable,\n transform,\n snapGrid,\n snapToGrid,\n selectNodesOnDrag,\n onNodeDragStart,\n onSelectionDragStart,\n unselectNodesAndEdges,\n } = getStoreItems();\n\n dragStarted = true;\n\n if (\n (!selectNodesOnDrag || !isSelectable) &&\n !multiSelectionActive &&\n nodeId\n ) {\n if (!nodeLookup.get(nodeId)?.selected) {\n // we need to reset selected nodes when selectNodesOnDrag=false\n unselectNodesAndEdges();\n }\n }\n\n if (isSelectable && selectNodesOnDrag && nodeId) {\n onNodeMouseDown?.(nodeId);\n }\n\n const pointerPos = getPointerPosition(event.sourceEvent, {\n transform,\n snapGrid,\n snapToGrid,\n });\n lastPos = pointerPos;\n dragItems = getDragItems(nodeLookup, nodesDraggable, pointerPos, nodeId);\n\n if (\n dragItems.size > 0 &&\n (onDragStart || onNodeDragStart || (!nodeId && onSelectionDragStart))\n ) {\n const [currentNode, currentNodes] = getEventHandlerParams({\n nodeId,\n dragItems,\n nodeLookup,\n });\n\n onDragStart?.(\n event.sourceEvent as MouseEvent,\n dragItems,\n currentNode,\n currentNodes,\n );\n onNodeDragStart?.(\n event.sourceEvent as MouseEvent,\n currentNode,\n currentNodes,\n );\n\n if (!nodeId) {\n onSelectionDragStart?.(event.sourceEvent as MouseEvent, currentNodes);\n }\n }\n }\n\n const d3DragInstance = drag()\n .on('start', (event: UseDragEvent) => {\n const { domNode, nodeDragThreshold, transform, snapGrid, snapToGrid } =\n getStoreItems();\n\n if (nodeDragThreshold === 0) {\n startDrag(event);\n }\n\n const pointerPos = getPointerPosition(event.sourceEvent, {\n transform,\n snapGrid,\n snapToGrid,\n });\n lastPos = pointerPos;\n containerBounds = domNode?.getBoundingClientRect() || null;\n mousePosition = getEventPosition(event.sourceEvent, containerBounds!);\n })\n .on('drag', (event: UseDragEvent) => {\n const {\n autoPanOnNodeDrag,\n transform,\n snapGrid,\n snapToGrid,\n nodeDragThreshold,\n } = getStoreItems();\n const pointerPos = getPointerPosition(event.sourceEvent, {\n transform,\n snapGrid,\n snapToGrid,\n });\n\n if (!autoPanStarted && autoPanOnNodeDrag && dragStarted) {\n autoPanStarted = true;\n autoPan();\n }\n\n if (!dragStarted) {\n const x = pointerPos.xSnapped - (lastPos.x ?? 0);\n const y = pointerPos.ySnapped - (lastPos.y ?? 0);\n const distance = Math.sqrt(x * x + y * y);\n\n if (distance > nodeDragThreshold) {\n startDrag(event);\n }\n }\n\n // skip events without movement\n if (\n (lastPos.x !== pointerPos.xSnapped ||\n lastPos.y !== pointerPos.ySnapped) &&\n dragItems &&\n dragStarted\n ) {\n // dragEvent = event.sourceEvent as MouseEvent;\n mousePosition = getEventPosition(event.sourceEvent, containerBounds!);\n\n updateNodes(pointerPos, event.sourceEvent as MouseEvent);\n }\n })\n .on('end', (event: UseDragEvent) => {\n if (!dragStarted) {\n return;\n }\n\n autoPanStarted = false;\n dragStarted = false;\n cancelAnimationFrame(autoPanId);\n\n if (dragItems.size > 0) {\n const {\n nodeLookup,\n updateNodePositions,\n onNodeDragStop,\n onSelectionDragStop,\n } = getStoreItems();\n\n updateNodePositions(dragItems, false);\n\n if (\n onDragStop ||\n onNodeDragStop ||\n (!nodeId && onSelectionDragStop)\n ) {\n const [currentNode, currentNodes] = getEventHandlerParams({\n nodeId,\n dragItems,\n nodeLookup,\n });\n\n onDragStop?.(\n event.sourceEvent as MouseEvent,\n dragItems,\n currentNode,\n currentNodes,\n );\n onNodeDragStop?.(\n event.sourceEvent as MouseEvent,\n currentNode,\n currentNodes,\n );\n\n if (!nodeId) {\n onSelectionDragStop?.(\n event.sourceEvent as MouseEvent,\n currentNodes,\n );\n }\n }\n }\n })\n .filter((event: MouseEvent) => {\n const target = event.target as HTMLDivElement;\n const isDraggable =\n !event.button &&\n (!noDragClassName ||\n !hasSelector(target, `.${noDragClassName}`, domNode)) &&\n (!handleSelector || hasSelector(target, handleSelector, domNode));\n\n return isDraggable;\n });\n\n d3Selection.call(d3DragInstance);\n }\n\n function destroy() {\n d3Selection?.on('.drag', null);\n }\n\n return {\n update,\n destroy,\n };\n}\n","import { useCallback } from 'react';\n\nimport { type Node } from '../types';\nimport { useStoreApi } from './useStore';\nimport { XYPosition } from '../types/system';\nimport { snapPosition } from '../utils/general';\nimport { calculateNodePosition } from '../utils/graph';\n\nconst selectedAndDraggable = (nodesDraggable: boolean) => (n: Node) =>\n n.selected &&\n (n.draggable || (nodesDraggable && typeof n.draggable === 'undefined'));\n\n/**\n * Hook for updating node positions by passing a direction and factor\n *\n * @internal\n * @returns function for updating node positions\n */\nexport function useMoveSelectedNodes() {\n const store = useStoreApi();\n\n const moveSelectedNodes = useCallback(\n (params: { direction: XYPosition; factor: number }) => {\n const {\n nodeExtent,\n snapToGrid,\n snapGrid,\n nodesDraggable,\n onError,\n updateNodePositions,\n nodeLookup,\n nodeOrigin,\n } = store.getState();\n const nodeUpdates = new Map();\n const isSelected = selectedAndDraggable(nodesDraggable);\n\n // by default a node moves 5px on each key press\n // if snap grid is enabled, we use that for the velocity\n const xVelo = snapToGrid ? snapGrid[0] : 5;\n const yVelo = snapToGrid ? snapGrid[1] : 5;\n\n const xDiff = params.direction.x * xVelo * params.factor;\n const yDiff = params.direction.y * yVelo * params.factor;\n\n for (const [, node] of nodeLookup) {\n if (!isSelected(node)) {\n continue;\n }\n\n let nextPosition = {\n x: node.internals.positionAbsolute.x + xDiff,\n y: node.internals.positionAbsolute.y + yDiff,\n };\n\n if (snapToGrid) {\n nextPosition = snapPosition(nextPosition, snapGrid);\n }\n\n const { position, positionAbsolute } = calculateNodePosition({\n nodeId: node.id,\n nextPosition,\n nodeLookup,\n nodeExtent,\n nodeOrigin,\n onError,\n });\n\n node.position = position;\n node.internals.positionAbsolute = positionAbsolute;\n\n nodeUpdates.set(node.id, node);\n }\n\n updateNodePositions(nodeUpdates);\n },\n [],\n );\n\n return moveSelectedNodes;\n}\n","import { type MouseEvent, type KeyboardEvent } from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { Provider } from '../../contexts/NodeIdContext';\nimport { ARIA_NODE_DESC_KEY } from '../A11yDescriptions';\nimport {\n arrowKeyDiffs,\n builtinNodeTypes,\n getNodeInlineStyleDimensions,\n} from './utils';\nimport { useNodeObserver } from './useNodeObserver';\nimport type { InternalNode, Node, NodeWrapperProps } from '../../types';\nimport { errorMessages, elementSelectionKeys } from '../../constants';\nimport { isInputDOMNode } from '../../utils/dom';\nimport {\n getNodeDimensions,\n clampPosition,\n nodeHasDimensions,\n getPositionWithOrigin,\n} from '../../utils/general';\nimport { useDrag } from '../../hooks/useDrag';\nimport { useMoveSelectedNodes } from '../../hooks/useMoveSelectedNodes';\nimport { handleNodeClick } from '../Nodes/utils';\n\nexport function NodeWrapper<NodeType extends Node>({\n id,\n onClick,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n onContextMenu,\n onDoubleClick,\n nodesDraggable,\n elementsSelectable,\n nodesConnectable,\n nodesFocusable,\n resizeObserver,\n noDragClassName,\n noPanClassName,\n disableKeyboardA11y,\n rfId,\n nodeTypes,\n nodeExtent,\n nodeOrigin,\n onError,\n}: NodeWrapperProps<NodeType>) {\n const { node, internals, isParent } = useStore((s) => {\n const node = s.nodeLookup.get(id)! as InternalNode<NodeType>;\n const isParent = s.parentLookup.has(id);\n\n return {\n node,\n internals: node.internals,\n isParent,\n };\n }, shallow);\n\n let nodeType = node.type || 'default';\n let NodeComponent = nodeTypes?.[nodeType] || builtinNodeTypes[nodeType];\n\n if (NodeComponent === undefined) {\n onError?.('003', errorMessages['error003'](nodeType));\n nodeType = 'default';\n NodeComponent = builtinNodeTypes.default;\n }\n\n const isDraggable = !!(\n node.draggable ||\n (nodesDraggable && typeof node.draggable === 'undefined')\n );\n const isSelectable = !!(\n node.selectable ||\n (elementsSelectable && typeof node.selectable === 'undefined')\n );\n const isConnectable = !!(\n node.connectable ||\n (nodesConnectable && typeof node.connectable === 'undefined')\n );\n const isFocusable = !!(\n node.focusable ||\n (nodesFocusable && typeof node.focusable === 'undefined')\n );\n\n const store = useStoreApi();\n const hasDimensions = nodeHasDimensions(node);\n const nodeRef = useNodeObserver({\n node,\n nodeType,\n hasDimensions,\n resizeObserver,\n });\n const dragging = useDrag({\n nodeRef,\n disabled: node.hidden || !isDraggable,\n noDragClassName,\n handleSelector: node.dragHandle,\n nodeId: id,\n isSelectable,\n });\n const moveSelectedNodes = useMoveSelectedNodes();\n\n if (node.hidden) {\n return null;\n }\n\n const nodeDimensions = getNodeDimensions(node);\n const inlineDimensions = getNodeInlineStyleDimensions(node);\n const clampedPosition = nodeExtent\n ? clampPosition(internals.positionAbsolute, nodeExtent)\n : internals.positionAbsolute;\n\n const positionWithOrigin = getPositionWithOrigin({\n ...clampedPosition,\n ...nodeDimensions,\n origin: node.origin || nodeOrigin,\n });\n const hasPointerEvents =\n isSelectable ||\n isDraggable ||\n onClick ||\n onMouseEnter ||\n onMouseMove ||\n onMouseLeave;\n\n const onMouseEnterHandler = onMouseEnter\n ? (event: MouseEvent) => onMouseEnter(event, { ...internals.userNode })\n : undefined;\n const onMouseMoveHandler = onMouseMove\n ? (event: MouseEvent) => onMouseMove(event, { ...internals.userNode })\n : undefined;\n const onMouseLeaveHandler = onMouseLeave\n ? (event: MouseEvent) => onMouseLeave(event, { ...internals.userNode })\n : undefined;\n const onContextMenuHandler = onContextMenu\n ? (event: MouseEvent) => onContextMenu(event, { ...internals.userNode })\n : undefined;\n const onDoubleClickHandler = onDoubleClick\n ? (event: MouseEvent) => onDoubleClick(event, { ...internals.userNode })\n : undefined;\n\n const onSelectNodeHandler = (event: MouseEvent) => {\n const { selectNodesOnDrag, nodeDragThreshold } = store.getState();\n\n if (\n isSelectable &&\n (!selectNodesOnDrag || !isDraggable || nodeDragThreshold > 0)\n ) {\n // this handler gets called by XYDrag on drag start when selectNodesOnDrag=true\n // here we only need to call it when selectNodesOnDrag=false\n handleNodeClick({\n id,\n store,\n nodeRef,\n });\n }\n\n if (onClick) {\n onClick(event, { ...internals.userNode });\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (isInputDOMNode(event.nativeEvent) || disableKeyboardA11y) {\n return;\n }\n\n if (elementSelectionKeys.includes(event.key) && isSelectable) {\n const unselect = event.key === 'Escape';\n\n handleNodeClick({\n id,\n store,\n unselect,\n nodeRef,\n });\n } else if (\n isDraggable &&\n node.selected &&\n Object.prototype.hasOwnProperty.call(arrowKeyDiffs, event.key)\n ) {\n store.setState({\n ariaLiveMessage: `Moved selected node ${event.key\n .replace('Arrow', '')\n .toLowerCase()}. New position, x: ${~~clampedPosition.x}, y: ${~~clampedPosition.y}`,\n });\n\n moveSelectedNodes({\n direction: arrowKeyDiffs[event.key],\n factor: event.shiftKey ? 4 : 1,\n });\n }\n };\n\n return (\n <div\n className={cc([\n 'ink-flow__node',\n `ink-flow__node-${nodeType}`,\n {\n // this is overwritable by passing `nopan` as a class name\n [noPanClassName]: isDraggable,\n },\n node.className,\n {\n selected: node.selected,\n selectable: isSelectable,\n parent: isParent,\n draggable: isDraggable,\n dragging,\n },\n ])}\n ref={nodeRef}\n style={{\n zIndex: internals.z,\n transform: `translate(${positionWithOrigin.x}px,${positionWithOrigin.y}px)`,\n pointerEvents: hasPointerEvents ? 'all' : 'none',\n visibility: hasDimensions ? 'visible' : 'hidden',\n ...node.style,\n ...inlineDimensions,\n }}\n data-id={id}\n data-testid={`rf__node-${id}`}\n onMouseEnter={onMouseEnterHandler}\n onMouseMove={onMouseMoveHandler}\n onMouseLeave={onMouseLeaveHandler}\n onContextMenu={onContextMenuHandler}\n onClick={onSelectNodeHandler}\n onDoubleClick={onDoubleClickHandler}\n onKeyDown={isFocusable ? onKeyDown : undefined}\n tabIndex={isFocusable ? 0 : undefined}\n role={isFocusable ? 'button' : undefined}\n aria-describedby={\n disableKeyboardA11y ? undefined : `${ARIA_NODE_DESC_KEY}-${rfId}`\n }\n aria-label={node.ariaLabel}\n >\n <Provider value={id}>\n <NodeComponent\n id={id}\n data={node.data}\n type={nodeType}\n positionAbsoluteX={clampedPosition.x}\n positionAbsoluteY={clampedPosition.y}\n selected={node.selected}\n isConnectable={isConnectable}\n sourcePosition={node.sourcePosition}\n targetPosition={node.targetPosition}\n dragging={dragging}\n dragHandle={node.dragHandle}\n zIndex={internals.z}\n {...nodeDimensions}\n />\n </Provider>\n </div>\n );\n}\n","import { useEffect, useRef } from 'react';\n\nimport type { InternalNode } from '../../types';\nimport { useStoreApi } from '../../hooks/useStore';\n\n/**\n * Hook to handle the resize observation + internal updates for the passed node.\n *\n * @internal\n * @returns nodeRef - reference to the node element\n */\nexport function useNodeObserver({\n node,\n nodeType,\n hasDimensions,\n resizeObserver,\n}: {\n node: InternalNode;\n nodeType: string;\n hasDimensions: boolean;\n resizeObserver: ResizeObserver | null;\n}) {\n const store = useStoreApi();\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const observedNode = useRef<HTMLDivElement | null>(null);\n const prevSourcePosition = useRef(node.sourcePosition);\n const prevTargetPosition = useRef(node.targetPosition);\n const prevType = useRef(nodeType);\n const isInitialized = hasDimensions && !!node.internals.handleBounds && !node.hidden;\n\n useEffect(() => {\n if (nodeRef.current && (!isInitialized || observedNode.current !== nodeRef.current)) {\n if (observedNode.current) {\n resizeObserver?.unobserve(observedNode.current);\n }\n resizeObserver?.observe(nodeRef.current);\n observedNode.current = nodeRef.current;\n }\n }, [isInitialized]);\n\n useEffect(() => {\n return () => {\n if (observedNode.current) {\n resizeObserver?.unobserve(observedNode.current);\n observedNode.current = null;\n }\n };\n }, []);\n\n useEffect(() => {\n if (nodeRef.current) {\n // when the user programmatically changes the source or handle position, we need to update the internals\n // to make sure the edges are updated correctly\n const typeChanged = prevType.current !== nodeType;\n const sourcePosChanged = prevSourcePosition.current !== node.sourcePosition;\n const targetPosChanged = prevTargetPosition.current !== node.targetPosition;\n\n if (typeChanged || sourcePosChanged || targetPosChanged) {\n prevType.current = nodeType;\n prevSourcePosition.current = node.sourcePosition;\n prevTargetPosition.current = node.targetPosition;\n\n store\n .getState()\n .updateNodeInternals(new Map([[node.id, { id: node.id, nodeElement: nodeRef.current, force: true }]]));\n }\n }\n }, [node.id, nodeType, node.sourcePosition, node.targetPosition]);\n\n return nodeRef;\n}\n","import { useEffect, useRef, useState, type RefObject } from 'react';\nimport { useStoreApi } from './useStore';\nimport { handleNodeClick } from '../components/Nodes/utils';\nimport { XYDrag, XYDragInstance } from '../utils/xydrag';\n\ntype UseDragParams = {\n nodeRef: RefObject<HTMLDivElement>;\n disabled?: boolean;\n noDragClassName?: string;\n handleSelector?: string;\n nodeId?: string;\n isSelectable?: boolean;\n};\n\nexport function useDrag({\n nodeRef,\n disabled = false,\n noDragClassName,\n handleSelector,\n nodeId,\n isSelectable,\n}: UseDragParams) {\n const store = useStoreApi();\n const [dragging, setDragging] = useState<boolean>(false);\n const xyDrag = useRef<XYDragInstance>();\n\n useEffect(() => {\n xyDrag.current = XYDrag({\n getStoreItems: () => store.getState(),\n onNodeMouseDown: (id: string) => {\n handleNodeClick({\n id,\n store,\n nodeRef,\n });\n },\n onDragStart: () => {\n setDragging(true);\n },\n onDragStop: () => {\n setDragging(false);\n },\n });\n }, []);\n\n useEffect(() => {\n if (disabled) {\n xyDrag.current?.destroy();\n } else if (nodeRef.current) {\n xyDrag.current?.update({\n noDragClassName,\n handleSelector,\n domNode: nodeRef.current,\n isSelectable,\n nodeId,\n });\n return () => {\n xyDrag.current?.destroy();\n };\n }\n }, [\n noDragClassName,\n handleSelector,\n disabled,\n isSelectable,\n nodeRef,\n nodeId,\n ]);\n\n return dragging;\n}\n","import { memo } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { GraphViewProps } from '../GraphView';\nimport { useResizeObserver } from './useResizeObserver';\nimport type { Node, InkFlowState } from '../../types';\nimport { useStore } from '../../hooks';\nimport { useVisibleNodeIds } from '../../hooks/useVisibleNodeIds';\nimport { containerStyle } from '../../styles/utils';\nimport { NodeWrapper } from '../../components/NodeWrapper';\n\nexport type NodeRendererProps<NodeType extends Node> = Pick<\n GraphViewProps<NodeType>,\n // | 'onNodeClick'\n // | 'onNodeDoubleClick'\n // | 'onNodeMouseEnter'\n // | 'onNodeMouseMove'\n // | 'onNodeMouseLeave'\n // | 'onNodeContextMenu'\n // | 'onlyRenderVisibleElements'\n | 'noPanClassName'\n | 'noDragClassName'\n | 'rfId'\n | 'disableKeyboardA11y'\n | 'nodeOrigin'\n // | 'nodeExtent'\n | 'nodeTypes'\n>;\n\nconst selector = (s: InkFlowState) => ({\n nodesDraggable: s.nodesDraggable,\n nodesConnectable: s.nodesConnectable,\n nodesFocusable: s.nodesFocusable,\n elementsSelectable: s.elementsSelectable,\n onError: s.onError,\n});\n\nfunction NodeRendererComponent<NodeType extends Node>(\n props: NodeRendererProps<NodeType>,\n) {\n const {\n nodesDraggable,\n nodesConnectable,\n nodesFocusable,\n elementsSelectable,\n onError,\n } = useStore(selector, shallow);\n // const nodeIds = useVisibleNodeIds(props.onlyRenderVisibleElements);\n const nodeIds = useVisibleNodeIds(false); // FIXME\n const resizeObserver = useResizeObserver();\n\n return (\n <div className=\"ink-flow__nodes\" style={containerStyle}>\n {nodeIds.map((nodeId) => {\n return (\n <NodeWrapper<NodeType>\n key={nodeId}\n id={nodeId}\n nodeTypes={props.nodeTypes}\n // nodeExtent={props.nodeExtent}\n nodeOrigin={props.nodeOrigin}\n // onClick={props.onNodeClick}\n // onMouseEnter={props.onNodeMouseEnter}\n // onMouseMove={props.onNodeMouseMove}\n // onMouseLeave={props.onNodeMouseLeave}\n // onContextMenu={props.onNodeContextMenu}\n // onDoubleClick={props.onNodeDoubleClick}\n noDragClassName={props.noDragClassName}\n noPanClassName={props.noPanClassName}\n rfId={props.rfId}\n disableKeyboardA11y={props.disableKeyboardA11y}\n resizeObserver={resizeObserver}\n nodesDraggable={nodesDraggable}\n nodesConnectable={nodesConnectable}\n nodesFocusable={nodesFocusable}\n elementsSelectable={elementsSelectable}\n onError={onError}\n />\n );\n })}\n </div>\n );\n}\n\nNodeRendererComponent.displayName = 'NodeRenderer';\n\nexport const NodeRenderer = memo(\n NodeRendererComponent,\n) as typeof NodeRendererComponent;\n","import { useMemo } from 'react';\nimport { errorMessages } from '../../constants';\nimport { useStoreApi } from '../../hooks';\nimport { EdgeMarker, MarkerType } from '../../types/system';\n\ntype SymbolProps = Omit<EdgeMarker, 'type'>;\n\nconst ArrowSymbol = ({ color = 'none', strokeWidth = 1 }: SymbolProps) => {\n return (\n <polyline\n style={{\n stroke: color,\n strokeWidth,\n }}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n points=\"-5,-4 0,0 -5,4\"\n />\n );\n};\n\nconst ArrowClosedSymbol = ({\n color = 'none',\n strokeWidth = 1,\n}: SymbolProps) => {\n return (\n <polyline\n style={{\n stroke: color,\n fill: color,\n strokeWidth,\n }}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n points=\"-5,-4 0,0 -5,4 -5,-4\"\n />\n );\n};\n\nexport const MarkerSymbols = {\n [MarkerType.Arrow]: ArrowSymbol,\n [MarkerType.ArrowClosed]: ArrowClosedSymbol,\n};\n\nexport function useMarkerSymbol(type: MarkerType) {\n const store = useStoreApi();\n\n const symbol = useMemo(() => {\n const symbolExists = Object.prototype.hasOwnProperty.call(\n MarkerSymbols,\n type,\n );\n\n if (!symbolExists) {\n store.getState().onError?.('009', errorMessages['error009'](type));\n\n return null;\n }\n\n return MarkerSymbols[type];\n }, [type]);\n\n return symbol;\n}\n","import {\n EdgeMarkerType,\n EdgeMarker,\n EdgeBase,\n MarkerProps,\n} from '../types/system';\n\nexport function getMarkerId(\n marker: EdgeMarkerType | undefined,\n id?: string | null,\n): string {\n if (!marker) {\n return '';\n }\n\n if (typeof marker === 'string') {\n return marker;\n }\n\n const idPrefix = id ? `${id}__` : '';\n\n return `${idPrefix}${Object.keys(marker)\n .sort()\n .map((key) => `${key}=${marker[key as keyof EdgeMarker]}`)\n .join('&')}`;\n}\n\nexport function createMarkerIds(\n edges: EdgeBase[],\n {\n id,\n defaultColor,\n defaultMarkerStart,\n defaultMarkerEnd,\n }: {\n id?: string | null;\n defaultColor?: string;\n defaultMarkerStart?: EdgeMarkerType;\n defaultMarkerEnd?: EdgeMarkerType;\n },\n) {\n const ids = new Set<string>();\n\n return edges\n .reduce<MarkerProps[]>((markers, edge) => {\n [\n edge.markerStart || defaultMarkerStart,\n edge.markerEnd || defaultMarkerEnd,\n ].forEach((marker) => {\n if (marker && typeof marker === 'object') {\n const markerId = getMarkerId(marker, id);\n if (!ids.has(markerId)) {\n markers.push({\n id: markerId,\n color: marker.color || defaultColor,\n ...marker,\n });\n ids.add(markerId);\n }\n }\n });\n\n return markers;\n }, [])\n .sort((a, b) => a.id.localeCompare(b.id));\n}\n","import { memo, useMemo } from 'react';\n\nimport { useMarkerSymbol } from './MarkerSymbols';\nimport { useStore } from '../../hooks';\nimport { MarkerProps } from '../../types/system';\nimport { createMarkerIds } from '../../utils/marker';\n\ntype MarkerDefinitionsProps = {\n defaultColor: string;\n rfId?: string;\n};\n\nconst Marker = ({\n id,\n type,\n color,\n width = 12.5,\n height = 12.5,\n markerUnits = 'strokeWidth',\n strokeWidth,\n orient = 'auto-start-reverse',\n}: MarkerProps) => {\n const Symbol = useMarkerSymbol(type);\n\n if (!Symbol) {\n return null;\n }\n\n return (\n <marker\n className=\"ink-flow__arrowhead\"\n id={id}\n markerWidth={`${width}`}\n markerHeight={`${height}`}\n viewBox=\"-10 -10 20 20\"\n markerUnits={markerUnits}\n orient={orient}\n refX=\"0\"\n refY=\"0\"\n >\n <Symbol color={color} strokeWidth={strokeWidth} />\n </marker>\n );\n};\n\n// when you have multiple flows on a page and you hide the first one, the other ones have no markers anymore\n// when they do have markers with the same ids. To prevent this the user can pass a unique id to the Ink Flow wrapper\n// that we can then use for creating our unique marker ids\nconst MarkerDefinitions = ({ defaultColor, rfId }: MarkerDefinitionsProps) => {\n const edges = useStore((s) => s.edges);\n const defaultEdgeOptions = useStore((s) => s.defaultEdgeOptions); // FIXME\n\n const markers = useMemo(() => {\n const markers = createMarkerIds(edges, {\n id: rfId,\n defaultColor,\n defaultMarkerStart: defaultEdgeOptions?.markerStart,\n defaultMarkerEnd: defaultEdgeOptions?.markerEnd,\n });\n\n return markers;\n }, [edges, defaultEdgeOptions, rfId, defaultColor]);\n\n if (!markers.length) {\n return null;\n }\n\n return (\n <svg className=\"ink-flow__marker\">\n <defs>\n {markers.map((marker: MarkerProps) => (\n <Marker\n id={marker.id}\n key={marker.id}\n type={marker.type}\n color={marker.color}\n width={marker.width}\n height={marker.height}\n markerUnits={marker.markerUnits}\n strokeWidth={marker.strokeWidth}\n orient={marker.orient}\n />\n ))}\n </defs>\n </svg>\n );\n};\n\nMarkerDefinitions.displayName = 'MarkerDefinitions';\n\nexport default memo(MarkerDefinitions);\n","import { memo, useState, useCallback } from 'react';\nimport cc from 'classnames';\nimport { EdgeTextProps } from '../../types';\nimport { Rect } from '../../types/system';\n\nfunction EdgeTextComponent({\n x,\n y,\n label,\n labelStyle = {},\n labelShowBg = true,\n labelBgStyle = {},\n labelBgPadding = [2, 4],\n labelBgBorderRadius = 2,\n children,\n className,\n ...rest\n}: EdgeTextProps) {\n const [edgeTextBbox, setEdgeTextBbox] = useState<Rect>({\n x: 1,\n y: 0,\n width: 0,\n height: 0,\n });\n const edgeTextClasses = cc(['ink-flow__edge-textwrapper', className]);\n\n const onEdgeTextRefChange = useCallback((edgeRef: SVGTextElement) => {\n if (edgeRef === null) return;\n\n const textBbox = edgeRef.getBBox();\n\n setEdgeTextBbox({\n x: textBbox.x,\n y: textBbox.y,\n width: textBbox.width,\n height: textBbox.height,\n });\n }, []);\n\n if (typeof label === 'undefined' || !label) {\n return null;\n }\n\n return (\n <g\n transform={`translate(${x - edgeTextBbox.width / 2} ${\n y - edgeTextBbox.height / 2\n })`}\n className={edgeTextClasses}\n visibility={edgeTextBbox.width ? 'visible' : 'hidden'}\n {...rest}\n >\n {labelShowBg && (\n <rect\n width={edgeTextBbox.width + 2 * labelBgPadding[0]}\n x={-labelBgPadding[0]}\n y={-labelBgPadding[1]}\n height={edgeTextBbox.height + 2 * labelBgPadding[1]}\n className=\"ink-flow__edge-textbg\"\n style={labelBgStyle}\n rx={labelBgBorderRadius}\n ry={labelBgBorderRadius}\n />\n )}\n <text\n className=\"ink-flow__edge-text\"\n y={edgeTextBbox.height / 2}\n dy=\"0.3em\"\n ref={onEdgeTextRefChange}\n style={labelStyle}\n >\n {label}\n </text>\n {children}\n </g>\n );\n}\n\nEdgeTextComponent.displayName = 'EdgeText';\n\nexport const EdgeText = memo(EdgeTextComponent);\n","import cc from 'classnames';\n\nimport { EdgeText } from './EdgeText';\nimport { BaseEdgeProps } from '../../types';\nimport { isNumeric } from '../../utils/general';\n\nexport function BaseEdge({\n id,\n path,\n labelX,\n labelY,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n markerEnd,\n markerStart,\n className,\n interactionWidth = 20,\n}: BaseEdgeProps) {\n return (\n <>\n <path\n id={id}\n style={style}\n d={path}\n fill=\"none\"\n className={cc(['ink-flow__edge-path', className])}\n markerEnd={markerEnd}\n markerStart={markerStart}\n />\n {interactionWidth && (\n <path\n d={path}\n fill=\"none\"\n strokeOpacity={0}\n strokeWidth={interactionWidth}\n className=\"ink-flow__edge-interaction\"\n />\n )}\n {label && isNumeric(labelX) && isNumeric(labelY) ? (\n <EdgeText\n x={labelX}\n y={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n />\n ) : null}\n </>\n );\n}\n","import { memo } from 'react';\n\nimport { BaseEdge } from './BaseEdge';\nimport type { SimpleBezierEdgeProps } from '../../types';\nimport { Position } from '../../types/system';\nimport { getBezierEdgeCenter } from '../../utils/edges';\n\nexport interface GetSimpleBezierPathParams {\n sourceX: number;\n sourceY: number;\n sourcePosition?: Position;\n targetX: number;\n targetY: number;\n targetPosition?: Position;\n}\n\ninterface GetControlParams {\n pos: Position;\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n}\n\nfunction getControl({\n pos,\n x1,\n y1,\n x2,\n y2,\n}: GetControlParams): [number, number] {\n if (pos === Position.Left || pos === Position.Right) {\n return [0.5 * (x1 + x2), y1];\n }\n\n return [x1, 0.5 * (y1 + y2)];\n}\n\nexport function getSimpleBezierPath({\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n}: GetSimpleBezierPathParams): [\n path: string,\n labelX: number,\n labelY: number,\n offsetX: number,\n offsetY: number,\n] {\n const [sourceControlX, sourceControlY] = getControl({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY,\n });\n const [targetControlX, targetControlY] = getControl({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY,\n });\n const [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY,\n });\n\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n labelX,\n labelY,\n offsetX,\n offsetY,\n ];\n}\n\nfunction createSimpleBezierEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(\n ({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition = Position.Bottom,\n targetPosition = Position.Top,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n markerEnd,\n markerStart,\n interactionWidth,\n }: SimpleBezierEdgeProps) => {\n const [path, labelX, labelY] = getSimpleBezierPath({\n sourceX,\n sourceY,\n sourcePosition,\n targetX,\n targetY,\n targetPosition,\n });\n\n const _id = params.isInternal ? undefined : id;\n\n return (\n <BaseEdge\n id={_id}\n path={path}\n labelX={labelX}\n labelY={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n style={style}\n markerEnd={markerEnd}\n markerStart={markerStart}\n interactionWidth={interactionWidth}\n />\n );\n },\n );\n}\n\nconst SimpleBezierEdge = createSimpleBezierEdge({ isInternal: false });\nconst SimpleBezierEdgeInternal = createSimpleBezierEdge({ isInternal: true });\n\nSimpleBezierEdge.displayName = 'SimpleBezierEdge';\nSimpleBezierEdgeInternal.displayName = 'SimpleBezierEdgeInternal';\n\nexport { SimpleBezierEdge, SimpleBezierEdgeInternal };\n","import { memo } from 'react';\n\nimport { BaseEdge } from './BaseEdge';\nimport type { SmoothStepEdgeProps } from '../../types';\nimport { Position } from '../../types/system';\nimport { getSmoothStepPath } from '../../utils/edges';\n\nfunction createSmoothStepEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(\n ({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n sourcePosition = Position.Bottom,\n targetPosition = Position.Top,\n markerEnd,\n markerStart,\n pathOptions,\n interactionWidth,\n }: SmoothStepEdgeProps) => {\n const [path, labelX, labelY] = getSmoothStepPath({\n sourceX,\n sourceY,\n sourcePosition,\n targetX,\n targetY,\n targetPosition,\n borderRadius: pathOptions?.borderRadius,\n offset: pathOptions?.offset,\n });\n\n const _id = params.isInternal ? undefined : id;\n\n return (\n <BaseEdge\n id={_id}\n path={path}\n labelX={labelX}\n labelY={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n style={style}\n markerEnd={markerEnd}\n markerStart={markerStart}\n interactionWidth={interactionWidth}\n />\n );\n },\n );\n}\n\nconst SmoothStepEdge = createSmoothStepEdge({ isInternal: false });\nconst SmoothStepEdgeInternal = createSmoothStepEdge({ isInternal: true });\n\nSmoothStepEdge.displayName = 'SmoothStepEdge';\nSmoothStepEdgeInternal.displayName = 'SmoothStepEdgeInternal';\n\nexport { SmoothStepEdge, SmoothStepEdgeInternal };\n","import { memo, useMemo } from 'react';\n\nimport { SmoothStepEdge } from './SmoothStepEdge';\nimport type { StepEdgeProps } from '../../types';\n\nfunction createStepEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(({ id, ...props }: StepEdgeProps) => {\n const _id = params.isInternal ? undefined : id;\n\n return (\n <SmoothStepEdge\n {...props}\n id={_id}\n pathOptions={useMemo(\n () => ({ borderRadius: 0, offset: props.pathOptions?.offset }),\n [props.pathOptions?.offset]\n )}\n />\n );\n });\n}\n\nconst StepEdge = createStepEdge({ isInternal: false });\nconst StepEdgeInternal = createStepEdge({ isInternal: true });\n\nStepEdge.displayName = 'StepEdge';\nStepEdgeInternal.displayName = 'StepEdgeInternal';\n\nexport { StepEdge, StepEdgeInternal };\n","import { memo } from 'react';\n\nimport { BaseEdge } from './BaseEdge';\nimport type { StraightEdgeProps } from '../../types';\nimport { getStraightPath } from '../../utils/edges';\n\nfunction createStraightEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(\n ({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n markerEnd,\n markerStart,\n interactionWidth,\n }: StraightEdgeProps) => {\n const [path, labelX, labelY] = getStraightPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n });\n\n const _id = params.isInternal ? undefined : id;\n\n return (\n <BaseEdge\n id={_id}\n path={path}\n labelX={labelX}\n labelY={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n style={style}\n markerEnd={markerEnd}\n markerStart={markerStart}\n interactionWidth={interactionWidth}\n />\n );\n },\n );\n}\n\nconst StraightEdge = createStraightEdge({ isInternal: false });\nconst StraightEdgeInternal = createStraightEdge({ isInternal: true });\n\nStraightEdge.displayName = 'StraightEdge';\nStraightEdgeInternal.displayName = 'StraightEdgeInternal';\n\nexport { StraightEdge, StraightEdgeInternal };\n","import { getEdgeCenter } from './general';\n\nexport type GetStraightPathParams = {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n};\n\n/**\n * Get a straight path from source to target handle\n * @param params.sourceX - The x position of the source handle\n * @param params.sourceY - The y position of the source handle\n * @param params.targetX - The x position of the target handle\n * @param params.targetY - The y position of the target handle\n * @returns A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label\n * @example\n * const source = { x: 0, y: 20 };\n const target = { x: 150, y: 100 };\n \n const [path, labelX, labelY, offsetX, offsetY] = getStraightPath({\n sourceX: source.x,\n sourceY: source.y,\n sourcePosition: Position.Right,\n targetX: target.x,\n targetY: target.y,\n targetPosition: Position.Left,\n });\n */\nexport function getStraightPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n}: GetStraightPathParams): [path: string, labelX: number, labelY: number, offsetX: number, offsetY: number] {\n const [labelX, labelY, offsetX, offsetY] = getEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n });\n\n return [`M ${sourceX},${sourceY}L ${targetX},${targetY}`, labelX, labelY, offsetX, offsetY];\n}\n","import { memo } from 'react';\r\n\r\nimport { BaseEdge } from './BaseEdge';\r\nimport { Position } from '../../types/system';\r\nimport { BezierEdgeProps } from '../../types';\r\nimport { getBezierPath } from '../../utils/edges';\r\n\r\nfunction createBezierEdge(params: { isInternal: boolean }) {\r\n // eslint-disable-next-line react/display-name\r\n return memo(\r\n ({\r\n id,\r\n sourceX,\r\n sourceY,\r\n targetX,\r\n targetY,\r\n sourcePosition = Position.Bottom,\r\n targetPosition = Position.Top,\r\n label,\r\n labelStyle,\r\n labelShowBg,\r\n labelBgStyle,\r\n labelBgPadding,\r\n labelBgBorderRadius,\r\n style,\r\n markerEnd,\r\n markerStart,\r\n pathOptions,\r\n interactionWidth,\r\n }: BezierEdgeProps) => {\r\n const [path, labelX, labelY] = getBezierPath({\r\n sourceX,\r\n sourceY,\r\n sourcePosition,\r\n targetX,\r\n targetY,\r\n targetPosition,\r\n curvature: pathOptions?.curvature,\r\n });\r\n\r\n const _id = params.isInternal ? undefined : id;\r\n\r\n return (\r\n <BaseEdge\r\n id={_id}\r\n path={path}\r\n labelX={labelX}\r\n labelY={labelY}\r\n label={label}\r\n labelStyle={labelStyle}\r\n labelShowBg={labelShowBg}\r\n labelBgStyle={labelBgStyle}\r\n labelBgPadding={labelBgPadding}\r\n labelBgBorderRadius={labelBgBorderRadius}\r\n style={style}\r\n markerEnd={markerEnd}\r\n markerStart={markerStart}\r\n interactionWidth={interactionWidth}\r\n />\r\n );\r\n },\r\n );\r\n}\r\n\r\nconst BezierEdge = createBezierEdge({ isInternal: false });\r\nconst BezierEdgeInternal = createBezierEdge({ isInternal: true });\r\n\r\nBezierEdge.displayName = 'BezierEdge';\r\nBezierEdgeInternal.displayName = 'BezierEdgeInternal';\r\n\r\nexport { BezierEdge, BezierEdgeInternal };\r\n","import type { EdgeTypes } from '../../types';\nimport {\n BezierEdgeInternal,\n StraightEdgeInternal,\n StepEdgeInternal,\n SmoothStepEdgeInternal,\n SimpleBezierEdgeInternal,\n} from '../Edges';\n\nexport const builtinEdgeTypes: EdgeTypes = {\n default: BezierEdgeInternal,\n straight: StraightEdgeInternal,\n step: StepEdgeInternal,\n smoothstep: SmoothStepEdgeInternal,\n simplebezier: SimpleBezierEdgeInternal,\n};\n\nexport const nullPosition = {\n sourceX: null,\n sourceY: null,\n targetX: null,\n targetY: null,\n sourcePosition: null,\n targetPosition: null,\n};\n","import type { MouseEvent as ReactMouseEvent, SVGAttributes } from 'react';\nimport cc from 'classnames';\nimport { Position } from '../../types/system';\n\nconst shiftX = (x: number, shift: number, position: Position): number => {\n if (position === Position.Left) return x - shift;\n if (position === Position.Right) return x + shift;\n return x;\n};\n\nconst shiftY = (y: number, shift: number, position: Position): number => {\n if (position === Position.Top) return y - shift;\n if (position === Position.Bottom) return y + shift;\n return y;\n};\n\nexport interface EdgeAnchorProps extends SVGAttributes<SVGGElement> {\n position: Position;\n centerX: number;\n centerY: number;\n radius?: number;\n onMouseDown: (event: ReactMouseEvent<SVGGElement, MouseEvent>) => void;\n onMouseEnter: (event: ReactMouseEvent<SVGGElement, MouseEvent>) => void;\n onMouseOut: (event: ReactMouseEvent<SVGGElement, MouseEvent>) => void;\n type: string;\n}\n\nconst EdgeUpdaterClassName = 'ink-flow__edgeupdater';\n\nexport function EdgeAnchor({\n position,\n centerX,\n centerY,\n radius = 10,\n onMouseDown,\n onMouseEnter,\n onMouseOut,\n type,\n}: EdgeAnchorProps) {\n return (\n <circle\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n onMouseOut={onMouseOut}\n className={cc([EdgeUpdaterClassName, `${EdgeUpdaterClassName}-${type}`])}\n cx={shiftX(centerX, radius, position)}\n cy={shiftY(centerY, radius, position)}\n r={radius}\n stroke=\"transparent\"\n fill=\"transparent\"\n />\n );\n}\n","// Updatable edges have a anchors around their handles to update the edge.\nimport type { EdgeWrapperProps, Edge } from '../../types/edges';\nimport { useStoreApi } from '../../hooks/useStore';\nimport { EdgePosition, Connection } from '../../types/system';\nimport { XYHandle } from '../../utils/xyhandle';\nimport { EdgeAnchor } from '../Edges/EdgeAnchor';\n\ntype EdgeUpdateAnchorsProps<EdgeType extends Edge = Edge> = {\n edge: EdgeType;\n isUpdatable: boolean | 'source' | 'target';\n edgeUpdaterRadius: EdgeWrapperProps['edgeUpdaterRadius'];\n sourceHandleId: Edge['sourceHandle'];\n targetHandleId: Edge['targetHandle'];\n onEdgeUpdate: EdgeWrapperProps<EdgeType>['onEdgeUpdate'];\n onEdgeUpdateStart: EdgeWrapperProps<EdgeType>['onEdgeUpdateStart'];\n onEdgeUpdateEnd: EdgeWrapperProps<EdgeType>['onEdgeUpdateEnd'];\n setUpdateHover: (hover: boolean) => void;\n setUpdating: (updating: boolean) => void;\n} & EdgePosition;\n\nexport function EdgeUpdateAnchors<EdgeType extends Edge = Edge>({\n isUpdatable,\n edgeUpdaterRadius,\n edge,\n targetHandleId,\n sourceHandleId,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n onEdgeUpdate,\n onEdgeUpdateStart,\n onEdgeUpdateEnd,\n setUpdating,\n setUpdateHover,\n}: EdgeUpdateAnchorsProps<EdgeType>) {\n const store = useStoreApi();\n\n const handleEdgeUpdater = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n isSourceHandle: boolean,\n ) => {\n // avoid triggering edge updater if mouse btn is not left\n if (event.button !== 0) {\n return;\n }\n\n const {\n autoPanOnConnect,\n domNode,\n isValidConnection,\n connectionMode,\n connectionRadius,\n lib,\n onConnectStart,\n onConnectEnd,\n cancelConnection,\n nodeLookup,\n rfId: flowId,\n panBy,\n updateConnection,\n } = store.getState();\n const nodeId = isSourceHandle ? edge.target : edge.source;\n const handleId = (isSourceHandle ? targetHandleId : sourceHandleId) || null;\n const handleType = isSourceHandle ? 'target' : 'source';\n\n const isTarget = isSourceHandle;\n\n setUpdating(true);\n onEdgeUpdateStart?.(event, edge, handleType);\n\n const _onEdgeUpdateEnd = (evt: MouseEvent | TouchEvent) => {\n setUpdating(false);\n onEdgeUpdateEnd?.(evt, edge, handleType);\n };\n\n const onConnectEdge = (connection: Connection) =>\n onEdgeUpdate?.(edge, connection);\n\n XYHandle.onPointerDown(event.nativeEvent, {\n autoPanOnConnect,\n connectionMode,\n connectionRadius,\n domNode,\n handleId,\n nodeId,\n nodeLookup,\n isTarget,\n edgeUpdaterType: handleType,\n lib,\n flowId,\n cancelConnection,\n panBy,\n isValidConnection,\n onConnect: onConnectEdge,\n onConnectStart,\n onConnectEnd,\n onEdgeUpdateEnd: _onEdgeUpdateEnd,\n updateConnection,\n getTransform: () => store.getState().transform,\n getConnectionStartHandle: () => store.getState().connectionStartHandle,\n });\n };\n\n const onEdgeUpdaterSourceMouseDown = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n ): void => handleEdgeUpdater(event, true);\n const onEdgeUpdaterTargetMouseDown = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n ): void => handleEdgeUpdater(event, false);\n const onEdgeUpdaterMouseEnter = () => setUpdateHover(true);\n const onEdgeUpdaterMouseOut = () => setUpdateHover(false);\n\n return (\n <>\n {(isUpdatable === 'source' || isUpdatable === true) && (\n <EdgeAnchor\n position={sourcePosition}\n centerX={sourceX}\n centerY={sourceY}\n radius={edgeUpdaterRadius}\n onMouseDown={onEdgeUpdaterSourceMouseDown}\n onMouseEnter={onEdgeUpdaterMouseEnter}\n onMouseOut={onEdgeUpdaterMouseOut}\n type=\"source\"\n />\n )}\n {(isUpdatable === 'target' || isUpdatable === true) && (\n <EdgeAnchor\n position={targetPosition}\n centerX={targetX}\n centerY={targetY}\n radius={edgeUpdaterRadius}\n onMouseDown={onEdgeUpdaterTargetMouseDown}\n onMouseEnter={onEdgeUpdaterMouseEnter}\n onMouseOut={onEdgeUpdaterMouseOut}\n type=\"target\"\n />\n )}\n </>\n );\n}\n","import { errorMessages } from '../constants';\nimport {\n InternalNodeBase,\n ConnectionMode,\n OnError,\n EdgePosition,\n Position,\n NodeHandle,\n HandleElement,\n} from '../types/system';\nimport { getNodeDimensions } from './general';\n\nexport type GetEdgePositionParams = {\n id: string;\n sourceNode: InternalNodeBase;\n sourceHandle: string | null;\n targetNode: InternalNodeBase;\n targetHandle: string | null;\n connectionMode: ConnectionMode;\n onError?: OnError;\n};\n\nfunction isNodeInitialized(node: InternalNodeBase): boolean {\n return (\n node &&\n !!(node.internals.handleBounds || node.handles?.length) &&\n !!(node.measured.width || node.width || node.initialWidth)\n );\n}\n\nexport function getEdgePosition(\n params: GetEdgePositionParams,\n): EdgePosition | null {\n const { sourceNode, targetNode } = params;\n\n if (!isNodeInitialized(sourceNode) || !isNodeInitialized(targetNode)) {\n return null;\n }\n\n const sourceHandleBounds =\n sourceNode.internals.handleBounds || toHandleBounds(sourceNode.handles);\n const targetHandleBounds =\n targetNode.internals.handleBounds || toHandleBounds(targetNode.handles);\n\n const sourceHandle = getHandle(\n sourceHandleBounds?.source ?? [],\n params.sourceHandle,\n );\n const targetHandle = getHandle(\n // when connection type is loose we can define all handles as sources and connect source -> source\n params.connectionMode === ConnectionMode.Strict\n ? targetHandleBounds?.target ?? []\n : (targetHandleBounds?.target ?? []).concat(\n targetHandleBounds?.source ?? [],\n ),\n params.targetHandle,\n );\n const sourcePosition = sourceHandle?.position || Position.Bottom;\n const targetPosition = targetHandle?.position || Position.Top;\n\n if (!sourceHandle || !targetHandle) {\n params.onError?.(\n '008',\n errorMessages['error008'](!sourceHandle ? 'source' : 'target', {\n id: params.id,\n sourceHandle: params.sourceHandle,\n targetHandle: params.targetHandle,\n }),\n );\n\n return null;\n }\n\n const [sourceX, sourceY] = getHandlePosition(\n sourcePosition,\n sourceNode,\n sourceHandle,\n );\n const [targetX, targetY] = getHandlePosition(\n targetPosition,\n targetNode,\n targetHandle,\n );\n\n return {\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n };\n}\n\nfunction toHandleBounds(handles?: NodeHandle[]) {\n if (!handles) {\n return null;\n }\n\n const source = [];\n const target = [];\n\n for (const handle of handles) {\n handle.width = handle.width ?? 1;\n handle.height = handle.height ?? 1;\n\n if (handle.type === 'source') {\n source.push(handle as HandleElement);\n } else if (handle.type === 'target') {\n target.push(handle as HandleElement);\n }\n }\n\n return {\n source,\n target,\n };\n}\n\nfunction getHandlePosition(\n position: Position,\n node: InternalNodeBase,\n handle: HandleElement | null = null,\n): number[] {\n const x = (handle?.x ?? 0) + node.internals.positionAbsolute.x;\n const y = (handle?.y ?? 0) + node.internals.positionAbsolute.y;\n const { width, height } = handle ?? getNodeDimensions(node);\n\n switch (position) {\n case Position.Top:\n return [x + width / 2, y];\n case Position.Right:\n return [x + width, y + height / 2];\n case Position.Bottom:\n return [x + width / 2, y + height];\n case Position.Left:\n return [x, y + height / 2];\n }\n}\n\nfunction getHandle(\n bounds: HandleElement[],\n handleId?: string | null,\n): HandleElement | null {\n if (!bounds) {\n return null;\n }\n\n // if no handleId is given, we use the first handle, otherwise we check for the id\n return (\n (!handleId ? bounds[0] : bounds.find((d) => d.id === handleId)) || null\n );\n}\n","import {\n useState,\n useMemo,\n useRef,\n type KeyboardEvent,\n useCallback,\n} from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStoreApi, useStore } from '../../hooks/useStore';\nimport { builtinEdgeTypes, nullPosition } from './utils';\nimport { EdgeUpdateAnchors } from './EdgeUpdateAnchors';\nimport type { Edge, EdgeWrapperProps } from '../../types';\nimport { errorMessages, elementSelectionKeys } from '../../constants';\nimport { getMarkerId } from '../../utils/marker';\nimport { getEdgePosition } from '../../utils/positions';\nimport { getElevatedEdgeZIndex } from '../../utils/edges';\nimport { ARIA_EDGE_DESC_KEY } from '../A11yDescriptions';\n\nexport function EdgeWrapper<EdgeType extends Edge = Edge>({\n id,\n edgesFocusable,\n edgesUpdatable,\n elementsSelectable,\n onClick,\n onDoubleClick,\n onContextMenu,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n edgeUpdaterRadius,\n onEdgeUpdate,\n onEdgeUpdateStart,\n onEdgeUpdateEnd,\n rfId,\n edgeTypes,\n noPanClassName,\n onError,\n disableKeyboardA11y,\n}: EdgeWrapperProps<EdgeType>): JSX.Element | null {\n let edge = useStore((s) => s.edgeLookup.get(id)!) as EdgeType;\n const defaultEdgeOptions = useStore((s) => s.defaultEdgeOptions);\n edge = defaultEdgeOptions ? { ...defaultEdgeOptions, ...edge } : edge;\n\n let edgeType = edge.type || 'default';\n let EdgeComponent = edgeTypes?.[edgeType] || builtinEdgeTypes[edgeType];\n\n if (EdgeComponent === undefined) {\n onError?.('011', errorMessages['error011'](edgeType));\n edgeType = 'default';\n EdgeComponent = builtinEdgeTypes.default;\n }\n\n const isFocusable = !!(\n edge.focusable ||\n (edgesFocusable && typeof edge.focusable === 'undefined')\n );\n const isUpdatable =\n typeof onEdgeUpdate !== 'undefined' &&\n (edge.updatable ||\n (edgesUpdatable && typeof edge.updatable === 'undefined'));\n const isSelectable = !!(\n edge.selectable ||\n (elementsSelectable && typeof edge.selectable === 'undefined')\n );\n\n const edgeRef = useRef<SVGGElement>(null);\n const [updateHover, setUpdateHover] = useState<boolean>(false);\n const [updating, setUpdating] = useState<boolean>(false);\n const store = useStoreApi();\n\n const {\n zIndex,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n } = useStore(\n useCallback(\n (store) => {\n const sourceNode = store.nodeLookup.get(edge.source);\n const targetNode = store.nodeLookup.get(edge.target);\n\n if (!sourceNode || !targetNode) {\n return {\n zIndex: edge.zIndex,\n ...nullPosition,\n };\n }\n\n const edgePosition = getEdgePosition({\n id,\n sourceNode,\n targetNode,\n sourceHandle: edge.sourceHandle || null,\n targetHandle: edge.targetHandle || null,\n connectionMode: store.connectionMode,\n onError,\n });\n\n const zIndex = getElevatedEdgeZIndex({\n selected: edge.selected,\n zIndex: edge.zIndex,\n sourceNode,\n targetNode,\n elevateOnSelect: store.elevateEdgesOnSelect,\n });\n\n return {\n zIndex,\n ...(edgePosition || nullPosition),\n };\n },\n [\n edge.source,\n edge.target,\n edge.sourceHandle,\n edge.targetHandle,\n edge.selected,\n edge.zIndex,\n ],\n ),\n shallow,\n );\n\n const markerStartUrl = useMemo(\n () =>\n edge.markerStart\n ? `url('#${getMarkerId(edge.markerStart, rfId)}')`\n : undefined,\n [edge.markerStart, rfId],\n );\n\n const markerEndUrl = useMemo(\n () =>\n edge.markerEnd\n ? `url('#${getMarkerId(edge.markerEnd, rfId)}')`\n : undefined,\n [edge.markerEnd, rfId],\n );\n\n if (\n edge.hidden ||\n sourceX === null ||\n sourceY === null ||\n targetX === null ||\n targetY === null\n ) {\n return null;\n }\n\n const onEdgeClick = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n ): void => {\n const { addSelectedEdges, unselectNodesAndEdges, multiSelectionActive } =\n store.getState();\n\n if (isSelectable) {\n store.setState({ nodesSelectionActive: false });\n\n if (edge.selected && multiSelectionActive) {\n unselectNodesAndEdges({ nodes: [], edges: [edge] });\n edgeRef.current?.blur();\n } else {\n addSelectedEdges([id]);\n }\n }\n\n if (onClick) {\n onClick(event, edge);\n }\n };\n\n const onEdgeDoubleClick = onDoubleClick\n ? (event: React.MouseEvent) => {\n onDoubleClick(event, { ...edge });\n }\n : undefined;\n const onEdgeContextMenu = onContextMenu\n ? (event: React.MouseEvent) => {\n onContextMenu(event, { ...edge });\n }\n : undefined;\n const onEdgeMouseEnter = onMouseEnter\n ? (event: React.MouseEvent) => {\n onMouseEnter(event, { ...edge });\n }\n : undefined;\n const onEdgeMouseMove = onMouseMove\n ? (event: React.MouseEvent) => {\n onMouseMove(event, { ...edge });\n }\n : undefined;\n const onEdgeMouseLeave = onMouseLeave\n ? (event: React.MouseEvent) => {\n onMouseLeave(event, { ...edge });\n }\n : undefined;\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (\n !disableKeyboardA11y &&\n elementSelectionKeys.includes(event.key) &&\n isSelectable\n ) {\n const { unselectNodesAndEdges, addSelectedEdges } = store.getState();\n const unselect = event.key === 'Escape';\n\n if (unselect) {\n edgeRef.current?.blur();\n unselectNodesAndEdges({ edges: [edge] });\n } else {\n addSelectedEdges([id]);\n }\n }\n };\n\n return (\n <svg style={{ zIndex }}>\n <g\n className={cc([\n 'ink-flow__edge',\n `ink-flow__edge-${edgeType}`,\n edge.className,\n noPanClassName,\n {\n selected: edge.selected,\n animated: edge.animated,\n inactive: !isSelectable && !onClick,\n updating: updateHover,\n selectable: isSelectable,\n },\n ])}\n onClick={onEdgeClick}\n onDoubleClick={onEdgeDoubleClick}\n onContextMenu={onEdgeContextMenu}\n onMouseEnter={onEdgeMouseEnter}\n onMouseMove={onEdgeMouseMove}\n onMouseLeave={onEdgeMouseLeave}\n onKeyDown={isFocusable ? onKeyDown : undefined}\n tabIndex={isFocusable ? 0 : undefined}\n role={isFocusable ? 'button' : 'img'}\n data-id={id}\n data-testid={`rf__edge-${id}`}\n aria-label={\n edge.ariaLabel === null\n ? undefined\n : edge.ariaLabel || `Edge from ${edge.source} to ${edge.target}`\n }\n aria-describedby={\n isFocusable ? `${ARIA_EDGE_DESC_KEY}-${rfId}` : undefined\n }\n ref={edgeRef}\n >\n {!updating && (\n <EdgeComponent\n id={id}\n source={edge.source}\n target={edge.target}\n type={edge.type}\n selected={edge.selected}\n animated={edge.animated}\n label={edge.label}\n labelStyle={edge.labelStyle}\n labelShowBg={edge.labelShowBg}\n labelBgStyle={edge.labelBgStyle}\n labelBgPadding={edge.labelBgPadding}\n labelBgBorderRadius={edge.labelBgBorderRadius}\n sourceX={sourceX}\n sourceY={sourceY}\n targetX={targetX}\n targetY={targetY}\n sourcePosition={sourcePosition}\n targetPosition={targetPosition}\n data={edge.data}\n style={edge.style}\n sourceHandleId={edge.sourceHandle}\n targetHandleId={edge.targetHandle}\n markerStart={markerStartUrl}\n markerEnd={markerEndUrl}\n pathOptions={'pathOptions' in edge ? edge.pathOptions : undefined}\n interactionWidth={edge.interactionWidth}\n />\n )}\n {isUpdatable && (\n <EdgeUpdateAnchors<EdgeType>\n edge={edge}\n isUpdatable={isUpdatable}\n edgeUpdaterRadius={edgeUpdaterRadius}\n onEdgeUpdate={onEdgeUpdate}\n onEdgeUpdateStart={onEdgeUpdateStart}\n onEdgeUpdateEnd={onEdgeUpdateEnd}\n sourceX={sourceX}\n sourceY={sourceY}\n targetX={targetX}\n targetY={targetY}\n sourcePosition={sourcePosition}\n targetPosition={targetPosition}\n setUpdateHover={setUpdateHover}\n setUpdating={setUpdating}\n sourceHandleId={edge.sourceHandle}\n targetHandleId={edge.targetHandle}\n />\n )}\n </g>\n </svg>\n );\n}\n","import { memo, ReactNode } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport MarkerDefinitions from './MarkerDefinitions';\nimport { GraphViewProps } from '../GraphView';\nimport type { Edge, InkFlowState, Node } from '../../types';\nimport { useStore } from '../../hooks';\nimport { useVisibleEdgeIds } from '../../hooks/useVisibleEdgeIds';\nimport { EdgeWrapper } from '../../components/EdgeWrapper';\n\ntype EdgeRendererProps<EdgeType extends Edge = Edge> = Pick<\n GraphViewProps<Node, EdgeType>,\n // | 'onEdgeClick'\n // | 'onEdgeDoubleClick'\n | 'rfId'\n // | 'onlyRenderVisibleElements'\n | 'onEdgeUpdate'\n // | 'onEdgeContextMenu'\n // | 'onEdgeMouseEnter'\n // | 'onEdgeMouseMove'\n // | 'onEdgeMouseLeave'\n // | 'onEdgeUpdateStart'\n // | 'onEdgeUpdateEnd'\n // | 'edgeUpdaterRadius'\n | 'noPanClassName'\n> & {\n children?: ReactNode;\n};\n\nconst selector = (s: InkFlowState) => ({\n width: s.width,\n height: s.height,\n edgesFocusable: s.edgesFocusable,\n edgesUpdatable: s.edgesUpdatable,\n elementsSelectable: s.elementsSelectable,\n connectionMode: s.connectionMode,\n onError: s.onError,\n});\n\nfunction EdgeRendererComponent<EdgeType extends Edge = Edge>({\n // defaultMarkerColor,\n // onlyRenderVisibleElements,\n rfId,\n noPanClassName,\n onEdgeUpdate,\n}: // edgeTypes,\n\n// onEdgeContextMenu,\n// onEdgeMouseEnter,\n// onEdgeMouseMove,\n// onEdgeMouseLeave,\n// onEdgeClick,\n// edgeUpdaterRadius,\n// onEdgeDoubleClick,\n// onEdgeUpdateStart,\n// onEdgeUpdateEnd,\n// disableKeyboardA11y,\nEdgeRendererProps<EdgeType>) {\n const { edgesFocusable, edgesUpdatable, elementsSelectable, onError } =\n useStore(selector, shallow);\n const edgeIds = useVisibleEdgeIds(false); // TODO onlyRenderVisibleElements\n\n return (\n <div className=\"ink-flow__edges\">\n <MarkerDefinitions defaultColor={''} rfId={rfId} />\n\n {edgeIds.map((id) => {\n return (\n <EdgeWrapper<EdgeType>\n key={id}\n id={id}\n edgesFocusable={edgesFocusable}\n edgesUpdatable={edgesUpdatable}\n elementsSelectable={elementsSelectable}\n noPanClassName={noPanClassName}\n onEdgeUpdate={onEdgeUpdate}\n // onContextMenu={onEdgeContextMenu}\n // onMouseEnter={onEdgeMouseEnter}\n // onMouseMove={onEdgeMouseMove}\n // onMouseLeave={onEdgeMouseLeave}\n // onClick={onEdgeClick}\n // edgeUpdaterRadius={edgeUpdaterRadius}\n // onDoubleClick={onEdgeDoubleClick}\n // onEdgeUpdateStart={onEdgeUpdateStart}\n // onEdgeUpdateEnd={onEdgeUpdateEnd}\n rfId={rfId}\n onError={onError}\n // edgeTypes={edgeTypes}\n // disableKeyboardA11y={disableKeyboardA11y}\n />\n );\n })}\n </div>\n );\n}\n\nEdgeRendererComponent.displayName = 'EdgeRenderer';\n\nexport const EdgeRenderer = memo(\n EdgeRendererComponent,\n) as typeof EdgeRendererComponent;\n","import { useCallback } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore } from './useStore';\nimport { InkFlowState } from '../types';\nimport { isEdgeVisible } from '../utils/edges';\n\n/**\n * Hook for getting the visible edge ids from the store.\n *\n * @internal\n * @param onlyRenderVisible\n * @returns array with visible edge ids\n */\nexport function useVisibleEdgeIds(onlyRenderVisible: boolean): string[] {\n const edgeIds = useStore(\n useCallback(\n (s: InkFlowState) => {\n if (!onlyRenderVisible) {\n return s.edges.map((edge) => edge.id);\n }\n\n const visibleEdgeIds = [];\n\n if (s.width && s.height) {\n for (const edge of s.edges) {\n const sourceNode = s.nodeLookup.get(edge.source);\n const targetNode = s.nodeLookup.get(edge.target);\n\n if (\n sourceNode &&\n targetNode &&\n isEdgeVisible({\n sourceNode,\n targetNode,\n width: s.width,\n height: s.height,\n transform: s.transform,\n })\n ) {\n visibleEdgeIds.push(edge.id);\n }\n }\n }\n\n return visibleEdgeIds;\n },\n [onlyRenderVisible],\n ),\n shallow,\n );\n\n return edgeIds;\n}\n","import type { ReactNode } from 'react';\n\nimport type { InkFlowState } from '../../types';\nimport { useStore } from '../../hooks';\n\nconst selector = (s: InkFlowState) => {\n // console.log('yk InkFlowState', s);\n\n return `translate(${s.transform[0]}px,${s.transform[1]}px) scale(${s.transform[2]})`;\n};\n\ntype ViewportProps = {\n children: ReactNode;\n};\n\nexport function Viewport({ children }: ViewportProps) {\n const transform = useStore(selector);\n\n return (\n <div\n className=\"ink-flow__viewport xyflow__viewport ink-flow__container\"\n style={{ transform }}\n >\n {children}\n </div>\n );\n}\n","import { memo } from 'react';\n\nimport { FlowRenderer } from '../FlowRenderer';\nimport { NodeRenderer } from '../NodeRenderer';\nimport { EdgeRenderer } from '../EdgeRenderer';\nimport { Viewport } from '../Viewport';\nimport type { Edge, Node, InkFlowProps } from '../../types';\n\nexport type GraphViewProps<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n> = Omit<\n InkFlowProps<NodeType, EdgeType>,\n | 'onSelectionChange'\n | 'nodes'\n | 'edges'\n | 'onMove'\n | 'onMoveStart'\n | 'onMoveEnd'\n | 'elevateEdgesOnSelect'\n> &\n Required<\n Pick<\n InkFlowProps<NodeType, EdgeType>,\n | 'minZoom'\n | 'maxZoom'\n | 'noPanClassName'\n | 'noDragClassName'\n | 'nodeOrigin'\n | 'disableKeyboardA11y'\n >\n > & {\n rfId: string;\n };\n\nfunction GraphViewComponent<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>({\n rfId,\n minZoom,\n maxZoom,\n noPanClassName,\n noDragClassName,\n nodeOrigin,\n viewport,\n disableKeyboardA11y,\n translateExtent,\n defaultViewport,\n nodeTypes,\n elementsSelectable,\n onPaneClick,\n onPaneContextMenu,\n}: GraphViewProps<NodeType, EdgeType>) {\n return (\n <FlowRenderer<NodeType>\n minZoom={minZoom}\n maxZoom={maxZoom}\n noPanClassName={noPanClassName}\n noDragClassName={noDragClassName}\n isControlledViewport={!!viewport}\n disableKeyboardA11y={disableKeyboardA11y}\n translateExtent={translateExtent}\n defaultViewport={defaultViewport}\n elementsSelectable={elementsSelectable}\n onPaneClick={onPaneClick}\n onPaneContextMenu={onPaneContextMenu}\n >\n <Viewport>\n <EdgeRenderer<EdgeType> rfId={rfId} noPanClassName={noPanClassName} />\n {/* <ConnectionLineWrapper /> */}\n <div className=\"ink-flow__edgelabel-renderer\" />\n <NodeRenderer<NodeType>\n rfId={rfId}\n nodeTypes={nodeTypes}\n nodeOrigin={nodeOrigin}\n noDragClassName={noDragClassName}\n noPanClassName={noPanClassName}\n disableKeyboardA11y={false}\n />\n <div className=\"ink-flow__viewport-portal\" />\n </Viewport>\n </FlowRenderer>\n );\n}\n\nGraphViewComponent.displayName = 'GraphView';\n\nexport const GraphView = memo(GraphViewComponent) as typeof GraphViewComponent;\n","import { infiniteExtent } from '../constants';\n\nimport type { Edge, InternalNode, Node, InkFlowStore } from '../types';\nimport { ConnectionMode, Transform } from '../types/system';\nimport { adoptUserNodes, updateConnectionLookup } from '../utils/store';\n\nconst getInitialState = ({\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n}: {\n nodes?: Node[];\n edges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n width?: number;\n height?: number;\n fitView?: boolean;\n} = {}): InkFlowStore => {\n const nodeLookup = new Map<string, InternalNode>();\n const parentLookup = new Map();\n const connectionLookup = new Map();\n const edgeLookup = new Map();\n const storeEdges = defaultEdges ?? edges ?? [];\n const storeNodes = defaultNodes ?? nodes ?? [];\n\n updateConnectionLookup(connectionLookup, edgeLookup, storeEdges);\n adoptUserNodes(storeNodes, nodeLookup, parentLookup, {\n nodeOrigin: [0, 0],\n elevateNodesOnSelect: false,\n });\n\n let transform: Transform = [0, 0, 1];\n\n // if (fitView && width && height) {\n // // @todo users nodeOrigin should be used here\n // const bounds = getInternalNodesBounds(nodeLookup, {\n // nodeOrigin: [0, 0],\n // filter: (node) =>\n // !!(\n // (node.width || node.initialWidth) &&\n // (node.height || node.initialHeight)\n // ),\n // });\n // const { x, y, zoom } = getViewportForBounds(\n // bounds,\n // width,\n // height,\n // 0.5,\n // 2,\n // 0.1,\n // );\n // transform = [x, y, zoom];\n // }\n\n return {\n rfId: '1',\n width: 0,\n height: 0,\n transform,\n nodes: storeNodes,\n nodeLookup,\n parentLookup,\n edges: storeEdges,\n edgeLookup,\n connectionLookup,\n onNodesChange: null,\n onEdgesChange: null,\n hasDefaultNodes: defaultNodes !== undefined,\n hasDefaultEdges: defaultEdges !== undefined,\n panZoom: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: infiniteExtent,\n nodeExtent: infiniteExtent,\n nodesSelectionActive: false,\n userSelectionActive: false,\n userSelectionRect: null,\n connectionPosition: { x: 0, y: 0 },\n connectionStatus: null,\n connectionMode: ConnectionMode.Strict,\n domNode: null,\n paneDragging: false,\n noPanClassName: 'nopan',\n nodeOrigin: [0, 0],\n nodeDragThreshold: 1,\n\n snapGrid: [15, 15],\n snapToGrid: false,\n\n nodesDraggable: true,\n nodesConnectable: true,\n nodesFocusable: true,\n edgesFocusable: true,\n edgesUpdatable: true,\n elementsSelectable: true,\n elevateNodesOnSelect: true,\n elevateEdgesOnSelect: false,\n fitViewOnInit: false,\n fitViewDone: false,\n fitViewOnInitOptions: undefined,\n selectNodesOnDrag: true,\n\n multiSelectionActive: false,\n\n connectionStartHandle: null,\n connectionEndHandle: null,\n connectionClickStartHandle: null,\n connectOnClick: true,\n\n ariaLiveMessage: '',\n autoPanOnConnect: true,\n autoPanOnNodeDrag: true,\n connectionRadius: 20,\n onError: undefined,\n isValidConnection: undefined,\n onSelectionChangeHandlers: [],\n\n lib: 'react',\n debug: false,\n };\n};\n\nexport default getInitialState;\n","import { createWithEqualityFn } from 'zustand/traditional';\n\nimport {\n applyEdgeChanges,\n applyNodeChanges,\n createSelectionChange,\n getSelectionChanges,\n} from '../utils/changes';\nimport getInitialState from './initialState';\nimport type {\n Node,\n Edge,\n InkFlowState,\n FitViewOptions,\n UnselectNodesAndEdgesParams,\n} from '../types';\nimport {\n adoptUserNodes,\n handleExpandParent,\n updateAbsolutePositions,\n updateConnectionLookup,\n updateNodeInternals as updateNodeInternalsSystem,\n} from '../utils/store';\nimport {\n EdgeSelectionChange,\n NodeChange,\n NodeSelectionChange,\n} from '../types/system';\nimport { ParentExpandChild } from '../types/utils/types';\nimport { clampPosition } from '../utils/general';\nimport { fitView as fitViewSystem } from '../utils/graph';\nimport { panBy as panBySystem } from '../utils/store';\n\nconst createStore = ({\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n}: {\n nodes?: Node[];\n edges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n width?: number;\n height?: number;\n fitView?: boolean;\n}) =>\n createWithEqualityFn<InkFlowState>(\n (set, get) => ({\n ...getInitialState({\n nodes,\n edges,\n width,\n height,\n fitView,\n defaultNodes,\n defaultEdges,\n }),\n setNodes: (nodes: Node[]) => {\n const { nodeLookup, parentLookup, nodeOrigin, elevateNodesOnSelect } =\n get();\n // setNodes() is called exclusively in response to user actions:\n // - either when the `<InkFlow nodes>` prop is updated in the controlled InkFlow setup,\n // - or when the user calls something like `InkFlowInstance.setNodes()` in an uncontrolled InkFlow setup.\n //\n // When this happens, we take the note objects passed by the user and extend them with fields\n // relevant for internal Ink Flow operations.\n adoptUserNodes(nodes, nodeLookup, parentLookup, {\n nodeOrigin,\n elevateNodesOnSelect,\n checkEquality: true,\n });\n\n set({ nodes });\n },\n setEdges: (edges: Edge[]) => {\n const { connectionLookup, edgeLookup } = get();\n\n updateConnectionLookup(connectionLookup, edgeLookup, edges);\n\n set({ edges });\n },\n setDefaultNodesAndEdges: (nodes?: Node[], edges?: Edge[]) => {\n if (nodes) {\n const { setNodes } = get();\n setNodes(nodes);\n set({ hasDefaultNodes: true });\n }\n if (edges) {\n const { setEdges } = get();\n setEdges(edges);\n set({ hasDefaultEdges: true });\n }\n },\n // Every node gets registerd at a ResizeObserver. Whenever a node\n // changes its dimensions, this function is called to measure the\n // new dimensions and update the nodes.\n updateNodeInternals: (updates) => {\n const {\n triggerNodeChanges,\n fitView,\n nodeLookup,\n parentLookup,\n fitViewOnInit,\n fitViewDone,\n fitViewOnInitOptions,\n domNode,\n nodeOrigin,\n debug,\n } = get();\n\n const { changes, updatedInternals } = updateNodeInternalsSystem(\n updates,\n nodeLookup,\n parentLookup,\n domNode,\n nodeOrigin,\n );\n\n if (!updatedInternals) {\n return;\n }\n\n updateAbsolutePositions(nodeLookup, { nodeOrigin });\n\n // we call fitView once initially after all dimensions are set\n let nextFitViewDone = fitViewDone;\n if (!fitViewDone && fitViewOnInit) {\n nextFitViewDone = fitView({\n ...fitViewOnInitOptions,\n nodes: fitViewOnInitOptions?.nodes,\n });\n }\n\n // here we are cirmumventing the onNodesChange handler\n // in order to be able to display nodes even if the user\n // has not provided an onNodesChange handler.\n // Nodes are only rendered if they have a width and height\n // attribute which they get from this handler.\n set({ fitViewDone: nextFitViewDone });\n\n if (changes?.length > 0) {\n if (debug) {\n console.log('Ink Flow: trigger node changes', changes);\n }\n triggerNodeChanges?.(changes);\n }\n },\n updateNodePositions: (nodeDragItems, dragging = false) => {\n const parentExpandChildren: ParentExpandChild[] = [];\n const changes = [];\n\n for (const [id, dragItem] of nodeDragItems) {\n // @todo add expandParent to drag item so that we can get rid of the look up here\n const change: NodeChange = {\n id,\n type: 'position',\n position: dragItem.position,\n dragging,\n };\n\n if (dragItem?.expandParent && dragItem?.parentId && change.position) {\n parentExpandChildren.push({\n id,\n parentId: dragItem.parentId,\n rect: {\n ...dragItem.internals.positionAbsolute,\n width: dragItem.measured.width!,\n height: dragItem.measured.height!,\n },\n });\n\n change.position.x = Math.max(0, change.position.x);\n change.position.y = Math.max(0, change.position.y);\n }\n\n changes.push(change);\n }\n\n if (parentExpandChildren.length > 0) {\n const { nodeLookup, parentLookup } = get();\n const parentExpandChanges = handleExpandParent(\n parentExpandChildren,\n nodeLookup,\n parentLookup,\n );\n changes.push(...parentExpandChanges);\n }\n\n get().triggerNodeChanges(changes);\n },\n triggerNodeChanges: (changes) => {\n const { onNodesChange, setNodes, nodes, hasDefaultNodes, debug } =\n get();\n\n if (changes?.length) {\n if (hasDefaultNodes) {\n const updatedNodes = applyNodeChanges(changes, nodes);\n setNodes(updatedNodes);\n }\n\n if (debug) {\n console.log('Ink Flow: trigger node changes', changes);\n }\n\n onNodesChange?.(changes);\n }\n },\n triggerEdgeChanges: (changes) => {\n const { onEdgesChange, setEdges, edges, hasDefaultEdges, debug } =\n get();\n\n if (changes?.length) {\n if (hasDefaultEdges) {\n const updatedEdges = applyEdgeChanges(changes, edges);\n setEdges(updatedEdges);\n }\n\n if (debug) {\n console.log('Ink Flow: trigger edge changes', changes);\n }\n\n onEdgesChange?.(changes);\n }\n },\n addSelectedNodes: (selectedNodeIds) => {\n const {\n multiSelectionActive,\n edgeLookup,\n nodeLookup,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = get();\n\n if (multiSelectionActive) {\n const nodeChanges = selectedNodeIds.map((nodeId) =>\n createSelectionChange(nodeId, true),\n );\n triggerNodeChanges(nodeChanges as NodeSelectionChange[]);\n return;\n }\n\n triggerNodeChanges(\n getSelectionChanges(nodeLookup, new Set([...selectedNodeIds]), true),\n );\n triggerEdgeChanges(getSelectionChanges(edgeLookup));\n },\n addSelectedEdges: (selectedEdgeIds) => {\n const {\n multiSelectionActive,\n edgeLookup,\n nodeLookup,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = get();\n\n if (multiSelectionActive) {\n const changedEdges = selectedEdgeIds.map((edgeId) =>\n createSelectionChange(edgeId, true),\n );\n triggerEdgeChanges(changedEdges as EdgeSelectionChange[]);\n return;\n }\n\n triggerEdgeChanges(\n getSelectionChanges(edgeLookup, new Set([...selectedEdgeIds])),\n );\n triggerNodeChanges(getSelectionChanges(nodeLookup, new Set(), true));\n },\n unselectNodesAndEdges: ({\n nodes,\n edges,\n }: UnselectNodesAndEdgesParams = {}) => {\n const {\n edges: storeEdges,\n nodes: storeNodes,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = get();\n const nodesToUnselect = nodes ? nodes : storeNodes;\n const edgesToUnselect = edges ? edges : storeEdges;\n\n const nodeChanges = nodesToUnselect.map((n) => {\n n.selected = false;\n return createSelectionChange(n.id, false);\n });\n const edgeChanges = edgesToUnselect.map((edge) =>\n createSelectionChange(edge.id, false),\n );\n\n triggerNodeChanges(nodeChanges as NodeSelectionChange[]);\n triggerEdgeChanges(edgeChanges as EdgeSelectionChange[]);\n },\n setMinZoom: (minZoom) => {\n const { panZoom, maxZoom } = get();\n panZoom?.setScaleExtent([minZoom, maxZoom]);\n\n set({ minZoom });\n },\n setMaxZoom: (maxZoom) => {\n const { panZoom, minZoom } = get();\n panZoom?.setScaleExtent([minZoom, maxZoom]);\n\n set({ maxZoom });\n },\n setTranslateExtent: (translateExtent) => {\n get().panZoom?.setTranslateExtent(translateExtent);\n\n set({ translateExtent });\n },\n resetSelectedElements: () => {\n const { edges, nodes, triggerNodeChanges, triggerEdgeChanges } = get();\n\n const nodeChanges = nodes.reduce<NodeSelectionChange[]>(\n (res, node) =>\n node.selected\n ? [\n ...res,\n createSelectionChange(node.id, false) as NodeSelectionChange,\n ]\n : res,\n [],\n );\n const edgeChanges = edges.reduce<EdgeSelectionChange[]>(\n (res, edge) =>\n edge.selected\n ? [\n ...res,\n createSelectionChange(edge.id, false) as EdgeSelectionChange,\n ]\n : res,\n [],\n );\n\n triggerNodeChanges(nodeChanges);\n triggerEdgeChanges(edgeChanges);\n },\n setNodeExtent: (nodeExtent) => {\n const { nodeLookup } = get();\n\n for (const [, node] of nodeLookup) {\n const positionAbsolute = clampPosition(node.position, nodeExtent);\n\n nodeLookup.set(node.id, {\n ...node,\n internals: {\n ...node.internals,\n positionAbsolute,\n },\n });\n }\n\n set({\n nodeExtent,\n });\n },\n panBy: (delta): boolean => {\n const { transform, width, height, panZoom, translateExtent } = get();\n return panBySystem({\n delta,\n panZoom,\n transform,\n translateExtent,\n width,\n height,\n });\n },\n fitView: (options?: FitViewOptions): boolean => {\n const {\n panZoom,\n width,\n height,\n minZoom,\n maxZoom,\n nodeOrigin,\n nodeLookup,\n } = get();\n\n if (!panZoom) {\n return false;\n }\n\n return fitViewSystem(\n {\n nodeLookup,\n width,\n height,\n panZoom,\n minZoom,\n maxZoom,\n nodeOrigin,\n },\n options,\n );\n },\n cancelConnection: () =>\n set({\n connectionStatus: null,\n connectionStartHandle: null,\n connectionEndHandle: null,\n }),\n updateConnection: (params) => {\n const { connectionPosition } = get();\n\n const currentConnection = {\n ...params,\n connectionPosition: params.connectionPosition ?? connectionPosition,\n };\n\n set(currentConnection);\n },\n\n reset: () => set({ ...getInitialState() }),\n }),\n Object.is,\n );\n\nexport { createStore };\n","import { useState, type ReactNode } from 'react';\n\nimport { Provider } from '../../contexts/StoreContext';\nimport { createStore } from '../../store';\nimport type { Node, Edge } from '../../types';\nimport { BatchProvider } from '../BatchProvider';\n\nexport type InkFlowProviderProps = {\n initialNodes?: Node[];\n initialEdges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n initialWidth?: number;\n initialHeight?: number;\n fitView?: boolean;\n children: ReactNode;\n};\n\nexport function InkFlowProvider({\n initialNodes: nodes,\n initialEdges: edges,\n defaultNodes,\n defaultEdges,\n initialWidth: width,\n initialHeight: height,\n fitView,\n children,\n}: InkFlowProviderProps) {\n const [store] = useState(() =>\n createStore({\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n }),\n );\n\n return (\n <Provider value={store}>\n <BatchProvider>{children}</BatchProvider>\n </Provider>\n );\n}\n","import { useContext, type ReactNode } from 'react';\n\nimport StoreContext from '../../contexts/StoreContext';\nimport type { Node, Edge } from '../../types';\nimport { InkFlowProvider } from '../../components/InkFlowProvider';\n\nexport function Wrapper({\n children,\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n}: {\n children: ReactNode;\n nodes?: Node[];\n edges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n width?: number;\n height?: number;\n fitView?: boolean;\n}) {\n const isWrapped = useContext(StoreContext);\n\n if (isWrapped) {\n return <>{children}</>;\n }\n\n return (\n <InkFlowProvider\n initialNodes={nodes}\n initialEdges={edges}\n defaultNodes={defaultNodes}\n defaultEdges={defaultEdges}\n initialWidth={width}\n initialHeight={height}\n fitView={fitView}\n >\n {children}\n </InkFlowProvider>\n );\n}\n","import { NodeOrigin, Viewport } from '../../types/system';\n\nexport const defaultNodeOrigin: NodeOrigin = [0, 0];\nexport const defaultViewport: Viewport = { x: 0, y: 0, zoom: 1 };\n","/*\n * This component helps us to update the store with the vlues coming from the user.\n * We distinguish between values we can update directly with `useDirectStoreUpdater` (like `snapGrid`)\n * and values that have a dedicated setter function in the store (like `setNodes`).\n */\nimport { useEffect, useRef } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport type {\n Node,\n Edge,\n InkFlowState,\n InkFlowProps,\n FitViewOptions,\n} from '../../types';\nimport { infiniteExtent } from '../../constants';\nimport { CoordinateExtent } from '../../types/system';\nimport { defaultNodeOrigin } from '../../container/InkFlow/init-values';\n\n// these fields exist in the global store and we need to keep them up to date\nconst InkFlowFieldsToTrack = [\n 'nodes',\n 'edges',\n 'defaultNodes',\n 'defaultEdges',\n // 'onConnect',\n // 'onConnectStart',\n // 'onConnectEnd',\n // 'onClickConnectStart',\n // 'onClickConnectEnd',\n 'nodesDraggable',\n // 'nodesConnectable',\n // 'nodesFocusable',\n // 'edgesFocusable',\n // 'edgesUpdatable',\n // 'elevateNodesOnSelect',\n // 'elevateEdgesOnSelect',\n 'minZoom',\n 'maxZoom',\n 'nodeExtent',\n 'onNodesChange',\n 'onEdgesChange',\n 'elementsSelectable',\n // 'connectionMode',\n // 'snapGrid',\n // 'snapToGrid',\n 'translateExtent',\n // 'connectOnClick',\n 'defaultEdgeOptions',\n 'fitView',\n 'fitViewOptions',\n // 'onNodesDelete',\n // 'onEdgesDelete',\n // 'onDelete',\n // 'onNodeDrag',\n // 'onNodeDragStart',\n // 'onNodeDragStop',\n // 'onSelectionDrag',\n // 'onSelectionDragStart',\n // 'onSelectionDragStop',\n // 'onMoveStart',\n // 'onMove',\n // 'onMoveEnd',\n // 'noPanClassName',\n // 'nodeOrigin',\n // 'autoPanOnConnect',\n // 'autoPanOnNodeDrag',\n // 'onError',\n // 'connectionRadius',\n // 'isValidConnection',\n // 'selectNodesOnDrag',\n // 'nodeDragThreshold',\n // 'onBeforeDelete',\n // 'debug',\n] as const;\n\ntype InkFlowFieldsToTrack = typeof InkFlowFieldsToTrack[number];\ntype StoreUpdaterProps<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n> = Pick<InkFlowProps<NodeType, EdgeType>, InkFlowFieldsToTrack> & {\n rfId: string;\n};\n\n// rfId doesn't exist in InkFlowProps, but it's one of the fields we want to update\nconst fieldsToTrack = [...InkFlowFieldsToTrack, 'rfId'] as const;\n\nconst selector = (s: InkFlowState) => ({\n setNodes: s.setNodes,\n setEdges: s.setEdges,\n setMinZoom: s.setMinZoom,\n setMaxZoom: s.setMaxZoom,\n setTranslateExtent: s.setTranslateExtent,\n setNodeExtent: s.setNodeExtent,\n reset: s.reset,\n setDefaultNodesAndEdges: s.setDefaultNodesAndEdges,\n});\n\nconst initPrevValues = {\n // these are values that are also passed directly to other components\n // than the StoreUpdater. We can reduce the number of setStore calls\n // by setting the same values here as prev fields.\n translateExtent: infiniteExtent,\n nodeOrigin: defaultNodeOrigin,\n minZoom: 0.5,\n maxZoom: 2,\n elementsSelectable: true,\n noPanClassName: 'nopan',\n rfId: '1',\n};\n\nexport function StoreUpdater<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>(props: StoreUpdaterProps<NodeType, EdgeType>) {\n const {\n setNodes,\n setEdges,\n setMinZoom,\n setMaxZoom,\n setTranslateExtent,\n setNodeExtent,\n reset,\n setDefaultNodesAndEdges,\n } = useStore(selector, shallow);\n const store = useStoreApi<NodeType, EdgeType>();\n\n useEffect(() => {\n setDefaultNodesAndEdges(props.defaultNodes, props.defaultEdges);\n\n return () => {\n // when we reset the store we also need to reset the previous fields\n previousFields.current = initPrevValues;\n reset();\n };\n }, []);\n\n const previousFields =\n useRef<Partial<StoreUpdaterProps<NodeType, EdgeType>>>(initPrevValues);\n\n useEffect(\n () => {\n for (const fieldName of fieldsToTrack) {\n const fieldValue = props[fieldName];\n const previousFieldValue = previousFields.current[fieldName];\n\n if (fieldValue === previousFieldValue) continue;\n if (typeof props[fieldName] === 'undefined') continue;\n // Custom handling with dedicated setters for some fields\n if (fieldName === 'nodes') setNodes(fieldValue as Node[]);\n else if (fieldName === 'edges') setEdges(fieldValue as Edge[]);\n else if (fieldName === 'minZoom') setMinZoom(fieldValue as number);\n else if (fieldName === 'maxZoom') setMaxZoom(fieldValue as number);\n else if (fieldName === 'translateExtent')\n setTranslateExtent(fieldValue as CoordinateExtent);\n else if (fieldName === 'nodeExtent')\n setNodeExtent(fieldValue as CoordinateExtent);\n // Renamed fields\n else if (fieldName === 'fitView')\n store.setState({ fitViewOnInit: fieldValue as boolean });\n else if (fieldName === 'fitViewOptions')\n store.setState({\n fitViewOnInitOptions: fieldValue as FitViewOptions,\n });\n // General case\n else store.setState({ [fieldName]: fieldValue });\n }\n\n previousFields.current = props;\n },\n // Only re-run the effect if one of the fields we track changes\n fieldsToTrack.map((fieldName) => props[fieldName]),\n );\n\n return null;\n}\n","import { ForwardedRef, type CSSProperties } from 'react';\nimport cls from 'classnames';\nimport type { Edge, Node, InkFlowProps } from '../../types';\nimport { GraphView } from '../GraphView';\nimport { Wrapper } from './Wrapper';\nimport { StoreUpdater } from '../../components/StoreUpdater';\nimport { fixedForwardRef } from '../../utils/general';\nimport { infiniteExtent } from '../../constants';\nimport {\n defaultViewport as initViewport,\n defaultNodeOrigin,\n} from './init-values';\n\nconst wrapperStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n zIndex: 0,\n};\n\nfunction InkFlow<NodeType extends Node = Node, EdgeType extends Edge = Edge>(\n {\n nodes,\n edges,\n translateExtent = infiniteExtent,\n defaultViewport = initViewport,\n minZoom = 0.5,\n maxZoom = 2,\n nodeOrigin,\n noDragClassName,\n noPanClassName,\n disableKeyboardA11y,\n nodeTypes,\n onNodesChange,\n onEdgesChange,\n fitView,\n fitViewOptions,\n nodeExtent,\n nodesDraggable,\n children,\n id,\n width,\n height,\n onPaneClick,\n onPaneContextMenu,\n ...rest\n }: InkFlowProps<NodeType, EdgeType>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const rfId = id || '1';\n console.log('yk 22', onPaneClick, onPaneContextMenu);\n\n return (\n <div\n {...rest}\n ref={ref}\n style={{ ...wrapperStyle }}\n className={cls(['ink-flow'])}\n data-testid=\"rf__wrapper\"\n id={id}\n >\n <Wrapper\n nodes={nodes}\n edges={edges}\n width={width}\n height={height}\n fitView={fitView}\n >\n <GraphView<NodeType, EdgeType>\n rfId={rfId}\n nodeTypes={nodeTypes}\n minZoom={minZoom}\n maxZoom={maxZoom}\n nodeOrigin={nodeOrigin}\n noDragClassName={noDragClassName}\n noPanClassName={noPanClassName}\n disableKeyboardA11y={disableKeyboardA11y}\n translateExtent={translateExtent}\n defaultViewport={defaultViewport}\n onPaneClick={onPaneClick}\n onPaneContextMenu={onPaneContextMenu}\n />\n <StoreUpdater<NodeType, EdgeType>\n nodes={nodes}\n edges={edges}\n rfId={rfId}\n onNodesChange={onNodesChange}\n onEdgesChange={onEdgesChange}\n fitView={fitView}\n fitViewOptions={fitViewOptions}\n nodeExtent={nodeExtent}\n nodesDraggable={nodesDraggable}\n />\n {children}\n </Wrapper>\n </div>\n );\n}\n\nexport default fixedForwardRef(InkFlow);\n","export function PlusIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10 4.375C10.3452 4.375 10.625 4.65482 10.625 5V9.375H15C15.3452 9.375 15.625 9.65482 15.625 10C15.625 10.3452 15.3452 10.625 15 10.625H10.625V15C10.625 15.3452 10.3452 15.625 10 15.625C9.65482 15.625 9.375 15.3452 9.375 15V10.625H5C4.65482 10.625 4.375 10.3452 4.375 10C4.375 9.65482 4.65482 9.375 5 9.375H9.375V5C9.375 4.65482 9.65482 4.375 10 4.375Z\"\n fill=\"#6B7280\"\n />\n </svg>\n );\n}\n","export function MinusIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M4.375 10C4.375 9.65482 4.65482 9.375 5 9.375H15C15.3452 9.375 15.625 9.65482 15.625 10C15.625 10.3452 15.3452 10.625 15 10.625H5C4.65482 10.625 4.375 10.3452 4.375 10Z\"\n fill=\"#6B7280\"\n />\n </svg>\n );\n}\n","export function FitViewIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M10 1.875C10.3452 1.875 10.625 2.15482 10.625 2.5V3.57152C13.6929 3.86613 16.1339 6.30708 16.4285 9.375H17.5C17.8452 9.375 18.125 9.65482 18.125 10C18.125 10.3452 17.8452 10.625 17.5 10.625H16.4285C16.1339 13.6929 13.6929 16.1339 10.625 16.4285V17.5C10.625 17.8452 10.3452 18.125 10 18.125C9.65482 18.125 9.375 17.8452 9.375 17.5V16.4285C6.30708 16.1339 3.86613 13.6929 3.57152 10.625H2.5C2.15482 10.625 1.875 10.3452 1.875 10C1.875 9.65482 2.15482 9.375 2.5 9.375H3.57152C3.86613 6.30708 6.30708 3.86613 9.375 3.57152V2.5C9.375 2.15482 9.65482 1.875 10 1.875ZM4.82878 10.625H5.83333C6.17851 10.625 6.45833 10.3452 6.45833 10C6.45833 9.65482 6.17851 9.375 5.83333 9.375H4.82878C5.11304 6.99811 6.99811 5.11304 9.375 4.82878V5.83333C9.375 6.17851 9.65482 6.45833 10 6.45833C10.3452 6.45833 10.625 6.17851 10.625 5.83333V4.82878C13.0019 5.11304 14.887 6.99811 15.1712 9.375H14.1667C13.8215 9.375 13.5417 9.65482 13.5417 10C13.5417 10.3452 13.8215 10.625 14.1667 10.625H15.1712C14.887 13.0019 13.0019 14.887 10.625 15.1712V14.1667C10.625 13.8215 10.3452 13.5417 10 13.5417C9.65482 13.5417 9.375 13.8215 9.375 14.1667V15.1712C6.99811 14.887 5.11304 13.0019 4.82878 10.625Z\"\n fill=\"#6B7280\"\n />\n </svg>\n );\n}\n","export function LockIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 32\">\n <path d=\"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z\" />\n </svg>\n );\n}\n","export function UnlockIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 32\">\n <path d=\"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z\" />\n </svg>\n );\n}\n","import cc from 'classnames';\n\nimport type { ControlButtonProps } from './types';\n\nexport function ControlButton({\n children,\n className,\n ...rest\n}: ControlButtonProps) {\n return (\n <button\n type=\"button\"\n className={cc(['ink-flow__controls-button', className])}\n {...rest}\n >\n {children}\n </button>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport cc from 'classnames';\n\nimport { useStore } from '../../hooks/useStore';\nimport type { InkFlowState } from '../../types';\nimport { PanelPosition } from '../../types/system';\n\nexport type PanelProps = HTMLAttributes<HTMLDivElement> & {\n /** Set position of the panel\n * @example 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'\n */\n position?: PanelPosition;\n children: ReactNode;\n};\n\nconst selector = (s: InkFlowState) => (s.userSelectionActive ? 'none' : 'all');\n\nexport function Panel({\n position = 'top-left',\n children,\n className,\n style,\n ...rest\n}: PanelProps) {\n const pointerEvents = useStore(selector);\n const positionClasses = `${position}`.split('-');\n\n return (\n <div\n className={cc(['ink-flow__panel', className, ...positionClasses])}\n style={{ ...style, pointerEvents }}\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import { memo } from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\n\nimport { PlusIcon } from './Icons/Plus';\nimport { MinusIcon } from './Icons/Minus';\nimport { FitViewIcon } from './Icons/FitView';\nimport { LockIcon } from './Icons/Lock';\nimport { UnlockIcon } from './Icons/Unlock';\nimport { ControlButton } from './ControlButton';\nimport type { ControlProps } from './types';\nimport { InkFlowState } from '../../types';\nimport { useInkFlow } from '../../hooks/useInkFlow';\nimport { Panel } from '../../components/Panel';\n\nconst selector = (s: InkFlowState) => ({\n isInteractive: s.nodesDraggable || s.nodesConnectable || s.elementsSelectable,\n minZoomReached: s.transform[2] <= s.minZoom,\n maxZoomReached: s.transform[2] >= s.maxZoom,\n});\n\nfunction ControlsComponent({\n style,\n showZoom = true,\n showFitView = true,\n showInteractive = true,\n fitViewOptions,\n onZoomIn,\n onZoomOut,\n onFitView,\n onInteractiveChange,\n className,\n children,\n position = 'bottom-left',\n orientation = 'vertical',\n 'aria-label': ariaLabel = 'Ink Flow controls',\n}: ControlProps) {\n const store = useStoreApi();\n const { isInteractive, minZoomReached, maxZoomReached } = useStore(\n selector,\n shallow,\n );\n const { zoomIn, zoomOut, fitView } = useInkFlow();\n\n const onZoomInHandler = () => {\n zoomIn();\n onZoomIn?.();\n };\n\n const onZoomOutHandler = () => {\n zoomOut();\n onZoomOut?.();\n };\n\n const onFitViewHandler = () => {\n fitView(fitViewOptions);\n onFitView?.();\n };\n\n const onToggleInteractivity = () => {\n store.setState({\n nodesDraggable: !isInteractive,\n nodesConnectable: !isInteractive,\n elementsSelectable: !isInteractive,\n });\n\n onInteractiveChange?.(!isInteractive);\n };\n\n const orientationClass =\n orientation === 'horizontal' ? 'horizontal' : 'vertical';\n\n return (\n <Panel\n className={cc(['ink-flow__controls', orientationClass, className])}\n position={position}\n style={style}\n data-testid=\"rf__controls\"\n aria-label={ariaLabel}\n >\n {showFitView && (\n <ControlButton\n className=\"ink-flow__controls-fitview\"\n onClick={onFitViewHandler}\n title=\"fit view\"\n aria-label=\"fit view\"\n >\n <FitViewIcon />\n </ControlButton>\n )}\n\n {showZoom && (\n <div className=\"ink-flow__controls-zoom\">\n <ControlButton\n onClick={onZoomInHandler}\n className=\"ink-flow__controls-zoomin\"\n title=\"zoom in\"\n aria-label=\"zoom in\"\n disabled={maxZoomReached}\n >\n <PlusIcon />\n </ControlButton>\n <ControlButton\n onClick={onZoomOutHandler}\n className=\"ink-flow__controls-zoomout\"\n title=\"zoom out\"\n aria-label=\"zoom out\"\n disabled={minZoomReached}\n >\n <MinusIcon />\n </ControlButton>\n </div>\n )}\n\n {showInteractive && (\n <ControlButton\n className=\"ink-flow__controls-interactive\"\n onClick={onToggleInteractivity}\n title=\"toggle interactivity\"\n aria-label=\"toggle interactivity\"\n >\n {isInteractive ? <UnlockIcon /> : <LockIcon />}\n </ControlButton>\n )}\n {children}\n </Panel>\n );\n}\n\nControlsComponent.displayName = 'Controls';\n\nexport const Controls = memo(ControlsComponent);\n","console.log('types');\nexport * from './nodes';\nexport * from './edges';\nexport * from './props';\nexport * from './general';\nexport * from './store';\nexport * from './system/utils';\n// export * from './instance';\n","var n,r,t,e,o,i,u,a,f,c,s,d,h,v,l,p,g,y,b,m,_,w,E,j,k,x,N,O,I,C,A,M,L,P,S,T,R,z,F,D,B,U,G,V,q,$,Y,W,J,K,Q,H,X,Z,nn,rn,tn,en,on,un,an,fn,cn,sn,dn,hn,vn,ln,pn,gn,yn,bn,mn,_n,wn,En,jn,kn,xn,Nn,On,In,Cn,An,Mn,Ln,Pn,Sn,Tn,Rn,zn,Fn,Dn,Bn,Un,Gn,Vn,qn,$n,Yn,Wn,Jn,Kn,Qn,Hn,Xn,Zn,nr,rr=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function tr(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,\"default\")?n.default:n}function er(){if(e)return t;return e=1,t=function(n,r){return n===r||n!=n&&r!=r}}function or(){if(i)return o;i=1;var n=er();return o=function(r,t){for(var e=r.length;e--;)if(n(r[e][0],t))return e;return-1}}function ir(){if(p)return l;p=1;var t=r?n:(r=1,n=function(){this.__data__=[],this.size=0}),e=function(){if(a)return u;a=1;var n=or(),r=Array.prototype.splice;return u=function(t){var e=this.__data__,o=n(e,t);return!(o<0||(o==e.length-1?e.pop():r.call(e,o,1),--this.size,0))}}(),o=function(){if(c)return f;c=1;var n=or();return f=function(r){var t=this.__data__,e=n(t,r);return e<0?void 0:t[e][1]}}(),i=function(){if(d)return s;d=1;var n=or();return s=function(r){return n(this.__data__,r)>-1}}(),g=function(){if(v)return h;v=1;var n=or();return h=function(r,t){var e=this.__data__,o=n(e,r);return o<0?(++this.size,e.push([r,t])):e[o][1]=t,this}}();function y(n){var r=-1,t=null==n?0:n.length;for(this.clear();++r<t;){var e=n[r];this.set(e[0],e[1])}}return y.prototype.clear=t,y.prototype.delete=e,y.prototype.get=o,y.prototype.has=i,y.prototype.set=g,l=y}function ur(){if(x)return k;x=1;var n=\"object\"==typeof rr&&rr&&rr.Object===Object&&rr;return k=n}function ar(){if(O)return N;O=1;var n=ur(),r=\"object\"==typeof self&&self&&self.Object===Object&&self,t=n||r||Function(\"return this\")();return N=t}function fr(){if(C)return I;C=1;var n=ar().Symbol;return I=n}function cr(){if(T)return S;T=1;var n=fr(),r=function(){if(M)return A;M=1;var n=fr(),r=Object.prototype,t=r.hasOwnProperty,e=r.toString,o=n?n.toStringTag:void 0;return A=function(n){var r=t.call(n,o),i=n[o];try{n[o]=void 0;var u=!0}catch(n){}var a=e.call(n);return u&&(r?n[o]=i:delete n[o]),a}}(),t=function(){if(P)return L;P=1;var n=Object.prototype.toString;return L=function(r){return n.call(r)}}(),e=n?n.toStringTag:void 0;return S=function(n){return null==n?void 0===n?\"[object Undefined]\":\"[object Null]\":e&&e in Object(n)?r(n):t(n)}}function sr(){if(z)return R;return z=1,R=function(n){var r=typeof n;return null!=n&&(\"object\"==r||\"function\"==r)}}function dr(){if(D)return F;D=1;var n=cr(),r=sr();return F=function(t){if(!r(t))return!1;var e=n(t);return\"[object Function]\"==e||\"[object GeneratorFunction]\"==e||\"[object AsyncFunction]\"==e||\"[object Proxy]\"==e}}function hr(){if(V)return G;V=1;var n,r=function(){if(U)return B;U=1;var n=ar()[\"__core-js_shared__\"];return B=n}(),t=(n=/[^.]+$/.exec(r&&r.keys&&r.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+n:\"\";return G=function(n){return!!t&&t in n}}function vr(){if($)return q;$=1;var n=Function.prototype.toString;return q=function(r){if(null!=r){try{return n.call(r)}catch(n){}try{return r+\"\"}catch(n){}}return\"\"}}function lr(){if(H)return Q;H=1;var n=function(){if(W)return Y;W=1;var n=dr(),r=hr(),t=sr(),e=vr(),o=/^\\[object .+?Constructor\\]$/,i=Function.prototype,u=Object.prototype,a=i.toString,f=u.hasOwnProperty,c=RegExp(\"^\"+a.call(f).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");return Y=function(i){return!(!t(i)||r(i))&&(n(i)?c:o).test(e(i))}}(),r=K?J:(K=1,J=function(n,r){return null==n?void 0:n[r]});return Q=function(t,e){var o=r(t,e);return n(o)?o:void 0}}function pr(){if(Z)return X;Z=1;var n=lr()(ar(),\"Map\");return X=n}function gr(){if(rn)return nn;rn=1;var n=lr()(Object,\"create\");return nn=n}function yr(){if(ln)return vn;ln=1;var n=function(){if(en)return tn;en=1;var n=gr();return tn=function(){this.__data__=n?n(null):{},this.size=0}}(),r=un?on:(un=1,on=function(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}),t=function(){if(fn)return an;fn=1;var n=gr(),r=Object.prototype.hasOwnProperty;return an=function(t){var e=this.__data__;if(n){var o=e[t];return\"__lodash_hash_undefined__\"===o?void 0:o}return r.call(e,t)?e[t]:void 0}}(),e=function(){if(sn)return cn;sn=1;var n=gr(),r=Object.prototype.hasOwnProperty;return cn=function(t){var e=this.__data__;return n?void 0!==e[t]:r.call(e,t)}}(),o=function(){if(hn)return dn;hn=1;var n=gr();return dn=function(r,t){var e=this.__data__;return this.size+=this.has(r)?0:1,e[r]=n&&void 0===t?\"__lodash_hash_undefined__\":t,this}}();function i(n){var r=-1,t=null==n?0:n.length;for(this.clear();++r<t;){var e=n[r];this.set(e[0],e[1])}}return i.prototype.clear=n,i.prototype.delete=r,i.prototype.get=t,i.prototype.has=e,i.prototype.set=o,vn=i}function br(){if(_n)return mn;_n=1;var n=bn?yn:(bn=1,yn=function(n){var r=typeof n;return\"string\"==r||\"number\"==r||\"symbol\"==r||\"boolean\"==r?\"__proto__\"!==n:null===n});return mn=function(r,t){var e=r.__data__;return n(t)?e[\"string\"==typeof t?\"string\":\"hash\"]:e.map}}function mr(){if(An)return Cn;An=1;var n=function(){if(gn)return pn;gn=1;var n=yr(),r=ir(),t=pr();return pn=function(){this.size=0,this.__data__={hash:new n,map:new(t||r),string:new n}}}(),r=function(){if(En)return wn;En=1;var n=br();return wn=function(r){var t=n(this,r).delete(r);return this.size-=t?1:0,t}}(),t=function(){if(kn)return jn;kn=1;var n=br();return jn=function(r){return n(this,r).get(r)}}(),e=function(){if(Nn)return xn;Nn=1;var n=br();return xn=function(r){return n(this,r).has(r)}}(),o=function(){if(In)return On;In=1;var n=br();return On=function(r,t){var e=n(this,r),o=e.size;return e.set(r,t),this.size+=e.size==o?0:1,this}}();function i(n){var r=-1,t=null==n?0:n.length;for(this.clear();++r<t;){var e=n[r];this.set(e[0],e[1])}}return i.prototype.clear=n,i.prototype.delete=r,i.prototype.get=t,i.prototype.has=e,i.prototype.set=o,Cn=i}function _r(){if(Sn)return Pn;Sn=1;var n=ir(),r=function(){if(y)return g;y=1;var n=ir();return g=function(){this.__data__=new n,this.size=0}}(),t=m?b:(m=1,b=function(n){var r=this.__data__,t=r.delete(n);return this.size=r.size,t}),e=w?_:(w=1,_=function(n){return this.__data__.get(n)}),o=j?E:(j=1,E=function(n){return this.__data__.has(n)}),i=function(){if(Ln)return Mn;Ln=1;var n=ir(),r=pr(),t=mr();return Mn=function(e,o){var i=this.__data__;if(i instanceof n){var u=i.__data__;if(!r||u.length<199)return u.push([e,o]),this.size=++i.size,this;i=this.__data__=new t(u)}return i.set(e,o),this.size=i.size,this}}();function u(r){var t=this.__data__=new n(r);this.size=t.size}return u.prototype.clear=r,u.prototype.delete=t,u.prototype.get=e,u.prototype.has=o,u.prototype.set=i,Pn=u}function wr(){if(Rn)return Tn;return Rn=1,Tn=function(n,r){for(var t=-1,e=null==n?0:n.length;++t<e&&!1!==r(n[t],t,n););return n}}function Er(){if(Fn)return zn;Fn=1;var n=lr(),r=function(){try{var r=n(Object,\"defineProperty\");return r({},\"\",{}),r}catch(n){}}();return zn=r}function jr(){if(Bn)return Dn;Bn=1;var n=Er();return Dn=function(r,t,e){\"__proto__\"==t&&n?n(r,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):r[t]=e}}function kr(){if(Gn)return Un;Gn=1;var n=jr(),r=er(),t=Object.prototype.hasOwnProperty;return Un=function(e,o,i){var u=e[o];t.call(e,o)&&r(u,i)&&(void 0!==i||o in e)||n(e,o,i)}}function xr(){if(qn)return Vn;qn=1;var n=kr(),r=jr();return Vn=function(t,e,o,i){var u=!o;o||(o={});for(var a=-1,f=e.length;++a<f;){var c=e[a],s=i?i(o[c],t[c],c,o,t):void 0;void 0===s&&(s=t[c]),u?r(o,c,s):n(o,c,s)}return o}}function Nr(){if(Jn)return Wn;return Jn=1,Wn=function(n){return null!=n&&\"object\"==typeof n}}function Or(){if(Xn)return Hn;Xn=1;var n=function(){if(Qn)return Kn;Qn=1;var n=cr(),r=Nr();return Kn=function(t){return r(t)&&\"[object Arguments]\"==n(t)}}(),r=Nr(),t=Object.prototype,e=t.hasOwnProperty,o=t.propertyIsEnumerable,i=n(function(){return arguments}())?n:function(n){return r(n)&&e.call(n,\"callee\")&&!o.call(n,\"callee\")};return Hn=i}function Ir(){if(nr)return Zn;nr=1;var n=Array.isArray;return Zn=n}var Cr,Ar,Mr,Lr,Pr,Sr,Tr,Rr,zr,Fr,Dr,Br={exports:{}};function Ur(){return Mr||(Mr=1,function(n,r){var t=ar(),e=Ar?Cr:(Ar=1,Cr=function(){return!1}),o=r&&!r.nodeType&&r,i=o&&n&&!n.nodeType&&n,u=i&&i.exports===o?t.Buffer:void 0,a=(u?u.isBuffer:void 0)||e;n.exports=a}(Br,Br.exports)),Br.exports}function Gr(){if(Pr)return Lr;Pr=1;var n=/^(?:0|[1-9]\\d*)$/;return Lr=function(r,t){var e=typeof r;return!!(t=null==t?9007199254740991:t)&&(\"number\"==e||\"symbol\"!=e&&n.test(r))&&r>-1&&r%1==0&&r<t}}function Vr(){if(Tr)return Sr;Tr=1;return Sr=function(n){return\"number\"==typeof n&&n>-1&&n%1==0&&n<=9007199254740991}}function qr(){if(Dr)return Fr;return Dr=1,Fr=function(n){return function(r){return n(r)}}}Br.exports;var $r,Yr,Wr,Jr,Kr,Qr,Hr,Xr,Zr,nt,rt,tt,et,ot,it,ut,at,ft,ct,st,dt,ht,vt,lt,pt,gt,yt,bt={exports:{}};function mt(){return $r||($r=1,n=bt,r=bt.exports,t=ur(),e=r&&!r.nodeType&&r,o=e&&n&&!n.nodeType&&n,i=o&&o.exports===e&&t.process,u=function(){try{var n=o&&o.require&&o.require(\"util\").types;return n||i&&i.binding&&i.binding(\"util\")}catch(n){}}(),n.exports=u),bt.exports;var n,r,t,e,o,i,u}function _t(){if(Wr)return Yr;Wr=1;var n=function(){if(zr)return Rr;zr=1;var n=cr(),r=Vr(),t=Nr(),e={};return e[\"[object Float32Array]\"]=e[\"[object Float64Array]\"]=e[\"[object Int8Array]\"]=e[\"[object Int16Array]\"]=e[\"[object Int32Array]\"]=e[\"[object Uint8Array]\"]=e[\"[object Uint8ClampedArray]\"]=e[\"[object Uint16Array]\"]=e[\"[object Uint32Array]\"]=!0,e[\"[object Arguments]\"]=e[\"[object Array]\"]=e[\"[object ArrayBuffer]\"]=e[\"[object Boolean]\"]=e[\"[object DataView]\"]=e[\"[object Date]\"]=e[\"[object Error]\"]=e[\"[object Function]\"]=e[\"[object Map]\"]=e[\"[object Number]\"]=e[\"[object Object]\"]=e[\"[object RegExp]\"]=e[\"[object Set]\"]=e[\"[object String]\"]=e[\"[object WeakMap]\"]=!1,Rr=function(o){return t(o)&&r(o.length)&&!!e[n(o)]}}(),r=qr(),t=mt(),e=t&&t.isTypedArray,o=e?r(e):n;return Yr=o}function wt(){if(Kr)return Jr;Kr=1;var n=Yn?$n:(Yn=1,$n=function(n,r){for(var t=-1,e=Array(n);++t<n;)e[t]=r(t);return e}),r=Or(),t=Ir(),e=Ur(),o=Gr(),i=_t(),u=Object.prototype.hasOwnProperty;return Jr=function(a,f){var c=t(a),s=!c&&r(a),d=!c&&!s&&e(a),h=!c&&!s&&!d&&i(a),v=c||s||d||h,l=v?n(a.length,String):[],p=l.length;for(var g in a)!f&&!u.call(a,g)||v&&(\"length\"==g||d&&(\"offset\"==g||\"parent\"==g)||h&&(\"buffer\"==g||\"byteLength\"==g||\"byteOffset\"==g)||o(g,p))||l.push(g);return l}}function Et(){if(Hr)return Qr;Hr=1;var n=Object.prototype;return Qr=function(r){var t=r&&r.constructor;return r===(\"function\"==typeof t&&t.prototype||n)}}function jt(){if(Zr)return Xr;return Zr=1,Xr=function(n,r){return function(t){return n(r(t))}}}function kt(){if(et)return tt;et=1;var n=Et(),r=function(){if(rt)return nt;rt=1;var n=jt()(Object.keys,Object);return nt=n}(),t=Object.prototype.hasOwnProperty;return tt=function(e){if(!n(e))return r(e);var o=[];for(var i in Object(e))t.call(e,i)&&\"constructor\"!=i&&o.push(i);return o}}function xt(){if(it)return ot;it=1;var n=dr(),r=Vr();return ot=function(t){return null!=t&&r(t.length)&&!n(t)}}function Nt(){if(at)return ut;at=1;var n=wt(),r=kt(),t=xt();return ut=function(e){return t(e)?n(e):r(e)}}function Ot(){if(vt)return ht;vt=1;var n=sr(),r=Et(),t=dt?st:(dt=1,st=function(n){var r=[];if(null!=n)for(var t in Object(n))r.push(t);return r}),e=Object.prototype.hasOwnProperty;return ht=function(o){if(!n(o))return t(o);var i=r(o),u=[];for(var a in o)(\"constructor\"!=a||!i&&e.call(o,a))&&u.push(a);return u}}function It(){if(pt)return lt;pt=1;var n=wt(),r=Ot(),t=xt();return lt=function(e){return t(e)?n(e,!0):r(e)}}bt.exports;var Ct,At,Mt,Lt,Pt,St,Tt,Rt,zt,Ft,Dt,Bt,Ut,Gt,Vt,qt,$t,Yt,Wt,Jt,Kt,Qt,Ht,Xt,Zt,ne,re,te,ee,oe,ie,ue,ae,fe,ce,se,de,he,ve,le,pe,ge,ye,be,me,_e,we,Ee,je,ke,xe,Ne,Oe,Ie,Ce,Ae,Me,Le,Pe,Se,Te,Re,ze,Fe,De,Be,Ue,Ge,Ve,qe,$e,Ye,We,Je,Ke,Qe,He,Xe,Ze,no,ro,to,eo,oo,io,uo,ao,fo,co,so,ho,vo,lo,po,go,yo,bo,mo,_o,wo,Eo,jo,ko,xo,No,Oo,Io,Co,Ao,Mo,Lo,Po,So,To,Ro,zo,Fo,Do,Bo,Uo,Go,Vo,qo,$o,Yo,Wo,Jo,Ko,Qo,Ho,Xo,Zo,ni,ri,ti,ei,oi,ii,ui,ai,fi,ci,si,di,hi,vi,li,pi,gi,yi,bi,mi,_i,wi,Ei,ji,ki,xi,Ni,Oi,Ii,Ci,Ai,Mi,Li,Pi,Si,Ti,Ri,zi,Fi,Di,Bi,Ui,Gi,Vi,qi,$i,Yi,Wi,Ji,Ki,Qi,Hi,Xi,Zi,nu,ru,tu,eu,ou,iu,uu,au,fu,cu,su,du,hu,vu,lu,pu,gu,yu,bu,mu,_u,wu,Eu,ju,ku,xu,Nu,Ou,Iu,Cu,Au,Mu,Lu,Pu,Su,Tu,Ru,zu,Fu,Du,Bu,Uu,Gu,Vu,qu,$u,Yu,Wu,Ju,Ku,Qu,Hu,Xu,Zu,na,ra,ta,ea,oa,ia,ua,aa,fa,ca,sa,da,ha,va,la,pa,ga,ya,ba,ma,_a,wa,Ea,ja,ka,xa,Na,Oa,Ia,Ca,Aa,Ma,La,Pa,Sa,Ta,Ra,za,Fa,Da,Ba={exports:{}};function Ua(){return Ct||(Ct=1,n=Ba,r=Ba.exports,t=ar(),e=r&&!r.nodeType&&r,o=e&&n&&!n.nodeType&&n,i=o&&o.exports===e?t.Buffer:void 0,u=i?i.allocUnsafe:void 0,n.exports=function(n,r){if(r)return n.slice();var t=n.length,e=u?u(t):new n.constructor(t);return n.copy(e),e}),Ba.exports;var n,r,t,e,o,i,u}function Ga(){if(Mt)return At;return Mt=1,At=function(n,r){var t=-1,e=n.length;for(r||(r=Array(e));++t<e;)r[t]=n[t];return r}}function Va(){if(Pt)return Lt;return Pt=1,Lt=function(n,r){for(var t=-1,e=null==n?0:n.length,o=0,i=[];++t<e;){var u=n[t];r(u,t,n)&&(i[o++]=u)}return i}}function qa(){if(Tt)return St;return Tt=1,St=function(){return[]}}function $a(){if(zt)return Rt;zt=1;var n=Va(),r=qa(),t=Object.prototype.propertyIsEnumerable,e=Object.getOwnPropertySymbols;return Rt=e?function(r){return null==r?[]:(r=Object(r),n(e(r),(function(n){return t.call(r,n)})))}:r}function Ya(){if(Ut)return Bt;return Ut=1,Bt=function(n,r){for(var t=-1,e=r.length,o=n.length;++t<e;)n[o+t]=r[t];return n}}function Wa(){if(Vt)return Gt;Vt=1;var n=jt()(Object.getPrototypeOf,Object);return Gt=n}function Ja(){if($t)return qt;$t=1;var n=Ya(),r=Wa(),t=$a(),e=qa(),o=Object.getOwnPropertySymbols;return qt=o?function(e){for(var o=[];e;)n(o,t(e)),e=r(e);return o}:e}function Ka(){if(Kt)return Jt;Kt=1;var n=Ya(),r=Ir();return Jt=function(t,e,o){var i=e(t);return r(t)?i:n(i,o(t))}}function Qa(){if(Ht)return Qt;Ht=1;var n=Ka(),r=$a(),t=Nt();return Qt=function(e){return n(e,t,r)}}function Ha(){if(ie)return oe;ie=1;var n=lr()(ar(),\"Set\");return oe=n}function Xa(){if(ce)return fe;ce=1;var n=function(){if(re)return ne;re=1;var n=lr()(ar(),\"DataView\");return ne=n}(),r=pr(),t=function(){if(ee)return te;ee=1;var n=lr()(ar(),\"Promise\");return te=n}(),e=Ha(),o=function(){if(ae)return ue;ae=1;var n=lr()(ar(),\"WeakMap\");return ue=n}(),i=cr(),u=vr(),a=\"[object Map]\",f=\"[object Promise]\",c=\"[object Set]\",s=\"[object WeakMap]\",d=\"[object DataView]\",h=u(n),v=u(r),l=u(t),p=u(e),g=u(o),y=i;return(n&&y(new n(new ArrayBuffer(1)))!=d||r&&y(new r)!=a||t&&y(t.resolve())!=f||e&&y(new e)!=c||o&&y(new o)!=s)&&(y=function(n){var r=i(n),t=\"[object Object]\"==r?n.constructor:void 0,e=t?u(t):\"\";if(e)switch(e){case h:return d;case v:return a;case l:return f;case p:return c;case g:return s}return r}),fe=y}function Za(){if(ve)return he;ve=1;var n=ar().Uint8Array;return he=n}function nf(){if(pe)return le;pe=1;var n=Za();return le=function(r){var t=new r.constructor(r.byteLength);return new n(t).set(new n(r)),t}}function rf(){if(je)return Ee;je=1;var n=nf();return Ee=function(r,t){var e=t?n(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.length)}}function tf(){if(xe)return ke;xe=1;var n=nf(),r=function(){if(ye)return ge;ye=1;var n=nf();return ge=function(r,t){var e=t?n(r.buffer):r.buffer;return new r.constructor(e,r.byteOffset,r.byteLength)}}(),t=function(){if(me)return be;me=1;var n=/\\w*$/;return be=function(r){var t=new r.constructor(r.source,n.exec(r));return t.lastIndex=r.lastIndex,t}}(),e=function(){if(we)return _e;we=1;var n=fr(),r=n?n.prototype:void 0,t=r?r.valueOf:void 0;return _e=function(n){return t?Object(t.call(n)):{}}}(),o=rf();return ke=function(i,u,a){var f=i.constructor;switch(u){case\"[object ArrayBuffer]\":return n(i);case\"[object Boolean]\":case\"[object Date]\":return new f(+i);case\"[object DataView]\":return r(i,a);case\"[object Float32Array]\":case\"[object Float64Array]\":case\"[object Int8Array]\":case\"[object Int16Array]\":case\"[object Int32Array]\":case\"[object Uint8Array]\":case\"[object Uint8ClampedArray]\":case\"[object Uint16Array]\":case\"[object Uint32Array]\":return o(i,a);case\"[object Map]\":case\"[object Set]\":return new f;case\"[object Number]\":case\"[object String]\":return new f(i);case\"[object RegExp]\":return t(i);case\"[object Symbol]\":return e(i)}}}function ef(){if(Oe)return Ne;Oe=1;var n=sr(),r=Object.create,t=function(){function t(){}return function(e){if(!n(e))return{};if(r)return r(e);t.prototype=e;var o=new t;return t.prototype=void 0,o}}();return Ne=t}function of(){if(Ce)return Ie;Ce=1;var n=ef(),r=Wa(),t=Et();return Ie=function(e){return\"function\"!=typeof e.constructor||t(e)?{}:n(r(e))}}function uf(){if(Pe)return Le;Pe=1;var n=function(){if(Me)return Ae;Me=1;var n=Xa(),r=Nr();return Ae=function(t){return r(t)&&\"[object Map]\"==n(t)}}(),r=qr(),t=mt(),e=t&&t.isMap,o=e?r(e):n;return Le=o}function af(){if(ze)return Re;ze=1;var n=function(){if(Te)return Se;Te=1;var n=Xa(),r=Nr();return Se=function(t){return r(t)&&\"[object Set]\"==n(t)}}(),r=qr(),t=mt(),e=t&&t.isSet,o=e?r(e):n;return Re=o}function ff(){if(De)return Fe;De=1;var n=_r(),r=wr(),t=kr(),e=function(){if(ct)return ft;ct=1;var n=xr(),r=Nt();return ft=function(t,e){return t&&n(e,r(e),t)}}(),o=function(){if(yt)return gt;yt=1;var n=xr(),r=It();return gt=function(t,e){return t&&n(e,r(e),t)}}(),i=Ua(),u=Ga(),a=function(){if(Dt)return Ft;Dt=1;var n=xr(),r=$a();return Ft=function(t,e){return n(t,r(t),e)}}(),f=function(){if(Wt)return Yt;Wt=1;var n=xr(),r=Ja();return Yt=function(t,e){return n(t,r(t),e)}}(),c=Qa(),s=function(){if(Zt)return Xt;Zt=1;var n=Ka(),r=Ja(),t=It();return Xt=function(e){return n(e,t,r)}}(),d=Xa(),h=function(){if(de)return se;de=1;var n=Object.prototype.hasOwnProperty;return se=function(r){var t=r.length,e=new r.constructor(t);return t&&\"string\"==typeof r[0]&&n.call(r,\"index\")&&(e.index=r.index,e.input=r.input),e}}(),v=tf(),l=of(),p=Ir(),g=Ur(),y=uf(),b=sr(),m=af(),_=Nt(),w=It(),E=\"[object Arguments]\",j=\"[object Function]\",k=\"[object Object]\",x={};return x[E]=x[\"[object Array]\"]=x[\"[object ArrayBuffer]\"]=x[\"[object DataView]\"]=x[\"[object Boolean]\"]=x[\"[object Date]\"]=x[\"[object Float32Array]\"]=x[\"[object Float64Array]\"]=x[\"[object Int8Array]\"]=x[\"[object Int16Array]\"]=x[\"[object Int32Array]\"]=x[\"[object Map]\"]=x[\"[object Number]\"]=x[k]=x[\"[object RegExp]\"]=x[\"[object Set]\"]=x[\"[object String]\"]=x[\"[object Symbol]\"]=x[\"[object Uint8Array]\"]=x[\"[object Uint8ClampedArray]\"]=x[\"[object Uint16Array]\"]=x[\"[object Uint32Array]\"]=!0,x[\"[object Error]\"]=x[j]=x[\"[object WeakMap]\"]=!1,Fe=function N(O,I,C,A,M,L){var P,S=1&I,T=2&I,R=4&I;if(C&&(P=M?C(O,A,M,L):C(O)),void 0!==P)return P;if(!b(O))return O;var z=p(O);if(z){if(P=h(O),!S)return u(O,P)}else{var F=d(O),D=F==j||\"[object GeneratorFunction]\"==F;if(g(O))return i(O,S);if(F==k||F==E||D&&!M){if(P=T||D?{}:l(O),!S)return T?f(O,o(P,O)):a(O,e(P,O))}else{if(!x[F])return M?O:{};P=v(O,F,S)}}L||(L=new n);var B=L.get(O);if(B)return B;L.set(O,P),m(O)?O.forEach((function(n){P.add(N(n,I,C,n,O,L))})):y(O)&&O.forEach((function(n,r){P.set(r,N(n,I,C,r,O,L))}));var U=z?void 0:(R?T?s:c:T?w:_)(O);return r(U||O,(function(n,r){U&&(n=O[r=n]),t(P,r,N(n,I,C,r,O,L))})),P},Fe}function cf(){if(Ue)return Be;Ue=1;var n=ff();return Be=function(r){return n(r,4)}}function sf(){if(Ve)return Ge;return Ve=1,Ge=function(n){return function(){return n}}}function df(){if(We)return Ye;We=1;var n=($e?qe:($e=1,qe=function(n){return function(r,t,e){for(var o=-1,i=Object(r),u=e(r),a=u.length;a--;){var f=u[n?a:++o];if(!1===t(i[f],f,i))break}return r}}))();return Ye=n}function hf(){if(Ke)return Je;Ke=1;var n=df(),r=Nt();return Je=function(t,e){return t&&n(t,e,r)}}function vf(){if(Ze)return Xe;Ze=1;var n=hf(),r=function(){if(He)return Qe;He=1;var n=xt();return Qe=function(r,t){return function(e,o){if(null==e)return e;if(!n(e))return r(e,o);for(var i=e.length,u=t?i:-1,a=Object(e);(t?u--:++u<i)&&!1!==o(a[u],u,a););return e}}}()(n);return Xe=r}function lf(){if(ro)return no;return ro=1,no=function(n){return n}}function pf(){if(eo)return to;eo=1;var n=lf();return to=function(r){return\"function\"==typeof r?r:n}}function gf(){if(io)return oo;io=1;var n=wr(),r=vf(),t=pf(),e=Ir();return oo=function(o,i){return(e(o)?n:r)(o,t(i))}}function yf(){return ao?uo:(ao=1,uo=gf())}function bf(){if(go)return po;go=1;var n=mr(),r=ho?so:(ho=1,so=function(n){return this.__data__.set(n,\"__lodash_hash_undefined__\"),this}),t=lo?vo:(lo=1,vo=function(n){return this.__data__.has(n)});function e(r){var t=-1,e=null==r?0:r.length;for(this.__data__=new n;++t<e;)this.add(r[t])}return e.prototype.add=e.prototype.push=r,e.prototype.has=t,po=e}function mf(){if(_o)return mo;return _o=1,mo=function(n,r){return n.has(r)}}function _f(){if(Eo)return wo;Eo=1;var n=bf(),r=bo?yo:(bo=1,yo=function(n,r){for(var t=-1,e=null==n?0:n.length;++t<e;)if(r(n[t],t,n))return!0;return!1}),t=mf();return wo=function(e,o,i,u,a,f){var c=1&i,s=e.length,d=o.length;if(s!=d&&!(c&&d>s))return!1;var h=f.get(e),v=f.get(o);if(h&&v)return h==o&&v==e;var l=-1,p=!0,g=2&i?new n:void 0;for(f.set(e,o),f.set(o,e);++l<s;){var y=e[l],b=o[l];if(u)var m=c?u(b,y,l,o,e,f):u(y,b,l,e,o,f);if(void 0!==m){if(m)continue;p=!1;break}if(g){if(!r(o,(function(n,r){if(!t(g,r)&&(y===n||a(y,n,i,u,f)))return g.push(r)}))){p=!1;break}}else if(y!==b&&!a(y,b,i,u,f)){p=!1;break}}return f.delete(e),f.delete(o),p}}function wf(){if(No)return xo;return No=1,xo=function(n){var r=-1,t=Array(n.size);return n.forEach((function(n){t[++r]=n})),t}}function Ef(){if(Io)return Oo;Io=1;var n=fr(),r=Za(),t=er(),e=_f(),o=ko?jo:(ko=1,jo=function(n){var r=-1,t=Array(n.size);return n.forEach((function(n,e){t[++r]=[e,n]})),t}),i=wf(),u=n?n.prototype:void 0,a=u?u.valueOf:void 0;return Oo=function(n,u,f,c,s,d,h){switch(f){case\"[object DataView]\":if(n.byteLength!=u.byteLength||n.byteOffset!=u.byteOffset)return!1;n=n.buffer,u=u.buffer;case\"[object ArrayBuffer]\":return!(n.byteLength!=u.byteLength||!d(new r(n),new r(u)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return t(+n,+u);case\"[object Error]\":return n.name==u.name&&n.message==u.message;case\"[object RegExp]\":case\"[object String]\":return n==u+\"\";case\"[object Map]\":var v=o;case\"[object Set]\":var l=1&c;if(v||(v=i),n.size!=u.size&&!l)return!1;var p=h.get(n);if(p)return p==u;c|=2,h.set(n,u);var g=e(v(n),v(u),c,s,d,h);return h.delete(n),g;case\"[object Symbol]\":if(a)return a.call(n)==a.call(u)}return!1}}function jf(){if(Lo)return Mo;Lo=1;var n=_r(),r=_f(),t=Ef(),e=function(){if(Ao)return Co;Ao=1;var n=Qa(),r=Object.prototype.hasOwnProperty;return Co=function(t,e,o,i,u,a){var f=1&o,c=n(t),s=c.length;if(s!=n(e).length&&!f)return!1;for(var d=s;d--;){var h=c[d];if(!(f?h in e:r.call(e,h)))return!1}var v=a.get(t),l=a.get(e);if(v&&l)return v==e&&l==t;var p=!0;a.set(t,e),a.set(e,t);for(var g=f;++d<s;){var y=t[h=c[d]],b=e[h];if(i)var m=f?i(b,y,h,e,t,a):i(y,b,h,t,e,a);if(!(void 0===m?y===b||u(y,b,o,i,a):m)){p=!1;break}g||(g=\"constructor\"==h)}if(p&&!g){var _=t.constructor,w=e.constructor;_==w||!(\"constructor\"in t)||!(\"constructor\"in e)||\"function\"==typeof _&&_ instanceof _&&\"function\"==typeof w&&w instanceof w||(p=!1)}return a.delete(t),a.delete(e),p}}(),o=Xa(),i=Ir(),u=Ur(),a=_t(),f=\"[object Arguments]\",c=\"[object Array]\",s=\"[object Object]\",d=Object.prototype.hasOwnProperty;return Mo=function(h,v,l,p,g,y){var b=i(h),m=i(v),_=b?c:o(h),w=m?c:o(v),E=(_=_==f?s:_)==s,j=(w=w==f?s:w)==s,k=_==w;if(k&&u(h)){if(!u(v))return!1;b=!0,E=!1}if(k&&!E)return y||(y=new n),b||a(h)?r(h,v,l,p,g,y):t(h,v,_,l,p,g,y);if(!(1&l)){var x=E&&d.call(h,\"__wrapped__\"),N=j&&d.call(v,\"__wrapped__\");if(x||N){var O=x?h.value():h,I=N?v.value():v;return y||(y=new n),g(O,I,l,p,y)}}return!!k&&(y||(y=new n),e(h,v,l,p,g,y))}}function kf(){if(So)return Po;So=1;var n=jf(),r=Nr();return Po=function t(e,o,i,u,a){return e===o||(null==e||null==o||!r(e)&&!r(o)?e!=e&&o!=o:n(e,o,i,u,t,a))},Po}function xf(){if(Fo)return zo;Fo=1;var n=sr();return zo=function(r){return r==r&&!n(r)}}function Nf(){if(Go)return Uo;return Go=1,Uo=function(n,r){return function(t){return null!=t&&(t[n]===r&&(void 0!==r||n in Object(t)))}}}function Of(){if(qo)return Vo;qo=1;var n=function(){if(Ro)return To;Ro=1;var n=_r(),r=kf();return To=function(t,e,o,i){var u=o.length,a=u,f=!i;if(null==t)return!a;for(t=Object(t);u--;){var c=o[u];if(f&&c[2]?c[1]!==t[c[0]]:!(c[0]in t))return!1}for(;++u<a;){var s=(c=o[u])[0],d=t[s],h=c[1];if(f&&c[2]){if(void 0===d&&!(s in t))return!1}else{var v=new n;if(i)var l=i(d,h,s,t,e,v);if(!(void 0===l?r(h,d,3,i,v):l))return!1}}return!0}}(),r=function(){if(Bo)return Do;Bo=1;var n=xf(),r=Nt();return Do=function(t){for(var e=r(t),o=e.length;o--;){var i=e[o],u=t[i];e[o]=[i,u,n(u)]}return e}}(),t=Nf();return Vo=function(e){var o=r(e);return 1==o.length&&o[0][2]?t(o[0][0],o[0][1]):function(r){return r===e||n(r,e,o)}}}function If(){if(Yo)return $o;Yo=1;var n=cr(),r=Nr();return $o=function(t){return\"symbol\"==typeof t||r(t)&&\"[object Symbol]\"==n(t)}}function Cf(){if(Jo)return Wo;Jo=1;var n=Ir(),r=If(),t=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,e=/^\\w*$/;return Wo=function(o,i){if(n(o))return!1;var u=typeof o;return!(\"number\"!=u&&\"symbol\"!=u&&\"boolean\"!=u&&null!=o&&!r(o))||(e.test(o)||!t.test(o)||null!=i&&o in Object(i))}}function Af(){if(Xo)return Ho;Xo=1;var n=function(){if(Qo)return Ko;Qo=1;var n=mr();function r(t,e){if(\"function\"!=typeof t||null!=e&&\"function\"!=typeof e)throw new TypeError(\"Expected a function\");var o=function(){var n=arguments,r=e?e.apply(this,n):n[0],i=o.cache;if(i.has(r))return i.get(r);var u=t.apply(this,n);return o.cache=i.set(r,u)||i,u};return o.cache=new(r.Cache||n),o}return r.Cache=n,Ko=r}();return Ho=function(r){var t=n(r,(function(n){return 500===e.size&&e.clear(),n})),e=t.cache;return t}}function Mf(){if(ti)return ri;return ti=1,ri=function(n,r){for(var t=-1,e=null==n?0:n.length,o=Array(e);++t<e;)o[t]=r(n[t],t,n);return o}}function Lf(){if(ui)return ii;ui=1;var n=function(){if(oi)return ei;oi=1;var n=fr(),r=Mf(),t=Ir(),e=If(),o=n?n.prototype:void 0,i=o?o.toString:void 0;return ei=function n(o){if(\"string\"==typeof o)return o;if(t(o))return r(o,n)+\"\";if(e(o))return i?i.call(o):\"\";var u=o+\"\";return\"0\"==u&&1/o==-1/0?\"-0\":u},ei}();return ii=function(r){return null==r?\"\":n(r)}}function Pf(){if(fi)return ai;fi=1;var n=Ir(),r=Cf(),t=function(){if(ni)return Zo;ni=1;var n=Af(),r=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,t=/\\\\(\\\\)?/g,e=n((function(n){var e=[];return 46===n.charCodeAt(0)&&e.push(\"\"),n.replace(r,(function(n,r,o,i){e.push(o?i.replace(t,\"$1\"):r||n)})),e}));return Zo=e}(),e=Lf();return ai=function(o,i){return n(o)?o:r(o,i)?[o]:t(e(o))}}function Sf(){if(si)return ci;si=1;var n=If();return ci=function(r){if(\"string\"==typeof r||n(r))return r;var t=r+\"\";return\"0\"==t&&1/r==-1/0?\"-0\":t}}function Tf(){if(hi)return di;hi=1;var n=Pf(),r=Sf();return di=function(t,e){for(var o=0,i=(e=n(e,t)).length;null!=t&&o<i;)t=t[r(e[o++])];return o&&o==i?t:void 0}}function Rf(){if(bi)return yi;bi=1;var n=Pf(),r=Or(),t=Ir(),e=Gr(),o=Vr(),i=Sf();return yi=function(u,a,f){for(var c=-1,s=(a=n(a,u)).length,d=!1;++c<s;){var h=i(a[c]);if(!(d=null!=u&&f(u,h)))break;u=u[h]}return d||++c!=s?d:!!(s=null==u?0:u.length)&&o(s)&&e(h,s)&&(t(u)||r(u))}}function zf(){if(_i)return mi;_i=1;var n=gi?pi:(gi=1,pi=function(n,r){return null!=n&&r in Object(n)}),r=Rf();return mi=function(t,e){return null!=t&&r(t,e,n)}}function Ff(){if(Ei)return wi;Ei=1;var n=kf(),r=function(){if(li)return vi;li=1;var n=Tf();return vi=function(r,t,e){var o=null==r?void 0:n(r,t);return void 0===o?e:o}}(),t=zf(),e=Cf(),o=xf(),i=Nf(),u=Sf();return wi=function(a,f){return e(a)&&o(f)?i(u(a),f):function(e){var o=r(e,a);return void 0===o&&o===f?t(e,a):n(f,o,3)}}}function Df(){if(ki)return ji;return ki=1,ji=function(n){return function(r){return null==r?void 0:r[n]}}}function Bf(){if(Ii)return Oi;Ii=1;var n=Df(),r=function(){if(Ni)return xi;Ni=1;var n=Tf();return xi=function(r){return function(t){return n(t,r)}}}(),t=Cf(),e=Sf();return Oi=function(o){return t(o)?n(e(o)):r(o)}}function Uf(){if(Ai)return Ci;Ai=1;var n=Of(),r=Ff(),t=lf(),e=Ir(),o=Bf();return Ci=function(i){return\"function\"==typeof i?i:null==i?t:\"object\"==typeof i?e(i)?r(i[0],i[1]):n(i):o(i)}}function Gf(){if(Li)return Mi;Li=1;var n=Va(),r=function(){if(co)return fo;co=1;var n=vf();return fo=function(r,t){var e=[];return n(r,(function(n,r,o){t(n,r,o)&&e.push(n)})),e}}(),t=Uf(),e=Ir();return Mi=function(o,i){return(e(o)?n:r)(o,t(i,3))}}function Vf(){if(Ri)return Ti;Ri=1;var n=function(){if(Si)return Pi;Si=1;var n=Object.prototype.hasOwnProperty;return Pi=function(r,t){return null!=r&&n.call(r,t)}}(),r=Rf();return Ti=function(t,e){return null!=t&&r(t,e,n)}}function qf(){if(Fi)return zi;Fi=1;var n=kt(),r=Xa(),t=Or(),e=Ir(),o=xt(),i=Ur(),u=Et(),a=_t(),f=Object.prototype.hasOwnProperty;return zi=function(c){if(null==c)return!0;if(o(c)&&(e(c)||\"string\"==typeof c||\"function\"==typeof c.splice||i(c)||a(c)||t(c)))return!c.length;var s=r(c);if(\"[object Map]\"==s||\"[object Set]\"==s)return!c.size;if(u(c))return!n(c).length;for(var d in c)if(f.call(c,d))return!1;return!0}}function $f(){if(Bi)return Di;return Bi=1,Di=function(n){return void 0===n}}function Yf(){if(Gi)return Ui;Gi=1;var n=vf(),r=xt();return Ui=function(t,e){var o=-1,i=r(t)?Array(t.length):[];return n(t,(function(n,r,t){i[++o]=e(n,r,t)})),i}}function Wf(){if(qi)return Vi;qi=1;var n=Mf(),r=Uf(),t=Yf(),e=Ir();return Vi=function(o,i){return(e(o)?n:t)(o,r(i,3))}}function Jf(){if(Qi)return Ki;Qi=1;var n=Yi?$i:(Yi=1,$i=function(n,r,t,e){var o=-1,i=null==n?0:n.length;for(e&&i&&(t=n[++o]);++o<i;)t=r(t,n[o],o,n);return t}),r=vf(),t=Uf(),e=Ji?Wi:(Ji=1,Wi=function(n,r,t,e,o){return o(n,(function(n,o,i){t=e?(e=!1,n):r(t,n,o,i)})),t}),o=Ir();return Ki=function(i,u,a){var f=o(i)?n:e,c=arguments.length<3;return f(i,t(u,4),a,c,r)},Ki}function Kf(){if(uu)return iu;uu=1;var n=function(){if(nu)return Zi;nu=1;var n=Df()(\"length\");return Zi=n}(),r=function(){if(tu)return ru;tu=1;var n=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\");return ru=function(r){return n.test(r)}}(),t=function(){if(ou)return eu;ou=1;var n=\"\\\\ud800-\\\\udfff\",r=\"[\"+n+\"]\",t=\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",e=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",o=\"[^\"+n+\"]\",i=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",u=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",a=\"(?:\"+t+\"|\"+e+\")?\",f=\"[\\\\ufe0e\\\\ufe0f]?\",c=f+a+\"(?:\\\\u200d(?:\"+[o,i,u].join(\"|\")+\")\"+f+a+\")*\",s=\"(?:\"+[o+t+\"?\",t,i,u,r].join(\"|\")+\")\",d=RegExp(e+\"(?=\"+e+\")|\"+s+c,\"g\");return eu=function(n){for(var r=d.lastIndex=0;d.test(n);)++r;return r}}();return iu=function(e){return r(e)?t(e):n(e)}}function Qf(){if(fu)return au;fu=1;var n=kt(),r=Xa(),t=xt(),e=function(){if(Xi)return Hi;Xi=1;var n=cr(),r=Ir(),t=Nr();return Hi=function(e){return\"string\"==typeof e||!r(e)&&t(e)&&\"[object String]\"==n(e)}}(),o=Kf();return au=function(i){if(null==i)return 0;if(t(i))return e(i)?o(i):i.length;var u=r(i);return\"[object Map]\"==u||\"[object Set]\"==u?i.size:n(i).length}}function Hf(){if(su)return cu;su=1;var n=wr(),r=ef(),t=hf(),e=Uf(),o=Wa(),i=Ir(),u=Ur(),a=dr(),f=sr(),c=_t();return cu=function(s,d,h){var v=i(s),l=v||u(s)||c(s);if(d=e(d,4),null==h){var p=s&&s.constructor;h=l?v?new p:[]:f(s)&&a(p)?r(o(s)):{}}return(l?n:t)(s,(function(n,r,t){return d(h,n,r,t)})),h}}function Xf(){if(lu)return vu;lu=1;var n=Ya(),r=function(){if(hu)return du;hu=1;var n=fr(),r=Or(),t=Ir(),e=n?n.isConcatSpreadable:void 0;return du=function(n){return t(n)||r(n)||!!(e&&n&&n[e])}}();return vu=function t(e,o,i,u,a){var f=-1,c=e.length;for(i||(i=r),a||(a=[]);++f<c;){var s=e[f];o>0&&i(s)?o>1?t(s,o-1,i,u,a):n(a,s):u||(a[a.length]=s)}return a},vu}function Zf(){if(bu)return yu;bu=1;var n=gu?pu:(gu=1,pu=function(n,r,t){switch(t.length){case 0:return n.call(r);case 1:return n.call(r,t[0]);case 2:return n.call(r,t[0],t[1]);case 3:return n.call(r,t[0],t[1],t[2])}return n.apply(r,t)}),r=Math.max;return yu=function(t,e,o){return e=r(void 0===e?t.length-1:e,0),function(){for(var i=arguments,u=-1,a=r(i.length-e,0),f=Array(a);++u<a;)f[u]=i[e+u];u=-1;for(var c=Array(e+1);++u<e;)c[u]=i[u];return c[e]=o(f),n(t,this,c)}},yu}function nc(){if(ku)return ju;ku=1;var n=function(){if(_u)return mu;_u=1;var n=sf(),r=Er(),t=lf();return mu=r?function(t,e){return r(t,\"toString\",{configurable:!0,enumerable:!1,value:n(e),writable:!0})}:t}(),r=function(){if(Eu)return wu;Eu=1;var n=Date.now;return wu=function(r){var t=0,e=0;return function(){var o=n(),i=16-(o-e);if(e=o,i>0){if(++t>=800)return arguments[0]}else t=0;return r.apply(void 0,arguments)}},wu}(),t=r(n);return ju=t}function rc(){if(Nu)return xu;Nu=1;var n=lf(),r=Zf(),t=nc();return xu=function(e,o){return t(r(e,o,n),e+\"\")}}function tc(){if(Iu)return Ou;return Iu=1,Ou=function(n,r,t,e){for(var o=n.length,i=t+(e?1:-1);e?i--:++i<o;)if(r(n[i],i,n))return i;return-1}}function ec(){if(Su)return Pu;Su=1;var n=tc(),r=Au?Cu:(Au=1,Cu=function(n){return n!=n}),t=Lu?Mu:(Lu=1,Mu=function(n,r,t){for(var e=t-1,o=n.length;++e<o;)if(n[e]===r)return e;return-1});return Pu=function(e,o,i){return o==o?t(e,o,i):n(e,r,i)}}function oc(){if(Gu)return Uu;Gu=1;var n=Ha(),r=Bu?Du:(Bu=1,Du=function(){}),t=wf(),e=n&&1/t(new n([,-0]))[1]==1/0?function(r){return new n(r)}:r;return Uu=e}function ic(){if(qu)return Vu;qu=1;var n=bf(),r=function(){if(Ru)return Tu;Ru=1;var n=ec();return Tu=function(r,t){return!(null==r||!r.length)&&n(r,t,0)>-1}}(),t=Fu?zu:(Fu=1,zu=function(n,r,t){for(var e=-1,o=null==n?0:n.length;++e<o;)if(t(r,n[e]))return!0;return!1}),e=mf(),o=oc(),i=wf();return Vu=function(u,a,f){var c=-1,s=r,d=u.length,h=!0,v=[],l=v;if(f)h=!1,s=t;else if(d>=200){var p=a?null:o(u);if(p)return i(p);h=!1,s=e,l=new n}else l=a?[]:v;n:for(;++c<d;){var g=u[c],y=a?a(g):g;if(g=f||0!==g?g:0,h&&y==y){for(var b=l.length;b--;)if(l[b]===y)continue n;a&&l.push(y),v.push(g)}else s(l,y,f)||(l!==v&&l.push(y),v.push(g))}return v}}function uc(){if(Yu)return $u;Yu=1;var n=xt(),r=Nr();return $u=function(t){return r(t)&&n(t)}}function ac(){if(Ju)return Wu;Ju=1;var n=Xf(),r=rc(),t=ic(),e=uc(),o=r((function(r){return t(n(r,1,e,!0))}));return Wu=o}function fc(){if(Xu)return Hu;Xu=1;var n=function(){if(Qu)return Ku;Qu=1;var n=Mf();return Ku=function(r,t){return n(t,(function(n){return r[n]}))}}(),r=Nt();return Hu=function(t){return null==t?[]:n(t,r(t))}}function cc(){if(na)return Zu;var n;na=1;try{n={clone:cf(),constant:sf(),each:yf(),filter:Gf(),has:Vf(),isArray:Ir(),isEmpty:qf(),isFunction:dr(),isUndefined:$f(),keys:Nt(),map:Wf(),reduce:Jf(),size:Qf(),transform:Hf(),union:ac(),values:fc()}}catch(n){}return n||(n=window._),Zu=n}function sc(){if(ta)return ra;ta=1;var n=cc();ra=o;var r=\"\\0\",t=\"\\0\",e=\"\u0001\";function o(r){this._isDirected=!n.has(r,\"directed\")||r.directed,this._isMultigraph=!!n.has(r,\"multigraph\")&&r.multigraph,this._isCompound=!!n.has(r,\"compound\")&&r.compound,this._label=void 0,this._defaultNodeLabelFn=n.constant(void 0),this._defaultEdgeLabelFn=n.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[t]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function i(n,r){n[r]?n[r]++:n[r]=1}function u(n,r){--n[r]||delete n[r]}function a(t,o,i,u){var a=\"\"+o,f=\"\"+i;if(!t&&a>f){var c=a;a=f,f=c}return a+e+f+e+(n.isUndefined(u)?r:u)}function f(n,r){return a(n,r.v,r.w,r.name)}return o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(n){return this._label=n,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(r){return n.isFunction(r)||(r=n.constant(r)),this._defaultNodeLabelFn=r,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return n.keys(this._nodes)},o.prototype.sources=function(){var r=this;return n.filter(this.nodes(),(function(t){return n.isEmpty(r._in[t])}))},o.prototype.sinks=function(){var r=this;return n.filter(this.nodes(),(function(t){return n.isEmpty(r._out[t])}))},o.prototype.setNodes=function(r,t){var e=arguments,o=this;return n.each(r,(function(n){e.length>1?o.setNode(n,t):o.setNode(n)})),this},o.prototype.setNode=function(r,e){return n.has(this._nodes,r)?(arguments.length>1&&(this._nodes[r]=e),this):(this._nodes[r]=arguments.length>1?e:this._defaultNodeLabelFn(r),this._isCompound&&(this._parent[r]=t,this._children[r]={},this._children[t][r]=!0),this._in[r]={},this._preds[r]={},this._out[r]={},this._sucs[r]={},++this._nodeCount,this)},o.prototype.node=function(n){return this._nodes[n]},o.prototype.hasNode=function(r){return n.has(this._nodes,r)},o.prototype.removeNode=function(r){var t=this;if(n.has(this._nodes,r)){var e=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[r],this._isCompound&&(this._removeFromParentsChildList(r),delete this._parent[r],n.each(this.children(r),(function(n){t.setParent(n)})),delete this._children[r]),n.each(n.keys(this._in[r]),e),delete this._in[r],delete this._preds[r],n.each(n.keys(this._out[r]),e),delete this._out[r],delete this._sucs[r],--this._nodeCount}return this},o.prototype.setParent=function(r,e){if(!this._isCompound)throw new Error(\"Cannot set parent in a non-compound graph\");if(n.isUndefined(e))e=t;else{for(var o=e+=\"\";!n.isUndefined(o);o=this.parent(o))if(o===r)throw new Error(\"Setting \"+e+\" as parent of \"+r+\" would create a cycle\");this.setNode(e)}return this.setNode(r),this._removeFromParentsChildList(r),this._parent[r]=e,this._children[e][r]=!0,this},o.prototype._removeFromParentsChildList=function(n){delete this._children[this._parent[n]][n]},o.prototype.parent=function(n){if(this._isCompound){var r=this._parent[n];if(r!==t)return r}},o.prototype.children=function(r){if(n.isUndefined(r)&&(r=t),this._isCompound){var e=this._children[r];if(e)return n.keys(e)}else{if(r===t)return this.nodes();if(this.hasNode(r))return[]}},o.prototype.predecessors=function(r){var t=this._preds[r];if(t)return n.keys(t)},o.prototype.successors=function(r){var t=this._sucs[r];if(t)return n.keys(t)},o.prototype.neighbors=function(r){var t=this.predecessors(r);if(t)return n.union(t,this.successors(r))},o.prototype.isLeaf=function(n){return 0===(this.isDirected()?this.successors(n):this.neighbors(n)).length},o.prototype.filterNodes=function(r){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var e=this;n.each(this._nodes,(function(n,e){r(e)&&t.setNode(e,n)})),n.each(this._edgeObjs,(function(n){t.hasNode(n.v)&&t.hasNode(n.w)&&t.setEdge(n,e.edge(n))}));var o={};function i(n){var r=e.parent(n);return void 0===r||t.hasNode(r)?(o[n]=r,r):r in o?o[r]:i(r)}return this._isCompound&&n.each(t.nodes(),(function(n){t.setParent(n,i(n))})),t},o.prototype.setDefaultEdgeLabel=function(r){return n.isFunction(r)||(r=n.constant(r)),this._defaultEdgeLabelFn=r,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return n.values(this._edgeObjs)},o.prototype.setPath=function(r,t){var e=this,o=arguments;return n.reduce(r,(function(n,r){return o.length>1?e.setEdge(n,r,t):e.setEdge(n,r),r})),this},o.prototype.setEdge=function(){var r,t,e,o,u=!1,f=arguments[0];\"object\"==typeof f&&null!==f&&\"v\"in f?(r=f.v,t=f.w,e=f.name,2===arguments.length&&(o=arguments[1],u=!0)):(r=f,t=arguments[1],e=arguments[3],arguments.length>2&&(o=arguments[2],u=!0)),r=\"\"+r,t=\"\"+t,n.isUndefined(e)||(e=\"\"+e);var c=a(this._isDirected,r,t,e);if(n.has(this._edgeLabels,c))return u&&(this._edgeLabels[c]=o),this;if(!n.isUndefined(e)&&!this._isMultigraph)throw new Error(\"Cannot set a named edge when isMultigraph = false\");this.setNode(r),this.setNode(t),this._edgeLabels[c]=u?o:this._defaultEdgeLabelFn(r,t,e);var s=function(n,r,t,e){var o=\"\"+r,i=\"\"+t;if(!n&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};e&&(a.name=e);return a}(this._isDirected,r,t,e);return r=s.v,t=s.w,Object.freeze(s),this._edgeObjs[c]=s,i(this._preds[t],r),i(this._sucs[r],t),this._in[t][c]=s,this._out[r][c]=s,this._edgeCount++,this},o.prototype.edge=function(n,r,t){var e=1===arguments.length?f(this._isDirected,arguments[0]):a(this._isDirected,n,r,t);return this._edgeLabels[e]},o.prototype.hasEdge=function(r,t,e){var o=1===arguments.length?f(this._isDirected,arguments[0]):a(this._isDirected,r,t,e);return n.has(this._edgeLabels,o)},o.prototype.removeEdge=function(n,r,t){var e=1===arguments.length?f(this._isDirected,arguments[0]):a(this._isDirected,n,r,t),o=this._edgeObjs[e];return o&&(n=o.v,r=o.w,delete this._edgeLabels[e],delete this._edgeObjs[e],u(this._preds[r],n),u(this._sucs[n],r),delete this._in[r][e],delete this._out[n][e],this._edgeCount--),this},o.prototype.inEdges=function(r,t){var e=this._in[r];if(e){var o=n.values(e);return t?n.filter(o,(function(n){return n.v===t})):o}},o.prototype.outEdges=function(r,t){var e=this._out[r];if(e){var o=n.values(e);return t?n.filter(o,(function(n){return n.w===t})):o}},o.prototype.nodeEdges=function(n,r){var t=this.inEdges(n,r);if(t)return t.concat(this.outEdges(n,r))},ra}function dc(){return ua?ia:(ua=1,ia={Graph:sc(),version:oa?ea:(oa=1,ea=\"2.1.8\")})}function hc(){if(fa)return aa;fa=1;var n=cc(),r=sc();function t(r){return n.map(r.nodes(),(function(t){var e=r.node(t),o=r.parent(t),i={v:t};return n.isUndefined(e)||(i.value=e),n.isUndefined(o)||(i.parent=o),i}))}function e(r){return n.map(r.edges(),(function(t){var e=r.edge(t),o={v:t.v,w:t.w};return n.isUndefined(t.name)||(o.name=t.name),n.isUndefined(e)||(o.value=e),o}))}return aa={write:function(r){var o={options:{directed:r.isDirected(),multigraph:r.isMultigraph(),compound:r.isCompound()},nodes:t(r),edges:e(r)};n.isUndefined(r.graph())||(o.value=n.clone(r.graph()));return o},read:function(t){var e=new r(t.options).setGraph(t.value);return n.each(t.nodes,(function(n){e.setNode(n.v,n.value),n.parent&&e.setParent(n.v,n.parent)})),n.each(t.edges,(function(n){e.setEdge({v:n.v,w:n.w,name:n.name},n.value)})),e}}}function vc(){if(sa)return ca;sa=1;var n=cc();return ca=function(r){var t,e={},o=[];function i(o){n.has(e,o)||(e[o]=!0,t.push(o),n.each(r.successors(o),i),n.each(r.predecessors(o),i))}return n.each(r.nodes(),(function(n){t=[],i(n),t.length&&o.push(t)})),o},ca}function lc(){if(ha)return da;ha=1;var n=cc();function r(){this._arr=[],this._keyIndices={}}return da=r,r.prototype.size=function(){return this._arr.length},r.prototype.keys=function(){return this._arr.map((function(n){return n.key}))},r.prototype.has=function(r){return n.has(this._keyIndices,r)},r.prototype.priority=function(n){var r=this._keyIndices[n];if(void 0!==r)return this._arr[r].priority},r.prototype.min=function(){if(0===this.size())throw new Error(\"Queue underflow\");return this._arr[0].key},r.prototype.add=function(r,t){var e=this._keyIndices;if(r=String(r),!n.has(e,r)){var o=this._arr,i=o.length;return e[r]=i,o.push({key:r,priority:t}),this._decrease(i),!0}return!1},r.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var n=this._arr.pop();return delete this._keyIndices[n.key],this._heapify(0),n.key},r.prototype.decrease=function(n,r){var t=this._keyIndices[n];if(r>this._arr[t].priority)throw new Error(\"New priority is greater than current priority. Key: \"+n+\" Old: \"+this._arr[t].priority+\" New: \"+r);this._arr[t].priority=r,this._decrease(t)},r.prototype._heapify=function(n){var r=this._arr,t=2*n,e=t+1,o=n;t<r.length&&(o=r[t].priority<r[o].priority?t:o,e<r.length&&(o=r[e].priority<r[o].priority?e:o),o!==n&&(this._swap(n,o),this._heapify(o)))},r.prototype._decrease=function(n){for(var r,t=this._arr,e=t[n].priority;0!==n&&!(t[r=n>>1].priority<e);)this._swap(n,r),n=r},r.prototype._swap=function(n,r){var t=this._arr,e=this._keyIndices,o=t[n],i=t[r];t[n]=i,t[r]=o,e[i.key]=n,e[o.key]=r},da}function pc(){if(la)return va;la=1;var n=cc(),r=lc();va=function(n,e,o,i){return function(n,t,e,o){var i,u,a={},f=new r,c=function(n){var r=n.v!==i?n.v:n.w,t=a[r],o=e(n),c=u.distance+o;if(o<0)throw new Error(\"dijkstra does not allow negative edge weights. Bad edge: \"+n+\" Weight: \"+o);c<t.distance&&(t.distance=c,t.predecessor=i,f.decrease(r,c))};n.nodes().forEach((function(n){var r=n===t?0:Number.POSITIVE_INFINITY;a[n]={distance:r},f.add(n,r)}));for(;f.size()>0&&(i=f.removeMin(),(u=a[i]).distance!==Number.POSITIVE_INFINITY);)o(i).forEach(c);return a}(n,String(e),o||t,i||function(r){return n.outEdges(r)})};var t=n.constant(1);return va}function gc(){if(ga)return pa;ga=1;var n=pc(),r=cc();return pa=function(t,e,o){return r.transform(t.nodes(),(function(r,i){r[i]=n(t,i,e,o)}),{})}}function yc(){if(ba)return ya;ba=1;var n=cc();return ya=function(r){var t=0,e=[],o={},i=[];function u(a){var f=o[a]={onStack:!0,lowlink:t,index:t++};if(e.push(a),r.successors(a).forEach((function(r){n.has(o,r)?o[r].onStack&&(f.lowlink=Math.min(f.lowlink,o[r].index)):(u(r),f.lowlink=Math.min(f.lowlink,o[r].lowlink))})),f.lowlink===f.index){var c,s=[];do{c=e.pop(),o[c].onStack=!1,s.push(c)}while(a!==c);i.push(s)}}return r.nodes().forEach((function(r){n.has(o,r)||u(r)})),i},ya}function bc(){if(_a)return ma;_a=1;var n=cc(),r=yc();return ma=function(t){return n.filter(r(t),(function(n){return n.length>1||1===n.length&&t.hasEdge(n[0],n[0])}))}}function mc(){if(Ea)return wa;Ea=1;var n=cc();wa=function(n,t,e){return function(n,r,t){var e={},o=n.nodes();return o.forEach((function(n){e[n]={},e[n][n]={distance:0},o.forEach((function(r){n!==r&&(e[n][r]={distance:Number.POSITIVE_INFINITY})})),t(n).forEach((function(t){var o=t.v===n?t.w:t.v,i=r(t);e[n][o]={distance:i,predecessor:n}}))})),o.forEach((function(n){var r=e[n];o.forEach((function(t){var i=e[t];o.forEach((function(t){var e=i[n],o=r[t],u=i[t],a=e.distance+o.distance;a<u.distance&&(u.distance=a,u.predecessor=o.predecessor)}))}))})),e}(n,t||r,e||function(r){return n.outEdges(r)})};var r=n.constant(1);return wa}function _c(){if(ka)return ja;ka=1;var n=cc();function r(r){var e={},o={},i=[];if(n.each(r.sinks(),(function u(a){if(n.has(o,a))throw new t;n.has(e,a)||(o[a]=!0,e[a]=!0,n.each(r.predecessors(a),u),delete o[a],i.push(a))})),n.size(e)!==r.nodeCount())throw new t;return i}function t(){}return ja=r,r.CycleException=t,t.prototype=new Error,ja}function wc(){if(Na)return xa;Na=1;var n=_c();return xa=function(r){try{n(r)}catch(r){if(r instanceof n.CycleException)return!1;throw r}return!0}}function Ec(){if(Ia)return Oa;Ia=1;var n=cc();function r(t,e,o,i,u,a){n.has(i,e)||(i[e]=!0,o||a.push(e),n.each(u(e),(function(n){r(t,n,o,i,u,a)})),o&&a.push(e))}return Oa=function(t,e,o){n.isArray(e)||(e=[e]);var i=(t.isDirected()?t.successors:t.neighbors).bind(t),u=[],a={};return n.each(e,(function(n){if(!t.hasNode(n))throw new Error(\"Graph does not have node: \"+n);r(t,n,\"post\"===o,a,i,u)})),u},Oa}function jc(){if(Aa)return Ca;Aa=1;var n=Ec();return Ca=function(r,t){return n(r,t,\"post\")}}function kc(){if(La)return Ma;La=1;var n=Ec();return Ma=function(r,t){return n(r,t,\"pre\")}}function xc(){if(Sa)return Pa;Sa=1;var n=cc(),r=sc(),t=lc();return Pa=function(e,o){var i,u=new r,a={},f=new t;function c(n){var r=n.v===i?n.w:n.v,t=f.priority(r);if(void 0!==t){var e=o(n);e<t&&(a[r]=i,f.decrease(r,e))}}if(0===e.nodeCount())return u;n.each(e.nodes(),(function(n){f.add(n,Number.POSITIVE_INFINITY),u.setNode(n)})),f.decrease(e.nodes()[0],0);var s=!1;for(;f.size()>0;){if(i=f.removeMin(),n.has(a,i))u.setEdge(i,a[i]);else{if(s)throw new Error(\"Input graph is not connected: \"+e);s=!0}e.nodeEdges(i).forEach(c)}return u}}Ba.exports;try{Da=function(){if(Fa)return za;Fa=1;var n=dc();return za={Graph:n.Graph,json:hc(),alg:Ra?Ta:(Ra=1,Ta={components:vc(),dijkstra:pc(),dijkstraAll:gc(),findCycles:bc(),floydWarshall:mc(),isAcyclic:wc(),postorder:jc(),preorder:kc(),prim:xc(),tarjan:yc(),topsort:_c()}),version:n.version}}()}catch(n){}Da||(Da=window.graphlib);var Nc,Oc,Ic,Cc,Ac,Mc,Lc,Pc,Sc,Tc,Rc,zc,Fc,Dc,Bc,Uc,Gc,Vc,qc,$c,Yc,Wc,Jc,Kc,Qc,Hc,Xc,Zc,ns,rs,ts,es,os,is,us,as,fs,cs,ss,ds,hs,vs,ls,ps,gs,ys,bs,ms,_s,ws,Es,js,ks,xs,Ns,Os,Is,Cs,As,Ms,Ls,Ps,Ss,Ts,Rs,zs,Fs,Ds,Bs,Us,Gs,Vs,qs,$s,Ys,Ws,Js,Ks,Qs,Hs,Xs,Zs,nd,rd,td,ed,od,id,ud,ad,fd,cd,sd,dd=Da;function hd(){if(Cc)return Ic;Cc=1;var n=er(),r=xt(),t=Gr(),e=sr();return Ic=function(o,i,u){if(!e(u))return!1;var a=typeof i;return!!(\"number\"==a?r(u)&&t(i,u.length):\"string\"==a&&i in u)&&n(u[i],o)}}function vd(){if(zc)return Rc;zc=1;var n=function(){if(Tc)return Sc;Tc=1;var n=/\\s/;return Sc=function(r){for(var t=r.length;t--&&n.test(r.charAt(t)););return t}}(),r=/^\\s+/;return Rc=function(t){return t?t.slice(0,n(t)+1).replace(r,\"\"):t}}function ld(){if(Uc)return Bc;Uc=1;var n=function(){if(Dc)return Fc;Dc=1;var n=vd(),r=sr(),t=If(),e=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,i=/^0o[0-7]+$/i,u=parseInt;return Fc=function(a){if(\"number\"==typeof a)return a;if(t(a))return NaN;if(r(a)){var f=\"function\"==typeof a.valueOf?a.valueOf():a;a=r(f)?f+\"\":f}if(\"string\"!=typeof a)return 0===a?a:+a;a=n(a);var c=o.test(a);return c||i.test(a)?u(a.slice(2),c?2:8):e.test(a)?NaN:+a}}(),r=1/0;return Bc=function(t){return t?(t=n(t))===r||t===-1/0?17976931348623157e292*(t<0?-1:1):t==t?t:0:0===t?t:0}}function pd(){if($c)return qc;$c=1;var n=tc(),r=Uf(),t=function(){if(Vc)return Gc;Vc=1;var n=ld();return Gc=function(r){var t=n(r),e=t%1;return t==t?e?t-e:t:0}}(),e=Math.max;return qc=function(o,i,u){var a=null==o?0:o.length;if(!a)return-1;var f=null==u?0:t(u);return f<0&&(f=e(a+f,0)),n(o,r(i,3),f)}}function gd(){if(Kc)return Jc;Kc=1;var n=Xf();return Jc=function(r){return(null==r?0:r.length)?n(r,1):[]}}function yd(){if(es)return ts;es=1;var n=If();return ts=function(r,t,e){for(var o=-1,i=r.length;++o<i;){var u=r[o],a=t(u);if(null!=a&&(void 0===f?a==a&&!n(a):e(a,f)))var f=a,c=u}return c}}function bd(){if(cs)return fs;cs=1;var n=jr(),r=er();return fs=function(t,e,o){(void 0!==o&&!r(t[e],o)||void 0===o&&!(e in t))&&n(t,e,o)}}function md(){if(vs)return hs;return vs=1,hs=function(n,r){if((\"constructor\"!==r||\"function\"!=typeof n[r])&&\"__proto__\"!=r)return n[r]}}function _d(){if(ys)return gs;ys=1;var n=bd(),r=Ua(),t=rf(),e=Ga(),o=of(),i=Or(),u=Ir(),a=uc(),f=Ur(),c=dr(),s=sr(),d=function(){if(ds)return ss;ds=1;var n=cr(),r=Wa(),t=Nr(),e=Function.prototype,o=Object.prototype,i=e.toString,u=o.hasOwnProperty,a=i.call(Object);return ss=function(e){if(!t(e)||\"[object Object]\"!=n(e))return!1;var o=r(e);if(null===o)return!0;var f=u.call(o,\"constructor\")&&o.constructor;return\"function\"==typeof f&&f instanceof f&&i.call(f)==a}}(),h=_t(),v=md(),l=function(){if(ps)return ls;ps=1;var n=xr(),r=It();return ls=function(t){return n(t,r(t))}}();return gs=function(p,g,y,b,m,_,w){var E=v(p,y),j=v(g,y),k=w.get(j);if(k)n(p,y,k);else{var x=_?_(E,j,y+\"\",p,g,w):void 0,N=void 0===x;if(N){var O=u(j),I=!O&&f(j),C=!O&&!I&&h(j);x=j,O||I||C?u(E)?x=E:a(E)?x=e(E):I?(N=!1,x=r(j,!0)):C?(N=!1,x=t(j,!0)):x=[]:d(j)||i(j)?(x=E,i(E)?x=l(E):s(E)&&!c(E)||(x=o(j))):N=!1}N&&(w.set(j,x),m(x,j,b,_,w),w.delete(j)),n(p,y,x)}}}function wd(){if(xs)return ks;return xs=1,ks=function(n,r){return n<r}}function Ed(){if(Ts)return Ss;Ts=1;var n=Tf(),r=function(){if(Ps)return Ls;Ps=1;var n=kr(),r=Pf(),t=Gr(),e=sr(),o=Sf();return Ls=function(i,u,a,f){if(!e(i))return i;for(var c=-1,s=(u=r(u,i)).length,d=s-1,h=i;null!=h&&++c<s;){var v=o(u[c]),l=a;if(\"__proto__\"===v||\"constructor\"===v||\"prototype\"===v)return i;if(c!=d){var p=h[v];void 0===(l=f?f(p,v,h):void 0)&&(l=e(p)?p:t(u[c+1])?[]:{})}n(h,v,l),h=h[v]}return i}}(),t=Pf();return Ss=function(e,o,i){for(var u=-1,a=o.length,f={};++u<a;){var c=o[u],s=n(e,c);i(s,c)&&r(f,t(c,e),s)}return f}}function jd(){if($s)return qs;$s=1;var n=function(){if(Vs)return Gs;Vs=1;var n=Math.ceil,r=Math.max;return Gs=function(t,e,o,i){for(var u=-1,a=r(n((e-t)/(o||1)),0),f=Array(a);a--;)f[i?a:++u]=t,t+=o;return f}}(),r=hd(),t=ld();return qs=function(e){return function(o,i,u){return u&&\"number\"!=typeof u&&r(o,i,u)&&(i=u=void 0),o=t(o),void 0===i?(i=o,o=0):i=t(i),u=void 0===u?o<i?1:-1:t(u),n(o,i,u,e)}}}function kd(){if(Zs)return Xs;Zs=1;var n=function(){if(Hs)return Qs;Hs=1;var n=If();return Qs=function(r,t){if(r!==t){var e=void 0!==r,o=null===r,i=r==r,u=n(r),a=void 0!==t,f=null===t,c=t==t,s=n(t);if(!f&&!s&&!u&&r>t||u&&a&&c&&!f&&!s||o&&a&&c||!e&&c||!i)return 1;if(!o&&!u&&!s&&r<t||s&&e&&i&&!o&&!u||f&&e&&i||!a&&i||!c)return-1}return 0}}();return Xs=function(r,t,e){for(var o=-1,i=r.criteria,u=t.criteria,a=i.length,f=e.length;++o<a;){var c=n(i[o],u[o]);if(c)return o>=f?c:c*(\"desc\"==e[o]?-1:1)}return r.index-t.index}}function xd(){if(rd)return nd;rd=1;var n=Mf(),r=Tf(),t=Uf(),e=Yf(),o=Ks?Js:(Ks=1,Js=function(n,r){var t=n.length;for(n.sort(r);t--;)n[t]=n[t].value;return n}),i=qr(),u=kd(),a=lf(),f=Ir();return nd=function(c,s,d){s=s.length?n(s,(function(n){return f(n)?function(t){return r(t,1===n.length?n[0]:n)}:n})):[a];var h=-1;s=n(s,i(t));var v=e(c,(function(r,t,e){return{criteria:n(s,(function(n){return n(r)})),index:++h,value:r}}));return o(v,(function(n,r){return u(n,r,d)}))}}try{sd={cloneDeep:function(){if(Oc)return Nc;Oc=1;var n=ff();return Nc=function(r){return n(r,5)}}(),constant:sf(),defaults:function(){if(Mc)return Ac;Mc=1;var n=rc(),r=er(),t=hd(),e=It(),o=Object.prototype,i=o.hasOwnProperty,u=n((function(n,u){n=Object(n);var a=-1,f=u.length,c=f>2?u[2]:void 0;for(c&&t(u[0],u[1],c)&&(f=1);++a<f;)for(var s=u[a],d=e(s),h=-1,v=d.length;++h<v;){var l=d[h],p=n[l];(void 0===p||r(p,o[l])&&!i.call(n,l))&&(n[l]=s[l])}return n}));return Ac=u}(),each:yf(),filter:Gf(),find:function(){if(Wc)return Yc;Wc=1;var n=function(){if(Pc)return Lc;Pc=1;var n=Uf(),r=xt(),t=Nt();return Lc=function(e){return function(o,i,u){var a=Object(o);if(!r(o)){var f=n(i,3);o=t(o),i=function(n){return f(a[n],n,a)}}var c=e(o,i,u);return c>-1?a[f?o[c]:c]:void 0}}}()(pd());return Yc=n}(),flatten:gd(),forEach:gf(),forIn:function(){if(Hc)return Qc;Hc=1;var n=df(),r=pf(),t=It();return Qc=function(e,o){return null==e?e:n(e,r(o),t)}}(),has:Vf(),isUndefined:$f(),last:Zc?Xc:(Zc=1,Xc=function(n){var r=null==n?0:n.length;return r?n[r-1]:void 0}),map:Wf(),mapValues:function(){if(rs)return ns;rs=1;var n=jr(),r=hf(),t=Uf();return ns=function(e,o){var i={};return o=t(o,3),r(e,(function(r,t,e){n(i,t,o(r,t,e))})),i}}(),max:function(){if(as)return us;as=1;var n=yd(),r=is?os:(is=1,os=function(n,r){return n>r}),t=lf();return us=function(e){return e&&e.length?n(e,t,r):void 0}}(),merge:function(){if(js)return Es;js=1;var n=function(){if(ms)return bs;ms=1;var n=_r(),r=bd(),t=df(),e=_d(),o=sr(),i=It(),u=md();return bs=function a(f,c,s,d,h){f!==c&&t(c,(function(t,i){if(h||(h=new n),o(t))e(f,c,i,s,a,d,h);else{var v=d?d(u(f,i),t,i+\"\",f,c,h):void 0;void 0===v&&(v=t),r(f,i,v)}}),i)},bs}(),r=function(){if(ws)return _s;ws=1;var n=rc(),r=hd();return _s=function(t){return n((function(n,e){var o=-1,i=e.length,u=i>1?e[i-1]:void 0,a=i>2?e[2]:void 0;for(u=t.length>3&&\"function\"==typeof u?(i--,u):void 0,a&&r(e[0],e[1],a)&&(u=i<3?void 0:u,i=1),n=Object(n);++o<i;){var f=e[o];f&&t(n,f,o,u)}return n}))}}()((function(r,t,e){n(r,t,e)}));return Es=r}(),min:function(){if(Os)return Ns;Os=1;var n=yd(),r=wd(),t=lf();return Ns=function(e){return e&&e.length?n(e,t,r):void 0}}(),minBy:function(){if(Cs)return Is;Cs=1;var n=yd(),r=Uf(),t=wd();return Is=function(e,o){return e&&e.length?n(e,r(o,2),t):void 0}}(),now:function(){if(Ms)return As;Ms=1;var n=ar();return As=function(){return n.Date.now()}}(),pick:function(){if(Us)return Bs;Us=1;var n=function(){if(zs)return Rs;zs=1;var n=Ed(),r=zf();return Rs=function(t,e){return n(t,e,(function(n,e){return r(t,e)}))}}(),r=function(){if(Ds)return Fs;Ds=1;var n=gd(),r=Zf(),t=nc();return Fs=function(e){return t(r(e,void 0,n),e+\"\")}}()((function(r,t){return null==r?{}:n(r,t)}));return Bs=r}(),range:function(){if(Ws)return Ys;Ws=1;var n=jd()();return Ys=n}(),reduce:Jf(),sortBy:function(){if(ed)return td;ed=1;var n=Xf(),r=xd(),t=rc(),e=hd(),o=t((function(t,o){if(null==t)return[];var i=o.length;return i>1&&e(t,o[0],o[1])?o=[]:i>2&&e(o[0],o[1],o[2])&&(o=[o[0]]),r(t,n(o,1),[])}));return td=o}(),uniqueId:function(){if(id)return od;id=1;var n=Lf(),r=0;return od=function(t){var e=++r;return n(t)+e}}(),values:fc(),zipObject:function(){if(cd)return fd;cd=1;var n=kr(),r=ad?ud:(ad=1,ud=function(n,r,t){for(var e=-1,o=n.length,i=r.length,u={};++e<o;){var a=e<i?r[e]:void 0;t(u,n[e],a)}return u});return fd=function(t,e){return r(t||[],e||[],n)}}()}}catch(n){}sd||(sd=window._);var Nd=sd,Od=Id;function Id(){var n={};n._next=n._prev=n,this._sentinel=n}function Cd(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function Ad(n,r){if(\"_next\"!==n&&\"_prev\"!==n)return r}Id.prototype.dequeue=function(){var n=this._sentinel,r=n._prev;if(r!==n)return Cd(r),r},Id.prototype.enqueue=function(n){var r=this._sentinel;n._prev&&n._next&&Cd(n),n._next=r._next,r._next._prev=n,r._next=n,n._prev=r},Id.prototype.toString=function(){for(var n=[],r=this._sentinel,t=r._prev;t!==r;)n.push(JSON.stringify(t,Ad)),t=t._prev;return\"[\"+n.join(\", \")+\"]\"};var Md=Nd,Ld=dd.Graph,Pd=Od,Sd=function(n,r){if(n.nodeCount()<=1)return[];var t=function(n,r){var t=new Ld,e=0,o=0;Md.forEach(n.nodes(),(function(n){t.setNode(n,{v:n,in:0,out:0})})),Md.forEach(n.edges(),(function(n){var i=t.edge(n.v,n.w)||0,u=r(n),a=i+u;t.setEdge(n.v,n.w,a),o=Math.max(o,t.node(n.v).out+=u),e=Math.max(e,t.node(n.w).in+=u)}));var i=Md.range(o+e+3).map((function(){return new Pd})),u=e+1;return Md.forEach(t.nodes(),(function(n){zd(i,u,t.node(n))})),{graph:t,buckets:i,zeroIdx:u}}(n,r||Td),e=function(n,r,t){var e,o=[],i=r[r.length-1],u=r[0];for(;n.nodeCount();){for(;e=u.dequeue();)Rd(n,r,t,e);for(;e=i.dequeue();)Rd(n,r,t,e);if(n.nodeCount())for(var a=r.length-2;a>0;--a)if(e=r[a].dequeue()){o=o.concat(Rd(n,r,t,e,!0));break}}return o}(t.graph,t.buckets,t.zeroIdx);return Md.flatten(Md.map(e,(function(r){return n.outEdges(r.v,r.w)})),!0)},Td=Md.constant(1);function Rd(n,r,t,e,o){var i=o?[]:void 0;return Md.forEach(n.inEdges(e.v),(function(e){var u=n.edge(e),a=n.node(e.v);o&&i.push({v:e.v,w:e.w}),a.out-=u,zd(r,t,a)})),Md.forEach(n.outEdges(e.v),(function(e){var o=n.edge(e),i=e.w,u=n.node(i);u.in-=o,zd(r,t,u)})),n.removeNode(e.v),i}function zd(n,r,t){t.out?t.in?n[t.out-t.in+r].enqueue(t):n[n.length-1].enqueue(t):n[0].enqueue(t)}var Fd=Nd,Dd=Sd,Bd={run:function(n){var r=\"greedy\"===n.graph().acyclicer?Dd(n,function(n){return function(r){return n.edge(r).weight}}(n)):function(n){var r=[],t={},e={};function o(i){Fd.has(e,i)||(e[i]=!0,t[i]=!0,Fd.forEach(n.outEdges(i),(function(n){Fd.has(t,n.w)?r.push(n):o(n.w)})),delete t[i])}return Fd.forEach(n.nodes(),o),r}(n);Fd.forEach(r,(function(r){var t=n.edge(r);n.removeEdge(r),t.forwardName=r.name,t.reversed=!0,n.setEdge(r.w,r.v,t,Fd.uniqueId(\"rev\"))}))},undo:function(n){Fd.forEach(n.edges(),(function(r){var t=n.edge(r);if(t.reversed){n.removeEdge(r);var e=t.forwardName;delete t.reversed,delete t.forwardName,n.setEdge(r.w,r.v,t,e)}}))}};var Ud=Nd,Gd=dd.Graph,Vd={addDummyNode:qd,simplify:function(n){var r=(new Gd).setGraph(n.graph());return Ud.forEach(n.nodes(),(function(t){r.setNode(t,n.node(t))})),Ud.forEach(n.edges(),(function(t){var e=r.edge(t.v,t.w)||{weight:0,minlen:1},o=n.edge(t);r.setEdge(t.v,t.w,{weight:e.weight+o.weight,minlen:Math.max(e.minlen,o.minlen)})})),r},asNonCompoundGraph:function(n){var r=new Gd({multigraph:n.isMultigraph()}).setGraph(n.graph());return Ud.forEach(n.nodes(),(function(t){n.children(t).length||r.setNode(t,n.node(t))})),Ud.forEach(n.edges(),(function(t){r.setEdge(t,n.edge(t))})),r},successorWeights:function(n){var r=Ud.map(n.nodes(),(function(r){var t={};return Ud.forEach(n.outEdges(r),(function(r){t[r.w]=(t[r.w]||0)+n.edge(r).weight})),t}));return Ud.zipObject(n.nodes(),r)},predecessorWeights:function(n){var r=Ud.map(n.nodes(),(function(r){var t={};return Ud.forEach(n.inEdges(r),(function(r){t[r.v]=(t[r.v]||0)+n.edge(r).weight})),t}));return Ud.zipObject(n.nodes(),r)},intersectRect:function(n,r){var t,e,o=n.x,i=n.y,u=r.x-o,a=r.y-i,f=n.width/2,c=n.height/2;if(!u&&!a)throw new Error(\"Not possible to find intersection inside of the rectangle\");Math.abs(a)*f>Math.abs(u)*c?(a<0&&(c=-c),t=c*u/a,e=c):(u<0&&(f=-f),t=f,e=f*a/u);return{x:o+t,y:i+e}},buildLayerMatrix:function(n){var r=Ud.map(Ud.range($d(n)+1),(function(){return[]}));return Ud.forEach(n.nodes(),(function(t){var e=n.node(t),o=e.rank;Ud.isUndefined(o)||(r[o][e.order]=t)})),r},normalizeRanks:function(n){var r=Ud.min(Ud.map(n.nodes(),(function(r){return n.node(r).rank})));Ud.forEach(n.nodes(),(function(t){var e=n.node(t);Ud.has(e,\"rank\")&&(e.rank-=r)}))},removeEmptyRanks:function(n){var r=Ud.min(Ud.map(n.nodes(),(function(r){return n.node(r).rank}))),t=[];Ud.forEach(n.nodes(),(function(e){var o=n.node(e).rank-r;t[o]||(t[o]=[]),t[o].push(e)}));var e=0,o=n.graph().nodeRankFactor;Ud.forEach(t,(function(r,t){Ud.isUndefined(r)&&t%o!=0?--e:e&&Ud.forEach(r,(function(r){n.node(r).rank+=e}))}))},addBorderNode:function(n,r,t,e){var o={width:0,height:0};arguments.length>=4&&(o.rank=t,o.order=e);return qd(n,\"border\",o,r)},maxRank:$d,partition:function(n,r){var t={lhs:[],rhs:[]};return Ud.forEach(n,(function(n){r(n)?t.lhs.push(n):t.rhs.push(n)})),t},time:function(n,r){var t=Ud.now();try{return r()}finally{console.log(n+\" time: \"+(Ud.now()-t)+\"ms\")}},notime:function(n,r){return r()}};function qd(n,r,t,e){var o;do{o=Ud.uniqueId(e)}while(n.hasNode(o));return t.dummy=r,n.setNode(o,t),o}function $d(n){return Ud.max(Ud.map(n.nodes(),(function(r){var t=n.node(r).rank;if(!Ud.isUndefined(t))return t})))}var Yd=Nd,Wd=Vd,Jd={run:function(n){n.graph().dummyChains=[],Yd.forEach(n.edges(),(function(r){!function(n,r){var t,e,o,i=r.v,u=n.node(i).rank,a=r.w,f=n.node(a).rank,c=r.name,s=n.edge(r),d=s.labelRank;if(f===u+1)return;for(n.removeEdge(r),o=0,++u;u<f;++o,++u)s.points=[],e={width:0,height:0,edgeLabel:s,edgeObj:r,rank:u},t=Wd.addDummyNode(n,\"edge\",e,\"_d\"),u===d&&(e.width=s.width,e.height=s.height,e.dummy=\"edge-label\",e.labelpos=s.labelpos),n.setEdge(i,t,{weight:s.weight},c),0===o&&n.graph().dummyChains.push(t),i=t;n.setEdge(i,a,{weight:s.weight},c)}(n,r)}))},undo:function(n){Yd.forEach(n.graph().dummyChains,(function(r){var t,e=n.node(r),o=e.edgeLabel;for(n.setEdge(e.edgeObj,o);e.dummy;)t=n.successors(r)[0],n.removeNode(r),o.points.push({x:e.x,y:e.y}),\"edge-label\"===e.dummy&&(o.x=e.x,o.y=e.y,o.width=e.width,o.height=e.height),r=t,e=n.node(r)}))}};var Kd=Nd,Qd={longestPath:function(n){var r={};Kd.forEach(n.sources(),(function t(e){var o=n.node(e);if(Kd.has(r,e))return o.rank;r[e]=!0;var i=Kd.min(Kd.map(n.outEdges(e),(function(r){return t(r.w)-n.edge(r).minlen})));return i!==Number.POSITIVE_INFINITY&&null!=i||(i=0),o.rank=i}))},slack:function(n,r){return n.node(r.w).rank-n.node(r.v).rank-n.edge(r).minlen}};var Hd=Nd,Xd=dd.Graph,Zd=Qd.slack,nh=function(n){var r,t,e=new Xd({directed:!1}),o=n.nodes()[0],i=n.nodeCount();e.setNode(o,{});for(;rh(e,n)<i;)r=th(e,n),t=e.hasNode(r.v)?Zd(n,r):-Zd(n,r),eh(e,n,t);return e};function rh(n,r){return Hd.forEach(n.nodes(),(function t(e){Hd.forEach(r.nodeEdges(e),(function(o){var i=o.v,u=e===i?o.w:i;n.hasNode(u)||Zd(r,o)||(n.setNode(u,{}),n.setEdge(e,u,{}),t(u))}))})),n.nodeCount()}function th(n,r){return Hd.minBy(r.edges(),(function(t){if(n.hasNode(t.v)!==n.hasNode(t.w))return Zd(r,t)}))}function eh(n,r,t){Hd.forEach(n.nodes(),(function(n){r.node(n).rank+=t}))}var oh=Nd,ih=nh,uh=Qd.slack,ah=Qd.longestPath,fh=dd.alg.preorder,ch=dd.alg.postorder,sh=Vd.simplify,dh=hh;function hh(n){n=sh(n),ah(n);var r,t=ih(n);for(ph(t),vh(t,n);r=yh(t);)mh(t,n,r,bh(t,n,r))}function vh(n,r){var t=ch(n,n.nodes());t=t.slice(0,t.length-1),oh.forEach(t,(function(t){!function(n,r,t){var e=n.node(t),o=e.parent;n.edge(t,o).cutvalue=lh(n,r,t)}(n,r,t)}))}function lh(n,r,t){var e=n.node(t).parent,o=!0,i=r.edge(t,e),u=0;return i||(o=!1,i=r.edge(e,t)),u=i.weight,oh.forEach(r.nodeEdges(t),(function(i){var a,f,c=i.v===t,s=c?i.w:i.v;if(s!==e){var d=c===o,h=r.edge(i).weight;if(u+=d?h:-h,a=t,f=s,n.hasEdge(a,f)){var v=n.edge(t,s).cutvalue;u+=d?-v:v}}})),u}function ph(n,r){arguments.length<2&&(r=n.nodes()[0]),gh(n,{},1,r)}function gh(n,r,t,e,o){var i=t,u=n.node(e);return r[e]=!0,oh.forEach(n.neighbors(e),(function(o){oh.has(r,o)||(t=gh(n,r,t,o,e))})),u.low=i,u.lim=t++,o?u.parent=o:delete u.parent,t}function yh(n){return oh.find(n.edges(),(function(r){return n.edge(r).cutvalue<0}))}function bh(n,r,t){var e=t.v,o=t.w;r.hasEdge(e,o)||(e=t.w,o=t.v);var i=n.node(e),u=n.node(o),a=i,f=!1;i.lim>u.lim&&(a=u,f=!0);var c=oh.filter(r.edges(),(function(r){return f===_h(n,n.node(r.v),a)&&f!==_h(n,n.node(r.w),a)}));return oh.minBy(c,(function(n){return uh(r,n)}))}function mh(n,r,t,e){var o=t.v,i=t.w;n.removeEdge(o,i),n.setEdge(e.v,e.w,{}),ph(n),vh(n,r),function(n,r){var t=oh.find(n.nodes(),(function(n){return!r.node(n).parent})),e=fh(n,t);e=e.slice(1),oh.forEach(e,(function(t){var e=n.node(t).parent,o=r.edge(t,e),i=!1;o||(o=r.edge(e,t),i=!0),r.node(t).rank=r.node(e).rank+(i?o.minlen:-o.minlen)}))}(n,r)}function _h(n,r,t){return t.low<=r.lim&&r.lim<=t.lim}hh.initLowLimValues=ph,hh.initCutValues=vh,hh.calcCutValue=lh,hh.leaveEdge=yh,hh.enterEdge=bh,hh.exchangeEdges=mh;var wh=Qd.longestPath,Eh=nh,jh=dh,kh=function(n){switch(n.graph().ranker){case\"network-simplex\":default:Nh(n);break;case\"tight-tree\":!function(n){wh(n),Eh(n)}(n);break;case\"longest-path\":xh(n)}};var xh=wh;function Nh(n){jh(n)}var Oh=Nd,Ih=function(n){var r=function(n){var r={},t=0;function e(o){var i=t;Oh.forEach(n.children(o),e),r[o]={low:i,lim:t++}}return Oh.forEach(n.children(),e),r}(n);Oh.forEach(n.graph().dummyChains,(function(t){for(var e=n.node(t),o=e.edgeObj,i=function(n,r,t,e){var o,i,u=[],a=[],f=Math.min(r[t].low,r[e].low),c=Math.max(r[t].lim,r[e].lim);o=t;do{o=n.parent(o),u.push(o)}while(o&&(r[o].low>f||c>r[o].lim));i=o,o=e;for(;(o=n.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(n,r,o.v,o.w),u=i.path,a=i.lca,f=0,c=u[f],s=!0;t!==o.w;){if(e=n.node(t),s){for(;(c=u[f])!==a&&n.node(c).maxRank<e.rank;)f++;c===a&&(s=!1)}if(!s){for(;f<u.length-1&&n.node(c=u[f+1]).minRank<=e.rank;)f++;c=u[f]}n.setParent(t,c),t=n.successors(t)[0]}}))};var Ch=Nd,Ah=Vd,Mh={run:function(n){var r=Ah.addDummyNode(n,\"root\",{},\"_root\"),t=function(n){var r={};function t(e,o){var i=n.children(e);i&&i.length&&Ch.forEach(i,(function(n){t(n,o+1)})),r[e]=o}return Ch.forEach(n.children(),(function(n){t(n,1)})),r}(n),e=Ch.max(Ch.values(t))-1,o=2*e+1;n.graph().nestingRoot=r,Ch.forEach(n.edges(),(function(r){n.edge(r).minlen*=o}));var i=function(n){return Ch.reduce(n.edges(),(function(r,t){return r+n.edge(t).weight}),0)}(n)+1;Ch.forEach(n.children(),(function(u){Lh(n,r,o,i,e,t,u)})),n.graph().nodeRankFactor=o},cleanup:function(n){var r=n.graph();n.removeNode(r.nestingRoot),delete r.nestingRoot,Ch.forEach(n.edges(),(function(r){n.edge(r).nestingEdge&&n.removeEdge(r)}))}};function Lh(n,r,t,e,o,i,u){var a=n.children(u);if(a.length){var f=Ah.addBorderNode(n,\"_bt\"),c=Ah.addBorderNode(n,\"_bb\"),s=n.node(u);n.setParent(f,u),s.borderTop=f,n.setParent(c,u),s.borderBottom=c,Ch.forEach(a,(function(a){Lh(n,r,t,e,o,i,a);var s=n.node(a),d=s.borderTop?s.borderTop:a,h=s.borderBottom?s.borderBottom:a,v=s.borderTop?e:2*e,l=d!==h?1:o-i[u]+1;n.setEdge(f,d,{weight:v,minlen:l,nestingEdge:!0}),n.setEdge(h,c,{weight:v,minlen:l,nestingEdge:!0})})),n.parent(u)||n.setEdge(r,f,{weight:0,minlen:o+i[u]})}else u!==r&&n.setEdge(r,u,{weight:0,minlen:t})}var Ph=Nd,Sh=Vd,Th=function(n){Ph.forEach(n.children(),(function r(t){var e=n.children(t),o=n.node(t);if(e.length&&Ph.forEach(e,r),Ph.has(o,\"minRank\")){o.borderLeft=[],o.borderRight=[];for(var i=o.minRank,u=o.maxRank+1;i<u;++i)Rh(n,\"borderLeft\",\"_bl\",t,o,i),Rh(n,\"borderRight\",\"_br\",t,o,i)}}))};function Rh(n,r,t,e,o,i){var u={width:0,height:0,rank:i,borderType:r},a=o[r][i-1],f=Sh.addDummyNode(n,\"border\",u,t);o[r][i]=f,n.setParent(f,e),a&&n.setEdge(a,f,{weight:1})}var zh=Nd,Fh={adjust:function(n){var r=n.graph().rankdir.toLowerCase();\"lr\"!==r&&\"rl\"!==r||Dh(n)},undo:function(n){var r=n.graph().rankdir.toLowerCase();\"bt\"!==r&&\"rl\"!==r||function(n){zh.forEach(n.nodes(),(function(r){Uh(n.node(r))})),zh.forEach(n.edges(),(function(r){var t=n.edge(r);zh.forEach(t.points,Uh),zh.has(t,\"y\")&&Uh(t)}))}(n);\"lr\"!==r&&\"rl\"!==r||(!function(n){zh.forEach(n.nodes(),(function(r){Gh(n.node(r))})),zh.forEach(n.edges(),(function(r){var t=n.edge(r);zh.forEach(t.points,Gh),zh.has(t,\"x\")&&Gh(t)}))}(n),Dh(n))}};function Dh(n){zh.forEach(n.nodes(),(function(r){Bh(n.node(r))})),zh.forEach(n.edges(),(function(r){Bh(n.edge(r))}))}function Bh(n){var r=n.width;n.width=n.height,n.height=r}function Uh(n){n.y=-n.y}function Gh(n){var r=n.x;n.x=n.y,n.y=r}var Vh=Nd,qh=function(n){var r={},t=Vh.filter(n.nodes(),(function(r){return!n.children(r).length})),e=Vh.max(Vh.map(t,(function(r){return n.node(r).rank}))),o=Vh.map(Vh.range(e+1),(function(){return[]}));function i(t){if(!Vh.has(r,t)){r[t]=!0;var e=n.node(t);o[e.rank].push(t),Vh.forEach(n.successors(t),i)}}var u=Vh.sortBy(t,(function(r){return n.node(r).rank}));return Vh.forEach(u,i),o};var $h=Nd,Yh=function(n,r){for(var t=0,e=1;e<r.length;++e)t+=Wh(n,r[e-1],r[e]);return t};function Wh(n,r,t){for(var e=$h.zipObject(t,$h.map(t,(function(n,r){return r}))),o=$h.flatten($h.map(r,(function(r){return $h.sortBy($h.map(n.outEdges(r),(function(r){return{pos:e[r.w],weight:n.edge(r).weight}})),\"pos\")})),!0),i=1;i<t.length;)i<<=1;var u=2*i-1;i-=1;var a=$h.map(new Array(u),(function(){return 0})),f=0;return $h.forEach(o.forEach((function(n){var r=n.pos+i;a[r]+=n.weight;for(var t=0;r>0;)r%2&&(t+=a[r+1]),a[r=r-1>>1]+=n.weight;f+=n.weight*t}))),f}var Jh=Nd;var Kh=Nd;var Qh=Nd,Hh=Vd;function Xh(n,r,t){for(var e;r.length&&(e=Qh.last(r)).i<=t;)r.pop(),n.push(e.vs),t++;return t}var Zh=Nd,nv=function(n,r){return Jh.map(r,(function(r){var t=n.inEdges(r);if(t.length){var e=Jh.reduce(t,(function(r,t){var e=n.edge(t),o=n.node(t.v);return{sum:r.sum+e.weight*o.order,weight:r.weight+e.weight}}),{sum:0,weight:0});return{v:r,barycenter:e.sum/e.weight,weight:e.weight}}return{v:r}}))},rv=function(n,r){var t={};return Kh.forEach(n,(function(n,r){var e=t[n.v]={indegree:0,in:[],out:[],vs:[n.v],i:r};Kh.isUndefined(n.barycenter)||(e.barycenter=n.barycenter,e.weight=n.weight)})),Kh.forEach(r.edges(),(function(n){var r=t[n.v],e=t[n.w];Kh.isUndefined(r)||Kh.isUndefined(e)||(e.indegree++,r.out.push(t[n.w]))})),function(n){var r=[];function t(n){return function(r){r.merged||(Kh.isUndefined(r.barycenter)||Kh.isUndefined(n.barycenter)||r.barycenter>=n.barycenter)&&function(n,r){var t=0,e=0;n.weight&&(t+=n.barycenter*n.weight,e+=n.weight);r.weight&&(t+=r.barycenter*r.weight,e+=r.weight);n.vs=r.vs.concat(n.vs),n.barycenter=t/e,n.weight=e,n.i=Math.min(r.i,n.i),r.merged=!0}(n,r)}}function e(r){return function(t){t.in.push(r),0==--t.indegree&&n.push(t)}}for(;n.length;){var o=n.pop();r.push(o),Kh.forEach(o.in.reverse(),t(o)),Kh.forEach(o.out,e(o))}return Kh.map(Kh.filter(r,(function(n){return!n.merged})),(function(n){return Kh.pick(n,[\"vs\",\"i\",\"barycenter\",\"weight\"])}))}(Kh.filter(t,(function(n){return!n.indegree})))},tv=function(n,r){var t=Hh.partition(n,(function(n){return Qh.has(n,\"barycenter\")})),e=t.lhs,o=Qh.sortBy(t.rhs,(function(n){return-n.i})),i=[],u=0,a=0,f=0;e.sort((c=!!r,function(n,r){return n.barycenter<r.barycenter?-1:n.barycenter>r.barycenter?1:c?r.i-n.i:n.i-r.i})),f=Xh(i,o,f),Qh.forEach(e,(function(n){f+=n.vs.length,i.push(n.vs),u+=n.barycenter*n.weight,a+=n.weight,f=Xh(i,o,f)}));var c;var s={vs:Qh.flatten(i,!0)};a&&(s.barycenter=u/a,s.weight=a);return s},ev=function n(r,t,e,o){var i=r.children(t),u=r.node(t),a=u?u.borderLeft:void 0,f=u?u.borderRight:void 0,c={};a&&(i=Zh.filter(i,(function(n){return n!==a&&n!==f})));var s=nv(r,i);Zh.forEach(s,(function(t){if(r.children(t.v).length){var i=n(r,t.v,e,o);c[t.v]=i,Zh.has(i,\"barycenter\")&&(u=t,a=i,Zh.isUndefined(u.barycenter)?(u.barycenter=a.barycenter,u.weight=a.weight):(u.barycenter=(u.barycenter*u.weight+a.barycenter*a.weight)/(u.weight+a.weight),u.weight+=a.weight))}var u,a}));var d=rv(s,e);!function(n,r){Zh.forEach(n,(function(n){n.vs=Zh.flatten(n.vs.map((function(n){return r[n]?r[n].vs:n})),!0)}))}(d,c);var h=tv(d,o);if(a&&(h.vs=Zh.flatten([a,h.vs,f],!0),r.predecessors(a).length)){var v=r.node(r.predecessors(a)[0]),l=r.node(r.predecessors(f)[0]);Zh.has(h,\"barycenter\")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+v.order+l.order)/(h.weight+2),h.weight+=2}return h};var ov=Nd,iv=dd.Graph,uv=function(n,r,t){var e=function(n){var r;for(;n.hasNode(r=ov.uniqueId(\"_root\")););return r}(n),o=new iv({compound:!0}).setGraph({root:e}).setDefaultNodeLabel((function(r){return n.node(r)}));return ov.forEach(n.nodes(),(function(i){var u=n.node(i),a=n.parent(i);(u.rank===r||u.minRank<=r&&r<=u.maxRank)&&(o.setNode(i),o.setParent(i,a||e),ov.forEach(n[t](i),(function(r){var t=r.v===i?r.w:r.v,e=o.edge(t,i),u=ov.isUndefined(e)?0:e.weight;o.setEdge(t,i,{weight:n.edge(r).weight+u})})),ov.has(u,\"minRank\")&&o.setNode(i,{borderLeft:u.borderLeft[r],borderRight:u.borderRight[r]}))})),o};var av=Nd;var fv=Nd,cv=qh,sv=Yh,dv=ev,hv=uv,vv=function(n,r,t){var e,o={};av.forEach(t,(function(t){for(var i,u,a=n.parent(t);a;){if((i=n.parent(a))?(u=o[i],o[i]=a):(u=e,e=a),u&&u!==a)return void r.setEdge(u,a);a=i}}))},lv=dd.Graph,pv=Vd,gv=function(n){var r=pv.maxRank(n),t=yv(n,fv.range(1,r+1),\"inEdges\"),e=yv(n,fv.range(r-1,-1,-1),\"outEdges\"),o=cv(n);mv(n,o);for(var i,u=Number.POSITIVE_INFINITY,a=0,f=0;f<4;++a,++f){bv(a%2?t:e,a%4>=2),o=pv.buildLayerMatrix(n);var c=sv(n,o);c<u&&(f=0,i=fv.cloneDeep(o),u=c)}mv(n,i)};function yv(n,r,t){return fv.map(r,(function(r){return hv(n,r,t)}))}function bv(n,r){var t=new lv;fv.forEach(n,(function(n){var e=n.graph().root,o=dv(n,e,t,r);fv.forEach(o.vs,(function(r,t){n.node(r).order=t})),vv(n,t,o.vs)}))}function mv(n,r){fv.forEach(r,(function(r){fv.forEach(r,(function(r,t){n.node(r).order=t}))}))}var _v=Nd,wv=dd.Graph,Ev=Vd,jv=function(n){var r,t=Ev.buildLayerMatrix(n),e=_v.merge(kv(n,t),xv(n,t)),o={};_v.forEach([\"u\",\"d\"],(function(i){r=\"u\"===i?t:_v.values(t).reverse(),_v.forEach([\"l\",\"r\"],(function(t){\"r\"===t&&(r=_v.map(r,(function(n){return _v.values(n).reverse()})));var u=(\"u\"===i?n.predecessors:n.successors).bind(n),a=Iv(n,r,e,u),f=Cv(n,r,a.root,a.align,\"r\"===t);\"r\"===t&&(f=_v.mapValues(f,(function(n){return-n}))),o[i+t]=f}))}));var i=Av(n,o);return Mv(o,i),Lv(o,n.graph().align)};function kv(n,r){var t={};return _v.reduce(r,(function(r,e){var o=0,i=0,u=r.length,a=_v.last(e);return _v.forEach(e,(function(r,f){var c=function(n,r){if(n.node(r).dummy)return _v.find(n.predecessors(r),(function(r){return n.node(r).dummy}))}(n,r),s=c?n.node(c).order:u;(c||r===a)&&(_v.forEach(e.slice(i,f+1),(function(r){_v.forEach(n.predecessors(r),(function(e){var i=n.node(e),u=i.order;!(u<o||s<u)||i.dummy&&n.node(r).dummy||Nv(t,e,r)}))})),i=f+1,o=s)})),e})),t}function xv(n,r){var t={};function e(r,e,o,i,u){var a;_v.forEach(_v.range(e,o),(function(e){a=r[e],n.node(a).dummy&&_v.forEach(n.predecessors(a),(function(r){var e=n.node(r);e.dummy&&(e.order<i||e.order>u)&&Nv(t,r,a)}))}))}return _v.reduce(r,(function(r,t){var o,i=-1,u=0;return _v.forEach(t,(function(a,f){if(\"border\"===n.node(a).dummy){var c=n.predecessors(a);c.length&&(o=n.node(c[0]).order,e(t,u,f,i,o),u=f,i=o)}e(t,u,t.length,o,r.length)})),t})),t}function Nv(n,r,t){if(r>t){var e=r;r=t,t=e}var o=n[r];o||(n[r]=o={}),o[t]=!0}function Ov(n,r,t){if(r>t){var e=r;r=t,t=e}return _v.has(n[r],t)}function Iv(n,r,t,e){var o={},i={},u={};return _v.forEach(r,(function(n){_v.forEach(n,(function(n,r){o[n]=n,i[n]=n,u[n]=r}))})),_v.forEach(r,(function(n){var r=-1;_v.forEach(n,(function(n){var a=e(n);if(a.length){a=_v.sortBy(a,(function(n){return u[n]}));for(var f=(a.length-1)/2,c=Math.floor(f),s=Math.ceil(f);c<=s;++c){var d=a[c];i[n]===n&&r<u[d]&&!Ov(t,n,d)&&(i[d]=n,i[n]=o[n]=o[d],r=u[d])}}}))})),{root:o,align:i}}function Cv(n,r,t,e,o){var i={},u=function(n,r,t,e){var o=new wv,i=n.graph(),u=function(n,r,t){return function(e,o,i){var u,a=e.node(o),f=e.node(i),c=0;if(c+=a.width/2,_v.has(a,\"labelpos\"))switch(a.labelpos.toLowerCase()){case\"l\":u=-a.width/2;break;case\"r\":u=a.width/2}if(u&&(c+=t?u:-u),u=0,c+=(a.dummy?r:n)/2,c+=(f.dummy?r:n)/2,c+=f.width/2,_v.has(f,\"labelpos\"))switch(f.labelpos.toLowerCase()){case\"l\":u=f.width/2;break;case\"r\":u=-f.width/2}return u&&(c+=t?u:-u),u=0,c}}(i.nodesep,i.edgesep,e);return _v.forEach(r,(function(r){var e;_v.forEach(r,(function(r){var i=t[r];if(o.setNode(i),e){var a=t[e],f=o.edge(a,i);o.setEdge(a,i,Math.max(u(n,r,e),f||0))}e=r}))})),o}(n,r,t,o),a=o?\"borderLeft\":\"borderRight\";function f(n,r){for(var t=u.nodes(),e=t.pop(),o={};e;)o[e]?n(e):(o[e]=!0,t.push(e),t=t.concat(r(e))),e=t.pop()}return f((function(n){i[n]=u.inEdges(n).reduce((function(n,r){return Math.max(n,i[r.v]+u.edge(r))}),0)}),u.predecessors.bind(u)),f((function(r){var t=u.outEdges(r).reduce((function(n,r){return Math.min(n,i[r.w]-u.edge(r))}),Number.POSITIVE_INFINITY),e=n.node(r);t!==Number.POSITIVE_INFINITY&&e.borderType!==a&&(i[r]=Math.max(i[r],t))}),u.successors.bind(u)),_v.forEach(e,(function(n){i[n]=i[t[n]]})),i}function Av(n,r){return _v.minBy(_v.values(r),(function(r){var t=Number.NEGATIVE_INFINITY,e=Number.POSITIVE_INFINITY;return _v.forIn(r,(function(r,o){var i=function(n,r){return n.node(r).width}(n,o)/2;t=Math.max(r+i,t),e=Math.min(r-i,e)})),t-e}))}function Mv(n,r){var t=_v.values(r),e=_v.min(t),o=_v.max(t);_v.forEach([\"u\",\"d\"],(function(t){_v.forEach([\"l\",\"r\"],(function(i){var u,a=t+i,f=n[a];if(f!==r){var c=_v.values(f);(u=\"l\"===i?e-_v.min(c):o-_v.max(c))&&(n[a]=_v.mapValues(f,(function(n){return n+u})))}}))}))}function Lv(n,r){return _v.mapValues(n.ul,(function(t,e){if(r)return n[r.toLowerCase()][e];var o=_v.sortBy(_v.map(n,e));return(o[1]+o[2])/2}))}var Pv=Nd,Sv=Vd,Tv=jv;var Rv=Nd,zv=Bd,Fv=Jd,Dv=kh,Bv=Vd.normalizeRanks,Uv=Ih,Gv=Vd.removeEmptyRanks,Vv=Mh,qv=Th,$v=Fh,Yv=gv,Wv=function(n){(function(n){var r=Sv.buildLayerMatrix(n),t=n.graph().ranksep,e=0;Pv.forEach(r,(function(r){var o=Pv.max(Pv.map(r,(function(r){return n.node(r).height})));Pv.forEach(r,(function(r){n.node(r).y=e+o/2})),e+=o+t}))})(n=Sv.asNonCompoundGraph(n)),Pv.forEach(Tv(n),(function(r,t){n.node(t).x=r}))},Jv=Vd,Kv=dd.Graph,Qv=function(n,r){var t=r&&r.debugTiming?Jv.time:Jv.notime;t(\"layout\",(function(){var r=t(\" buildLayoutGraph\",(function(){return function(n){var r=new Kv({multigraph:!0,compound:!0}),t=ul(n.graph());return r.setGraph(Rv.merge({},Xv,il(t,Hv),Rv.pick(t,Zv))),Rv.forEach(n.nodes(),(function(t){var e=ul(n.node(t));r.setNode(t,Rv.defaults(il(e,nl),rl)),r.setParent(t,n.parent(t))})),Rv.forEach(n.edges(),(function(t){var e=ul(n.edge(t));r.setEdge(t,Rv.merge({},el,il(e,tl),Rv.pick(e,ol)))})),r}(n)}));t(\" runLayout\",(function(){!function(n,r){r(\" makeSpaceForEdgeLabels\",(function(){!function(n){var r=n.graph();r.ranksep/=2,Rv.forEach(n.edges(),(function(t){var e=n.edge(t);e.minlen*=2,\"c\"!==e.labelpos.toLowerCase()&&(\"TB\"===r.rankdir||\"BT\"===r.rankdir?e.width+=e.labeloffset:e.height+=e.labeloffset)}))}(n)})),r(\" removeSelfEdges\",(function(){!function(n){Rv.forEach(n.edges(),(function(r){if(r.v===r.w){var t=n.node(r.v);t.selfEdges||(t.selfEdges=[]),t.selfEdges.push({e:r,label:n.edge(r)}),n.removeEdge(r)}}))}(n)})),r(\" acyclic\",(function(){zv.run(n)})),r(\" nestingGraph.run\",(function(){Vv.run(n)})),r(\" rank\",(function(){Dv(Jv.asNonCompoundGraph(n))})),r(\" injectEdgeLabelProxies\",(function(){!function(n){Rv.forEach(n.edges(),(function(r){var t=n.edge(r);if(t.width&&t.height){var e=n.node(r.v),o={rank:(n.node(r.w).rank-e.rank)/2+e.rank,e:r};Jv.addDummyNode(n,\"edge-proxy\",o,\"_ep\")}}))}(n)})),r(\" removeEmptyRanks\",(function(){Gv(n)})),r(\" nestingGraph.cleanup\",(function(){Vv.cleanup(n)})),r(\" normalizeRanks\",(function(){Bv(n)})),r(\" assignRankMinMax\",(function(){!function(n){var r=0;Rv.forEach(n.nodes(),(function(t){var e=n.node(t);e.borderTop&&(e.minRank=n.node(e.borderTop).rank,e.maxRank=n.node(e.borderBottom).rank,r=Rv.max(r,e.maxRank))})),n.graph().maxRank=r}(n)})),r(\" removeEdgeLabelProxies\",(function(){!function(n){Rv.forEach(n.nodes(),(function(r){var t=n.node(r);\"edge-proxy\"===t.dummy&&(n.edge(t.e).labelRank=t.rank,n.removeNode(r))}))}(n)})),r(\" normalize.run\",(function(){Fv.run(n)})),r(\" parentDummyChains\",(function(){Uv(n)})),r(\" addBorderSegments\",(function(){qv(n)})),r(\" order\",(function(){Yv(n)})),r(\" insertSelfEdges\",(function(){!function(n){var r=Jv.buildLayerMatrix(n);Rv.forEach(r,(function(r){var t=0;Rv.forEach(r,(function(r,e){var o=n.node(r);o.order=e+t,Rv.forEach(o.selfEdges,(function(r){Jv.addDummyNode(n,\"selfedge\",{width:r.label.width,height:r.label.height,rank:o.rank,order:e+ ++t,e:r.e,label:r.label},\"_se\")})),delete o.selfEdges}))}))}(n)})),r(\" adjustCoordinateSystem\",(function(){$v.adjust(n)})),r(\" position\",(function(){Wv(n)})),r(\" positionSelfEdges\",(function(){!function(n){Rv.forEach(n.nodes(),(function(r){var t=n.node(r);if(\"selfedge\"===t.dummy){var e=n.node(t.e.v),o=e.x+e.width/2,i=e.y,u=t.x-o,a=e.height/2;n.setEdge(t.e,t.label),n.removeNode(r),t.label.points=[{x:o+2*u/3,y:i-a},{x:o+5*u/6,y:i-a},{x:o+u,y:i},{x:o+5*u/6,y:i+a},{x:o+2*u/3,y:i+a}],t.label.x=t.x,t.label.y=t.y}}))}(n)})),r(\" removeBorderNodes\",(function(){!function(n){Rv.forEach(n.nodes(),(function(r){if(n.children(r).length){var t=n.node(r),e=n.node(t.borderTop),o=n.node(t.borderBottom),i=n.node(Rv.last(t.borderLeft)),u=n.node(Rv.last(t.borderRight));t.width=Math.abs(u.x-i.x),t.height=Math.abs(o.y-e.y),t.x=i.x+t.width/2,t.y=e.y+t.height/2}})),Rv.forEach(n.nodes(),(function(r){\"border\"===n.node(r).dummy&&n.removeNode(r)}))}(n)})),r(\" normalize.undo\",(function(){Fv.undo(n)})),r(\" fixupEdgeLabelCoords\",(function(){!function(n){Rv.forEach(n.edges(),(function(r){var t=n.edge(r);if(Rv.has(t,\"x\"))switch(\"l\"!==t.labelpos&&\"r\"!==t.labelpos||(t.width-=t.labeloffset),t.labelpos){case\"l\":t.x-=t.width/2+t.labeloffset;break;case\"r\":t.x+=t.width/2+t.labeloffset}}))}(n)})),r(\" undoCoordinateSystem\",(function(){$v.undo(n)})),r(\" translateGraph\",(function(){!function(n){var r=Number.POSITIVE_INFINITY,t=0,e=Number.POSITIVE_INFINITY,o=0,i=n.graph(),u=i.marginx||0,a=i.marginy||0;function f(n){var i=n.x,u=n.y,a=n.width,f=n.height;r=Math.min(r,i-a/2),t=Math.max(t,i+a/2),e=Math.min(e,u-f/2),o=Math.max(o,u+f/2)}Rv.forEach(n.nodes(),(function(r){f(n.node(r))})),Rv.forEach(n.edges(),(function(r){var t=n.edge(r);Rv.has(t,\"x\")&&f(t)})),r-=u,e-=a,Rv.forEach(n.nodes(),(function(t){var o=n.node(t);o.x-=r,o.y-=e})),Rv.forEach(n.edges(),(function(t){var o=n.edge(t);Rv.forEach(o.points,(function(n){n.x-=r,n.y-=e})),Rv.has(o,\"x\")&&(o.x-=r),Rv.has(o,\"y\")&&(o.y-=e)})),i.width=t-r+u,i.height=o-e+a}(n)})),r(\" assignNodeIntersects\",(function(){!function(n){Rv.forEach(n.edges(),(function(r){var t,e,o=n.edge(r),i=n.node(r.v),u=n.node(r.w);o.points?(t=o.points[0],e=o.points[o.points.length-1]):(o.points=[],t=u,e=i),o.points.unshift(Jv.intersectRect(i,t)),o.points.push(Jv.intersectRect(u,e))}))}(n)})),r(\" reversePoints\",(function(){!function(n){Rv.forEach(n.edges(),(function(r){var t=n.edge(r);t.reversed&&t.points.reverse()}))}(n)})),r(\" acyclic.undo\",(function(){zv.undo(n)}))}(r,t)})),t(\" updateInputGraph\",(function(){!function(n,r){Rv.forEach(n.nodes(),(function(t){var e=n.node(t),o=r.node(t);e&&(e.x=o.x,e.y=o.y,r.children(t).length&&(e.width=o.width,e.height=o.height))})),Rv.forEach(n.edges(),(function(t){var e=n.edge(t),o=r.edge(t);e.points=o.points,Rv.has(o,\"x\")&&(e.x=o.x,e.y=o.y)})),n.graph().width=r.graph().width,n.graph().height=r.graph().height}(n,r)}))}))};var Hv=[\"nodesep\",\"edgesep\",\"ranksep\",\"marginx\",\"marginy\"],Xv={ranksep:50,edgesep:20,nodesep:50,rankdir:\"tb\"},Zv=[\"acyclicer\",\"ranker\",\"rankdir\",\"align\"],nl=[\"width\",\"height\"],rl={width:0,height:0},tl=[\"minlen\",\"weight\",\"width\",\"height\",\"labeloffset\"],el={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:\"r\"},ol=[\"labelpos\"];function il(n,r){return Rv.mapValues(Rv.pick(n,r),Number)}function ul(n){var r={};return Rv.forEach(n,(function(n,t){r[t.toLowerCase()]=n})),r}var al=Nd,fl=Vd,cl=dd.Graph;var sl=tr({graphlib:dd,layout:Qv,debug:{debugOrdering:function(n){var r=fl.buildLayerMatrix(n),t=new cl({compound:!0,multigraph:!0}).setGraph({});return al.forEach(n.nodes(),(function(r){t.setNode(r,{label:r}),t.setParent(r,\"layer\"+n.node(r).rank)})),al.forEach(n.edges(),(function(n){t.setEdge(n.v,n.w,{},n.name)})),al.forEach(r,(function(n,r){var e=\"layer\"+r;t.setNode(e,{rank:\"same\"}),al.reduce(n,(function(n,r){return t.setEdge(n,r,{style:\"invis\"}),r}))})),t}},util:{time:Vd.time,notime:Vd.notime},version:\"0.8.5\"});function dl(n,r,t){void 0===t&&(t={rankdir:\"TB\"});var e=t.rankdir,o=new sl.graphlib.Graph;return o.setDefaultEdgeLabel((function(){return{}})),o.setGraph({rankdir:e}),n.forEach((function(n){var r,t;if(!n.id)throw new Error('Node \"id\" does not exist');var e=(null===(r=n.data)||void 0===r?void 0:r.width)||200,i=(null===(t=n.data)||void 0===t?void 0:t.height)||56;o.setNode(n.id,{width:e,height:i})})),r.forEach((function(n){o.setEdge(n.source,n.target)})),sl.layout(o),n.forEach((function(n){var r=o.node(n.id),t=\"bottom\",i=\"top\";switch(e){case\"TB\":t=\"bottom\",i=\"top\";break;case\"BT\":t=\"top\",i=\"bottom\";break;case\"LR\":case\"RL\":t=\"right\",i=\"left\"}n.targetPosition=i,n.sourcePosition=t,n.position={x:r.x-r.width/2,y:r.y-r.height/2}})),{nodes:n,edges:r}}export{dl as dagreLayout};\n//# sourceMappingURL=index.esm.js.map\n","import {\n useState,\n useCallback,\n type Dispatch,\n type SetStateAction,\n} from 'react';\nimport { applyEdgeChanges } from '../utils/changes';\nimport { Edge, OnEdgesChange } from '../types';\n\nexport function useEdgesState<EdgeType extends Edge = Edge>(\n initialEdges: EdgeType[],\n): [EdgeType[], Dispatch<SetStateAction<EdgeType[]>>, OnEdgesChange<EdgeType>] {\n const [edges, setEdges] = useState(initialEdges);\n const onEdgesChange: OnEdgesChange<EdgeType> = useCallback(\n (changes) => setEdges((eds) => applyEdgeChanges(changes, eds)),\n [],\n );\n\n return [edges, setEdges, onEdgesChange];\n}\n","import {\n useState,\n useCallback,\n type Dispatch,\n type SetStateAction,\n} from 'react';\nimport { applyNodeChanges } from '../utils/changes';\nimport { Node, OnNodesChange } from '../types';\n\nexport function useNodesState<NodeType extends Node>(\n initialNodes: NodeType[],\n): [NodeType[], Dispatch<SetStateAction<NodeType[]>>, OnNodesChange<NodeType>] {\n const [nodes, setNodes] = useState(initialNodes);\n const onNodesChange: OnNodesChange<NodeType> = useCallback(\n (changes) => setNodes((nds) => applyNodeChanges(changes, nds)),\n [],\n );\n\n return [nodes, setNodes, onNodesChange];\n}\n"],"names":["jsxRuntimeModule","exports","f","require$$0","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","reactJsxRuntime_production_min","jsx","jsxs","hasOwn","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","join","module","default","window","shimModule","is","useState","useEffect","useLayoutEffect","useDebugValue","r","getSnapshot","value","u","document","createElement","inst","useSyncExternalStoreShim_production_min","useSyncExternalStore","withSelectorModule","require$$1","t","useRef","v","useMemo","w","withSelector_production_min","useSyncExternalStoreWithSelector","hasValue","createStoreImpl","createState","state","listeners","Set","setState","partial","replace","nextState","previousState","assign","forEach","listener","getState","api","getInitialState","initialState","subscribe","add","delete","destroy","console","warn","clear","ReactExports","useSyncExternalStoreExports","identity","useStoreWithEqualityFn","selector","equalityFn","slice","getServerState","createWithEqualityFnImpl","defaultEqualityFn","createStore","useBoundStoreWithEqualityFn","StoreContext","createContext","Provider","errorMessages","error001","error002","error003","nodeType","concat","error004","error005","error006","error007","id","error009","error008","handleType","_a","sourceHandle","targetHandle","error010","error011","edgeType","error012","infiniteExtent","Number","NEGATIVE_INFINITY","POSITIVE_INFINITY","elementSelectionKeys","zustandErrorMessage","useStore","store","useContext","Error","useZustandStore","useStoreApi","updateAbsolutePositions","nodeLookup","options","nodeOrigin","elevateNodesOnSelect","defaults","selectedNodeZ","nodeLookup_1","__values","nodeLookup_1_1","next","node","__read","parentId","has","parentNode","get","_d","calculateXYZPosition","__assign","position","z","isNumeric","zIndex","selected","_b","origin","x","y","currPosition","internals","positionAbsolute","positionChanged","result","parent","parentPosition","getNodePositionWithOrigin","_c","_f","getNodeDimensions","width","height","offsetX","offsetY","updateConnectionLookup","connectionLookup","edgeLookup","edges","edges_1","edges_1_1","edge","source","target","sourceKey","targetKey","prevSource","Map","prevTarget","connection","edgeId","set","adoptUserNodes","nodes","parentLookup","checkEquality","tmpLookup","userNode","internalNode","measured","handleBounds","childNodes","size","handleExpandParent","children","changes","parentExpansions","children_1","children_1_1","child","parent_1","parentRect","expandedRect","nodeToRect","getBoundsOfRects","rect","dimensions","xChange","Math","round","abs","yChange","childNode","some","setAttributes","max","clamp","val","min","clampPosition","extent","initialWidth","_h","_g","_e","initialHeight","isNaN","isFinite","snapPosition","snapGrid","pointToRendererPoint","snapToGrid","tx","ty","tScale","getBoundsOfBoxes","box1","box2","x2","y2","rectToBox","boxToRect","nodeToBox","rect1","rect2","fixedForwardRef","render","forwardRef","getOverlappingArea","rectA","rectB","xOverlap","yOverlap","ceil","getViewportForBounds","bounds","minZoom","maxZoom","padding","xZoom","yZoom","zoom","clampedZoom","isCoordinateExtent","undefined","calcAutoPanVelocity","calcAutoPan","pos","getPositionWithOrigin","rendererPointToPoint","isMacOs","navigator","userAgent","indexOf","isNode","element","isNodeBase","isRectObject","obj","getPointerPosition","event","transform","getEventPosition","pointerPos","xSnapped","ySnapped","getDimensions","offsetWidth","offsetHeight","getHostForElement","getRootNode","inputTags","isInputDOMNode","composedPath","includes","nodeName","hasAttribute","closest","isMouseEvent","isMouse","evtX","clientX","touches","evtY","clientY","left","top","getHandleBounds","nodeElement","handles","querySelectorAll","handlesArray","from","nodeBounds","getBoundingClientRect","nodeOffset","map","handle","getAttribute","defaultDoc","useKeyPress","keyCode","actInsideInputWithModifier","keyPressed","setKeyPressed","modifierPressed","pressedKeys","keys","filter","kc","split","keysFlat","reduce","res","item","__spreadArray","keyCodes","keysToWatch","downHandler_1","ctrlKey","metaKey","shiftKey","keyOrCode","useKeyOrCode","code","isMatchingKey","preventDefault","upHandler_1","resetHandler_1","addEventListener","removeEventListener","isUp","every","eventCode","shallow$1","objA","objB","keysA","keyA","ConnectionMode","PanOnScrollMode","SelectionMode","ConnectionLineType","MarkerType","Position","containerStyle","noop","dispatch","_","test","Dispatch","this","name","callback","constructor","on","typename","types","T","trim","copy","that","args","xhtml","namespaces","svg","xlink","xml","xmlns","namespace","prefix","space","local","creatorInherit","ownerDocument","uri","namespaceURI","documentElement","createElementNS","creatorFixed","fullname","creator","none","selector$e","querySelector","empty","selectorAll","arrayAll","select","array","matcher","matches","childMatcher","find","childFirst","firstElementChild","sparse","update","EnterNode","datum","_next","_parent","__data__","bindIndex","group","enter","exit","data","groupLength","dataLength","bindKey","keyValue","nodeByKeyValue","keyValues","arraylike","ascending","NaN","attrRemove","removeAttribute","attrRemoveNS","removeAttributeNS","attrConstant","setAttribute","attrConstantNS","setAttributeNS","attrFunction","attrFunctionNS","defaultView","styleRemove","style","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","getPropertyValue","getComputedStyle","propertyRemove","propertyConstant","propertyFunction","classArray","string","classList","ClassList","_node","_names","classedAdd","names","list","classedRemove","remove","classedTrue","classedFalse","classedFunction","textRemove","textContent","textConstant","textFunction","htmlRemove","innerHTML","htmlConstant","htmlFunction","raise","nextSibling","appendChild","lower","previousSibling","insertBefore","firstChild","constantNull","removeChild","selection_cloneShallow","clone","cloneNode","selection_cloneDeep","onRemove","__on","o","j","onAdd","contextListener","dispatchEvent","params","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchConstant","dispatchFunction","splice","contains","root","Selection","groups","parents","_groups","_parents","selection","pointer","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","point","matrixTransform","getScreenCTM","inverse","clientLeft","clientTop","pageX","pageY","subgroups","subnode","subgroup","selectAll","selectChild","match","childFind","selectChildren","childrenFilter","bind","constant","enterGroup","updateGroup","previous","i0","i1","_enter","_exit","onenter","onupdate","onexit","append","merge","order","context","groups0","groups1","m0","m1","merges","group0","group1","compareDocumentPosition","sort","compare","compareNode","sortgroups","sortgroup","each","attr","getAttributeNS","property","classed","text","html","create","insert","before","deep","typenames","parseTypenames","iterator","nonpassive","passive","nonpassivecapture","capture","nopropagation","stopImmediatePropagation","noevent$1","dragDisable","view","noevent","__noselect","MozUserSelect","yesdrag","noclick","setTimeout","constant$2","DragEvent","subject","identifier","active","dx","dy","defineProperties","enumerable","configurable","defaultFilter","button","defaultContainer","defaultSubject","defaultTouchable","maxTouchPoints","define","factory","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","color","format","toLowerCase","exec","parseInt","rgbn","Rgb","rgba","hsla","opacity","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","s","Hsl","hslConvert","clamph","clampt","hsl2rgb","m2","channels","displayable","formatHex8","formatHsl","pow","constant$1","gamma","nogamma","exponential","linear","interpolateRgb","rgbGamma","start","end","colorRgb","interpolateNumber","reA","reB","interpolateString","am","bm","bs","bi","lastIndex","index","number","one","zero","svgNode","degrees","PI","translateX","translateY","rotate","skewX","scaleX","scaleY","decompose","sqrt","atan2","atan","interpolateTransform","parse","pxComma","pxParen","degParen","pop","xa","ya","xb","yb","translate","scale","interpolateTransformCss","DOMMatrix","WebKitCSSMatrix","isIdentity","interpolateTransformSvg","baseVal","consolidate","matrix","cosh","exp","taskHead","taskTail","interpolateZoom","zoomRho","rho","rho2","rho4","p0","p1","S","ux0","uy0","w0","ux1","uy1","w1","d2","log","d1","b0","b1","r0","r1","coshr0","tanh","sinh","duration","SQRT2","_1","_2","frame","timeout","interval","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","now","Date","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","timer","delay","time","restart","wake","timerFlush","t0","t2","t1","Infinity","sleep","nap","poke","clearTimeout","clearInterval","setInterval","elapsed","stop","TypeError","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","timing","schedules","__transition","self","tween","tick","ease","init","interrupt","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","interpolate","value1","string00","interpolate0","string1","string0","string10","attrTweenNS","attrInterpolateNS","_value","attrTween","attrInterpolate","delayFunction","delayConstant","durationFunction","durationConstant","Transition","_name","newId","selection_prototype","inherit","id0","id1","on0","on1","sit","onFunction","styleTween","styleNull","listener0","styleMaybeRemove","styleInterpolate","textTween","textInterpolate","removeFunction","easeConstant","easeVarying","Promise","resolve","reject","cancel","defaultTiming","ZoomEvent","Transform","applyX","applyY","invert","location","invertX","invertY","rescaleX","domain","range","rescaleY","__zoom","defaultExtent","SVGElement","viewBox","clientWidth","clientHeight","defaultTransform","defaultWheelDelta","deltaY","deltaMode","defaultConstrain","translateExtent","dx0","dx1","dy0","dy1","viewChanged","prevViewport","eventViewport","transformToViewport","viewportToTransform","zoomIdentity","isWrappedWithClass","className","isRightClickPan","panOnDrag","usedButton","getD3Transition","wheelDelta","factor","XYPanZoom","domNode","viewport","onPanZoom","onPanZoomStart","onPanZoomEnd","onTransformChange","onDraggingChange","zoomPanValues","isZoomingOrPanning","usedRightMouseButton","mouseButton","timerId","panScrollTimeout","isPanScrolling","bbox","d3ZoomInstance","touchstarting","touchfirst","touchending","constrain","touchable","scaleExtent","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","centroid","gesture","clean","__zooming","Gesture","taps","wheel","mouse","moved","x0","y0","dragEnable","changedTouches","k1","started","touch0","touch1","l0","l1","dp","dl","hypot","collection","scaleBy","scaleTo","translateBy","translateTo","emit","clickDistance","d3Selection","setViewportConstrained","d3ZoomHandler","d3DblClickZoomHandler","setTransform","nextTransform","contrainedTransform","noWheelClassName","noPanClassName","onPaneContextMenu","userSelectionActive","panOnScroll","panOnScrollMode","panOnScrollSpeed","preventScrolling","zoomOnPinch","zoomOnScroll","zoomOnDoubleClick","zoomActivationKeyPressed","lib","wheelHandler","d3Zoom","currentZoom","pinchDelta","deltaNormalize","deltaX","Vertical","Horizontal","internal","nextViewport","createPanOnScrollHandler","createZoomOnScrollHandler","startHandler","createPanZoomStartHandler","panZoomHandler","sync","createPanZoomHandler","panZoomEndHandler","viewport_1","createPanZoomEndHandler","zoomScroll","pinchZoom","buttonAllowed","createFilter","setViewport","getViewport","zoomTransform","setScaleExtent","setTranslateExtent","syncViewport","currentTransform","ZoomPane","Free","defaultViewport","zoomActivationKeyCode","_j","onViewportChange","isControlledViewport","zoomPane","_k","shallow","panZoom","updateDimensions","onError","resizeObserver_1","ResizeObserver","observe","unobserve","useResizeHandler","paneDragging","vp","onViewportChangeStart","onMoveStart","onMove","onViewportChangeEnd","onMoveEnd","_jsx","deleteKeyOptions","applyChange","change","dragging","resizing","applyChanges","elements","updatedElements","changesMap","changes_1","changes_1_1","elementChanges","elements_1","elements_1_1","changes_3","updatedElement","changes_2","changes_2_1","applyEdgeChanges","applyNodeChanges","createSelectionChange","getSelectionChanges","items","selectedIds","mutateItem","items_1","items_1_1","willBeSelected","getElementsDiffChanges","lookup","itemsLookup","items_2","items_2_1","lookupItem","storeItem","lookup_1","lookup_1_1","elementToRemoveChange","getInternalNodesBounds","box","nodeBox","getNodesInside","partially","excludeNonSelectableNodes","paneRect","visibleNodes","nodes_1","nodes_1_1","_m","selectable","_o","hidden","overlappingArea","getConnectedEdges","nodeIds","fitView","filteredNodes","optionNodeIds","includeHiddenNodes","currBox","getNodesBounds","calculateNodePosition","nodeId","nextPosition","nodeExtent","parentX","parentY","currentExtent","clampNodeExtent","expandParent","nodeWidth","nodeHeight","parentWidth","parentHeight","currNodeOrigin","extentX","extentY","getElementsToRemove","nodesToRemove","edgesToRemove","onBeforeDelete","matchingNodes","deletable","isIncluded","parentHit","nodes_2","nodes_2_1","done","edgeIds","deletableEdges","connectedEdges","matchingEdges","deletableEdges_1","deletableEdges_1_1","onBeforeDeleteResult","sent","userSelectionRect","UserSelection","wrapHandler","handler","containerRef","elementsSelectable","Pane","isSelecting","selectionMode","onSelectionStart","onSelectionEnd","onPaneClick","onPaneScroll","onPaneMouseEnter","onPaneMouseMove","onPaneMouseLeave","container","prevSelectedNodesCount","prevSelectedEdgesCount","containerBounds","edgeIdLookup","resetUserSelection","onClick","resetSelectedElements","nodesSelectionActive","onWheel","hasActiveSelection","_jsxs","cc","draggable","onContextMenu","onMouseEnter","onMouseDown","edgeLookup_1","edgeLookup_1_1","nativeEvent","startX","startY","onMouseMove","triggerNodeChanges","triggerEdgeChanges","mouseX","mouseY","nextUserSelectRect","selectedNodes","selectedEdgeIds","selectedNodeIds","selectedNodes_1","selectedNodes_1_1","selectedNode","edgeIds_1","edgeIds_1_1","onMouseUp","onMouseLeave","FlowRendererComponent","deleteKeyCode","selectionKeyCode","selectionOnDrag","multiSelectionKeyCode","panActivationKeyCode","_panOnScroll","_panOnDrag","onSelectionContextMenu","disableKeyboardA11y","selectionKeyPressed","panActivationKeyPressed","deleteKeyPressed","multiSelectionKeyPressed","multiSelectionActive","useGlobalKeyHandler","displayName","FlowRenderer","memo","useIsomorphicLayoutEffect","useQueue","runQueue","shouldFlush","setShouldFlush","cb","queue","reset","createQueue","queueItems","BatchContext","BatchProvider","nodeQueueHandler","useCallback","setNodes","hasDefaultNodes","onNodesChange","queueItems_1","queueItems_1_1","payload","nodeQueue","edgeQueueHandler","setEdges","hasDefaultEdges","onEdgesChange","queueItems_2","queueItems_2_1","edgeQueue","useViewportHelper","zoomIn","zoomOut","zoomTo","zoomLevel","getZoom","tX","tY","tZoom","setCenter","nextZoom","centerX","centerY","fitBounds","screenToFlowPosition","clientPosition","domX","domY","correctedPosition","flowToScreenPosition","flowPosition","rendererPosition","useInkFlow","_this","viewportHelper","batchContext","useBatchContext","viewportInitialized","generalHelper","getInternalNode","getNodeRect","nodeToUse","nextParentId","origin_1","xOffset","yOffset","evaluateAbsolutePosition","nodeWithPosition","updateNode","nodeUpdate","prevNodes","nextNode","getNodes","getNode","getEdges","getEdge","addNodes","newNodes","addEdges","newEdges","toObject","deleteElements","onNodesDelete","onEdgesDelete","onDelete","hasMatchingEdges","hasMatchingNodes","edgeChanges","nodeChanges","deletedNodes","deletedEdges","getIntersectingNodes","nodeOrRect","isRect","nodeRect","hasNodesOption","currNodeRect","isNodeIntersecting","area","updateNodeData","dataUpdate","nextData","updateNodeInternals","onlyRenderVisible","NodeIdContext","Consumer","ARIA_NODE_DESC_KEY","ARIA_EDGE_DESC_KEY","getBezierEdgeCenter","sourceX","sourceY","targetX","targetY","sourceControlX","sourceControlY","targetControlX","targetControlY","calculateControlOffset","distance","curvature","getControlWithCurvature","x1","y1","Left","Right","Top","Bottom","getEdgeCenter","getEdgeId","handleDirections","getDirection","sourcePosition","getSmoothStepPath","targetPosition","borderRadius","center","offset","sourceDir","targetDir","sourceGapped","targetGapped","dir","dirAccessor","currDir","points","sourceGapOffset","targetGapOffset","defaultCenterX","defaultCenterY","defaultOffsetX","defaultOffsetY","verticalSplit","horizontalSplit","sourceTarget","targetSource","diff","gapOffset","dirAccessorOpposite","isSameDir","sourceGtTargetOppo","sourceLtTargetOppo","sourceGapPoint","targetGapPoint","getPoints","labelX","labelY","path","segment","bendSize","xDir_1","yDir_1","xDir","yDir","getBend","getHandles","currentHandle","getHandleType","edgeUpdaterType","handleDomNode","alwaysValid","connectionStartHandle","isValidHandle","connectionMode","fromNodeId","fromHandleId","fromType","doc","flowId","isValidConnection","isTarget","handleBelow","elementFromPoint","handleToCheck","isValid","endHandle","handleNodeId","handleId","connectable","connectableEnd","Strict","XYHandle","onPointerDown","closestHandle","connectionRadius","autoPanOnConnect","panBy","cancelConnection","onConnectStart","onConnect","onConnectEnd","onEdgeUpdateEnd","updateConnection","getTransform","getConnectionStartHandle","autoPanId","clickedHandle","connectionPosition","autoPanStarted","handleLookup","connectionHandles","sourceHandles","targetHandles","getHandleLookup","connectionStatus","connectionEndHandle","onPointerMove","onPointerUp","autoPan","closestHandles","minDistance","handles_1","handles_1_1","getClosestHandle","isInsideConnectionRadius","isHandleValid","cancelAnimationFrame","connectOnClick","rfId","Handle","isConnectable","isConnectableStart","isConnectableEnd","onTouchStart","rest","__rest","startHandle","clickHandle","connectionClickStartHandle","connectingTo","connectingFrom","clickConnecting","isPossibleEndHandle","connectionInProcess","valid","connectingSelector","onConnectExtended","defaultEdgeOptions","onConnectAction","edgeParams","el","connectionExists","addEdge","isMouseTriggered","currentStore","connectablestart","connectableend","clickconnecting","connectingfrom","connectingto","connectionindicator","onClickConnectStart","onClickConnectEnd","isValidConnectionStore","isValidConnectionHandler","arrowKeyDiffs","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","builtinNodeTypes","input","_Fragment","label","output","handleNodeClick","unselect","nodeRef","addSelectedNodes","unselectNodesAndEdges","blur","isParentSelected","hasSelector","parentElement","getEventHandlerParams","dragItems","nodesFromDragItems","dragItems_1","dragItems_1_1","dragItem","node_1","XYDrag","onNodeMouseDown","getStoreItems","onDragStart","onDrag","onDragStop","lastPos","mousePosition","dragStarted","noDragClassName","handleSelector","isSelectable","updateNodes","dragEvent","onNodeDrag","onSelectionDrag","updateNodePositions","hasChange","nodesBox","adjustedNodeExtent","positionAbsolute_1","currentNode","currentNodes","xMovement","yMovement","startDrag","nodesDraggable","selectNodesOnDrag","onNodeDragStart","onSelectionDragStart","mousePos","getDragItems","d3DragInstance","mousedownx","mousedowny","mousemoving","gestures","drag","beforestart","mousemoved","mouseupped","nodrag","touch","nodeDragThreshold","autoPanOnNodeDrag","onNodeDragStop","onSelectionDragStop","selectedAndDraggable","NodeWrapper","onDoubleClick","nodesConnectable","nodesFocusable","resizeObserver","nodeTypes","isParent","NodeComponent","isDraggable","isFocusable","focusable","hasDimensions","nodeHasDimensions","observedNode","prevSourcePosition","prevTargetPosition","prevType","isInitialized","typeChanged","sourcePosChanged","targetPosChanged","force","useNodeObserver","disabled","setDragging","xyDrag","useDrag","dragHandle","moveSelectedNodes","nodeUpdates","isSelected","xVelo","yVelo","xDiff","direction","yDiff","useMoveSelectedNodes","nodeDimensions","inlineDimensions","getNodeInlineStyleDimensions","clampedPosition","positionWithOrigin","hasPointerEvents","onMouseEnterHandler","onMouseMoveHandler","onMouseLeaveHandler","onContextMenuHandler","onDoubleClickHandler","pointerEvents","visibility","onKeyDown","ariaLiveMessage","tabIndex","role","ariaLabel","positionAbsoluteX","positionAbsoluteY","NodeRendererComponent","entries","updates","entry","disconnect","useResizeObserver","NodeRenderer","MarkerSymbols","Arrow","strokeWidth","stroke","strokeLinecap","strokeLinejoin","fill","ArrowClosed","getMarkerId","marker","idPrefix","Marker","markerUnits","orient","symbol","useMarkerSymbol","markerWidth","markerHeight","refX","refY","MarkerDefinitions","defaultColor","markers","defaultMarkerStart","defaultMarkerEnd","ids","markerStart","markerEnd","markerId","localeCompare","createMarkerIds","EdgeTextComponent","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","edgeTextBbox","setEdgeTextBbox","edgeTextClasses","onEdgeTextRefChange","edgeRef","textBbox","getBBox","rx","ry","EdgeText","BaseEdge","interactionWidth","strokeOpacity","getControl","createSimpleBezierEdge","getSimpleBezierPath","isInternal","SimpleBezierEdge","SimpleBezierEdgeInternal","createSmoothStepEdge","pathOptions","SmoothStepEdge","SmoothStepEdgeInternal","createStepEdge","StepEdge","StepEdgeInternal","createStraightEdge","getStraightPath","StraightEdge","StraightEdgeInternal","createBezierEdge","getBezierPath","BezierEdge","BezierEdgeInternal","builtinEdgeTypes","straight","step","smoothstep","simplebezier","nullPosition","shiftX","shift","shiftY","EdgeUpdaterClassName","EdgeAnchor","radius","onMouseOut","cx","cy","EdgeUpdateAnchors","isUpdatable","edgeUpdaterRadius","targetHandleId","sourceHandleId","onEdgeUpdate","onEdgeUpdateStart","setUpdating","setUpdateHover","handleEdgeUpdater","isSourceHandle","evt","onEdgeUpdaterMouseEnter","onEdgeUpdaterMouseOut","isNodeInitialized","toHandleBounds","getHandlePosition","getHandle","EdgeWrapper","edgesFocusable","edgesUpdatable","edgeTypes","EdgeComponent","updatable","updateHover","updating","sourceNode","targetNode","edgePosition","sourceHandleBounds","targetHandleBounds","getEdgePosition","edgeOrConnectedNodeSelected","selectedZIndex","getElevatedEdgeZIndex","elevateOnSelect","elevateEdgesOnSelect","markerStartUrl","markerEndUrl","onEdgeDoubleClick","onEdgeContextMenu","onEdgeMouseEnter","onEdgeMouseMove","onEdgeMouseLeave","animated","inactive","addSelectedEdges","EdgeRendererComponent","useVisibleEdgeIds","EdgeRenderer","Viewport","GraphViewComponent","GraphView","defaultNodes","defaultEdges","storeEdges","storeNodes","fitViewOnInit","fitViewDone","fitViewOnInitOptions","onSelectionChangeHandlers","debug","setDefaultNodesAndEdges","viewportNode","updatedInternals","DOMMatrixReadOnly","m22","parentExpandChildren","dimensionChanged","newNode","parentExpandChanges","updateNodeInternalsSystem","nextFitViewDone","nodeDragItems","nodeDragItems_1","nodeDragItems_1_1","edgesToUnselect","setMinZoom","setMaxZoom","setNodeExtent","delta","panBySystem","fitViewSystem","currentConnection","InkFlowProvider","initialNodes","initialEdges","Wrapper","Fragment","fieldsToTrack","initPrevValues","StoreUpdater","previousFields","fieldsToTrack_1","fieldsToTrack_1_1","fieldName","fieldValue","wrapperStyle","overflow","initViewport","fitViewOptions","cls","PlusIcon","MinusIcon","FitViewIcon","LockIcon","UnlockIcon","ControlButton","Panel","positionClasses","isInteractive","minZoomReached","maxZoomReached","ControlsComponent","showZoom","showFitView","showInteractive","onZoomIn","onZoomOut","onFitView","onInteractiveChange","orientation","orientationClass","title","Controls","E","N","O","I","C","A","M","L","P","R","F","D","B","U","G","V","$","Y","W","J","K","Q","H","X","Z","nn","rn","tn","en","un","an","fn","cn","sn","dn","hn","vn","ln","pn","gn","yn","bn","mn","_n","wn","En","jn","kn","xn","Nn","On","In","Cn","An","Mn","Ln","Pn","Sn","Tn","Rn","zn","Fn","Dn","Bn","Un","Gn","Vn","qn","$n","Yn","Wn","Jn","Kn","Qn","Hn","Xn","Zn","nr","rr","globalThis","global","er","or","ir","ur","ar","Function","fr","cr","toStringTag","sr","dr","vr","lr","IE_PROTO","hr","pr","gr","br","mr","yr","hash","_r","wr","Er","jr","writable","kr","xr","Nr","Or","propertyIsEnumerable","Ir","Cr","Ar","Mr","Lr","Pr","Sr","Tr","Rr","zr","Fr","Dr","Br","Ur","Buffer","isBuffer","Gr","Vr","qr","$r","Yr","Wr","Jr","Kr","Qr","Hr","Xr","Zr","nt","rt","tt","et","ot","it","ut","at","ft","ct","st","dt","ht","vt","lt","pt","gt","yt","bt","mt","process","require","binding","_t","isTypedArray","wt","String","Et","jt","kt","xt","Nt","It","Ot","Ct","At","Mt","Lt","Pt","St","Tt","Rt","zt","Ft","Dt","Bt","Ut","Gt","Vt","qt","$t","Yt","Wt","Jt","Kt","Qt","Ht","Xt","Zt","ne","re","te","ee","oe","ie","ue","ae","fe","ce","se","de","he","ve","le","pe","ge","ye","be","me","we","Ee","je","ke","xe","Ne","Oe","Ie","Ce","Ae","Me","Le","Pe","Se","Te","Re","ze","Fe","De","Be","Ue","Ge","Ve","qe","$e","Ye","We","Je","Ke","Qe","He","Xe","Ze","no","ro","to","eo","oo","io","uo","ao","fo","co","so","ho","vo","lo","po","go","yo","bo","mo","wo","Eo","jo","ko","xo","No","Oo","Io","Co","Ao","Mo","Lo","Po","So","To","Ro","zo","Fo","Do","Bo","Uo","Go","Vo","qo","$o","Yo","Wo","Jo","Ko","Qo","Ho","Xo","Zo","ni","ri","ti","ei","oi","ii","ui","ai","fi","ci","si","di","hi","vi","li","pi","gi","yi","mi","_i","wi","Ei","ji","ki","xi","Ni","Oi","Ii","Ci","Ai","Mi","Li","Pi","Si","Ti","Ri","zi","Fi","Di","Bi","Ui","Gi","Vi","qi","$i","Yi","Wi","Ji","Ki","Qi","Hi","Xi","Zi","nu","ru","tu","eu","ou","iu","uu","au","fu","cu","su","du","hu","vu","lu","pu","gu","yu","bu","mu","_u","wu","Eu","ju","ku","xu","Nu","Ou","Iu","Cu","Au","Mu","Lu","Pu","Su","Tu","Ru","zu","Fu","Du","Bu","Uu","Gu","Vu","qu","$u","Yu","Wu","Ju","Ku","Qu","Hu","Xu","Zu","na","ra","ta","ea","oa","ia","ua","aa","fa","ca","sa","da","ha","va","la","pa","ga","ba","ma","wa","Ea","ja","ka","Na","Oa","Ia","Ca","Aa","Ma","La","Pa","Sa","Ta","Ra","za","Fa","Da","Ba","Ua","allocUnsafe","Ga","Va","qa","$a","getOwnPropertySymbols","Ya","Wa","getPrototypeOf","Ja","Ka","Qa","Ha","Xa","ArrayBuffer","Za","Uint8Array","nf","byteLength","rf","buffer","byteOffset","ef","of","ff","valueOf","tf","isMap","uf","isSet","af","cf","sf","df","hf","vf","lf","pf","gf","yf","bf","mf","wf","jf","message","Ef","kf","xf","Nf","If","Cf","Mf","Lf","Pf","cache","Cache","Af","charCodeAt","Sf","Tf","Rf","zf","Df","Uf","Of","Ff","Bf","Gf","Vf","qf","$f","Yf","Wf","Jf","Qf","Kf","Hf","Xf","isConcatSpreadable","Zf","nc","rc","tc","ic","ec","oc","uc","ac","fc","isEmpty","isFunction","isUndefined","union","values","sc","_isDirected","directed","_isMultigraph","multigraph","_isCompound","compound","_label","_defaultNodeLabelFn","_defaultEdgeLabelFn","_nodes","_children","_in","_preds","_out","_sucs","_edgeObjs","_edgeLabels","_nodeCount","_edgeCount","isDirected","isMultigraph","isCompound","setGraph","graph","setDefaultNodeLabel","nodeCount","sources","sinks","setNode","hasNode","removeNode","removeEdge","_removeFromParentsChildList","setParent","predecessors","successors","neighbors","isLeaf","filterNodes","setEdge","setDefaultEdgeLabel","edgeCount","setPath","freeze","hasEdge","inEdges","outEdges","nodeEdges","hc","write","read","vc","lc","_arr","_keyIndices","_decrease","removeMin","_swap","_heapify","decrease","pc","predecessor","gc","yc","onStack","lowlink","bc","mc","CycleException","wc","Ec","jc","xc","Graph","version","json","alg","components","dijkstra","dijkstraAll","findCycles","floydWarshall","isAcyclic","postorder","preorder","prim","tarjan","topsort","graphlib","Nc","Oc","Ic","Cc","Ac","Mc","Lc","Pc","Sc","Tc","Rc","zc","Fc","Dc","Bc","Uc","Gc","Vc","qc","$c","Yc","Wc","Jc","Kc","Qc","Hc","Xc","Zc","ns","rs","ts","es","os","us","as","fs","cs","ss","ds","hs","vs","ls","ps","gs","ys","ms","_s","ws","Es","js","ks","xs","Ns","Os","Is","Cs","As","Ms","Ls","Ps","Ss","Ts","Rs","zs","Fs","Ds","Bs","Us","Gs","Vs","qs","$s","Ys","Ws","Js","Ks","Qs","Hs","Xs","Zs","nd","rd","td","ed","od","ud","ad","fd","cd","sd","dd","hd","ld","charAt","vd","gd","yd","bd","md","wd","xd","criteria","kd","cloneDeep","pd","flatten","forIn","last","mapValues","minBy","pick","Ed","jd","sortBy","uniqueId","zipObject","Nd","Od","Id","_prev","_sentinel","Cd","Ad","dequeue","enqueue","JSON","stringify","Md","Ld","Pd","Td","Rd","out","zd","in","Fd","Dd","buckets","zeroIdx","Bd","run","acyclicer","weight","forwardName","reversed","undo","Ud","Gd","Vd","addDummyNode","qd","simplify","minlen","asNonCompoundGraph","successorWeights","predecessorWeights","intersectRect","buildLayerMatrix","$d","rank","normalizeRanks","removeEmptyRanks","nodeRankFactor","addBorderNode","maxRank","partition","lhs","rhs","notime","dummy","Yd","Wd","Jd","dummyChains","labelRank","edgeLabel","edgeObj","labelpos","Kd","Qd","Hd","Xd","Zd","nh","rh","th","eh","oh","ih","uh","ah","fh","ch","sh","dh","hh","ph","vh","yh","mh","bh","cutvalue","lh","gh","low","lim","initLowLimValues","initCutValues","calcCutValue","leaveEdge","enterEdge","exchangeEdges","wh","Eh","jh","xh","Oh","Ch","Ah","Mh","nestingRoot","Lh","cleanup","nestingEdge","borderTop","borderBottom","Ph","Sh","Rh","borderType","zh","Fh","adjust","rankdir","Dh","Uh","Gh","Bh","Vh","$h","Wh","Jh","Kh","Qh","Hh","Xh","Zh","ov","iv","av","fv","cv","sv","dv","borderLeft","borderRight","sum","barycenter","nv","indegree","merged","reverse","rv","tv","hv","minRank","lv","pv","yv","bv","vv","mv","_v","wv","Ev","Nv","Ov","Pv","Sv","Tv","kv","xv","floor","align","Iv","nodesep","edgesep","Cv","Av","Mv","ul","Lv","Rv","zv","Fv","Dv","ranker","Nh","Bv","Uv","lca","Gv","Vv","qv","$v","Yv","Jv","Kv","Hv","Xv","ranksep","Zv","nl","rl","tl","labeloffset","ol","il","al","fl","cl","sl","__esModule","tr","layout","debugTiming","selfEdges","Wv","marginx","marginy","unshift","debugOrdering","util","eds","nds"],"mappings":"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GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGl/B,GAAGm/B,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG37C,GAAG47C,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,16,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120]}
1
+ {"version":3,"file":"index.cjs.js","sources":["../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../node_modules/classnames/index.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/shim/index.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/shim/with-selector.js","../../../node_modules/.pnpm/use-sync-external-store@1.2.0_react@18.3.1/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../../../node_modules/.pnpm/zustand@4.5.2_@types+react@18.3.1_react@18.3.1/node_modules/zustand/esm/vanilla.mjs","../../../node_modules/.pnpm/zustand@4.5.2_@types+react@18.3.1_react@18.3.1/node_modules/zustand/esm/traditional.mjs","../src/contexts/StoreContext.ts","../../ink-core/dist/index.esm.js","../src/hooks/useStore.ts","../src/utils/store.ts","../src/utils/general.ts","../src/utils/dom.ts","../src/hooks/useKeyPress.ts","../../../node_modules/.pnpm/zustand@4.5.2_@types+react@18.3.1_react@18.3.1/node_modules/zustand/esm/shallow.mjs","../src/styles/utils.ts","../src/container/ZoomPane/index.tsx","../src/hooks/useResizeHandler.ts","../src/hooks/useGlobalKeyHandler.ts","../src/utils/changes.ts","../src/utils/graph.ts","../src/components/UserSelection/index.tsx","../src/container/Pane/index.tsx","../src/container/FlowRenderer/index.tsx","../src/hooks/useIsomorphicLayoutEffect.ts","../src/components/BatchProvider/useQueue.ts","../src/components/BatchProvider/index.tsx","../src/hooks/useViewportHelper.ts","../src/hooks/useInkFlow.ts","../src/container/NodeRenderer/useResizeObserver.ts","../src/hooks/useVisibleNodeIds.ts","../src/contexts/NodeIdContext.ts","../src/components/A11yDescriptions/index.tsx","../src/utils/edges/bezier-edge.ts","../src/utils/edges/general.ts","../src/utils/edges/smoothstep-edge.ts","../src/components/Handle/index.tsx","../src/components/NodeWrapper/utils.tsx","../src/components/Nodes/InputNode.tsx","../src/components/Nodes/DefaultNode.tsx","../src/components/Nodes/OutputNode.tsx","../src/components/Nodes/GroupNode.tsx","../src/components/Nodes/utils.ts","../src/hooks/useMoveSelectedNodes.ts","../src/components/NodeWrapper/index.tsx","../src/components/NodeWrapper/useNodeObserver.ts","../src/hooks/useDrag.ts","../src/container/NodeRenderer/index.tsx","../src/container/EdgeRenderer/MarkerSymbols.tsx","../src/utils/marker.ts","../src/container/EdgeRenderer/MarkerDefinitions.tsx","../src/components/Edges/EdgeText.tsx","../src/components/Edges/BaseEdge.tsx","../src/components/Edges/SimpleBezierEdge.tsx","../src/components/Edges/SmoothStepEdge.tsx","../src/components/Edges/StepEdge.tsx","../src/components/Edges/StraightEdge.tsx","../src/utils/edges/straight-edge.ts","../src/components/Edges/BezierEdge.tsx","../src/components/EdgeWrapper/utils.ts","../src/components/Edges/EdgeAnchor.tsx","../src/components/EdgeWrapper/EdgeUpdateAnchors.tsx","../src/utils/positions.ts","../src/components/EdgeWrapper/index.tsx","../src/container/EdgeRenderer/index.tsx","../src/hooks/useVisibleEdgeIds.ts","../src/container/Viewport/index.tsx","../src/container/GraphView/index.tsx","../src/store/initialState.ts","../src/store/index.ts","../src/components/InkFlowProvider/index.tsx","../src/container/InkFlow/Wrapper.tsx","../src/container/InkFlow/init-values.ts","../src/components/StoreUpdater/index.tsx","../src/container/InkFlow/index.tsx","../src/plugins/Controls/Icons/Plus.tsx","../src/plugins/Controls/Icons/Minus.tsx","../src/plugins/Controls/Icons/FitView.tsx","../src/plugins/Controls/Icons/Lock.tsx","../src/plugins/Controls/Icons/Unlock.tsx","../src/plugins/Controls/ControlButton.tsx","../src/components/Panel/index.tsx","../src/plugins/Controls/Controls.tsx","../src/hooks/useEdgesState.ts","../src/hooks/useNodesState.ts"],"sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var e=require(\"react\");function h(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var k=\"function\"===typeof Object.is?Object.is:h,l=e.useState,m=e.useEffect,n=e.useLayoutEffect,p=e.useDebugValue;function q(a,b){var d=b(),f=l({inst:{value:d,getSnapshot:b}}),c=f[0].inst,g=f[1];n(function(){c.value=d;c.getSnapshot=b;r(c)&&g({inst:c})},[a,d,b]);m(function(){r(c)&&g({inst:c});return a(function(){r(c)&&g({inst:c})})},[a]);p(d);return d}\nfunction r(a){var b=a.getSnapshot;a=a.value;try{var d=b();return!k(a,d)}catch(f){return!0}}function t(a,b){return b()}var u=\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement?t:q;exports.useSyncExternalStore=void 0!==e.useSyncExternalStore?e.useSyncExternalStore:u;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.min.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var h=require(\"react\"),n=require(\"use-sync-external-store/shim\");function p(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var q=\"function\"===typeof Object.is?Object.is:p,r=n.useSyncExternalStore,t=h.useRef,u=h.useEffect,v=h.useMemo,w=h.useDebugValue;\nexports.useSyncExternalStoreWithSelector=function(a,b,e,l,g){var c=t(null);if(null===c.current){var f={hasValue:!1,value:null};c.current=f}else f=c.current;c=v(function(){function a(a){if(!c){c=!0;d=a;a=l(a);if(void 0!==g&&f.hasValue){var b=f.value;if(g(b,a))return k=b}return k=a}b=k;if(q(d,a))return b;var e=l(a);if(void 0!==g&&g(b,e))return b;d=a;return k=e}var c=!1,d,k,m=void 0===e?null:e;return[function(){return a(b())},null===m?void 0:function(){return a(m())}]},[b,e,l,g]);var d=r(a,c[0],c[1]);\nu(function(){f.hasValue=!0;f.value=d},[d]);w(d);return d};\n","const createStoreImpl = (createState) => {\n let state;\n const listeners = /* @__PURE__ */ new Set();\n const setState = (partial, replace) => {\n const nextState = typeof partial === \"function\" ? partial(state) : partial;\n if (!Object.is(nextState, state)) {\n const previousState = state;\n state = (replace != null ? replace : typeof nextState !== \"object\" || nextState === null) ? nextState : Object.assign({}, state, nextState);\n listeners.forEach((listener) => listener(state, previousState));\n }\n };\n const getState = () => state;\n const getInitialState = () => initialState;\n const subscribe = (listener) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n const destroy = () => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected.\"\n );\n }\n listeners.clear();\n };\n const api = { setState, getState, getInitialState, subscribe, destroy };\n const initialState = state = createState(setState, getState, api);\n return api;\n};\nconst createStore = (createState) => createState ? createStoreImpl(createState) : createStoreImpl;\nvar vanilla = (createState) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use import { createStore } from 'zustand/vanilla'.\"\n );\n }\n return createStore(createState);\n};\n\nexport { createStore, vanilla as default };\n","import ReactExports from 'react';\nimport useSyncExternalStoreExports from 'use-sync-external-store/shim/with-selector.js';\nimport { createStore } from 'zustand/vanilla';\n\nconst { useDebugValue } = ReactExports;\nconst { useSyncExternalStoreWithSelector } = useSyncExternalStoreExports;\nconst identity = (arg) => arg;\nfunction useStoreWithEqualityFn(api, selector = identity, equalityFn) {\n const slice = useSyncExternalStoreWithSelector(\n api.subscribe,\n api.getState,\n api.getServerState || api.getInitialState,\n selector,\n equalityFn\n );\n useDebugValue(slice);\n return slice;\n}\nconst createWithEqualityFnImpl = (createState, defaultEqualityFn) => {\n const api = createStore(createState);\n const useBoundStoreWithEqualityFn = (selector, equalityFn = defaultEqualityFn) => useStoreWithEqualityFn(api, selector, equalityFn);\n Object.assign(useBoundStoreWithEqualityFn, api);\n return useBoundStoreWithEqualityFn;\n};\nconst createWithEqualityFn = (createState, defaultEqualityFn) => createState ? createWithEqualityFnImpl(createState, defaultEqualityFn) : createWithEqualityFnImpl;\n\nexport { createWithEqualityFn, useStoreWithEqualityFn };\n","import { createContext } from 'react';\n\nimport { createStore } from '../store';\n\nconst StoreContext = createContext<ReturnType<typeof createStore> | null>(null);\n\nexport const Provider = StoreContext.Provider;\nexport default StoreContext;\n","var t,n,e,r,o,i,u,a,c,f,s,l,h,d,v,p,g,y,m,w,b,x,_,E,k,N,O,j,M,S,A,I,P,z,T,C,L,B,R,D,H,V,Y,F,G,X,$,q,U,W,Z,K,Q,J,tt,nt,et,rt,ot,it,ut,at,ct,ft,st,lt,ht,dt,vt,pt,gt,yt,mt,wt,bt,xt,_t,Et,kt,Nt,Ot,jt,Mt,St,At,It,Pt,zt,Tt,Ct,Lt,Bt,Rt,Dt,Ht,Vt,Yt,Ft,Gt,Xt,$t,qt,Ut,Wt,Zt,Kt,Qt,Jt,tn=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function nn(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,\"default\")?t.default:t}function en(t){if(t.__esModule)return t;var n=t.default;if(\"function\"==typeof n){var e=function t(){return this instanceof t?Reflect.construct(n,arguments,this.constructor):n.apply(this,arguments)};e.prototype=n.prototype}else e={};return Object.defineProperty(e,\"__esModule\",{value:!0}),Object.keys(t).forEach((function(n){var r=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,r.get?r:{enumerable:!0,get:function(){return t[n]}})})),e}function rn(){if(r)return e;return r=1,e=function(t,n){return t===n||t!=t&&n!=n}}function on(){if(i)return o;i=1;var t=rn();return o=function(n,e){for(var r=n.length;r--;)if(t(n[r][0],e))return r;return-1},o}function un(){if(p)return v;p=1;var e=n?t:(n=1,t=function(){this.__data__=[],this.size=0}),r=function(){if(a)return u;a=1;var t=on(),n=Array.prototype.splice;return u=function(e){var r=this.__data__,o=t(r,e);return!(o<0||(o==r.length-1?r.pop():n.call(r,o,1),--this.size,0))}}(),o=function(){if(f)return c;f=1;var t=on();return c=function(n){var e=this.__data__,r=t(e,n);return r<0?void 0:e[r][1]}}(),i=function(){if(l)return s;l=1;var t=on();return s=function(n){return t(this.__data__,n)>-1}}(),g=function(){if(d)return h;d=1;var t=on();return h=function(n,e){var r=this.__data__,o=t(r,n);return o<0?(++this.size,r.push([n,e])):r[o][1]=e,this}}();function y(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n<e;){var r=t[n];this.set(r[0],r[1])}}return y.prototype.clear=e,y.prototype.delete=r,y.prototype.get=o,y.prototype.has=i,y.prototype.set=g,v=y}function an(){if(N)return k;N=1;var t=\"object\"==typeof tn&&tn&&tn.Object===Object&&tn;return k=t}function cn(){if(j)return O;j=1;var t=an(),n=\"object\"==typeof self&&self&&self.Object===Object&&self,e=t||n||Function(\"return this\")();return O=e}function fn(){if(S)return M;S=1;var t=cn().Symbol;return M=t}function sn(){if(C)return T;C=1;var t=fn(),n=function(){if(I)return A;I=1;var t=fn(),n=Object.prototype,e=n.hasOwnProperty,r=n.toString,o=t?t.toStringTag:void 0;return A=function(t){var n=e.call(t,o),i=t[o];try{t[o]=void 0;var u=!0}catch(t){}var a=r.call(t);return u&&(n?t[o]=i:delete t[o]),a}}(),e=function(){if(z)return P;z=1;var t=Object.prototype.toString;return P=function(n){return t.call(n)}}(),r=t?t.toStringTag:void 0;return T=function(t){return null==t?void 0===t?\"[object Undefined]\":\"[object Null]\":r&&r in Object(t)?n(t):e(t)}}function ln(){if(B)return L;return B=1,L=function(t){var n=typeof t;return null!=t&&(\"object\"==n||\"function\"==n)}}function hn(){if(D)return R;D=1;var t=sn(),n=ln();return R=function(e){if(!n(e))return!1;var r=t(e);return\"[object Function]\"==r||\"[object GeneratorFunction]\"==r||\"[object AsyncFunction]\"==r||\"[object Proxy]\"==r}}function dn(){if(F)return Y;F=1;var t,n=function(){if(V)return H;V=1;var t=cn()[\"__core-js_shared__\"];return H=t}(),e=(t=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+t:\"\";return Y=function(t){return!!e&&e in t}}function vn(){if(X)return G;X=1;var t=Function.prototype.toString;return G=function(n){if(null!=n){try{return t.call(n)}catch(t){}try{return n+\"\"}catch(t){}}return\"\"}}function pn(){if(K)return Z;K=1;var t=function(){if(q)return $;q=1;var t=hn(),n=dn(),e=ln(),r=vn(),o=/^\\[object .+?Constructor\\]$/,i=Function.prototype,u=Object.prototype,a=i.toString,c=u.hasOwnProperty,f=RegExp(\"^\"+a.call(c).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\");return $=function(i){return!(!e(i)||n(i))&&(t(i)?f:o).test(r(i))}}(),n=W?U:(W=1,U=function(t,n){return null==t?void 0:t[n]});return Z=function(e,r){var o=n(e,r);return t(o)?o:void 0}}function gn(){if(J)return Q;J=1;var t=pn()(cn(),\"Map\");return Q=t}function yn(){if(nt)return tt;nt=1;var t=pn()(Object,\"create\");return tt=t}function mn(){if(dt)return ht;dt=1;var t=function(){if(rt)return et;rt=1;var t=yn();return et=function(){this.__data__=t?t(null):{},this.size=0}}(),n=it?ot:(it=1,ot=function(t){var n=this.has(t)&&delete this.__data__[t];return this.size-=n?1:0,n}),e=function(){if(at)return ut;at=1;var t=yn(),n=Object.prototype.hasOwnProperty;return ut=function(e){var r=this.__data__;if(t){var o=r[e];return\"__lodash_hash_undefined__\"===o?void 0:o}return n.call(r,e)?r[e]:void 0}}(),r=function(){if(ft)return ct;ft=1;var t=yn(),n=Object.prototype.hasOwnProperty;return ct=function(e){var r=this.__data__;return t?void 0!==r[e]:n.call(r,e)}}(),o=function(){if(lt)return st;lt=1;var t=yn();return st=function(n,e){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=t&&void 0===e?\"__lodash_hash_undefined__\":e,this}}();function i(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n<e;){var r=t[n];this.set(r[0],r[1])}}return i.prototype.clear=t,i.prototype.delete=n,i.prototype.get=e,i.prototype.has=r,i.prototype.set=o,ht=i}function wn(){if(wt)return mt;wt=1;var t=yt?gt:(yt=1,gt=function(t){var n=typeof t;return\"string\"==n||\"number\"==n||\"symbol\"==n||\"boolean\"==n?\"__proto__\"!==t:null===t});return mt=function(n,e){var r=n.__data__;return t(e)?r[\"string\"==typeof e?\"string\":\"hash\"]:r.map},mt}function bn(){if(St)return Mt;St=1;var t=function(){if(pt)return vt;pt=1;var t=mn(),n=un(),e=gn();return vt=function(){this.size=0,this.__data__={hash:new t,map:new(e||n),string:new t}}}(),n=function(){if(xt)return bt;xt=1;var t=wn();return bt=function(n){var e=t(this,n).delete(n);return this.size-=e?1:0,e}}(),e=function(){if(Et)return _t;Et=1;var t=wn();return _t=function(n){return t(this,n).get(n)}}(),r=function(){if(Nt)return kt;Nt=1;var t=wn();return kt=function(n){return t(this,n).has(n)}}(),o=function(){if(jt)return Ot;jt=1;var t=wn();return Ot=function(n,e){var r=t(this,n),o=r.size;return r.set(n,e),this.size+=r.size==o?0:1,this},Ot}();function i(t){var n=-1,e=null==t?0:t.length;for(this.clear();++n<e;){var r=t[n];this.set(r[0],r[1])}}return i.prototype.clear=t,i.prototype.delete=n,i.prototype.get=e,i.prototype.has=r,i.prototype.set=o,Mt=i}function xn(){if(zt)return Pt;zt=1;var t=un(),n=function(){if(y)return g;y=1;var t=un();return g=function(){this.__data__=new t,this.size=0}}(),e=w?m:(w=1,m=function(t){var n=this.__data__,e=n.delete(t);return this.size=n.size,e}),r=x?b:(x=1,b=function(t){return this.__data__.get(t)}),o=E?_:(E=1,_=function(t){return this.__data__.has(t)}),i=function(){if(It)return At;It=1;var t=un(),n=gn(),e=bn();return At=function(r,o){var i=this.__data__;if(i instanceof t){var u=i.__data__;if(!n||u.length<199)return u.push([r,o]),this.size=++i.size,this;i=this.__data__=new e(u)}return i.set(r,o),this.size=i.size,this}}();function u(n){var e=this.__data__=new t(n);this.size=e.size}return u.prototype.clear=n,u.prototype.delete=e,u.prototype.get=r,u.prototype.has=o,u.prototype.set=i,Pt=u}function _n(){if(Ct)return Tt;return Ct=1,Tt=function(t,n){for(var e=-1,r=null==t?0:t.length;++e<r&&!1!==n(t[e],e,t););return t},Tt}function En(){if(Bt)return Lt;Bt=1;var t=pn(),n=function(){try{var n=t(Object,\"defineProperty\");return n({},\"\",{}),n}catch(t){}}();return Lt=n}function kn(){if(Dt)return Rt;Dt=1;var t=En();return Rt=function(n,e,r){\"__proto__\"==e&&t?t(n,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):n[e]=r}}function Nn(){if(Vt)return Ht;Vt=1;var t=kn(),n=rn(),e=Object.prototype.hasOwnProperty;return Ht=function(r,o,i){var u=r[o];e.call(r,o)&&n(u,i)&&(void 0!==i||o in r)||t(r,o,i)}}function On(){if(Ft)return Yt;Ft=1;var t=Nn(),n=kn();return Yt=function(e,r,o,i){var u=!o;o||(o={});for(var a=-1,c=r.length;++a<c;){var f=r[a],s=i?i(o[f],e[f],f,o,e):void 0;void 0===s&&(s=e[f]),u?n(o,f,s):t(o,f,s)}return o}}function jn(){if(qt)return $t;return qt=1,$t=function(t){return null!=t&&\"object\"==typeof t}}function Mn(){if(Kt)return Zt;Kt=1;var t=function(){if(Wt)return Ut;Wt=1;var t=sn(),n=jn();return Ut=function(e){return n(e)&&\"[object Arguments]\"==t(e)}}(),n=jn(),e=Object.prototype,r=e.hasOwnProperty,o=e.propertyIsEnumerable,i=t(function(){return arguments}())?t:function(t){return n(t)&&r.call(t,\"callee\")&&!o.call(t,\"callee\")};return Zt=i}function Sn(){if(Jt)return Qt;Jt=1;var t=Array.isArray;return Qt=t}var An,In,Pn,zn,Tn,Cn,Ln,Bn,Rn,Dn,Hn,Vn={exports:{}};function Yn(){return Pn||(Pn=1,function(t,n){var e=cn(),r=In?An:(In=1,An=function(){return!1}),o=n&&!n.nodeType&&n,i=o&&t&&!t.nodeType&&t,u=i&&i.exports===o?e.Buffer:void 0,a=(u?u.isBuffer:void 0)||r;t.exports=a}(Vn,Vn.exports)),Vn.exports}function Fn(){if(Tn)return zn;Tn=1;var t=/^(?:0|[1-9]\\d*)$/;return zn=function(n,e){var r=typeof n;return!!(e=null==e?9007199254740991:e)&&(\"number\"==r||\"symbol\"!=r&&t.test(n))&&n>-1&&n%1==0&&n<e}}function Gn(){if(Ln)return Cn;Ln=1;return Cn=function(t){return\"number\"==typeof t&&t>-1&&t%1==0&&t<=9007199254740991}}function Xn(){if(Hn)return Dn;return Hn=1,Dn=function(t){return function(n){return t(n)}}}Vn.exports;var $n,qn,Un,Wn,Zn,Kn,Qn,Jn,te,ne,ee,re,oe,ie,ue,ae,ce,fe,se,le,he,de,ve,pe,ge,ye,me,we={exports:{}};function be(){return $n||($n=1,t=we,n=we.exports,e=an(),r=n&&!n.nodeType&&n,o=r&&t&&!t.nodeType&&t,i=o&&o.exports===r&&e.process,u=function(){try{var t=o&&o.require&&o.require(\"util\").types;return t||i&&i.binding&&i.binding(\"util\")}catch(t){}}(),t.exports=u),we.exports;var t,n,e,r,o,i,u}function xe(){if(Un)return qn;Un=1;var t=function(){if(Rn)return Bn;Rn=1;var t=sn(),n=Gn(),e=jn(),r={};return r[\"[object Float32Array]\"]=r[\"[object Float64Array]\"]=r[\"[object Int8Array]\"]=r[\"[object Int16Array]\"]=r[\"[object Int32Array]\"]=r[\"[object Uint8Array]\"]=r[\"[object Uint8ClampedArray]\"]=r[\"[object Uint16Array]\"]=r[\"[object Uint32Array]\"]=!0,r[\"[object Arguments]\"]=r[\"[object Array]\"]=r[\"[object ArrayBuffer]\"]=r[\"[object Boolean]\"]=r[\"[object DataView]\"]=r[\"[object Date]\"]=r[\"[object Error]\"]=r[\"[object Function]\"]=r[\"[object Map]\"]=r[\"[object Number]\"]=r[\"[object Object]\"]=r[\"[object RegExp]\"]=r[\"[object Set]\"]=r[\"[object String]\"]=r[\"[object WeakMap]\"]=!1,Bn=function(o){return e(o)&&n(o.length)&&!!r[t(o)]}}(),n=Xn(),e=be(),r=e&&e.isTypedArray,o=r?n(r):t;return qn=o}function _e(){if(Zn)return Wn;Zn=1;var t=Xt?Gt:(Xt=1,Gt=function(t,n){for(var e=-1,r=Array(t);++e<t;)r[e]=n(e);return r}),n=Mn(),e=Sn(),r=Yn(),o=Fn(),i=xe(),u=Object.prototype.hasOwnProperty;return Wn=function(a,c){var f=e(a),s=!f&&n(a),l=!f&&!s&&r(a),h=!f&&!s&&!l&&i(a),d=f||s||l||h,v=d?t(a.length,String):[],p=v.length;for(var g in a)!c&&!u.call(a,g)||d&&(\"length\"==g||l&&(\"offset\"==g||\"parent\"==g)||h&&(\"buffer\"==g||\"byteLength\"==g||\"byteOffset\"==g)||o(g,p))||v.push(g);return v},Wn}function Ee(){if(Qn)return Kn;Qn=1;var t=Object.prototype;return Kn=function(n){var e=n&&n.constructor;return n===(\"function\"==typeof e&&e.prototype||t)}}function ke(){if(te)return Jn;return te=1,Jn=function(t,n){return function(e){return t(n(e))}},Jn}function Ne(){if(oe)return re;oe=1;var t=Ee(),n=function(){if(ee)return ne;ee=1;var t=ke()(Object.keys,Object);return ne=t}(),e=Object.prototype.hasOwnProperty;return re=function(r){if(!t(r))return n(r);var o=[];for(var i in Object(r))e.call(r,i)&&\"constructor\"!=i&&o.push(i);return o}}function Oe(){if(ue)return ie;ue=1;var t=hn(),n=Gn();return ie=function(e){return null!=e&&n(e.length)&&!t(e)}}function je(){if(ce)return ae;ce=1;var t=_e(),n=Ne(),e=Oe();return ae=function(r){return e(r)?t(r):n(r)}}function Me(){if(ve)return de;ve=1;var t=ln(),n=Ee(),e=he?le:(he=1,le=function(t){var n=[];if(null!=t)for(var e in Object(t))n.push(e);return n}),r=Object.prototype.hasOwnProperty;return de=function(o){if(!t(o))return e(o);var i=n(o),u=[];for(var a in o)(\"constructor\"!=a||!i&&r.call(o,a))&&u.push(a);return u}}function Se(){if(ge)return pe;ge=1;var t=_e(),n=Me(),e=Oe();return pe=function(r){return e(r)?t(r,!0):n(r)}}we.exports;var Ae,Ie,Pe,ze,Te,Ce,Le,Be,Re,De,He,Ve,Ye,Fe,Ge,Xe,$e,qe,Ue,We,Ze,Ke,Qe,Je,tr,nr,er,rr,or,ir,ur,ar,cr,fr,sr,lr,hr,dr,vr,pr,gr,yr,mr,wr,br,xr,_r,Er,kr,Nr,Or,jr,Mr,Sr,Ar,Ir,Pr,zr,Tr,Cr,Lr,Br,Rr,Dr,Hr,Vr,Yr,Fr,Gr,Xr,$r,qr,Ur,Wr,Zr,Kr,Qr,Jr,to,no,eo,ro,oo,io,uo,ao,co,fo,so,lo,ho,vo,po,go,yo,mo,wo,bo,xo,_o,Eo,ko,No,Oo,jo,Mo,So,Ao,Io,Po,zo,To,Co,Lo,Bo,Ro,Do,Ho,Vo,Yo,Fo,Go,Xo,$o,qo,Uo,Wo,Zo,Ko,Qo,Jo,ti,ni,ei,ri,oi,ii,ui,ai,ci,fi,si,li,hi,di,vi,pi,gi,yi,mi,wi,bi,xi,_i,Ei,ki,Ni,Oi,ji,Mi,Si,Ai,Ii,Pi,zi,Ti,Ci,Li,Bi,Ri,Di,Hi,Vi,Yi,Fi,Gi,Xi,$i,qi,Ui,Wi,Zi,Ki,Qi,Ji,tu,nu,eu,ru,ou,iu,uu,au,cu,fu,su,lu,hu,du,vu,pu,gu,yu,mu,wu,bu,xu,_u,Eu,ku,Nu,Ou,ju,Mu,Su,Au,Iu,Pu,zu,Tu,Cu,Lu,Bu,Ru,Du,Hu,Vu,Yu,Fu,Gu,Xu,$u,qu,Uu,Wu,Zu,Ku,Qu,Ju,ta,na,ea,ra,oa,ia,ua,aa,ca,fa,sa,la,ha,da,va,pa,ga,ya,ma,wa,ba,xa,_a,Ea,ka,Na,Oa,ja,Ma,Sa,Aa,Ia,Pa,za,Ta,Ca,La,Ba,Ra,Da,Ha,Va={exports:{}};function Ya(){return Ae||(Ae=1,function(t,n){var e=cn(),r=n&&!n.nodeType&&n,o=r&&t&&!t.nodeType&&t,i=o&&o.exports===r?e.Buffer:void 0,u=i?i.allocUnsafe:void 0;t.exports=function(t,n){if(n)return t.slice();var e=t.length,r=u?u(e):new t.constructor(e);return t.copy(r),r}}(Va,Va.exports)),Va.exports}function Fa(){if(Pe)return Ie;return Pe=1,Ie=function(t,n){var e=-1,r=t.length;for(n||(n=Array(r));++e<r;)n[e]=t[e];return n},Ie}function Ga(){if(Te)return ze;return Te=1,ze=function(t,n){for(var e=-1,r=null==t?0:t.length,o=0,i=[];++e<r;){var u=t[e];n(u,e,t)&&(i[o++]=u)}return i},ze}function Xa(){if(Le)return Ce;return Le=1,Ce=function(){return[]}}function $a(){if(Re)return Be;Re=1;var t=Ga(),n=Xa(),e=Object.prototype.propertyIsEnumerable,r=Object.getOwnPropertySymbols;return Be=r?function(n){return null==n?[]:(n=Object(n),t(r(n),(function(t){return e.call(n,t)})))}:n}function qa(){if(Ye)return Ve;return Ye=1,Ve=function(t,n){for(var e=-1,r=n.length,o=t.length;++e<r;)t[o+e]=n[e];return t},Ve}function Ua(){if(Ge)return Fe;Ge=1;var t=ke()(Object.getPrototypeOf,Object);return Fe=t}function Wa(){if($e)return Xe;$e=1;var t=qa(),n=Ua(),e=$a(),r=Xa(),o=Object.getOwnPropertySymbols;return Xe=o?function(r){for(var o=[];r;)t(o,e(r)),r=n(r);return o}:r}function Za(){if(Ze)return We;Ze=1;var t=qa(),n=Sn();return We=function(e,r,o){var i=r(e);return n(e)?i:t(i,o(e))}}function Ka(){if(Qe)return Ke;Qe=1;var t=Za(),n=$a(),e=je();return Ke=function(r){return t(r,e,n)}}function Qa(){if(ur)return ir;ur=1;var t=pn()(cn(),\"Set\");return ir=t}function Ja(){if(sr)return fr;sr=1;var t=function(){if(er)return nr;er=1;var t=pn()(cn(),\"DataView\");return nr=t}(),n=gn(),e=function(){if(or)return rr;or=1;var t=pn()(cn(),\"Promise\");return rr=t}(),r=Qa(),o=function(){if(cr)return ar;cr=1;var t=pn()(cn(),\"WeakMap\");return ar=t}(),i=sn(),u=vn(),a=\"[object Map]\",c=\"[object Promise]\",f=\"[object Set]\",s=\"[object WeakMap]\",l=\"[object DataView]\",h=u(t),d=u(n),v=u(e),p=u(r),g=u(o),y=i;return(t&&y(new t(new ArrayBuffer(1)))!=l||n&&y(new n)!=a||e&&y(e.resolve())!=c||r&&y(new r)!=f||o&&y(new o)!=s)&&(y=function(t){var n=i(t),e=\"[object Object]\"==n?t.constructor:void 0,r=e?u(e):\"\";if(r)switch(r){case h:return l;case d:return a;case v:return c;case p:return f;case g:return s}return n}),fr=y}function tc(){if(vr)return dr;vr=1;var t=cn().Uint8Array;return dr=t}function nc(){if(gr)return pr;gr=1;var t=tc();return pr=function(n){var e=new n.constructor(n.byteLength);return new t(e).set(new t(n)),e}}function ec(){if(kr)return Er;kr=1;var t=nc();return Er=function(n,e){var r=e?t(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.length)}}function rc(){if(Or)return Nr;Or=1;var t=nc(),n=function(){if(mr)return yr;mr=1;var t=nc();return yr=function(n,e){var r=e?t(n.buffer):n.buffer;return new n.constructor(r,n.byteOffset,n.byteLength)}}(),e=function(){if(br)return wr;br=1;var t=/\\w*$/;return wr=function(n){var e=new n.constructor(n.source,t.exec(n));return e.lastIndex=n.lastIndex,e}}(),r=function(){if(_r)return xr;_r=1;var t=fn(),n=t?t.prototype:void 0,e=n?n.valueOf:void 0;return xr=function(t){return e?Object(e.call(t)):{}}}(),o=ec();return Nr=function(i,u,a){var c=i.constructor;switch(u){case\"[object ArrayBuffer]\":return t(i);case\"[object Boolean]\":case\"[object Date]\":return new c(+i);case\"[object DataView]\":return n(i,a);case\"[object Float32Array]\":case\"[object Float64Array]\":case\"[object Int8Array]\":case\"[object Int16Array]\":case\"[object Int32Array]\":case\"[object Uint8Array]\":case\"[object Uint8ClampedArray]\":case\"[object Uint16Array]\":case\"[object Uint32Array]\":return o(i,a);case\"[object Map]\":case\"[object Set]\":return new c;case\"[object Number]\":case\"[object String]\":return new c(i);case\"[object RegExp]\":return e(i);case\"[object Symbol]\":return r(i)}}}function oc(){if(Mr)return jr;Mr=1;var t=ln(),n=Object.create,e=function(){function e(){}return function(r){if(!t(r))return{};if(n)return n(r);e.prototype=r;var o=new e;return e.prototype=void 0,o}}();return jr=e}function ic(){if(Ar)return Sr;Ar=1;var t=oc(),n=Ua(),e=Ee();return Sr=function(r){return\"function\"!=typeof r.constructor||e(r)?{}:t(n(r))}}function uc(){if(Tr)return zr;Tr=1;var t=function(){if(Pr)return Ir;Pr=1;var t=Ja(),n=jn();return Ir=function(e){return n(e)&&\"[object Map]\"==t(e)}}(),n=Xn(),e=be(),r=e&&e.isMap,o=r?n(r):t;return zr=o}function ac(){if(Rr)return Br;Rr=1;var t=function(){if(Lr)return Cr;Lr=1;var t=Ja(),n=jn();return Cr=function(e){return n(e)&&\"[object Set]\"==t(e)}}(),n=Xn(),e=be(),r=e&&e.isSet,o=r?n(r):t;return Br=o}function cc(){if(Hr)return Dr;Hr=1;var t=xn(),n=_n(),e=Nn(),r=function(){if(se)return fe;se=1;var t=On(),n=je();return fe=function(e,r){return e&&t(r,n(r),e)}}(),o=function(){if(me)return ye;me=1;var t=On(),n=Se();return ye=function(e,r){return e&&t(r,n(r),e)}}(),i=Ya(),u=Fa(),a=function(){if(He)return De;He=1;var t=On(),n=$a();return De=function(e,r){return t(e,n(e),r)}}(),c=function(){if(Ue)return qe;Ue=1;var t=On(),n=Wa();return qe=function(e,r){return t(e,n(e),r)}}(),f=Ka(),s=function(){if(tr)return Je;tr=1;var t=Za(),n=Wa(),e=Se();return Je=function(r){return t(r,e,n)}}(),l=Ja(),h=function(){if(hr)return lr;hr=1;var t=Object.prototype.hasOwnProperty;return lr=function(n){var e=n.length,r=new n.constructor(e);return e&&\"string\"==typeof n[0]&&t.call(n,\"index\")&&(r.index=n.index,r.input=n.input),r},lr}(),d=rc(),v=ic(),p=Sn(),g=Yn(),y=uc(),m=ln(),w=ac(),b=je(),x=Se(),_=\"[object Arguments]\",E=\"[object Function]\",k=\"[object Object]\",N={};return N[_]=N[\"[object Array]\"]=N[\"[object ArrayBuffer]\"]=N[\"[object DataView]\"]=N[\"[object Boolean]\"]=N[\"[object Date]\"]=N[\"[object Float32Array]\"]=N[\"[object Float64Array]\"]=N[\"[object Int8Array]\"]=N[\"[object Int16Array]\"]=N[\"[object Int32Array]\"]=N[\"[object Map]\"]=N[\"[object Number]\"]=N[k]=N[\"[object RegExp]\"]=N[\"[object Set]\"]=N[\"[object String]\"]=N[\"[object Symbol]\"]=N[\"[object Uint8Array]\"]=N[\"[object Uint8ClampedArray]\"]=N[\"[object Uint16Array]\"]=N[\"[object Uint32Array]\"]=!0,N[\"[object Error]\"]=N[E]=N[\"[object WeakMap]\"]=!1,Dr=function O(j,M,S,A,I,P){var z,T=1&M,C=2&M,L=4&M;if(S&&(z=I?S(j,A,I,P):S(j)),void 0!==z)return z;if(!m(j))return j;var B=p(j);if(B){if(z=h(j),!T)return u(j,z)}else{var R=l(j),D=R==E||\"[object GeneratorFunction]\"==R;if(g(j))return i(j,T);if(R==k||R==_||D&&!I){if(z=C||D?{}:v(j),!T)return C?c(j,o(z,j)):a(j,r(z,j))}else{if(!N[R])return I?j:{};z=d(j,R,T)}}P||(P=new t);var H=P.get(j);if(H)return H;P.set(j,z),w(j)?j.forEach((function(t){z.add(O(t,M,S,t,j,P))})):y(j)&&j.forEach((function(t,n){z.set(n,O(t,M,S,n,j,P))}));var V=B?void 0:(L?C?s:f:C?x:b)(j);return n(V||j,(function(t,n){V&&(t=j[n=t]),e(z,n,O(t,M,S,n,j,P))})),z},Dr}function fc(){if(Yr)return Vr;Yr=1;var t=cc();return Vr=function(n){return t(n,4)}}function sc(){if(Gr)return Fr;return Gr=1,Fr=function(t){return function(){return t}}}function lc(){if(Ur)return qr;Ur=1;var t=($r?Xr:($r=1,Xr=function(t){return function(n,e,r){for(var o=-1,i=Object(n),u=r(n),a=u.length;a--;){var c=u[t?a:++o];if(!1===e(i[c],c,i))break}return n}}))();return qr=t}function hc(){if(Zr)return Wr;Zr=1;var t=lc(),n=je();return Wr=function(e,r){return e&&t(e,r,n)}}function dc(){if(to)return Jr;to=1;var t=hc(),n=function(){if(Qr)return Kr;Qr=1;var t=Oe();return Kr=function(n,e){return function(r,o){if(null==r)return r;if(!t(r))return n(r,o);for(var i=r.length,u=e?i:-1,a=Object(r);(e?u--:++u<i)&&!1!==o(a[u],u,a););return r}}}(),e=n(t);return Jr=e}function vc(){if(eo)return no;return eo=1,no=function(t){return t}}function pc(){if(oo)return ro;oo=1;var t=vc();return ro=function(n){return\"function\"==typeof n?n:t}}function gc(){if(uo)return io;uo=1;var t=_n(),n=dc(),e=pc(),r=Sn();return io=function(o,i){return(r(o)?t:n)(o,e(i))}}function yc(){return co?ao:(co=1,ao=gc())}function mc(){if(yo)return go;yo=1;var t=bn(),n=ho?lo:(ho=1,lo=function(t){return this.__data__.set(t,\"__lodash_hash_undefined__\"),this}),e=po?vo:(po=1,vo=function(t){return this.__data__.has(t)});function r(n){var e=-1,r=null==n?0:n.length;for(this.__data__=new t;++e<r;)this.add(n[e])}return r.prototype.add=r.prototype.push=n,r.prototype.has=e,go=r}function wc(){if(xo)return bo;return xo=1,bo=function(t,n){return t.has(n)}}function bc(){if(Eo)return _o;Eo=1;var t=mc(),n=(wo||(wo=1,mo=function(t,n){for(var e=-1,r=null==t?0:t.length;++e<r;)if(n(t[e],e,t))return!0;return!1}),mo),e=wc();return _o=function(r,o,i,u,a,c){var f=1&i,s=r.length,l=o.length;if(s!=l&&!(f&&l>s))return!1;var h=c.get(r),d=c.get(o);if(h&&d)return h==o&&d==r;var v=-1,p=!0,g=2&i?new t:void 0;for(c.set(r,o),c.set(o,r);++v<s;){var y=r[v],m=o[v];if(u)var w=f?u(m,y,v,o,r,c):u(y,m,v,r,o,c);if(void 0!==w){if(w)continue;p=!1;break}if(g){if(!n(o,(function(t,n){if(!e(g,n)&&(y===t||a(y,t,i,u,c)))return g.push(n)}))){p=!1;break}}else if(y!==m&&!a(y,m,i,u,c)){p=!1;break}}return c.delete(r),c.delete(o),p},_o}function xc(){if(jo)return Oo;return jo=1,Oo=function(t){var n=-1,e=Array(t.size);return t.forEach((function(t){e[++n]=t})),e},Oo}function _c(){if(So)return Mo;So=1;var t=fn(),n=tc(),e=rn(),r=bc(),o=(No||(No=1,ko=function(t){var n=-1,e=Array(t.size);return t.forEach((function(t,r){e[++n]=[r,t]})),e}),ko),i=xc(),u=t?t.prototype:void 0,a=u?u.valueOf:void 0;return Mo=function(t,u,c,f,s,l,h){switch(c){case\"[object DataView]\":if(t.byteLength!=u.byteLength||t.byteOffset!=u.byteOffset)return!1;t=t.buffer,u=u.buffer;case\"[object ArrayBuffer]\":return!(t.byteLength!=u.byteLength||!l(new n(t),new n(u)));case\"[object Boolean]\":case\"[object Date]\":case\"[object Number]\":return e(+t,+u);case\"[object Error]\":return t.name==u.name&&t.message==u.message;case\"[object RegExp]\":case\"[object String]\":return t==u+\"\";case\"[object Map]\":var d=o;case\"[object Set]\":var v=1&f;if(d||(d=i),t.size!=u.size&&!v)return!1;var p=h.get(t);if(p)return p==u;f|=2,h.set(t,u);var g=r(d(t),d(u),f,s,l,h);return h.delete(t),g;case\"[object Symbol]\":if(a)return a.call(t)==a.call(u)}return!1}}function Ec(){if(zo)return Po;zo=1;var t=xn(),n=bc(),e=_c(),r=function(){if(Io)return Ao;Io=1;var t=Ka(),n=Object.prototype.hasOwnProperty;return Ao=function(e,r,o,i,u,a){var c=1&o,f=t(e),s=f.length;if(s!=t(r).length&&!c)return!1;for(var l=s;l--;){var h=f[l];if(!(c?h in r:n.call(r,h)))return!1}var d=a.get(e),v=a.get(r);if(d&&v)return d==r&&v==e;var p=!0;a.set(e,r),a.set(r,e);for(var g=c;++l<s;){var y=e[h=f[l]],m=r[h];if(i)var w=c?i(m,y,h,r,e,a):i(y,m,h,e,r,a);if(!(void 0===w?y===m||u(y,m,o,i,a):w)){p=!1;break}g||(g=\"constructor\"==h)}if(p&&!g){var b=e.constructor,x=r.constructor;b==x||!(\"constructor\"in e)||!(\"constructor\"in r)||\"function\"==typeof b&&b instanceof b&&\"function\"==typeof x&&x instanceof x||(p=!1)}return a.delete(e),a.delete(r),p}}(),o=Ja(),i=Sn(),u=Yn(),a=xe(),c=\"[object Arguments]\",f=\"[object Array]\",s=\"[object Object]\",l=Object.prototype.hasOwnProperty;return Po=function(h,d,v,p,g,y){var m=i(h),w=i(d),b=m?f:o(h),x=w?f:o(d),_=(b=b==c?s:b)==s,E=(x=x==c?s:x)==s,k=b==x;if(k&&u(h)){if(!u(d))return!1;m=!0,_=!1}if(k&&!_)return y||(y=new t),m||a(h)?n(h,d,v,p,g,y):e(h,d,b,v,p,g,y);if(!(1&v)){var N=_&&l.call(h,\"__wrapped__\"),O=E&&l.call(d,\"__wrapped__\");if(N||O){var j=N?h.value():h,M=O?d.value():d;return y||(y=new t),g(j,M,v,p,y)}}return!!k&&(y||(y=new t),r(h,d,v,p,g,y))}}function kc(){if(Co)return To;Co=1;var t=Ec(),n=jn();return To=function e(r,o,i,u,a){return r===o||(null==r||null==o||!n(r)&&!n(o)?r!=r&&o!=o:t(r,o,i,u,e,a))},To}function Nc(){if(Do)return Ro;Do=1;var t=ln();return Ro=function(n){return n==n&&!t(n)}}function Oc(){if(Fo)return Yo;return Fo=1,Yo=function(t,n){return function(e){return null!=e&&(e[t]===n&&(void 0!==n||t in Object(e)))}}}function jc(){if(Xo)return Go;Xo=1;var t=function(){if(Bo)return Lo;Bo=1;var t=xn(),n=kc();return Lo=function(e,r,o,i){var u=o.length,a=u,c=!i;if(null==e)return!a;for(e=Object(e);u--;){var f=o[u];if(c&&f[2]?f[1]!==e[f[0]]:!(f[0]in e))return!1}for(;++u<a;){var s=(f=o[u])[0],l=e[s],h=f[1];if(c&&f[2]){if(void 0===l&&!(s in e))return!1}else{var d=new t;if(i)var v=i(l,h,s,e,r,d);if(!(void 0===v?n(h,l,3,i,d):v))return!1}}return!0}}(),n=function(){if(Vo)return Ho;Vo=1;var t=Nc(),n=je();return Ho=function(e){for(var r=n(e),o=r.length;o--;){var i=r[o],u=e[i];r[o]=[i,u,t(u)]}return r}}(),e=Oc();return Go=function(r){var o=n(r);return 1==o.length&&o[0][2]?e(o[0][0],o[0][1]):function(n){return n===r||t(n,r,o)}}}function Mc(){if(qo)return $o;qo=1;var t=sn(),n=jn();return $o=function(e){return\"symbol\"==typeof e||n(e)&&\"[object Symbol]\"==t(e)}}function Sc(){if(Wo)return Uo;Wo=1;var t=Sn(),n=Mc(),e=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,r=/^\\w*$/;return Uo=function(o,i){if(t(o))return!1;var u=typeof o;return!(\"number\"!=u&&\"symbol\"!=u&&\"boolean\"!=u&&null!=o&&!n(o))||(r.test(o)||!e.test(o)||null!=i&&o in Object(i))}}function Ac(){if(Jo)return Qo;Jo=1;var t=function(){if(Ko)return Zo;Ko=1;var t=bn();function n(e,r){if(\"function\"!=typeof e||null!=r&&\"function\"!=typeof r)throw new TypeError(\"Expected a function\");var o=function(){var t=arguments,n=r?r.apply(this,t):t[0],i=o.cache;if(i.has(n))return i.get(n);var u=e.apply(this,t);return o.cache=i.set(n,u)||i,u};return o.cache=new(n.Cache||t),o}return n.Cache=t,Zo=n}();return Qo=function(n){var e=t(n,(function(t){return 500===r.size&&r.clear(),t})),r=e.cache;return e}}function Ic(){if(ri)return ei;return ri=1,ei=function(t,n){for(var e=-1,r=null==t?0:t.length,o=Array(r);++e<r;)o[e]=n(t[e],e,t);return o},ei}function Pc(){if(ai)return ui;ai=1;var t=function(){if(ii)return oi;ii=1;var t=fn(),n=Ic(),e=Sn(),r=Mc(),o=t?t.prototype:void 0,i=o?o.toString:void 0;return oi=function t(o){if(\"string\"==typeof o)return o;if(e(o))return n(o,t)+\"\";if(r(o))return i?i.call(o):\"\";var u=o+\"\";return\"0\"==u&&1/o==-1/0?\"-0\":u},oi}();return ui=function(n){return null==n?\"\":t(n)}}function zc(){if(fi)return ci;fi=1;var t=Sn(),n=Sc(),e=function(){if(ni)return ti;ni=1;var t=Ac(),n=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,e=/\\\\(\\\\)?/g,r=t((function(t){var r=[];return 46===t.charCodeAt(0)&&r.push(\"\"),t.replace(n,(function(t,n,o,i){r.push(o?i.replace(e,\"$1\"):n||t)})),r}));return ti=r}(),r=Pc();return ci=function(o,i){return t(o)?o:n(o,i)?[o]:e(r(o))}}function Tc(){if(li)return si;li=1;var t=Mc();return si=function(n){if(\"string\"==typeof n||t(n))return n;var e=n+\"\";return\"0\"==e&&1/n==-1/0?\"-0\":e}}function Cc(){if(di)return hi;di=1;var t=zc(),n=Tc();return hi=function(e,r){for(var o=0,i=(r=t(r,e)).length;null!=e&&o<i;)e=e[n(r[o++])];return o&&o==i?e:void 0}}function Lc(){if(wi)return mi;wi=1;var t=zc(),n=Mn(),e=Sn(),r=Fn(),o=Gn(),i=Tc();return mi=function(u,a,c){for(var f=-1,s=(a=t(a,u)).length,l=!1;++f<s;){var h=i(a[f]);if(!(l=null!=u&&c(u,h)))break;u=u[h]}return l||++f!=s?l:!!(s=null==u?0:u.length)&&o(s)&&r(h,s)&&(e(u)||n(u))}}function Bc(){if(xi)return bi;xi=1;var t=yi?gi:(yi=1,gi=function(t,n){return null!=t&&n in Object(t)}),n=Lc();return bi=function(e,r){return null!=e&&n(e,r,t)}}function Rc(){if(Ei)return _i;Ei=1;var t=kc(),n=function(){if(pi)return vi;pi=1;var t=Cc();return vi=function(n,e,r){var o=null==n?void 0:t(n,e);return void 0===o?r:o}}(),e=Bc(),r=Sc(),o=Nc(),i=Oc(),u=Tc();return _i=function(a,c){return r(a)&&o(c)?i(u(a),c):function(r){var o=n(r,a);return void 0===o&&o===c?e(r,a):t(c,o,3)}}}function Dc(){if(Ni)return ki;return Ni=1,ki=function(t){return function(n){return null==n?void 0:n[t]}}}function Hc(){if(Si)return Mi;Si=1;var t=Dc(),n=function(){if(ji)return Oi;ji=1;var t=Cc();return Oi=function(n){return function(e){return t(e,n)}}}(),e=Sc(),r=Tc();return Mi=function(o){return e(o)?t(r(o)):n(o)}}function Vc(){if(Ii)return Ai;Ii=1;var t=jc(),n=Rc(),e=vc(),r=Sn(),o=Hc();return Ai=function(i){return\"function\"==typeof i?i:null==i?e:\"object\"==typeof i?r(i)?n(i[0],i[1]):t(i):o(i)}}function Yc(){if(zi)return Pi;zi=1;var t=Ga(),n=function(){if(so)return fo;so=1;var t=dc();return fo=function(n,e){var r=[];return t(n,(function(t,n,o){e(t,n,o)&&r.push(t)})),r}}(),e=Vc(),r=Sn();return Pi=function(o,i){return(r(o)?t:n)(o,e(i,3))}}function Fc(){if(Bi)return Li;Bi=1;var t=function(){if(Ci)return Ti;Ci=1;var t=Object.prototype.hasOwnProperty;return Ti=function(n,e){return null!=n&&t.call(n,e)}}(),n=Lc();return Li=function(e,r){return null!=e&&n(e,r,t)}}function Gc(){if(Di)return Ri;Di=1;var t=Ne(),n=Ja(),e=Mn(),r=Sn(),o=Oe(),i=Yn(),u=Ee(),a=xe(),c=Object.prototype.hasOwnProperty;return Ri=function(f){if(null==f)return!0;if(o(f)&&(r(f)||\"string\"==typeof f||\"function\"==typeof f.splice||i(f)||a(f)||e(f)))return!f.length;var s=n(f);if(\"[object Map]\"==s||\"[object Set]\"==s)return!f.size;if(u(f))return!t(f).length;for(var l in f)if(c.call(f,l))return!1;return!0}}function Xc(){if(Vi)return Hi;return Vi=1,Hi=function(t){return void 0===t}}function $c(){if(Fi)return Yi;Fi=1;var t=dc(),n=Oe();return Yi=function(e,r){var o=-1,i=n(e)?Array(e.length):[];return t(e,(function(t,n,e){i[++o]=r(t,n,e)})),i}}function qc(){if(Xi)return Gi;Xi=1;var t=Ic(),n=Vc(),e=$c(),r=Sn();return Gi=function(o,i){return(r(o)?t:e)(o,n(i,3))}}function Uc(){if(Ki)return Zi;Ki=1;var t=(qi||(qi=1,$i=function(t,n,e,r){var o=-1,i=null==t?0:t.length;for(r&&i&&(e=t[++o]);++o<i;)e=n(e,t[o],o,t);return e}),$i),n=dc(),e=Vc(),r=Wi?Ui:(Wi=1,Ui=function(t,n,e,r,o){return o(t,(function(t,o,i){e=r?(r=!1,t):n(e,t,o,i)})),e}),o=Sn();return Zi=function(i,u,a){var c=o(i)?t:r,f=arguments.length<3;return c(i,e(u,4),a,f,n)},Zi}function Wc(){if(au)return uu;au=1;var t=function(){if(nu)return tu;nu=1;var t=Dc()(\"length\");return tu=t}(),n=function(){if(ru)return eu;ru=1;var t=RegExp(\"[\\\\u200d\\\\ud800-\\\\udfff\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff\\\\ufe0e\\\\ufe0f]\");return eu=function(n){return t.test(n)}}(),e=function(){if(iu)return ou;iu=1;var t=\"\\\\ud800-\\\\udfff\",n=\"[\"+t+\"]\",e=\"[\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe2f\\\\u20d0-\\\\u20ff]\",r=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",o=\"[^\"+t+\"]\",i=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",u=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",a=\"(?:\"+e+\"|\"+r+\")?\",c=\"[\\\\ufe0e\\\\ufe0f]?\",f=c+a+\"(?:\\\\u200d(?:\"+[o,i,u].join(\"|\")+\")\"+c+a+\")*\",s=\"(?:\"+[o+e+\"?\",e,i,u,n].join(\"|\")+\")\",l=RegExp(r+\"(?=\"+r+\")|\"+s+f,\"g\");return ou=function(t){for(var n=l.lastIndex=0;l.test(t);)++n;return n}}();return uu=function(r){return n(r)?e(r):t(r)}}function Zc(){if(fu)return cu;fu=1;var t=Ne(),n=Ja(),e=Oe(),r=function(){if(Ji)return Qi;Ji=1;var t=sn(),n=Sn(),e=jn();return Qi=function(r){return\"string\"==typeof r||!n(r)&&e(r)&&\"[object String]\"==t(r)}}(),o=Wc();return cu=function(i){if(null==i)return 0;if(e(i))return r(i)?o(i):i.length;var u=n(i);return\"[object Map]\"==u||\"[object Set]\"==u?i.size:t(i).length}}function Kc(){if(lu)return su;lu=1;var t=_n(),n=oc(),e=hc(),r=Vc(),o=Ua(),i=Sn(),u=Yn(),a=hn(),c=ln(),f=xe();return su=function(s,l,h){var d=i(s),v=d||u(s)||f(s);if(l=r(l,4),null==h){var p=s&&s.constructor;h=v?d?new p:[]:c(s)&&a(p)?n(o(s)):{}}return(v?t:e)(s,(function(t,n,e){return l(h,t,n,e)})),h}}function Qc(){if(pu)return vu;pu=1;var t=qa(),n=function(){if(du)return hu;du=1;var t=fn(),n=Mn(),e=Sn(),r=t?t.isConcatSpreadable:void 0;return hu=function(t){return e(t)||n(t)||!!(r&&t&&t[r])}}();return vu=function e(r,o,i,u,a){var c=-1,f=r.length;for(i||(i=n),a||(a=[]);++c<f;){var s=r[c];o>0&&i(s)?o>1?e(s,o-1,i,u,a):t(a,s):u||(a[a.length]=s)}return a},vu}function Jc(){if(wu)return mu;wu=1;var t=yu?gu:(yu=1,gu=function(t,n,e){switch(e.length){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}),n=Math.max;return mu=function(e,r,o){return r=n(void 0===r?e.length-1:r,0),function(){for(var i=arguments,u=-1,a=n(i.length-r,0),c=Array(a);++u<a;)c[u]=i[r+u];u=-1;for(var f=Array(r+1);++u<r;)f[u]=i[u];return f[r]=o(c),t(e,this,f)}},mu}function tf(){if(Nu)return ku;Nu=1;var t=function(){if(xu)return bu;xu=1;var t=sc(),n=En(),e=vc();return bu=n?function(e,r){return n(e,\"toString\",{configurable:!0,enumerable:!1,value:t(r),writable:!0})}:e}(),n=function(){if(Eu)return _u;Eu=1;var t=Date.now;return _u=function(n){var e=0,r=0;return function(){var o=t(),i=16-(o-r);if(r=o,i>0){if(++e>=800)return arguments[0]}else e=0;return n.apply(void 0,arguments)}},_u}(),e=n(t);return ku=e}function nf(){if(ju)return Ou;ju=1;var t=vc(),n=Jc(),e=tf();return Ou=function(r,o){return e(n(r,o,t),r+\"\")},Ou}function ef(){if(Su)return Mu;return Su=1,Mu=function(t,n,e,r){for(var o=t.length,i=e+(r?1:-1);r?i--:++i<o;)if(n(t[i],i,t))return i;return-1},Mu}function rf(){if(Cu)return Tu;Cu=1;var t=ef(),n=Iu?Au:(Iu=1,Au=function(t){return t!=t}),e=(zu||(zu=1,Pu=function(t,n,e){for(var r=e-1,o=t.length;++r<o;)if(t[r]===n)return r;return-1}),Pu);return Tu=function(r,o,i){return o==o?e(r,o,i):t(r,n,i)},Tu}function of(){if(Fu)return Yu;Fu=1;var t=Qa(),n=Vu?Hu:(Vu=1,Hu=function(){}),e=xc(),r=t&&1/e(new t([,-0]))[1]==1/0?function(n){return new t(n)}:n;return Yu=r}function uf(){if(Xu)return Gu;Xu=1;var t=mc(),n=function(){if(Bu)return Lu;Bu=1;var t=rf();return Lu=function(n,e){return!(null==n||!n.length)&&t(n,e,0)>-1},Lu}(),e=(Du||(Du=1,Ru=function(t,n,e){for(var r=-1,o=null==t?0:t.length;++r<o;)if(e(n,t[r]))return!0;return!1}),Ru),r=wc(),o=of(),i=xc();return Gu=function(u,a,c){var f=-1,s=n,l=u.length,h=!0,d=[],v=d;if(c)h=!1,s=e;else if(l>=200){var p=a?null:o(u);if(p)return i(p);h=!1,s=r,v=new t}else v=a?[]:d;t:for(;++f<l;){var g=u[f],y=a?a(g):g;if(g=c||0!==g?g:0,h&&y==y){for(var m=v.length;m--;)if(v[m]===y)continue t;a&&v.push(y),d.push(g)}else s(v,y,c)||(v!==d&&v.push(y),d.push(g))}return d},Gu}function af(){if(qu)return $u;qu=1;var t=Oe(),n=jn();return $u=function(e){return n(e)&&t(e)}}function cf(){if(Wu)return Uu;Wu=1;var t=Qc(),n=nf(),e=uf(),r=af(),o=n((function(n){return e(t(n,1,r,!0))}));return Uu=o}function ff(){if(Ju)return Qu;Ju=1;var t=function(){if(Ku)return Zu;Ku=1;var t=Ic();return Zu=function(n,e){return t(e,(function(t){return n[t]}))}}(),n=je();return Qu=function(e){return null==e?[]:t(e,n(e))}}function sf(){if(na)return ta;var t;na=1;try{t={clone:fc(),constant:sc(),each:yc(),filter:Yc(),has:Fc(),isArray:Sn(),isEmpty:Gc(),isFunction:hn(),isUndefined:Xc(),keys:je(),map:qc(),reduce:Uc(),size:Zc(),transform:Kc(),union:cf(),values:ff()}}catch(t){}return t||(t=window._),ta=t}function lf(){if(ra)return ea;ra=1;var t=sf();ea=o;var n=\"\\0\",e=\"\\0\",r=\"\u0001\";function o(n){this._isDirected=!t.has(n,\"directed\")||n.directed,this._isMultigraph=!!t.has(n,\"multigraph\")&&n.multigraph,this._isCompound=!!t.has(n,\"compound\")&&n.compound,this._label=void 0,this._defaultNodeLabelFn=t.constant(void 0),this._defaultEdgeLabelFn=t.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[e]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function i(t,n){t[n]?t[n]++:t[n]=1}function u(t,n){--t[n]||delete t[n]}function a(e,o,i,u){var a=\"\"+o,c=\"\"+i;if(!e&&a>c){var f=a;a=c,c=f}return a+r+c+r+(t.isUndefined(u)?n:u)}function c(t,n){return a(t,n.v,n.w,n.name)}return o.prototype._nodeCount=0,o.prototype._edgeCount=0,o.prototype.isDirected=function(){return this._isDirected},o.prototype.isMultigraph=function(){return this._isMultigraph},o.prototype.isCompound=function(){return this._isCompound},o.prototype.setGraph=function(t){return this._label=t,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(n){return t.isFunction(n)||(n=t.constant(n)),this._defaultNodeLabelFn=n,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return t.keys(this._nodes)},o.prototype.sources=function(){var n=this;return t.filter(this.nodes(),(function(e){return t.isEmpty(n._in[e])}))},o.prototype.sinks=function(){var n=this;return t.filter(this.nodes(),(function(e){return t.isEmpty(n._out[e])}))},o.prototype.setNodes=function(n,e){var r=arguments,o=this;return t.each(n,(function(t){r.length>1?o.setNode(t,e):o.setNode(t)})),this},o.prototype.setNode=function(n,r){return t.has(this._nodes,n)?(arguments.length>1&&(this._nodes[n]=r),this):(this._nodes[n]=arguments.length>1?r:this._defaultNodeLabelFn(n),this._isCompound&&(this._parent[n]=e,this._children[n]={},this._children[e][n]=!0),this._in[n]={},this._preds[n]={},this._out[n]={},this._sucs[n]={},++this._nodeCount,this)},o.prototype.node=function(t){return this._nodes[t]},o.prototype.hasNode=function(n){return t.has(this._nodes,n)},o.prototype.removeNode=function(n){var e=this;if(t.has(this._nodes,n)){var r=function(t){e.removeEdge(e._edgeObjs[t])};delete this._nodes[n],this._isCompound&&(this._removeFromParentsChildList(n),delete this._parent[n],t.each(this.children(n),(function(t){e.setParent(t)})),delete this._children[n]),t.each(t.keys(this._in[n]),r),delete this._in[n],delete this._preds[n],t.each(t.keys(this._out[n]),r),delete this._out[n],delete this._sucs[n],--this._nodeCount}return this},o.prototype.setParent=function(n,r){if(!this._isCompound)throw new Error(\"Cannot set parent in a non-compound graph\");if(t.isUndefined(r))r=e;else{for(var o=r+=\"\";!t.isUndefined(o);o=this.parent(o))if(o===n)throw new Error(\"Setting \"+r+\" as parent of \"+n+\" would create a cycle\");this.setNode(r)}return this.setNode(n),this._removeFromParentsChildList(n),this._parent[n]=r,this._children[r][n]=!0,this},o.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},o.prototype.parent=function(t){if(this._isCompound){var n=this._parent[t];if(n!==e)return n}},o.prototype.children=function(n){if(t.isUndefined(n)&&(n=e),this._isCompound){var r=this._children[n];if(r)return t.keys(r)}else{if(n===e)return this.nodes();if(this.hasNode(n))return[]}},o.prototype.predecessors=function(n){var e=this._preds[n];if(e)return t.keys(e)},o.prototype.successors=function(n){var e=this._sucs[n];if(e)return t.keys(e)},o.prototype.neighbors=function(n){var e=this.predecessors(n);if(e)return t.union(e,this.successors(n))},o.prototype.isLeaf=function(t){return 0===(this.isDirected()?this.successors(t):this.neighbors(t)).length},o.prototype.filterNodes=function(n){var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph());var r=this;t.each(this._nodes,(function(t,r){n(r)&&e.setNode(r,t)})),t.each(this._edgeObjs,(function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,r.edge(t))}));var o={};function i(t){var n=r.parent(t);return void 0===n||e.hasNode(n)?(o[t]=n,n):n in o?o[n]:i(n)}return this._isCompound&&t.each(e.nodes(),(function(t){e.setParent(t,i(t))})),e},o.prototype.setDefaultEdgeLabel=function(n){return t.isFunction(n)||(n=t.constant(n)),this._defaultEdgeLabelFn=n,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return t.values(this._edgeObjs)},o.prototype.setPath=function(n,e){var r=this,o=arguments;return t.reduce(n,(function(t,n){return o.length>1?r.setEdge(t,n,e):r.setEdge(t,n),n})),this},o.prototype.setEdge=function(){var n,e,r,o,u=!1,c=arguments[0];\"object\"==typeof c&&null!==c&&\"v\"in c?(n=c.v,e=c.w,r=c.name,2===arguments.length&&(o=arguments[1],u=!0)):(n=c,e=arguments[1],r=arguments[3],arguments.length>2&&(o=arguments[2],u=!0)),n=\"\"+n,e=\"\"+e,t.isUndefined(r)||(r=\"\"+r);var f=a(this._isDirected,n,e,r);if(t.has(this._edgeLabels,f))return u&&(this._edgeLabels[f]=o),this;if(!t.isUndefined(r)&&!this._isMultigraph)throw new Error(\"Cannot set a named edge when isMultigraph = false\");this.setNode(n),this.setNode(e),this._edgeLabels[f]=u?o:this._defaultEdgeLabelFn(n,e,r);var s=function(t,n,e,r){var o=\"\"+n,i=\"\"+e;if(!t&&o>i){var u=o;o=i,i=u}var a={v:o,w:i};r&&(a.name=r);return a}(this._isDirected,n,e,r);return n=s.v,e=s.w,Object.freeze(s),this._edgeObjs[f]=s,i(this._preds[e],n),i(this._sucs[n],e),this._in[e][f]=s,this._out[n][f]=s,this._edgeCount++,this},o.prototype.edge=function(t,n,e){var r=1===arguments.length?c(this._isDirected,arguments[0]):a(this._isDirected,t,n,e);return this._edgeLabels[r]},o.prototype.hasEdge=function(n,e,r){var o=1===arguments.length?c(this._isDirected,arguments[0]):a(this._isDirected,n,e,r);return t.has(this._edgeLabels,o)},o.prototype.removeEdge=function(t,n,e){var r=1===arguments.length?c(this._isDirected,arguments[0]):a(this._isDirected,t,n,e),o=this._edgeObjs[r];return o&&(t=o.v,n=o.w,delete this._edgeLabels[r],delete this._edgeObjs[r],u(this._preds[n],t),u(this._sucs[t],n),delete this._in[n][r],delete this._out[t][r],this._edgeCount--),this},o.prototype.inEdges=function(n,e){var r=this._in[n];if(r){var o=t.values(r);return e?t.filter(o,(function(t){return t.v===e})):o}},o.prototype.outEdges=function(n,e){var r=this._out[n];if(r){var o=t.values(r);return e?t.filter(o,(function(t){return t.w===e})):o}},o.prototype.nodeEdges=function(t,n){var e=this.inEdges(t,n);if(e)return e.concat(this.outEdges(t,n))},ea}function hf(){if(fa)return ca;fa=1;var t=sf(),n=lf();function e(n){return t.map(n.nodes(),(function(e){var r=n.node(e),o=n.parent(e),i={v:e};return t.isUndefined(r)||(i.value=r),t.isUndefined(o)||(i.parent=o),i}))}function r(n){return t.map(n.edges(),(function(e){var r=n.edge(e),o={v:e.v,w:e.w};return t.isUndefined(e.name)||(o.name=e.name),t.isUndefined(r)||(o.value=r),o}))}return ca={write:function(n){var o={options:{directed:n.isDirected(),multigraph:n.isMultigraph(),compound:n.isCompound()},nodes:e(n),edges:r(n)};t.isUndefined(n.graph())||(o.value=t.clone(n.graph()));return o},read:function(e){var r=new n(e.options).setGraph(e.value);return t.each(e.nodes,(function(t){r.setNode(t.v,t.value),t.parent&&r.setParent(t.v,t.parent)})),t.each(e.edges,(function(t){r.setEdge({v:t.v,w:t.w,name:t.name},t.value)})),r}}}function df(){if(la)return sa;la=1;var t=sf();return sa=function(n){var e,r={},o=[];function i(o){t.has(r,o)||(r[o]=!0,e.push(o),t.each(n.successors(o),i),t.each(n.predecessors(o),i))}return t.each(n.nodes(),(function(t){e=[],i(t),e.length&&o.push(e)})),o},sa}function vf(){if(da)return ha;da=1;var t=sf();function n(){this._arr=[],this._keyIndices={}}return ha=n,n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map((function(t){return t.key}))},n.prototype.has=function(n){return t.has(this._keyIndices,n)},n.prototype.priority=function(t){var n=this._keyIndices[t];if(void 0!==n)return this._arr[n].priority},n.prototype.min=function(){if(0===this.size())throw new Error(\"Queue underflow\");return this._arr[0].key},n.prototype.add=function(n,e){var r=this._keyIndices;if(n=String(n),!t.has(r,n)){var o=this._arr,i=o.length;return r[n]=i,o.push({key:n,priority:e}),this._decrease(i),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},n.prototype.decrease=function(t,n){var e=this._keyIndices[t];if(n>this._arr[e].priority)throw new Error(\"New priority is greater than current priority. Key: \"+t+\" Old: \"+this._arr[e].priority+\" New: \"+n);this._arr[e].priority=n,this._decrease(e)},n.prototype._heapify=function(t){var n=this._arr,e=2*t,r=e+1,o=t;e<n.length&&(o=n[e].priority<n[o].priority?e:o,r<n.length&&(o=n[r].priority<n[o].priority?r:o),o!==t&&(this._swap(t,o),this._heapify(o)))},n.prototype._decrease=function(t){for(var n,e=this._arr,r=e[t].priority;0!==t&&!(e[n=t>>1].priority<r);)this._swap(t,n),t=n},n.prototype._swap=function(t,n){var e=this._arr,r=this._keyIndices,o=e[t],i=e[n];e[t]=i,e[n]=o,r[i.key]=t,r[o.key]=n},ha}function pf(){if(pa)return va;pa=1;var t=sf(),n=vf();va=function(t,r,o,i){return function(t,e,r,o){var i,u,a={},c=new n,f=function(t){var n=t.v!==i?t.v:t.w,e=a[n],o=r(t),f=u.distance+o;if(o<0)throw new Error(\"dijkstra does not allow negative edge weights. Bad edge: \"+t+\" Weight: \"+o);f<e.distance&&(e.distance=f,e.predecessor=i,c.decrease(n,f))};t.nodes().forEach((function(t){var n=t===e?0:Number.POSITIVE_INFINITY;a[t]={distance:n},c.add(t,n)}));for(;c.size()>0&&(i=c.removeMin(),(u=a[i]).distance!==Number.POSITIVE_INFINITY);)o(i).forEach(f);return a}(t,String(r),o||e,i||function(n){return t.outEdges(n)})};var e=t.constant(1);return va}function gf(){if(ya)return ga;ya=1;var t=pf(),n=sf();return ga=function(e,r,o){return n.transform(e.nodes(),(function(n,i){n[i]=t(e,i,r,o)}),{})}}function yf(){if(wa)return ma;wa=1;var t=sf();return ma=function(n){var e=0,r=[],o={},i=[];function u(a){var c=o[a]={onStack:!0,lowlink:e,index:e++};if(r.push(a),n.successors(a).forEach((function(n){t.has(o,n)?o[n].onStack&&(c.lowlink=Math.min(c.lowlink,o[n].index)):(u(n),c.lowlink=Math.min(c.lowlink,o[n].lowlink))})),c.lowlink===c.index){var f,s=[];do{f=r.pop(),o[f].onStack=!1,s.push(f)}while(a!==f);i.push(s)}}return n.nodes().forEach((function(n){t.has(o,n)||u(n)})),i},ma}function mf(){if(xa)return ba;xa=1;var t=sf(),n=yf();return ba=function(e){return t.filter(n(e),(function(t){return t.length>1||1===t.length&&e.hasEdge(t[0],t[0])}))}}function wf(){if(Ea)return _a;Ea=1;var t=sf();_a=function(t,e,r){return function(t,n,e){var r={},o=t.nodes();return o.forEach((function(t){r[t]={},r[t][t]={distance:0},o.forEach((function(n){t!==n&&(r[t][n]={distance:Number.POSITIVE_INFINITY})})),e(t).forEach((function(e){var o=e.v===t?e.w:e.v,i=n(e);r[t][o]={distance:i,predecessor:t}}))})),o.forEach((function(t){var n=r[t];o.forEach((function(e){var i=r[e];o.forEach((function(e){var r=i[t],o=n[e],u=i[e],a=r.distance+o.distance;a<u.distance&&(u.distance=a,u.predecessor=o.predecessor)}))}))})),r}(t,e||n,r||function(n){return t.outEdges(n)})};var n=t.constant(1);return _a}function bf(){if(Na)return ka;Na=1;var t=sf();function n(n){var r={},o={},i=[];if(t.each(n.sinks(),(function u(a){if(t.has(o,a))throw new e;t.has(r,a)||(o[a]=!0,r[a]=!0,t.each(n.predecessors(a),u),delete o[a],i.push(a))})),t.size(r)!==n.nodeCount())throw new e;return i}function e(){}return ka=n,n.CycleException=e,e.prototype=new Error,ka}function xf(){if(ja)return Oa;ja=1;var t=bf();return Oa=function(n){try{t(n)}catch(n){if(n instanceof t.CycleException)return!1;throw n}return!0}}function _f(){if(Sa)return Ma;Sa=1;var t=sf();function n(e,r,o,i,u,a){t.has(i,r)||(i[r]=!0,o||a.push(r),t.each(u(r),(function(t){n(e,t,o,i,u,a)})),o&&a.push(r))}return Ma=function(e,r,o){t.isArray(r)||(r=[r]);var i=(e.isDirected()?e.successors:e.neighbors).bind(e),u=[],a={};return t.each(r,(function(t){if(!e.hasNode(t))throw new Error(\"Graph does not have node: \"+t);n(e,t,\"post\"===o,a,i,u)})),u},Ma}function Ef(){if(Ia)return Aa;Ia=1;var t=_f();return Aa=function(n,e){return t(n,e,\"post\")}}function kf(){if(za)return Pa;za=1;var t=_f();return Pa=function(n,e){return t(n,e,\"pre\")}}function Nf(){if(Ca)return Ta;Ca=1;var t=sf(),n=lf(),e=vf();return Ta=function(r,o){var i,u=new n,a={},c=new e;function f(t){var n=t.v===i?t.w:t.v,e=c.priority(n);if(void 0!==e){var r=o(t);r<e&&(a[n]=i,c.decrease(n,r))}}if(0===r.nodeCount())return u;t.each(r.nodes(),(function(t){c.add(t,Number.POSITIVE_INFINITY),u.setNode(t)})),c.decrease(r.nodes()[0],0);var s=!1;for(;c.size()>0;){if(i=c.removeMin(),t.has(a,i))u.setEdge(i,a[i]);else{if(s)throw new Error(\"Input graph is not connected: \"+r);s=!0}r.nodeEdges(i).forEach(f)}return u},Ta}Va.exports;try{Ha=function(){if(Da)return Ra;Da=1;var t=aa?ua:(aa=1,ua={Graph:lf(),version:ia?oa:(ia=1,oa=\"2.1.8\")});return Ra={Graph:t.Graph,json:hf(),alg:Ba?La:(Ba=1,La={components:df(),dijkstra:pf(),dijkstraAll:gf(),findCycles:mf(),floydWarshall:wf(),isAcyclic:xf(),postorder:Ef(),preorder:kf(),prim:Nf(),tarjan:yf(),topsort:bf()}),version:t.version}}()}catch(t){}Ha||(Ha=window.graphlib);var Of,jf,Mf,Sf,Af,If,Pf,zf,Tf,Cf,Lf,Bf,Rf,Df,Hf,Vf,Yf,Ff,Gf,Xf,$f,qf,Uf,Wf,Zf,Kf,Qf,Jf,ts,ns,es,rs,os,is,us,as,cs,fs,ss,ls,hs,ds,vs,ps,gs,ys,ms,ws,bs,xs,_s,Es,ks,Ns,Os,js,Ms,Ss,As,Is,Ps,zs,Ts,Cs,Ls,Bs,Rs,Ds,Hs,Vs,Ys,Fs,Gs,Xs,$s,qs,Us,Ws,Zs,Ks,Qs,Js,tl,nl,el,rl,ol,il,ul,al,cl,fl,sl,ll=Ha;function hl(){if(Sf)return Mf;Sf=1;var t=rn(),n=Oe(),e=Fn(),r=ln();return Mf=function(o,i,u){if(!r(u))return!1;var a=typeof i;return!!(\"number\"==a?n(u)&&e(i,u.length):\"string\"==a&&i in u)&&t(u[i],o)}}function dl(){if(Bf)return Lf;Bf=1;var t=function(){if(Cf)return Tf;Cf=1;var t=/\\s/;return Tf=function(n){for(var e=n.length;e--&&t.test(n.charAt(e)););return e}}(),n=/^\\s+/;return Lf=function(e){return e?e.slice(0,t(e)+1).replace(n,\"\"):e}}function vl(){if(Vf)return Hf;Vf=1;var t=function(){if(Df)return Rf;Df=1;var t=dl(),n=ln(),e=Mc(),r=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,i=/^0o[0-7]+$/i,u=parseInt;return Rf=function(a){if(\"number\"==typeof a)return a;if(e(a))return NaN;if(n(a)){var c=\"function\"==typeof a.valueOf?a.valueOf():a;a=n(c)?c+\"\":c}if(\"string\"!=typeof a)return 0===a?a:+a;a=t(a);var f=o.test(a);return f||i.test(a)?u(a.slice(2),f?2:8):r.test(a)?NaN:+a}}(),n=1/0;return Hf=function(e){return e?(e=t(e))===n||e===-1/0?17976931348623157e292*(e<0?-1:1):e==e?e:0:0===e?e:0}}function pl(){if(Xf)return Gf;Xf=1;var t=ef(),n=Vc(),e=function(){if(Ff)return Yf;Ff=1;var t=vl();return Yf=function(n){var e=t(n),r=e%1;return e==e?r?e-r:e:0}}(),r=Math.max;return Gf=function(o,i,u){var a=null==o?0:o.length;if(!a)return-1;var c=null==u?0:e(u);return c<0&&(c=r(a+c,0)),t(o,n(i,3),c)},Gf}function gl(){if(Wf)return Uf;Wf=1;var t=Qc();return Uf=function(n){return(null==n?0:n.length)?t(n,1):[]},Uf}function yl(){if(rs)return es;rs=1;var t=Mc();return es=function(n,e,r){for(var o=-1,i=n.length;++o<i;){var u=n[o],a=e(u);if(null!=a&&(void 0===c?a==a&&!t(a):r(a,c)))var c=a,f=u}return f},es}function ml(){if(fs)return cs;fs=1;var t=kn(),n=rn();return cs=function(e,r,o){(void 0!==o&&!n(e[r],o)||void 0===o&&!(r in e))&&t(e,r,o)}}function wl(){if(ds)return hs;return ds=1,hs=function(t,n){if((\"constructor\"!==n||\"function\"!=typeof t[n])&&\"__proto__\"!=n)return t[n]}}function bl(){if(ys)return gs;ys=1;var t=ml(),n=Ya(),e=ec(),r=Fa(),o=ic(),i=Mn(),u=Sn(),a=af(),c=Yn(),f=hn(),s=ln(),l=function(){if(ls)return ss;ls=1;var t=sn(),n=Ua(),e=jn(),r=Function.prototype,o=Object.prototype,i=r.toString,u=o.hasOwnProperty,a=i.call(Object);return ss=function(r){if(!e(r)||\"[object Object]\"!=t(r))return!1;var o=n(r);if(null===o)return!0;var c=u.call(o,\"constructor\")&&o.constructor;return\"function\"==typeof c&&c instanceof c&&i.call(c)==a}}(),h=xe(),d=wl(),v=function(){if(ps)return vs;ps=1;var t=On(),n=Se();return vs=function(e){return t(e,n(e))}}();return gs=function(p,g,y,m,w,b,x){var _=d(p,y),E=d(g,y),k=x.get(E);if(k)t(p,y,k);else{var N=b?b(_,E,y+\"\",p,g,x):void 0,O=void 0===N;if(O){var j=u(E),M=!j&&c(E),S=!j&&!M&&h(E);N=E,j||M||S?u(_)?N=_:a(_)?N=r(_):M?(O=!1,N=n(E,!0)):S?(O=!1,N=e(E,!0)):N=[]:l(E)||i(E)?(N=_,i(_)?N=v(_):s(_)&&!f(_)||(N=o(E))):O=!1}O&&(x.set(E,N),w(N,E,m,b,x),x.delete(E)),t(p,y,N)}}}function xl(){if(Ns)return ks;return Ns=1,ks=function(t,n){return t<n}}function _l(){if(Cs)return Ts;Cs=1;var t=Cc(),n=function(){if(zs)return Ps;zs=1;var t=Nn(),n=zc(),e=Fn(),r=ln(),o=Tc();return Ps=function(i,u,a,c){if(!r(i))return i;for(var f=-1,s=(u=n(u,i)).length,l=s-1,h=i;null!=h&&++f<s;){var d=o(u[f]),v=a;if(\"__proto__\"===d||\"constructor\"===d||\"prototype\"===d)return i;if(f!=l){var p=h[d];void 0===(v=c?c(p,d,h):void 0)&&(v=r(p)?p:e(u[f+1])?[]:{})}t(h,d,v),h=h[d]}return i}}(),e=zc();return Ts=function(r,o,i){for(var u=-1,a=o.length,c={};++u<a;){var f=o[u],s=t(r,f);i(s,f)&&n(c,e(f,r),s)}return c}}function El(){if(Xs)return Gs;Xs=1;var t=function(){if(Fs)return Ys;Fs=1;var t=Math.ceil,n=Math.max;return Ys=function(e,r,o,i){for(var u=-1,a=n(t((r-e)/(o||1)),0),c=Array(a);a--;)c[i?a:++u]=e,e+=o;return c},Ys}(),n=hl(),e=vl();return Gs=function(r){return function(o,i,u){return u&&\"number\"!=typeof u&&n(o,i,u)&&(i=u=void 0),o=e(o),void 0===i?(i=o,o=0):i=e(i),u=void 0===u?o<i?1:-1:e(u),t(o,i,u,r)}},Gs}function kl(){if(Js)return Qs;Js=1;var t=function(){if(Ks)return Zs;Ks=1;var t=Mc();return Zs=function(n,e){if(n!==e){var r=void 0!==n,o=null===n,i=n==n,u=t(n),a=void 0!==e,c=null===e,f=e==e,s=t(e);if(!c&&!s&&!u&&n>e||u&&a&&f&&!c&&!s||o&&a&&f||!r&&f||!i)return 1;if(!o&&!u&&!s&&n<e||s&&r&&i&&!o&&!u||c&&r&&i||!a&&i||!f)return-1}return 0}}();return Qs=function(n,e,r){for(var o=-1,i=n.criteria,u=e.criteria,a=i.length,c=r.length;++o<a;){var f=t(i[o],u[o]);if(f)return o>=c?f:f*(\"desc\"==r[o]?-1:1)}return n.index-e.index}}function Nl(){if(nl)return tl;nl=1;var t=Ic(),n=Cc(),e=Vc(),r=$c(),o=(Ws||(Ws=1,Us=function(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].value;return t}),Us),i=Xn(),u=kl(),a=vc(),c=Sn();return tl=function(f,s,l){s=s.length?t(s,(function(t){return c(t)?function(e){return n(e,1===t.length?t[0]:t)}:t})):[a];var h=-1;s=t(s,i(e));var d=r(f,(function(n,e,r){return{criteria:t(s,(function(t){return t(n)})),index:++h,value:n}}));return o(d,(function(t,n){return u(t,n,l)}))}}try{sl={cloneDeep:function(){if(jf)return Of;jf=1;var t=cc();return Of=function(n){return t(n,5)}}(),constant:sc(),defaults:function(){if(If)return Af;If=1;var t=nf(),n=rn(),e=hl(),r=Se(),o=Object.prototype,i=o.hasOwnProperty,u=t((function(t,u){t=Object(t);var a=-1,c=u.length,f=c>2?u[2]:void 0;for(f&&e(u[0],u[1],f)&&(c=1);++a<c;)for(var s=u[a],l=r(s),h=-1,d=l.length;++h<d;){var v=l[h],p=t[v];(void 0===p||n(p,o[v])&&!i.call(t,v))&&(t[v]=s[v])}return t}));return Af=u}(),each:yc(),filter:Yc(),find:function(){if(qf)return $f;qf=1;var t=function(){if(zf)return Pf;zf=1;var t=Vc(),n=Oe(),e=je();return Pf=function(r){return function(o,i,u){var a=Object(o);if(!n(o)){var c=t(i,3);o=e(o),i=function(t){return c(a[t],t,a)}}var f=r(o,i,u);return f>-1?a[c?o[f]:f]:void 0}}}(),n=t(pl());return $f=n}(),flatten:gl(),forEach:gc(),forIn:function(){if(Kf)return Zf;Kf=1;var t=lc(),n=pc(),e=Se();return Zf=function(r,o){return null==r?r:t(r,n(o),e)}}(),has:Fc(),isUndefined:Xc(),last:(Jf||(Jf=1,Qf=function(t){var n=null==t?0:t.length;return n?t[n-1]:void 0}),Qf),map:qc(),mapValues:function(){if(ns)return ts;ns=1;var t=kn(),n=hc(),e=Vc();return ts=function(r,o){var i={};return o=e(o,3),n(r,(function(n,e,r){t(i,e,o(n,e,r))})),i}}(),max:function(){if(as)return us;as=1;var t=yl(),n=is?os:(is=1,os=function(t,n){return t>n}),e=vc();return us=function(r){return r&&r.length?t(r,e,n):void 0},us}(),merge:function(){if(Es)return _s;Es=1;var t=function(){if(ws)return ms;ws=1;var t=xn(),n=ml(),e=lc(),r=bl(),o=ln(),i=Se(),u=wl();return ms=function a(c,f,s,l,h){c!==f&&e(f,(function(e,i){if(h||(h=new t),o(e))r(c,f,i,s,a,l,h);else{var d=l?l(u(c,i),e,i+\"\",c,f,h):void 0;void 0===d&&(d=e),n(c,i,d)}}),i)},ms}(),n=function(){if(xs)return bs;xs=1;var t=nf(),n=hl();return bs=function(e){return t((function(t,r){var o=-1,i=r.length,u=i>1?r[i-1]:void 0,a=i>2?r[2]:void 0;for(u=e.length>3&&\"function\"==typeof u?(i--,u):void 0,a&&n(r[0],r[1],a)&&(u=i<3?void 0:u,i=1),t=Object(t);++o<i;){var c=r[o];c&&e(t,c,o,u)}return t}))}}()((function(n,e,r){t(n,e,r)}));return _s=n}(),min:function(){if(js)return Os;js=1;var t=yl(),n=xl(),e=vc();return Os=function(r){return r&&r.length?t(r,e,n):void 0},Os}(),minBy:function(){if(Ss)return Ms;Ss=1;var t=yl(),n=Vc(),e=xl();return Ms=function(r,o){return r&&r.length?t(r,n(o,2),e):void 0},Ms}(),now:function(){if(Is)return As;Is=1;var t=cn();return As=function(){return t.Date.now()}}(),pick:function(){if(Vs)return Hs;Vs=1;var t=function(){if(Bs)return Ls;Bs=1;var t=_l(),n=Bc();return Ls=function(e,r){return t(e,r,(function(t,r){return n(e,r)}))}}(),n=function(){if(Ds)return Rs;Ds=1;var t=gl(),n=Jc(),e=tf();return Rs=function(r){return e(n(r,void 0,t),r+\"\")}}(),e=n((function(n,e){return null==n?{}:t(n,e)}));return Hs=e}(),range:function(){if(qs)return $s;qs=1;var t=El()();return $s=t}(),reduce:Uc(),sortBy:function(){if(rl)return el;rl=1;var t=Qc(),n=Nl(),e=nf(),r=hl(),o=e((function(e,o){if(null==e)return[];var i=o.length;return i>1&&r(e,o[0],o[1])?o=[]:i>2&&r(o[0],o[1],o[2])&&(o=[o[0]]),n(e,t(o,1),[])}));return el=o}(),uniqueId:function(){if(il)return ol;il=1;var t=Pc(),n=0;return ol=function(e){var r=++n;return t(e)+r},ol}(),values:ff(),zipObject:function(){if(fl)return cl;fl=1;var t=Nn(),n=(al||(al=1,ul=function(t,n,e){for(var r=-1,o=t.length,i=n.length,u={};++r<o;){var a=r<i?n[r]:void 0;e(u,t[r],a)}return u}),ul);return cl=function(e,r){return n(e||[],r||[],t)},cl}()}}catch(t){}sl||(sl=window._);var Ol=sl,jl=Ml;function Ml(){var t={};t._next=t._prev=t,this._sentinel=t}function Sl(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function Al(t,n){if(\"_next\"!==t&&\"_prev\"!==t)return n}Ml.prototype.dequeue=function(){var t=this._sentinel,n=t._prev;if(n!==t)return Sl(n),n},Ml.prototype.enqueue=function(t){var n=this._sentinel;t._prev&&t._next&&Sl(t),t._next=n._next,n._next._prev=t,n._next=t,t._prev=n},Ml.prototype.toString=function(){for(var t=[],n=this._sentinel,e=n._prev;e!==n;)t.push(JSON.stringify(e,Al)),e=e._prev;return\"[\"+t.join(\", \")+\"]\"};var Il=Ol,Pl=ll.Graph,zl=jl,Tl=function(t,n){if(t.nodeCount()<=1)return[];var e=function(t,n){var e=new Pl,r=0,o=0;Il.forEach(t.nodes(),(function(t){e.setNode(t,{v:t,in:0,out:0})})),Il.forEach(t.edges(),(function(t){var i=e.edge(t.v,t.w)||0,u=n(t),a=i+u;e.setEdge(t.v,t.w,a),o=Math.max(o,e.node(t.v).out+=u),r=Math.max(r,e.node(t.w).in+=u)}));var i=Il.range(o+r+3).map((function(){return new zl})),u=r+1;return Il.forEach(e.nodes(),(function(t){Bl(i,u,e.node(t))})),{graph:e,buckets:i,zeroIdx:u}}(t,n||Cl),r=function(t,n,e){var r,o=[],i=n[n.length-1],u=n[0];for(;t.nodeCount();){for(;r=u.dequeue();)Ll(t,n,e,r);for(;r=i.dequeue();)Ll(t,n,e,r);if(t.nodeCount())for(var a=n.length-2;a>0;--a)if(r=n[a].dequeue()){o=o.concat(Ll(t,n,e,r,!0));break}}return o}(e.graph,e.buckets,e.zeroIdx);return Il.flatten(Il.map(r,(function(n){return t.outEdges(n.v,n.w)})),!0)},Cl=Il.constant(1);function Ll(t,n,e,r,o){var i=o?[]:void 0;return Il.forEach(t.inEdges(r.v),(function(r){var u=t.edge(r),a=t.node(r.v);o&&i.push({v:r.v,w:r.w}),a.out-=u,Bl(n,e,a)})),Il.forEach(t.outEdges(r.v),(function(r){var o=t.edge(r),i=r.w,u=t.node(i);u.in-=o,Bl(n,e,u)})),t.removeNode(r.v),i}function Bl(t,n,e){e.out?e.in?t[e.out-e.in+n].enqueue(e):t[t.length-1].enqueue(e):t[0].enqueue(e)}var Rl=Ol,Dl=Tl,Hl={run:function(t){var n=\"greedy\"===t.graph().acyclicer?Dl(t,function(t){return function(n){return t.edge(n).weight}}(t)):function(t){var n=[],e={},r={};function o(i){Rl.has(r,i)||(r[i]=!0,e[i]=!0,Rl.forEach(t.outEdges(i),(function(t){Rl.has(e,t.w)?n.push(t):o(t.w)})),delete e[i])}return Rl.forEach(t.nodes(),o),n}(t);Rl.forEach(n,(function(n){var e=t.edge(n);t.removeEdge(n),e.forwardName=n.name,e.reversed=!0,t.setEdge(n.w,n.v,e,Rl.uniqueId(\"rev\"))}))},undo:function(t){Rl.forEach(t.edges(),(function(n){var e=t.edge(n);if(e.reversed){t.removeEdge(n);var r=e.forwardName;delete e.reversed,delete e.forwardName,t.setEdge(n.w,n.v,e,r)}}))}};var Vl=Ol,Yl=ll.Graph,Fl={addDummyNode:Gl,simplify:function(t){var n=(new Yl).setGraph(t.graph());return Vl.forEach(t.nodes(),(function(e){n.setNode(e,t.node(e))})),Vl.forEach(t.edges(),(function(e){var r=n.edge(e.v,e.w)||{weight:0,minlen:1},o=t.edge(e);n.setEdge(e.v,e.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})})),n},asNonCompoundGraph:function(t){var n=new Yl({multigraph:t.isMultigraph()}).setGraph(t.graph());return Vl.forEach(t.nodes(),(function(e){t.children(e).length||n.setNode(e,t.node(e))})),Vl.forEach(t.edges(),(function(e){n.setEdge(e,t.edge(e))})),n},successorWeights:function(t){var n=Vl.map(t.nodes(),(function(n){var e={};return Vl.forEach(t.outEdges(n),(function(n){e[n.w]=(e[n.w]||0)+t.edge(n).weight})),e}));return Vl.zipObject(t.nodes(),n)},predecessorWeights:function(t){var n=Vl.map(t.nodes(),(function(n){var e={};return Vl.forEach(t.inEdges(n),(function(n){e[n.v]=(e[n.v]||0)+t.edge(n).weight})),e}));return Vl.zipObject(t.nodes(),n)},intersectRect:function(t,n){var e,r,o=t.x,i=t.y,u=n.x-o,a=n.y-i,c=t.width/2,f=t.height/2;if(!u&&!a)throw new Error(\"Not possible to find intersection inside of the rectangle\");Math.abs(a)*c>Math.abs(u)*f?(a<0&&(f=-f),e=f*u/a,r=f):(u<0&&(c=-c),e=c,r=c*a/u);return{x:o+e,y:i+r}},buildLayerMatrix:function(t){var n=Vl.map(Vl.range(Xl(t)+1),(function(){return[]}));return Vl.forEach(t.nodes(),(function(e){var r=t.node(e),o=r.rank;Vl.isUndefined(o)||(n[o][r.order]=e)})),n},normalizeRanks:function(t){var n=Vl.min(Vl.map(t.nodes(),(function(n){return t.node(n).rank})));Vl.forEach(t.nodes(),(function(e){var r=t.node(e);Vl.has(r,\"rank\")&&(r.rank-=n)}))},removeEmptyRanks:function(t){var n=Vl.min(Vl.map(t.nodes(),(function(n){return t.node(n).rank}))),e=[];Vl.forEach(t.nodes(),(function(r){var o=t.node(r).rank-n;e[o]||(e[o]=[]),e[o].push(r)}));var r=0,o=t.graph().nodeRankFactor;Vl.forEach(e,(function(n,e){Vl.isUndefined(n)&&e%o!=0?--r:r&&Vl.forEach(n,(function(n){t.node(n).rank+=r}))}))},addBorderNode:function(t,n,e,r){var o={width:0,height:0};arguments.length>=4&&(o.rank=e,o.order=r);return Gl(t,\"border\",o,n)},maxRank:Xl,partition:function(t,n){var e={lhs:[],rhs:[]};return Vl.forEach(t,(function(t){n(t)?e.lhs.push(t):e.rhs.push(t)})),e},time:function(t,n){var e=Vl.now();try{return n()}finally{console.log(t+\" time: \"+(Vl.now()-e)+\"ms\")}},notime:function(t,n){return n()}};function Gl(t,n,e,r){var o;do{o=Vl.uniqueId(r)}while(t.hasNode(o));return e.dummy=n,t.setNode(o,e),o}function Xl(t){return Vl.max(Vl.map(t.nodes(),(function(n){var e=t.node(n).rank;if(!Vl.isUndefined(e))return e})))}var $l=Ol,ql=Fl,Ul={run:function(t){t.graph().dummyChains=[],$l.forEach(t.edges(),(function(n){!function(t,n){var e,r,o,i=n.v,u=t.node(i).rank,a=n.w,c=t.node(a).rank,f=n.name,s=t.edge(n),l=s.labelRank;if(c===u+1)return;for(t.removeEdge(n),o=0,++u;u<c;++o,++u)s.points=[],r={width:0,height:0,edgeLabel:s,edgeObj:n,rank:u},e=ql.addDummyNode(t,\"edge\",r,\"_d\"),u===l&&(r.width=s.width,r.height=s.height,r.dummy=\"edge-label\",r.labelpos=s.labelpos),t.setEdge(i,e,{weight:s.weight},f),0===o&&t.graph().dummyChains.push(e),i=e;t.setEdge(i,a,{weight:s.weight},f)}(t,n)}))},undo:function(t){$l.forEach(t.graph().dummyChains,(function(n){var e,r=t.node(n),o=r.edgeLabel;for(t.setEdge(r.edgeObj,o);r.dummy;)e=t.successors(n)[0],t.removeNode(n),o.points.push({x:r.x,y:r.y}),\"edge-label\"===r.dummy&&(o.x=r.x,o.y=r.y,o.width=r.width,o.height=r.height),n=e,r=t.node(n)}))}};var Wl=Ol,Zl={longestPath:function(t){var n={};Wl.forEach(t.sources(),(function e(r){var o=t.node(r);if(Wl.has(n,r))return o.rank;n[r]=!0;var i=Wl.min(Wl.map(t.outEdges(r),(function(n){return e(n.w)-t.edge(n).minlen})));return i!==Number.POSITIVE_INFINITY&&null!=i||(i=0),o.rank=i}))},slack:function(t,n){return t.node(n.w).rank-t.node(n.v).rank-t.edge(n).minlen}};var Kl=Ol,Ql=ll.Graph,Jl=Zl.slack,th=function(t){var n,e,r=new Ql({directed:!1}),o=t.nodes()[0],i=t.nodeCount();r.setNode(o,{});for(;nh(r,t)<i;)n=eh(r,t),e=r.hasNode(n.v)?Jl(t,n):-Jl(t,n),rh(r,t,e);return r};function nh(t,n){return Kl.forEach(t.nodes(),(function e(r){Kl.forEach(n.nodeEdges(r),(function(o){var i=o.v,u=r===i?o.w:i;t.hasNode(u)||Jl(n,o)||(t.setNode(u,{}),t.setEdge(r,u,{}),e(u))}))})),t.nodeCount()}function eh(t,n){return Kl.minBy(n.edges(),(function(e){if(t.hasNode(e.v)!==t.hasNode(e.w))return Jl(n,e)}))}function rh(t,n,e){Kl.forEach(t.nodes(),(function(t){n.node(t).rank+=e}))}var oh=Ol,ih=th,uh=Zl.slack,ah=Zl.longestPath,ch=ll.alg.preorder,fh=ll.alg.postorder,sh=Fl.simplify,lh=hh;function hh(t){t=sh(t),ah(t);var n,e=ih(t);for(ph(e),dh(e,t);n=yh(e);)wh(e,t,n,mh(e,t,n))}function dh(t,n){var e=fh(t,t.nodes());e=e.slice(0,e.length-1),oh.forEach(e,(function(e){!function(t,n,e){var r=t.node(e),o=r.parent;t.edge(e,o).cutvalue=vh(t,n,e)}(t,n,e)}))}function vh(t,n,e){var r=t.node(e).parent,o=!0,i=n.edge(e,r),u=0;return i||(o=!1,i=n.edge(r,e)),u=i.weight,oh.forEach(n.nodeEdges(e),(function(i){var a,c,f=i.v===e,s=f?i.w:i.v;if(s!==r){var l=f===o,h=n.edge(i).weight;if(u+=l?h:-h,a=e,c=s,t.hasEdge(a,c)){var d=t.edge(e,s).cutvalue;u+=l?-d:d}}})),u}function ph(t,n){arguments.length<2&&(n=t.nodes()[0]),gh(t,{},1,n)}function gh(t,n,e,r,o){var i=e,u=t.node(r);return n[r]=!0,oh.forEach(t.neighbors(r),(function(o){oh.has(n,o)||(e=gh(t,n,e,o,r))})),u.low=i,u.lim=e++,o?u.parent=o:delete u.parent,e}function yh(t){return oh.find(t.edges(),(function(n){return t.edge(n).cutvalue<0}))}function mh(t,n,e){var r=e.v,o=e.w;n.hasEdge(r,o)||(r=e.w,o=e.v);var i=t.node(r),u=t.node(o),a=i,c=!1;i.lim>u.lim&&(a=u,c=!0);var f=oh.filter(n.edges(),(function(n){return c===bh(t,t.node(n.v),a)&&c!==bh(t,t.node(n.w),a)}));return oh.minBy(f,(function(t){return uh(n,t)}))}function wh(t,n,e,r){var o=e.v,i=e.w;t.removeEdge(o,i),t.setEdge(r.v,r.w,{}),ph(t),dh(t,n),function(t,n){var e=oh.find(t.nodes(),(function(t){return!n.node(t).parent})),r=ch(t,e);r=r.slice(1),oh.forEach(r,(function(e){var r=t.node(e).parent,o=n.edge(e,r),i=!1;o||(o=n.edge(r,e),i=!0),n.node(e).rank=n.node(r).rank+(i?o.minlen:-o.minlen)}))}(t,n)}function bh(t,n,e){return e.low<=n.lim&&n.lim<=e.lim}hh.initLowLimValues=ph,hh.initCutValues=dh,hh.calcCutValue=vh,hh.leaveEdge=yh,hh.enterEdge=mh,hh.exchangeEdges=wh;var xh=Zl.longestPath,_h=th,Eh=lh,kh=function(t){switch(t.graph().ranker){case\"network-simplex\":default:Oh(t);break;case\"tight-tree\":!function(t){xh(t),_h(t)}(t);break;case\"longest-path\":Nh(t)}};var Nh=xh;function Oh(t){Eh(t)}var jh=Ol,Mh=function(t){var n=function(t){var n={},e=0;function r(o){var i=e;jh.forEach(t.children(o),r),n[o]={low:i,lim:e++}}return jh.forEach(t.children(),r),n}(t);jh.forEach(t.graph().dummyChains,(function(e){for(var r=t.node(e),o=r.edgeObj,i=function(t,n,e,r){var o,i,u=[],a=[],c=Math.min(n[e].low,n[r].low),f=Math.max(n[e].lim,n[r].lim);o=e;do{o=t.parent(o),u.push(o)}while(o&&(n[o].low>c||f>n[o].lim));i=o,o=r;for(;(o=t.parent(o))!==i;)a.push(o);return{path:u.concat(a.reverse()),lca:i}}(t,n,o.v,o.w),u=i.path,a=i.lca,c=0,f=u[c],s=!0;e!==o.w;){if(r=t.node(e),s){for(;(f=u[c])!==a&&t.node(f).maxRank<r.rank;)c++;f===a&&(s=!1)}if(!s){for(;c<u.length-1&&t.node(f=u[c+1]).minRank<=r.rank;)c++;f=u[c]}t.setParent(e,f),e=t.successors(e)[0]}}))};var Sh=Ol,Ah=Fl,Ih={run:function(t){var n=Ah.addDummyNode(t,\"root\",{},\"_root\"),e=function(t){var n={};function e(r,o){var i=t.children(r);i&&i.length&&Sh.forEach(i,(function(t){e(t,o+1)})),n[r]=o}return Sh.forEach(t.children(),(function(t){e(t,1)})),n}(t),r=Sh.max(Sh.values(e))-1,o=2*r+1;t.graph().nestingRoot=n,Sh.forEach(t.edges(),(function(n){t.edge(n).minlen*=o}));var i=function(t){return Sh.reduce(t.edges(),(function(n,e){return n+t.edge(e).weight}),0)}(t)+1;Sh.forEach(t.children(),(function(u){Ph(t,n,o,i,r,e,u)})),t.graph().nodeRankFactor=o},cleanup:function(t){var n=t.graph();t.removeNode(n.nestingRoot),delete n.nestingRoot,Sh.forEach(t.edges(),(function(n){t.edge(n).nestingEdge&&t.removeEdge(n)}))}};function Ph(t,n,e,r,o,i,u){var a=t.children(u);if(a.length){var c=Ah.addBorderNode(t,\"_bt\"),f=Ah.addBorderNode(t,\"_bb\"),s=t.node(u);t.setParent(c,u),s.borderTop=c,t.setParent(f,u),s.borderBottom=f,Sh.forEach(a,(function(a){Ph(t,n,e,r,o,i,a);var s=t.node(a),l=s.borderTop?s.borderTop:a,h=s.borderBottom?s.borderBottom:a,d=s.borderTop?r:2*r,v=l!==h?1:o-i[u]+1;t.setEdge(c,l,{weight:d,minlen:v,nestingEdge:!0}),t.setEdge(h,f,{weight:d,minlen:v,nestingEdge:!0})})),t.parent(u)||t.setEdge(n,c,{weight:0,minlen:o+i[u]})}else u!==n&&t.setEdge(n,u,{weight:0,minlen:e})}var zh=Ol,Th=Fl,Ch=function(t){zh.forEach(t.children(),(function n(e){var r=t.children(e),o=t.node(e);if(r.length&&zh.forEach(r,n),zh.has(o,\"minRank\")){o.borderLeft=[],o.borderRight=[];for(var i=o.minRank,u=o.maxRank+1;i<u;++i)Lh(t,\"borderLeft\",\"_bl\",e,o,i),Lh(t,\"borderRight\",\"_br\",e,o,i)}}))};function Lh(t,n,e,r,o,i){var u={width:0,height:0,rank:i,borderType:n},a=o[n][i-1],c=Th.addDummyNode(t,\"border\",u,e);o[n][i]=c,t.setParent(c,r),a&&t.setEdge(a,c,{weight:1})}var Bh=Ol,Rh={adjust:function(t){var n=t.graph().rankdir.toLowerCase();\"lr\"!==n&&\"rl\"!==n||Dh(t)},undo:function(t){var n=t.graph().rankdir.toLowerCase();\"bt\"!==n&&\"rl\"!==n||function(t){Bh.forEach(t.nodes(),(function(n){Vh(t.node(n))})),Bh.forEach(t.edges(),(function(n){var e=t.edge(n);Bh.forEach(e.points,Vh),Bh.has(e,\"y\")&&Vh(e)}))}(t);\"lr\"!==n&&\"rl\"!==n||(!function(t){Bh.forEach(t.nodes(),(function(n){Yh(t.node(n))})),Bh.forEach(t.edges(),(function(n){var e=t.edge(n);Bh.forEach(e.points,Yh),Bh.has(e,\"x\")&&Yh(e)}))}(t),Dh(t))}};function Dh(t){Bh.forEach(t.nodes(),(function(n){Hh(t.node(n))})),Bh.forEach(t.edges(),(function(n){Hh(t.edge(n))}))}function Hh(t){var n=t.width;t.width=t.height,t.height=n}function Vh(t){t.y=-t.y}function Yh(t){var n=t.x;t.x=t.y,t.y=n}var Fh=Ol,Gh=function(t){var n={},e=Fh.filter(t.nodes(),(function(n){return!t.children(n).length})),r=Fh.max(Fh.map(e,(function(n){return t.node(n).rank}))),o=Fh.map(Fh.range(r+1),(function(){return[]}));function i(e){if(!Fh.has(n,e)){n[e]=!0;var r=t.node(e);o[r.rank].push(e),Fh.forEach(t.successors(e),i)}}var u=Fh.sortBy(e,(function(n){return t.node(n).rank}));return Fh.forEach(u,i),o};var Xh=Ol,$h=function(t,n){for(var e=0,r=1;r<n.length;++r)e+=qh(t,n[r-1],n[r]);return e};function qh(t,n,e){for(var r=Xh.zipObject(e,Xh.map(e,(function(t,n){return n}))),o=Xh.flatten(Xh.map(n,(function(n){return Xh.sortBy(Xh.map(t.outEdges(n),(function(n){return{pos:r[n.w],weight:t.edge(n).weight}})),\"pos\")})),!0),i=1;i<e.length;)i<<=1;var u=2*i-1;i-=1;var a=Xh.map(new Array(u),(function(){return 0})),c=0;return Xh.forEach(o.forEach((function(t){var n=t.pos+i;a[n]+=t.weight;for(var e=0;n>0;)n%2&&(e+=a[n+1]),a[n=n-1>>1]+=t.weight;c+=t.weight*e}))),c}var Uh=Ol;var Wh=Ol;var Zh=Ol,Kh=Fl;function Qh(t,n,e){for(var r;n.length&&(r=Zh.last(n)).i<=e;)n.pop(),t.push(r.vs),e++;return e}var Jh=Ol,td=function(t,n){return Uh.map(n,(function(n){var e=t.inEdges(n);if(e.length){var r=Uh.reduce(e,(function(n,e){var r=t.edge(e),o=t.node(e.v);return{sum:n.sum+r.weight*o.order,weight:n.weight+r.weight}}),{sum:0,weight:0});return{v:n,barycenter:r.sum/r.weight,weight:r.weight}}return{v:n}}))},nd=function(t,n){var e={};return Wh.forEach(t,(function(t,n){var r=e[t.v]={indegree:0,in:[],out:[],vs:[t.v],i:n};Wh.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)})),Wh.forEach(n.edges(),(function(t){var n=e[t.v],r=e[t.w];Wh.isUndefined(n)||Wh.isUndefined(r)||(r.indegree++,n.out.push(e[t.w]))})),function(t){var n=[];function e(t){return function(n){n.merged||(Wh.isUndefined(n.barycenter)||Wh.isUndefined(t.barycenter)||n.barycenter>=t.barycenter)&&function(t,n){var e=0,r=0;t.weight&&(e+=t.barycenter*t.weight,r+=t.weight);n.weight&&(e+=n.barycenter*n.weight,r+=n.weight);t.vs=n.vs.concat(t.vs),t.barycenter=e/r,t.weight=r,t.i=Math.min(n.i,t.i),n.merged=!0}(t,n)}}function r(n){return function(e){e.in.push(n),0==--e.indegree&&t.push(e)}}for(;t.length;){var o=t.pop();n.push(o),Wh.forEach(o.in.reverse(),e(o)),Wh.forEach(o.out,r(o))}return Wh.map(Wh.filter(n,(function(t){return!t.merged})),(function(t){return Wh.pick(t,[\"vs\",\"i\",\"barycenter\",\"weight\"])}))}(Wh.filter(e,(function(t){return!t.indegree})))},ed=function(t,n){var e=Kh.partition(t,(function(t){return Zh.has(t,\"barycenter\")})),r=e.lhs,o=Zh.sortBy(e.rhs,(function(t){return-t.i})),i=[],u=0,a=0,c=0;r.sort((f=!!n,function(t,n){return t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:f?n.i-t.i:t.i-n.i})),c=Qh(i,o,c),Zh.forEach(r,(function(t){c+=t.vs.length,i.push(t.vs),u+=t.barycenter*t.weight,a+=t.weight,c=Qh(i,o,c)}));var f;var s={vs:Zh.flatten(i,!0)};a&&(s.barycenter=u/a,s.weight=a);return s},rd=function t(n,e,r,o){var i=n.children(e),u=n.node(e),a=u?u.borderLeft:void 0,c=u?u.borderRight:void 0,f={};a&&(i=Jh.filter(i,(function(t){return t!==a&&t!==c})));var s=td(n,i);Jh.forEach(s,(function(e){if(n.children(e.v).length){var i=t(n,e.v,r,o);f[e.v]=i,Jh.has(i,\"barycenter\")&&(u=e,a=i,Jh.isUndefined(u.barycenter)?(u.barycenter=a.barycenter,u.weight=a.weight):(u.barycenter=(u.barycenter*u.weight+a.barycenter*a.weight)/(u.weight+a.weight),u.weight+=a.weight))}var u,a}));var l=nd(s,r);!function(t,n){Jh.forEach(t,(function(t){t.vs=Jh.flatten(t.vs.map((function(t){return n[t]?n[t].vs:t})),!0)}))}(l,f);var h=ed(l,o);if(a&&(h.vs=Jh.flatten([a,h.vs,c],!0),n.predecessors(a).length)){var d=n.node(n.predecessors(a)[0]),v=n.node(n.predecessors(c)[0]);Jh.has(h,\"barycenter\")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+d.order+v.order)/(h.weight+2),h.weight+=2}return h};var od=Ol,id=ll.Graph,ud=function(t,n,e){var r=function(t){var n;for(;t.hasNode(n=od.uniqueId(\"_root\")););return n}(t),o=new id({compound:!0}).setGraph({root:r}).setDefaultNodeLabel((function(n){return t.node(n)}));return od.forEach(t.nodes(),(function(i){var u=t.node(i),a=t.parent(i);(u.rank===n||u.minRank<=n&&n<=u.maxRank)&&(o.setNode(i),o.setParent(i,a||r),od.forEach(t[e](i),(function(n){var e=n.v===i?n.w:n.v,r=o.edge(e,i),u=od.isUndefined(r)?0:r.weight;o.setEdge(e,i,{weight:t.edge(n).weight+u})})),od.has(u,\"minRank\")&&o.setNode(i,{borderLeft:u.borderLeft[n],borderRight:u.borderRight[n]}))})),o};var ad=Ol;var cd=Ol,fd=Gh,sd=$h,ld=rd,hd=ud,dd=function(t,n,e){var r,o={};ad.forEach(e,(function(e){for(var i,u,a=t.parent(e);a;){if((i=t.parent(a))?(u=o[i],o[i]=a):(u=r,r=a),u&&u!==a)return void n.setEdge(u,a);a=i}}))},vd=ll.Graph,pd=Fl,gd=function(t){var n=pd.maxRank(t),e=yd(t,cd.range(1,n+1),\"inEdges\"),r=yd(t,cd.range(n-1,-1,-1),\"outEdges\"),o=fd(t);wd(t,o);for(var i,u=Number.POSITIVE_INFINITY,a=0,c=0;c<4;++a,++c){md(a%2?e:r,a%4>=2),o=pd.buildLayerMatrix(t);var f=sd(t,o);f<u&&(c=0,i=cd.cloneDeep(o),u=f)}wd(t,i)};function yd(t,n,e){return cd.map(n,(function(n){return hd(t,n,e)}))}function md(t,n){var e=new vd;cd.forEach(t,(function(t){var r=t.graph().root,o=ld(t,r,e,n);cd.forEach(o.vs,(function(n,e){t.node(n).order=e})),dd(t,e,o.vs)}))}function wd(t,n){cd.forEach(n,(function(n){cd.forEach(n,(function(n,e){t.node(n).order=e}))}))}var bd=Ol,xd=ll.Graph,_d=Fl,Ed=function(t){var n,e=_d.buildLayerMatrix(t),r=bd.merge(kd(t,e),Nd(t,e)),o={};bd.forEach([\"u\",\"d\"],(function(i){n=\"u\"===i?e:bd.values(e).reverse(),bd.forEach([\"l\",\"r\"],(function(e){\"r\"===e&&(n=bd.map(n,(function(t){return bd.values(t).reverse()})));var u=(\"u\"===i?t.predecessors:t.successors).bind(t),a=Md(t,n,r,u),c=Sd(t,n,a.root,a.align,\"r\"===e);\"r\"===e&&(c=bd.mapValues(c,(function(t){return-t}))),o[i+e]=c}))}));var i=Ad(t,o);return Id(o,i),Pd(o,t.graph().align)};function kd(t,n){var e={};return bd.reduce(n,(function(n,r){var o=0,i=0,u=n.length,a=bd.last(r);return bd.forEach(r,(function(n,c){var f=function(t,n){if(t.node(n).dummy)return bd.find(t.predecessors(n),(function(n){return t.node(n).dummy}))}(t,n),s=f?t.node(f).order:u;(f||n===a)&&(bd.forEach(r.slice(i,c+1),(function(n){bd.forEach(t.predecessors(n),(function(r){var i=t.node(r),u=i.order;!(u<o||s<u)||i.dummy&&t.node(n).dummy||Od(e,r,n)}))})),i=c+1,o=s)})),r})),e}function Nd(t,n){var e={};function r(n,r,o,i,u){var a;bd.forEach(bd.range(r,o),(function(r){a=n[r],t.node(a).dummy&&bd.forEach(t.predecessors(a),(function(n){var r=t.node(n);r.dummy&&(r.order<i||r.order>u)&&Od(e,n,a)}))}))}return bd.reduce(n,(function(n,e){var o,i=-1,u=0;return bd.forEach(e,(function(a,c){if(\"border\"===t.node(a).dummy){var f=t.predecessors(a);f.length&&(o=t.node(f[0]).order,r(e,u,c,i,o),u=c,i=o)}r(e,u,e.length,o,n.length)})),e})),e}function Od(t,n,e){if(n>e){var r=n;n=e,e=r}var o=t[n];o||(t[n]=o={}),o[e]=!0}function jd(t,n,e){if(n>e){var r=n;n=e,e=r}return bd.has(t[n],e)}function Md(t,n,e,r){var o={},i={},u={};return bd.forEach(n,(function(t){bd.forEach(t,(function(t,n){o[t]=t,i[t]=t,u[t]=n}))})),bd.forEach(n,(function(t){var n=-1;bd.forEach(t,(function(t){var a=r(t);if(a.length){a=bd.sortBy(a,(function(t){return u[t]}));for(var c=(a.length-1)/2,f=Math.floor(c),s=Math.ceil(c);f<=s;++f){var l=a[f];i[t]===t&&n<u[l]&&!jd(e,t,l)&&(i[l]=t,i[t]=o[t]=o[l],n=u[l])}}}))})),{root:o,align:i}}function Sd(t,n,e,r,o){var i={},u=function(t,n,e,r){var o=new xd,i=t.graph(),u=function(t,n,e){return function(r,o,i){var u,a=r.node(o),c=r.node(i),f=0;if(f+=a.width/2,bd.has(a,\"labelpos\"))switch(a.labelpos.toLowerCase()){case\"l\":u=-a.width/2;break;case\"r\":u=a.width/2}if(u&&(f+=e?u:-u),u=0,f+=(a.dummy?n:t)/2,f+=(c.dummy?n:t)/2,f+=c.width/2,bd.has(c,\"labelpos\"))switch(c.labelpos.toLowerCase()){case\"l\":u=c.width/2;break;case\"r\":u=-c.width/2}return u&&(f+=e?u:-u),u=0,f}}(i.nodesep,i.edgesep,r);return bd.forEach(n,(function(n){var r;bd.forEach(n,(function(n){var i=e[n];if(o.setNode(i),r){var a=e[r],c=o.edge(a,i);o.setEdge(a,i,Math.max(u(t,n,r),c||0))}r=n}))})),o}(t,n,e,o),a=o?\"borderLeft\":\"borderRight\";function c(t,n){for(var e=u.nodes(),r=e.pop(),o={};r;)o[r]?t(r):(o[r]=!0,e.push(r),e=e.concat(n(r))),r=e.pop()}return c((function(t){i[t]=u.inEdges(t).reduce((function(t,n){return Math.max(t,i[n.v]+u.edge(n))}),0)}),u.predecessors.bind(u)),c((function(n){var e=u.outEdges(n).reduce((function(t,n){return Math.min(t,i[n.w]-u.edge(n))}),Number.POSITIVE_INFINITY),r=t.node(n);e!==Number.POSITIVE_INFINITY&&r.borderType!==a&&(i[n]=Math.max(i[n],e))}),u.successors.bind(u)),bd.forEach(r,(function(t){i[t]=i[e[t]]})),i}function Ad(t,n){return bd.minBy(bd.values(n),(function(n){var e=Number.NEGATIVE_INFINITY,r=Number.POSITIVE_INFINITY;return bd.forIn(n,(function(n,o){var i=function(t,n){return t.node(n).width}(t,o)/2;e=Math.max(n+i,e),r=Math.min(n-i,r)})),e-r}))}function Id(t,n){var e=bd.values(n),r=bd.min(e),o=bd.max(e);bd.forEach([\"u\",\"d\"],(function(e){bd.forEach([\"l\",\"r\"],(function(i){var u,a=e+i,c=t[a];if(c!==n){var f=bd.values(c);(u=\"l\"===i?r-bd.min(f):o-bd.max(f))&&(t[a]=bd.mapValues(c,(function(t){return t+u})))}}))}))}function Pd(t,n){return bd.mapValues(t.ul,(function(e,r){if(n)return t[n.toLowerCase()][r];var o=bd.sortBy(bd.map(t,r));return(o[1]+o[2])/2}))}var zd=Ol,Td=Fl,Cd=Ed,Ld=function(t){(function(t){var n=Td.buildLayerMatrix(t),e=t.graph().ranksep,r=0;zd.forEach(n,(function(n){var o=zd.max(zd.map(n,(function(n){return t.node(n).height})));zd.forEach(n,(function(n){t.node(n).y=r+o/2})),r+=o+e}))})(t=Td.asNonCompoundGraph(t)),zd.forEach(Cd(t),(function(n,e){t.node(e).x=n}))};var Bd=Ol,Rd=Hl,Dd=Ul,Hd=kh,Vd=Fl.normalizeRanks,Yd=Mh,Fd=Fl.removeEmptyRanks,Gd=Ih,Xd=Ch,$d=Rh,qd=gd,Ud=Ld,Wd=Fl,Zd=ll.Graph,Kd=function(t,n){var e=n&&n.debugTiming?Wd.time:Wd.notime;e(\"layout\",(function(){var n=e(\" buildLayoutGraph\",(function(){return function(t){var n=new Zd({multigraph:!0,compound:!0}),e=av(t.graph());return n.setGraph(Bd.merge({},Jd,uv(e,Qd),Bd.pick(e,tv))),Bd.forEach(t.nodes(),(function(e){var r=av(t.node(e));n.setNode(e,Bd.defaults(uv(r,nv),ev)),n.setParent(e,t.parent(e))})),Bd.forEach(t.edges(),(function(e){var r=av(t.edge(e));n.setEdge(e,Bd.merge({},ov,uv(r,rv),Bd.pick(r,iv)))})),n}(t)}));e(\" runLayout\",(function(){!function(t,n){n(\" makeSpaceForEdgeLabels\",(function(){!function(t){var n=t.graph();n.ranksep/=2,Bd.forEach(t.edges(),(function(e){var r=t.edge(e);r.minlen*=2,\"c\"!==r.labelpos.toLowerCase()&&(\"TB\"===n.rankdir||\"BT\"===n.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)}))}(t)})),n(\" removeSelfEdges\",(function(){!function(t){Bd.forEach(t.edges(),(function(n){if(n.v===n.w){var e=t.node(n.v);e.selfEdges||(e.selfEdges=[]),e.selfEdges.push({e:n,label:t.edge(n)}),t.removeEdge(n)}}))}(t)})),n(\" acyclic\",(function(){Rd.run(t)})),n(\" nestingGraph.run\",(function(){Gd.run(t)})),n(\" rank\",(function(){Hd(Wd.asNonCompoundGraph(t))})),n(\" injectEdgeLabelProxies\",(function(){!function(t){Bd.forEach(t.edges(),(function(n){var e=t.edge(n);if(e.width&&e.height){var r=t.node(n.v),o={rank:(t.node(n.w).rank-r.rank)/2+r.rank,e:n};Wd.addDummyNode(t,\"edge-proxy\",o,\"_ep\")}}))}(t)})),n(\" removeEmptyRanks\",(function(){Fd(t)})),n(\" nestingGraph.cleanup\",(function(){Gd.cleanup(t)})),n(\" normalizeRanks\",(function(){Vd(t)})),n(\" assignRankMinMax\",(function(){!function(t){var n=0;Bd.forEach(t.nodes(),(function(e){var r=t.node(e);r.borderTop&&(r.minRank=t.node(r.borderTop).rank,r.maxRank=t.node(r.borderBottom).rank,n=Bd.max(n,r.maxRank))})),t.graph().maxRank=n}(t)})),n(\" removeEdgeLabelProxies\",(function(){!function(t){Bd.forEach(t.nodes(),(function(n){var e=t.node(n);\"edge-proxy\"===e.dummy&&(t.edge(e.e).labelRank=e.rank,t.removeNode(n))}))}(t)})),n(\" normalize.run\",(function(){Dd.run(t)})),n(\" parentDummyChains\",(function(){Yd(t)})),n(\" addBorderSegments\",(function(){Xd(t)})),n(\" order\",(function(){qd(t)})),n(\" insertSelfEdges\",(function(){!function(t){var n=Wd.buildLayerMatrix(t);Bd.forEach(n,(function(n){var e=0;Bd.forEach(n,(function(n,r){var o=t.node(n);o.order=r+e,Bd.forEach(o.selfEdges,(function(n){Wd.addDummyNode(t,\"selfedge\",{width:n.label.width,height:n.label.height,rank:o.rank,order:r+ ++e,e:n.e,label:n.label},\"_se\")})),delete o.selfEdges}))}))}(t)})),n(\" adjustCoordinateSystem\",(function(){$d.adjust(t)})),n(\" position\",(function(){Ud(t)})),n(\" positionSelfEdges\",(function(){!function(t){Bd.forEach(t.nodes(),(function(n){var e=t.node(n);if(\"selfedge\"===e.dummy){var r=t.node(e.e.v),o=r.x+r.width/2,i=r.y,u=e.x-o,a=r.height/2;t.setEdge(e.e,e.label),t.removeNode(n),e.label.points=[{x:o+2*u/3,y:i-a},{x:o+5*u/6,y:i-a},{x:o+u,y:i},{x:o+5*u/6,y:i+a},{x:o+2*u/3,y:i+a}],e.label.x=e.x,e.label.y=e.y}}))}(t)})),n(\" removeBorderNodes\",(function(){!function(t){Bd.forEach(t.nodes(),(function(n){if(t.children(n).length){var e=t.node(n),r=t.node(e.borderTop),o=t.node(e.borderBottom),i=t.node(Bd.last(e.borderLeft)),u=t.node(Bd.last(e.borderRight));e.width=Math.abs(u.x-i.x),e.height=Math.abs(o.y-r.y),e.x=i.x+e.width/2,e.y=r.y+e.height/2}})),Bd.forEach(t.nodes(),(function(n){\"border\"===t.node(n).dummy&&t.removeNode(n)}))}(t)})),n(\" normalize.undo\",(function(){Dd.undo(t)})),n(\" fixupEdgeLabelCoords\",(function(){!function(t){Bd.forEach(t.edges(),(function(n){var e=t.edge(n);if(Bd.has(e,\"x\"))switch(\"l\"!==e.labelpos&&\"r\"!==e.labelpos||(e.width-=e.labeloffset),e.labelpos){case\"l\":e.x-=e.width/2+e.labeloffset;break;case\"r\":e.x+=e.width/2+e.labeloffset}}))}(t)})),n(\" undoCoordinateSystem\",(function(){$d.undo(t)})),n(\" translateGraph\",(function(){!function(t){var n=Number.POSITIVE_INFINITY,e=0,r=Number.POSITIVE_INFINITY,o=0,i=t.graph(),u=i.marginx||0,a=i.marginy||0;function c(t){var i=t.x,u=t.y,a=t.width,c=t.height;n=Math.min(n,i-a/2),e=Math.max(e,i+a/2),r=Math.min(r,u-c/2),o=Math.max(o,u+c/2)}Bd.forEach(t.nodes(),(function(n){c(t.node(n))})),Bd.forEach(t.edges(),(function(n){var e=t.edge(n);Bd.has(e,\"x\")&&c(e)})),n-=u,r-=a,Bd.forEach(t.nodes(),(function(e){var o=t.node(e);o.x-=n,o.y-=r})),Bd.forEach(t.edges(),(function(e){var o=t.edge(e);Bd.forEach(o.points,(function(t){t.x-=n,t.y-=r})),Bd.has(o,\"x\")&&(o.x-=n),Bd.has(o,\"y\")&&(o.y-=r)})),i.width=e-n+u,i.height=o-r+a}(t)})),n(\" assignNodeIntersects\",(function(){!function(t){Bd.forEach(t.edges(),(function(n){var e,r,o=t.edge(n),i=t.node(n.v),u=t.node(n.w);o.points?(e=o.points[0],r=o.points[o.points.length-1]):(o.points=[],e=u,r=i),o.points.unshift(Wd.intersectRect(i,e)),o.points.push(Wd.intersectRect(u,r))}))}(t)})),n(\" reversePoints\",(function(){!function(t){Bd.forEach(t.edges(),(function(n){var e=t.edge(n);e.reversed&&e.points.reverse()}))}(t)})),n(\" acyclic.undo\",(function(){Rd.undo(t)}))}(n,e)})),e(\" updateInputGraph\",(function(){!function(t,n){Bd.forEach(t.nodes(),(function(e){var r=t.node(e),o=n.node(e);r&&(r.x=o.x,r.y=o.y,n.children(e).length&&(r.width=o.width,r.height=o.height))})),Bd.forEach(t.edges(),(function(e){var r=t.edge(e),o=n.edge(e);r.points=o.points,Bd.has(o,\"x\")&&(r.x=o.x,r.y=o.y)})),t.graph().width=n.graph().width,t.graph().height=n.graph().height}(t,n)}))}))};var Qd=[\"nodesep\",\"edgesep\",\"ranksep\",\"marginx\",\"marginy\"],Jd={ranksep:50,edgesep:20,nodesep:50,rankdir:\"tb\"},tv=[\"acyclicer\",\"ranker\",\"rankdir\",\"align\"],nv=[\"width\",\"height\"],ev={width:0,height:0},rv=[\"minlen\",\"weight\",\"width\",\"height\",\"labeloffset\"],ov={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:\"r\"},iv=[\"labelpos\"];function uv(t,n){return Bd.mapValues(Bd.pick(t,n),Number)}function av(t){var n={};return Bd.forEach(t,(function(t,e){n[e.toLowerCase()]=t})),n}var cv=Ol,fv=Fl,sv=ll.Graph,lv={debugOrdering:function(t){var n=fv.buildLayerMatrix(t),e=new sv({compound:!0,multigraph:!0}).setGraph({});return cv.forEach(t.nodes(),(function(n){e.setNode(n,{label:n}),e.setParent(n,\"layer\"+t.node(n).rank)})),cv.forEach(t.edges(),(function(t){e.setEdge(t.v,t.w,{},t.name)})),cv.forEach(n,(function(t,n){var r=\"layer\"+n;e.setNode(r,{rank:\"same\"}),cv.reduce(t,(function(t,n){return e.setEdge(t,n,{style:\"invis\"}),n}))})),e}};var hv=nn({graphlib:ll,layout:Kd,debug:lv,util:{time:Fl.time,notime:Fl.notime},version:\"0.8.5\"});function dv(t,n,e){void 0===e&&(e={rankdir:\"TB\"});var r=e.rankdir,o=new hv.graphlib.Graph;return o.setDefaultEdgeLabel((function(){return{}})),o.setGraph({rankdir:r}),t.forEach((function(t){var n,e;if(!t.id)throw new Error('Node \"id\" does not exist');var r=(null===(n=t.data)||void 0===n?void 0:n.width)||200,i=(null===(e=t.data)||void 0===e?void 0:e.height)||56;o.setNode(t.id,{width:r,height:i})})),n.forEach((function(t){o.setEdge(t.source,t.target)})),hv.layout(o),t.forEach((function(t){var n=o.node(t.id),e=\"bottom\",i=\"top\";switch(r){case\"TB\":e=\"bottom\",i=\"top\";break;case\"BT\":e=\"top\",i=\"bottom\";break;case\"LR\":case\"RL\":e=\"right\",i=\"left\"}t.targetPosition=i,t.sourcePosition=e,t.position={x:n.x-n.width/2,y:n.y-n.height/2}})),{nodes:t,edges:n}}var vv=function(t){return null!==t&&\"function\"!=typeof t&&isFinite(t.length)},pv=function(t,n){return!!vv(t)&&t.indexOf(n)>-1},gv=function(t,n){if(!vv(t))return t;for(var e=[],r=0;r<t.length;r++){var o=t[r];n(o,r)&&e.push(o)}return e},yv={}.toString,mv=function(t,n){return yv.call(t)===\"[object \"+n+\"]\"},wv=function(t){return mv(t,\"Function\")},bv=function(t){return null==t},xv=function(t){return Array.isArray?Array.isArray(t):mv(t,\"Array\")},_v=function(t){var n=typeof t;return null!==t&&\"object\"===n||\"function\"===n};function Ev(t,n){if(t)if(xv(t))for(var e=0,r=t.length;e<r&&!1!==n(t[e],e);e++);else if(_v(t))for(var o in t)if(t.hasOwnProperty(o)&&!1===n(t[o],o))break}var kv=Object.keys?function(t){return Object.keys(t)}:function(t){var n=[];return Ev(t,(function(e,r){wv(t)&&\"prototype\"===r||n.push(r)})),n};function Nv(t,n){var e=kv(n),r=e.length;if(bv(t))return!r;for(var o=0;o<r;o+=1){var i=e[o];if(n[i]!==t[i]||!(i in t))return!1}return!0}var Ov=function(t){return\"object\"==typeof t&&null!==t},jv=function(t){if(!Ov(t)||!mv(t,\"Object\"))return!1;if(null===Object.getPrototypeOf(t))return!0;for(var n=t;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(t)===n};var Mv=function(t,n){if(void 0===n&&(n=[]),xv(t))for(var e=0;e<t.length;e+=1)Mv(t[e],n);else n.push(t);return n},Sv=function(t){if(xv(t))return t.reduce((function(t,n){return Math.max(t,n)}),t[0])},Av=function(t){if(xv(t))return t.reduce((function(t,n){return Math.min(t,n)}),t[0])},Iv=Array.prototype,Pv=Iv.splice,zv=Iv.indexOf,Tv=Array.prototype.splice,Cv=function(t,n){if(!vv(t))return[];for(var e=t?n.length:0,r=e-1;e--;){var o=void 0,i=n[e];e!==r&&i===o||(o=i,Tv.call(t,i,1))}return t},Lv=function(t,n,e){if(!xv(t)&&!jv(t))return t;var r=e;return Ev(t,(function(t,e){r=n(r,t,e)})),r},Bv=function(t){return mv(t,\"String\")};function Rv(t,n){void 0===n&&(n=new Map);var e=[];if(Array.isArray(t))for(var r=0,o=t.length;r<o;r++){var i=t[r];n.has(i)||(e.push(i),n.set(i,!0))}return e}var Dv=Object.prototype.hasOwnProperty;function Hv(t,n){if(!n||!xv(t))return{};for(var e,r={},o=wv(n)?n:function(t){return t[n]},i=0;i<t.length;i++){var u=t[i];e=o(u),Dv.call(r,e)?r[e].push(u):r[e]=[u]}return r}function Vv(t,n){if(!n)return{0:t};if(!wv(n)){var e=xv(n)?n:n.replace(/\\s+/g,\"\").split(\"*\");n=function(t){for(var n=\"_\",r=0,o=e.length;r<o;r++)n+=t[e[r]]&&t[e[r]].toString();return n}}return Hv(t,n)}var Yv={};var Fv=function(t){return mv(t,\"Number\")},Gv=Number.isInteger?Number.isInteger:function(t){return Fv(t)&&t%1==0};var Xv=180/Math.PI,$v=parseInt,qv=Math.PI/180,Uv=function(t,n){return t.hasOwnProperty(n)},Wv=Object.values?function(t){return Object.values(t)}:function(t){var n=[];return Ev(t,(function(e,r){wv(t)&&\"prototype\"===r||n.push(e)})),n},Zv=function(t){return bv(t)?\"\":t.toString()};var Kv={}.toString,Qv=function(t){return Kv.call(t).replace(/^\\[object /,\"\").replace(/]$/,\"\")};var Jv=Object.prototype,tp=function(t){var n=t&&t.constructor;return t===(\"function\"==typeof n&&n.prototype||Jv)};function np(t,n){for(var e in n)n.hasOwnProperty(e)&&\"constructor\"!==e&&void 0!==n[e]&&(t[e]=n[e])}function ep(t,n,e,r){return n&&np(t,n),e&&np(t,e),r&&np(t,r),t}var rp=function(t){if(\"object\"!=typeof t||null===t)return t;var n;if(xv(t)){n=[];for(var e=0,r=t.length;e<r;e++)\"object\"==typeof t[e]&&null!=t[e]?n[e]=rp(t[e]):n[e]=t[e]}else for(var o in n={},t)\"object\"==typeof t[o]&&null!=t[o]?n[o]=rp(t[o]):n[o]=t[o];return n};var op=function(t,n){if(!wv(t))throw new TypeError(\"Expected a function\");var e=function(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];var i=n?n.apply(this,r):r[0],u=e.cache;if(u.has(i))return u.get(i);var a=t.apply(this,r);return u.set(i,a),a};return e.cache=new Map,e};function ip(t,n,e,r){for(var o in e=e||0,r=r||5,n)if(n.hasOwnProperty(o)){var i=n[o];null!==i&&jv(i)?(jv(t[o])||(t[o]={}),e<r?ip(t[o],i,e+1,r):t[o]=n[o]):xv(i)?(t[o]=[],t[o]=t[o].concat(i)):void 0!==i&&(t[o]=i)}}var up=Object.prototype.hasOwnProperty;var ap=function(t,n){if(t===n)return!0;if(!t||!n)return!1;if(Bv(t)||Bv(n))return!1;if(vv(t)||vv(n)){if(t.length!==n.length)return!1;for(var e=!0,r=0;r<t.length&&(e=ap(t[r],n[r]));r++);return e}if(Ov(t)||Ov(n)){var o=Object.keys(t),i=Object.keys(n);if(o.length!==i.length)return!1;for(e=!0,r=0;r<o.length&&(e=ap(t[o[r]],n[o[r]]));r++);return e}return!1},cp=function(t){return t},fp=Object.prototype.hasOwnProperty,sp={};var lp,hp=function(){return hp=Object.assign||function(t){for(var n,e=1,r=arguments.length;e<r;e++)for(var o in n=arguments[e])Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o]);return t},hp.apply(this,arguments)};function dp(t,n,e,r){return new(e||(e=Promise))((function(o,i){function u(t){try{c(r.next(t))}catch(t){i(t)}}function a(t){try{c(r.throw(t))}catch(t){i(t)}}function c(t){var n;t.done?o(t.value):(n=t.value,n instanceof e?n:new e((function(t){t(n)}))).then(u,a)}c((r=r.apply(t,n||[])).next())}))}function vp(t,n){var e,r,o,i,u={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(e)throw new TypeError(\"Generator is already executing.\");for(;i&&(i=0,a[0]&&(u=0)),u;)try{if(e=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return u.label++,{value:a[1],done:!1};case 5:u.label++,r=a[1],a=[0];continue;case 7:a=u.ops.pop(),u.trys.pop();continue;default:if(!(o=u.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){u=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){u.label=a[1];break}if(6===a[0]&&u.label<o[1]){u.label=o[1],o=a;break}if(o&&u.label<o[2]){u.label=o[2],u.ops.push(a);break}o[2]&&u.ops.pop(),u.trys.pop();continue}a=n.call(t,u)}catch(t){a=[6,t],r=0}finally{e=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function pp(t){var n=\"function\"==typeof Symbol&&Symbol.iterator,e=n&&t[n],r=0;if(e)return e.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(n?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function gp(t,n){var e=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var r,o,i=e.call(t),u=[];try{for(;(void 0===n||n-- >0)&&!(r=i.next()).done;)u.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(e=i.return)&&e.call(i)}finally{if(o)throw o.error}}return u}function yp(t,n,e){if(e||2===arguments.length)for(var r,o=0,i=n.length;o<i;o++)!r&&o in n||(r||(r=Array.prototype.slice.call(n,0,o)),r[o]=n[o]);return t.concat(r||Array.prototype.slice.call(n))}\"function\"==typeof SuppressedError&&SuppressedError;var mp=op((function(t,n){void 0===n&&(n={});var e=n.fontSize,r=n.fontFamily,o=n.fontWeight,i=n.fontStyle,u=n.fontVariant;return lp||(lp=document.createElement(\"canvas\").getContext(\"2d\")),lp.font=[i,u,o,e+\"px\",r].join(\" \"),lp.measureText(Bv(t)?t:\"\").width}),(function(t,n){return void 0===n&&(n={}),function(){for(var t=0,n=0,e=arguments.length;n<e;n++)t+=arguments[n].length;var r=Array(t),o=0;for(n=0;n<e;n++)for(var i=arguments[n],u=0,a=i.length;u<a;u++,o++)r[o]=i[u];return r}([t],Wv(n)).join(\"\")})),wp=function(){function t(){this.map={}}return t.prototype.has=function(t){return void 0!==this.map[t]},t.prototype.get=function(t,n){var e=this.map[t];return void 0===e?n:e},t.prototype.set=function(t,n){this.map[t]=n},t.prototype.clear=function(){this.map={}},t.prototype.delete=function(t){delete this.map[t]},t.prototype.size=function(){return Object.keys(this.map).length},t}(),bp=Object.freeze({__proto__:null,Cache:wp,assign:ep,augment:function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var e=t[0],r=1;r<t.length;r++){var o=t[r];wv(o)&&(o=o.prototype),ep(e.prototype,o)}},clamp:function(t,n,e){return t<n?n:t>e?e:t},clearAnimationFrame:function(t){(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||window.msCancelAnimationFrame||clearTimeout)(t)},clone:rp,contains:pv,debounce:function(t,n,e){var r;return function(){var o=this,i=arguments,u=e&&!r;clearTimeout(r),r=setTimeout((function(){r=null,e||t.apply(o,i)}),n),u&&t.apply(o,i)}},deepMix:function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];for(var r=0;r<n.length;r+=1)ip(t,n[r]);return t},difference:function(t,n){return void 0===n&&(n=[]),gv(t,(function(t){return!pv(n,t)}))},each:Ev,endsWith:function(t,n){return!(!xv(t)&&!Bv(t))&&t[t.length-1]===n},every:function(t,n){for(var e=0;e<t.length;e++)if(!n(t[e],e))return!1;return!0},extend:function(t,n,e,r){wv(n)||(e=n,n=t,t=function(){});var o=Object.create?function(t,n){return Object.create(t,{constructor:{value:n}})}:function(t,n){function e(){}e.prototype=t;var r=new e;return r.constructor=n,r},i=o(n.prototype,t);return t.prototype=ep(i,t.prototype),t.superclass=o(n.prototype,n),ep(i,e),ep(t,r),t},filter:gv,find:function(t,n){if(!xv(t))return null;var e;if(wv(n)&&(e=n),jv(n)&&(e=function(t){return Nv(t,n)}),e)for(var r=0;r<t.length;r+=1)if(e(t[r]))return t[r];return null},findIndex:function(t,n,e){void 0===e&&(e=0);for(var r=e;r<t.length;r++)if(n(t[r],r))return r;return-1},firstValue:function(t,n){for(var e=null,r=0;r<t.length;r++){var o=t[r][n];if(!bv(o)){e=xv(o)?o[0]:o;break}}return e},fixedBase:function(t,n){var e=n.toString(),r=e.indexOf(\".\");if(-1===r)return Math.round(t);var o=e.substr(r+1).length;return o>20&&(o=20),parseFloat(t.toFixed(o))},flatten:function(t){if(!xv(t))return[];for(var n=[],e=0;e<t.length;e++)n=n.concat(t[e]);return n},flattenDeep:Mv,forIn:Ev,get:function(t,n,e){for(var r=0,o=Bv(n)?n.split(\".\"):n;t&&r<o.length;)t=t[o[r++]];return void 0===t||r<o.length?e:t},getEllipsisText:function(t,n,e,r){void 0===r&&(r=\"...\");var o,i,u=mp(r,e),a=Bv(t)?t:Zv(t),c=n,f=[];if(mp(t,e)<=n)return t;for(;o=a.substr(0,16),!((i=mp(o,e))+u>c&&i>c);)if(f.push(o),c-=i,!(a=a.substr(16)))return f.join(\"\");for(;o=a.substr(0,1),!((i=mp(o,e))+u>c);)if(f.push(o),c-=i,!(a=a.substr(1)))return f.join(\"\");return\"\"+f.join(\"\")+r},getRange:function(t){var n=t.filter((function(t){return!isNaN(t)}));if(!n.length)return{min:0,max:0};if(xv(t[0])){for(var e=[],r=0;r<t.length;r++)e=e.concat(t[r]);n=e}var o=Sv(n);return{min:Av(n),max:o}},getType:Qv,getWrapBehavior:function(t,n){return t[\"_wrap_\"+n]},group:function(t,n){if(!n)return[t];var e=Vv(t,n),r=[];for(var o in e)r.push(e[o]);return r},groupBy:Hv,groupToMap:Vv,has:Uv,hasKey:Uv,hasValue:function(t,n){return pv(Wv(t),n)},head:function(t){if(vv(t))return t[0]},identity:function(t){return t},includes:pv,indexOf:function(t,n){if(!vv(t))return-1;var e=Array.prototype.indexOf;if(e)return e.call(t,n);for(var r=-1,o=0;o<t.length;o++)if(t[o]===n){r=o;break}return r},isArguments:function(t){return mv(t,\"Arguments\")},isArray:xv,isArrayLike:vv,isBoolean:function(t){return mv(t,\"Boolean\")},isDate:function(t){return mv(t,\"Date\")},isDecimal:function(t){return Fv(t)&&t%1!=0},isElement:function(t){return t instanceof Element||t instanceof HTMLDocument},isEmpty:function(t){if(bv(t))return!0;if(vv(t))return!t.length;var n=Qv(t);if(\"Map\"===n||\"Set\"===n)return!t.size;if(tp(t))return!Object.keys(t).length;for(var e in t)if(up.call(t,e))return!1;return!0},isEqual:ap,isEqualWith:function(t,n,e){return wv(e)?!!e(t,n):ap(t,n)},isError:function(t){return mv(t,\"Error\")},isEven:function(t){return Fv(t)&&t%2==0},isFinite:function(t){return Fv(t)&&isFinite(t)},isFunction:wv,isInteger:Gv,isMatch:Nv,isNegative:function(t){return Fv(t)&&t<0},isNil:bv,isNull:function(t){return null===t},isNumber:Fv,isNumberEqual:function(t,n,e){return void 0===e&&(e=1e-5),Math.abs(t-n)<e},isObject:_v,isObjectLike:Ov,isOdd:function(t){return Fv(t)&&t%2!=0},isPlainObject:jv,isPositive:function(t){return Fv(t)&&t>0},isPrototype:tp,isRegExp:function(t){return mv(t,\"RegExp\")},isString:Bv,isType:mv,isUndefined:function(t){return void 0===t},keys:kv,last:function(t){if(vv(t)){return t[t.length-1]}},lowerCase:function(t){return Zv(t).toLowerCase()},lowerFirst:function(t){var n=Zv(t);return n.charAt(0).toLowerCase()+n.substring(1)},map:function(t,n){if(!vv(t))return t;for(var e=[],r=0;r<t.length;r++){var o=t[r];e.push(n(o,r))}return e},mapValues:function(t,n){void 0===n&&(n=cp);var e={};return _v(t)&&!bv(t)&&Object.keys(t).forEach((function(r){e[r]=n(t[r],r)})),e},max:Sv,maxBy:function(t,n){if(xv(t)){for(var e,r=-1/0,o=0;o<t.length;o++){var i=t[o],u=wv(n)?n(i):i[n];u>r&&(e=i,r=u)}return e}},measureTextWidth:mp,memoize:op,min:Av,minBy:function(t,n){if(xv(t)){for(var e,r=1/0,o=0;o<t.length;o++){var i=t[o],u=wv(n)?n(i):i[n];u<r&&(e=i,r=u)}return e}},mix:ep,mod:function(t,n){return(t%n+n)%n},noop:function(){},number2color:function(t){var n=Yv[t];if(!n){for(var e=t.toString(16),r=e.length;r<6;r++)e=\"0\"+e;n=\"#\"+e,Yv[t]=n}return n},omit:function(t,n){return Lv(t,(function(t,e,r){return n.includes(r)||(t[r]=e),t}),{})},parseRadius:function(t){var n=0,e=0,r=0,o=0;return xv(t)?1===t.length?n=e=r=o=t[0]:2===t.length?(n=r=t[0],e=o=t[1]):3===t.length?(n=t[0],e=o=t[1],r=t[2]):(n=t[0],e=t[1],r=t[2],o=t[3]):n=e=r=o=t,{r1:n,r2:e,r3:r,r4:o}},pick:function(t,n){if(null===t||!jv(t))return{};var e={};return Ev(n,(function(n){fp.call(t,n)&&(e[n]=t[n])})),e},pull:function(t){for(var n=[],e=1;e<arguments.length;e++)n[e-1]=arguments[e];for(var r=0;r<n.length;r++)for(var o=n[r],i=-1;(i=zv.call(t,o))>-1;)Pv.call(t,i,1);return t},pullAt:Cv,reduce:Lv,remove:function(t,n){var e=[];if(!vv(t))return e;for(var r=-1,o=[],i=t.length;++r<i;){var u=t[r];n(u,r,t)&&(e.push(u),o.push(r))}return Cv(t,o),e},requestAnimationFrame:function(t){return(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.msRequestAnimationFrame||function(t){return setTimeout(t,16)})(t)},set:function(t,n,e){var r=t,o=Bv(n)?n.split(\".\"):n;return o.forEach((function(t,n){n<o.length-1?(_v(r[t])||(r[t]=Fv(o[n+1])?[]:{}),r=r[t]):r[t]=e})),t},size:function(t){return bv(t)?0:vv(t)?t.length:Object.keys(t).length},some:function(t,n){for(var e=0;e<t.length;e++)if(n(t[e],e))return!0;return!1},sortBy:function(t,n){var e;if(wv(n))e=function(t,e){return n(t)-n(e)};else{var r=[];Bv(n)?r.push(n):xv(n)&&(r=n),e=function(t,n){for(var e=0;e<r.length;e+=1){var o=r[e];if(t[o]>n[o])return 1;if(t[o]<n[o])return-1}return 0}}return t.sort(e),t},startsWith:function(t,n){return!(!xv(t)&&!Bv(t))&&t[0]===n},substitute:function(t,n){return t&&n?t.replace(/\\\\?\\{([^{}]+)\\}/g,(function(t,e){return\"\\\\\"===t.charAt(0)?t.slice(1):void 0===n[e]?\"\":n[e]})):t},throttle:function(t,n,e){var r,o,i,u,a=0;e||(e={});var c=function(){a=!1===e.leading?0:Date.now(),r=null,u=t.apply(o,i),r||(o=i=null)},f=function(){var f=Date.now();a||!1!==e.leading||(a=f);var s=n-(f-a);return o=this,i=arguments,s<=0||s>n?(r&&(clearTimeout(r),r=null),a=f,u=t.apply(o,i),r||(o=i=null)):r||!1===e.trailing||(r=setTimeout(c,s)),u};return f.cancel=function(){clearTimeout(r),a=0,r=o=i=null},f},toArray:function(t){return vv(t)?Array.prototype.slice.call(t):[]},toDegree:function(t){return Xv*t},toInteger:$v,toRadian:function(t){return qv*t},toString:Zv,union:function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return Rv([].concat.apply([],t))},uniq:Rv,uniqueId:function(t){return sp[t=t||\"g\"]?sp[t]+=1:sp[t]=1,t+sp[t]},upperCase:function(t){return Zv(t).toUpperCase()},upperFirst:function(t){var n=Zv(t);return n.charAt(0).toUpperCase()+n.substring(1)},values:Wv,valuesOfKey:function(t,n){for(var e=[],r={},o=0;o<t.length;o++){var i=t[o][n];if(!bv(i)){xv(i)||(i=[i]);for(var u=0;u<i.length;u++){var a=i[u];r[a]||(e.push(a),r[a]=!0)}}}return e},wrapBehavior:function(t,n){if(t[\"_wrap_\"+n])return t[\"_wrap_\"+n];var e=function(e){t[n](e)};return t[\"_wrap_\"+n]=e,e}});var xp={assign:en(bp).mix,getHeight:function(t,n,e,r){return void 0===r&&(r=\"height\"),\"center\"===e?(t[r]+n[r])/2:t.height}},_p=xp,Ep={getId:function(t){return t.id||t.name},getPreH:function(t){return t.preH||0},getPreV:function(t){return t.preV||0},getHGap:function(t){return t.hgap||18},getVGap:function(t){return t.vgap||18},getChildren:function(t){return t.children},getHeight:function(t){return t.height||36},getWidth:function(t){var n=t.label||\" \";return t.width||18*n.split(\"\").length}};function kp(t,n){var e=this;if(e.vgap=e.hgap=0,t instanceof kp)return t;e.data=t;var r=n.getHGap(t),o=n.getVGap(t);return e.preH=n.getPreH(t),e.preV=n.getPreV(t),e.width=n.getWidth(t),e.height=n.getHeight(t),e.width+=e.preH,e.height+=e.preV,e.id=n.getId(t),e.x=e.y=0,e.depth=0,e.children||(e.children=[]),e.addGap(r,o),e}_p.assign(kp.prototype,{isRoot:function(){return 0===this.depth},isLeaf:function(){return 0===this.children.length},addGap:function(t,n){var e=this;e.hgap+=t,e.vgap+=n,e.width+=2*t,e.height+=2*n},eachNode:function(t){for(var n,e=[this];n=e.shift();)t(n),e=n.children.concat(e)},DFTraverse:function(t){this.eachNode(t)},BFTraverse:function(t){for(var n,e=[this];n=e.shift();)t(n),e=e.concat(n.children)},getBoundingBox:function(){var t={left:Number.MAX_VALUE,top:Number.MAX_VALUE,width:0,height:0};return this.eachNode((function(n){t.left=Math.min(t.left,n.x),t.top=Math.min(t.top,n.y),t.width=Math.max(t.width,n.x+n.width),t.height=Math.max(t.height,n.y+n.height)})),t},translate:function(t,n){void 0===t&&(t=0),void 0===n&&(n=0),this.eachNode((function(e){e.x+=t,e.y+=n,e.x+=e.preH,e.y+=e.preV}))},right2left:function(){var t=this,n=t.getBoundingBox();t.eachNode((function(t){t.x=t.x-2*(t.x-n.left)-t.width})),t.translate(n.width,0)},bottom2top:function(){var t=this,n=t.getBoundingBox();t.eachNode((function(t){t.y=t.y-2*(t.y-n.top)-t.height})),t.translate(0,n.height)}});var Np=function(t,n,e){void 0===n&&(n={});var r,o=new kp(t,n=_p.assign({},Ep,n)),i=[o];if(!e&&!t.collapsed)for(;r=i.shift();)if(!r.data.collapsed){var u=n.getChildren(r.data),a=u?u.length:0;if(r.children=new Array(a),u&&a)for(var c=0;c<a;c++){var f=new kp(u[c],n);r.children[c]=f,i.push(f),f.parent=r,f.depth=r.depth+1}}return o},Op=Np,jp=function(){function t(t,n){void 0===n&&(n={});this.options=n,this.rootNode=Op(t,n)}return t.prototype.execute=function(){throw new Error(\"please override this method\")},t}(),Mp=jp;function Sp(t,n,e,r){void 0===r&&(r=[]);var o=this;o.w=t||0,o.h=n||0,o.y=e||0,o.x=0,o.c=r||[],o.cs=r.length,o.prelim=0,o.mod=0,o.shift=0,o.change=0,o.tl=null,o.tr=null,o.el=null,o.er=null,o.msel=0,o.mser=0}function Ap(t,n,e){e?t.y+=n:t.x+=n,t.children.forEach((function(t){Ap(t,n,e)}))}function Ip(t,n){var e=n?t.y:t.x;return t.children.forEach((function(t){e=Math.min(Ip(t,n),e)})),e}function Pp(t,n){Ap(t,-Ip(t,n),n)}function zp(t,n,e){e?n.y=t.x:n.x=t.x,t.c.forEach((function(t,r){zp(t,n.children[r],e)}))}function Tp(t,n,e){void 0===e&&(e=0),n?(t.x=e,e+=t.width):(t.y=e,e+=t.height),t.children.forEach((function(t){Tp(t,n,e)}))}Sp.fromNode=function(t,n){if(!t)return null;var e=[];return t.children.forEach((function(t){e.push(Sp.fromNode(t,n))})),n?new Sp(t.height,t.width,t.x,e):new Sp(t.width,t.height,t.y,e)};var Cp=Np,Lp=function(t,n){for(var e=Cp(t.data,n,!0),r=Cp(t.data,n,!0),o=t.children.length,i=Math.round(o/2),u=n.getSide||function(t,n){return n<i?\"right\":\"left\"},a=0;a<o;a++){var c=t.children[a];\"right\"===u(c,a)?r.children.push(c):e.children.push(c)}return e.eachNode((function(t){t.isRoot()||(t.side=\"left\")})),r.eachNode((function(t){t.isRoot()||(t.side=\"right\")})),{left:e,right:r}},Bp=Lp,Rp=[\"LR\",\"RL\",\"TB\",\"BT\",\"H\",\"V\"],Dp=[\"LR\",\"RL\",\"H\"],Hp=Rp[0],Vp=function(t,n,e){var r=n.direction||Hp;if(n.isHorizontal=function(t){return Dp.indexOf(t)>-1}(r),r&&-1===Rp.indexOf(r))throw new TypeError(\"Invalid direction: \"+r);if(r===Rp[0])e(t,n);else if(r===Rp[1])e(t,n),t.right2left();else if(r===Rp[2])e(t,n);else if(r===Rp[3])e(t,n),t.bottom2top();else if(r===Rp[4]||r===Rp[5]){var o=Bp(t,n),i=o.left,u=o.right;e(i,n),e(u,n),n.isHorizontal?i.right2left():i.bottom2top(),u.translate(i.x-u.x,i.y-u.y),t.x=i.x,t.y=u.y;var a=t.getBoundingBox();n.isHorizontal?a.top<0&&t.translate(0,-a.top):a.left<0&&t.translate(-a.left,0)}var c=n.fixedRoot;return void 0===c&&(c=!0),c&&t.translate(-(t.x+t.width/2+t.hgap),-(t.y+t.height/2+t.vgap)),t};function Yp(t,n){return Yp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},Yp(t,n)}var Fp=function(t,n){void 0===n&&(n={});var e=n.isHorizontal;function r(t){0===t.cs?(t.el=t,t.er=t,t.msel=t.mser=0):(t.el=t.c[0].el,t.msel=t.c[0].msel,t.er=t.c[t.cs-1].er,t.mser=t.c[t.cs-1].mser)}function o(t,n,e){for(var r=t.c[n-1],o=r.mod,f=t.c[n],s=f.mod;null!==r&&null!==f;){c(r)>e.low&&(e=e.nxt);var l=o+r.prelim+r.w-(s+f.prelim);l>0&&(s+=l,i(t,n,e.index,l));var h=c(r),d=c(f);h<=d&&null!==(r=a(r))&&(o+=r.mod),h>=d&&null!==(f=u(f))&&(s+=f.mod)}!r&&f?function(t,n,e,r){var o=t.c[0].el;o.tl=e;var i=r-e.mod-t.c[0].msel;o.mod+=i,o.prelim-=i,t.c[0].el=t.c[n].el,t.c[0].msel=t.c[n].msel}(t,n,f,s):r&&!f&&function(t,n,e,r){var o=t.c[n].er;o.tr=e;var i=r-e.mod-t.c[n].mser;o.mod+=i,o.prelim-=i,t.c[n].er=t.c[n-1].er,t.c[n].mser=t.c[n-1].mser}(t,n,r,o)}function i(t,n,e,r){t.c[n].mod+=r,t.c[n].msel+=r,t.c[n].mser+=r,function(t,n,e,r){if(e!==n-1){var o=n-e;t.c[e+1].shift+=r/o,t.c[n].shift-=r/o,t.c[n].change-=r-r/o}}(t,n,e,r)}function u(t){return 0===t.cs?t.tl:t.c[0]}function a(t){return 0===t.cs?t.tr:t.c[t.cs-1]}function c(t){return t.y+t.h}function f(t,n,e){for(;null!==e&&t>=e.low;)e=e.nxt;return{low:t,index:n,nxt:e}}Tp(t,e);var s=Sp.fromNode(t,e);return function t(n){if(0!==n.cs){t(n.c[0]);for(var e=f(c(n.c[0].el),0,null),i=1;i<n.cs;++i){t(n.c[i]);var u=c(n.c[i].er);o(n,i,e),e=f(u,i,e)}!function(t){t.prelim=(t.c[0].prelim+t.c[0].mod+t.c[t.cs-1].mod+t.c[t.cs-1].prelim+t.c[t.cs-1].w)/2-t.w/2}(n),r(n)}else r(n)}(s),function t(n,e){e+=n.mod,n.x=n.prelim+e,function(t){for(var n=0,e=0,r=0;r<t.cs;r++)e+=(n+=t.c[r].shift)+t.c[r].change,t.c[r].mod+=e}(n);for(var r=0;r<n.cs;r++)t(n.c[r],e)}(s,0),zp(s,t,e),Pp(t,e),t},Gp=Vp,Xp=xp,$p=function(t){var n,e;function r(){return t.apply(this,arguments)||this}return e=t,(n=r).prototype=Object.create(e.prototype),n.prototype.constructor=n,Yp(n,e),r.prototype.execute=function(){return Gp(this.rootNode,this.options,Fp)},r}(Mp),qp={};var Up=function(t,n){return n=Xp.assign({},qp,n),new $p(t,n).execute()},Wp=xp;function Zp(t,n){void 0===n&&(n=[]);var e=this;e.x=e.y=0,e.leftChild=e.rightChild=null,e.height=0,e.children=n}var Kp={isHorizontal:!0,nodeSep:20,nodeSize:20,rankSep:200,subTreeSep:10};function Qp(t,n,e){e?(n.x=t.x,n.y=t.y):(n.x=t.y,n.y=t.x),t.children.forEach((function(t,r){Qp(t,n.children[r],e)}))}function Jp(t,n){return Jp=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},Jp(t,n)}var tg=function(t,n){void 0===n&&(n={}),n=Wp.assign({},Kp,n);var e,r=0;var o=function t(n){if(!n)return null;n.width=0,n.depth&&n.depth>r&&(r=n.depth);var e=n.children,o=e.length,i=new Zp(n.height,[]);return e.forEach((function(n,e){var r=t(n);i.children.push(r),0===e&&(i.leftChild=r),e===o-1&&(i.rightChild=r)})),i.originNode=n,i.isLeaf=n.isLeaf(),i}(t);return function t(n){if(n.isLeaf||0===n.children.length)n.drawingDepth=r;else{var e=n.children.map((function(n){return t(n)})),o=Math.min.apply(null,e);n.drawingDepth=o-1}return n.drawingDepth}(o),function t(r){r.x=r.drawingDepth*n.rankSep,r.isLeaf?(r.y=0,e&&(r.y=e.y+e.height+n.nodeSep,r.originNode.parent!==e.originNode.parent&&(r.y+=n.subTreeSep)),e=r):(r.children.forEach((function(n){t(n)})),r.y=(r.leftChild.y+r.rightChild.y)/2)}(o),Qp(o,t,n.isHorizontal),t},ng=Vp,eg=xp,rg=function(t){var n,e;function r(){return t.apply(this,arguments)||this}return e=t,(n=r).prototype=Object.create(e.prototype),n.prototype.constructor=n,Jp(n,e),r.prototype.execute=function(){var t=this;return t.rootNode.width=0,ng(t.rootNode,t.options,tg)},r}(Mp),og={};var ig=function(t,n){return n=eg.assign({},og,n),new rg(t,n).execute()},ug=xp;function ag(t,n){return ag=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},ag(t,n)}var cg=Mp,fg=function(t,n,e,r){var o=null;t.eachNode((function(t){!function(t,n,e,r,o){var i=\"function\"==typeof e?e(t):e*t.depth;if(!r)try{if(t.id===t.parent.children[0].id)return t.x+=i,void(t.y=n?n.y:0)}catch(t){}if(t.x+=i,n){if(t.y=n.y+ug.getHeight(n,t,o),n.parent&&t.parent.id!==n.parent.id){var u=n.parent,a=u.y+ug.getHeight(u,t,o);t.y=a>t.y?a:t.y}}else t.y=0}(t,o,n,e,r),o=t}))},sg=Lp,lg=xp,hg=[\"LR\",\"RL\",\"H\"],dg=hg[0],vg=function(t){var n,e;function r(){return t.apply(this,arguments)||this}return e=t,(n=r).prototype=Object.create(e.prototype),n.prototype.constructor=n,ag(n,e),r.prototype.execute=function(){var t=this.options,n=this.rootNode;t.isHorizontal=!0;var e=t.indent,r=void 0===e?20:e,o=t.dropCap,i=void 0===o||o,u=t.direction,a=void 0===u?dg:u,c=t.align;if(a&&-1===hg.indexOf(a))throw new TypeError(\"Invalid direction: \"+a);if(a===hg[0])fg(n,r,i,c);else if(a===hg[1])fg(n,r,i,c),n.right2left();else if(a===hg[2]){var f=sg(n,t),s=f.left,l=f.right;fg(s,r,i,c),s.right2left(),fg(l,r,i,c);var h=s.getBoundingBox();l.translate(h.width,0),n.x=l.x-n.width/2}return n},r}(cg),pg={};var gg=function(t,n){return n=lg.assign({},pg,n),new vg(t,n).execute()},yg=xp;function mg(t,n){var e=0;return t.children.length?t.children.forEach((function(t){e+=mg(t,n)})):e=t.height,t._subTreeSep=n.getSubTreeSep(t.data),t.totalHeight=Math.max(t.height,e)+2*t._subTreeSep,t.totalHeight}function wg(t){var n=t.children,e=n.length;if(e){n.forEach((function(t){wg(t)}));var r=n[0],o=n[e-1],i=o.y-r.y+o.height,u=0;if(n.forEach((function(t){u+=t.totalHeight})),i>t.height)t.y=r.y+i/2-t.height/2;else if(1!==n.length||t.height>u){var a=t.y+(t.height-i)/2-r.y;n.forEach((function(t){t.translate(0,a)}))}else t.y=(r.y+r.height/2+o.y+o.height/2)/2-t.height/2}}var bg={getSubTreeSep:function(){return 0}};function xg(t,n){return xg=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},xg(t,n)}var _g=function(t,n){void 0===n&&(n={}),n=yg.assign({},bg,n),t.parent={x:0,width:0,height:0,y:0},t.BFTraverse((function(t){t.x=t.parent.x+t.parent.width})),t.parent=null,mg(t,n),t.startY=0,t.y=t.totalHeight/2-t.height/2,t.eachNode((function(t){var n=t.children,e=n.length;if(e){var r=n[0];if(r.startY=t.startY+t._subTreeSep,1===e)r.y=t.y+t.height/2-r.height/2;else{r.y=r.startY+r.totalHeight/2-r.height/2;for(var o=1;o<e;o++){var i=n[o];i.startY=n[o-1].startY+n[o-1].totalHeight,i.y=i.startY+i.totalHeight/2-i.height/2}}}})),wg(t)},Eg=Vp,kg=xp,Ng=function(t){var n,e;function r(){return t.apply(this,arguments)||this}return e=t,(n=r).prototype=Object.create(e.prototype),n.prototype.constructor=n,xg(n,e),r.prototype.execute=function(){return Eg(this.rootNode,this.options,_g)},r}(Mp),Og={};var jg=function(t,n){return n=kg.assign({},Og,n),new Ng(t,n).execute()},Mg=nn({compactBox:Up,dendrogram:ig,indented:gg,mindmap:jg});function Sg(){var t=this.graph.getConfig().layout,n=t.defaultTranslateY,e=void 0===n?150:n,r=Mg.compactBox(this.graph.nodesConfig,{direction:(null==t?void 0:t.direction)||\"TB\",getId:function(t){return t.id},getHeight:function(t){var n;return(null===(n=t.style)||void 0===n?void 0:n.height)||64},getWidth:function(t){var n;return(null===(n=t.style)||void 0===n?void 0:n.width)||200},getVGap:function(){return 30},getHGap:function(){return 50}}),o=0-r.x-r.width/2,i=Number(e)-r.y;this.updateNodePosition(r,o,i),this.graph.updateNodesPos(r),this.graph.updateEdgesPos(r)}var Ag={value:()=>{}};function Ig(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+\"\")||t in r||/[\\s.]/.test(t))throw new Error(\"illegal type: \"+t);r[t]=[]}return new Pg(r)}function Pg(t){this._=t}function zg(t,n){for(var e,r=0,o=t.length;r<o;++r)if((e=t[r]).name===n)return e.value}function Tg(t,n,e){for(var r=0,o=t.length;r<o;++r)if(t[r].name===n){t[r]=Ag,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}Pg.prototype=Ig.prototype={constructor:Pg,on:function(t,n){var e,r,o=this._,i=(r=o,(t+\"\").trim().split(/^|\\s+/).map((function(t){var n=\"\",e=t.indexOf(\".\");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);return{type:t,name:n}}))),u=-1,a=i.length;if(!(arguments.length<2)){if(null!=n&&\"function\"!=typeof n)throw new Error(\"invalid callback: \"+n);for(;++u<a;)if(e=(t=i[u]).type)o[e]=Tg(o[e],t.name,n);else if(null==n)for(e in o)o[e]=Tg(o[e],t.name,null);return this}for(;++u<a;)if((e=(t=i[u]).type)&&(e=zg(o[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Pg(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,o=new Array(e),i=0;i<e;++i)o[i]=arguments[i+2];if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(i=0,e=(r=this._[t]).length;i<e;++i)r[i].value.apply(n,o)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error(\"unknown type: \"+t);for(var r=this._[t],o=0,i=r.length;o<i;++o)r[o].value.apply(n,e)}};var Cg=\"http://www.w3.org/1999/xhtml\",Lg={svg:\"http://www.w3.org/2000/svg\",xhtml:Cg,xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"};function Bg(t){var n=t+=\"\",e=n.indexOf(\":\");return e>=0&&\"xmlns\"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Lg.hasOwnProperty(n)?{space:Lg[n],local:t}:t}function Rg(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Cg&&n.documentElement.namespaceURI===Cg?n.createElement(t):n.createElementNS(e,t)}}function Dg(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Hg(t){var n=Bg(t);return(n.local?Dg:Rg)(n)}function Vg(){}function Yg(t){return null==t?Vg:function(){return this.querySelector(t)}}function Fg(){return[]}function Gg(t){return null==t?Fg:function(){return this.querySelectorAll(t)}}function Xg(t){return function(){return null==(n=t.apply(this,arguments))?[]:Array.isArray(n)?n:Array.from(n);var n}}function $g(t){return function(){return this.matches(t)}}function qg(t){return function(n){return n.matches(t)}}var Ug=Array.prototype.find;function Wg(){return this.firstElementChild}var Zg=Array.prototype.filter;function Kg(){return Array.from(this.children)}function Qg(t){return new Array(t.length)}function Jg(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function ty(t,n,e,r,o,i){for(var u,a=0,c=n.length,f=i.length;a<f;++a)(u=n[a])?(u.__data__=i[a],r[a]=u):e[a]=new Jg(t,i[a]);for(;a<c;++a)(u=n[a])&&(o[a]=u)}function ny(t,n,e,r,o,i,u){var a,c,f,s=new Map,l=n.length,h=i.length,d=new Array(l);for(a=0;a<l;++a)(c=n[a])&&(d[a]=f=u.call(c,c.__data__,a,n)+\"\",s.has(f)?o[a]=c:s.set(f,c));for(a=0;a<h;++a)f=u.call(t,i[a],a,i)+\"\",(c=s.get(f))?(r[a]=c,c.__data__=i[a],s.delete(f)):e[a]=new Jg(t,i[a]);for(a=0;a<l;++a)(c=n[a])&&s.get(d[a])===c&&(o[a]=c)}function ey(t){return t.__data__}function ry(t){return\"object\"==typeof t&&\"length\"in t?t:Array.from(t)}function oy(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function iy(t){return function(){this.removeAttribute(t)}}function uy(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ay(t,n){return function(){this.setAttribute(t,n)}}function cy(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function fy(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function sy(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function ly(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function hy(t){return function(){this.style.removeProperty(t)}}function dy(t,n,e){return function(){this.style.setProperty(t,n,e)}}function vy(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function py(t,n){return t.style.getPropertyValue(n)||ly(t).getComputedStyle(t,null).getPropertyValue(n)}function gy(t){return function(){delete this[t]}}function yy(t,n){return function(){this[t]=n}}function my(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function wy(t){return t.trim().split(/^|\\s+/)}function by(t){return t.classList||new xy(t)}function xy(t){this._node=t,this._names=wy(t.getAttribute(\"class\")||\"\")}function _y(t,n){for(var e=by(t),r=-1,o=n.length;++r<o;)e.add(n[r])}function Ey(t,n){for(var e=by(t),r=-1,o=n.length;++r<o;)e.remove(n[r])}function ky(t){return function(){_y(this,t)}}function Ny(t){return function(){Ey(this,t)}}function Oy(t,n){return function(){(n.apply(this,arguments)?_y:Ey)(this,t)}}function jy(){this.textContent=\"\"}function My(t){return function(){this.textContent=t}}function Sy(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?\"\":n}}function Ay(){this.innerHTML=\"\"}function Iy(t){return function(){this.innerHTML=t}}function Py(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?\"\":n}}function zy(){this.nextSibling&&this.parentNode.appendChild(this)}function Ty(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Cy(){return null}function Ly(){var t=this.parentNode;t&&t.removeChild(this)}function By(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Ry(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Dy(t){return function(){var n=this.__on;if(n){for(var e,r=0,o=-1,i=n.length;r<i;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++o]=e:this.removeEventListener(e.type,e.listener,e.options);++o?n.length=o:delete this.__on}}}function Hy(t,n,e){return function(){var r,o=this.__on,i=function(t){return function(n){t.call(this,n,this.__data__)}}(n);if(o)for(var u=0,a=o.length;u<a;++u)if((r=o[u]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=e),void(r.value=n);this.addEventListener(t.type,i,e),r={type:t.type,name:t.name,value:n,listener:i,options:e},o?o.push(r):this.__on=[r]}}function Vy(t,n,e){var r=ly(t),o=r.CustomEvent;\"function\"==typeof o?o=new o(n,e):(o=r.document.createEvent(\"Event\"),e?(o.initEvent(n,e.bubbles,e.cancelable),o.detail=e.detail):o.initEvent(n,!1,!1)),t.dispatchEvent(o)}function Yy(t,n){return function(){return Vy(this,t,n)}}function Fy(t,n){return function(){return Vy(this,t,n.apply(this,arguments))}}Jg.prototype={constructor:Jg,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},xy.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute(\"class\",this._names.join(\" \")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute(\"class\",this._names.join(\" \")))},contains:function(t){return this._names.indexOf(t)>=0}};var Gy=[null];function Xy(t,n){this._groups=t,this._parents=n}function $y(){return new Xy([[document.documentElement]],Gy)}function qy(t){return\"string\"==typeof t?new Xy([[document.querySelector(t)]],[document.documentElement]):new Xy([[t]],Gy)}function Uy(t,n){if(t=function(t){let n;for(;n=t.sourceEvent;)t=n;return t}(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(n.getScreenCTM().inverse())).x,r.y]}if(n.getBoundingClientRect){var o=n.getBoundingClientRect();return[t.clientX-o.left-n.clientLeft,t.clientY-o.top-n.clientTop]}}return[t.pageX,t.pageY]}Xy.prototype=$y.prototype={constructor:Xy,select:function(t){\"function\"!=typeof t&&(t=Yg(t));for(var n=this._groups,e=n.length,r=new Array(e),o=0;o<e;++o)for(var i,u,a=n[o],c=a.length,f=r[o]=new Array(c),s=0;s<c;++s)(i=a[s])&&(u=t.call(i,i.__data__,s,a))&&(\"__data__\"in i&&(u.__data__=i.__data__),f[s]=u);return new Xy(r,this._parents)},selectAll:function(t){t=\"function\"==typeof t?Xg(t):Gg(t);for(var n=this._groups,e=n.length,r=[],o=[],i=0;i<e;++i)for(var u,a=n[i],c=a.length,f=0;f<c;++f)(u=a[f])&&(r.push(t.call(u,u.__data__,f,a)),o.push(u));return new Xy(r,o)},selectChild:function(t){return this.select(null==t?Wg:function(t){return function(){return Ug.call(this.children,t)}}(\"function\"==typeof t?t:qg(t)))},selectChildren:function(t){return this.selectAll(null==t?Kg:function(t){return function(){return Zg.call(this.children,t)}}(\"function\"==typeof t?t:qg(t)))},filter:function(t){\"function\"!=typeof t&&(t=$g(t));for(var n=this._groups,e=n.length,r=new Array(e),o=0;o<e;++o)for(var i,u=n[o],a=u.length,c=r[o]=[],f=0;f<a;++f)(i=u[f])&&t.call(i,i.__data__,f,u)&&c.push(i);return new Xy(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,ey);var e,r=n?ny:ty,o=this._parents,i=this._groups;\"function\"!=typeof t&&(e=t,t=function(){return e});for(var u=i.length,a=new Array(u),c=new Array(u),f=new Array(u),s=0;s<u;++s){var l=o[s],h=i[s],d=h.length,v=ry(t.call(l,l&&l.__data__,s,o)),p=v.length,g=c[s]=new Array(p),y=a[s]=new Array(p);r(l,h,g,y,f[s]=new Array(d),v,n);for(var m,w,b=0,x=0;b<p;++b)if(m=g[b]){for(b>=x&&(x=b+1);!(w=y[x])&&++x<p;);m._next=w||null}}return(a=new Xy(a,o))._enter=c,a._exit=f,a},enter:function(){return new Xy(this._enter||this._groups.map(Qg),this._parents)},exit:function(){return new Xy(this._exit||this._groups.map(Qg),this._parents)},join:function(t,n,e){var r=this.enter(),o=this,i=this.exit();return\"function\"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+\"\"),null!=n&&(o=n(o))&&(o=o.selection()),null==e?i.remove():e(i),r&&o?r.merge(o).order():o},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,o=e.length,i=r.length,u=Math.min(o,i),a=new Array(o),c=0;c<u;++c)for(var f,s=e[c],l=r[c],h=s.length,d=a[c]=new Array(h),v=0;v<h;++v)(f=s[v]||l[v])&&(d[v]=f);for(;c<o;++c)a[c]=e[c];return new Xy(a,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,o=t[n],i=o.length-1,u=o[i];--i>=0;)(r=o[i])&&(u&&4^r.compareDocumentPosition(u)&&u.parentNode.insertBefore(r,u),u=r);return this},sort:function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=oy);for(var e=this._groups,r=e.length,o=new Array(r),i=0;i<r;++i){for(var u,a=e[i],c=a.length,f=o[i]=new Array(c),s=0;s<c;++s)(u=a[s])&&(f[s]=u);f.sort(n)}return new Xy(o,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],o=0,i=r.length;o<i;++o){var u=r[o];if(u)return u}return null},size:function(){let t=0;for(const n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var o,i=n[e],u=0,a=i.length;u<a;++u)(o=i[u])&&t.call(o,o.__data__,u,i);return this},attr:function(t,n){var e=Bg(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?uy:iy:\"function\"==typeof n?e.local?sy:fy:e.local?cy:ay)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?hy:\"function\"==typeof n?vy:dy)(t,n,null==e?\"\":e)):py(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?gy:\"function\"==typeof n?my:yy)(t,n)):this.node()[t]},classed:function(t,n){var e=wy(t+\"\");if(arguments.length<2){for(var r=by(this.node()),o=-1,i=e.length;++o<i;)if(!r.contains(e[o]))return!1;return!0}return this.each((\"function\"==typeof n?Oy:n?ky:Ny)(e,n))},text:function(t){return arguments.length?this.each(null==t?jy:(\"function\"==typeof t?Sy:My)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?Ay:(\"function\"==typeof t?Py:Iy)(t)):this.node().innerHTML},raise:function(){return this.each(zy)},lower:function(){return this.each(Ty)},append:function(t){var n=\"function\"==typeof t?t:Hg(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))},insert:function(t,n){var e=\"function\"==typeof t?t:Hg(t),r=null==n?Cy:\"function\"==typeof n?n:Yg(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(Ly)},clone:function(t){return this.select(t?Ry:By)},datum:function(t){return arguments.length?this.property(\"__data__\",t):this.node().__data__},on:function(t,n,e){var r,o,i=function(t){return t.trim().split(/^|\\s+/).map((function(t){var n=\"\",e=t.indexOf(\".\");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}(t+\"\"),u=i.length;if(!(arguments.length<2)){for(a=n?Hy:Dy,r=0;r<u;++r)this.each(a(i[r],n,e));return this}var a=this.node().__on;if(a)for(var c,f=0,s=a.length;f<s;++f)for(r=0,c=a[f];r<u;++r)if((o=i[r]).type===c.type&&o.name===c.name)return c.value},dispatch:function(t,n){return this.each((\"function\"==typeof n?Fy:Yy)(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,o=t[n],i=0,u=o.length;i<u;++i)(r=o[i])&&(yield r)}};const Wy={passive:!1},Zy={capture:!0,passive:!1};function Ky(t){t.stopImmediatePropagation()}function Qy(t){t.preventDefault(),t.stopImmediatePropagation()}function Jy(t){var n=t.document.documentElement,e=qy(t).on(\"dragstart.drag\",Qy,Zy);\"onselectstart\"in n?e.on(\"selectstart.drag\",Qy,Zy):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect=\"none\")}function tm(t,n){var e=t.document.documentElement,r=qy(t).on(\"dragstart.drag\",null);n&&(r.on(\"click.drag\",Qy,Zy),setTimeout((function(){r.on(\"click.drag\",null)}),0)),\"onselectstart\"in e?r.on(\"selectstart.drag\",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}var nm=t=>()=>t;function em(t,{sourceEvent:n,subject:e,target:r,identifier:o,active:i,x:u,y:a,dx:c,dy:f,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:u,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:s}})}function rm(t){return!t.ctrlKey&&!t.button}function om(){return this.parentNode}function im(t,n){return null==n?{x:t.x,y:t.y}:n}function um(){return navigator.maxTouchPoints||\"ontouchstart\"in this}function am(){var t,n,e,r,o=rm,i=om,u=im,a=um,c={},f=Ig(\"start\",\"drag\",\"end\"),s=0,l=0;function h(t){t.on(\"mousedown.drag\",d).filter(a).on(\"touchstart.drag\",g).on(\"touchmove.drag\",y,Wy).on(\"touchend.drag touchcancel.drag\",m).style(\"touch-action\",\"none\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\")}function d(u,a){if(!r&&o.call(this,u,a)){var c=w(this,i.call(this,u,a),u,a,\"mouse\");c&&(qy(u.view).on(\"mousemove.drag\",v,Zy).on(\"mouseup.drag\",p,Zy),Jy(u.view),Ky(u),e=!1,t=u.clientX,n=u.clientY,c(\"start\",u))}}function v(r){if(Qy(r),!e){var o=r.clientX-t,i=r.clientY-n;e=o*o+i*i>l}c.mouse(\"drag\",r)}function p(t){qy(t.view).on(\"mousemove.drag mouseup.drag\",null),tm(t.view,e),Qy(t),c.mouse(\"end\",t)}function g(t,n){if(o.call(this,t,n)){var e,r,u=t.changedTouches,a=i.call(this,t,n),c=u.length;for(e=0;e<c;++e)(r=w(this,a,t,n,u[e].identifier,u[e]))&&(Ky(t),r(\"start\",t,u[e]))}}function y(t){var n,e,r=t.changedTouches,o=r.length;for(n=0;n<o;++n)(e=c[r[n].identifier])&&(Qy(t),e(\"drag\",t,r[n]))}function m(t){var n,e,o=t.changedTouches,i=o.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),n=0;n<i;++n)(e=c[o[n].identifier])&&(Ky(t),e(\"end\",t,o[n]))}function w(t,n,e,r,o,i){var a,l,d,v=f.copy(),p=Uy(i||e,n);if(null!=(d=u.call(t,new em(\"beforestart\",{sourceEvent:e,target:h,identifier:o,active:s,x:p[0],y:p[1],dx:0,dy:0,dispatch:v}),r)))return a=d.x-p[0]||0,l=d.y-p[1]||0,function e(i,u,f){var g,y=p;switch(i){case\"start\":c[o]=e,g=s++;break;case\"end\":delete c[o],--s;case\"drag\":p=Uy(f||u,n),g=s}v.call(i,t,new em(i,{sourceEvent:u,subject:d,target:h,identifier:o,active:g,x:p[0]+a,y:p[1]+l,dx:p[0]-y[0],dy:p[1]-y[1],dispatch:v}),r)}}return h.filter=function(t){return arguments.length?(o=\"function\"==typeof t?t:nm(!!t),h):o},h.container=function(t){return arguments.length?(i=\"function\"==typeof t?t:nm(t),h):i},h.subject=function(t){return arguments.length?(u=\"function\"==typeof t?t:nm(t),h):u},h.touchable=function(t){return arguments.length?(a=\"function\"==typeof t?t:nm(!!t),h):a},h.on=function(){var t=f.on.apply(f,arguments);return t===f?h:t},h.clickDistance=function(t){return arguments.length?(l=(t=+t)*t,h):Math.sqrt(l)},h}function cm(t,n){var e,r;if(!t&&!n)return!0;if(!t||!n||t.size!==n.size)return!1;if(!t.size&&!n.size)return!0;try{for(var o=pp(t.keys()),i=o.next();!i.done;i=o.next()){var u=i.value;if(!n.has(u))return!1}}catch(t){e={error:t}}finally{try{i&&!i.done&&(r=o.return)&&r.call(o)}finally{if(e)throw e.error}}return!0}function fm(t,n,e){if(e){var r=[];t.forEach((function(t,e){(null==n?void 0:n.has(e))||r.push(t)})),r.length&&e(r)}}em.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var sm={error001:function(){return\"[Ink Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001\"},error002:function(){return\"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.\"},error003:function(t){return'Node type \"'.concat(t,'\" not found. Using fallback type \"default\".')},error004:function(){return\"The Ink Flow parent container needs a width and a height to render the graph.\"},error005:function(){return\"Only child nodes can use a parent extent.\"},error006:function(){return\"Can't create edge. An edge needs a source and a target.\"},error007:function(t){return\"The old edge with id=\".concat(t,\" does not exist.\")},error009:function(t){return'Marker type \"'.concat(t,\"\\\" doesn't exist.\")},error008:function(t,n){var e=n.id,r=n.sourceHandle,o=n.targetHandle;return\"Couldn't create edge for \".concat(t,' handle id: \"').concat(r?o:r,'\", edge id: ').concat(e,\".\")},error010:function(){return\"Handle: No node id found. Make sure to only use a Handle inside a custom Node.\"},error011:function(t){return'Edge type \"'.concat(t,'\" not found. Using fallback type \"default\".')},error012:function(t){return'Node with id \"'.concat(t,'\" does not exist, it may have been removed. This can happen when a node is deleted before the \"onNodeClick\" handler is called.')},error013:function(t){return void 0===t&&(t=\"react\"),\"It seems that you haven't loaded the styles. Please import '@xyflow/\".concat(t,\"/dist/style.css' or base.css to make sure everything is working properly.\")}},lm=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],hm=[\"Enter\",\" \",\"Escape\"],dm=function(t){return\"id\"in t&&\"source\"in t&&\"target\"in t},vm=function(t){return\"id\"in t&&\"position\"in t&&!(\"source\"in t)&&!(\"target\"in t)},pm=function(t){return\"id\"in t&&\"internals\"in t&&!(\"source\"in t)&&!(\"target\"in t)},gm=function(t,n,e){if(!t.id)return[];var r=new Set;return e.forEach((function(n){n.source===t.id&&r.add(n.target)})),n.filter((function(t){return r.has(t.id)}))},ym=function(t,n,e){if(!t.id)return[];var r=new Set;return e.forEach((function(n){n.target===t.id&&r.add(n.source)})),n.filter((function(t){return r.has(t.id)}))},mm=function(t,n){void 0===n&&(n=[0,0]);var e=qm(t),r=e.width,o=e.height,i=\"internals\"in t?t.internals.positionAbsolute:t.position,u=t.origin||n,a=r*u[0],c=o*u[1];return{position:{x:t.position.x-a,y:t.position.y-c},positionAbsolute:{x:i.x-a,y:i.y-c}}},wm=function(t,n){if(void 0===n&&(n={nodeOrigin:[0,0]}),0===t.length)return{x:0,y:0,width:0,height:0};var e=t.reduce((function(t,e){var r=Tm(e,n.nodeOrigin);return Am(t,r)}),{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Pm(e)},bm=function(t,n){if(void 0===n&&(n={nodeOrigin:[0,0]}),0===t.size)return{x:0,y:0,width:0,height:0};var e={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return t.forEach((function(t){if(null==n.filter||n.filter(t)){var r=Tm(t,n.nodeOrigin);e=Am(e,r)}})),Pm(e)},xm=function(t,n,e,r,o,i){var u,a,c,f,s,l,h,d,v=gp(void 0===e?[0,0,1]:e,3),p=v[0],g=v[1],y=v[2];void 0===r&&(r=!1),void 0===o&&(o=!1),void 0===i&&(i=[0,0]);var m=hp(hp({},Ym(n,[p,g,y])),{width:n.width/y,height:n.height/y}),w=[];try{for(var b=pp(t),x=b.next();!x.done;x=b.next()){var _=gp(x.value,2)[1],E=_.measured,k=_.selectable,N=void 0===k||k,O=_.hidden,j=void 0!==O&&O,M=null!==(s=null!==(f=null!==(c=E.width)&&void 0!==c?c:_.width)&&void 0!==f?f:_.initialWidth)&&void 0!==s?s:null,S=null!==(d=null!==(h=null!==(l=E.height)&&void 0!==l?l:_.height)&&void 0!==h?h:_.initialHeight)&&void 0!==d?d:null;if(!(o&&!N||j)){var A=Lm(m,zm(_,i));(null===M||null===S||r&&A>0||A>=(null!=M?M:0)*(null!=S?S:0)||_.dragging)&&w.push(_)}}}catch(t){u={error:t}}finally{try{x&&!x.done&&(a=b.return)&&a.call(b)}finally{if(u)throw u.error}}return w},_m=function(t,n){var e=new Set;return t.forEach((function(t){e.add(t.id)})),n.filter((function(t){return e.has(t.source)||e.has(t.target)}))};function Em(t,n){var e,r,o,i=t.nodeLookup,u=t.width,a=t.height,c=t.panZoom,f=t.minZoom,s=t.maxZoom,l=t.nodeOrigin,h=void 0===l?[0,0]:l,d=[],v=(null==n?void 0:n.nodes)?new Set(n.nodes.map((function(t){return t.id}))):null;if(i.forEach((function(t){!(t.measured.width&&t.measured.height&&((null==n?void 0:n.includeHiddenNodes)||!t.hidden))||v&&!v.has(t.id)||d.push(t)})),d.length>0){var p=wm(d,{nodeOrigin:h}),g=Gm(p,u,a,null!==(e=null==n?void 0:n.minZoom)&&void 0!==e?e:f,null!==(r=null==n?void 0:n.maxZoom)&&void 0!==r?r:s,null!==(o=null==n?void 0:n.padding)&&void 0!==o?o:.1);return c.setViewport(g,{duration:null==n?void 0:n.duration}),!0}return!1}function km(t){var n=t.nodeId,e=t.nextPosition,r=t.nodeLookup,o=t.nodeOrigin,i=void 0===o?[0,0]:o,u=t.nodeExtent,a=t.onError,c=r.get(n),f=c.parentId?r.get(c.parentId):void 0,s=f?mm(f,f.origin||i).positionAbsolute:{x:0,y:0},l=s.x,h=s.y,d=function(t,n){var e,r,o,i;return n&&\"parent\"!==n?[n[0],[n[1][0]-(null!==(r=null===(e=t.measured)||void 0===e?void 0:e.width)&&void 0!==r?r:0),n[1][1]-(null!==(i=null===(o=t.measured)||void 0===o?void 0:o.height)&&void 0!==i?i:0)]]:n}(c,c.extent||u);if(\"parent\"!==c.extent||c.expandParent)f&&$m(c.extent)&&(d=[[c.extent[0][0]+l,c.extent[0][1]+h],[c.extent[1][0]+l,c.extent[1][1]+h]]);else if(f){var v=c.measured.width,p=c.measured.height,g=f.measured.width,y=f.measured.height;if(v&&p&&g&&y){var m=c.origin||i,w=l+v*m[0],b=h+p*m[1];d=[[w,b],[w+g-v,b+y-p]]}}else null==a||a(\"005\",sm.error005());var x=$m(d)?jm(e,d):e;return{position:{x:x.x-l,y:x.y-h},positionAbsolute:x}}function Nm(t){return dp(this,arguments,void 0,(function(t){var n,e,r,o,i,u,a,c,f,s,l,h,d,v,p,g,y,m,w,b=t.nodesToRemove,x=void 0===b?[]:b,_=t.edgesToRemove,E=void 0===_?[]:_,k=t.nodes,N=t.edges,O=t.onBeforeDelete;return vp(this,(function(t){switch(t.label){case 0:n=new Set(x.map((function(t){return t.id}))),e=[],r=function(t){if(!1===t.deletable)return\"continue\";var r=n.has(t.id),o=!r&&t.parentId&&e.find((function(n){return n.id===t.parentId}));(r||o)&&e.push(t)};try{for(o=pp(k),i=o.next();!i.done;i=o.next())u=i.value,r(u)}catch(t){g={error:t}}finally{try{i&&!i.done&&(y=o.return)&&y.call(o)}finally{if(g)throw g.error}}a=new Set(E.map((function(t){return t.id}))),c=N.filter((function(t){return!1!==t.deletable})),f=_m(e,c),s=f,l=function(t){a.has(t.id)&&!s.find((function(n){return n.id===t.id}))&&s.push(t)};try{for(h=pp(c),d=h.next();!d.done;d=h.next())v=d.value,l(v)}catch(t){m={error:t}}finally{try{d&&!d.done&&(w=h.return)&&w.call(h)}finally{if(m)throw m.error}}return O?[4,O({nodes:e,edges:s})]:[2,{edges:s,nodes:e}];case 1:return\"boolean\"==typeof(p=t.sent())?[2,p?{edges:s,nodes:e}:{edges:[],nodes:[]}]:[2,p]}}))}))}var Om=function(t,n,e){return void 0===n&&(n=0),void 0===e&&(e=1),Math.min(Math.max(t,n),e)},jm=function(t,n){return void 0===t&&(t={x:0,y:0}),{x:Om(t.x,n[0][0],n[1][0]),y:Om(t.y,n[0][1],n[1][1])}},Mm=function(t,n,e){return t<n?Om(Math.abs(t-n),1,50)/50:t>e?-Om(Math.abs(t-e),1,50)/50:0},Sm=function(t,n){return[20*Mm(t.x,35,n.width-35),20*Mm(t.y,35,n.height-35)]},Am=function(t,n){return{x:Math.min(t.x,n.x),y:Math.min(t.y,n.y),x2:Math.max(t.x2,n.x2),y2:Math.max(t.y2,n.y2)}},Im=function(t){var n=t.x,e=t.y;return{x:n,y:e,x2:n+t.width,y2:e+t.height}},Pm=function(t){var n=t.x,e=t.y;return{x:n,y:e,width:t.x2-n,height:t.y2-e}},zm=function(t,n){var e,r,o,i,u,a;void 0===n&&(n=[0,0]);var c=mm(t,n).positionAbsolute;return{x:c.x,y:c.y,width:null!==(o=null!==(r=null===(e=t.measured)||void 0===e?void 0:e.width)&&void 0!==r?r:t.width)&&void 0!==o?o:0,height:null!==(a=null!==(u=null===(i=t.measured)||void 0===i?void 0:i.height)&&void 0!==u?u:t.height)&&void 0!==a?a:0}},Tm=function(t,n){var e,r,o,i,u,a;void 0===n&&(n=[0,0]);var c=mm(t,n).positionAbsolute,f=c.x,s=c.y;return{x:f,y:s,x2:f+(null!==(o=null!==(r=null===(e=t.measured)||void 0===e?void 0:e.width)&&void 0!==r?r:t.width)&&void 0!==o?o:0),y2:s+(null!==(a=null!==(u=null===(i=t.measured)||void 0===i?void 0:i.height)&&void 0!==u?u:t.height)&&void 0!==a?a:0)}},Cm=function(t,n){return Pm(Am(Im(t),Im(n)))},Lm=function(t,n){var e=Math.max(0,Math.min(t.x+t.width,n.x+n.width)-Math.max(t.x,n.x)),r=Math.max(0,Math.min(t.y+t.height,n.y+n.height)-Math.max(t.y,n.y));return Math.ceil(e*r)},Bm=function(t){return Rm(t.width)&&Rm(t.height)&&Rm(t.x)&&Rm(t.y)},Rm=function(t){return!isNaN(t)&&isFinite(t)},Dm=function(t,n){},Hm=function(t){var n=t.x,e=t.y,r=t.width,o=t.height,i=t.origin,u=void 0===i?[0,0]:i;return!r||!o||u[0]<0||u[1]<0||u[0]>1||u[1]>1?{x:n,y:e}:{x:n-r*u[0],y:e-o*u[1]}},Vm=function(t,n){return void 0===n&&(n=[1,1]),{x:n[0]*Math.round(t.x/n[0]),y:n[1]*Math.round(t.y/n[1])}},Ym=function(t,n,e,r){var o=t.x,i=t.y,u=gp(n,3),a=u[0],c=u[1],f=u[2];void 0===e&&(e=!1),void 0===r&&(r=[1,1]);var s={x:(o-a)/f,y:(i-c)/f};return e?Vm(s,r):s},Fm=function(t,n){var e=t.x,r=t.y,o=gp(n,3),i=o[0],u=o[1],a=o[2];return{x:e*a+i,y:r*a+u}},Gm=function(t,n,e,r,o,i){var u=n/(t.width*(1+i)),a=e/(t.height*(1+i)),c=Math.min(u,a),f=Om(c,r,o);return{x:n/2-(t.x+t.width/2)*f,y:e/2-(t.y+t.height/2)*f,zoom:f}},Xm=function(){var t;return\"undefined\"!=typeof navigator&&(null===(t=null===navigator||void 0===navigator?void 0:navigator.userAgent)||void 0===t?void 0:t.indexOf(\"Mac\"))>=0};function $m(t){return void 0!==t&&\"parent\"!==t}function qm(t){var n,e,r,o,i,u,a,c;return{width:null!==(o=null!==(r=null!==(e=null===(n=t.measured)||void 0===n?void 0:n.width)&&void 0!==e?e:t.width)&&void 0!==r?r:t.initialWidth)&&void 0!==o?o:0,height:null!==(c=null!==(a=null!==(u=null===(i=t.measured)||void 0===i?void 0:i.height)&&void 0!==u?u:t.height)&&void 0!==a?a:t.initialHeight)&&void 0!==c?c:0}}function Um(t){var n,e,r,o,i,u;return void 0!==(null!==(r=null!==(e=null===(n=t.measured)||void 0===n?void 0:n.width)&&void 0!==e?e:t.width)&&void 0!==r?r:t.initialWidth)&&void 0!==(null!==(u=null!==(i=null===(o=t.measured)||void 0===o?void 0:o.height)&&void 0!==i?i:t.height)&&void 0!==u?u:t.initialHeight)}function Wm(t,n,e,r){var o,i;void 0===r&&(r=[0,0]);for(var u=n,a=hp({},t);u;){var c=e.get(n);if(u=null==c?void 0:c.parentId,c){var f=c.origin||r,s=(null!==(o=c.measured.width)&&void 0!==o?o:0)*f[0],l=(null!==(i=c.measured.height)&&void 0!==i?i:0)*f[1];a.x+=c.position.x-s,a.y+=c.position.y-l}}return a}function Zm(t,n){var e=n.snapGrid,r=void 0===e?[0,0]:e,o=n.snapToGrid,i=void 0!==o&&o,u=n.transform,a=cw(t),c=a.x,f=a.y,s=Ym({x:c,y:f},u),l=i?Vm(s,r):s,h=l.x,d=l.y;return hp({xSnapped:h,ySnapped:d},s)}var Km=function(t){return{width:t.offsetWidth,height:t.offsetHeight}},Qm=function(t){var n;return(null===(n=t.getRootNode)||void 0===n?void 0:n.call(t))||(null===window||void 0===window?void 0:window.document)},Jm=[\"INPUT\",\"SELECT\",\"TEXTAREA\"];function tw(t){var n,e,r=(null===(e=null===(n=t.composedPath)||void 0===n?void 0:n.call(t))||void 0===e?void 0:e[0])||t.target;return Jm.includes(null==r?void 0:r.nodeName)||(null==r?void 0:r.hasAttribute(\"contenteditable\"))||!!(null==r?void 0:r.closest(\".nokey\"))}var nw,ew,rw,ow,iw,uw,aw=function(t){return\"clientX\"in t},cw=function(t,n){var e,r,o,i,u=aw(t),a=u?t.clientX:null===(e=t.touches)||void 0===e?void 0:e[0].clientX,c=u?t.clientY:null===(r=t.touches)||void 0===r?void 0:r[0].clientY;return{x:a-(null!==(o=null==n?void 0:n.left)&&void 0!==o?o:0),y:c-(null!==(i=null==n?void 0:n.top)&&void 0!==i?i:0)}},fw=function(t,n,e,r){void 0===r&&(r=[0,0]);var o=n.querySelectorAll(t);if(!o||!o.length)return null;var i=Array.from(o),u=n.getBoundingClientRect(),a=u.width*r[0],c=u.height*r[1];return i.map((function(t){var n=t.getBoundingClientRect();return hp({id:t.getAttribute(\"data-handleid\"),position:t.getAttribute(\"data-handlepos\"),x:(n.left-u.left-a)/e,y:(n.top-u.top-c)/e},Km(t))}))};function sw(t){var n=t.sourceX,e=t.sourceY,r=t.targetX,o=t.targetY,i=t.sourceControlX,u=t.sourceControlY,a=.125*n+.375*i+.375*t.targetControlX+.125*r,c=.125*e+.375*u+.375*t.targetControlY+.125*o;return[a,c,Math.abs(a-n),Math.abs(c-e)]}function lw(t,n){return t>=0?.5*t:25*n*Math.sqrt(-t)}function hw(t){var n=t.pos,e=t.x1,r=t.y1,o=t.x2,i=t.y2,u=t.c;switch(n){case uw.Left:return[e-lw(e-o,u),r];case uw.Right:return[e+lw(o-e,u),r];case uw.Top:return[e,r-lw(r-i,u)];case uw.Bottom:return[e,r+lw(i-r,u)]}}function dw(t){var n=t.sourceX,e=t.sourceY,r=t.sourcePosition,o=void 0===r?uw.Bottom:r,i=t.targetX,u=t.targetY,a=t.targetPosition,c=void 0===a?uw.Top:a,f=t.curvature,s=void 0===f?.25:f,l=gp(hw({pos:o,x1:n,y1:e,x2:i,y2:u,c:s}),2),h=l[0],d=l[1],v=gp(hw({pos:c,x1:i,y1:u,x2:n,y2:e,c:s}),2),p=v[0],g=v[1],y=gp(sw({sourceX:n,sourceY:e,targetX:i,targetY:u,sourceControlX:h,sourceControlY:d,targetControlX:p,targetControlY:g}),4),m=y[0],w=y[1],b=y[2],x=y[3];return[\"M\".concat(n,\",\").concat(e,\" C\").concat(h,\",\").concat(d,\" \").concat(p,\",\").concat(g,\" \").concat(i,\",\").concat(u),m,w,b,x]}function vw(t){var n=t.sourceX,e=t.sourceY,r=t.targetX,o=t.targetY,i=Math.abs(r-n)/2,u=r<n?r+i:r-i,a=Math.abs(o-e)/2;return[u,o<e?o+a:o-a,i,a]}function pw(t){var n=t.sourceNode,e=t.targetNode,r=t.selected,o=void 0!==r&&r,i=t.zIndex,u=void 0===i?0:i,a=t.elevateOnSelect;if(!(void 0!==a&&a))return u;var c=o||e.selected||n.selected,f=Math.max(n.internals.z||0,e.internals.z||0,1e3);return u+(c?f:0)}function gw(t){var n=t.sourceNode,e=t.targetNode,r=t.width,o=t.height,i=t.transform,u=Am(Tm(n),Tm(e));u.x===u.x2&&(u.x2+=1),u.y===u.y2&&(u.y2+=1);var a={x:-i[0]/i[2],y:-i[1]/i[2],width:r/i[2],height:o/i[2]};return Lm(a,Pm(u))>0}!function(t){t.Strict=\"strict\",t.Loose=\"loose\"}(nw||(nw={})),function(t){t.Free=\"free\",t.Vertical=\"vertical\",t.Horizontal=\"horizontal\"}(ew||(ew={})),function(t){t.Partial=\"partial\",t.Full=\"full\"}(rw||(rw={})),function(t){t.Bezier=\"default\",t.Straight=\"straight\",t.Step=\"step\",t.SmoothStep=\"smoothstep\",t.SimpleBezier=\"simplebezier\"}(ow||(ow={})),function(t){t.Arrow=\"arrow\",t.ArrowClosed=\"arrowclosed\"}(iw||(iw={})),function(t){t.Left=\"left\",t.Top=\"top\",t.Right=\"right\",t.Bottom=\"bottom\"}(uw||(uw={}));var yw,mw=function(t){var n=t.source,e=t.sourceHandle,r=t.target,o=t.targetHandle;return\"xy-edge__\".concat(n).concat(e||\"\",\"-\").concat(r).concat(o||\"\")},ww=function(t,n){return t.source&&t.target?function(t,n){return n.some((function(n){return!(n.source!==t.source||n.target!==t.target||n.sourceHandle!==t.sourceHandle&&(n.sourceHandle||t.sourceHandle)||n.targetHandle!==t.targetHandle&&(n.targetHandle||t.targetHandle))}))}(e=dm(t)?hp({},t):hp(hp({},t),{id:mw(t)}),n)?n:(null===e.sourceHandle&&delete e.sourceHandle,null===e.targetHandle&&delete e.targetHandle,n.concat(e)):(sm.error006(),n);var e},bw=function(t,n,e,r){void 0===r&&(r={shouldReplaceId:!0});var o=t.id,i=function(t,n){var e={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&n.indexOf(r)<0&&(e[r]=t[r]);if(null!=t&&\"function\"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(t);o<r.length;o++)n.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(t,r[o])&&(e[r[o]]=t[r[o]])}return e}(t,[\"id\"]);if(!n.source||!n.target)return sm.error006(),e;if(!e.find((function(n){return n.id===t.id})))return sm.error007(o),e;var u=hp(hp({},i),{id:r.shouldReplaceId?mw(n):o,source:n.source,target:n.target,sourceHandle:n.sourceHandle,targetHandle:n.targetHandle});return e.filter((function(t){return t.id!==o})).concat(u)};function xw(t){var n=t.sourceX,e=t.sourceY,r=t.targetX,o=t.targetY,i=gp(vw({sourceX:n,sourceY:e,targetX:r,targetY:o}),4),u=i[0],a=i[1],c=i[2],f=i[3];return[\"M \".concat(n,\",\").concat(e,\"L \").concat(r,\",\").concat(o),u,a,c,f]}var _w=((yw={})[uw.Left]={x:-1,y:0},yw[uw.Right]={x:1,y:0},yw[uw.Top]={x:0,y:-1},yw[uw.Bottom]={x:0,y:1},yw),Ew=function(t){var n=t.source,e=t.sourcePosition,r=void 0===e?uw.Bottom:e,o=t.target;return r===uw.Left||r===uw.Right?n.x<o.x?{x:1,y:0}:{x:-1,y:0}:n.y<o.y?{x:0,y:1}:{x:0,y:-1}},kw=function(t,n){return Math.sqrt(Math.pow(n.x-t.x,2)+Math.pow(n.y-t.y,2))};function Nw(t){var n=t.sourceX,e=t.sourceY,r=t.sourcePosition,o=void 0===r?uw.Bottom:r,i=t.targetX,u=t.targetY,a=t.targetPosition,c=void 0===a?uw.Top:a,f=t.borderRadius,s=void 0===f?5:f,l=t.centerX,h=t.centerY,d=t.offset,v=gp(function(t){var n,e,r,o,i=t.source,u=t.sourcePosition,a=void 0===u?uw.Bottom:u,c=t.target,f=t.targetPosition,s=void 0===f?uw.Top:f,l=t.center,h=t.offset,d=_w[a],v=_w[s],p={x:i.x+d.x*h,y:i.y+d.y*h},g={x:c.x+v.x*h,y:c.y+v.y*h},y=Ew({source:p,sourcePosition:a,target:g}),m=0!==y.x?\"x\":\"y\",w=y[m],b=[],x={x:0,y:0},_={x:0,y:0},E=gp(vw({sourceX:i.x,sourceY:i.y,targetX:c.x,targetY:c.y}),4),k=E[0],N=E[1],O=E[2],j=E[3];if(d[m]*v[m]==-1){r=null!==(n=l.x)&&void 0!==n?n:k,o=null!==(e=l.y)&&void 0!==e?e:N;var M=[{x:r,y:p.y},{x:r,y:g.y}],S=[{x:p.x,y:o},{x:g.x,y:o}];b=d[m]===w?\"x\"===m?M:S:\"x\"===m?S:M}else{var A=[{x:p.x,y:g.y}],I=[{x:g.x,y:p.y}];if(b=\"x\"===m?d.x===w?I:A:d.y===w?A:I,a===s){var P=Math.abs(i[m]-c[m]);if(P<=h){var z=Math.min(h-1,h-P);d[m]===w?x[m]=(p[m]>i[m]?-1:1)*z:_[m]=(g[m]>c[m]?-1:1)*z}}if(a!==s){var T=\"x\"===m?\"y\":\"x\",C=d[m]===v[T],L=p[T]>g[T],B=p[T]<g[T];(1===d[m]&&(!C&&L||C&&B)||1!==d[m]&&(!C&&B||C&&L))&&(b=\"x\"===m?A:I)}var R={x:p.x+x.x,y:p.y+x.y},D={x:g.x+_.x,y:g.y+_.y};Math.max(Math.abs(R.x-b[0].x),Math.abs(D.x-b[0].x))>=Math.max(Math.abs(R.y-b[0].y),Math.abs(D.y-b[0].y))?(r=(R.x+D.x)/2,o=b[0].y):(r=b[0].x,o=(R.y+D.y)/2)}return[yp(yp([i,{x:p.x+x.x,y:p.y+x.y}],gp(b),!1),[{x:g.x+_.x,y:g.y+_.y},c],!1),r,o,O,j]}({source:{x:n,y:e},sourcePosition:o,target:{x:i,y:u},targetPosition:c,center:{x:l,y:h},offset:void 0===d?20:d}),5),p=v[0],g=v[1],y=v[2],m=v[3],w=v[4],b=p.reduce((function(t,n,e){var r=\"\";return r=e>0&&e<p.length-1?function(t,n,e,r){var o=Math.min(kw(t,n)/2,kw(n,e)/2,r),i=n.x,u=n.y;if(t.x===i&&i===e.x||t.y===u&&u===e.y)return\"L\".concat(i,\" \").concat(u);if(t.y===u){var a=t.x<e.x?-1:1,c=t.y<e.y?1:-1;return\"L \".concat(i+o*a,\",\").concat(u,\"Q \").concat(i,\",\").concat(u,\" \").concat(i,\",\").concat(u+o*c)}var f=t.x<e.x?1:-1,s=t.y<e.y?-1:1;return\"L \".concat(i,\",\").concat(u+o*s,\"Q \").concat(i,\",\").concat(u,\" \").concat(i+o*f,\",\").concat(u)}(p[e-1],n,p[e+1],s):\"\".concat(0===e?\"M\":\"L\").concat(n.x,\" \").concat(n.y),t+=r}),\"\");return[b,g,y,m,w]}function Ow(t){var n;return t&&!(!t.internals.handleBounds&&!(null===(n=t.handles)||void 0===n?void 0:n.length))&&!!(t.measured.width||t.width||t.initialWidth)}function jw(t){var n,e,r,o,i,u=t.sourceNode,a=t.targetNode;if(!Ow(u)||!Ow(a))return null;var c=u.internals.handleBounds||Mw(u.handles),f=a.internals.handleBounds||Mw(a.handles),s=Aw(null!==(n=null==c?void 0:c.source)&&void 0!==n?n:[],t.sourceHandle),l=Aw(t.connectionMode===nw.Strict?null!==(e=null==f?void 0:f.target)&&void 0!==e?e:[]:(null!==(r=null==f?void 0:f.target)&&void 0!==r?r:[]).concat(null!==(o=null==f?void 0:f.source)&&void 0!==o?o:[]),t.targetHandle),h=(null==s?void 0:s.position)||uw.Bottom,d=(null==l?void 0:l.position)||uw.Top;if(!s||!l)return null===(i=t.onError)||void 0===i||i.call(t,\"008\",sm.error008(s?\"target\":\"source\",{id:t.id,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle})),null;var v=gp(Sw(h,u,s),2),p=v[0],g=v[1],y=gp(Sw(d,a,l),2);return{sourceX:p,sourceY:g,targetX:y[0],targetY:y[1],sourcePosition:h,targetPosition:d}}function Mw(t){var n,e,r,o;if(!t)return null;var i=[],u=[];try{for(var a=pp(t),c=a.next();!c.done;c=a.next()){var f=c.value;f.width=null!==(r=f.width)&&void 0!==r?r:1,f.height=null!==(o=f.height)&&void 0!==o?o:1,\"source\"===f.type?i.push(f):\"target\"===f.type&&u.push(f)}}catch(t){n={error:t}}finally{try{c&&!c.done&&(e=a.return)&&e.call(a)}finally{if(n)throw n.error}}return{source:i,target:u}}function Sw(t,n,e){var r,o;void 0===e&&(e=null);var i=(null!==(r=null==e?void 0:e.x)&&void 0!==r?r:0)+n.internals.positionAbsolute.x,u=(null!==(o=null==e?void 0:e.y)&&void 0!==o?o:0)+n.internals.positionAbsolute.y,a=null!=e?e:qm(n),c=a.width,f=a.height;switch(t){case uw.Top:return[i+c/2,u];case uw.Right:return[i+c,u+f/2];case uw.Bottom:return[i+c/2,u+f];case uw.Left:return[i,u+f/2]}}function Aw(t,n){return t&&(n?t.find((function(t){return t.id===n})):t[0])||null}function Iw(t,n){if(!t)return\"\";if(\"string\"==typeof t)return t;var e=n?\"\".concat(n,\"__\"):\"\";return\"\".concat(e).concat(Object.keys(t).sort().map((function(n){return\"\".concat(n,\"=\").concat(t[n])})).join(\"&\"))}function Pw(t,n){var e=n.id,r=n.defaultColor,o=n.defaultMarkerStart,i=n.defaultMarkerEnd,u=new Set;return t.reduce((function(t,n){return[n.markerStart||o,n.markerEnd||i].forEach((function(n){if(n&&\"object\"==typeof n){var o=Iw(n,e);u.has(o)||(t.push(hp({id:o,color:n.color||r},n)),u.add(o))}})),t}),[]).sort((function(t,n){return t.id.localeCompare(n.id)}))}function zw(t,n,e,r,o){var i=.5;\"start\"===o?i=0:\"end\"===o&&(i=1);var u=[(t.x+t.width*i)*n.zoom+n.x,t.y*n.zoom+n.y-r],a=[-100*i,-100];switch(e){case uw.Right:u=[(t.x+t.width)*n.zoom+n.x+r,(t.y+t.height*i)*n.zoom+n.y],a=[0,-100*i];break;case uw.Bottom:u[1]=(t.y+t.height)*n.zoom+n.y+r,a[1]=0;break;case uw.Left:u=[t.x*n.zoom+n.x-r,(t.y+t.height*i)*n.zoom+n.y],a=[-100,-100*i]}return\"translate(\".concat(u[0],\"px, \").concat(u[1],\"px) translate(\").concat(a[0],\"%, \").concat(a[1],\"%)\")}function Tw(t,n){var e,r,o;void 0===n&&(n={nodeOrigin:[0,0],elevateNodesOnSelect:!0,defaults:{}});var i=(null==n?void 0:n.elevateNodesOnSelect)?1e3:0;try{for(var u=pp(t),a=u.next();!a.done;a=u.next()){var c=gp(a.value,2)[1],f=c.parentId;if(f){if(!t.has(f))throw new Error(\"Parent node \".concat(f,\" not found\"));var s=t.get(f),l=Lw(c,t,hp(hp({},c.position),{z:(Rm(c.zIndex)?c.zIndex:0)+(c.selected?i:0)}),null!==(o=null==s?void 0:s.origin)&&void 0!==o?o:n.nodeOrigin),h=l.x,d=l.y,v=l.z,p=c.internals.positionAbsolute,g=h!==p.x||d!==p.y;(g||v!==c.internals.z)&&(c.internals=hp(hp({},c.internals),{positionAbsolute:g?{x:h,y:d}:p,z:v}))}}}catch(t){e={error:t}}finally{try{a&&!a.done&&(r=u.return)&&r.call(u)}finally{if(e)throw e.error}}}function Cw(t,n,e,r){void 0===r&&(r={nodeOrigin:[0,0],elevateNodesOnSelect:!0,defaults:{},checkEquality:!0});var o=new Map(n);n.clear(),e.clear();var i=(null==r?void 0:r.elevateNodesOnSelect)?1e3:0;t.forEach((function(t){var u,a,c=o.get(t.id);if(r.checkEquality&&t===(null==c?void 0:c.internals.userNode)||(c=hp(hp(hp({},r.defaults),t),{measured:{width:null===(u=t.measured)||void 0===u?void 0:u.width,height:null===(a=t.measured)||void 0===a?void 0:a.height},internals:{positionAbsolute:t.position,handleBounds:null==c?void 0:c.internals.handleBounds,z:(Rm(t.zIndex)?t.zIndex:0)+(t.selected?i:0),userNode:t}})),n.set(t.id,c),t.parentId){var f=e.get(t.parentId);f?f.push(c):e.set(t.parentId,[c])}})),e.size>0&&Tw(n,r)}function Lw(t,n,e,r){var o,i,u,a,c,f;if(void 0===r&&(r=[0,0]),!t.parentId)return e;var s=n.get(t.parentId),l=mm(s,r).position;return Lw(s,n,{x:(null!==(o=e.x)&&void 0!==o?o:0)+l.x,y:(null!==(i=e.y)&&void 0!==i?i:0)+l.y,z:(null!==(u=s.internals.z)&&void 0!==u?u:0)>(null!==(a=e.z)&&void 0!==a?a:0)?null!==(c=s.internals.z)&&void 0!==c?c:0:null!==(f=e.z)&&void 0!==f?f:0},s.origin||r)}function Bw(t,n,e,r){var o,i,u,a,c,f=[],s=new Map;try{for(var l=pp(t),h=l.next();!h.done;h=l.next()){var d=h.value,v=n.get(d.parentId);if(v){var p=null!==(a=null===(u=s.get(d.parentId))||void 0===u?void 0:u.expandedRect)&&void 0!==a?a:zm(v,null!==(c=v.origin)&&void 0!==c?c:r),g=Cm(p,d.rect);s.set(d.parentId,{expandedRect:g,parent:v})}}}catch(t){o={error:t}}finally{try{h&&!h.done&&(i=l.return)&&i.call(l)}finally{if(o)throw o.error}}return s.size>0&&s.forEach((function(n,r){var o=n.expandedRect,i=n.parent,u=mm(i,i.origin).position,a=qm(i),c=o.x<u.x?Math.round(Math.abs(u.x-o.x)):0,s=o.y<u.y?Math.round(Math.abs(u.y-o.y)):0;if(c>0||s>0){f.push({id:r,type:\"position\",position:{x:u.x-c,y:u.y-s}});var l=e.get(r);null==l||l.forEach((function(n){t.some((function(t){return t.id===n.id}))||f.push({id:n.id,type:\"position\",position:{x:n.position.x+c,y:n.position.y+s}})}))}(a.width<o.width||a.height<o.height)&&f.push({id:r,type:\"dimensions\",setAttributes:!0,dimensions:{width:Math.max(a.width,Math.round(o.width)),height:Math.max(a.height,Math.round(o.height))}})})),f}function Rw(t,n,e,r,o){var i=null==r?void 0:r.querySelector(\".xyflow__viewport\"),u=!1;if(!i)return{changes:[],updatedInternals:u};var a=[],c=window.getComputedStyle(i),f=new window.DOMMatrixReadOnly(c.transform).m22,s=[];if(t.forEach((function(t){var e=n.get(t.id);if(null==e?void 0:e.hidden)e.internals=hp(hp({},e.internals),{handleBounds:void 0}),u=!0;else if(e){var r=Km(t.nodeElement),i=e.measured.width!==r.width||e.measured.height!==r.height;!(!r.width||!r.height||!i&&e.internals.handleBounds&&!t.force)&&(e.measured=r,e.internals=hp(hp({},e.internals),{handleBounds:{source:fw(\".source\",t.nodeElement,f,e.origin||o),target:fw(\".target\",t.nodeElement,f,e.origin||o)}}),u=!0,i&&(a.push({id:e.id,type:\"dimensions\",dimensions:r}),e.expandParent&&e.parentId&&s.push({id:e.id,parentId:e.parentId,rect:zm(e,o)})))}})),s.length>0){var l=Bw(s,n,e,o);a.push.apply(a,yp([],gp(l),!1))}return{changes:a,updatedInternals:u}}function Dw(t){var n=t.delta,e=t.panZoom,r=t.transform,o=t.translateExtent,i=t.width,u=t.height;if(!e||!n.x&&!n.y)return!1;var a=e.setViewportConstrained({x:r[0]+n.x,y:r[1]+n.y,zoom:r[2]},[[0,0],[i,u]],o);return!!a&&(a.x!==r[0]||a.y!==r[1]||a.k!==r[2])}function Hw(t,n,e){var r,o;t.clear(),n.clear();try{for(var i=pp(e),u=i.next();!u.done;u=i.next()){var a=u.value,c=a.source,f=a.target,s=a.sourceHandle,l=void 0===s?null:s,h=a.targetHandle,d=void 0===h?null:h,v=\"\".concat(c,\"-source-\").concat(l),p=\"\".concat(f,\"-target-\").concat(d),g=t.get(v)||new Map,y=t.get(p)||new Map,m={edgeId:a.id,source:c,target:f,sourceHandle:l,targetHandle:d};n.set(a.id,a),t.set(v,g.set(\"\".concat(f,\"-\").concat(d),m)),t.set(p,y.set(\"\".concat(c,\"-\").concat(l),m))}}catch(t){r={error:t}}finally{try{u&&!u.done&&(o=i.return)&&o.call(i)}finally{if(r)throw r.error}}}function Vw(t,n){if(null===t||null===n)return!1;var e=Array.isArray(t)?t:[t],r=Array.isArray(n)?n:[n];if(e.length!==r.length)return!1;for(var o=0;o<e.length;o++)if(e[o].id!==r[o].id||e[o].type!==r[o].type||!Object.is(e[o].data,r[o].data))return!1;return!0}function Yw(t,n){if(!t.parentId)return!1;var e=n.get(t.parentId);return!!e&&(!!e.selected||Yw(e,n))}function Fw(t,n,e){var r=t;do{if(null==r?void 0:r.matches(n))return!0;if(r===e)return!1;r=r.parentElement}while(r);return!1}function Gw(t){var n,e,r,o,i=t.nodeId,u=t.dragItems,a=t.nodeLookup,c=[];try{for(var f=pp(u),s=f.next();!s.done;s=f.next()){var l=gp(s.value,2),h=l[0],d=l[1],v=null===(r=a.get(h))||void 0===r?void 0:r.internals.userNode;v&&c.push(hp(hp({},v),{position:d.position}))}}catch(t){n={error:t}}finally{try{s&&!s.done&&(e=f.return)&&e.call(f)}finally{if(n)throw n.error}}if(!i)return[c[0],c];var p=a.get(i).internals.userNode;return[hp(hp({},p),{position:(null===(o=u.get(i))||void 0===o?void 0:o.position)||p.position}),c]}function Xw(t){var n=t.onNodeMouseDown,e=t.getStoreItems,r=t.onDragStart,o=t.onDrag,i=t.onDragStop,u={x:null,y:null},a=0,c=new Map,f=!1,s={x:0,y:0},l=null,h=!1,d=null;return{update:function(t){var v=t.noDragClassName,p=t.handleSelector,g=t.domNode,y=t.isSelectable,m=t.nodeId;function w(t,n){var r,i,a=t.x,f=t.y,s=e(),l=s.nodeLookup,h=s.nodeExtent,d=s.snapGrid,v=s.snapToGrid,p=s.nodeOrigin,g=s.onNodeDrag,y=s.onSelectionDrag,w=s.onError,b=s.updateNodePositions;u={x:a,y:f};var x=!1,_={x:0,y:0,x2:0,y2:0};if(c.size>1&&h){var E=bm(c,{nodeOrigin:p});_=Im(E)}try{for(var k=pp(c),N=k.next();!N.done;N=k.next()){var O=gp(N.value,2),j=O[0],M=O[1],S={x:a-M.distance.x,y:f-M.distance.y};v&&(S=Vm(S,d));var A=[[h[0][0],h[0][1]],[h[1][0],h[1][1]]];if(c.size>1&&h&&!M.extent){var I=M.internals.positionAbsolute,P=I.x-_.x+h[0][0],z=I.x+M.measured.width-_.x2+h[1][0];A=[[P,I.y-_.y+h[0][1]],[z,I.y+M.measured.height-_.y2+h[1][1]]]}var T=km({nodeId:j,nextPosition:S,nodeLookup:l,nodeExtent:A,nodeOrigin:p,onError:w}),C=T.position,L=T.positionAbsolute;x=x||M.position.x!==C.x||M.position.y!==C.y,M.position=C,M.internals.positionAbsolute=L}}catch(t){r={error:t}}finally{try{N&&!N.done&&(i=k.return)&&i.call(k)}finally{if(r)throw r.error}}if(x&&(b(c,!0),n&&(o||g||!m&&y))){var B=gp(Gw({nodeId:m,dragItems:c,nodeLookup:l}),2),R=B[0],D=B[1];null==o||o(n,c,R,D),null==g||g(n,R,D),m||null==y||y(n,D)}}function b(){var t,n;if(l){var r=gp(Sm(s,l),2),o=r[0],i=r[1];if(0!==o||0!==i){var c=e(),f=c.transform,h=c.panBy;u.x=(null!==(t=u.x)&&void 0!==t?t:0)-o/f[2],u.y=(null!==(n=u.y)&&void 0!==n?n:0)-i/f[2],h({x:o,y:i})&&w(u,null)}a=requestAnimationFrame(b)}}function x(t){var o,i=e(),a=i.nodeLookup,f=i.multiSelectionActive,s=i.nodesDraggable,l=i.transform,d=i.snapGrid,v=i.snapToGrid,p=i.selectNodesOnDrag,g=i.onNodeDragStart,w=i.onSelectionDragStart,b=i.unselectNodesAndEdges;h=!0,p&&y||f||!m||(null===(o=a.get(m))||void 0===o?void 0:o.selected)||b(),y&&p&&m&&(null==n||n(m));var x=Zm(t.sourceEvent,{transform:l,snapGrid:d,snapToGrid:v});if(u=x,c=function(t,n,e,r){var o,i,u,a,c=new Map;try{for(var f=pp(t),s=f.next();!s.done;s=f.next()){var l=gp(s.value,2),h=l[0],d=l[1];if((d.selected||d.id===r)&&(!d.parentId||!Yw(d,t))&&(d.draggable||n&&void 0===d.draggable)){var v=t.get(h);v&&c.set(h,{id:h,position:v.position||{x:0,y:0},distance:{x:e.x-v.internals.positionAbsolute.x,y:e.y-v.internals.positionAbsolute.y},extent:v.extent,parentId:v.parentId,origin:v.origin,expandParent:v.expandParent,internals:{positionAbsolute:v.internals.positionAbsolute||{x:0,y:0}},measured:{width:null!==(u=v.measured.width)&&void 0!==u?u:0,height:null!==(a=v.measured.height)&&void 0!==a?a:0}})}}}catch(t){o={error:t}}finally{try{s&&!s.done&&(i=f.return)&&i.call(f)}finally{if(o)throw o.error}}return c}(a,s,x,m),c.size>0&&(r||g||!m&&w)){var _=gp(Gw({nodeId:m,dragItems:c,nodeLookup:a}),2),E=_[0],k=_[1];null==r||r(t.sourceEvent,c,E,k),null==g||g(t.sourceEvent,E,k),m||null==w||w(t.sourceEvent,k)}}d=qy(g);var _=am().on(\"start\",(function(t){var n=e(),r=n.domNode,o=n.nodeDragThreshold,i=n.transform,a=n.snapGrid,c=n.snapToGrid;0===o&&x(t);var f=Zm(t.sourceEvent,{transform:i,snapGrid:a,snapToGrid:c});u=f,l=(null==r?void 0:r.getBoundingClientRect())||null,s=cw(t.sourceEvent,l)})).on(\"drag\",(function(t){var n,r,o=e(),i=o.autoPanOnNodeDrag,a=o.transform,d=o.snapGrid,v=o.snapToGrid,p=o.nodeDragThreshold,g=Zm(t.sourceEvent,{transform:a,snapGrid:d,snapToGrid:v});if(!f&&i&&h&&(f=!0,b()),!h){var y=g.xSnapped-(null!==(n=u.x)&&void 0!==n?n:0),m=g.ySnapped-(null!==(r=u.y)&&void 0!==r?r:0);Math.sqrt(y*y+m*m)>p&&x(t)}(u.x!==g.xSnapped||u.y!==g.ySnapped)&&c&&h&&(s=cw(t.sourceEvent,l),w(g,t.sourceEvent))})).on(\"end\",(function(t){if(h&&(f=!1,h=!1,cancelAnimationFrame(a),c.size>0)){var n=e(),r=n.nodeLookup,o=n.updateNodePositions,u=n.onNodeDragStop,s=n.onSelectionDragStop;if(o(c,!1),i||u||!m&&s){var l=gp(Gw({nodeId:m,dragItems:c,nodeLookup:r}),2),d=l[0],v=l[1];null==i||i(t.sourceEvent,c,d,v),null==u||u(t.sourceEvent,d,v),m||null==s||s(t.sourceEvent,v)}}})).filter((function(t){var n=t.target;return!t.button&&(!v||!Fw(n,\".\".concat(v),g))&&(!p||Fw(n,p,g))}));d.call(_)},destroy:function(){null==d||d.on(\".drag\",null)}}}function $w(t,n,e,r){return(n[e]||[]).reduce((function(n,o){return\"\".concat(t.id,\"-\").concat(o.id,\"-\").concat(e)!==r&&n.push({id:o.id||null,type:e,nodeId:t.id,x:t.internals.positionAbsolute.x+o.x+o.width/2,y:t.internals.positionAbsolute.y+o.y+o.height/2}),n}),[])}function qw(t,n){return t||((null==n?void 0:n.classList.contains(\"target\"))?\"target\":(null==n?void 0:n.classList.contains(\"source\"))?\"source\":null)}var Uw=function(){return!0},Ww=null;function Zw(t,n){var e=n.handle,r=n.connectionMode,o=n.fromNodeId,i=n.fromHandleId,u=n.fromType,a=n.doc,c=n.lib,f=n.flowId,s=n.isValidConnection,l=void 0===s?Uw:s,h=\"target\"===u,d=e?a.querySelector(\".\".concat(c,'-flow__handle[data-id=\"').concat(f,\"-\").concat(null==e?void 0:e.nodeId,\"-\").concat(null==e?void 0:e.id,\"-\").concat(null==e?void 0:e.type,'\"]')):null,v=cw(t),p=v.x,g=v.y,y=a.elementFromPoint(p,g),m=(null==y?void 0:y.classList.contains(\"\".concat(c,\"-flow__handle\")))?y:d,w={handleDomNode:m,isValid:!1,connection:null,endHandle:null};if(m){var b=qw(void 0,m),x=m.getAttribute(\"data-nodeid\"),_=m.getAttribute(\"data-handleid\"),E=m.classList.contains(\"connectable\"),k=m.classList.contains(\"connectableend\");if(!x)return w;var N={source:h?x:o,sourceHandle:h?_:i,target:h?o:x,targetHandle:h?i:_};w.connection=N,E&&k&&(r===nw.Strict?h&&\"source\"===b||!h&&\"target\"===b:x!==o||_!==i)&&(w.endHandle={nodeId:x,handleId:_,type:b},w.isValid=l(N))}return w}var Kw={onPointerDown:function(t,n){var e,r=n.connectionMode,o=n.connectionRadius,i=n.handleId,u=n.nodeId,a=n.edgeUpdaterType,c=n.isTarget,f=n.domNode,s=n.nodeLookup,l=n.lib,h=n.autoPanOnConnect,d=n.flowId,v=n.panBy,p=n.cancelConnection,g=n.onConnectStart,y=n.onConnect,m=n.onConnectEnd,w=n.isValidConnection,b=void 0===w?Uw:w,x=n.onEdgeUpdateEnd,_=n.updateConnection,E=n.getTransform,k=n.getConnectionStartHandle,N=Qm(t.target),O=0,j=cw(t),M=j.x,S=j.y,A=null==N?void 0:N.elementFromPoint(M,S),I=qw(a,A),P=null==f?void 0:f.getBoundingClientRect();if(P&&I){var z=cw(t,P),T=!1,C=null,L=!1,B=null,R=function(t){var n,e,r=t.nodeLookup,o=t.nodeId,i=t.handleId,u=t.handleType,a=[];try{for(var c=pp(r),f=c.next();!f.done;f=c.next()){var s=gp(f.value,2)[1];if(s.internals.handleBounds){var l=\"\".concat(o,\"-\").concat(i,\"-\").concat(u),h=$w(s,s.internals.handleBounds,\"source\",l),d=$w(s,s.internals.handleBounds,\"target\",l);a.push.apply(a,yp(yp([],gp(h),!1),gp(d),!1))}}}catch(t){n={error:t}}finally{try{f&&!f.done&&(e=c.return)&&e.call(c)}finally{if(n)throw n.error}}return a}({nodeLookup:s,nodeId:u,handleId:i,handleType:I});_({connectionPosition:z,connectionStatus:null,connectionStartHandle:Ww={nodeId:u,handleId:i,type:I},connectionEndHandle:null}),null==g||g(t,{nodeId:u,handleId:i,handleType:I}),N.addEventListener(\"mousemove\",H),N.addEventListener(\"mouseup\",V),N.addEventListener(\"touchmove\",H),N.addEventListener(\"touchend\",V)}function D(){if(h&&P){var t=gp(Sm(z,P),2),n=t[0],e=t[1];v({x:n,y:e}),O=requestAnimationFrame(D)}}function H(t){k()||V(t);var n=E();z=cw(t,P),e=function(t,n,e){var r,o,i=[],u=1/0;try{for(var a=pp(e),c=a.next();!c.done;c=a.next()){var f=c.value,s=Math.sqrt(Math.pow(f.x-t.x,2)+Math.pow(f.y-t.y,2));s<=n&&(s<u?i=[f]:s===u&&i.push(f),u=s)}}catch(t){r={error:t}}finally{try{c&&!c.done&&(o=a.return)&&o.call(a)}finally{if(r)throw r.error}}return i.length?1===i.length?i[0]:i.find((function(t){return\"target\"===t.type}))||i[0]:null}(Ym(z,n,!1,[1,1]),o,R),T||(D(),T=!0);var a,f,s,h=Zw(t,{handle:e,connectionMode:r,fromNodeId:u,fromHandleId:i,fromType:c?\"target\":\"source\",isValidConnection:b,doc:N,lib:l,flowId:d});B=h.handleDomNode,C=h.connection,L=h.isValid,_({connectionStartHandle:Ww,connectionPosition:e&&L?Fm({x:e.x,y:e.y},n):z,connectionStatus:(a=!!e,f=L,s=null,f?s=\"valid\":a&&!f&&(s=\"invalid\"),s),connectionEndHandle:h.endHandle})}function V(t){(e||B)&&C&&L&&(null==y||y(C)),null==m||m(t),a&&(null==x||x(t)),p(),cancelAnimationFrame(O),T=!1,L=!1,C=null,B=null,Ww=null,N.removeEventListener(\"mousemove\",H),N.removeEventListener(\"mouseup\",V),N.removeEventListener(\"touchmove\",H),N.removeEventListener(\"touchend\",V)}},isValid:Zw};function Qw(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function Jw(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function tb(){}var nb=.7,eb=1/nb,rb=\"\\\\s*([+-]?\\\\d+)\\\\s*\",ob=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",ib=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",ub=/^#([0-9a-f]{3,8})$/,ab=new RegExp(`^rgb\\\\(${rb},${rb},${rb}\\\\)$`),cb=new RegExp(`^rgb\\\\(${ib},${ib},${ib}\\\\)$`),fb=new RegExp(`^rgba\\\\(${rb},${rb},${rb},${ob}\\\\)$`),sb=new RegExp(`^rgba\\\\(${ib},${ib},${ib},${ob}\\\\)$`),lb=new RegExp(`^hsl\\\\(${ob},${ib},${ib}\\\\)$`),hb=new RegExp(`^hsla\\\\(${ob},${ib},${ib},${ob}\\\\)$`),db={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function vb(){return this.rgb().formatHex()}function pb(){return this.rgb().formatRgb()}function gb(t){var n,e;return t=(t+\"\").trim().toLowerCase(),(n=ub.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?yb(n):3===e?new bb(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?mb(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?mb(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=ab.exec(t))?new bb(n[1],n[2],n[3],1):(n=cb.exec(t))?new bb(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=fb.exec(t))?mb(n[1],n[2],n[3],n[4]):(n=sb.exec(t))?mb(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=lb.exec(t))?Ob(n[1],n[2]/100,n[3]/100,1):(n=hb.exec(t))?Ob(n[1],n[2]/100,n[3]/100,n[4]):db.hasOwnProperty(t)?yb(db[t]):\"transparent\"===t?new bb(NaN,NaN,NaN,0):null}function yb(t){return new bb(t>>16&255,t>>8&255,255&t,1)}function mb(t,n,e,r){return r<=0&&(t=n=e=NaN),new bb(t,n,e,r)}function wb(t,n,e,r){return 1===arguments.length?((o=t)instanceof tb||(o=gb(o)),o?new bb((o=o.rgb()).r,o.g,o.b,o.opacity):new bb):new bb(t,n,e,null==r?1:r);var o}function bb(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function xb(){return`#${Nb(this.r)}${Nb(this.g)}${Nb(this.b)}`}function _b(){const t=Eb(this.opacity);return`${1===t?\"rgb(\":\"rgba(\"}${kb(this.r)}, ${kb(this.g)}, ${kb(this.b)}${1===t?\")\":`, ${t})`}`}function Eb(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function kb(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Nb(t){return((t=kb(t))<16?\"0\":\"\")+t.toString(16)}function Ob(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Mb(t,n,e,r)}function jb(t){if(t instanceof Mb)return new Mb(t.h,t.s,t.l,t.opacity);if(t instanceof tb||(t=gb(t)),!t)return new Mb;if(t instanceof Mb)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,o=Math.min(n,e,r),i=Math.max(n,e,r),u=NaN,a=i-o,c=(i+o)/2;return a?(u=n===i?(e-r)/a+6*(e<r):e===i?(r-n)/a+2:(n-e)/a+4,a/=c<.5?i+o:2-i-o,u*=60):a=c>0&&c<1?0:u,new Mb(u,a,c,t.opacity)}function Mb(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Sb(t){return(t=(t||0)%360)<0?t+360:t}function Ab(t){return Math.max(0,Math.min(1,t||0))}function Ib(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}Qw(tb,gb,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:vb,formatHex:vb,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return jb(this).formatHsl()},formatRgb:pb,toString:pb}),Qw(bb,wb,Jw(tb,{brighter(t){return t=null==t?eb:Math.pow(eb,t),new bb(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?nb:Math.pow(nb,t),new bb(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new bb(kb(this.r),kb(this.g),kb(this.b),Eb(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:xb,formatHex:xb,formatHex8:function(){return`#${Nb(this.r)}${Nb(this.g)}${Nb(this.b)}${Nb(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:_b,toString:_b})),Qw(Mb,(function(t,n,e,r){return 1===arguments.length?jb(t):new Mb(t,n,e,null==r?1:r)}),Jw(tb,{brighter(t){return t=null==t?eb:Math.pow(eb,t),new Mb(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?nb:Math.pow(nb,t),new Mb(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,o=2*e-r;return new bb(Ib(t>=240?t-240:t+120,o,r),Ib(t,o,r),Ib(t<120?t+240:t-120,o,r),this.opacity)},clamp(){return new Mb(Sb(this.h),Ab(this.s),Ab(this.l),Eb(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Eb(this.opacity);return`${1===t?\"hsl(\":\"hsla(\"}${Sb(this.h)}, ${100*Ab(this.s)}%, ${100*Ab(this.l)}%${1===t?\")\":`, ${t})`}`}}));var Pb=t=>()=>t;function zb(t){return 1==(t=+t)?Tb:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):Pb(isNaN(n)?e:n)}}function Tb(t,n){var e=n-t;return e?function(t,n){return function(e){return t+e*n}}(t,e):Pb(isNaN(t)?n:t)}var Cb=function t(n){var e=zb(n);function r(t,n){var r=e((t=wb(t)).r,(n=wb(n)).r),o=e(t.g,n.g),i=e(t.b,n.b),u=Tb(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=o(n),t.b=i(n),t.opacity=u(n),t+\"\"}}return r.gamma=t,r}(1);function Lb(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var Bb=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,Rb=new RegExp(Bb.source,\"g\");function Db(t,n){var e,r,o,i=Bb.lastIndex=Rb.lastIndex=0,u=-1,a=[],c=[];for(t+=\"\",n+=\"\";(e=Bb.exec(t))&&(r=Rb.exec(n));)(o=r.index)>i&&(o=n.slice(i,o),a[u]?a[u]+=o:a[++u]=o),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:Lb(e,r)})),i=Rb.lastIndex;return i<n.length&&(o=n.slice(i),a[u]?a[u]+=o:a[++u]=o),a.length<2?c[0]?function(t){return function(n){return t(n)+\"\"}}(c[0].x):function(t){return function(){return t}}(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)a[(e=c[r]).i]=e.x(t);return a.join(\"\")})}var Hb,Vb=180/Math.PI,Yb={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Fb(t,n,e,r,o,i){var u,a,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,c/=a),t*r<n*e&&(t=-t,n=-n,c=-c,u=-u),{translateX:o,translateY:i,rotate:Math.atan2(n,t)*Vb,skewX:Math.atan(c)*Vb,scaleX:u,scaleY:a}}function Gb(t,n,e,r){function o(t){return t.length?t.pop()+\" \":\"\"}return function(i,u){var a=[],c=[];return i=t(i),u=t(u),function(t,r,o,i,u,a){if(t!==o||r!==i){var c=u.push(\"translate(\",null,n,null,e);a.push({i:c-4,x:Lb(t,o)},{i:c-2,x:Lb(r,i)})}else(o||i)&&u.push(\"translate(\"+o+n+i+e)}(i.translateX,i.translateY,u.translateX,u.translateY,a,c),function(t,n,e,i){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),i.push({i:e.push(o(e)+\"rotate(\",null,r)-2,x:Lb(t,n)})):n&&e.push(o(e)+\"rotate(\"+n+r)}(i.rotate,u.rotate,a,c),function(t,n,e,i){t!==n?i.push({i:e.push(o(e)+\"skewX(\",null,r)-2,x:Lb(t,n)}):n&&e.push(o(e)+\"skewX(\"+n+r)}(i.skewX,u.skewX,a,c),function(t,n,e,r,i,u){if(t!==e||n!==r){var a=i.push(o(i)+\"scale(\",null,\",\",null,\")\");u.push({i:a-4,x:Lb(t,e)},{i:a-2,x:Lb(n,r)})}else 1===e&&1===r||i.push(o(i)+\"scale(\"+e+\",\"+r+\")\")}(i.scaleX,i.scaleY,u.scaleX,u.scaleY,a,c),i=u=null,function(t){for(var n,e=-1,r=c.length;++e<r;)a[(n=c[e]).i]=n.x(t);return a.join(\"\")}}}var Xb=Gb((function(t){const n=new(\"function\"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+\"\");return n.isIdentity?Yb:Fb(n.a,n.b,n.c,n.d,n.e,n.f)}),\"px, \",\"px)\",\"deg)\"),$b=Gb((function(t){return null==t?Yb:(Hb||(Hb=document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\")),Hb.setAttribute(\"transform\",t),(t=Hb.transform.baseVal.consolidate())?Fb((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Yb)}),\", \",\")\",\")\");function qb(t){return((t=Math.exp(t))+1/t)/2}var Ub,Wb,Zb=function t(n,e,r){function o(t,o){var i,u,a=t[0],c=t[1],f=t[2],s=o[0],l=o[1],h=o[2],d=s-a,v=l-c,p=d*d+v*v;if(p<1e-12)u=Math.log(h/f)/n,i=function(t){return[a+t*d,c+t*v,f*Math.exp(n*t*u)]};else{var g=Math.sqrt(p),y=(h*h-f*f+r*p)/(2*f*e*g),m=(h*h-f*f-r*p)/(2*h*e*g),w=Math.log(Math.sqrt(y*y+1)-y),b=Math.log(Math.sqrt(m*m+1)-m);u=(b-w)/n,i=function(t){var r,o=t*u,i=qb(w),s=f/(e*g)*(i*(r=n*o+w,((r=Math.exp(2*r))-1)/(r+1))-function(t){return((t=Math.exp(t))-1/t)/2}(w));return[a+s*d,c+s*v,f*i/qb(n*o+w)]}}return i.duration=1e3*u*n/Math.SQRT2,i}return o.rho=function(n){var e=Math.max(.001,+n),r=e*e;return t(e,r,r*r)},o}(Math.SQRT2,2,4),Kb=0,Qb=0,Jb=0,tx=1e3,nx=0,ex=0,rx=0,ox=\"object\"==typeof performance&&performance.now?performance:Date,ix=\"object\"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function ux(){return ex||(ix(ax),ex=ox.now()+rx)}function ax(){ex=0}function cx(){this._call=this._time=this._next=null}function fx(t,n,e){var r=new cx;return r.restart(t,n,e),r}function sx(){ex=(nx=ox.now())+rx,Kb=Qb=0;try{!function(){ux(),++Kb;for(var t,n=Ub;n;)(t=ex-n._time)>=0&&n._call.call(void 0,t),n=n._next;--Kb}()}finally{Kb=0,function(){var t,n,e=Ub,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:Ub=n);Wb=t,hx(r)}(),ex=0}}function lx(){var t=ox.now(),n=t-nx;n>tx&&(rx-=n,nx=t)}function hx(t){Kb||(Qb&&(Qb=clearTimeout(Qb)),t-ex>24?(t<1/0&&(Qb=setTimeout(sx,t-ox.now()-rx)),Jb&&(Jb=clearInterval(Jb))):(Jb||(nx=ox.now(),Jb=setInterval(lx,tx)),Kb=1,ix(sx)))}function dx(t,n,e){var r=new cx;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}cx.prototype=fx.prototype={constructor:cx,restart:function(t,n,e){if(\"function\"!=typeof t)throw new TypeError(\"callback is not a function\");e=(null==e?ux():+e)+(null==n?0:+n),this._next||Wb===this||(Wb?Wb._next=this:Ub=this,Wb=this),this._call=t,this._time=e,hx()},stop:function(){this._call&&(this._call=null,this._time=1/0,hx())}};var vx=Ig(\"start\",\"end\",\"cancel\",\"interrupt\"),px=[],gx=0,yx=1,mx=2,wx=3,bx=4,xx=5,_x=6;function Ex(t,n,e,r,o,i){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};!function(t,n,e){var r,o=t.__transition;function i(t){e.state=yx,e.timer.restart(u,e.delay,e.time),e.delay<=t&&u(t-e.delay)}function u(i){var f,s,l,h;if(e.state!==yx)return c();for(f in o)if((h=o[f]).name===e.name){if(h.state===wx)return dx(u);h.state===bx?(h.state=_x,h.timer.stop(),h.on.call(\"interrupt\",t,t.__data__,h.index,h.group),delete o[f]):+f<n&&(h.state=_x,h.timer.stop(),h.on.call(\"cancel\",t,t.__data__,h.index,h.group),delete o[f])}if(dx((function(){e.state===wx&&(e.state=bx,e.timer.restart(a,e.delay,e.time),a(i))})),e.state=mx,e.on.call(\"start\",t,t.__data__,e.index,e.group),e.state===mx){for(e.state=wx,r=new Array(l=e.tween.length),f=0,s=-1;f<l;++f)(h=e.tween[f].value.call(t,t.__data__,e.index,e.group))&&(r[++s]=h);r.length=s+1}}function a(n){for(var o=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(c),e.state=xx,1),i=-1,u=r.length;++i<u;)r[i].call(t,o);e.state===xx&&(e.on.call(\"end\",t,t.__data__,e.index,e.group),c())}function c(){for(var r in e.state=_x,e.timer.stop(),delete o[n],o)return;delete t.__transition}o[n]=e,e.timer=fx(i,0,e.time)}(t,e,{name:n,index:r,group:o,on:vx,tween:px,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:gx})}function kx(t,n){var e=Ox(t,n);if(e.state>gx)throw new Error(\"too late; already scheduled\");return e}function Nx(t,n){var e=Ox(t,n);if(e.state>wx)throw new Error(\"too late; already running\");return e}function Ox(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error(\"transition not found\");return e}function jx(t,n){var e,r,o,i=t.__transition,u=!0;if(i){for(o in n=null==n?null:n+\"\",i)(e=i[o]).name===n?(r=e.state>mx&&e.state<xx,e.state=_x,e.timer.stop(),e.on.call(r?\"interrupt\":\"cancel\",t,t.__data__,e.index,e.group),delete i[o]):u=!1;u&&delete t.__transition}}function Mx(t,n){var e,r;return function(){var o=Nx(this,t),i=o.tween;if(i!==e)for(var u=0,a=(r=e=i).length;u<a;++u)if(r[u].name===n){(r=r.slice()).splice(u,1);break}o.tween=r}}function Sx(t,n,e){var r,o;if(\"function\"!=typeof e)throw new Error;return function(){var i=Nx(this,t),u=i.tween;if(u!==r){o=(r=u).slice();for(var a={name:n,value:e},c=0,f=o.length;c<f;++c)if(o[c].name===n){o[c]=a;break}c===f&&o.push(a)}i.tween=o}}function Ax(t,n,e){var r=t._id;return t.each((function(){var t=Nx(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return Ox(t,r).value[n]}}function Ix(t,n){var e;return(\"number\"==typeof n?Lb:n instanceof gb?Cb:(e=gb(n))?(n=e,Cb):Db)(t,n)}function Px(t){return function(){this.removeAttribute(t)}}function zx(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Tx(t,n,e){var r,o,i=e+\"\";return function(){var u=this.getAttribute(t);return u===i?null:u===r?o:o=n(r=u,e)}}function Cx(t,n,e){var r,o,i=e+\"\";return function(){var u=this.getAttributeNS(t.space,t.local);return u===i?null:u===r?o:o=n(r=u,e)}}function Lx(t,n,e){var r,o,i;return function(){var u,a,c=e(this);if(null!=c)return(u=this.getAttribute(t))===(a=c+\"\")?null:u===r&&a===o?i:(o=a,i=n(r=u,c));this.removeAttribute(t)}}function Bx(t,n,e){var r,o,i;return function(){var u,a,c=e(this);if(null!=c)return(u=this.getAttributeNS(t.space,t.local))===(a=c+\"\")?null:u===r&&a===o?i:(o=a,i=n(r=u,c));this.removeAttributeNS(t.space,t.local)}}function Rx(t,n){var e,r;function o(){var o=n.apply(this,arguments);return o!==r&&(e=(r=o)&&function(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}(t,o)),e}return o._value=n,o}function Dx(t,n){var e,r;function o(){var o=n.apply(this,arguments);return o!==r&&(e=(r=o)&&function(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}(t,o)),e}return o._value=n,o}function Hx(t,n){return function(){kx(this,t).delay=+n.apply(this,arguments)}}function Vx(t,n){return n=+n,function(){kx(this,t).delay=n}}function Yx(t,n){return function(){Nx(this,t).duration=+n.apply(this,arguments)}}function Fx(t,n){return n=+n,function(){Nx(this,t).duration=n}}var Gx=$y.prototype.constructor;function Xx(t){return function(){this.style.removeProperty(t)}}var $x=0;function qx(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function Ux(){return++$x}var Wx=$y.prototype;qx.prototype={constructor:qx,select:function(t){var n=this._name,e=this._id;\"function\"!=typeof t&&(t=Yg(t));for(var r=this._groups,o=r.length,i=new Array(o),u=0;u<o;++u)for(var a,c,f=r[u],s=f.length,l=i[u]=new Array(s),h=0;h<s;++h)(a=f[h])&&(c=t.call(a,a.__data__,h,f))&&(\"__data__\"in a&&(c.__data__=a.__data__),l[h]=c,Ex(l[h],n,e,h,l,Ox(a,e)));return new qx(i,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;\"function\"!=typeof t&&(t=Gg(t));for(var r=this._groups,o=r.length,i=[],u=[],a=0;a<o;++a)for(var c,f=r[a],s=f.length,l=0;l<s;++l)if(c=f[l]){for(var h,d=t.call(c,c.__data__,l,f),v=Ox(c,e),p=0,g=d.length;p<g;++p)(h=d[p])&&Ex(h,n,e,p,d,v);i.push(d),u.push(c)}return new qx(i,u,n,e)},selectChild:Wx.selectChild,selectChildren:Wx.selectChildren,filter:function(t){\"function\"!=typeof t&&(t=$g(t));for(var n=this._groups,e=n.length,r=new Array(e),o=0;o<e;++o)for(var i,u=n[o],a=u.length,c=r[o]=[],f=0;f<a;++f)(i=u[f])&&t.call(i,i.__data__,f,u)&&c.push(i);return new qx(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,o=e.length,i=Math.min(r,o),u=new Array(r),a=0;a<i;++a)for(var c,f=n[a],s=e[a],l=f.length,h=u[a]=new Array(l),d=0;d<l;++d)(c=f[d]||s[d])&&(h[d]=c);for(;a<r;++a)u[a]=n[a];return new qx(u,this._parents,this._name,this._id)},selection:function(){return new Gx(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=Ux(),r=this._groups,o=r.length,i=0;i<o;++i)for(var u,a=r[i],c=a.length,f=0;f<c;++f)if(u=a[f]){var s=Ox(u,n);Ex(u,t,e,f,a,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new qx(r,this._parents,t,e)},call:Wx.call,nodes:Wx.nodes,node:Wx.node,size:Wx.size,empty:Wx.empty,each:Wx.each,on:function(t,n){var e=this._id;return arguments.length<2?Ox(this.node(),e).on.on(t):this.each(function(t,n,e){var r,o,i=function(t){return(t+\"\").trim().split(/^|\\s+/).every((function(t){var n=t.indexOf(\".\");return n>=0&&(t=t.slice(0,n)),!t||\"start\"===t}))}(n)?kx:Nx;return function(){var u=i(this,t),a=u.on;a!==r&&(o=(r=a).copy()).on(n,e),u.on=o}}(e,t,n))},attr:function(t,n){var e=Bg(t),r=\"transform\"===e?$b:Ix;return this.attrTween(t,\"function\"==typeof n?(e.local?Bx:Lx)(e,r,Ax(this,\"attr.\"+t,n)):null==n?(e.local?zx:Px)(e):(e.local?Cx:Tx)(e,r,n))},attrTween:function(t,n){var e=\"attr.\"+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if(\"function\"!=typeof n)throw new Error;var r=Bg(t);return this.tween(e,(r.local?Rx:Dx)(r,n))},style:function(t,n,e){var r=\"transform\"==(t+=\"\")?Xb:Ix;return null==n?this.styleTween(t,function(t,n){var e,r,o;return function(){var i=py(this,t),u=(this.style.removeProperty(t),py(this,t));return i===u?null:i===e&&u===r?o:o=n(e=i,r=u)}}(t,r)).on(\"end.style.\"+t,Xx(t)):\"function\"==typeof n?this.styleTween(t,function(t,n,e){var r,o,i;return function(){var u=py(this,t),a=e(this),c=a+\"\";return null==a&&(this.style.removeProperty(t),c=a=py(this,t)),u===c?null:u===r&&c===o?i:(o=c,i=n(r=u,a))}}(t,r,Ax(this,\"style.\"+t,n))).each(function(t,n){var e,r,o,i,u=\"style.\"+n,a=\"end.\"+u;return function(){var c=Nx(this,t),f=c.on,s=null==c.value[u]?i||(i=Xx(n)):void 0;f===e&&o===s||(r=(e=f).copy()).on(a,o=s),c.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,o,i=e+\"\";return function(){var u=py(this,t);return u===i?null:u===r?o:o=n(r=u,e)}}(t,r,n),e).on(\"end.style.\"+t,null)},styleTween:function(t,n,e){var r=\"style.\"+(t+=\"\");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if(\"function\"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){var r,o;function i(){var i=n.apply(this,arguments);return i!==o&&(r=(o=i)&&function(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}(t,i,e)),r}return i._value=n,i}(t,n,null==e?\"\":e))},text:function(t){return this.tween(\"text\",\"function\"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?\"\":n}}(Ax(this,\"text\",t)):function(t){return function(){this.textContent=t}}(null==t?\"\":t+\"\"))},textTween:function(t){var n=\"text\";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if(\"function\"!=typeof t)throw new Error;return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){return function(n){this.textContent=t.call(this,n)}}(r)),n}return r._value=t,r}(t))},remove:function(){return this.on(\"end.remove\",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+=\"\",arguments.length<2){for(var r,o=Ox(this.node(),e).tween,i=0,u=o.length;i<u;++i)if((r=o[i]).name===t)return r.value;return null}return this.each((null==n?Mx:Sx)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each((\"function\"==typeof t?Hx:Vx)(n,t)):Ox(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each((\"function\"==typeof t?Yx:Fx)(n,t)):Ox(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if(\"function\"!=typeof n)throw new Error;return function(){Nx(this,t).ease=n}}(n,t)):Ox(this.node(),n).ease},easeVarying:function(t){if(\"function\"!=typeof t)throw new Error;return this.each(function(t,n){return function(){var e=n.apply(this,arguments);if(\"function\"!=typeof e)throw new Error;Nx(this,t).ease=e}}(this._id,t))},end:function(){var t,n,e=this,r=e._id,o=e.size();return new Promise((function(i,u){var a={value:u},c={value:function(){0==--o&&i()}};e.each((function(){var e=Nx(this,r),o=e.on;o!==t&&((n=(t=o).copy())._.cancel.push(a),n._.interrupt.push(a),n._.end.push(c)),e.on=n})),0===o&&i()}))},[Symbol.iterator]:Wx[Symbol.iterator]};var Zx={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function Kx(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}$y.prototype.interrupt=function(t){return this.each((function(){jx(this,t)}))},$y.prototype.transition=function(t){var n,e;t instanceof qx?(n=t._id,t=t._name):(n=Ux(),(e=Zx).time=ux(),t=null==t?null:t+\"\");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var u,a=r[i],c=a.length,f=0;f<c;++f)(u=a[f])&&Ex(u,t,n,f,a,e||Kx(u,n));return new qx(r,this._parents,t,n)};var Qx=t=>()=>t;function Jx(t,{sourceEvent:n,target:e,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function t_(t,n,e){this.k=t,this.x=n,this.y=e}t_.prototype={constructor:t_,scale:function(t){return 1===t?this:new t_(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new t_(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return\"translate(\"+this.x+\",\"+this.y+\") scale(\"+this.k+\")\"}};var n_=new t_(1,0,0);function e_(t){for(;!t.__zoom;)if(!(t=t.parentNode))return n_;return t.__zoom}function r_(t){t.stopImmediatePropagation()}function o_(t){t.preventDefault(),t.stopImmediatePropagation()}function i_(t){return!(t.ctrlKey&&\"wheel\"!==t.type||t.button)}function u_(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute(\"viewBox\")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function a_(){return this.__zoom||n_}function c_(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function f_(){return navigator.maxTouchPoints||\"ontouchstart\"in this}function s_(t,n,e){var r=t.invertX(n[0][0])-e[0][0],o=t.invertX(n[1][0])-e[1][0],i=t.invertY(n[0][1])-e[0][1],u=t.invertY(n[1][1])-e[1][1];return t.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),u>i?(i+u)/2:Math.min(0,i)||Math.max(0,u))}function l_(){var t,n,e,r=i_,o=u_,i=s_,u=c_,a=f_,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=Zb,h=Ig(\"start\",\"zoom\",\"end\"),d=500,v=150,p=0,g=10;function y(t){t.property(\"__zoom\",a_).on(\"wheel.zoom\",k,{passive:!1}).on(\"mousedown.zoom\",N).on(\"dblclick.zoom\",O).filter(a).on(\"touchstart.zoom\",j).on(\"touchmove.zoom\",M).on(\"touchend.zoom touchcancel.zoom\",S).style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\")}function m(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new t_(n,t.x,t.y)}function w(t,n,e){var r=n[0]-e[0]*t.k,o=n[1]-e[1]*t.k;return r===t.x&&o===t.y?t:new t_(t.k,r,o)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function x(t,n,e,r){t.on(\"start.zoom\",(function(){_(this,arguments).event(r).start()})).on(\"interrupt.zoom end.zoom\",(function(){_(this,arguments).event(r).end()})).tween(\"zoom\",(function(){var t=this,i=arguments,u=_(t,i).event(r),a=o.apply(t,i),c=null==e?b(a):\"function\"==typeof e?e.apply(t,i):e,f=Math.max(a[1][0]-a[0][0],a[1][1]-a[0][1]),s=t.__zoom,h=\"function\"==typeof n?n.apply(t,i):n,d=l(s.invert(c).concat(f/s.k),h.invert(c).concat(f/h.k));return function(t){if(1===t)t=h;else{var n=d(t),e=f/n[2];t=new t_(e,c[0]-n[0]*e,c[1]-n[1]*e)}u.zoom(null,t)}}))}function _(t,n,e){return!e&&t.__zooming||new E(t,n)}function E(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=o.apply(t,n),this.taps=0}function k(t,...n){if(r.apply(this,arguments)){var e=_(this,n).event(t),o=this.__zoom,a=Math.max(c[0],Math.min(c[1],o.k*Math.pow(2,u.apply(this,arguments)))),s=Uy(t);if(e.wheel)e.mouse[0][0]===s[0]&&e.mouse[0][1]===s[1]||(e.mouse[1]=o.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(o.k===a)return;e.mouse=[s,o.invert(s)],jx(this),e.start()}o_(t),e.wheel=setTimeout((function(){e.wheel=null,e.end()}),v),e.zoom(\"mouse\",i(w(m(o,a),e.mouse[0],e.mouse[1]),e.extent,f))}}function N(t,...n){if(!e&&r.apply(this,arguments)){var o=t.currentTarget,u=_(this,n,!0).event(t),a=qy(t.view).on(\"mousemove.zoom\",(function(t){if(o_(t),!u.moved){var n=t.clientX-s,e=t.clientY-l;u.moved=n*n+e*e>p}u.event(t).zoom(\"mouse\",i(w(u.that.__zoom,u.mouse[0]=Uy(t,o),u.mouse[1]),u.extent,f))}),!0).on(\"mouseup.zoom\",(function(t){a.on(\"mousemove.zoom mouseup.zoom\",null),tm(t.view,u.moved),o_(t),u.event(t).end()}),!0),c=Uy(t,o),s=t.clientX,l=t.clientY;Jy(t.view),r_(t),u.mouse=[c,this.__zoom.invert(c)],jx(this),u.start()}}function O(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,u=Uy(t.changedTouches?t.changedTouches[0]:t,this),a=e.invert(u),c=e.k*(t.shiftKey?.5:2),l=i(w(m(e,c),u,a),o.apply(this,n),f);o_(t),s>0?qy(this).transition().duration(s).call(x,l,u,t):qy(this).call(y.transform,l,u,t)}}function j(e,...o){if(r.apply(this,arguments)){var i,u,a,c,f=e.touches,s=f.length,l=_(this,o,e.changedTouches.length===s).event(e);for(r_(e),u=0;u<s;++u)c=[c=Uy(a=f[u],this),this.__zoom.invert(c),a.identifier],l.touch0?l.touch1||l.touch0[2]===c[2]||(l.touch1=c,l.taps=0):(l.touch0=c,i=!0,l.taps=1+!!t);t&&(t=clearTimeout(t)),i&&(l.taps<2&&(n=c[0],t=setTimeout((function(){t=null}),d)),jx(this),l.start())}}function M(t,...n){if(this.__zooming){var e,r,o,u,a=_(this,n).event(t),c=t.changedTouches,s=c.length;for(o_(t),e=0;e<s;++e)o=Uy(r=c[e],this),a.touch0&&a.touch0[2]===r.identifier?a.touch0[0]=o:a.touch1&&a.touch1[2]===r.identifier&&(a.touch1[0]=o);if(r=a.that.__zoom,a.touch1){var l=a.touch0[0],h=a.touch0[1],d=a.touch1[0],v=a.touch1[1],p=(p=d[0]-l[0])*p+(p=d[1]-l[1])*p,g=(g=v[0]-h[0])*g+(g=v[1]-h[1])*g;r=m(r,Math.sqrt(p/g)),o=[(l[0]+d[0])/2,(l[1]+d[1])/2],u=[(h[0]+v[0])/2,(h[1]+v[1])/2]}else{if(!a.touch0)return;o=a.touch0[0],u=a.touch0[1]}a.zoom(\"touch\",i(w(r,o,u),a.extent,f))}}function S(t,...r){if(this.__zooming){var o,i,u=_(this,r).event(t),a=t.changedTouches,c=a.length;for(r_(t),e&&clearTimeout(e),e=setTimeout((function(){e=null}),d),o=0;o<c;++o)i=a[o],u.touch0&&u.touch0[2]===i.identifier?delete u.touch0:u.touch1&&u.touch1[2]===i.identifier&&delete u.touch1;if(u.touch1&&!u.touch0&&(u.touch0=u.touch1,delete u.touch1),u.touch0)u.touch0[1]=this.__zoom.invert(u.touch0[0]);else if(u.end(),2===u.taps&&(i=Uy(i,this),Math.hypot(n[0]-i[0],n[1]-i[1])<g)){var f=qy(this).on(\"dblclick.zoom\");f&&f.apply(this,arguments)}}}return y.transform=function(t,n,e,r){var o=t.selection?t.selection():t;o.property(\"__zoom\",a_),t!==o?x(t,n,e,r):o.interrupt().each((function(){_(this,arguments).event(r).start().zoom(null,\"function\"==typeof n?n.apply(this,arguments):n).end()}))},y.scaleBy=function(t,n,e,r){y.scaleTo(t,(function(){return this.__zoom.k*(\"function\"==typeof n?n.apply(this,arguments):n)}),e,r)},y.scaleTo=function(t,n,e,r){y.transform(t,(function(){var t=o.apply(this,arguments),r=this.__zoom,u=null==e?b(t):\"function\"==typeof e?e.apply(this,arguments):e,a=r.invert(u),c=\"function\"==typeof n?n.apply(this,arguments):n;return i(w(m(r,c),u,a),t,f)}),e,r)},y.translateBy=function(t,n,e,r){y.transform(t,(function(){return i(this.__zoom.translate(\"function\"==typeof n?n.apply(this,arguments):n,\"function\"==typeof e?e.apply(this,arguments):e),o.apply(this,arguments),f)}),null,r)},y.translateTo=function(t,n,e,r,u){y.transform(t,(function(){var t=o.apply(this,arguments),u=this.__zoom,a=null==r?b(t):\"function\"==typeof r?r.apply(this,arguments):r;return i(n_.translate(a[0],a[1]).scale(u.k).translate(\"function\"==typeof n?-n.apply(this,arguments):-n,\"function\"==typeof e?-e.apply(this,arguments):-e),t,f)}),r,u)},E.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit(\"start\")),this},zoom:function(t,n){return this.mouse&&\"mouse\"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&\"touch\"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&\"touch\"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit(\"zoom\"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit(\"end\")),this},emit:function(t){var n=qy(this.that).datum();h.call(t,this.that,new Jx(t,{sourceEvent:this.sourceEvent,target:y,type:t,transform:this.that.__zoom,dispatch:h}),n)}},y.wheelDelta=function(t){return arguments.length?(u=\"function\"==typeof t?t:Qx(+t),y):u},y.filter=function(t){return arguments.length?(r=\"function\"==typeof t?t:Qx(!!t),y):r},y.touchable=function(t){return arguments.length?(a=\"function\"==typeof t?t:Qx(!!t),y):a},y.extent=function(t){return arguments.length?(o=\"function\"==typeof t?t:Qx([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),y):o},y.scaleExtent=function(t){return arguments.length?(c[0]=+t[0],c[1]=+t[1],y):[c[0],c[1]]},y.translateExtent=function(t){return arguments.length?(f[0][0]=+t[0][0],f[1][0]=+t[1][0],f[0][1]=+t[0][1],f[1][1]=+t[1][1],y):[[f[0][0],f[0][1]],[f[1][0],f[1][1]]]},y.constrain=function(t){return arguments.length?(i=t,y):i},y.duration=function(t){return arguments.length?(s=+t,y):s},y.interpolate=function(t){return arguments.length?(l=t,y):l},y.on=function(){var t=h.on.apply(h,arguments);return t===h?y:t},y.clickDistance=function(t){return arguments.length?(p=(t=+t)*t,y):Math.sqrt(p)},y.tapDistance=function(t){return arguments.length?(g=+t,y):g},y}function h_(t){var n=t.domNode,e=t.panZoom,r=t.getTransform,o=t.getViewScale,i=qy(n);return{update:function(t){var n=t.translateExtent,u=t.width,a=t.height,c=t.zoomStep,f=void 0===c?10:c,s=t.pannable,l=void 0===s||s,h=t.zoomable,d=void 0===h||h,v=t.inversePan,p=void 0!==v&&v,g=[0,0],y=l_().on(\"start\",(function(t){var n,e;\"mousedown\"!==t.sourceEvent.type&&\"touchstart\"!==t.sourceEvent.type||(g=[null!==(n=t.sourceEvent.clientX)&&void 0!==n?n:t.sourceEvent.touches[0].clientX,null!==(e=t.sourceEvent.clientY)&&void 0!==e?e:t.sourceEvent.touches[0].clientY])})).on(\"zoom\",l?function(t){var i,c,f=r();if((\"mousemove\"===t.sourceEvent.type||\"touchmove\"===t.sourceEvent.type)&&e){var s=[null!==(i=t.sourceEvent.clientX)&&void 0!==i?i:t.sourceEvent.touches[0].clientX,null!==(c=t.sourceEvent.clientY)&&void 0!==c?c:t.sourceEvent.touches[0].clientY],l=[s[0]-g[0],s[1]-g[1]];g=s;var h=o()*Math.max(f[2],Math.log(f[2]))*(p?-1:1),d={x:f[0]-l[0]*h,y:f[1]-l[1]*h},v=[[0,0],[u,a]];e.setViewportConstrained({x:d.x,y:d.y,zoom:f[2]},v,n)}}:null).on(\"zoom.wheel\",d?function(t){var n=r();if(\"wheel\"===t.sourceEvent.type&&e){var o=-t.sourceEvent.deltaY*(1===t.sourceEvent.deltaMode?.05:t.sourceEvent.deltaMode?1:.002)*f,i=n[2]*Math.pow(2,o);e.scaleTo(i)}}:null);i.call(y,{})},destroy:function(){i.on(\"zoom\",null)},pointer:Uy}}e_.prototype=t_.prototype;var d_,v_=function(t,n){return t.x!==n.x||t.y!==n.y||t.zoom!==n.k},p_=function(t){return{x:t.x,y:t.y,zoom:t.k}},g_=function(t){var n=t.x,e=t.y,r=t.zoom;return n_.translate(n,e).scale(r)},y_=function(t,n){return t.target.closest(\".\".concat(n))},m_=function(t,n){return 2===n&&Array.isArray(t)&&t.includes(2)},w_=function(t,n){return void 0===n&&(n=0),\"number\"==typeof n&&n>0?t.transition().duration(n):t},b_=function(t){var n=t.ctrlKey&&Xm()?10:1;return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*n};function x_(t){var n=t.domNode,e=t.minZoom,r=t.maxZoom,o=t.translateExtent,i=t.viewport,u=t.onPanZoom,a=t.onPanZoomStart,c=t.onPanZoomEnd,f=t.onTransformChange,s=t.onDraggingChange,l={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},h=n.getBoundingClientRect(),d=l_().scaleExtent([e,r]).translateExtent(o),v=qy(n).call(d);w({x:i.x,y:i.y,zoom:Om(i.zoom,e,r)},[[0,0],[h.width,h.height]],o);var p=v.on(\"wheel.zoom\"),g=v.on(\"dblclick.zoom\");function y(t,n){v&&(null==d||d.transform(w_(v,null==n?void 0:n.duration),t))}function m(){d.on(\"zoom\",null)}function w(t,n,e){var r=g_(t),o=null==d?void 0:d.constrain()(r,n,e);return o&&y(o),o}return d.wheelDelta(b_),{update:function(t){var n=t.noWheelClassName,e=t.noPanClassName,r=t.onPaneContextMenu,o=t.userSelectionActive,i=t.panOnScroll,h=t.panOnDrag,y=t.panOnScrollMode,w=t.panOnScrollSpeed,b=t.preventScrolling,x=t.zoomOnPinch,_=t.zoomOnScroll,E=t.zoomOnDoubleClick,k=t.zoomActivationKeyPressed,N=t.lib;o&&!l.isZoomingOrPanning&&m();var O=i&&!k&&!o?function(t){var n=t.zoomPanValues,e=t.noWheelClassName,r=t.d3Selection,o=t.d3Zoom,i=t.panOnScrollMode,u=t.panOnScrollSpeed,a=t.zoomOnPinch,c=t.onPanZoomStart,f=t.onPanZoom,s=t.onPanZoomEnd;return function(t){if(y_(t,e))return!1;t.preventDefault(),t.stopImmediatePropagation();var l=r.property(\"__zoom\").k||1;if(t.ctrlKey&&a){var h=Uy(t),d=b_(t),v=l*Math.pow(2,d);o.scaleTo(r,v,h,t)}else{var p=1===t.deltaMode?20:1,g=i===ew.Vertical?0:t.deltaX*p,y=i===ew.Horizontal?0:t.deltaY*p;!Xm()&&t.shiftKey&&i!==ew.Vertical&&(g=t.deltaY*p,y=0),o.translateBy(r,-g/l*u,-y/l*u,{internal:!0});var m=p_(r.property(\"__zoom\"));clearTimeout(n.panScrollTimeout),n.isPanScrolling||(n.isPanScrolling=!0,null==c||c(t,m)),n.isPanScrolling&&(null==f||f(t,m),n.panScrollTimeout=setTimeout((function(){null==s||s(t,m),n.isPanScrolling=!1}),150))}}}({zoomPanValues:l,noWheelClassName:n,d3Selection:v,d3Zoom:d,panOnScrollMode:y,panOnScrollSpeed:w,zoomOnPinch:x,onPanZoomStart:a,onPanZoom:u,onPanZoomEnd:c}):function(t){var n=t.noWheelClassName,e=t.preventScrolling,r=t.d3ZoomHandler;return function(t,o){if(!e&&\"wheel\"===t.type&&!t.ctrlKey||y_(t,n))return null;t.preventDefault(),r.call(this,t,o)}}({noWheelClassName:n,preventScrolling:b,d3ZoomHandler:p});if(v.on(\"wheel.zoom\",O,{passive:!1}),!o){var j=function(t){var n=t.zoomPanValues,e=t.onDraggingChange,r=t.onPanZoomStart;return function(t){var o,i,u;if(!(null===(o=t.sourceEvent)||void 0===o?void 0:o.internal)){var a=p_(t.transform);n.mouseButton=(null===(i=t.sourceEvent)||void 0===i?void 0:i.button)||0,n.isZoomingOrPanning=!0,n.prevViewport=a,\"mousedown\"===(null===(u=t.sourceEvent)||void 0===u?void 0:u.type)&&e(!0),r&&(null==r||r(t.sourceEvent,a))}}}({zoomPanValues:l,onDraggingChange:s,onPanZoomStart:a});d.on(\"start\",j);var M=function(t){var n=t.zoomPanValues,e=t.panOnDrag,r=t.onPaneContextMenu,o=t.onTransformChange,i=t.onPanZoom;return function(t){var u,a,c;n.usedRightMouseButton=!(!r||!m_(e,null!==(u=n.mouseButton)&&void 0!==u?u:0)),(null===(a=t.sourceEvent)||void 0===a?void 0:a.sync)||o([t.transform.x,t.transform.y,t.transform.k]),i&&!(null===(c=t.sourceEvent)||void 0===c?void 0:c.internal)&&(null==i||i(t.sourceEvent,p_(t.transform)))}}({zoomPanValues:l,panOnDrag:h,onPaneContextMenu:!!r,onPanZoom:u,onTransformChange:f});d.on(\"zoom\",M);var S=function(t){var n=t.zoomPanValues,e=t.panOnDrag,r=t.panOnScroll,o=t.onDraggingChange,i=t.onPanZoomEnd,u=t.onPaneContextMenu;return function(t){var a,c;if(!(null===(a=t.sourceEvent)||void 0===a?void 0:a.internal)&&(n.isZoomingOrPanning=!1,u&&m_(e,null!==(c=n.mouseButton)&&void 0!==c?c:0)&&!n.usedRightMouseButton&&t.sourceEvent&&u(t.sourceEvent),n.usedRightMouseButton=!1,o(!1),i&&v_(n.prevViewport,t.transform))){var f=p_(t.transform);n.prevViewport=f,clearTimeout(n.timerId),n.timerId=setTimeout((function(){null==i||i(t.sourceEvent,f)}),r?150:0)}}}({zoomPanValues:l,panOnDrag:h,panOnScroll:i,onPaneContextMenu:r,onPanZoomEnd:c,onDraggingChange:s});d.on(\"end\",S)}var A=function(t){var n=t.zoomActivationKeyPressed,e=t.zoomOnScroll,r=t.zoomOnPinch,o=t.panOnDrag,i=t.panOnScroll,u=t.zoomOnDoubleClick,a=t.userSelectionActive,c=t.noWheelClassName,f=t.noPanClassName,s=t.lib;return function(t){var l=n||e,h=r&&t.ctrlKey;if(1===t.button&&\"mousedown\"===t.type&&(y_(t,\"\".concat(s,\"-flow__node\"))||y_(t,\"\".concat(s,\"-flow__edge\"))))return!0;if(!(o||l||i||u||r))return!1;if(a)return!1;if(y_(t,c)&&\"wheel\"===t.type)return!1;if(y_(t,f)&&(\"wheel\"!==t.type||i&&\"wheel\"===t.type&&!n))return!1;if(!r&&t.ctrlKey&&\"wheel\"===t.type)return!1;if(!l&&!i&&!h&&\"wheel\"===t.type)return!1;if(!o&&(\"mousedown\"===t.type||\"touchstart\"===t.type))return!1;if(Array.isArray(o)&&!o.includes(t.button)&&\"mousedown\"===t.type)return!1;var d=Array.isArray(o)&&o.includes(t.button)||!t.button||t.button<=1;return(!t.ctrlKey||\"wheel\"===t.type)&&d}}({zoomActivationKeyPressed:k,panOnDrag:h,zoomOnScroll:_,panOnScroll:i,zoomOnDoubleClick:E,zoomOnPinch:x,userSelectionActive:o,noPanClassName:e,noWheelClassName:n,lib:N});d.filter(A),E?v.on(\"dblclick.zoom\",g):v.on(\"dblclick.zoom\",null)},destroy:m,setViewport:function(t,n){var e=g_(t);return y(e,n),e},setViewportConstrained:w,getViewport:function(){var t=v?e_(v.node()):{x:0,y:0,k:1};return{x:t.x,y:t.y,zoom:t.k}},scaleTo:function(t,n){v&&(null==d||d.scaleTo(w_(v,null==n?void 0:n.duration),t))},scaleBy:function(t,n){v&&(null==d||d.scaleBy(w_(v,null==n?void 0:n.duration),t))},setScaleExtent:function(t){null==d||d.scaleExtent(t)},setTranslateExtent:function(t){null==d||d.translateExtent(t)},syncViewport:function(t){if(v){var n=g_(t),e=v.property(\"__zoom\");e.k===t.zoom&&e.x===t.x&&e.y===t.y||null==d||d.transform(v,n,null,{sync:!0})}}}}!function(t){t.Line=\"line\",t.Handle=\"handle\"}(d_||(d_={}));var __=[\"top-left\",\"top-right\",\"bottom-left\",\"bottom-right\"],E_=[\"top\",\"right\",\"bottom\",\"left\"];function k_(t,n){return Math.max(0,n-t)}function N_(t,n){return Math.max(0,t-n)}function O_(t,n,e){return Math.max(0,n-t,t-e)}function j_(t,n){return t?!n:n}var M_={width:0,height:0,x:0,y:0},S_=hp(hp({},M_),{pointerX:0,pointerY:0,aspectRatio:1});function A_(t,n,e){var r,o,i=n.position.x+t.position.x,u=n.position.y+t.position.y,a=null!==(r=t.measured.width)&&void 0!==r?r:0,c=null!==(o=t.measured.height)&&void 0!==o?o:0,f=e[0]*a,s=e[1]*c;return[[i-f,u-s],[i+a-f,u+c-s]]}function I_(t){var n=t.domNode,e=t.nodeId,r=t.getStoreItems,o=t.onChange,i=t.onEnd,u=qy(n);return{update:function(t){var n=t.controlPosition,a=t.boundaries,c=t.keepAspectRatio,f=t.onResizeStart,s=t.onResize,l=t.onResizeEnd,h=t.shouldResize,d=hp({},M_),v=hp({},S_),p=function(t){return{isHorizontal:t.includes(\"right\")||t.includes(\"left\"),isVertical:t.includes(\"bottom\")||t.includes(\"top\"),affectsX:t.includes(\"left\"),affectsY:t.includes(\"top\")}}(n),g=void 0,y=[],m=void 0,w=void 0,b=void 0,x=am().on(\"start\",(function(t){var n,o,i,u,a,c,s,l,h,p=r(),x=p.nodeLookup,_=p.transform,E=p.snapGrid,k=p.snapToGrid,N=p.nodeOrigin;if(g=x.get(e)){var O=Zm(t.sourceEvent,{transform:_,snapGrid:E,snapToGrid:k}),j=O.xSnapped,M=O.ySnapped;d={width:null!==(u=null===(i=g.measured)||void 0===i?void 0:i.width)&&void 0!==u?u:0,height:null!==(c=null===(a=g.measured)||void 0===a?void 0:a.height)&&void 0!==c?c:0,x:null!==(s=g.position.x)&&void 0!==s?s:0,y:null!==(l=g.position.y)&&void 0!==l?l:0},v=hp(hp({},d),{pointerX:j,pointerY:M,aspectRatio:d.width/d.height}),m=void 0,(\"parent\"===g.extent||g.expandParent)&&(m=x.get(g.parentId))&&\"parent\"===g.extent&&(w=function(t){return[[0,0],[t.measured.width,t.measured.height]]}(m)),y=[],b=void 0;try{for(var S=pp(x),A=S.next();!A.done;A=S.next()){var I=gp(A.value,2),P=I[0],z=I[1];if(z.parentId===e&&(y.push({id:P,position:hp({},z.position),extent:z.extent}),\"parent\"===z.extent||z.expandParent)){var T=A_(z,g,null!==(h=z.origin)&&void 0!==h?h:N);b=b?[[Math.min(T[0][0],b[0][0]),Math.min(T[0][1],b[0][1])],[Math.max(T[1][0],b[1][0]),Math.max(T[1][1],b[1][1])]]:T}}}catch(t){n={error:t}}finally{try{A&&!A.done&&(o=S.return)&&o.call(S)}finally{if(n)throw n.error}}null==f||f(t,hp({},d))}})).on(\"drag\",(function(t){var n,e,i,u=r(),f=u.transform,l=u.snapGrid,x=u.snapToGrid,_=u.nodeOrigin,E=Zm(t.sourceEvent,{transform:f,snapGrid:l,snapToGrid:x}),k=[];if(g){var N=d.x,O=d.y,j=d.width,M=d.height,S={},A=null!==(i=g.origin)&&void 0!==i?i:_,I=function(t,n,e,r,o,i,u,a){var c=n.affectsX,f=n.affectsY,s=n.isHorizontal,l=n.isVertical,h=s&&l,d=e.xSnapped,v=e.ySnapped,p=r.minWidth,g=r.maxWidth,y=r.minHeight,m=r.maxHeight,w=t.x,b=t.y,x=t.width,_=t.height,E=t.aspectRatio,k=Math.floor(s?d-t.pointerX:0),N=Math.floor(l?v-t.pointerY:0),O=x+(c?-k:k),j=_+(f?-N:N),M=-i[0]*x,S=-i[1]*_,A=O_(O,p,g),I=O_(j,y,m);if(u){var P=0,z=0;c&&k<0?P=k_(w+k+M,u[0][0]):!c&&k>0&&(P=N_(w+O+M,u[1][0])),f&&N<0?z=k_(b+N+S,u[0][1]):!f&&N>0&&(z=N_(b+j+S,u[1][1])),A=Math.max(A,P),I=Math.max(I,z)}a&&(P=0,z=0,c&&k>0?P=N_(w+k,a[0][0]):!c&&k<0&&(P=k_(w+O,a[1][0])),f&&N>0?z=N_(b+N,a[0][1]):!f&&N<0&&(z=k_(b+j,a[1][1])),A=Math.max(A,P),I=Math.max(I,z));if(o){if(s){var T=O_(O/E,y,m)*E;if(A=Math.max(A,T),u){var C=0;C=!c&&!f||c&&!f&&h?N_(b+S+O/E,u[1][1])*E:k_(b+S+(c?k:-k)/E,u[0][1])*E,A=Math.max(A,C)}a&&(C=0,C=!c&&!f||c&&!f&&h?k_(b+O/E,a[1][1])*E:N_(b+(c?k:-k)/E,a[0][1])*E,A=Math.max(A,C))}if(l){var L=O_(j*E,p,g)/E;I=Math.max(I,L),u&&(C=0,C=!c&&!f||f&&!c&&h?N_(w+j*E+M,u[1][0])/E:k_(w+(f?N:-N)*E+M,u[0][0])/E,I=Math.max(I,C)),a&&(C=0,C=!c&&!f||f&&!c&&h?k_(w+j*E,a[1][0])/E:N_(w+(f?N:-N)*E,a[0][0])/E,I=Math.max(I,C))}}N+=N<0?I:-I,k+=k<0?A:-A,o&&(h?O>j*E?N=(j_(c,f)?-k:k)/E:k=(j_(c,f)?-N:N)*E:s?(N=k/E,f=c):(k=N*E,c=f));var B=c?w+k:w,R=f?b+N:b;return{width:x+(c?-k:k),height:_+(f?-N:N),x:i[0]*k*(c?-1:1)+B,y:i[1]*N*(f?-1:1)+R}}(v,p,E,a,c,A,w,b),P=I.width,z=I.height,T=I.x,C=I.y,L=P!==j,B=z!==M,R=T!==N&&L,D=C!==O&&B;if(R||D||L||B){if((R||D||1===A[0]||1==A[1])&&(S.x=R?T:d.x,S.y=D?C:d.y,d.x=S.x,d.y=S.y,m&&g.expandParent&&(S.x&&S.x<0&&(d.x=0,v.x=v.x-S.x),S.y&&S.y<0&&(d.y=0,v.y=v.y-S.y)),y.length>0)){var H=T-N,V=C-O;try{for(var Y=pp(y),F=Y.next();!F.done;F=Y.next()){var G=F.value;G.position={x:G.position.x-H+A[0]*(P-j),y:G.position.y-V+A[1]*(z-M)},k.push(G)}}catch(t){n={error:t}}finally{try{F&&!F.done&&(e=Y.return)&&e.call(Y)}finally{if(n)throw n.error}}}(L||B)&&(S.width=L?P:d.width,S.height=B?z:d.height,d.width=S.width,d.height=S.height);var X=function(t){var n=t.width,e=t.prevWidth,r=t.height,o=t.prevHeight,i=t.affectsX,u=t.affectsY,a=n-e,c=r-o,f=[a>0?1:a<0?-1:0,c>0?1:c<0?-1:0];return a&&i&&(f[0]=-1*f[0]),c&&u&&(f[1]=-1*f[1]),f}({width:d.width,prevWidth:j,height:d.height,prevHeight:M,affectsX:p.affectsX,affectsY:p.affectsY}),$=hp(hp({},d),{direction:X});!1!==(null==h?void 0:h(t,$))&&(null==s||s(t,$),o(S,k))}}})).on(\"end\",(function(t){null==l||l(t,hp({},d)),null==i||i()}));u.call(x)},destroy:function(){u.on(\".drag\",null)}}}export{ow as ConnectionLineType,nw as ConnectionMode,iw as MarkerType,ew as PanOnScrollMode,uw as Position,d_ as ResizeControlVariant,rw as SelectionMode,Xw as XYDrag,Kw as XYHandle,h_ as XYMinimap,x_ as XYPanZoom,I_ as XYResizer,__ as XY_RESIZER_HANDLE_POSITIONS,E_ as XY_RESIZER_LINE_POSITIONS,ww as addEdge,Cw as adoptUserNodes,cm as areConnectionMapsEqual,Pm as boxToRect,Sm as calcAutoPan,km as calculateNodePosition,Om as clamp,jm as clampPosition,Pw as createMarkerIds,dv as dagreLayout,Dm as devWarn,hm as elementSelectionKeys,sm as errorMessages,Wm as evaluateAbsolutePosition,Em as fitView,sw as getBezierEdgeCenter,dw as getBezierPath,Am as getBoundsOfBoxes,Cm as getBoundsOfRects,_m as getConnectedEdges,Km as getDimensions,vw as getEdgeCenter,jw as getEdgePosition,Nm as getElementsToRemove,pw as getElevatedEdgeZIndex,cw as getEventPosition,fw as getHandleBounds,Qm as getHostForElement,ym as getIncomers,bm as getInternalNodesBounds,Iw as getMarkerId,qm as getNodeDimensions,mm as getNodePositionWithOrigin,zw as getNodeToolbarTransform,wm as getNodesBounds,xm as getNodesInside,gm as getOutgoers,Lm as getOverlappingArea,Zm as getPointerPosition,Hm as getPositionWithOrigin,Nw as getSmoothStepPath,xw as getStraightPath,Gm as getViewportForBounds,fm as handleConnectionChange,Bw as handleExpandParent,Sg as hierarchyLayout,lm as infiniteExtent,$m as isCoordinateExtent,dm as isEdgeBase,gw as isEdgeVisible,tw as isInputDOMNode,pm as isInternalNodeBase,Xm as isMacOs,aw as isMouseEvent,vm as isNodeBase,Rm as isNumeric,Bm as isRectObject,Um as nodeHasDimensions,Tm as nodeToBox,zm as nodeToRect,Dw as panBy,Ym as pointToRendererPoint,Im as rectToBox,Fm as rendererPointToPoint,Vw as shallowNodeData,Vm as snapPosition,Tw as updateAbsolutePositions,Hw as updateConnectionLookup,bw as updateEdge,Rw as updateNodeInternals};\n//# sourceMappingURL=index.esm.js.map\n","import { useContext, useMemo } from 'react';\nimport {\n UseBoundStoreWithEqualityFn,\n useStoreWithEqualityFn as useZustandStore,\n} from 'zustand/traditional';\nimport { StoreApi } from 'zustand';\nimport type { Edge, Node, InkFlowState } from '../types';\n\nimport StoreContext from '../contexts/StoreContext';\nimport { errorMessages } from '@aloudata/ink-core';\n\nconst zustandErrorMessage = errorMessages['error001']();\n\n/**\n * Hook for accessing the internal store. Should only be used in rare cases.\n *\n * @public\n * @param selector\n * @param equalityFn\n * @returns The selected state slice\n *\n * @example\n * const nodes = useStore((state: InkFlowState<MyNodeType>) => state.nodes);\n *\n */\nfunction useStore<StateSlice = unknown>(\n selector: (state: InkFlowState) => StateSlice,\n equalityFn?: (a: StateSlice, b: StateSlice) => boolean,\n) {\n const store = useContext(StoreContext);\n\n if (store === null) {\n throw new Error(zustandErrorMessage);\n }\n\n return useZustandStore(store, selector, equalityFn);\n}\n\nfunction useStoreApi<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>() {\n const store = useContext(StoreContext) as UseBoundStoreWithEqualityFn<\n StoreApi<InkFlowState<NodeType, EdgeType>>\n > | null;\n\n if (store === null) {\n throw new Error(zustandErrorMessage);\n }\n\n return useMemo(\n () => ({\n getState: store.getState,\n setState: store.setState,\n subscribe: store.subscribe,\n }),\n [store],\n );\n}\n\nexport { useStore, useStoreApi };\n","import {\n NodeBase,\n NodeOrigin,\n InternalNodeBase,\n InternalNodeUpdate,\n NodeLookup,\n ParentLookup,\n NodeDimensionChange,\n NodePositionChange,\n XYZPosition,\n XYPosition,\n ConnectionLookup,\n EdgeLookup,\n EdgeBase,\n Rect,\n PanZoomInstance,\n Transform,\n CoordinateExtent,\n} from '@aloudata/ink-core';\nimport { ParentExpandChild } from '../types/utils/types';\nimport { getDimensions, getHandleBounds } from './dom';\nimport {\n getBoundsOfRects,\n getNodeDimensions,\n isNumeric,\n nodeToRect,\n} from './general';\n\ntype UpdateNodesOptions<NodeType extends NodeBase> = {\n nodeOrigin?: NodeOrigin;\n elevateNodesOnSelect?: boolean;\n defaults?: Partial<NodeType>;\n checkEquality?: boolean;\n};\n\nexport function updateAbsolutePositions<NodeType extends NodeBase>(\n nodeLookup: Map<string, InternalNodeBase<NodeType>>,\n options: UpdateNodesOptions<NodeType> = {\n nodeOrigin: [0, 0] as NodeOrigin,\n elevateNodesOnSelect: true,\n defaults: {},\n },\n) {\n const selectedNodeZ: number = options?.elevateNodesOnSelect ? 1000 : 0;\n\n for (const [, node] of nodeLookup) {\n const parentId = node.parentId;\n\n if (!parentId) {\n continue;\n }\n\n if (!nodeLookup.has(parentId)) {\n throw new Error(`Parent node ${parentId} not found`);\n }\n\n const parentNode = nodeLookup.get(parentId);\n const { x, y, z } = calculateXYZPosition(\n node,\n nodeLookup,\n {\n ...node.position,\n z:\n (isNumeric(node.zIndex) ? node.zIndex : 0) +\n (node.selected ? selectedNodeZ : 0),\n },\n parentNode?.origin ?? options.nodeOrigin,\n );\n\n const currPosition = node.internals.positionAbsolute;\n const positionChanged = x !== currPosition.x || y !== currPosition.y;\n\n if (positionChanged || z !== node.internals.z) {\n node.internals = {\n ...node.internals,\n positionAbsolute: positionChanged ? { x, y } : currPosition,\n z,\n };\n }\n }\n}\n\nexport function updateNodeInternals<NodeType extends InternalNodeBase>(\n updates: Map<string, InternalNodeUpdate>,\n nodeLookup: NodeLookup<NodeType>,\n parentLookup: ParentLookup<NodeType>,\n domNode: HTMLElement | null,\n nodeOrigin?: NodeOrigin,\n): {\n changes: (NodeDimensionChange | NodePositionChange)[];\n updatedInternals: boolean;\n} {\n const viewportNode = domNode?.querySelector('.xyflow__viewport');\n let updatedInternals = false;\n\n if (!viewportNode) {\n return { changes: [], updatedInternals };\n }\n\n const changes: (NodeDimensionChange | NodePositionChange)[] = [];\n const style = window.getComputedStyle(viewportNode);\n const { m22: zoom } = new window.DOMMatrixReadOnly(style.transform);\n // in this array we collect nodes, that might trigger changes (like expanding parent)\n const parentExpandChildren: ParentExpandChild[] = [];\n\n updates.forEach((update) => {\n const node = nodeLookup.get(update.id);\n\n if (node?.hidden) {\n nodeLookup.set(node.id, {\n ...node,\n internals: {\n ...node.internals,\n handleBounds: undefined,\n },\n });\n updatedInternals = true;\n } else if (node) {\n const dimensions = getDimensions(update.nodeElement);\n const dimensionChanged =\n node.measured.width !== dimensions.width ||\n node.measured.height !== dimensions.height;\n const doUpdate = !!(\n dimensions.width &&\n dimensions.height &&\n (dimensionChanged || !node.internals.handleBounds || update.force)\n );\n\n if (doUpdate) {\n const newNode = {\n ...node,\n measured: dimensions,\n internals: {\n ...node.internals,\n handleBounds: {\n source: getHandleBounds(\n '.source',\n update.nodeElement,\n zoom,\n node.origin || nodeOrigin,\n ),\n target: getHandleBounds(\n '.target',\n update.nodeElement,\n zoom,\n node.origin || nodeOrigin,\n ),\n },\n },\n };\n\n nodeLookup.set(node.id, newNode);\n updatedInternals = true;\n\n if (dimensionChanged) {\n changes.push({\n id: newNode.id,\n type: 'dimensions',\n dimensions,\n });\n\n if (newNode.expandParent && newNode.parentId) {\n parentExpandChildren.push({\n id: newNode.id,\n parentId: newNode.parentId,\n rect: nodeToRect(newNode, newNode.origin || nodeOrigin),\n });\n }\n }\n }\n }\n });\n\n if (parentExpandChildren.length > 0) {\n const parentExpandChanges = handleExpandParent(\n parentExpandChildren,\n nodeLookup,\n parentLookup,\n nodeOrigin,\n );\n changes.push(...parentExpandChanges);\n }\n\n return { changes, updatedInternals };\n}\n\nfunction calculateXYZPosition<NodeType extends NodeBase>(\n node: NodeType,\n nodeLookup: Map<string, InternalNodeBase<NodeType>>,\n result: XYZPosition,\n nodeOrigin: NodeOrigin = [0, 0],\n): XYZPosition {\n if (!node.parentId) {\n return result;\n }\n\n const parent = nodeLookup.get(node.parentId)!;\n const parentPosition = getNodePositionWithOrigin(parent, nodeOrigin).position;\n\n return calculateXYZPosition(\n parent,\n nodeLookup,\n {\n x: (result.x ?? 0) + parentPosition.x,\n y: (result.y ?? 0) + parentPosition.y,\n z:\n (parent.internals.z ?? 0) > (result.z ?? 0)\n ? parent.internals.z ?? 0\n : result.z ?? 0,\n },\n parent.origin || nodeOrigin,\n );\n}\n\nexport const getNodePositionWithOrigin = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): { position: XYPosition; positionAbsolute: XYPosition } => {\n const { width, height } = getNodeDimensions(node);\n const positionAbsolute =\n 'internals' in node ? node.internals.positionAbsolute : node.position;\n const origin = node.origin || nodeOrigin;\n const offsetX = width * origin[0];\n const offsetY = height * origin[1];\n\n return {\n position: {\n x: node.position.x - offsetX,\n y: node.position.y - offsetY,\n },\n positionAbsolute: {\n x: positionAbsolute.x - offsetX,\n y: positionAbsolute.y - offsetY,\n },\n };\n};\n\nexport function updateConnectionLookup(\n connectionLookup: ConnectionLookup,\n edgeLookup: EdgeLookup,\n edges: EdgeBase[],\n) {\n connectionLookup.clear();\n edgeLookup.clear();\n\n for (const edge of edges) {\n const { source, target, sourceHandle = null, targetHandle = null } = edge;\n\n const sourceKey = `${source}-source-${sourceHandle}`;\n const targetKey = `${target}-target-${targetHandle}`;\n\n const prevSource = connectionLookup.get(sourceKey) || new Map();\n const prevTarget = connectionLookup.get(targetKey) || new Map();\n const connection = {\n edgeId: edge.id,\n source,\n target,\n sourceHandle,\n targetHandle,\n };\n\n edgeLookup.set(edge.id, edge);\n connectionLookup.set(\n sourceKey,\n prevSource.set(`${target}-${targetHandle}`, connection),\n );\n connectionLookup.set(\n targetKey,\n prevTarget.set(`${source}-${sourceHandle}`, connection),\n );\n }\n}\n\nexport function adoptUserNodes<NodeType extends NodeBase>(\n nodes: NodeType[],\n nodeLookup: Map<string, InternalNodeBase<NodeType>>,\n parentLookup: Map<string, InternalNodeBase<NodeType>[]>,\n options: UpdateNodesOptions<NodeType> = {\n nodeOrigin: [0, 0] as NodeOrigin,\n elevateNodesOnSelect: true,\n defaults: {},\n checkEquality: true,\n },\n) {\n const tmpLookup = new Map(nodeLookup);\n nodeLookup.clear();\n parentLookup.clear();\n\n const selectedNodeZ: number = options?.elevateNodesOnSelect ? 1000 : 0;\n\n nodes.forEach((userNode) => {\n let internalNode = tmpLookup.get(userNode.id);\n\n if (\n options.checkEquality &&\n userNode === internalNode?.internals.userNode\n ) {\n nodeLookup.set(userNode.id, internalNode);\n } else {\n internalNode = {\n ...options.defaults,\n ...userNode,\n measured: {\n width: userNode.measured?.width,\n height: userNode.measured?.height,\n },\n internals: {\n positionAbsolute: userNode.position,\n handleBounds: internalNode?.internals.handleBounds,\n z:\n (isNumeric(userNode.zIndex) ? userNode.zIndex : 0) +\n (userNode.selected ? selectedNodeZ : 0),\n userNode,\n },\n };\n nodeLookup.set(userNode.id, internalNode);\n }\n\n if (userNode.parentId) {\n const childNodes = parentLookup.get(userNode.parentId);\n if (childNodes) {\n childNodes.push(internalNode);\n } else {\n parentLookup.set(userNode.parentId, [internalNode]);\n }\n }\n });\n\n if (parentLookup.size > 0) {\n updateAbsolutePositions(nodeLookup, options);\n }\n}\n\nexport function handleExpandParent(\n children: ParentExpandChild[],\n nodeLookup: NodeLookup,\n parentLookup: ParentLookup,\n nodeOrigin?: NodeOrigin,\n): (NodeDimensionChange | NodePositionChange)[] {\n const changes: (NodeDimensionChange | NodePositionChange)[] = [];\n const parentExpansions = new Map<\n string,\n { expandedRect: Rect; parent: InternalNodeBase }\n >();\n\n // determine the expanded rectangle the child nodes would take for each parent\n for (const child of children) {\n const parent = nodeLookup.get(child.parentId);\n if (!parent) {\n continue;\n }\n\n const parentRect =\n parentExpansions.get(child.parentId)?.expandedRect ??\n nodeToRect(parent, parent.origin ?? nodeOrigin);\n const expandedRect = getBoundsOfRects(parentRect, child.rect);\n parentExpansions.set(child.parentId, { expandedRect, parent });\n }\n\n if (parentExpansions.size > 0) {\n parentExpansions.forEach(({ expandedRect, parent }, parentId) => {\n // determine the position & dimensions of the parent\n const { position } = getNodePositionWithOrigin(parent, parent.origin);\n const dimensions = getNodeDimensions(parent);\n\n // determine how much the parent expands by moving the position\n const xChange =\n expandedRect.x < position.x\n ? Math.round(Math.abs(position.x - expandedRect.x))\n : 0;\n const yChange =\n expandedRect.y < position.y\n ? Math.round(Math.abs(position.y - expandedRect.y))\n : 0;\n\n if (xChange > 0 || yChange > 0) {\n changes.push({\n id: parentId,\n type: 'position',\n position: {\n x: position.x - xChange,\n y: position.y - yChange,\n },\n });\n\n // We move all child nodes in the oppsite direction\n // so the x,y changes of the parent do not move the children\n const childNodes = parentLookup.get(parentId);\n childNodes?.forEach((childNode) => {\n if (!children.some((child) => child.id === childNode.id)) {\n changes.push({\n id: childNode.id,\n type: 'position',\n position: {\n x: childNode.position.x + xChange,\n y: childNode.position.y + yChange,\n },\n });\n }\n });\n }\n\n if (\n dimensions.width < expandedRect.width ||\n dimensions.height < expandedRect.height\n ) {\n changes.push({\n id: parentId,\n type: 'dimensions',\n setAttributes: true,\n dimensions: {\n width: Math.max(dimensions.width, Math.round(expandedRect.width)),\n height: Math.max(\n dimensions.height,\n Math.round(expandedRect.height),\n ),\n },\n });\n }\n });\n }\n\n return changes;\n}\n\nexport function panBy({\n delta,\n panZoom,\n transform,\n translateExtent,\n width,\n height,\n}: {\n delta: XYPosition;\n panZoom: PanZoomInstance | null;\n transform: Transform;\n translateExtent: CoordinateExtent;\n width: number;\n height: number;\n}) {\n if (!panZoom || (!delta.x && !delta.y)) {\n return false;\n }\n\n const nextViewport = panZoom.setViewportConstrained(\n {\n x: transform[0] + delta.x,\n y: transform[1] + delta.y,\n zoom: transform[2],\n },\n [\n [0, 0],\n [width, height],\n ],\n translateExtent,\n );\n\n const transformChanged =\n !!nextViewport &&\n (nextViewport.x !== transform[0] ||\n nextViewport.y !== transform[1] ||\n nextViewport.k !== transform[2]);\n\n return transformChanged;\n}\n","import { Ref, ReactNode, RefAttributes, forwardRef } from 'react';\n\nimport { Node } from '../types';\nimport { getNodePositionWithOrigin } from './store';\nimport {\n XYPosition,\n CoordinateExtent,\n SnapGrid,\n Transform,\n InternalNodeBase,\n NodeBase,\n NodeOrigin,\n Rect,\n Box,\n Viewport,\n Dimensions,\n NodeLookup,\n} from '@aloudata/ink-core';\n\nexport const clamp = (val: number, min = 0, max = 1): number =>\n Math.min(Math.max(val, min), max);\n\nexport const clampPosition = (\n position: XYPosition = { x: 0, y: 0 },\n extent: CoordinateExtent,\n) => ({\n x: clamp(position.x, extent[0][0], extent[1][0]),\n y: clamp(position.y, extent[0][1], extent[1][1]),\n});\n\nexport function getNodeDimensions(node: {\n measured?: { width?: number; height?: number };\n width?: number;\n height?: number;\n initialWidth?: number;\n initialHeight?: number;\n}): { width: number; height: number } {\n return {\n width: node.measured?.width ?? node.width ?? node.initialWidth ?? 0,\n height: node.measured?.height ?? node.height ?? node.initialHeight ?? 0,\n };\n}\n\nexport const isNumeric = (n: any): n is number => !isNaN(n) && isFinite(n);\n\nexport const snapPosition = (\n position: XYPosition,\n snapGrid: SnapGrid = [1, 1],\n): XYPosition => {\n return {\n x: snapGrid[0] * Math.round(position.x / snapGrid[0]),\n y: snapGrid[1] * Math.round(position.y / snapGrid[1]),\n };\n};\n\nexport const pointToRendererPoint = (\n { x, y }: XYPosition,\n [tx, ty, tScale]: Transform,\n snapToGrid = false,\n snapGrid: SnapGrid = [1, 1],\n): XYPosition => {\n const position: XYPosition = {\n x: (x - tx) / tScale,\n y: (y - ty) / tScale,\n };\n\n return snapToGrid ? snapPosition(position, snapGrid) : position;\n};\n\nexport const nodeToRect = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): Rect => {\n const { x, y } = getNodePositionWithOrigin(node, nodeOrigin).positionAbsolute;\n\n return {\n x,\n y,\n width: node.measured?.width ?? node.width ?? 0,\n height: node.measured?.height ?? node.height ?? 0,\n };\n};\n\nexport const getBoundsOfBoxes = (box1: Box, box2: Box): Box => ({\n x: Math.min(box1.x, box2.x),\n y: Math.min(box1.y, box2.y),\n x2: Math.max(box1.x2, box2.x2),\n y2: Math.max(box1.y2, box2.y2),\n});\n\nexport const rectToBox = ({ x, y, width, height }: Rect): Box => ({\n x,\n y,\n x2: x + width,\n y2: y + height,\n});\n\nexport const boxToRect = ({ x, y, x2, y2 }: Box): Rect => ({\n x,\n y,\n width: x2 - x,\n height: y2 - y,\n});\n\nexport const nodeToBox = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): Box => {\n const { x, y } = getNodePositionWithOrigin(node, nodeOrigin).positionAbsolute;\n\n return {\n x,\n y,\n x2: x + (node.measured?.width ?? node.width ?? 0),\n y2: y + (node.measured?.height ?? node.height ?? 0),\n };\n};\n\nexport const getBoundsOfRects = (rect1: Rect, rect2: Rect): Rect =>\n boxToRect(getBoundsOfBoxes(rectToBox(rect1), rectToBox(rect2)));\n\nexport function fixedForwardRef<T, P = {}>(\n render: (props: P, ref: Ref<T>) => JSX.Element,\n): (props: P & RefAttributes<T>) => JSX.Element {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return forwardRef(render) as any;\n}\n\nexport const getOverlappingArea = (rectA: Rect, rectB: Rect): number => {\n const xOverlap = Math.max(\n 0,\n Math.min(rectA.x + rectA.width, rectB.x + rectB.width) -\n Math.max(rectA.x, rectB.x),\n );\n const yOverlap = Math.max(\n 0,\n Math.min(rectA.y + rectA.height, rectB.y + rectB.height) -\n Math.max(rectA.y, rectB.y),\n );\n\n return Math.ceil(xOverlap * yOverlap);\n};\n\nexport const getViewportForBounds = (\n bounds: Rect,\n width: number,\n height: number,\n minZoom: number,\n maxZoom: number,\n padding: number,\n): Viewport => {\n const xZoom = width / (bounds.width * (1 + padding));\n const yZoom = height / (bounds.height * (1 + padding));\n const zoom = Math.min(xZoom, yZoom);\n const clampedZoom = clamp(zoom, minZoom, maxZoom);\n const boundsCenterX = bounds.x + bounds.width / 2;\n const boundsCenterY = bounds.y + bounds.height / 2;\n const x = width / 2 - boundsCenterX * clampedZoom;\n const y = height / 2 - boundsCenterY * clampedZoom;\n\n return { x, y, zoom: clampedZoom };\n};\n\nexport function isCoordinateExtent(\n extent?: CoordinateExtent | 'parent',\n): extent is CoordinateExtent {\n return extent !== undefined && extent !== 'parent';\n}\n\nexport function nodeHasDimensions<NodeType extends NodeBase = NodeBase>(\n node: NodeType,\n): boolean {\n return (\n (node.measured?.width ?? node.width ?? node.initialWidth) !== undefined &&\n (node.measured?.height ?? node.height ?? node.initialHeight) !== undefined\n );\n}\n\nconst calcAutoPanVelocity = (\n value: number,\n min: number,\n max: number,\n): number => {\n if (value < min) {\n return clamp(Math.abs(value - min), 1, 50) / 50;\n } else if (value > max) {\n return -clamp(Math.abs(value - max), 1, 50) / 50;\n }\n\n return 0;\n};\n\nexport const calcAutoPan = (pos: XYPosition, bounds: Dimensions): number[] => {\n const xMovement = calcAutoPanVelocity(pos.x, 35, bounds.width - 35) * 20;\n const yMovement = calcAutoPanVelocity(pos.y, 35, bounds.height - 35) * 20;\n\n return [xMovement, yMovement];\n};\n\nexport const getPositionWithOrigin = ({\n x,\n y,\n width,\n height,\n origin = [0, 0],\n}: {\n x: number;\n y: number;\n width: number;\n height: number;\n origin?: NodeOrigin;\n}): XYPosition => {\n if (\n !width ||\n !height ||\n origin[0] < 0 ||\n origin[1] < 0 ||\n origin[0] > 1 ||\n origin[1] > 1\n ) {\n return { x, y };\n }\n\n return {\n x: x - width * origin[0],\n y: y - height * origin[1],\n };\n};\n\nexport const rendererPointToPoint = (\n { x, y }: XYPosition,\n [tx, ty, tScale]: Transform,\n): XYPosition => {\n return {\n x: x * tScale + tx,\n y: y * tScale + ty,\n };\n};\n\nexport const isMacOs = () =>\n typeof navigator !== 'undefined' && navigator?.userAgent?.indexOf('Mac') >= 0;\n\nexport const isNode = <NodeType extends Node = Node>(\n element: unknown,\n): element is NodeType => isNodeBase<NodeType>(element);\n\nexport const isNodeBase = <NodeType extends NodeBase = NodeBase>(\n element: any,\n): element is NodeType =>\n 'id' in element &&\n 'position' in element &&\n !('source' in element) &&\n !('target' in element);\n\n/**\n * Convert child position to aboslute position\n *\n * @internal\n * @param position\n * @param parentId\n * @param nodeLookup\n * @param nodeOrigin\n * @returns an internal node with an absolute position\n */\nexport function evaluateAbsolutePosition(\n position: XYPosition,\n parentId: string,\n nodeLookup: NodeLookup,\n nodeOrigin: NodeOrigin = [0, 0],\n): XYPosition {\n let nextParentId: string | undefined = parentId;\n const positionAbsolute = { ...position };\n\n while (nextParentId) {\n const parent = nodeLookup.get(parentId);\n nextParentId = parent?.parentId;\n\n if (parent) {\n const origin = parent.origin || nodeOrigin;\n const xOffset = (parent.measured.width ?? 0) * origin[0];\n const yOffset = (parent.measured.height ?? 0) * origin[1];\n positionAbsolute.x += parent.position.x - xOffset;\n positionAbsolute.y += parent.position.y - yOffset;\n }\n }\n\n return positionAbsolute;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isRectObject = (obj: any): obj is Rect =>\n isNumeric(obj.width) &&\n isNumeric(obj.height) &&\n isNumeric(obj.x) &&\n isNumeric(obj.y);\n\nexport const devWarn = (id: string, message: string) => {\n // if (process.env.NODE_ENV === 'development') {\n // console.warn(\n // `[Ink Flow]: ${message} Help: https://reactflow.dev/error#${id}`,\n // );\n // }\n};\n","import {\n Transform,\n SnapGrid,\n XYPosition,\n Dimensions,\n NodeOrigin,\n HandleElement,\n Position,\n} from '@aloudata/ink-core';\nimport { pointToRendererPoint, snapPosition } from './general';\n\nexport type GetPointerPositionParams = {\n transform: Transform;\n snapGrid?: SnapGrid;\n snapToGrid?: boolean;\n};\n\nexport function getPointerPosition(\n event: MouseEvent | TouchEvent,\n {\n snapGrid = [0, 0],\n snapToGrid = false,\n transform,\n }: GetPointerPositionParams,\n): XYPosition & { xSnapped: number; ySnapped: number } {\n const { x, y } = getEventPosition(event);\n const pointerPos = pointToRendererPoint({ x, y }, transform);\n const { x: xSnapped, y: ySnapped } = snapToGrid\n ? snapPosition(pointerPos, snapGrid)\n : pointerPos;\n\n // we need the snapped position in order to be able to skip unnecessary drag events\n return {\n xSnapped,\n ySnapped,\n ...pointerPos,\n };\n}\n\nexport const getDimensions = (node: HTMLDivElement): Dimensions => ({\n width: node.offsetWidth,\n height: node.offsetHeight,\n});\n\nexport const getHostForElement = (\n element: HTMLElement,\n): Document | ShadowRoot =>\n (element.getRootNode?.() as Document | ShadowRoot) || window?.document;\n\nconst inputTags = ['INPUT', 'SELECT', 'TEXTAREA'];\n\nexport function isInputDOMNode(event: KeyboardEvent): boolean {\n // using composed path for handling shadow dom\n const target = (event.composedPath?.()?.[0] || event.target) as HTMLElement;\n const isInput =\n inputTags.includes(target?.nodeName) ||\n target?.hasAttribute('contenteditable');\n\n // when an input field is focused we don't want to trigger deletion or movement of nodes\n return isInput || !!target?.closest('.nokey');\n}\n\nexport const isMouseEvent = (\n event: MouseEvent | TouchEvent,\n): event is MouseEvent => 'clientX' in event;\n\nexport const getEventPosition = (\n event: MouseEvent | TouchEvent,\n bounds?: DOMRect,\n) => {\n const isMouse = isMouseEvent(event);\n const evtX = isMouse ? event.clientX : event.touches?.[0].clientX;\n const evtY = isMouse ? event.clientY : event.touches?.[0].clientY;\n\n return {\n x: evtX - (bounds?.left ?? 0),\n y: evtY - (bounds?.top ?? 0),\n };\n};\n\n// The handle bounds are calculated relative to the node element.\n// We store them in the internals object of the node in order to avoid\n// unnecessary recalculations.\nexport const getHandleBounds = (\n selector: string,\n nodeElement: HTMLDivElement,\n zoom: number,\n nodeOrigin: NodeOrigin = [0, 0],\n): HandleElement[] | null => {\n const handles = nodeElement.querySelectorAll(selector);\n\n if (!handles || !handles.length) {\n return null;\n }\n\n const handlesArray = Array.from(handles) as HTMLDivElement[];\n\n // @todo can't we use the node dimensions here?\n const nodeBounds = nodeElement.getBoundingClientRect();\n const nodeOffset = {\n x: nodeBounds.width * nodeOrigin[0],\n y: nodeBounds.height * nodeOrigin[1],\n };\n\n return handlesArray.map((handle): HandleElement => {\n const handleBounds = handle.getBoundingClientRect();\n\n return {\n id: handle.getAttribute('data-handleid'),\n position: handle.getAttribute('data-handlepos') as unknown as Position,\n x: (handleBounds.left - nodeBounds.left - nodeOffset.x) / zoom,\n y: (handleBounds.top - nodeBounds.top - nodeOffset.y) / zoom,\n ...getDimensions(handle),\n };\n });\n};\n","import { useState, useEffect, useRef, useMemo } from 'react';\nimport { isInputDOMNode } from '../utils/dom';\nimport { KeyCode } from '@aloudata/ink-core';\n\ntype Keys = Array<string>;\ntype PressedKeys = Set<string>;\ntype KeyOrCode = 'key' | 'code';\n\nexport type UseKeyPressOptions = {\n target?: Window | Document | HTMLElement | ShadowRoot | null;\n actInsideInputWithModifier?: boolean;\n};\n\nconst defaultDoc = typeof document !== 'undefined' ? document : null;\n\n/**\n * Hook for handling key events.\n *\n * @public\n * @param param.keyCode - The key code (string or array of strings) to use\n * @param param.options - Options\n * @returns boolean\n */\nexport function useKeyPress(\n // the keycode can be a string 'a' or an array of strings ['a', 'a+d']\n // a string means a single key 'a' or a combination when '+' is used 'a+d'\n // an array means different possibilites. Explainer: ['a', 'd+s'] here the\n // user can use the single key 'a' or the combination 'd' + 's'\n keyCode: KeyCode | null = null,\n options: UseKeyPressOptions = {\n target: defaultDoc,\n actInsideInputWithModifier: true,\n },\n): boolean {\n const [keyPressed, setKeyPressed] = useState(false);\n\n // we need to remember if a modifier key is pressed in order to track it\n const modifierPressed = useRef(false);\n\n // we need to remember the pressed keys in order to support combinations\n const pressedKeys = useRef<PressedKeys>(new Set([]));\n\n // keyCodes = array with single keys [['a']] or key combinations [['a', 's']]\n // keysToWatch = array with all keys flattened ['a', 'd', 'ShiftLeft']\n // used to check if we store event.code or event.key. When the code is in the list of keysToWatch\n // we use the code otherwise the key. Explainer: When you press the left \"command\" key, the code is \"MetaLeft\"\n // and the key is \"Meta\". We want users to be able to pass keys and codes so we assume that the key is meant when\n // we can't find it in the list of keysToWatch.\n const [keyCodes, keysToWatch] = useMemo<[Array<Keys>, Keys]>(() => {\n if (keyCode !== null) {\n const keyCodeArr = Array.isArray(keyCode) ? keyCode : [keyCode];\n const keys = keyCodeArr\n .filter((kc) => typeof kc === 'string')\n .map((kc) => kc.split('+'));\n const keysFlat = keys.reduce(\n (res: Keys, item) => res.concat(...item),\n [],\n );\n\n return [keys, keysFlat];\n }\n\n return [[], []];\n }, [keyCode]);\n\n useEffect(() => {\n const target = options?.target || defaultDoc;\n\n if (keyCode !== null) {\n const downHandler = (event: KeyboardEvent) => {\n modifierPressed.current =\n event.ctrlKey || event.metaKey || event.shiftKey;\n const preventAction =\n (!modifierPressed.current ||\n (modifierPressed.current && !options.actInsideInputWithModifier)) &&\n isInputDOMNode(event);\n\n if (preventAction) {\n return false;\n }\n const keyOrCode = useKeyOrCode(event.code, keysToWatch);\n pressedKeys.current.add(event[keyOrCode]);\n\n if (isMatchingKey(keyCodes, pressedKeys.current, false)) {\n event.preventDefault();\n setKeyPressed(true);\n }\n };\n\n const upHandler = (event: KeyboardEvent) => {\n const preventAction =\n (!modifierPressed.current ||\n (modifierPressed.current && !options.actInsideInputWithModifier)) &&\n isInputDOMNode(event);\n\n if (preventAction) {\n return false;\n }\n const keyOrCode = useKeyOrCode(event.code, keysToWatch);\n\n if (isMatchingKey(keyCodes, pressedKeys.current, true)) {\n setKeyPressed(false);\n pressedKeys.current.clear();\n } else {\n pressedKeys.current.delete(event[keyOrCode]);\n }\n\n // fix for Mac: when cmd key is pressed, keyup is not triggered for any other key, see: https://stackoverflow.com/questions/27380018/when-cmd-key-is-kept-pressed-keyup-is-not-triggered-for-any-other-key\n if (event.key === 'Meta') {\n pressedKeys.current.clear();\n }\n\n modifierPressed.current = false;\n };\n\n const resetHandler = () => {\n pressedKeys.current.clear();\n setKeyPressed(false);\n };\n\n target?.addEventListener(\n 'keydown',\n downHandler as EventListenerOrEventListenerObject,\n );\n target?.addEventListener(\n 'keyup',\n upHandler as EventListenerOrEventListenerObject,\n );\n window.addEventListener('blur', resetHandler);\n window.addEventListener('contextmenu', resetHandler);\n\n return () => {\n target?.removeEventListener(\n 'keydown',\n downHandler as EventListenerOrEventListenerObject,\n );\n target?.removeEventListener(\n 'keyup',\n upHandler as EventListenerOrEventListenerObject,\n );\n window.removeEventListener('blur', resetHandler);\n window.removeEventListener('contextmenu', resetHandler);\n };\n }\n }, [keyCode, setKeyPressed]);\n\n return keyPressed;\n}\n\n// utils\n\nfunction isMatchingKey(\n keyCodes: Array<Keys>,\n pressedKeys: PressedKeys,\n isUp: boolean,\n): boolean {\n return (\n keyCodes\n // we only want to compare same sizes of keyCode definitions\n // and pressed keys. When the user specified 'Meta' as a key somewhere\n // this would also be truthy without this filter when user presses 'Meta' + 'r'\n .filter((keys) => isUp || keys.length === pressedKeys.size)\n // since we want to support multiple possibilities only one of the\n // combinations need to be part of the pressed keys\n .some((keys) => keys.every((k) => pressedKeys.has(k)))\n );\n}\n\nfunction useKeyOrCode(eventCode: string, keysToWatch: KeyCode): KeyOrCode {\n return keysToWatch.includes(eventCode) ? 'code' : 'key';\n}\n","function shallow$1(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size)\n return false;\n for (const [key, value] of objA) {\n if (!Object.is(value, objB.get(key))) {\n return false;\n }\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size)\n return false;\n for (const value of objA) {\n if (!objB.has(value)) {\n return false;\n }\n }\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const keyA of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, keyA) || !Object.is(objA[keyA], objB[keyA])) {\n return false;\n }\n }\n return true;\n}\n\nvar shallow = (objA, objB) => {\n if ((import.meta.env ? import.meta.env.MODE : void 0) !== \"production\") {\n console.warn(\n \"[DEPRECATED] Default export is deprecated. Instead use `import { shallow } from 'zustand/shallow'`.\"\n );\n }\n return shallow$1(objA, objB);\n};\n\nexport { shallow as default, shallow$1 as shallow };\n","import type { CSSProperties } from 'react';\n\nexport const containerStyle: CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useEffect, useRef } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { containerStyle } from '../../styles/utils';\nimport type { FlowRendererProps } from '../FlowRenderer';\nimport { InkFlowState } from '../../types';\nimport { useKeyPress } from '../../hooks/useKeyPress';\nimport { useResizeHandler } from '../../hooks/useResizeHandler';\nimport {\n PanOnScrollMode,\n PanZoomInstance,\n Transform,\n XYPanZoom,\n} from '@aloudata/ink-core';\n\ntype ZoomPaneProps = Omit<\n FlowRendererProps,\n | 'deleteKeyCode'\n | 'selectionKeyCode'\n | 'multiSelectionKeyCode'\n | 'noDragClassName'\n | 'disableKeyboardA11y'\n | 'selectionOnDrag'\n> & {\n isControlledViewport: boolean;\n};\n\nconst selector = (s: InkFlowState) => ({\n userSelectionActive: s.userSelectionActive,\n lib: s.lib,\n});\n\nexport function ZoomPane({\n onPaneContextMenu,\n zoomOnScroll = true,\n zoomOnPinch = true,\n panOnScroll = false,\n panOnScrollSpeed = 0.5,\n panOnScrollMode = PanOnScrollMode.Free,\n zoomOnDoubleClick = true,\n panOnDrag = true,\n defaultViewport,\n translateExtent,\n minZoom,\n maxZoom,\n zoomActivationKeyCode,\n preventScrolling = true,\n children,\n noWheelClassName,\n noPanClassName,\n onViewportChange,\n isControlledViewport,\n}: ZoomPaneProps) {\n const store = useStoreApi();\n const zoomPane = useRef<HTMLDivElement>(null);\n const { userSelectionActive, lib } = useStore(selector, shallow);\n const zoomActivationKeyPressed = useKeyPress(zoomActivationKeyCode);\n const panZoom = useRef<PanZoomInstance>();\n\n useResizeHandler(zoomPane);\n\n useEffect(() => {\n if (zoomPane.current) {\n panZoom.current = XYPanZoom({\n domNode: zoomPane.current,\n minZoom,\n maxZoom,\n translateExtent,\n viewport: defaultViewport,\n onTransformChange: (transform: Transform) => {\n onViewportChange?.({\n x: transform[0],\n y: transform[1],\n zoom: transform[2],\n });\n\n if (!isControlledViewport) {\n store.setState({ transform });\n }\n },\n onDraggingChange: (paneDragging: boolean) =>\n store.setState({ paneDragging }),\n onPanZoomStart: (event, vp) => {\n const { onViewportChangeStart, onMoveStart } = store.getState();\n onMoveStart?.(event, vp);\n onViewportChangeStart?.(vp);\n },\n onPanZoom: (event, vp) => {\n const { onViewportChange, onMove } = store.getState();\n onMove?.(event, vp);\n onViewportChange?.(vp);\n },\n onPanZoomEnd: (event, vp) => {\n const { onViewportChangeEnd, onMoveEnd } = store.getState();\n onMoveEnd?.(event, vp);\n onViewportChangeEnd?.(vp);\n },\n });\n\n const { x, y, zoom } = panZoom.current!.getViewport();\n\n store.setState({\n panZoom: panZoom.current,\n transform: [x, y, zoom],\n domNode: zoomPane.current.closest('.ink-flow') as HTMLDivElement,\n });\n\n return () => {\n panZoom.current?.destroy();\n };\n }\n }, []);\n\n useEffect(() => {\n panZoom.current?.update({\n onPaneContextMenu,\n zoomOnScroll,\n zoomOnPinch,\n panOnScroll,\n panOnScrollSpeed,\n panOnScrollMode,\n zoomOnDoubleClick,\n panOnDrag,\n zoomActivationKeyPressed,\n preventScrolling,\n noPanClassName,\n userSelectionActive,\n noWheelClassName,\n lib,\n });\n }, [\n onPaneContextMenu,\n zoomOnScroll,\n zoomOnPinch,\n panOnScroll,\n panOnScrollSpeed,\n panOnScrollMode,\n zoomOnDoubleClick,\n panOnDrag,\n zoomActivationKeyPressed,\n preventScrolling,\n noPanClassName,\n userSelectionActive,\n noWheelClassName,\n lib,\n ]);\n\n return (\n <div className=\"ink-flow__renderer\" ref={zoomPane} style={containerStyle}>\n {children}\n </div>\n );\n}\n","import { useEffect, type MutableRefObject } from 'react';\n\nimport { useStoreApi } from '../hooks/useStore';\nimport { getDimensions } from '../utils/dom';\nimport { errorMessages } from '@aloudata/ink-core';\n\n/**\n * Hook for handling resize events.\n *\n * @internal\n */\nexport function useResizeHandler(\n domNode: MutableRefObject<HTMLDivElement | null>,\n): void {\n const store = useStoreApi();\n\n useEffect(() => {\n const updateDimensions = () => {\n if (!domNode.current) {\n return false;\n }\n const size = getDimensions(domNode.current!);\n\n if (size.height === 0 || size.width === 0) {\n store.getState().onError?.('004', errorMessages['error004']());\n }\n\n store.setState({ width: size.width || 500, height: size.height || 500 });\n };\n\n if (domNode.current) {\n updateDimensions();\n window.addEventListener('resize', updateDimensions);\n\n const resizeObserver = new ResizeObserver(() => updateDimensions());\n resizeObserver.observe(domNode.current);\n\n return () => {\n window.removeEventListener('resize', updateDimensions);\n\n if (resizeObserver && domNode.current) {\n resizeObserver.unobserve(domNode.current);\n }\n };\n }\n }, []);\n}\n","import { useEffect } from 'react';\n\nimport { useStoreApi } from '../hooks/useStore';\nimport { useKeyPress, UseKeyPressOptions } from './useKeyPress';\nimport { Edge, Node } from '../types';\nimport { KeyCode } from '@aloudata/ink-core';\n\nconst selected = (item: Node | Edge) => item.selected;\n\nconst deleteKeyOptions: UseKeyPressOptions = {\n actInsideInputWithModifier: false,\n};\n\n/**\n * Hook for handling global key events.\n *\n * @internal\n */\nexport function useGlobalKeyHandler({\n deleteKeyCode,\n multiSelectionKeyCode,\n}: {\n deleteKeyCode: KeyCode | null;\n multiSelectionKeyCode: KeyCode | null;\n}): void {\n const store = useStoreApi();\n // const { deleteElements } = useInkFlow();\n\n const deleteKeyPressed = useKeyPress(deleteKeyCode, deleteKeyOptions);\n const multiSelectionKeyPressed = useKeyPress(multiSelectionKeyCode);\n\n useEffect(() => {\n if (deleteKeyPressed) {\n const { edges, nodes } = store.getState();\n // deleteElements({\n // nodes: nodes.filter(selected),\n // edges: edges.filter(selected),\n // });\n store.setState({ nodesSelectionActive: false });\n }\n }, [deleteKeyPressed]);\n\n useEffect(() => {\n store.setState({ multiSelectionActive: multiSelectionKeyPressed });\n }, [multiSelectionKeyPressed]);\n}\n","import {\n EdgeChange,\n NodeChange,\n NodeSelectionChange,\n EdgeSelectionChange,\n NodeLookup,\n EdgeLookup,\n NodeRemoveChange,\n EdgeRemoveChange,\n} from '@aloudata/ink-core';\nimport { Edge, InternalNode, Node } from '../types';\n\nfunction applyChange(change: any, element: any): any {\n switch (change.type) {\n case 'select': {\n element.selected = change.selected;\n break;\n }\n\n case 'position': {\n if (typeof change.position !== 'undefined') {\n element.position = change.position;\n }\n\n if (typeof change.dragging !== 'undefined') {\n element.dragging = change.dragging;\n }\n\n break;\n }\n\n case 'dimensions': {\n if (typeof change.dimensions !== 'undefined') {\n element.measured ??= {};\n element.measured.width = change.dimensions.width;\n element.measured.height = change.dimensions.height;\n\n if (change.setAttributes) {\n element.width = change.dimensions.width;\n element.height = change.dimensions.height;\n }\n }\n\n if (typeof change.resizing === 'boolean') {\n element.resizing = change.resizing;\n }\n\n break;\n }\n }\n}\n\nfunction applyChanges(changes: any[], elements: any[]): any[] {\n const updatedElements: any[] = [];\n // By storing a map of changes for each element, we can a quick lookup as we\n // iterate over the elements array!\n const changesMap = new Map<any, any[]>();\n\n for (const change of changes) {\n if (change.type === 'add') {\n updatedElements.push(change.item);\n continue;\n } else if (change.type === 'remove' || change.type === 'replace') {\n // For a 'remove' change we can safely ignore any other changes queued for\n // the same element, it's going to be removed anyway!\n changesMap.set(change.id, [change]);\n } else {\n const elementChanges = changesMap.get(change.id);\n\n if (elementChanges) {\n // If we have some changes queued already, we can do a mutable update of\n // that array and save ourselves some copying.\n elementChanges.push(change);\n } else {\n changesMap.set(change.id, [change]);\n }\n }\n }\n\n for (const element of elements) {\n const changes = changesMap.get(element.id);\n\n // When there are no changes for an element we can just push it unmodified,\n // no need to copy it.\n if (!changes) {\n updatedElements.push(element);\n continue;\n }\n\n // If we have a 'remove' change queued, it'll be the only change in the array\n if (changes[0].type === 'remove') {\n continue;\n }\n\n if (changes[0].type === 'replace') {\n updatedElements.push({ ...changes[0].item });\n continue;\n }\n\n // For other types of changes, we want to start with a shallow copy of the\n // object so React knows this element has changed. Sequential changes will\n /// each _mutate_ this object, so there's only ever one copy.\n const updatedElement = { ...element };\n\n for (const change of changes) {\n applyChange(change, updatedElement);\n }\n\n updatedElements.push(updatedElement);\n }\n\n return updatedElements;\n}\n\nexport function applyEdgeChanges<EdgeType extends Edge = Edge>(\n changes: EdgeChange<EdgeType>[],\n edges: EdgeType[],\n): EdgeType[] {\n return applyChanges(changes, edges) as EdgeType[];\n}\n\nexport function applyNodeChanges<NodeType extends Node = Node>(\n changes: NodeChange<NodeType>[],\n nodes: NodeType[],\n): NodeType[] {\n return applyChanges(changes, nodes) as NodeType[];\n}\n\nexport function createSelectionChange(\n id: string,\n selected: boolean,\n): NodeSelectionChange | EdgeSelectionChange {\n return {\n id,\n type: 'select',\n selected,\n };\n}\n\nexport function getSelectionChanges(\n items: Map<string, any>,\n selectedIds: Set<string> = new Set(),\n mutateItem = false,\n): NodeSelectionChange[] | EdgeSelectionChange[] {\n const changes: NodeSelectionChange[] | EdgeSelectionChange[] = [];\n\n for (const [id, item] of items) {\n const willBeSelected = selectedIds.has(id);\n\n // we don't want to set all items to selected=false on the first selection\n if (\n !(item.selected === undefined && !willBeSelected) &&\n item.selected !== willBeSelected\n ) {\n if (mutateItem) {\n // this hack is needed for nodes. When the user dragged a node, it's selected.\n // When another node gets dragged, we need to deselect the previous one,\n // in order to have only one selected node at a time - the onNodesChange callback comes too late here :/\n item.selected = willBeSelected;\n }\n changes.push(createSelectionChange(item.id, willBeSelected));\n }\n }\n\n return changes;\n}\n\nexport function getElementsDiffChanges({\n items,\n lookup,\n}: {\n items: Node[] | undefined;\n lookup: NodeLookup<InternalNode<Node>>;\n}): NodeChange[];\nexport function getElementsDiffChanges({\n items,\n lookup,\n}: {\n items: Edge[] | undefined;\n lookup: EdgeLookup;\n}): EdgeChange[];\nexport function getElementsDiffChanges({\n items = [],\n lookup,\n}: {\n items: any[] | undefined;\n lookup: Map<string, any>;\n}): any[] {\n const changes: any[] = [];\n const itemsLookup = new Map<string, any>(\n items.map((item) => [item.id, item]),\n );\n\n for (const item of items) {\n const lookupItem = lookup.get(item.id);\n const storeItem = lookupItem?.internals?.userNode ?? lookupItem;\n\n if (storeItem !== undefined && storeItem !== item) {\n changes.push({ id: item.id, item: item, type: 'replace' });\n }\n\n if (storeItem === undefined) {\n changes.push({ item: item, type: 'add' });\n }\n }\n\n for (const [id] of lookup) {\n const nextNode = itemsLookup.get(id);\n\n if (nextNode === undefined) {\n changes.push({ id, type: 'remove' });\n }\n }\n\n return changes;\n}\n\nexport function elementToRemoveChange<T extends Node | Edge>(\n item: T,\n): NodeRemoveChange | EdgeRemoveChange {\n return {\n id: item.id,\n type: 'remove',\n };\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {\n EdgeBase,\n NodeBase,\n InternalNodeBase,\n NodeOrigin,\n XYPosition,\n Rect,\n NodeDragItem,\n Transform,\n FitViewParamsBase,\n FitViewOptionsBase,\n CoordinateExtent,\n NodeLookup,\n OnError,\n errorMessages,\n OnBeforeDeleteBase,\n} from '@aloudata/ink-core';\nimport {\n boxToRect,\n clampPosition,\n getBoundsOfBoxes,\n getOverlappingArea,\n nodeToRect,\n pointToRendererPoint,\n getViewportForBounds,\n isCoordinateExtent,\n getNodeDimensions,\n nodeToBox,\n} from './general';\n\n/**\n * Test whether an object is useable as an Edge\n * @public\n * @remarks In TypeScript this is a type guard that will narrow the type of whatever you pass in to Edge if it returns true\n * @param element - The element to test\n * @returns A boolean indicating whether the element is an Edge\n */\nexport const isEdgeBase = <EdgeType extends EdgeBase = EdgeBase>(\n element: any,\n): element is EdgeType =>\n 'id' in element && 'source' in element && 'target' in element;\n\n/**\n * Test whether an object is useable as a Node\n * @public\n * @remarks In TypeScript this is a type guard that will narrow the type of whatever you pass in to Node if it returns true\n * @param element - The element to test\n * @returns A boolean indicating whether the element is an Node\n */\nexport const isNodeBase = <NodeType extends NodeBase = NodeBase>(\n element: any,\n): element is NodeType =>\n 'id' in element &&\n 'position' in element &&\n !('source' in element) &&\n !('target' in element);\n\nexport const isInternalNodeBase = <\n NodeType extends InternalNodeBase = InternalNodeBase,\n>(\n element: any,\n): element is NodeType =>\n 'id' in element &&\n 'internals' in element &&\n !('source' in element) &&\n !('target' in element);\n\n/**\n * Pass in a node, and get connected nodes where edge.source === node.id\n * @public\n * @param node - The node to get the connected nodes from\n * @param nodes - The array of all nodes\n * @param edges - The array of all edges\n * @returns An array of nodes that are connected over eges where the source is the given node\n */\nexport const getOutgoers = <\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>(\n node: NodeType | { id: string },\n nodes: NodeType[],\n edges: EdgeType[],\n): NodeType[] => {\n if (!node.id) {\n return [];\n }\n\n const outgoerIds = new Set();\n edges.forEach((edge) => {\n if (edge.source === node.id) {\n outgoerIds.add(edge.target);\n }\n });\n\n return nodes.filter((n) => outgoerIds.has(n.id));\n};\n\n/**\n * Pass in a node, and get connected nodes where edge.target === node.id\n * @public\n * @param node - The node to get the connected nodes from\n * @param nodes - The array of all nodes\n * @param edges - The array of all edges\n * @returns An array of nodes that are connected over eges where the target is the given node\n */\nexport const getIncomers = <\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>(\n node: NodeType | { id: string },\n nodes: NodeType[],\n edges: EdgeType[],\n): NodeType[] => {\n if (!node.id) {\n return [];\n }\n const incomersIds = new Set();\n edges.forEach((edge) => {\n if (edge.target === node.id) {\n incomersIds.add(edge.source);\n }\n });\n\n return nodes.filter((n) => incomersIds.has(n.id));\n};\n\nexport const getNodePositionWithOrigin = (\n node: InternalNodeBase | NodeBase,\n nodeOrigin: NodeOrigin = [0, 0],\n): { position: XYPosition; positionAbsolute: XYPosition } => {\n const { width, height } = getNodeDimensions(node);\n const positionAbsolute =\n 'internals' in node ? node.internals.positionAbsolute : node.position;\n const origin = node.origin || nodeOrigin;\n const offsetX = width * origin[0];\n const offsetY = height * origin[1];\n\n return {\n position: {\n x: node.position.x - offsetX,\n y: node.position.y - offsetY,\n },\n positionAbsolute: {\n x: positionAbsolute.x - offsetX,\n y: positionAbsolute.y - offsetY,\n },\n };\n};\n\nexport type GetNodesBoundsParams = {\n nodeOrigin?: NodeOrigin;\n};\n\n/**\n * Determines a bounding box that contains all given nodes in an array\n * @public\n * @remarks Useful when combined with {@link getViewportForBounds} to calculate the correct transform to fit the given nodes in a viewport.\n * @param nodes - Nodes to calculate the bounds for\n * @param params.nodeOrigin - Origin of the nodes: [0, 0] - top left, [0.5, 0.5] - center\n * @returns Bounding box enclosing all nodes\n */\nexport const getNodesBounds = (\n nodes: NodeBase[],\n params: GetNodesBoundsParams = { nodeOrigin: [0, 0] },\n): Rect => {\n if (nodes.length === 0) {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n\n const box = nodes.reduce(\n (currBox, node) => {\n const nodeBox = nodeToBox(node, params.nodeOrigin);\n return getBoundsOfBoxes(currBox, nodeBox);\n },\n { x: Infinity, y: Infinity, x2: -Infinity, y2: -Infinity },\n );\n\n return boxToRect(box);\n};\n\nexport type GetInternalNodesBoundsParams<NodeType> = {\n nodeOrigin?: NodeOrigin;\n useRelativePosition?: boolean;\n filter?: (node: NodeType) => boolean;\n};\n\n/**\n * Determines a bounding box that contains all given nodes in an array\n * @internal\n */\nexport const getInternalNodesBounds = <\n NodeType extends InternalNodeBase | NodeDragItem,\n>(\n nodeLookup: Map<string, NodeType>,\n params: GetInternalNodesBoundsParams<NodeType> = {\n nodeOrigin: [0, 0],\n },\n): Rect => {\n if (nodeLookup.size === 0) {\n return { x: 0, y: 0, width: 0, height: 0 };\n }\n\n let box = { x: Infinity, y: Infinity, x2: -Infinity, y2: -Infinity };\n\n nodeLookup.forEach((node) => {\n if (params.filter == undefined || params.filter(node)) {\n const nodeBox = nodeToBox(node as InternalNodeBase, params.nodeOrigin);\n box = getBoundsOfBoxes(box, nodeBox);\n }\n });\n\n return boxToRect(box);\n};\n\nexport const getNodesInside = <NodeType extends NodeBase = NodeBase>(\n nodes: Map<string, InternalNodeBase<NodeType>>,\n rect: Rect,\n [tx, ty, tScale]: Transform = [0, 0, 1],\n partially = false,\n // set excludeNonSelectableNodes if you want to pay attention to the nodes \"selectable\" attribute\n excludeNonSelectableNodes = false,\n nodeOrigin: NodeOrigin = [0, 0],\n): InternalNodeBase<NodeType>[] => {\n const paneRect = {\n ...pointToRendererPoint(rect, [tx, ty, tScale]),\n width: rect.width / tScale,\n height: rect.height / tScale,\n };\n\n const visibleNodes: InternalNodeBase<NodeType>[] = [];\n\n for (const [, node] of nodes) {\n const { measured, selectable = true, hidden = false } = node;\n const width = measured.width ?? node.width ?? node.initialWidth ?? null;\n const height = measured.height ?? node.height ?? node.initialHeight ?? null;\n\n if ((excludeNonSelectableNodes && !selectable) || hidden) {\n continue;\n }\n\n const overlappingArea = getOverlappingArea(\n paneRect,\n nodeToRect(node, nodeOrigin),\n );\n const notInitialized = width === null || height === null;\n\n const partiallyVisible = partially && overlappingArea > 0;\n const area = (width ?? 0) * (height ?? 0);\n const isVisible =\n notInitialized || partiallyVisible || overlappingArea >= area;\n\n if (isVisible || node.dragging) {\n visibleNodes.push(node);\n }\n }\n\n return visibleNodes;\n};\n\n/**\n * Get all connecting edges for a given set of nodes\n * @param nodes - Nodes you want to get the connected edges for\n * @param edges - All edges\n * @returns Array of edges that connect any of the given nodes with each other\n */\nexport const getConnectedEdges = <\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>(\n nodes: NodeType[],\n edges: EdgeType[],\n): EdgeType[] => {\n const nodeIds = new Set();\n nodes.forEach((node) => {\n nodeIds.add(node.id);\n });\n\n return edges.filter(\n (edge) => nodeIds.has(edge.source) || nodeIds.has(edge.target),\n );\n};\n\nexport function fitView<\n Params extends FitViewParamsBase<NodeBase>,\n Options extends FitViewOptionsBase<NodeBase>,\n>(\n {\n nodeLookup,\n width,\n height,\n panZoom,\n minZoom,\n maxZoom,\n nodeOrigin = [0, 0],\n }: Params,\n options?: Options,\n) {\n const filteredNodes: InternalNodeBase[] = [];\n const optionNodeIds = options?.nodes\n ? new Set(options.nodes.map((node) => node.id))\n : null;\n\n nodeLookup.forEach((n) => {\n const isVisible =\n n.measured.width &&\n n.measured.height &&\n (options?.includeHiddenNodes || !n.hidden);\n\n if (isVisible && (!optionNodeIds || optionNodeIds.has(n.id))) {\n filteredNodes.push(n);\n }\n });\n\n if (filteredNodes.length > 0) {\n const bounds = getNodesBounds(filteredNodes, { nodeOrigin });\n\n const viewport = getViewportForBounds(\n bounds,\n width,\n height,\n options?.minZoom ?? minZoom,\n options?.maxZoom ?? maxZoom,\n options?.padding ?? 0.1,\n );\n\n panZoom.setViewport(viewport, { duration: options?.duration });\n\n return true;\n }\n\n return false;\n}\n\n/**\n * This function clamps the passed extend by the node's width and height.\n * This is needed to prevent the node from being dragged outside of its extent.\n *\n * @param node\n * @param extent\n * @returns\n */\nfunction clampNodeExtent<NodeType extends NodeBase>(\n node: NodeType,\n extent?: CoordinateExtent | 'parent',\n): CoordinateExtent | 'parent' | undefined {\n if (!extent || extent === 'parent') {\n return extent;\n }\n return [\n extent[0],\n [\n extent[1][0] - (node.measured?.width ?? 0),\n extent[1][1] - (node.measured?.height ?? 0),\n ],\n ];\n}\n\n/**\n * This function calculates the next position of a node, taking into account the node's extent, parent node, and origin.\n *\n * @internal\n * @returns position, positionAbsolute\n */\nexport function calculateNodePosition<NodeType extends NodeBase>({\n nodeId,\n nextPosition,\n nodeLookup,\n nodeOrigin = [0, 0],\n nodeExtent,\n onError,\n}: {\n nodeId: string;\n nextPosition: XYPosition;\n nodeLookup: NodeLookup<InternalNodeBase<NodeType>>;\n nodeOrigin?: NodeOrigin;\n nodeExtent?: CoordinateExtent;\n onError?: OnError;\n}): { position: XYPosition; positionAbsolute: XYPosition } {\n const node = nodeLookup.get(nodeId)!;\n const parentNode = node.parentId ? nodeLookup.get(node.parentId) : undefined;\n const { x: parentX, y: parentY } = parentNode\n ? getNodePositionWithOrigin(parentNode, parentNode.origin || nodeOrigin)\n .positionAbsolute\n : { x: 0, y: 0 };\n\n let currentExtent = clampNodeExtent(node, node.extent || nodeExtent);\n\n if (node.extent === 'parent' && !node.expandParent) {\n if (!parentNode) {\n onError?.('005', errorMessages['error005']());\n } else {\n const nodeWidth = node.measured.width;\n const nodeHeight = node.measured.height;\n const parentWidth = parentNode.measured.width;\n const parentHeight = parentNode.measured.height;\n\n if (nodeWidth && nodeHeight && parentWidth && parentHeight) {\n const currNodeOrigin = node.origin || nodeOrigin;\n const extentX = parentX + nodeWidth * currNodeOrigin[0];\n const extentY = parentY + nodeHeight * currNodeOrigin[1];\n\n currentExtent = [\n [extentX, extentY],\n [\n extentX + parentWidth - nodeWidth,\n extentY + parentHeight - nodeHeight,\n ],\n ];\n }\n }\n } else if (parentNode && isCoordinateExtent(node.extent)) {\n currentExtent = [\n [node.extent[0][0] + parentX, node.extent[0][1] + parentY],\n [node.extent[1][0] + parentX, node.extent[1][1] + parentY],\n ];\n }\n\n const positionAbsolute = isCoordinateExtent(currentExtent)\n ? clampPosition(nextPosition, currentExtent)\n : nextPosition;\n\n return {\n position: {\n x: positionAbsolute.x - parentX,\n y: positionAbsolute.y - parentY,\n },\n positionAbsolute,\n };\n}\n\n/**\n * Pass in nodes & edges to delete, get arrays of nodes and edges that actually can be deleted\n * @internal\n * @param param.nodesToRemove - The nodes to remove\n * @param param.edgesToRemove - The edges to remove\n * @param param.nodes - All nodes\n * @param param.edges - All edges\n * @param param.onBeforeDelete - Callback to check which nodes and edges can be deleted\n * @returns nodes: nodes that can be deleted, edges: edges that can be deleted\n */\nexport async function getElementsToRemove<\n NodeType extends NodeBase = NodeBase,\n EdgeType extends EdgeBase = EdgeBase,\n>({\n nodesToRemove = [],\n edgesToRemove = [],\n nodes,\n edges,\n onBeforeDelete,\n}: {\n nodesToRemove: Partial<NodeType>[];\n edgesToRemove: Partial<EdgeType>[];\n nodes: NodeType[];\n edges: EdgeType[];\n onBeforeDelete?: OnBeforeDeleteBase<NodeType, EdgeType>;\n}): Promise<{\n nodes: NodeType[];\n edges: EdgeType[];\n}> {\n const nodeIds = new Set(nodesToRemove.map((node) => node.id));\n const matchingNodes: NodeType[] = [];\n\n for (const node of nodes) {\n if (node.deletable === false) {\n continue;\n }\n\n const isIncluded = nodeIds.has(node.id);\n const parentHit =\n !isIncluded &&\n node.parentId &&\n matchingNodes.find((n) => n.id === node.parentId);\n\n if (isIncluded || parentHit) {\n matchingNodes.push(node);\n }\n }\n\n const edgeIds = new Set(edgesToRemove.map((edge) => edge.id));\n const deletableEdges = edges.filter((edge) => edge.deletable !== false);\n const connectedEdges = getConnectedEdges(matchingNodes, deletableEdges);\n const matchingEdges: EdgeType[] = connectedEdges;\n\n for (const edge of deletableEdges) {\n const isIncluded = edgeIds.has(edge.id);\n\n if (isIncluded && !matchingEdges.find((e) => e.id === edge.id)) {\n matchingEdges.push(edge);\n }\n }\n\n if (!onBeforeDelete) {\n return {\n edges: matchingEdges,\n nodes: matchingNodes,\n };\n }\n\n const onBeforeDeleteResult = await onBeforeDelete({\n nodes: matchingNodes,\n edges: matchingEdges,\n });\n\n if (typeof onBeforeDeleteResult === 'boolean') {\n return onBeforeDeleteResult\n ? { edges: matchingEdges, nodes: matchingNodes }\n : { edges: [], nodes: [] };\n }\n\n return onBeforeDeleteResult;\n}\n","import { shallow } from 'zustand/shallow';\n\nimport { useStore } from '../../hooks/useStore';\nimport { InkFlowState } from '../../types';\n\nconst selector = (s: InkFlowState) => ({\n userSelectionActive: s.userSelectionActive,\n userSelectionRect: s.userSelectionRect,\n});\n\nexport function UserSelection() {\n const { userSelectionActive, userSelectionRect } = useStore(\n selector,\n shallow,\n );\n const isActive = userSelectionActive && userSelectionRect;\n\n if (!isActive) {\n return null;\n }\n\n return (\n <div\n className=\"ink-flow__selection ink-flow__container\"\n style={{\n width: userSelectionRect.width,\n height: userSelectionRect.height,\n transform: `translate(${userSelectionRect.x}px, ${userSelectionRect.y}px)`,\n }}\n />\n );\n}\n","/**\n * The user selection rectangle gets displayed when a user drags the mouse while pressing shift\n */\n\nimport {\n useRef,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n} from 'react';\nimport { shallow } from 'zustand/shallow';\nimport cc from 'classnames';\n\nimport { containerStyle } from '../../styles/utils';\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { InkFlowProps, InkFlowState } from '../../types';\nimport { getSelectionChanges } from '../../utils/changes';\nimport { getEventPosition } from '../../utils/dom';\nimport { getNodesInside } from '../../utils/graph';\nimport { UserSelection } from '../../components/UserSelection';\nimport { NodeChange, EdgeChange } from '@aloudata/ink-core';\n\ntype PaneProps = {\n isSelecting: boolean;\n children: ReactNode;\n} & Partial<\n Pick<\n InkFlowProps,\n | 'selectionMode'\n | 'panOnDrag'\n | 'onSelectionStart'\n | 'onSelectionEnd'\n | 'onPaneClick'\n | 'onPaneContextMenu'\n | 'onPaneScroll'\n | 'onPaneMouseEnter'\n | 'onPaneMouseMove'\n | 'onPaneMouseLeave'\n >\n>;\n\nconst wrapHandler = (\n handler: React.MouseEventHandler | undefined,\n containerRef: React.MutableRefObject<HTMLDivElement | null>,\n): React.MouseEventHandler => {\n return (event: ReactMouseEvent) => {\n if (event.target !== containerRef.current) {\n return;\n }\n handler?.(event);\n };\n};\n\nconst selector = (s: InkFlowState) => ({\n userSelectionActive: s.userSelectionActive,\n elementsSelectable: s.elementsSelectable,\n dragging: s.paneDragging,\n});\n\nexport function Pane({\n isSelecting,\n selectionMode,\n panOnDrag,\n onSelectionStart,\n onSelectionEnd,\n onPaneClick,\n onPaneContextMenu,\n onPaneScroll,\n onPaneMouseEnter,\n onPaneMouseMove,\n onPaneMouseLeave,\n children,\n}: PaneProps) {\n const container = useRef<HTMLDivElement | null>(null);\n const store = useStoreApi();\n const prevSelectedNodesCount = useRef<number>(0);\n const prevSelectedEdgesCount = useRef<number>(0);\n const containerBounds = useRef<DOMRect>();\n const edgeIdLookup = useRef<Map<string, Set<string>>>(new Map());\n\n const { userSelectionActive, elementsSelectable, dragging } = useStore(\n selector,\n shallow,\n );\n\n const resetUserSelection = () => {\n store.setState({ userSelectionActive: false, userSelectionRect: null });\n\n prevSelectedNodesCount.current = 0;\n prevSelectedEdgesCount.current = 0;\n };\n\n const onClick = (event: ReactMouseEvent) => {\n onPaneClick?.(event);\n store.getState().resetSelectedElements();\n store.setState({ nodesSelectionActive: false });\n };\n\n const onContextMenu = (event: ReactMouseEvent) => {\n if (Array.isArray(panOnDrag) && panOnDrag?.includes(2)) {\n event.preventDefault();\n return;\n }\n\n onPaneContextMenu?.(event);\n };\n\n const onWheel = onPaneScroll\n ? (event: React.WheelEvent) => onPaneScroll(event)\n : undefined;\n\n const onMouseDown = (event: ReactMouseEvent): void => {\n const { resetSelectedElements, domNode, edgeLookup } = store.getState();\n containerBounds.current = domNode?.getBoundingClientRect();\n\n if (\n !elementsSelectable ||\n !isSelecting ||\n event.button !== 0 ||\n event.target !== container.current ||\n !containerBounds.current\n ) {\n return;\n }\n\n edgeIdLookup.current = new Map();\n\n for (const [id, edge] of edgeLookup) {\n edgeIdLookup.current.set(\n edge.source,\n edgeIdLookup.current.get(edge.source)?.add(id) || new Set([id]),\n );\n edgeIdLookup.current.set(\n edge.target,\n edgeIdLookup.current.get(edge.target)?.add(id) || new Set([id]),\n );\n }\n\n const { x, y } = getEventPosition(\n event.nativeEvent,\n containerBounds.current,\n );\n\n resetSelectedElements();\n\n store.setState({\n userSelectionRect: {\n width: 0,\n height: 0,\n startX: x,\n startY: y,\n x,\n y,\n },\n });\n\n onSelectionStart?.(event);\n };\n\n const onMouseMove = (event: ReactMouseEvent): void => {\n const {\n userSelectionRect,\n edgeLookup,\n transform,\n nodeOrigin,\n nodeLookup,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = store.getState();\n\n if (!isSelecting || !containerBounds.current || !userSelectionRect) {\n return;\n }\n\n const { x: mouseX, y: mouseY } = getEventPosition(\n event.nativeEvent,\n containerBounds.current,\n );\n const { startX, startY } = userSelectionRect;\n\n const nextUserSelectRect = {\n startX,\n startY,\n x: mouseX < startX ? mouseX : startX,\n y: mouseY < startY ? mouseY : startY,\n width: Math.abs(mouseX - startX),\n height: Math.abs(mouseY - startY),\n };\n\n const selectedNodes = getNodesInside(\n nodeLookup,\n nextUserSelectRect,\n transform,\n false,\n true,\n nodeOrigin,\n );\n\n const selectedEdgeIds = new Set<string>();\n const selectedNodeIds = new Set<string>();\n\n for (const selectedNode of selectedNodes) {\n selectedNodeIds.add(selectedNode.id);\n\n const edgeIds = edgeIdLookup.current.get(selectedNode.id);\n\n if (edgeIds) {\n for (const edgeId of edgeIds) {\n selectedEdgeIds.add(edgeId);\n }\n }\n }\n\n if (prevSelectedNodesCount.current !== selectedNodeIds.size) {\n prevSelectedNodesCount.current = selectedNodeIds.size;\n const changes = getSelectionChanges(\n nodeLookup,\n selectedNodeIds,\n true,\n ) as NodeChange[];\n triggerNodeChanges(changes);\n }\n\n if (prevSelectedEdgesCount.current !== selectedEdgeIds.size) {\n prevSelectedEdgesCount.current = selectedEdgeIds.size;\n const changes = getSelectionChanges(\n edgeLookup,\n selectedEdgeIds,\n ) as EdgeChange[];\n triggerEdgeChanges(changes);\n }\n\n store.setState({\n userSelectionRect: nextUserSelectRect,\n userSelectionActive: true,\n nodesSelectionActive: false,\n });\n };\n\n const onMouseUp = (event: ReactMouseEvent) => {\n if (event.button !== 0) {\n return;\n }\n const { userSelectionRect } = store.getState();\n // We only want to trigger click functions when in selection mode if\n // the user did not move the mouse.\n if (\n !userSelectionActive &&\n userSelectionRect &&\n event.target === container.current\n ) {\n onClick?.(event);\n }\n\n store.setState({\n nodesSelectionActive: prevSelectedNodesCount.current > 0,\n });\n\n resetUserSelection();\n onSelectionEnd?.(event);\n };\n\n const onMouseLeave = (event: ReactMouseEvent) => {\n if (userSelectionActive) {\n store.setState({\n nodesSelectionActive: prevSelectedNodesCount.current > 0,\n });\n onSelectionEnd?.(event);\n }\n\n resetUserSelection();\n };\n\n const hasActiveSelection =\n elementsSelectable && (isSelecting || userSelectionActive);\n\n return (\n <div\n className={cc([\n 'ink-flow__pane',\n { draggable: panOnDrag, dragging, selection: isSelecting },\n ])}\n onClick={hasActiveSelection ? undefined : wrapHandler(onClick, container)}\n onContextMenu={wrapHandler(onContextMenu, container)}\n onWheel={wrapHandler(onWheel, container)}\n onMouseEnter={hasActiveSelection ? undefined : onPaneMouseEnter}\n onMouseDown={hasActiveSelection ? onMouseDown : undefined}\n onMouseMove={hasActiveSelection ? onMouseMove : onPaneMouseMove}\n onMouseUp={hasActiveSelection ? onMouseUp : undefined}\n onMouseLeave={hasActiveSelection ? onMouseLeave : onPaneMouseLeave}\n ref={container}\n style={containerStyle}\n >\n {children}\n <UserSelection />\n </div>\n );\n}\n","import { memo, type ReactNode } from 'react';\n\nimport { useStore } from '../../hooks/useStore';\nimport { GraphViewProps } from '../GraphView';\nimport { InkFlowState, Node } from '../../types';\nimport { useKeyPress } from '../../hooks/useKeyPress';\nimport { ZoomPane } from '../ZoomPane';\nimport { useGlobalKeyHandler } from '../../hooks/useGlobalKeyHandler';\nimport { Pane } from '../Pane';\n\nexport type FlowRendererProps<NodeType extends Node = Node> = Omit<\n GraphViewProps<NodeType>,\n | 'snapToGrid'\n | 'nodeTypes'\n | 'edgeTypes'\n | 'snapGrid'\n | 'connectionLineType'\n | 'connectionLineContainerStyle'\n | 'arrowHeadColor'\n | 'onlyRenderVisibleElements'\n | 'selectNodesOnDrag'\n | 'defaultMarkerColor'\n | 'rfId'\n | 'nodeOrigin'\n> & {\n isControlledViewport: boolean;\n children: ReactNode;\n};\n\nconst selector = (s: InkFlowState) => {\n return {\n nodesSelectionActive: s.nodesSelectionActive,\n userSelectionActive: s.userSelectionActive,\n };\n};\n\nfunction FlowRendererComponent<NodeType extends Node = Node>({\n children,\n onPaneClick,\n onPaneMouseEnter,\n onPaneMouseMove,\n onPaneMouseLeave,\n onPaneContextMenu,\n onPaneScroll,\n deleteKeyCode,\n selectionKeyCode,\n selectionOnDrag,\n selectionMode,\n onSelectionStart,\n onSelectionEnd,\n multiSelectionKeyCode,\n panActivationKeyCode,\n zoomActivationKeyCode,\n elementsSelectable,\n zoomOnScroll,\n zoomOnPinch,\n panOnScroll: _panOnScroll,\n panOnScrollSpeed,\n panOnScrollMode,\n zoomOnDoubleClick,\n panOnDrag: _panOnDrag,\n defaultViewport,\n translateExtent,\n minZoom,\n maxZoom,\n preventScrolling,\n onSelectionContextMenu,\n noWheelClassName,\n noPanClassName,\n disableKeyboardA11y,\n onViewportChange,\n isControlledViewport,\n}: FlowRendererProps<NodeType>) {\n const { nodesSelectionActive, userSelectionActive } = useStore(selector);\n const selectionKeyPressed = useKeyPress(selectionKeyCode);\n const panActivationKeyPressed = useKeyPress(panActivationKeyCode);\n\n const panOnDrag = panActivationKeyPressed || _panOnDrag;\n const panOnScroll = panActivationKeyPressed || _panOnScroll;\n const isSelecting =\n selectionKeyPressed ||\n userSelectionActive ||\n (selectionOnDrag && panOnDrag !== true);\n\n useGlobalKeyHandler({ deleteKeyCode, multiSelectionKeyCode });\n\n return (\n <ZoomPane\n onPaneContextMenu={onPaneContextMenu}\n elementsSelectable={elementsSelectable}\n zoomOnScroll={zoomOnScroll}\n zoomOnPinch={zoomOnPinch}\n panOnScroll={panOnScroll}\n panOnScrollSpeed={panOnScrollSpeed}\n panOnScrollMode={panOnScrollMode}\n zoomOnDoubleClick={zoomOnDoubleClick}\n panOnDrag={!selectionKeyPressed && panOnDrag}\n defaultViewport={defaultViewport}\n translateExtent={translateExtent}\n minZoom={minZoom}\n maxZoom={maxZoom}\n zoomActivationKeyCode={zoomActivationKeyCode}\n preventScrolling={preventScrolling}\n noWheelClassName={noWheelClassName}\n noPanClassName={noPanClassName}\n onViewportChange={onViewportChange}\n isControlledViewport={isControlledViewport}\n >\n <Pane\n onSelectionStart={onSelectionStart}\n onSelectionEnd={onSelectionEnd}\n onPaneClick={onPaneClick}\n onPaneMouseEnter={onPaneMouseEnter}\n onPaneMouseMove={onPaneMouseMove}\n onPaneMouseLeave={onPaneMouseLeave}\n onPaneContextMenu={onPaneContextMenu}\n onPaneScroll={onPaneScroll}\n panOnDrag={panOnDrag}\n isSelecting={!!isSelecting}\n selectionMode={selectionMode}\n >\n {children}\n {/* {nodesSelectionActive && (\n <NodesSelection\n onSelectionContextMenu={onSelectionContextMenu}\n noPanClassName={noPanClassName}\n disableKeyboardA11y={disableKeyboardA11y}\n />\n )} */}\n </Pane>\n </ZoomPane>\n );\n}\n\nFlowRendererComponent.displayName = 'FlowRenderer';\n\nexport const FlowRenderer = memo(\n FlowRendererComponent,\n) as typeof FlowRendererComponent;\n","import { useEffect, useLayoutEffect } from 'react';\n\n// we need this hook to prevent a warning when using ink-flow in SSR\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n","import { useState } from 'react';\n\nimport { Queue, QueueItem } from './types';\nimport { useIsomorphicLayoutEffect } from '../../hooks/useIsomorphicLayoutEffect';\n\n/**\n * This hook returns a queue that can be used to batch updates.\n *\n * @param runQueue - a function that gets called when the queue is flushed\n * @internal\n *\n * @returns a Queue object\n */\nexport function useQueue<T>(runQueue: (items: QueueItem<T>[]) => void) {\n // Because we're using a ref above, we need some way to let React know when to\n // actually process the queue. We flip this bit of state to `true` any time we\n // mutate the queue and then flip it back to `false` after flushing the queue.\n const [shouldFlush, setShouldFlush] = useState(false);\n\n // A reference of all the batched updates to process before the next render. We\n // want a reference here so multiple synchronous calls to `setNodes` etc can be\n // batched together.\n const [queue] = useState(() => createQueue<T>(() => setShouldFlush(true)));\n\n // Layout effects are guaranteed to run before the next render which means we\n // shouldn't run into any issues with stale state or weird issues that come from\n // rendering things one frame later than expected (we used to use `setTimeout`).\n useIsomorphicLayoutEffect(() => {\n // Because we need to flip the state back to false after flushing, this should\n // trigger the hook again (!). If the hook is being run again we know that any\n // updates should have been processed by now and we can safely clear the queue\n // and bail early.\n if (!shouldFlush) {\n queue.reset();\n return;\n }\n\n const queueItems = queue.get();\n\n if (queueItems.length) {\n runQueue(queueItems);\n\n queue.reset();\n }\n\n // Beacuse we're using reactive state to trigger this effect, we need to flip\n // it back to false.\n setShouldFlush(false);\n }, [shouldFlush]);\n\n return queue;\n}\n\nfunction createQueue<T>(cb: () => void): Queue<T> {\n let queue: QueueItem<T>[] = [];\n\n return {\n get: () => queue,\n reset: () => {\n queue = [];\n },\n push: (item) => {\n queue.push(item);\n cb();\n },\n };\n}\n","import {\n createContext,\n ReactNode,\n useCallback,\n useContext,\n useMemo,\n} from 'react';\n\nimport { useStoreApi } from '../../hooks/useStore';\nimport { Queue, QueueItem } from './types';\nimport type { Edge, Node } from '../../types';\nimport { useQueue } from './useQueue';\nimport { getElementsDiffChanges } from '../../utils/changes';\nimport { NodeChange, EdgeChange } from '@aloudata/ink-core';\n\nconst BatchContext = createContext<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodeQueue: Queue<any>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n edgeQueue: Queue<any>;\n} | null>(null);\n\n/**\n * This is a context provider that holds and processes the node and edge update queues\n * that are needed to handle setNodes, addNodes, setEdges and addEdges.\n *\n * @internal\n */\nexport function BatchProvider<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>({ children }: { children: ReactNode }) {\n const store = useStoreApi<NodeType, EdgeType>();\n\n const nodeQueueHandler = useCallback((queueItems: QueueItem<NodeType>[]) => {\n const {\n nodes = [],\n setNodes,\n hasDefaultNodes,\n onNodesChange,\n nodeLookup,\n } = store.getState();\n\n // This is essentially an `Array.reduce` in imperative clothing. Processing\n // this queue is a relatively hot path so we'd like to avoid the overhead of\n // array methods where we can.\n let next = nodes as NodeType[];\n for (const payload of queueItems) {\n next = typeof payload === 'function' ? payload(next) : payload;\n }\n\n if (hasDefaultNodes) {\n setNodes(next);\n } else if (onNodesChange) {\n onNodesChange(\n getElementsDiffChanges({\n items: next,\n lookup: nodeLookup,\n }) as NodeChange<NodeType>[],\n );\n }\n }, []);\n const nodeQueue = useQueue<NodeType>(nodeQueueHandler);\n\n const edgeQueueHandler = useCallback((queueItems: QueueItem<EdgeType>[]) => {\n const {\n edges = [],\n setEdges,\n hasDefaultEdges,\n onEdgesChange,\n edgeLookup,\n } = store.getState();\n\n let next = edges as EdgeType[];\n for (const payload of queueItems) {\n next = typeof payload === 'function' ? payload(next) : payload;\n }\n\n if (hasDefaultEdges) {\n setEdges(next);\n } else if (onEdgesChange) {\n onEdgesChange(\n getElementsDiffChanges({\n items: next,\n lookup: edgeLookup,\n }) as EdgeChange<EdgeType>[],\n );\n }\n }, []);\n const edgeQueue = useQueue<EdgeType>(edgeQueueHandler);\n\n const value = useMemo(() => ({ nodeQueue, edgeQueue }), []);\n\n return (\n <BatchContext.Provider value={value}>{children}</BatchContext.Provider>\n );\n}\n\nexport function useBatchContext() {\n const batchContext = useContext(BatchContext);\n\n if (!batchContext) {\n throw new Error('useBatchContext must be used within a BatchProvider');\n }\n\n return batchContext;\n}\n","import { useMemo } from 'react';\n\nimport { useStoreApi } from '../hooks/useStore';\nimport { ViewportHelperFunctions } from '../types';\nimport {\n getViewportForBounds,\n pointToRendererPoint,\n rendererPointToPoint,\n} from '../utils/general';\nimport { fitView } from '../utils/graph';\nimport { XYPosition } from '@aloudata/ink-core';\n\n/**\n * Hook for getting viewport helper functions.\n *\n * @internal\n * @returns viewport helper functions\n */\nconst useViewportHelper = (): ViewportHelperFunctions => {\n const store = useStoreApi();\n\n return useMemo<ViewportHelperFunctions>(() => {\n return {\n zoomIn: (options) =>\n store.getState().panZoom?.scaleBy(1.2, { duration: options?.duration }),\n zoomOut: (options) =>\n store\n .getState()\n .panZoom?.scaleBy(1 / 1.2, { duration: options?.duration }),\n zoomTo: (zoomLevel, options) =>\n store\n .getState()\n .panZoom?.scaleTo(zoomLevel, { duration: options?.duration }),\n getZoom: () => store.getState().transform[2],\n setViewport: (viewport, options) => {\n const {\n transform: [tX, tY, tZoom],\n panZoom,\n } = store.getState();\n\n panZoom?.setViewport(\n {\n x: viewport.x ?? tX,\n y: viewport.y ?? tY,\n zoom: viewport.zoom ?? tZoom,\n },\n { duration: options?.duration },\n );\n },\n getViewport: () => {\n const [x, y, zoom] = store.getState().transform;\n return { x, y, zoom };\n },\n fitView: (options) => {\n const {\n nodeLookup,\n width,\n height,\n nodeOrigin,\n minZoom,\n maxZoom,\n panZoom,\n } = store.getState();\n\n return panZoom\n ? fitView(\n {\n nodeLookup,\n width,\n height,\n nodeOrigin,\n minZoom,\n maxZoom,\n panZoom,\n },\n options,\n )\n : false;\n },\n setCenter: (x, y, options) => {\n const { width, height, maxZoom, panZoom } = store.getState();\n const nextZoom =\n typeof options?.zoom !== 'undefined' ? options.zoom : maxZoom;\n const centerX = width / 2 - x * nextZoom;\n const centerY = height / 2 - y * nextZoom;\n\n panZoom?.setViewport(\n {\n x: centerX,\n y: centerY,\n zoom: nextZoom,\n },\n { duration: options?.duration },\n );\n },\n fitBounds: (bounds, options) => {\n const { width, height, minZoom, maxZoom, panZoom } = store.getState();\n const viewport = getViewportForBounds(\n bounds,\n width,\n height,\n minZoom,\n maxZoom,\n options?.padding ?? 0.1,\n );\n\n panZoom?.setViewport(viewport, { duration: options?.duration });\n },\n screenToFlowPosition: (\n clientPosition: XYPosition,\n options: { snapToGrid: boolean } = { snapToGrid: true },\n ) => {\n const { transform, snapGrid, domNode } = store.getState();\n\n if (!domNode) {\n return clientPosition;\n }\n\n const { x: domX, y: domY } = domNode.getBoundingClientRect();\n\n const correctedPosition = {\n x: clientPosition.x - domX,\n y: clientPosition.y - domY,\n };\n\n return pointToRendererPoint(\n correctedPosition,\n transform,\n options.snapToGrid,\n snapGrid,\n );\n },\n flowToScreenPosition: (flowPosition: XYPosition) => {\n const { transform, domNode } = store.getState();\n\n if (!domNode) {\n return flowPosition;\n }\n\n const { x: domX, y: domY } = domNode.getBoundingClientRect();\n const rendererPosition = rendererPointToPoint(flowPosition, transform);\n\n return {\n x: rendererPosition.x + domX,\n y: rendererPosition.y + domY,\n };\n },\n };\n }, []);\n};\n\nexport default useViewportHelper;\n","import { useMemo } from 'react';\n\nimport { useStore, useStoreApi } from './useStore';\nimport { useBatchContext } from '../components/BatchProvider';\nimport useViewportHelper from './useViewportHelper';\nimport { Node, Edge, InkFlowState, InternalNode } from '../types';\nimport {\n nodeToRect,\n getOverlappingArea,\n isNode,\n evaluateAbsolutePosition,\n isRectObject,\n} from '../utils/general';\nimport { getElementsToRemove } from '../utils/graph';\nimport { GeneralHelpers, InkFlowInstance } from '../types/instance';\nimport { elementToRemoveChange } from '../utils/changes';\nimport { Rect, EdgeRemoveChange, NodeRemoveChange } from '@aloudata/ink-core';\n\nconst selector = (s: InkFlowState) => !!s.panZoom;\n\n/**\n * Hook for accessing the ReactFlow instance.\n *\n * @public\n * @returns ReactFlowInstance\n */\nexport function useInkFlow<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>(): InkFlowInstance<NodeType, EdgeType> {\n const viewportHelper = useViewportHelper();\n const store = useStoreApi();\n const batchContext = useBatchContext();\n const viewportInitialized = useStore(selector);\n\n const generalHelper = useMemo<GeneralHelpers<NodeType, EdgeType>>(() => {\n const getInternalNode: GeneralHelpers<\n NodeType,\n EdgeType\n >['getInternalNode'] = (id) =>\n store.getState().nodeLookup.get(id) as InternalNode<NodeType>;\n\n const setNodes: GeneralHelpers<NodeType, EdgeType>['setNodes'] = (\n payload,\n ) => {\n batchContext.nodeQueue.push(payload as NodeType[]);\n };\n\n const getNodeRect = (node: NodeType | { id: string }): Rect | null => {\n const { nodeLookup, nodeOrigin } = store.getState();\n\n const nodeToUse = isNode<NodeType>(node)\n ? node\n : nodeLookup.get(node.id)!;\n const position = nodeToUse.parentId\n ? evaluateAbsolutePosition(\n nodeToUse.position,\n nodeToUse.parentId,\n nodeLookup,\n nodeOrigin,\n )\n : nodeToUse.position;\n\n const nodeWithPosition = {\n id: nodeToUse.id,\n position,\n width: nodeToUse.measured?.width ?? nodeToUse.width,\n height: nodeToUse.measured?.height ?? nodeToUse.height,\n data: nodeToUse.data,\n };\n\n return nodeToRect(nodeWithPosition);\n };\n\n const updateNode: GeneralHelpers<NodeType, EdgeType>['updateNode'] = (\n id,\n nodeUpdate,\n options = { replace: false },\n ) => {\n setNodes((prevNodes) =>\n prevNodes.map((node) => {\n if (node.id === id) {\n const nextNode =\n typeof nodeUpdate === 'function'\n ? nodeUpdate(node as NodeType)\n : nodeUpdate;\n return options.replace && isNode(nextNode)\n ? (nextNode as NodeType)\n : { ...node, ...nextNode };\n }\n\n return node;\n }),\n );\n };\n\n return {\n getNodes: () =>\n store.getState().nodes.map((n) => ({ ...n })) as NodeType[],\n getNode: (id) => getInternalNode(id)?.internals.userNode as NodeType,\n getInternalNode,\n getEdges: () => {\n const { edges = [] } = store.getState();\n return edges.map((e) => ({ ...e })) as EdgeType[];\n },\n getEdge: (id) => store.getState().edgeLookup.get(id) as EdgeType,\n setNodes,\n setEdges: (payload) => {\n batchContext.edgeQueue.push(payload as EdgeType[]);\n },\n addNodes: (payload) => {\n const newNodes = Array.isArray(payload) ? payload : [payload];\n batchContext.nodeQueue.push((nodes) => [...nodes, ...newNodes]);\n },\n addEdges: (payload) => {\n const newEdges = Array.isArray(payload) ? payload : [payload];\n batchContext.edgeQueue.push((edges) => [...edges, ...newEdges]);\n },\n toObject: () => {\n const { nodes = [], edges = [], transform } = store.getState();\n const [x, y, zoom] = transform;\n return {\n nodes: nodes.map((n) => ({ ...n })) as NodeType[],\n edges: edges.map((e) => ({ ...e })) as EdgeType[],\n viewport: {\n x,\n y,\n zoom,\n },\n };\n },\n deleteElements: async ({\n nodes: nodesToRemove = [],\n edges: edgesToRemove = [],\n }) => {\n const {\n nodes,\n edges,\n onNodesDelete,\n onEdgesDelete,\n triggerNodeChanges,\n triggerEdgeChanges,\n onDelete,\n onBeforeDelete,\n } = store.getState();\n const { nodes: matchingNodes, edges: matchingEdges } =\n await getElementsToRemove({\n nodesToRemove,\n edgesToRemove,\n nodes,\n edges,\n onBeforeDelete,\n });\n\n const hasMatchingEdges = matchingEdges.length > 0;\n const hasMatchingNodes = matchingNodes.length > 0;\n\n if (hasMatchingEdges) {\n const edgeChanges: EdgeRemoveChange[] = matchingEdges.map(\n elementToRemoveChange,\n );\n\n onEdgesDelete?.(matchingEdges);\n triggerEdgeChanges(edgeChanges);\n }\n\n if (hasMatchingNodes) {\n const nodeChanges: NodeRemoveChange[] = matchingNodes.map(\n elementToRemoveChange,\n );\n\n onNodesDelete?.(matchingNodes);\n triggerNodeChanges(nodeChanges);\n }\n\n if (hasMatchingNodes || hasMatchingEdges) {\n onDelete?.({ nodes: matchingNodes, edges: matchingEdges });\n }\n\n return { deletedNodes: matchingNodes, deletedEdges: matchingEdges };\n },\n getIntersectingNodes: (nodeOrRect, partially = true, nodes) => {\n const isRect = isRectObject(nodeOrRect);\n const nodeRect = isRect ? nodeOrRect : getNodeRect(nodeOrRect);\n const hasNodesOption = nodes !== undefined;\n\n if (!nodeRect) {\n return [];\n }\n\n return (nodes || store.getState().nodes).filter((n) => {\n const internalNode = store.getState().nodeLookup.get(n.id);\n\n if (\n internalNode &&\n !isRect &&\n (n.id === nodeOrRect!.id ||\n !internalNode.internals.positionAbsolute)\n ) {\n return false;\n }\n\n const currNodeRect = nodeToRect(hasNodesOption ? n : internalNode!);\n const overlappingArea = getOverlappingArea(currNodeRect, nodeRect);\n const partiallyVisible = partially && overlappingArea > 0;\n\n return (\n partiallyVisible ||\n overlappingArea >= nodeRect.width * nodeRect.height\n );\n }) as NodeType[];\n },\n isNodeIntersecting: (nodeOrRect, area, partially = true) => {\n const isRect = isRectObject(nodeOrRect);\n const nodeRect = isRect ? nodeOrRect : getNodeRect(nodeOrRect);\n\n if (!nodeRect) {\n return false;\n }\n\n const overlappingArea = getOverlappingArea(nodeRect, area);\n const partiallyVisible = partially && overlappingArea > 0;\n\n return (\n partiallyVisible ||\n overlappingArea >= nodeRect.width * nodeRect.height\n );\n },\n updateNode,\n updateNodeData: (id, dataUpdate, options = { replace: false }) => {\n updateNode(\n id,\n (node) => {\n const nextData =\n typeof dataUpdate === 'function' ? dataUpdate(node) : dataUpdate;\n return options.replace\n ? { ...node, data: nextData }\n : { ...node, data: { ...node.data, ...nextData } };\n },\n options,\n );\n },\n };\n }, []);\n\n return useMemo(() => {\n return {\n ...generalHelper,\n ...viewportHelper,\n viewportInitialized,\n };\n }, [viewportInitialized]);\n}\n","import { useEffect, useState } from 'react';\n\nimport { InkFlowState } from '../../types';\nimport { useStore } from '../../hooks';\nimport { InternalNodeUpdate } from '@aloudata/ink-core';\n\nconst selector = (s: InkFlowState) => s.updateNodeInternals;\n\nexport function useResizeObserver() {\n const updateNodeInternals = useStore(selector);\n const [resizeObserver] = useState(() => {\n if (typeof ResizeObserver === 'undefined') {\n return null;\n }\n\n return new ResizeObserver((entries: ResizeObserverEntry[]) => {\n const updates = new Map<string, InternalNodeUpdate>();\n entries.forEach((entry: ResizeObserverEntry) => {\n const id = entry.target.getAttribute('data-id') as string;\n updates.set(id, {\n id,\n nodeElement: entry.target as HTMLDivElement,\n });\n });\n\n updateNodeInternals(updates);\n });\n });\n\n useEffect(() => {\n return () => {\n resizeObserver?.disconnect();\n };\n }, [resizeObserver]);\n\n return resizeObserver;\n}\n","import { useCallback } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore } from './useStore';\nimport type { Node, InkFlowState } from '../types';\nimport { getNodesInside } from '../utils/graph';\n\nconst selector = (onlyRenderVisible: boolean) => (s: InkFlowState) => {\n return onlyRenderVisible\n ? getNodesInside<Node>(\n s.nodeLookup,\n { x: 0, y: 0, width: s.width, height: s.height },\n s.transform,\n true,\n ).map((node) => node.id)\n : Array.from(s.nodeLookup.keys());\n};\n\n/**\n * Hook for getting the visible node ids from the store.\n *\n * @internal\n * @param onlyRenderVisible\n * @returns array with visible node ids\n */\nexport function useVisibleNodeIds(onlyRenderVisible: boolean) {\n const nodeIds = useStore(\n useCallback(selector(onlyRenderVisible), [onlyRenderVisible]),\n shallow,\n );\n\n return nodeIds;\n}\n","import { createContext, useContext } from 'react';\n\nexport const NodeIdContext = createContext<string | null>(null);\nexport const Provider = NodeIdContext.Provider;\nexport const Consumer = NodeIdContext.Consumer;\n\nexport const useNodeId = (): string | null => {\n const nodeId = useContext(NodeIdContext);\n return nodeId;\n};\n\nexport default NodeIdContext;\n","import { CSSProperties } from 'react';\n\nimport { useStore } from '../../hooks/useStore';\nimport type { InkFlowState } from '../../types';\n\nconst style: CSSProperties = { display: 'none' };\nconst ariaLiveStyle: CSSProperties = {\n position: 'absolute',\n width: 1,\n height: 1,\n margin: -1,\n border: 0,\n padding: 0,\n overflow: 'hidden',\n clip: 'rect(0px, 0px, 0px, 0px)',\n clipPath: 'inset(100%)',\n};\n\nexport const ARIA_NODE_DESC_KEY = 'ink-flow__node-desc';\nexport const ARIA_EDGE_DESC_KEY = 'ink-flow__edge-desc';\nexport const ARIA_LIVE_MESSAGE = 'ink-flow__aria-live';\n\nconst selector = (s: InkFlowState) => s.ariaLiveMessage;\n\nfunction AriaLiveMessage({ rfId }: { rfId: string }) {\n const ariaLiveMessage = useStore(selector);\n\n return (\n <div\n id={`${ARIA_LIVE_MESSAGE}-${rfId}`}\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n style={ariaLiveStyle}\n >\n {ariaLiveMessage}\n </div>\n );\n}\n\nexport function A11yDescriptions({\n rfId,\n disableKeyboardA11y,\n}: {\n rfId: string;\n disableKeyboardA11y: boolean;\n}) {\n return (\n <>\n <div id={`${ARIA_NODE_DESC_KEY}-${rfId}`} style={style}>\n Press enter or space to select a node.\n {!disableKeyboardA11y &&\n 'You can then use the arrow keys to move the node around.'}{' '}\n Press delete to remove it and escape to cancel.{' '}\n </div>\n <div id={`${ARIA_EDGE_DESC_KEY}-${rfId}`} style={style}>\n Press enter or space to select an edge. You can then press delete to\n remove it or escape to cancel.\n </div>\n {!disableKeyboardA11y && <AriaLiveMessage rfId={rfId} />}\n </>\n );\n}\n","import { Position } from '@aloudata/ink-core';\n\nexport type GetBezierPathParams = {\n sourceX: number;\n sourceY: number;\n sourcePosition?: Position;\n targetX: number;\n targetY: number;\n targetPosition?: Position;\n curvature?: number;\n};\n\nexport type GetControlWithCurvatureParams = {\n pos: Position;\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n c: number;\n};\n\nexport function getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY,\n}: {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n sourceControlX: number;\n sourceControlY: number;\n targetControlX: number;\n targetControlY: number;\n}): [number, number, number, number] {\n // cubic bezier t=0.5 mid point, not the actual mid point, but easy to calculate\n // https://stackoverflow.com/questions/67516101/how-to-find-distance-mid-point-of-bezier-curve\n const centerX =\n sourceX * 0.125 +\n sourceControlX * 0.375 +\n targetControlX * 0.375 +\n targetX * 0.125;\n const centerY =\n sourceY * 0.125 +\n sourceControlY * 0.375 +\n targetControlY * 0.375 +\n targetY * 0.125;\n const offsetX = Math.abs(centerX - sourceX);\n const offsetY = Math.abs(centerY - sourceY);\n\n return [centerX, centerY, offsetX, offsetY];\n}\n\nfunction calculateControlOffset(distance: number, curvature: number): number {\n if (distance >= 0) {\n return 0.5 * distance;\n }\n\n return curvature * 25 * Math.sqrt(-distance);\n}\n\nfunction getControlWithCurvature({\n pos,\n x1,\n y1,\n x2,\n y2,\n c,\n}: GetControlWithCurvatureParams): [number, number] {\n switch (pos) {\n case Position.Left:\n return [x1 - calculateControlOffset(x1 - x2, c), y1];\n case Position.Right:\n return [x1 + calculateControlOffset(x2 - x1, c), y1];\n case Position.Top:\n return [x1, y1 - calculateControlOffset(y1 - y2, c)];\n case Position.Bottom:\n return [x1, y1 + calculateControlOffset(y2 - y1, c)];\n }\n}\n\n/**\n * Get a bezier path from source to target handle\n * @param params.sourceX - The x position of the source handle\n * @param params.sourceY - The y position of the source handle\n * @param params.sourcePosition - The position of the source handle (default: Position.Bottom)\n * @param params.targetX - The x position of the target handle\n * @param params.targetY - The y position of the target handle\n * @param params.targetPosition - The position of the target handle (default: Position.Top)\n * @param params.curvature - The curvature of the bezier edge\n * @returns A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label\n * @example\n * const source = { x: 0, y: 20 };\n const target = { x: 150, y: 100 };\n \n const [path, labelX, labelY, offsetX, offsetY] = getBezierPath({\n sourceX: source.x,\n sourceY: source.y,\n sourcePosition: Position.Right,\n targetX: target.x,\n targetY: target.y,\n targetPosition: Position.Left,\n});\n */\nexport function getBezierPath({\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n curvature = 0.25,\n}: GetBezierPathParams): [\n path: string,\n labelX: number,\n labelY: number,\n offsetX: number,\n offsetY: number,\n] {\n const [sourceControlX, sourceControlY] = getControlWithCurvature({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY,\n c: curvature,\n });\n const [targetControlX, targetControlY] = getControlWithCurvature({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY,\n c: curvature,\n });\n const [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY,\n });\n\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n labelX,\n labelY,\n offsetX,\n offsetY,\n ];\n}\n","import {\n InternalNodeBase,\n Transform,\n Connection,\n EdgeBase,\n errorMessages,\n} from '@aloudata/ink-core';\nimport {\n getOverlappingArea,\n boxToRect,\n nodeToBox,\n getBoundsOfBoxes,\n devWarn,\n} from '../general';\nimport { isEdgeBase } from '../graph';\n\n// this is used for straight edges and simple smoothstep edges (LTR, RTL, BTT, TTB)\nexport function getEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n}: {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n}): [number, number, number, number] {\n const xOffset = Math.abs(targetX - sourceX) / 2;\n const centerX = targetX < sourceX ? targetX + xOffset : targetX - xOffset;\n\n const yOffset = Math.abs(targetY - sourceY) / 2;\n const centerY = targetY < sourceY ? targetY + yOffset : targetY - yOffset;\n\n return [centerX, centerY, xOffset, yOffset];\n}\n\nexport type GetEdgeZIndexParams = {\n sourceNode: InternalNodeBase;\n targetNode: InternalNodeBase;\n selected?: boolean;\n zIndex?: number;\n elevateOnSelect?: boolean;\n};\n\nexport function getElevatedEdgeZIndex({\n sourceNode,\n targetNode,\n selected = false,\n zIndex = 0,\n elevateOnSelect = false,\n}: GetEdgeZIndexParams): number {\n if (!elevateOnSelect) {\n return zIndex;\n }\n\n const edgeOrConnectedNodeSelected =\n selected || targetNode.selected || sourceNode.selected;\n const selectedZIndex = Math.max(\n sourceNode.internals.z || 0,\n targetNode.internals.z || 0,\n 1000,\n );\n\n return zIndex + (edgeOrConnectedNodeSelected ? selectedZIndex : 0);\n}\n\ntype IsEdgeVisibleParams = {\n sourceNode: InternalNodeBase;\n targetNode: InternalNodeBase;\n width: number;\n height: number;\n transform: Transform;\n};\n\nexport function isEdgeVisible({\n sourceNode,\n targetNode,\n width,\n height,\n transform,\n}: IsEdgeVisibleParams): boolean {\n const edgeBox = getBoundsOfBoxes(\n nodeToBox(sourceNode),\n nodeToBox(targetNode),\n );\n\n if (edgeBox.x === edgeBox.x2) {\n edgeBox.x2 += 1;\n }\n\n if (edgeBox.y === edgeBox.y2) {\n edgeBox.y2 += 1;\n }\n\n const viewRect = {\n x: -transform[0] / transform[2],\n y: -transform[1] / transform[2],\n width: width / transform[2],\n height: height / transform[2],\n };\n\n return getOverlappingArea(viewRect, boxToRect(edgeBox)) > 0;\n}\n\nconst getEdgeId = ({\n source,\n sourceHandle,\n target,\n targetHandle,\n}: Connection | EdgeBase): string =>\n `xy-edge__${source}${sourceHandle || ''}-${target}${targetHandle || ''}`;\n\nconst connectionExists = (edge: EdgeBase, edges: EdgeBase[]) => {\n return edges.some(\n (el) =>\n el.source === edge.source &&\n el.target === edge.target &&\n (el.sourceHandle === edge.sourceHandle ||\n (!el.sourceHandle && !edge.sourceHandle)) &&\n (el.targetHandle === edge.targetHandle ||\n (!el.targetHandle && !edge.targetHandle)),\n );\n};\n\n/**\n * This util is a convenience function to add a new Edge to an array of edges\n * @remarks It also performs some validation to make sure you don't add an invalid edge or duplicate an existing one.\n * @public\n * @param edgeParams - Either an Edge or a Connection you want to add\n * @param edges - The array of all current edges\n * @returns A new array of edges with the new edge added\n */\nexport const addEdge = <EdgeType extends EdgeBase>(\n edgeParams: EdgeType | Connection,\n edges: EdgeType[],\n): EdgeType[] => {\n if (!edgeParams.source || !edgeParams.target) {\n devWarn('006', errorMessages['error006']());\n\n return edges;\n }\n\n let edge: EdgeType;\n if (isEdgeBase(edgeParams)) {\n edge = { ...edgeParams };\n } else {\n edge = {\n ...edgeParams,\n id: getEdgeId(edgeParams),\n } as EdgeType;\n }\n\n if (connectionExists(edge, edges)) {\n return edges;\n }\n\n if (edge.sourceHandle === null) {\n delete edge.sourceHandle;\n }\n\n if (edge.targetHandle === null) {\n delete edge.targetHandle;\n }\n\n return edges.concat(edge);\n};\n\nexport type UpdateEdgeOptions = {\n shouldReplaceId?: boolean;\n};\n\n/**\n * A handy utility to update an existing Edge with new properties\n * @param oldEdge - The edge you want to update\n * @param newConnection - The new connection you want to update the edge with\n * @param edges - The array of all current edges\n * @param options.shouldReplaceId - should the id of the old edge be replaced with the new connection id\n * @returns the updated edges array\n */\nexport const updateEdge = <EdgeType extends EdgeBase>(\n oldEdge: EdgeType,\n newConnection: Connection,\n edges: EdgeType[],\n options: UpdateEdgeOptions = { shouldReplaceId: true },\n): EdgeType[] => {\n const { id: oldEdgeId, ...rest } = oldEdge;\n\n if (!newConnection.source || !newConnection.target) {\n devWarn('006', errorMessages['error006']());\n\n return edges;\n }\n\n const foundEdge = edges.find((e) => e.id === oldEdge.id) as EdgeType;\n\n if (!foundEdge) {\n devWarn('007', errorMessages['error007'](oldEdgeId));\n\n return edges;\n }\n\n // Remove old edge and create the new edge with parameters of old edge.\n const edge = {\n ...rest,\n id: options.shouldReplaceId ? getEdgeId(newConnection) : oldEdgeId,\n source: newConnection.source,\n target: newConnection.target,\n sourceHandle: newConnection.sourceHandle,\n targetHandle: newConnection.targetHandle,\n } as EdgeType;\n\n return edges.filter((e) => e.id !== oldEdgeId).concat(edge);\n};\n","import { Position, XYPosition } from '@aloudata/ink-core';\nimport { getEdgeCenter } from './general';\n\nexport interface GetSmoothStepPathParams {\n sourceX: number;\n sourceY: number;\n sourcePosition?: Position;\n targetX: number;\n targetY: number;\n targetPosition?: Position;\n borderRadius?: number;\n centerX?: number;\n centerY?: number;\n offset?: number;\n}\n\nconst handleDirections = {\n [Position.Left]: { x: -1, y: 0 },\n [Position.Right]: { x: 1, y: 0 },\n [Position.Top]: { x: 0, y: -1 },\n [Position.Bottom]: { x: 0, y: 1 },\n};\n\nconst getDirection = ({\n source,\n sourcePosition = Position.Bottom,\n target,\n}: {\n source: XYPosition;\n sourcePosition: Position;\n target: XYPosition;\n}): XYPosition => {\n if (sourcePosition === Position.Left || sourcePosition === Position.Right) {\n return source.x < target.x ? { x: 1, y: 0 } : { x: -1, y: 0 };\n }\n return source.y < target.y ? { x: 0, y: 1 } : { x: 0, y: -1 };\n};\n\nconst distance = (a: XYPosition, b: XYPosition) =>\n Math.sqrt(Math.pow(b.x - a.x, 2) + Math.pow(b.y - a.y, 2));\n\n// ith this function we try to mimic a orthogonal edge routing behaviour\n// It's not as good as a real orthogonal edge routing but it's faster and good enough as a default for step and smooth step edges\nfunction getPoints({\n source,\n sourcePosition = Position.Bottom,\n target,\n targetPosition = Position.Top,\n center,\n offset,\n}: {\n source: XYPosition;\n sourcePosition: Position;\n target: XYPosition;\n targetPosition: Position;\n center: Partial<XYPosition>;\n offset: number;\n}): [XYPosition[], number, number, number, number] {\n const sourceDir = handleDirections[sourcePosition];\n const targetDir = handleDirections[targetPosition];\n const sourceGapped: XYPosition = {\n x: source.x + sourceDir.x * offset,\n y: source.y + sourceDir.y * offset,\n };\n const targetGapped: XYPosition = {\n x: target.x + targetDir.x * offset,\n y: target.y + targetDir.y * offset,\n };\n const dir = getDirection({\n source: sourceGapped,\n sourcePosition,\n target: targetGapped,\n });\n const dirAccessor = dir.x !== 0 ? 'x' : 'y';\n const currDir = dir[dirAccessor];\n\n let points: XYPosition[] = [];\n let centerX, centerY;\n const sourceGapOffset = { x: 0, y: 0 };\n const targetGapOffset = { x: 0, y: 0 };\n\n const [defaultCenterX, defaultCenterY, defaultOffsetX, defaultOffsetY] =\n getEdgeCenter({\n sourceX: source.x,\n sourceY: source.y,\n targetX: target.x,\n targetY: target.y,\n });\n\n // opposite handle positions, default case\n if (sourceDir[dirAccessor] * targetDir[dirAccessor] === -1) {\n centerX = center.x ?? defaultCenterX;\n centerY = center.y ?? defaultCenterY;\n // --->\n // |\n // >---\n const verticalSplit: XYPosition[] = [\n { x: centerX, y: sourceGapped.y },\n { x: centerX, y: targetGapped.y },\n ];\n // |\n // ---\n // |\n const horizontalSplit: XYPosition[] = [\n { x: sourceGapped.x, y: centerY },\n { x: targetGapped.x, y: centerY },\n ];\n\n if (sourceDir[dirAccessor] === currDir) {\n points = dirAccessor === 'x' ? verticalSplit : horizontalSplit;\n } else {\n points = dirAccessor === 'x' ? horizontalSplit : verticalSplit;\n }\n } else {\n // sourceTarget means we take x from source and y from target, targetSource is the opposite\n const sourceTarget: XYPosition[] = [\n { x: sourceGapped.x, y: targetGapped.y },\n ];\n const targetSource: XYPosition[] = [\n { x: targetGapped.x, y: sourceGapped.y },\n ];\n // this handles edges with same handle positions\n if (dirAccessor === 'x') {\n points = sourceDir.x === currDir ? targetSource : sourceTarget;\n } else {\n points = sourceDir.y === currDir ? sourceTarget : targetSource;\n }\n\n if (sourcePosition === targetPosition) {\n const diff = Math.abs(source[dirAccessor] - target[dirAccessor]);\n\n // if an edge goes from right to right for example (sourcePosition === targetPosition) and the distance between source.x and target.x is less than the offset, the added point and the gapped source/target will overlap. This leads to a weird edge path. To avoid this we add a gapOffset to the source/target\n if (diff <= offset) {\n const gapOffset = Math.min(offset - 1, offset - diff);\n if (sourceDir[dirAccessor] === currDir) {\n sourceGapOffset[dirAccessor] =\n (sourceGapped[dirAccessor] > source[dirAccessor] ? -1 : 1) *\n gapOffset;\n } else {\n targetGapOffset[dirAccessor] =\n (targetGapped[dirAccessor] > target[dirAccessor] ? -1 : 1) *\n gapOffset;\n }\n }\n }\n\n // these are conditions for handling mixed handle positions like Right -> Bottom for example\n if (sourcePosition !== targetPosition) {\n const dirAccessorOpposite = dirAccessor === 'x' ? 'y' : 'x';\n const isSameDir =\n sourceDir[dirAccessor] === targetDir[dirAccessorOpposite];\n const sourceGtTargetOppo =\n sourceGapped[dirAccessorOpposite] > targetGapped[dirAccessorOpposite];\n const sourceLtTargetOppo =\n sourceGapped[dirAccessorOpposite] < targetGapped[dirAccessorOpposite];\n const flipSourceTarget =\n (sourceDir[dirAccessor] === 1 &&\n ((!isSameDir && sourceGtTargetOppo) ||\n (isSameDir && sourceLtTargetOppo))) ||\n (sourceDir[dirAccessor] !== 1 &&\n ((!isSameDir && sourceLtTargetOppo) ||\n (isSameDir && sourceGtTargetOppo)));\n\n if (flipSourceTarget) {\n points = dirAccessor === 'x' ? sourceTarget : targetSource;\n }\n }\n\n const sourceGapPoint = {\n x: sourceGapped.x + sourceGapOffset.x,\n y: sourceGapped.y + sourceGapOffset.y,\n };\n const targetGapPoint = {\n x: targetGapped.x + targetGapOffset.x,\n y: targetGapped.y + targetGapOffset.y,\n };\n const maxXDistance = Math.max(\n Math.abs(sourceGapPoint.x - points[0].x),\n Math.abs(targetGapPoint.x - points[0].x),\n );\n const maxYDistance = Math.max(\n Math.abs(sourceGapPoint.y - points[0].y),\n Math.abs(targetGapPoint.y - points[0].y),\n );\n\n // we want to place the label on the longest segment of the edge\n if (maxXDistance >= maxYDistance) {\n centerX = (sourceGapPoint.x + targetGapPoint.x) / 2;\n centerY = points[0].y;\n } else {\n centerX = points[0].x;\n centerY = (sourceGapPoint.y + targetGapPoint.y) / 2;\n }\n }\n\n const pathPoints = [\n source,\n {\n x: sourceGapped.x + sourceGapOffset.x,\n y: sourceGapped.y + sourceGapOffset.y,\n },\n ...points,\n {\n x: targetGapped.x + targetGapOffset.x,\n y: targetGapped.y + targetGapOffset.y,\n },\n target,\n ];\n\n return [pathPoints, centerX, centerY, defaultOffsetX, defaultOffsetY];\n}\n\nfunction getBend(\n a: XYPosition,\n b: XYPosition,\n c: XYPosition,\n size: number,\n): string {\n const bendSize = Math.min(distance(a, b) / 2, distance(b, c) / 2, size);\n const { x, y } = b;\n\n // no bend\n if ((a.x === x && x === c.x) || (a.y === y && y === c.y)) {\n return `L${x} ${y}`;\n }\n\n // first segment is horizontal\n if (a.y === y) {\n const xDir = a.x < c.x ? -1 : 1;\n const yDir = a.y < c.y ? 1 : -1;\n return `L ${x + bendSize * xDir},${y}Q ${x},${y} ${x},${\n y + bendSize * yDir\n }`;\n }\n\n const xDir = a.x < c.x ? 1 : -1;\n const yDir = a.y < c.y ? -1 : 1;\n return `L ${x},${y + bendSize * yDir}Q ${x},${y} ${x + bendSize * xDir},${y}`;\n}\n\n/**\n * Get a smooth step path from source to target handle\n * @param params.sourceX - The x position of the source handle\n * @param params.sourceY - The y position of the source handle\n * @param params.sourcePosition - The position of the source handle (default: Position.Bottom)\n * @param params.targetX - The x position of the target handle\n * @param params.targetY - The y position of the target handle\n * @param params.targetPosition - The position of the target handle (default: Position.Top)\n * @returns A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label\n * @example\n * const source = { x: 0, y: 20 };\n const target = { x: 150, y: 100 };\n \n const [path, labelX, labelY, offsetX, offsetY] = getSmoothStepPath({\n sourceX: source.x,\n sourceY: source.y,\n sourcePosition: Position.Right,\n targetX: target.x,\n targetY: target.y,\n targetPosition: Position.Left,\n });\n */\nexport function getSmoothStepPath({\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n borderRadius = 5,\n centerX,\n centerY,\n offset = 20,\n}: GetSmoothStepPathParams): [\n path: string,\n labelX: number,\n labelY: number,\n offsetX: number,\n offsetY: number,\n] {\n const [points, labelX, labelY, offsetX, offsetY] = getPoints({\n source: { x: sourceX, y: sourceY },\n sourcePosition,\n target: { x: targetX, y: targetY },\n targetPosition,\n center: { x: centerX, y: centerY },\n offset,\n });\n\n const path = points.reduce<string>((res, p, i) => {\n let segment = '';\n\n if (i > 0 && i < points.length - 1) {\n segment = getBend(points[i - 1], p, points[i + 1], borderRadius);\n } else {\n segment = `${i === 0 ? 'M' : 'L'}${p.x} ${p.y}`;\n }\n\n res += segment;\n\n return res;\n }, '');\n\n return [path, labelX, labelY, offsetX, offsetY];\n}\n","import {\n type HTMLAttributes,\n type MouseEvent as ReactMouseEvent,\n type TouchEvent as ReactTouchEvent,\n type ForwardedRef,\n memo,\n} from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { useNodeId } from '../../contexts/NodeIdContext';\nimport { isMouseEvent, getHostForElement } from '../../utils/dom';\nimport { fixedForwardRef } from '../../utils/general';\nimport { InkFlowState } from '../../types';\nimport { addEdge } from '../../utils/edges';\nimport {\n Connection,\n ConnectionMode,\n HandleProps as HandlePropsSystem,\n HandleType,\n OnConnect,\n Position,\n XYHandle,\n errorMessages,\n} from '@aloudata/ink-core';\n\nexport interface HandleProps\n extends HandlePropsSystem,\n Omit<HTMLAttributes<HTMLDivElement>, 'id'> {\n /** Callback called when connection is made */\n onConnect?: OnConnect;\n}\n\nconst selector = (s: InkFlowState) => ({\n connectOnClick: s.connectOnClick,\n noPanClassName: s.noPanClassName,\n rfId: s.rfId,\n});\n\nconst connectingSelector =\n (nodeId: string | null, handleId: string | null, type: HandleType) =>\n (state: InkFlowState) => {\n const {\n connectionStartHandle: startHandle,\n connectionEndHandle: endHandle,\n connectionClickStartHandle: clickHandle,\n connectionMode,\n connectionStatus,\n } = state;\n\n const connectingTo =\n endHandle?.nodeId === nodeId &&\n endHandle?.handleId === handleId &&\n endHandle?.type === type;\n\n return {\n connectingFrom:\n startHandle?.nodeId === nodeId &&\n startHandle?.handleId === handleId &&\n startHandle?.type === type,\n connectingTo,\n clickConnecting:\n clickHandle?.nodeId === nodeId &&\n clickHandle?.handleId === handleId &&\n clickHandle?.type === type,\n isPossibleEndHandle:\n connectionMode === ConnectionMode.Strict\n ? startHandle?.type !== type\n : nodeId !== startHandle?.nodeId ||\n handleId !== startHandle?.handleId,\n connectionInProcess: !!startHandle,\n valid: connectingTo && connectionStatus === 'valid',\n };\n };\n\nfunction HandleComponent(\n {\n type = 'source',\n position = Position.Top,\n isValidConnection,\n isConnectable = true,\n isConnectableStart = true,\n isConnectableEnd = true,\n id,\n onConnect,\n children,\n className,\n onMouseDown,\n onTouchStart,\n ...rest\n }: HandleProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const handleId = id || null;\n const isTarget = type === 'target';\n const store = useStoreApi();\n const nodeId = useNodeId();\n const { connectOnClick, noPanClassName, rfId } = useStore(selector, shallow);\n const {\n connectingFrom,\n connectingTo,\n clickConnecting,\n isPossibleEndHandle,\n connectionInProcess,\n valid,\n } = useStore(connectingSelector(nodeId, handleId, type), shallow);\n\n if (!nodeId) {\n store.getState().onError?.('010', errorMessages['error010']());\n }\n\n const onConnectExtended = (params: Connection) => {\n const {\n defaultEdgeOptions,\n onConnect: onConnectAction,\n hasDefaultEdges,\n } = store.getState();\n\n const edgeParams = {\n ...defaultEdgeOptions,\n ...params,\n };\n if (hasDefaultEdges) {\n const { edges, setEdges } = store.getState();\n setEdges(addEdge(edgeParams, edges));\n }\n\n onConnectAction?.(edgeParams);\n onConnect?.(edgeParams);\n };\n\n const onPointerDown = (\n event: ReactMouseEvent<HTMLDivElement> | ReactTouchEvent<HTMLDivElement>,\n ) => {\n if (!nodeId) {\n return;\n }\n\n const isMouseTriggered = isMouseEvent(event.nativeEvent);\n\n if (\n isConnectableStart &&\n ((isMouseTriggered &&\n (event as ReactMouseEvent<HTMLDivElement>).button === 0) ||\n !isMouseTriggered)\n ) {\n const currentStore = store.getState();\n\n XYHandle.onPointerDown(event.nativeEvent, {\n autoPanOnConnect: currentStore.autoPanOnConnect,\n connectionMode: currentStore.connectionMode,\n connectionRadius: currentStore.connectionRadius,\n domNode: currentStore.domNode,\n nodeLookup: currentStore.nodeLookup,\n lib: currentStore.lib,\n isTarget,\n handleId,\n nodeId,\n flowId: currentStore.rfId,\n panBy: currentStore.panBy,\n cancelConnection: currentStore.cancelConnection,\n onConnectStart: currentStore.onConnectStart,\n onConnectEnd: currentStore.onConnectEnd,\n updateConnection: currentStore.updateConnection,\n onConnect: onConnectExtended,\n isValidConnection: isValidConnection || currentStore.isValidConnection,\n getTransform: () => store.getState().transform,\n getConnectionStartHandle: () => store.getState().connectionStartHandle,\n });\n }\n\n if (isMouseTriggered) {\n onMouseDown?.(event as ReactMouseEvent<HTMLDivElement>);\n } else {\n onTouchStart?.(event as ReactTouchEvent<HTMLDivElement>);\n }\n };\n\n const onClick = (event: ReactMouseEvent) => {\n const {\n onClickConnectStart,\n onClickConnectEnd,\n connectionClickStartHandle,\n connectionMode,\n isValidConnection: isValidConnectionStore,\n lib,\n rfId: flowId,\n } = store.getState();\n\n if (!nodeId || (!connectionClickStartHandle && !isConnectableStart)) {\n return;\n }\n\n if (!connectionClickStartHandle) {\n onClickConnectStart?.(event.nativeEvent, {\n nodeId,\n handleId,\n handleType: type,\n });\n store.setState({\n connectionClickStartHandle: { nodeId, type, handleId },\n });\n return;\n }\n\n const doc = getHostForElement(event.target as HTMLElement);\n const isValidConnectionHandler =\n isValidConnection || isValidConnectionStore;\n const { connection, isValid } = XYHandle.isValid(event.nativeEvent, {\n handle: {\n nodeId,\n id: handleId,\n type,\n },\n connectionMode,\n fromNodeId: connectionClickStartHandle.nodeId,\n fromHandleId: connectionClickStartHandle.handleId || null,\n fromType: connectionClickStartHandle.type,\n isValidConnection: isValidConnectionHandler,\n flowId,\n doc,\n lib,\n });\n\n if (isValid && connection) {\n onConnectExtended(connection);\n }\n\n onClickConnectEnd?.(event as unknown as MouseEvent);\n\n store.setState({ connectionClickStartHandle: null });\n };\n\n return (\n <div\n data-handleid={handleId}\n data-nodeid={nodeId}\n data-handlepos={position}\n data-id={`${rfId}-${nodeId}-${handleId}-${type}`}\n className={cc([\n 'ink-flow__handle',\n `ink-flow__handle-${position}`,\n 'nodrag',\n noPanClassName,\n className,\n {\n source: !isTarget,\n target: isTarget,\n connectable: isConnectable,\n connectablestart: isConnectableStart,\n connectableend: isConnectableEnd,\n clickconnecting: clickConnecting,\n connectingfrom: connectingFrom,\n connectingto: connectingTo,\n valid,\n // shows where you can start a connection from\n // and where you can end it while connecting\n connectionindicator:\n isConnectable &&\n (!connectionInProcess || isPossibleEndHandle) &&\n (connectionInProcess ? isConnectableEnd : isConnectableStart),\n },\n ])}\n onMouseDown={onPointerDown}\n onTouchStart={onPointerDown}\n onClick={connectOnClick ? onClick : undefined}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\n/**\n * The Handle component is a UI element that is used to connect nodes.\n */\nexport const Handle = memo(fixedForwardRef(HandleComponent));\n","import { InputNode } from '../Nodes/InputNode';\nimport { DefaultNode } from '../Nodes/DefaultNode';\nimport { GroupNode } from '../Nodes/GroupNode';\nimport { OutputNode } from '../Nodes/OutputNode';\nimport type { InternalNode, Node, NodeTypes } from '../../types';\nimport { XYPosition } from '@aloudata/ink-core';\n\nexport const arrowKeyDiffs: Record<string, XYPosition> = {\n ArrowUp: { x: 0, y: -1 },\n ArrowDown: { x: 0, y: 1 },\n ArrowLeft: { x: -1, y: 0 },\n ArrowRight: { x: 1, y: 0 },\n};\n\nexport const builtinNodeTypes: NodeTypes = {\n input: InputNode,\n default: DefaultNode,\n output: OutputNode,\n group: GroupNode,\n};\n\nexport function getNodeInlineStyleDimensions<NodeType extends Node = Node>(\n node: InternalNode<NodeType>,\n): {\n width: number | string | undefined;\n height: number | string | undefined;\n} {\n if (node.internals.handleBounds === undefined) {\n return {\n width: node.width ?? node.initialWidth ?? node.style?.width,\n height: node.height ?? node.initialHeight ?? node.style?.height,\n };\n }\n\n return {\n width: node.width ?? node.style?.width,\n height: node.height ?? node.style?.height,\n };\n}\n","import { Position } from '@aloudata/ink-core';\nimport { BuiltInNode, NodeProps } from '../../types';\nimport { Handle } from '../Handle';\n\nexport function InputNode({\n data,\n isConnectable,\n sourcePosition = Position.Bottom,\n}: NodeProps<BuiltInNode>) {\n return (\n <>\n {data?.label}\n <Handle\n type=\"source\"\n position={sourcePosition}\n isConnectable={isConnectable}\n />\n </>\n );\n}\n","import { Position } from '@aloudata/ink-core';\nimport { BuiltInNode, NodeProps } from '../../types';\nimport { Handle } from '../Handle';\n\nexport function DefaultNode({\n data,\n isConnectable,\n targetPosition = Position.Top,\n sourcePosition = Position.Bottom,\n}: NodeProps<BuiltInNode>) {\n return (\n <>\n <Handle\n type=\"target\"\n position={targetPosition}\n isConnectable={isConnectable}\n />\n {data?.label}\n <Handle\n type=\"source\"\n position={sourcePosition}\n isConnectable={isConnectable}\n />\n </>\n );\n}\n","import { Position } from '@aloudata/ink-core';\nimport { BuiltInNode, NodeProps } from '../../types';\nimport { Handle } from '../Handle';\n\nexport function OutputNode({\n data,\n isConnectable,\n targetPosition = Position.Top,\n}: NodeProps<BuiltInNode>) {\n return (\n <>\n <Handle\n type=\"target\"\n position={targetPosition}\n isConnectable={isConnectable}\n />\n {data?.label}\n </>\n );\n}\n","export function GroupNode() {\n return null;\n}\n","import type { RefObject } from 'react';\nimport type { StoreApi } from 'zustand';\nimport { InkFlowState } from '../../types';\nimport { errorMessages } from '@aloudata/ink-core';\n\n// this handler is called by\n// 1. the click handler when node is not draggable or selectNodesOnDrag = false\n// or\n// 2. the on drag start handler when node is draggable and selectNodesOnDrag = true\nexport function handleNodeClick({\n id,\n store,\n unselect = false,\n nodeRef,\n}: {\n id: string;\n store: {\n getState: StoreApi<InkFlowState>['getState'];\n setState: StoreApi<InkFlowState>['setState'];\n };\n unselect?: boolean;\n nodeRef?: RefObject<HTMLDivElement>;\n}) {\n const {\n addSelectedNodes,\n unselectNodesAndEdges,\n multiSelectionActive,\n nodeLookup,\n onError,\n } = store.getState();\n const node = nodeLookup.get(id);\n\n if (!node) {\n onError?.('012', errorMessages['error012'](id));\n return;\n }\n\n store.setState({ nodesSelectionActive: false });\n\n if (!node.selected) {\n addSelectedNodes([id]);\n } else if (unselect || (node.selected && multiSelectionActive)) {\n unselectNodesAndEdges({ nodes: [node], edges: [] });\n\n requestAnimationFrame(() => nodeRef?.current?.blur());\n }\n}\n","import { useCallback } from 'react';\n\nimport { type Node } from '../types';\nimport { useStoreApi } from './useStore';\nimport { snapPosition } from '../utils/general';\nimport { calculateNodePosition } from '../utils/graph';\nimport { XYPosition } from '@aloudata/ink-core';\n\nconst selectedAndDraggable = (nodesDraggable: boolean) => (n: Node) =>\n n.selected &&\n (n.draggable || (nodesDraggable && typeof n.draggable === 'undefined'));\n\n/**\n * Hook for updating node positions by passing a direction and factor\n *\n * @internal\n * @returns function for updating node positions\n */\nexport function useMoveSelectedNodes() {\n const store = useStoreApi();\n\n const moveSelectedNodes = useCallback(\n (params: { direction: XYPosition; factor: number }) => {\n const {\n nodeExtent,\n snapToGrid,\n snapGrid,\n nodesDraggable,\n onError,\n updateNodePositions,\n nodeLookup,\n nodeOrigin,\n } = store.getState();\n const nodeUpdates = new Map();\n const isSelected = selectedAndDraggable(nodesDraggable);\n\n // by default a node moves 5px on each key press\n // if snap grid is enabled, we use that for the velocity\n const xVelo = snapToGrid ? snapGrid[0] : 5;\n const yVelo = snapToGrid ? snapGrid[1] : 5;\n\n const xDiff = params.direction.x * xVelo * params.factor;\n const yDiff = params.direction.y * yVelo * params.factor;\n\n for (const [, node] of nodeLookup) {\n if (!isSelected(node)) {\n continue;\n }\n\n let nextPosition = {\n x: node.internals.positionAbsolute.x + xDiff,\n y: node.internals.positionAbsolute.y + yDiff,\n };\n\n if (snapToGrid) {\n nextPosition = snapPosition(nextPosition, snapGrid);\n }\n\n const { position, positionAbsolute } = calculateNodePosition({\n nodeId: node.id,\n nextPosition,\n nodeLookup,\n nodeExtent,\n nodeOrigin,\n onError,\n });\n\n node.position = position;\n node.internals.positionAbsolute = positionAbsolute;\n\n nodeUpdates.set(node.id, node);\n }\n\n updateNodePositions(nodeUpdates);\n },\n [],\n );\n\n return moveSelectedNodes;\n}\n","import { type MouseEvent, type KeyboardEvent } from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport { Provider } from '../../contexts/NodeIdContext';\nimport { ARIA_NODE_DESC_KEY } from '../A11yDescriptions';\nimport {\n arrowKeyDiffs,\n builtinNodeTypes,\n getNodeInlineStyleDimensions,\n} from './utils';\nimport { useNodeObserver } from './useNodeObserver';\nimport type { InternalNode, Node, NodeWrapperProps } from '../../types';\nimport { isInputDOMNode } from '../../utils/dom';\nimport {\n getNodeDimensions,\n clampPosition,\n nodeHasDimensions,\n getPositionWithOrigin,\n} from '../../utils/general';\nimport { useDrag } from '../../hooks/useDrag';\nimport { useMoveSelectedNodes } from '../../hooks/useMoveSelectedNodes';\nimport { handleNodeClick } from '../Nodes/utils';\nimport { errorMessages, elementSelectionKeys } from '@aloudata/ink-core';\n\nexport function NodeWrapper<NodeType extends Node>({\n id,\n onClick,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n onContextMenu,\n onDoubleClick,\n nodesDraggable,\n elementsSelectable,\n nodesConnectable,\n nodesFocusable,\n resizeObserver,\n noDragClassName,\n noPanClassName,\n disableKeyboardA11y,\n rfId,\n nodeTypes,\n nodeExtent,\n nodeOrigin,\n onError,\n}: NodeWrapperProps<NodeType>) {\n const { node, internals, isParent } = useStore((s) => {\n const node = s.nodeLookup.get(id)! as InternalNode<NodeType>;\n const isParent = s.parentLookup.has(id);\n\n return {\n node,\n internals: node.internals,\n isParent,\n };\n }, shallow);\n\n let nodeType = node.type || 'default';\n let NodeComponent = nodeTypes?.[nodeType] || builtinNodeTypes[nodeType];\n\n if (NodeComponent === undefined) {\n onError?.('003', errorMessages['error003'](nodeType));\n nodeType = 'default';\n NodeComponent = builtinNodeTypes.default;\n }\n\n const isDraggable = !!(\n node.draggable ||\n (nodesDraggable && typeof node.draggable === 'undefined')\n );\n const isSelectable = !!(\n node.selectable ||\n (elementsSelectable && typeof node.selectable === 'undefined')\n );\n const isConnectable = !!(\n node.connectable ||\n (nodesConnectable && typeof node.connectable === 'undefined')\n );\n const isFocusable = !!(\n node.focusable ||\n (nodesFocusable && typeof node.focusable === 'undefined')\n );\n\n const store = useStoreApi();\n const hasDimensions = nodeHasDimensions(node);\n const nodeRef = useNodeObserver({\n node,\n nodeType,\n hasDimensions,\n resizeObserver,\n });\n const dragging = useDrag({\n nodeRef,\n disabled: node.hidden || !isDraggable,\n noDragClassName,\n handleSelector: node.dragHandle,\n nodeId: id,\n isSelectable,\n });\n const moveSelectedNodes = useMoveSelectedNodes();\n\n if (node.hidden) {\n return null;\n }\n\n const nodeDimensions = getNodeDimensions(node);\n const inlineDimensions = getNodeInlineStyleDimensions(node);\n const clampedPosition = nodeExtent\n ? clampPosition(internals.positionAbsolute, nodeExtent)\n : internals.positionAbsolute;\n\n const positionWithOrigin = getPositionWithOrigin({\n ...clampedPosition,\n ...nodeDimensions,\n origin: node.origin || nodeOrigin,\n });\n const hasPointerEvents =\n isSelectable ||\n isDraggable ||\n onClick ||\n onMouseEnter ||\n onMouseMove ||\n onMouseLeave;\n\n const onMouseEnterHandler = onMouseEnter\n ? (event: MouseEvent) => onMouseEnter(event, { ...internals.userNode })\n : undefined;\n const onMouseMoveHandler = onMouseMove\n ? (event: MouseEvent) => onMouseMove(event, { ...internals.userNode })\n : undefined;\n const onMouseLeaveHandler = onMouseLeave\n ? (event: MouseEvent) => onMouseLeave(event, { ...internals.userNode })\n : undefined;\n const onContextMenuHandler = onContextMenu\n ? (event: MouseEvent) => onContextMenu(event, { ...internals.userNode })\n : undefined;\n const onDoubleClickHandler = onDoubleClick\n ? (event: MouseEvent) => onDoubleClick(event, { ...internals.userNode })\n : undefined;\n\n const onSelectNodeHandler = (event: MouseEvent) => {\n const { selectNodesOnDrag, nodeDragThreshold } = store.getState();\n\n if (\n isSelectable &&\n (!selectNodesOnDrag || !isDraggable || nodeDragThreshold > 0)\n ) {\n // this handler gets called by XYDrag on drag start when selectNodesOnDrag=true\n // here we only need to call it when selectNodesOnDrag=false\n handleNodeClick({\n id,\n store,\n nodeRef,\n });\n }\n\n if (onClick) {\n onClick(event, { ...internals.userNode });\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (isInputDOMNode(event.nativeEvent) || disableKeyboardA11y) {\n return;\n }\n\n if (elementSelectionKeys.includes(event.key) && isSelectable) {\n const unselect = event.key === 'Escape';\n\n handleNodeClick({\n id,\n store,\n unselect,\n nodeRef,\n });\n } else if (\n isDraggable &&\n node.selected &&\n Object.prototype.hasOwnProperty.call(arrowKeyDiffs, event.key)\n ) {\n store.setState({\n ariaLiveMessage: `Moved selected node ${event.key\n .replace('Arrow', '')\n .toLowerCase()}. New position, x: ${~~clampedPosition.x}, y: ${~~clampedPosition.y}`,\n });\n\n moveSelectedNodes({\n direction: arrowKeyDiffs[event.key],\n factor: event.shiftKey ? 4 : 1,\n });\n }\n };\n\n return (\n <div\n className={cc([\n 'ink-flow__node',\n `ink-flow__node-${nodeType}`,\n {\n // this is overwritable by passing `nopan` as a class name\n [noPanClassName]: isDraggable,\n },\n node.className,\n {\n selected: node.selected,\n selectable: isSelectable,\n parent: isParent,\n draggable: isDraggable,\n dragging,\n },\n ])}\n ref={nodeRef}\n style={{\n zIndex: internals.z,\n transform: `translate(${positionWithOrigin.x}px,${positionWithOrigin.y}px)`,\n pointerEvents: hasPointerEvents ? 'all' : 'none',\n visibility: hasDimensions ? 'visible' : 'hidden',\n ...node.style,\n ...inlineDimensions,\n }}\n data-id={id}\n data-testid={`rf__node-${id}`}\n onMouseEnter={onMouseEnterHandler}\n onMouseMove={onMouseMoveHandler}\n onMouseLeave={onMouseLeaveHandler}\n onContextMenu={onContextMenuHandler}\n onClick={onSelectNodeHandler}\n onDoubleClick={onDoubleClickHandler}\n onKeyDown={isFocusable ? onKeyDown : undefined}\n tabIndex={isFocusable ? 0 : undefined}\n role={isFocusable ? 'button' : undefined}\n aria-describedby={\n disableKeyboardA11y ? undefined : `${ARIA_NODE_DESC_KEY}-${rfId}`\n }\n aria-label={node.ariaLabel}\n >\n <Provider value={id}>\n <NodeComponent\n id={id}\n data={node.data}\n type={nodeType}\n positionAbsoluteX={clampedPosition.x}\n positionAbsoluteY={clampedPosition.y}\n selected={node.selected}\n isConnectable={isConnectable}\n sourcePosition={node.sourcePosition}\n targetPosition={node.targetPosition}\n dragging={dragging}\n dragHandle={node.dragHandle}\n zIndex={internals.z}\n {...nodeDimensions}\n />\n </Provider>\n </div>\n );\n}\n","import { useEffect, useRef } from 'react';\n\nimport type { InternalNode } from '../../types';\nimport { useStoreApi } from '../../hooks/useStore';\n\n/**\n * Hook to handle the resize observation + internal updates for the passed node.\n *\n * @internal\n * @returns nodeRef - reference to the node element\n */\nexport function useNodeObserver({\n node,\n nodeType,\n hasDimensions,\n resizeObserver,\n}: {\n node: InternalNode;\n nodeType: string;\n hasDimensions: boolean;\n resizeObserver: ResizeObserver | null;\n}) {\n const store = useStoreApi();\n const nodeRef = useRef<HTMLDivElement | null>(null);\n const observedNode = useRef<HTMLDivElement | null>(null);\n const prevSourcePosition = useRef(node.sourcePosition);\n const prevTargetPosition = useRef(node.targetPosition);\n const prevType = useRef(nodeType);\n const isInitialized = hasDimensions && !!node.internals.handleBounds && !node.hidden;\n\n useEffect(() => {\n if (nodeRef.current && (!isInitialized || observedNode.current !== nodeRef.current)) {\n if (observedNode.current) {\n resizeObserver?.unobserve(observedNode.current);\n }\n resizeObserver?.observe(nodeRef.current);\n observedNode.current = nodeRef.current;\n }\n }, [isInitialized]);\n\n useEffect(() => {\n return () => {\n if (observedNode.current) {\n resizeObserver?.unobserve(observedNode.current);\n observedNode.current = null;\n }\n };\n }, []);\n\n useEffect(() => {\n if (nodeRef.current) {\n // when the user programmatically changes the source or handle position, we need to update the internals\n // to make sure the edges are updated correctly\n const typeChanged = prevType.current !== nodeType;\n const sourcePosChanged = prevSourcePosition.current !== node.sourcePosition;\n const targetPosChanged = prevTargetPosition.current !== node.targetPosition;\n\n if (typeChanged || sourcePosChanged || targetPosChanged) {\n prevType.current = nodeType;\n prevSourcePosition.current = node.sourcePosition;\n prevTargetPosition.current = node.targetPosition;\n\n store\n .getState()\n .updateNodeInternals(new Map([[node.id, { id: node.id, nodeElement: nodeRef.current, force: true }]]));\n }\n }\n }, [node.id, nodeType, node.sourcePosition, node.targetPosition]);\n\n return nodeRef;\n}\n","import { useEffect, useRef, useState, type RefObject } from 'react';\nimport { useStoreApi } from './useStore';\nimport { handleNodeClick } from '../components/Nodes/utils';\nimport { XYDrag, XYDragInstance } from '@aloudata/ink-core';\n\ntype UseDragParams = {\n nodeRef: RefObject<HTMLDivElement>;\n disabled?: boolean;\n noDragClassName?: string;\n handleSelector?: string;\n nodeId?: string;\n isSelectable?: boolean;\n};\n\nexport function useDrag({\n nodeRef,\n disabled = false,\n noDragClassName,\n handleSelector,\n nodeId,\n isSelectable,\n}: UseDragParams) {\n const store = useStoreApi();\n const [dragging, setDragging] = useState<boolean>(false);\n const xyDrag = useRef<XYDragInstance>();\n\n useEffect(() => {\n xyDrag.current = XYDrag({\n getStoreItems: () => store.getState(),\n onNodeMouseDown: (id: string) => {\n handleNodeClick({\n id,\n store,\n nodeRef,\n });\n },\n onDragStart: () => {\n setDragging(true);\n },\n onDragStop: () => {\n setDragging(false);\n },\n });\n }, []);\n\n useEffect(() => {\n if (disabled) {\n xyDrag.current?.destroy();\n } else if (nodeRef.current) {\n xyDrag.current?.update({\n noDragClassName,\n handleSelector,\n domNode: nodeRef.current,\n isSelectable,\n nodeId,\n });\n return () => {\n xyDrag.current?.destroy();\n };\n }\n }, [\n noDragClassName,\n handleSelector,\n disabled,\n isSelectable,\n nodeRef,\n nodeId,\n ]);\n\n return dragging;\n}\n","import { memo } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { GraphViewProps } from '../GraphView';\nimport { useResizeObserver } from './useResizeObserver';\nimport type { Node, InkFlowState } from '../../types';\nimport { useStore } from '../../hooks';\nimport { useVisibleNodeIds } from '../../hooks/useVisibleNodeIds';\nimport { containerStyle } from '../../styles/utils';\nimport { NodeWrapper } from '../../components/NodeWrapper';\n\nexport type NodeRendererProps<NodeType extends Node> = Pick<\n GraphViewProps<NodeType>,\n // | 'onNodeClick'\n // | 'onNodeDoubleClick'\n // | 'onNodeMouseEnter'\n // | 'onNodeMouseMove'\n // | 'onNodeMouseLeave'\n // | 'onNodeContextMenu'\n // | 'onlyRenderVisibleElements'\n | 'noPanClassName'\n | 'noDragClassName'\n | 'rfId'\n | 'disableKeyboardA11y'\n | 'nodeOrigin'\n // | 'nodeExtent'\n | 'nodeTypes'\n>;\n\nconst selector = (s: InkFlowState) => ({\n nodesDraggable: s.nodesDraggable,\n nodesConnectable: s.nodesConnectable,\n nodesFocusable: s.nodesFocusable,\n elementsSelectable: s.elementsSelectable,\n onError: s.onError,\n});\n\nfunction NodeRendererComponent<NodeType extends Node>(\n props: NodeRendererProps<NodeType>,\n) {\n const {\n nodesDraggable,\n nodesConnectable,\n nodesFocusable,\n elementsSelectable,\n onError,\n } = useStore(selector, shallow);\n // const nodeIds = useVisibleNodeIds(props.onlyRenderVisibleElements);\n const nodeIds = useVisibleNodeIds(false); // FIXME\n const resizeObserver = useResizeObserver();\n\n return (\n <div className=\"ink-flow__nodes\" style={containerStyle}>\n {nodeIds.map((nodeId) => {\n return (\n <NodeWrapper<NodeType>\n key={nodeId}\n id={nodeId}\n nodeTypes={props.nodeTypes}\n // nodeExtent={props.nodeExtent}\n nodeOrigin={props.nodeOrigin}\n // onClick={props.onNodeClick}\n // onMouseEnter={props.onNodeMouseEnter}\n // onMouseMove={props.onNodeMouseMove}\n // onMouseLeave={props.onNodeMouseLeave}\n // onContextMenu={props.onNodeContextMenu}\n // onDoubleClick={props.onNodeDoubleClick}\n noDragClassName={props.noDragClassName}\n noPanClassName={props.noPanClassName}\n rfId={props.rfId}\n disableKeyboardA11y={props.disableKeyboardA11y}\n resizeObserver={resizeObserver}\n nodesDraggable={nodesDraggable}\n nodesConnectable={nodesConnectable}\n nodesFocusable={nodesFocusable}\n elementsSelectable={elementsSelectable}\n onError={onError}\n />\n );\n })}\n </div>\n );\n}\n\nNodeRendererComponent.displayName = 'NodeRenderer';\n\nexport const NodeRenderer = memo(\n NodeRendererComponent,\n) as typeof NodeRendererComponent;\n","import { useMemo } from 'react';\nimport { useStoreApi } from '../../hooks';\nimport { EdgeMarker, MarkerType, errorMessages } from '@aloudata/ink-core';\n\ntype SymbolProps = Omit<EdgeMarker, 'type'>;\n\nconst ArrowSymbol = ({ color = 'none', strokeWidth = 1 }: SymbolProps) => {\n return (\n <polyline\n style={{\n stroke: color,\n strokeWidth,\n }}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n fill=\"none\"\n points=\"-5,-4 0,0 -5,4\"\n />\n );\n};\n\nconst ArrowClosedSymbol = ({\n color = 'none',\n strokeWidth = 1,\n}: SymbolProps) => {\n return (\n <polyline\n style={{\n stroke: color,\n fill: color,\n strokeWidth,\n }}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n points=\"-5,-4 0,0 -5,4 -5,-4\"\n />\n );\n};\n\nexport const MarkerSymbols = {\n [MarkerType.Arrow]: ArrowSymbol,\n [MarkerType.ArrowClosed]: ArrowClosedSymbol,\n};\n\nexport function useMarkerSymbol(type: MarkerType) {\n const store = useStoreApi();\n\n const symbol = useMemo(() => {\n const symbolExists = Object.prototype.hasOwnProperty.call(\n MarkerSymbols,\n type,\n );\n\n if (!symbolExists) {\n store.getState().onError?.('009', errorMessages['error009'](type));\n\n return null;\n }\n\n return MarkerSymbols[type];\n }, [type]);\n\n return symbol;\n}\n","import {\n EdgeMarkerType,\n EdgeMarker,\n EdgeBase,\n MarkerProps,\n} from '@aloudata/ink-core';\n\nexport function getMarkerId(\n marker: EdgeMarkerType | undefined,\n id?: string | null,\n): string {\n if (!marker) {\n return '';\n }\n\n if (typeof marker === 'string') {\n return marker;\n }\n\n const idPrefix = id ? `${id}__` : '';\n\n return `${idPrefix}${Object.keys(marker)\n .sort()\n .map((key) => `${key}=${marker[key as keyof EdgeMarker]}`)\n .join('&')}`;\n}\n\nexport function createMarkerIds(\n edges: EdgeBase[],\n {\n id,\n defaultColor,\n defaultMarkerStart,\n defaultMarkerEnd,\n }: {\n id?: string | null;\n defaultColor?: string;\n defaultMarkerStart?: EdgeMarkerType;\n defaultMarkerEnd?: EdgeMarkerType;\n },\n) {\n const ids = new Set<string>();\n\n return edges\n .reduce<MarkerProps[]>((markers, edge) => {\n [\n edge.markerStart || defaultMarkerStart,\n edge.markerEnd || defaultMarkerEnd,\n ].forEach((marker) => {\n if (marker && typeof marker === 'object') {\n const markerId = getMarkerId(marker, id);\n if (!ids.has(markerId)) {\n markers.push({\n id: markerId,\n color: marker.color || defaultColor,\n ...marker,\n });\n ids.add(markerId);\n }\n }\n });\n\n return markers;\n }, [])\n .sort((a, b) => a.id.localeCompare(b.id));\n}\n","import { memo, useMemo } from 'react';\n\nimport { useMarkerSymbol } from './MarkerSymbols';\nimport { useStore } from '../../hooks';\nimport { createMarkerIds } from '../../utils/marker';\nimport { MarkerProps } from '@aloudata/ink-core';\n\ntype MarkerDefinitionsProps = {\n defaultColor: string;\n rfId?: string;\n};\n\nconst Marker = ({\n id,\n type,\n color,\n width = 12.5,\n height = 12.5,\n markerUnits = 'strokeWidth',\n strokeWidth,\n orient = 'auto-start-reverse',\n}: MarkerProps) => {\n const Symbol = useMarkerSymbol(type);\n\n if (!Symbol) {\n return null;\n }\n\n return (\n <marker\n className=\"ink-flow__arrowhead\"\n id={id}\n markerWidth={`${width}`}\n markerHeight={`${height}`}\n viewBox=\"-10 -10 20 20\"\n markerUnits={markerUnits}\n orient={orient}\n refX=\"0\"\n refY=\"0\"\n >\n <Symbol color={color} strokeWidth={strokeWidth} />\n </marker>\n );\n};\n\n// when you have multiple flows on a page and you hide the first one, the other ones have no markers anymore\n// when they do have markers with the same ids. To prevent this the user can pass a unique id to the Ink Flow wrapper\n// that we can then use for creating our unique marker ids\nconst MarkerDefinitions = ({ defaultColor, rfId }: MarkerDefinitionsProps) => {\n const edges = useStore((s) => s.edges);\n const defaultEdgeOptions = useStore((s) => s.defaultEdgeOptions); // FIXME\n\n const markers = useMemo(() => {\n const markers = createMarkerIds(edges, {\n id: rfId,\n defaultColor,\n defaultMarkerStart: defaultEdgeOptions?.markerStart,\n defaultMarkerEnd: defaultEdgeOptions?.markerEnd,\n });\n\n return markers;\n }, [edges, defaultEdgeOptions, rfId, defaultColor]);\n\n if (!markers.length) {\n return null;\n }\n\n return (\n <svg className=\"ink-flow__marker\">\n <defs>\n {markers.map((marker: MarkerProps) => (\n <Marker\n id={marker.id}\n key={marker.id}\n type={marker.type}\n color={marker.color}\n width={marker.width}\n height={marker.height}\n markerUnits={marker.markerUnits}\n strokeWidth={marker.strokeWidth}\n orient={marker.orient}\n />\n ))}\n </defs>\n </svg>\n );\n};\n\nMarkerDefinitions.displayName = 'MarkerDefinitions';\n\nexport default memo(MarkerDefinitions);\n","import { memo, useState, useCallback } from 'react';\nimport cc from 'classnames';\nimport { EdgeTextProps } from '../../types';\nimport { Rect } from '@aloudata/ink-core';\n\nfunction EdgeTextComponent({\n x,\n y,\n label,\n labelStyle = {},\n labelShowBg = true,\n labelBgStyle = {},\n labelBgPadding = [2, 4],\n labelBgBorderRadius = 2,\n children,\n className,\n ...rest\n}: EdgeTextProps) {\n const [edgeTextBbox, setEdgeTextBbox] = useState<Rect>({\n x: 1,\n y: 0,\n width: 0,\n height: 0,\n });\n const edgeTextClasses = cc(['ink-flow__edge-textwrapper', className]);\n\n const onEdgeTextRefChange = useCallback((edgeRef: SVGTextElement) => {\n if (edgeRef === null) return;\n\n const textBbox = edgeRef.getBBox();\n\n setEdgeTextBbox({\n x: textBbox.x,\n y: textBbox.y,\n width: textBbox.width,\n height: textBbox.height,\n });\n }, []);\n\n if (typeof label === 'undefined' || !label) {\n return null;\n }\n\n return (\n <g\n transform={`translate(${x - edgeTextBbox.width / 2} ${\n y - edgeTextBbox.height / 2\n })`}\n className={edgeTextClasses}\n visibility={edgeTextBbox.width ? 'visible' : 'hidden'}\n {...rest}\n >\n {labelShowBg && (\n <rect\n width={edgeTextBbox.width + 2 * labelBgPadding[0]}\n x={-labelBgPadding[0]}\n y={-labelBgPadding[1]}\n height={edgeTextBbox.height + 2 * labelBgPadding[1]}\n className=\"ink-flow__edge-textbg\"\n style={labelBgStyle}\n rx={labelBgBorderRadius}\n ry={labelBgBorderRadius}\n />\n )}\n <text\n className=\"ink-flow__edge-text\"\n y={edgeTextBbox.height / 2}\n dy=\"0.3em\"\n ref={onEdgeTextRefChange}\n style={labelStyle}\n >\n {label}\n </text>\n {children}\n </g>\n );\n}\n\nEdgeTextComponent.displayName = 'EdgeText';\n\nexport const EdgeText = memo(EdgeTextComponent);\n","import cc from 'classnames';\n\nimport { EdgeText } from './EdgeText';\nimport { BaseEdgeProps } from '../../types';\nimport { isNumeric } from '../../utils/general';\n\nexport function BaseEdge({\n id,\n path,\n labelX,\n labelY,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n markerEnd,\n markerStart,\n className,\n interactionWidth = 20,\n}: BaseEdgeProps) {\n return (\n <>\n <path\n id={id}\n style={style}\n d={path}\n fill=\"none\"\n className={cc(['ink-flow__edge-path', className])}\n markerEnd={markerEnd}\n markerStart={markerStart}\n />\n {interactionWidth && (\n <path\n d={path}\n fill=\"none\"\n strokeOpacity={0}\n strokeWidth={interactionWidth}\n className=\"ink-flow__edge-interaction\"\n />\n )}\n {label && isNumeric(labelX) && isNumeric(labelY) ? (\n <EdgeText\n x={labelX}\n y={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n />\n ) : null}\n </>\n );\n}\n","import { memo } from 'react';\n\nimport { BaseEdge } from './BaseEdge';\nimport type { SimpleBezierEdgeProps } from '../../types';\nimport { getBezierEdgeCenter } from '../../utils/edges';\nimport { Position } from '@aloudata/ink-core';\n\nexport interface GetSimpleBezierPathParams {\n sourceX: number;\n sourceY: number;\n sourcePosition?: Position;\n targetX: number;\n targetY: number;\n targetPosition?: Position;\n}\n\ninterface GetControlParams {\n pos: Position;\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n}\n\nfunction getControl({\n pos,\n x1,\n y1,\n x2,\n y2,\n}: GetControlParams): [number, number] {\n if (pos === Position.Left || pos === Position.Right) {\n return [0.5 * (x1 + x2), y1];\n }\n\n return [x1, 0.5 * (y1 + y2)];\n}\n\nexport function getSimpleBezierPath({\n sourceX,\n sourceY,\n sourcePosition = Position.Bottom,\n targetX,\n targetY,\n targetPosition = Position.Top,\n}: GetSimpleBezierPathParams): [\n path: string,\n labelX: number,\n labelY: number,\n offsetX: number,\n offsetY: number,\n] {\n const [sourceControlX, sourceControlY] = getControl({\n pos: sourcePosition,\n x1: sourceX,\n y1: sourceY,\n x2: targetX,\n y2: targetY,\n });\n const [targetControlX, targetControlY] = getControl({\n pos: targetPosition,\n x1: targetX,\n y1: targetY,\n x2: sourceX,\n y2: sourceY,\n });\n const [labelX, labelY, offsetX, offsetY] = getBezierEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourceControlX,\n sourceControlY,\n targetControlX,\n targetControlY,\n });\n\n return [\n `M${sourceX},${sourceY} C${sourceControlX},${sourceControlY} ${targetControlX},${targetControlY} ${targetX},${targetY}`,\n labelX,\n labelY,\n offsetX,\n offsetY,\n ];\n}\n\nfunction createSimpleBezierEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(\n ({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition = Position.Bottom,\n targetPosition = Position.Top,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n markerEnd,\n markerStart,\n interactionWidth,\n }: SimpleBezierEdgeProps) => {\n const [path, labelX, labelY] = getSimpleBezierPath({\n sourceX,\n sourceY,\n sourcePosition,\n targetX,\n targetY,\n targetPosition,\n });\n\n const _id = params.isInternal ? undefined : id;\n\n return (\n <BaseEdge\n id={_id}\n path={path}\n labelX={labelX}\n labelY={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n style={style}\n markerEnd={markerEnd}\n markerStart={markerStart}\n interactionWidth={interactionWidth}\n />\n );\n },\n );\n}\n\nconst SimpleBezierEdge = createSimpleBezierEdge({ isInternal: false });\nconst SimpleBezierEdgeInternal = createSimpleBezierEdge({ isInternal: true });\n\nSimpleBezierEdge.displayName = 'SimpleBezierEdge';\nSimpleBezierEdgeInternal.displayName = 'SimpleBezierEdgeInternal';\n\nexport { SimpleBezierEdge, SimpleBezierEdgeInternal };\n","import { memo } from 'react';\n\nimport { BaseEdge } from './BaseEdge';\nimport type { SmoothStepEdgeProps } from '../../types';\nimport { getSmoothStepPath } from '../../utils/edges';\nimport { Position } from '@aloudata/ink-core';\n\nfunction createSmoothStepEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(\n ({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n sourcePosition = Position.Bottom,\n targetPosition = Position.Top,\n markerEnd,\n markerStart,\n pathOptions,\n interactionWidth,\n }: SmoothStepEdgeProps) => {\n const [path, labelX, labelY] = getSmoothStepPath({\n sourceX,\n sourceY,\n sourcePosition,\n targetX,\n targetY,\n targetPosition,\n borderRadius: pathOptions?.borderRadius,\n offset: pathOptions?.offset,\n });\n\n const _id = params.isInternal ? undefined : id;\n\n return (\n <BaseEdge\n id={_id}\n path={path}\n labelX={labelX}\n labelY={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n style={style}\n markerEnd={markerEnd}\n markerStart={markerStart}\n interactionWidth={interactionWidth}\n />\n );\n },\n );\n}\n\nconst SmoothStepEdge = createSmoothStepEdge({ isInternal: false });\nconst SmoothStepEdgeInternal = createSmoothStepEdge({ isInternal: true });\n\nSmoothStepEdge.displayName = 'SmoothStepEdge';\nSmoothStepEdgeInternal.displayName = 'SmoothStepEdgeInternal';\n\nexport { SmoothStepEdge, SmoothStepEdgeInternal };\n","import { memo, useMemo } from 'react';\n\nimport { SmoothStepEdge } from './SmoothStepEdge';\nimport type { StepEdgeProps } from '../../types';\n\nfunction createStepEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(({ id, ...props }: StepEdgeProps) => {\n const _id = params.isInternal ? undefined : id;\n\n return (\n <SmoothStepEdge\n {...props}\n id={_id}\n pathOptions={useMemo(\n () => ({ borderRadius: 0, offset: props.pathOptions?.offset }),\n [props.pathOptions?.offset]\n )}\n />\n );\n });\n}\n\nconst StepEdge = createStepEdge({ isInternal: false });\nconst StepEdgeInternal = createStepEdge({ isInternal: true });\n\nStepEdge.displayName = 'StepEdge';\nStepEdgeInternal.displayName = 'StepEdgeInternal';\n\nexport { StepEdge, StepEdgeInternal };\n","import { memo } from 'react';\n\nimport { BaseEdge } from './BaseEdge';\nimport type { StraightEdgeProps } from '../../types';\nimport { getStraightPath } from '../../utils/edges';\n\nfunction createStraightEdge(params: { isInternal: boolean }) {\n // eslint-disable-next-line react/display-name\n return memo(\n ({\n id,\n sourceX,\n sourceY,\n targetX,\n targetY,\n label,\n labelStyle,\n labelShowBg,\n labelBgStyle,\n labelBgPadding,\n labelBgBorderRadius,\n style,\n markerEnd,\n markerStart,\n interactionWidth,\n }: StraightEdgeProps) => {\n const [path, labelX, labelY] = getStraightPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n });\n\n const _id = params.isInternal ? undefined : id;\n\n return (\n <BaseEdge\n id={_id}\n path={path}\n labelX={labelX}\n labelY={labelY}\n label={label}\n labelStyle={labelStyle}\n labelShowBg={labelShowBg}\n labelBgStyle={labelBgStyle}\n labelBgPadding={labelBgPadding}\n labelBgBorderRadius={labelBgBorderRadius}\n style={style}\n markerEnd={markerEnd}\n markerStart={markerStart}\n interactionWidth={interactionWidth}\n />\n );\n },\n );\n}\n\nconst StraightEdge = createStraightEdge({ isInternal: false });\nconst StraightEdgeInternal = createStraightEdge({ isInternal: true });\n\nStraightEdge.displayName = 'StraightEdge';\nStraightEdgeInternal.displayName = 'StraightEdgeInternal';\n\nexport { StraightEdge, StraightEdgeInternal };\n","import { getEdgeCenter } from './general';\n\nexport type GetStraightPathParams = {\n sourceX: number;\n sourceY: number;\n targetX: number;\n targetY: number;\n};\n\n/**\n * Get a straight path from source to target handle\n * @param params.sourceX - The x position of the source handle\n * @param params.sourceY - The y position of the source handle\n * @param params.targetX - The x position of the target handle\n * @param params.targetY - The y position of the target handle\n * @returns A path string you can use in an SVG, the labelX and labelY position (center of path) and offsetX, offsetY between source handle and label\n * @example\n * const source = { x: 0, y: 20 };\n const target = { x: 150, y: 100 };\n \n const [path, labelX, labelY, offsetX, offsetY] = getStraightPath({\n sourceX: source.x,\n sourceY: source.y,\n sourcePosition: Position.Right,\n targetX: target.x,\n targetY: target.y,\n targetPosition: Position.Left,\n });\n */\nexport function getStraightPath({\n sourceX,\n sourceY,\n targetX,\n targetY,\n}: GetStraightPathParams): [path: string, labelX: number, labelY: number, offsetX: number, offsetY: number] {\n const [labelX, labelY, offsetX, offsetY] = getEdgeCenter({\n sourceX,\n sourceY,\n targetX,\n targetY,\n });\n\n return [`M ${sourceX},${sourceY}L ${targetX},${targetY}`, labelX, labelY, offsetX, offsetY];\n}\n","import { memo } from 'react';\r\n\r\nimport { BaseEdge } from './BaseEdge';\r\nimport { BezierEdgeProps } from '../../types';\r\nimport { getBezierPath } from '../../utils/edges';\r\nimport { Position } from '@aloudata/ink-core';\r\n\r\nfunction createBezierEdge(params: { isInternal: boolean }) {\r\n // eslint-disable-next-line react/display-name\r\n return memo(\r\n ({\r\n id,\r\n sourceX,\r\n sourceY,\r\n targetX,\r\n targetY,\r\n sourcePosition = Position.Bottom,\r\n targetPosition = Position.Top,\r\n label,\r\n labelStyle,\r\n labelShowBg,\r\n labelBgStyle,\r\n labelBgPadding,\r\n labelBgBorderRadius,\r\n style,\r\n markerEnd,\r\n markerStart,\r\n pathOptions,\r\n interactionWidth,\r\n }: BezierEdgeProps) => {\r\n const [path, labelX, labelY] = getBezierPath({\r\n sourceX,\r\n sourceY,\r\n sourcePosition,\r\n targetX,\r\n targetY,\r\n targetPosition,\r\n curvature: pathOptions?.curvature,\r\n });\r\n\r\n const _id = params.isInternal ? undefined : id;\r\n\r\n return (\r\n <BaseEdge\r\n id={_id}\r\n path={path}\r\n labelX={labelX}\r\n labelY={labelY}\r\n label={label}\r\n labelStyle={labelStyle}\r\n labelShowBg={labelShowBg}\r\n labelBgStyle={labelBgStyle}\r\n labelBgPadding={labelBgPadding}\r\n labelBgBorderRadius={labelBgBorderRadius}\r\n style={style}\r\n markerEnd={markerEnd}\r\n markerStart={markerStart}\r\n interactionWidth={interactionWidth}\r\n />\r\n );\r\n },\r\n );\r\n}\r\n\r\nconst BezierEdge = createBezierEdge({ isInternal: false });\r\nconst BezierEdgeInternal = createBezierEdge({ isInternal: true });\r\n\r\nBezierEdge.displayName = 'BezierEdge';\r\nBezierEdgeInternal.displayName = 'BezierEdgeInternal';\r\n\r\nexport { BezierEdge, BezierEdgeInternal };\r\n","import type { EdgeTypes } from '../../types';\nimport {\n BezierEdgeInternal,\n StraightEdgeInternal,\n StepEdgeInternal,\n SmoothStepEdgeInternal,\n SimpleBezierEdgeInternal,\n} from '../Edges';\n\nexport const builtinEdgeTypes: EdgeTypes = {\n default: BezierEdgeInternal,\n straight: StraightEdgeInternal,\n step: StepEdgeInternal,\n smoothstep: SmoothStepEdgeInternal,\n simplebezier: SimpleBezierEdgeInternal,\n};\n\nexport const nullPosition = {\n sourceX: null,\n sourceY: null,\n targetX: null,\n targetY: null,\n sourcePosition: null,\n targetPosition: null,\n};\n","import type { MouseEvent as ReactMouseEvent, SVGAttributes } from 'react';\nimport cc from 'classnames';\nimport { Position } from '@aloudata/ink-core';\n\nconst shiftX = (x: number, shift: number, position: Position): number => {\n if (position === Position.Left) return x - shift;\n if (position === Position.Right) return x + shift;\n return x;\n};\n\nconst shiftY = (y: number, shift: number, position: Position): number => {\n if (position === Position.Top) return y - shift;\n if (position === Position.Bottom) return y + shift;\n return y;\n};\n\nexport interface EdgeAnchorProps extends SVGAttributes<SVGGElement> {\n position: Position;\n centerX: number;\n centerY: number;\n radius?: number;\n onMouseDown: (event: ReactMouseEvent<SVGGElement, MouseEvent>) => void;\n onMouseEnter: (event: ReactMouseEvent<SVGGElement, MouseEvent>) => void;\n onMouseOut: (event: ReactMouseEvent<SVGGElement, MouseEvent>) => void;\n type: string;\n}\n\nconst EdgeUpdaterClassName = 'ink-flow__edgeupdater';\n\nexport function EdgeAnchor({\n position,\n centerX,\n centerY,\n radius = 10,\n onMouseDown,\n onMouseEnter,\n onMouseOut,\n type,\n}: EdgeAnchorProps) {\n return (\n <circle\n onMouseDown={onMouseDown}\n onMouseEnter={onMouseEnter}\n onMouseOut={onMouseOut}\n className={cc([EdgeUpdaterClassName, `${EdgeUpdaterClassName}-${type}`])}\n cx={shiftX(centerX, radius, position)}\n cy={shiftY(centerY, radius, position)}\n r={radius}\n stroke=\"transparent\"\n fill=\"transparent\"\n />\n );\n}\n","// Updatable edges have a anchors around their handles to update the edge.\nimport type { EdgeWrapperProps, Edge } from '../../types/edges';\nimport { useStoreApi } from '../../hooks/useStore';\nimport { EdgeAnchor } from '../Edges/EdgeAnchor';\nimport { Connection, EdgePosition, XYHandle } from '@aloudata/ink-core';\n\ntype EdgeUpdateAnchorsProps<EdgeType extends Edge = Edge> = {\n edge: EdgeType;\n isUpdatable: boolean | 'source' | 'target';\n edgeUpdaterRadius: EdgeWrapperProps['edgeUpdaterRadius'];\n sourceHandleId: Edge['sourceHandle'];\n targetHandleId: Edge['targetHandle'];\n onEdgeUpdate: EdgeWrapperProps<EdgeType>['onEdgeUpdate'];\n onEdgeUpdateStart: EdgeWrapperProps<EdgeType>['onEdgeUpdateStart'];\n onEdgeUpdateEnd: EdgeWrapperProps<EdgeType>['onEdgeUpdateEnd'];\n setUpdateHover: (hover: boolean) => void;\n setUpdating: (updating: boolean) => void;\n} & EdgePosition;\n\nexport function EdgeUpdateAnchors<EdgeType extends Edge = Edge>({\n isUpdatable,\n edgeUpdaterRadius,\n edge,\n targetHandleId,\n sourceHandleId,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n onEdgeUpdate,\n onEdgeUpdateStart,\n onEdgeUpdateEnd,\n setUpdating,\n setUpdateHover,\n}: EdgeUpdateAnchorsProps<EdgeType>) {\n const store = useStoreApi();\n\n const handleEdgeUpdater = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n isSourceHandle: boolean,\n ) => {\n // avoid triggering edge updater if mouse btn is not left\n if (event.button !== 0) {\n return;\n }\n\n const {\n autoPanOnConnect,\n domNode,\n isValidConnection,\n connectionMode,\n connectionRadius,\n lib,\n onConnectStart,\n onConnectEnd,\n cancelConnection,\n nodeLookup,\n rfId: flowId,\n panBy,\n updateConnection,\n } = store.getState();\n const nodeId = isSourceHandle ? edge.target : edge.source;\n const handleId = (isSourceHandle ? targetHandleId : sourceHandleId) || null;\n const handleType = isSourceHandle ? 'target' : 'source';\n\n const isTarget = isSourceHandle;\n\n setUpdating(true);\n onEdgeUpdateStart?.(event, edge, handleType);\n\n const _onEdgeUpdateEnd = (evt: MouseEvent | TouchEvent) => {\n setUpdating(false);\n onEdgeUpdateEnd?.(evt, edge, handleType);\n };\n\n const onConnectEdge = (connection: Connection) =>\n onEdgeUpdate?.(edge, connection);\n\n XYHandle.onPointerDown(event.nativeEvent, {\n autoPanOnConnect,\n connectionMode,\n connectionRadius,\n domNode,\n handleId,\n nodeId,\n nodeLookup,\n isTarget,\n edgeUpdaterType: handleType,\n lib,\n flowId,\n cancelConnection,\n panBy,\n isValidConnection,\n onConnect: onConnectEdge,\n onConnectStart,\n onConnectEnd,\n onEdgeUpdateEnd: _onEdgeUpdateEnd,\n updateConnection,\n getTransform: () => store.getState().transform,\n getConnectionStartHandle: () => store.getState().connectionStartHandle,\n });\n };\n\n const onEdgeUpdaterSourceMouseDown = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n ): void => handleEdgeUpdater(event, true);\n const onEdgeUpdaterTargetMouseDown = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n ): void => handleEdgeUpdater(event, false);\n const onEdgeUpdaterMouseEnter = () => setUpdateHover(true);\n const onEdgeUpdaterMouseOut = () => setUpdateHover(false);\n\n return (\n <>\n {(isUpdatable === 'source' || isUpdatable === true) && (\n <EdgeAnchor\n position={sourcePosition}\n centerX={sourceX}\n centerY={sourceY}\n radius={edgeUpdaterRadius}\n onMouseDown={onEdgeUpdaterSourceMouseDown}\n onMouseEnter={onEdgeUpdaterMouseEnter}\n onMouseOut={onEdgeUpdaterMouseOut}\n type=\"source\"\n />\n )}\n {(isUpdatable === 'target' || isUpdatable === true) && (\n <EdgeAnchor\n position={targetPosition}\n centerX={targetX}\n centerY={targetY}\n radius={edgeUpdaterRadius}\n onMouseDown={onEdgeUpdaterTargetMouseDown}\n onMouseEnter={onEdgeUpdaterMouseEnter}\n onMouseOut={onEdgeUpdaterMouseOut}\n type=\"target\"\n />\n )}\n </>\n );\n}\n","import {\n InternalNodeBase,\n ConnectionMode,\n OnError,\n EdgePosition,\n Position,\n errorMessages,\n NodeHandle,\n HandleElement,\n} from '@aloudata/ink-core';\nimport { getNodeDimensions } from './general';\n\nexport type GetEdgePositionParams = {\n id: string;\n sourceNode: InternalNodeBase;\n sourceHandle: string | null;\n targetNode: InternalNodeBase;\n targetHandle: string | null;\n connectionMode: ConnectionMode;\n onError?: OnError;\n};\n\nfunction isNodeInitialized(node: InternalNodeBase): boolean {\n return (\n node &&\n !!(node.internals.handleBounds || node.handles?.length) &&\n !!(node.measured.width || node.width || node.initialWidth)\n );\n}\n\nexport function getEdgePosition(\n params: GetEdgePositionParams,\n): EdgePosition | null {\n const { sourceNode, targetNode } = params;\n\n if (!isNodeInitialized(sourceNode) || !isNodeInitialized(targetNode)) {\n return null;\n }\n\n const sourceHandleBounds =\n sourceNode.internals.handleBounds || toHandleBounds(sourceNode.handles);\n const targetHandleBounds =\n targetNode.internals.handleBounds || toHandleBounds(targetNode.handles);\n\n const sourceHandle = getHandle(\n sourceHandleBounds?.source ?? [],\n params.sourceHandle,\n );\n const targetHandle = getHandle(\n // when connection type is loose we can define all handles as sources and connect source -> source\n params.connectionMode === ConnectionMode.Strict\n ? targetHandleBounds?.target ?? []\n : (targetHandleBounds?.target ?? []).concat(\n targetHandleBounds?.source ?? [],\n ),\n params.targetHandle,\n );\n const sourcePosition = sourceHandle?.position || Position.Bottom;\n const targetPosition = targetHandle?.position || Position.Top;\n\n if (!sourceHandle || !targetHandle) {\n params.onError?.(\n '008',\n errorMessages['error008'](!sourceHandle ? 'source' : 'target', {\n id: params.id,\n sourceHandle: params.sourceHandle,\n targetHandle: params.targetHandle,\n }),\n );\n\n return null;\n }\n\n const [sourceX, sourceY] = getHandlePosition(\n sourcePosition,\n sourceNode,\n sourceHandle,\n );\n const [targetX, targetY] = getHandlePosition(\n targetPosition,\n targetNode,\n targetHandle,\n );\n\n return {\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n };\n}\n\nfunction toHandleBounds(handles?: NodeHandle[]) {\n if (!handles) {\n return null;\n }\n\n const source = [];\n const target = [];\n\n for (const handle of handles) {\n handle.width = handle.width ?? 1;\n handle.height = handle.height ?? 1;\n\n if (handle.type === 'source') {\n source.push(handle as HandleElement);\n } else if (handle.type === 'target') {\n target.push(handle as HandleElement);\n }\n }\n\n return {\n source,\n target,\n };\n}\n\nfunction getHandlePosition(\n position: Position,\n node: InternalNodeBase,\n handle: HandleElement | null = null,\n): number[] {\n const x = (handle?.x ?? 0) + node.internals.positionAbsolute.x;\n const y = (handle?.y ?? 0) + node.internals.positionAbsolute.y;\n const { width, height } = handle ?? getNodeDimensions(node);\n\n switch (position) {\n case Position.Top:\n return [x + width / 2, y];\n case Position.Right:\n return [x + width, y + height / 2];\n case Position.Bottom:\n return [x + width / 2, y + height];\n case Position.Left:\n return [x, y + height / 2];\n }\n}\n\nfunction getHandle(\n bounds: HandleElement[],\n handleId?: string | null,\n): HandleElement | null {\n if (!bounds) {\n return null;\n }\n\n // if no handleId is given, we use the first handle, otherwise we check for the id\n return (\n (!handleId ? bounds[0] : bounds.find((d) => d.id === handleId)) || null\n );\n}\n","import {\n useState,\n useMemo,\n useRef,\n type KeyboardEvent,\n useCallback,\n} from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStoreApi, useStore } from '../../hooks/useStore';\nimport { builtinEdgeTypes, nullPosition } from './utils';\nimport { EdgeUpdateAnchors } from './EdgeUpdateAnchors';\nimport type { Edge, EdgeWrapperProps } from '../../types';\nimport { getMarkerId } from '../../utils/marker';\nimport { getEdgePosition } from '../../utils/positions';\nimport { getElevatedEdgeZIndex } from '../../utils/edges';\nimport { ARIA_EDGE_DESC_KEY } from '../A11yDescriptions';\nimport { errorMessages, elementSelectionKeys } from '@aloudata/ink-core';\n\nexport function EdgeWrapper<EdgeType extends Edge = Edge>({\n id,\n edgesFocusable,\n edgesUpdatable,\n elementsSelectable,\n onClick,\n onDoubleClick,\n onContextMenu,\n onMouseEnter,\n onMouseMove,\n onMouseLeave,\n edgeUpdaterRadius,\n onEdgeUpdate,\n onEdgeUpdateStart,\n onEdgeUpdateEnd,\n rfId,\n edgeTypes,\n noPanClassName,\n onError,\n disableKeyboardA11y,\n}: EdgeWrapperProps<EdgeType>): JSX.Element | null {\n let edge = useStore((s) => s.edgeLookup.get(id)!) as EdgeType;\n const defaultEdgeOptions = useStore((s) => s.defaultEdgeOptions);\n edge = defaultEdgeOptions ? { ...defaultEdgeOptions, ...edge } : edge;\n\n let edgeType = edge.type || 'default';\n let EdgeComponent = edgeTypes?.[edgeType] || builtinEdgeTypes[edgeType];\n\n if (EdgeComponent === undefined) {\n onError?.('011', errorMessages['error011'](edgeType));\n edgeType = 'default';\n EdgeComponent = builtinEdgeTypes.default;\n }\n\n const isFocusable = !!(\n edge.focusable ||\n (edgesFocusable && typeof edge.focusable === 'undefined')\n );\n const isUpdatable =\n typeof onEdgeUpdate !== 'undefined' &&\n (edge.updatable ||\n (edgesUpdatable && typeof edge.updatable === 'undefined'));\n const isSelectable = !!(\n edge.selectable ||\n (elementsSelectable && typeof edge.selectable === 'undefined')\n );\n\n const edgeRef = useRef<SVGGElement>(null);\n const [updateHover, setUpdateHover] = useState<boolean>(false);\n const [updating, setUpdating] = useState<boolean>(false);\n const store = useStoreApi();\n\n const {\n zIndex,\n sourceX,\n sourceY,\n targetX,\n targetY,\n sourcePosition,\n targetPosition,\n } = useStore(\n useCallback(\n (store) => {\n const sourceNode = store.nodeLookup.get(edge.source);\n const targetNode = store.nodeLookup.get(edge.target);\n\n if (!sourceNode || !targetNode) {\n return {\n zIndex: edge.zIndex,\n ...nullPosition,\n };\n }\n\n const edgePosition = getEdgePosition({\n id,\n sourceNode,\n targetNode,\n sourceHandle: edge.sourceHandle || null,\n targetHandle: edge.targetHandle || null,\n connectionMode: store.connectionMode,\n onError,\n });\n\n const zIndex = getElevatedEdgeZIndex({\n selected: edge.selected,\n zIndex: edge.zIndex,\n sourceNode,\n targetNode,\n elevateOnSelect: store.elevateEdgesOnSelect,\n });\n\n return {\n zIndex,\n ...(edgePosition || nullPosition),\n };\n },\n [\n edge.source,\n edge.target,\n edge.sourceHandle,\n edge.targetHandle,\n edge.selected,\n edge.zIndex,\n ],\n ),\n shallow,\n );\n\n const markerStartUrl = useMemo(\n () =>\n edge.markerStart\n ? `url('#${getMarkerId(edge.markerStart, rfId)}')`\n : undefined,\n [edge.markerStart, rfId],\n );\n\n const markerEndUrl = useMemo(\n () =>\n edge.markerEnd\n ? `url('#${getMarkerId(edge.markerEnd, rfId)}')`\n : undefined,\n [edge.markerEnd, rfId],\n );\n\n if (\n edge.hidden ||\n sourceX === null ||\n sourceY === null ||\n targetX === null ||\n targetY === null\n ) {\n return null;\n }\n\n const onEdgeClick = (\n event: React.MouseEvent<SVGGElement, MouseEvent>,\n ): void => {\n const { addSelectedEdges, unselectNodesAndEdges, multiSelectionActive } =\n store.getState();\n\n if (isSelectable) {\n store.setState({ nodesSelectionActive: false });\n\n if (edge.selected && multiSelectionActive) {\n unselectNodesAndEdges({ nodes: [], edges: [edge] });\n edgeRef.current?.blur();\n } else {\n addSelectedEdges([id]);\n }\n }\n\n if (onClick) {\n onClick(event, edge);\n }\n };\n\n const onEdgeDoubleClick = onDoubleClick\n ? (event: React.MouseEvent) => {\n onDoubleClick(event, { ...edge });\n }\n : undefined;\n const onEdgeContextMenu = onContextMenu\n ? (event: React.MouseEvent) => {\n onContextMenu(event, { ...edge });\n }\n : undefined;\n const onEdgeMouseEnter = onMouseEnter\n ? (event: React.MouseEvent) => {\n onMouseEnter(event, { ...edge });\n }\n : undefined;\n const onEdgeMouseMove = onMouseMove\n ? (event: React.MouseEvent) => {\n onMouseMove(event, { ...edge });\n }\n : undefined;\n const onEdgeMouseLeave = onMouseLeave\n ? (event: React.MouseEvent) => {\n onMouseLeave(event, { ...edge });\n }\n : undefined;\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (\n !disableKeyboardA11y &&\n elementSelectionKeys.includes(event.key) &&\n isSelectable\n ) {\n const { unselectNodesAndEdges, addSelectedEdges } = store.getState();\n const unselect = event.key === 'Escape';\n\n if (unselect) {\n edgeRef.current?.blur();\n unselectNodesAndEdges({ edges: [edge] });\n } else {\n addSelectedEdges([id]);\n }\n }\n };\n\n return (\n <svg style={{ zIndex }}>\n <g\n className={cc([\n 'ink-flow__edge',\n `ink-flow__edge-${edgeType}`,\n edge.className,\n noPanClassName,\n {\n selected: edge.selected,\n animated: edge.animated,\n inactive: !isSelectable && !onClick,\n updating: updateHover,\n selectable: isSelectable,\n },\n ])}\n onClick={onEdgeClick}\n onDoubleClick={onEdgeDoubleClick}\n onContextMenu={onEdgeContextMenu}\n onMouseEnter={onEdgeMouseEnter}\n onMouseMove={onEdgeMouseMove}\n onMouseLeave={onEdgeMouseLeave}\n onKeyDown={isFocusable ? onKeyDown : undefined}\n tabIndex={isFocusable ? 0 : undefined}\n role={isFocusable ? 'button' : 'img'}\n data-id={id}\n data-testid={`rf__edge-${id}`}\n aria-label={\n edge.ariaLabel === null\n ? undefined\n : edge.ariaLabel || `Edge from ${edge.source} to ${edge.target}`\n }\n aria-describedby={\n isFocusable ? `${ARIA_EDGE_DESC_KEY}-${rfId}` : undefined\n }\n ref={edgeRef}\n >\n {!updating && (\n <EdgeComponent\n id={id}\n source={edge.source}\n target={edge.target}\n type={edge.type}\n selected={edge.selected}\n animated={edge.animated}\n label={edge.label}\n labelStyle={edge.labelStyle}\n labelShowBg={edge.labelShowBg}\n labelBgStyle={edge.labelBgStyle}\n labelBgPadding={edge.labelBgPadding}\n labelBgBorderRadius={edge.labelBgBorderRadius}\n sourceX={sourceX}\n sourceY={sourceY}\n targetX={targetX}\n targetY={targetY}\n sourcePosition={sourcePosition}\n targetPosition={targetPosition}\n data={edge.data}\n style={edge.style}\n sourceHandleId={edge.sourceHandle}\n targetHandleId={edge.targetHandle}\n markerStart={markerStartUrl}\n markerEnd={markerEndUrl}\n pathOptions={'pathOptions' in edge ? edge.pathOptions : undefined}\n interactionWidth={edge.interactionWidth}\n />\n )}\n {isUpdatable && (\n <EdgeUpdateAnchors<EdgeType>\n edge={edge}\n isUpdatable={isUpdatable}\n edgeUpdaterRadius={edgeUpdaterRadius}\n onEdgeUpdate={onEdgeUpdate}\n onEdgeUpdateStart={onEdgeUpdateStart}\n onEdgeUpdateEnd={onEdgeUpdateEnd}\n sourceX={sourceX}\n sourceY={sourceY}\n targetX={targetX}\n targetY={targetY}\n sourcePosition={sourcePosition}\n targetPosition={targetPosition}\n setUpdateHover={setUpdateHover}\n setUpdating={setUpdating}\n sourceHandleId={edge.sourceHandle}\n targetHandleId={edge.targetHandle}\n />\n )}\n </g>\n </svg>\n );\n}\n","import { memo, ReactNode } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport MarkerDefinitions from './MarkerDefinitions';\nimport { GraphViewProps } from '../GraphView';\nimport type { Edge, InkFlowState, Node } from '../../types';\nimport { useStore } from '../../hooks';\nimport { useVisibleEdgeIds } from '../../hooks/useVisibleEdgeIds';\nimport { EdgeWrapper } from '../../components/EdgeWrapper';\n\ntype EdgeRendererProps<EdgeType extends Edge = Edge> = Pick<\n GraphViewProps<Node, EdgeType>,\n // | 'onEdgeClick'\n // | 'onEdgeDoubleClick'\n | 'rfId'\n // | 'onlyRenderVisibleElements'\n | 'onEdgeUpdate'\n // | 'onEdgeContextMenu'\n // | 'onEdgeMouseEnter'\n // | 'onEdgeMouseMove'\n // | 'onEdgeMouseLeave'\n // | 'onEdgeUpdateStart'\n // | 'onEdgeUpdateEnd'\n // | 'edgeUpdaterRadius'\n | 'noPanClassName'\n> & {\n children?: ReactNode;\n};\n\nconst selector = (s: InkFlowState) => ({\n width: s.width,\n height: s.height,\n edgesFocusable: s.edgesFocusable,\n edgesUpdatable: s.edgesUpdatable,\n elementsSelectable: s.elementsSelectable,\n connectionMode: s.connectionMode,\n onError: s.onError,\n});\n\nfunction EdgeRendererComponent<EdgeType extends Edge = Edge>({\n // defaultMarkerColor,\n // onlyRenderVisibleElements,\n rfId,\n noPanClassName,\n onEdgeUpdate,\n}: // edgeTypes,\n\n// onEdgeContextMenu,\n// onEdgeMouseEnter,\n// onEdgeMouseMove,\n// onEdgeMouseLeave,\n// onEdgeClick,\n// edgeUpdaterRadius,\n// onEdgeDoubleClick,\n// onEdgeUpdateStart,\n// onEdgeUpdateEnd,\n// disableKeyboardA11y,\nEdgeRendererProps<EdgeType>) {\n const { edgesFocusable, edgesUpdatable, elementsSelectable, onError } =\n useStore(selector, shallow);\n const edgeIds = useVisibleEdgeIds(false); // TODO onlyRenderVisibleElements\n\n return (\n <div className=\"ink-flow__edges\">\n <MarkerDefinitions defaultColor={''} rfId={rfId} />\n\n {edgeIds.map((id) => {\n return (\n <EdgeWrapper<EdgeType>\n key={id}\n id={id}\n edgesFocusable={edgesFocusable}\n edgesUpdatable={edgesUpdatable}\n elementsSelectable={elementsSelectable}\n noPanClassName={noPanClassName}\n onEdgeUpdate={onEdgeUpdate}\n // onContextMenu={onEdgeContextMenu}\n // onMouseEnter={onEdgeMouseEnter}\n // onMouseMove={onEdgeMouseMove}\n // onMouseLeave={onEdgeMouseLeave}\n // onClick={onEdgeClick}\n // edgeUpdaterRadius={edgeUpdaterRadius}\n // onDoubleClick={onEdgeDoubleClick}\n // onEdgeUpdateStart={onEdgeUpdateStart}\n // onEdgeUpdateEnd={onEdgeUpdateEnd}\n rfId={rfId}\n onError={onError}\n // edgeTypes={edgeTypes}\n // disableKeyboardA11y={disableKeyboardA11y}\n />\n );\n })}\n </div>\n );\n}\n\nEdgeRendererComponent.displayName = 'EdgeRenderer';\n\nexport const EdgeRenderer = memo(\n EdgeRendererComponent,\n) as typeof EdgeRendererComponent;\n","import { useCallback } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore } from './useStore';\nimport { InkFlowState } from '../types';\nimport { isEdgeVisible } from '../utils/edges';\n\n/**\n * Hook for getting the visible edge ids from the store.\n *\n * @internal\n * @param onlyRenderVisible\n * @returns array with visible edge ids\n */\nexport function useVisibleEdgeIds(onlyRenderVisible: boolean): string[] {\n const edgeIds = useStore(\n useCallback(\n (s: InkFlowState) => {\n if (!onlyRenderVisible) {\n return s.edges.map((edge) => edge.id);\n }\n\n const visibleEdgeIds = [];\n\n if (s.width && s.height) {\n for (const edge of s.edges) {\n const sourceNode = s.nodeLookup.get(edge.source);\n const targetNode = s.nodeLookup.get(edge.target);\n\n if (\n sourceNode &&\n targetNode &&\n isEdgeVisible({\n sourceNode,\n targetNode,\n width: s.width,\n height: s.height,\n transform: s.transform,\n })\n ) {\n visibleEdgeIds.push(edge.id);\n }\n }\n }\n\n return visibleEdgeIds;\n },\n [onlyRenderVisible],\n ),\n shallow,\n );\n\n return edgeIds;\n}\n","import type { ReactNode } from 'react';\n\nimport type { InkFlowState } from '../../types';\nimport { useStore } from '../../hooks';\n\nconst selector = (s: InkFlowState) => {\n // console.log('yk InkFlowState', s);\n\n return `translate(${s.transform[0]}px,${s.transform[1]}px) scale(${s.transform[2]})`;\n};\n\ntype ViewportProps = {\n children: ReactNode;\n};\n\nexport function Viewport({ children }: ViewportProps) {\n const transform = useStore(selector);\n\n return (\n <div\n className=\"ink-flow__viewport xyflow__viewport ink-flow__container\"\n style={{ transform }}\n >\n {children}\n </div>\n );\n}\n","import { memo } from 'react';\n\nimport { FlowRenderer } from '../FlowRenderer';\nimport { NodeRenderer } from '../NodeRenderer';\nimport { EdgeRenderer } from '../EdgeRenderer';\nimport { Viewport } from '../Viewport';\nimport type { Edge, Node, InkFlowProps } from '../../types';\n\nexport type GraphViewProps<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n> = Omit<\n InkFlowProps<NodeType, EdgeType>,\n | 'onSelectionChange'\n | 'nodes'\n | 'edges'\n | 'onMove'\n | 'onMoveStart'\n | 'onMoveEnd'\n | 'elevateEdgesOnSelect'\n> &\n Required<\n Pick<\n InkFlowProps<NodeType, EdgeType>,\n | 'minZoom'\n | 'maxZoom'\n | 'noPanClassName'\n | 'noDragClassName'\n | 'nodeOrigin'\n | 'disableKeyboardA11y'\n >\n > & {\n rfId: string;\n };\n\nfunction GraphViewComponent<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>({\n rfId,\n minZoom,\n maxZoom,\n noPanClassName,\n noDragClassName,\n nodeOrigin,\n viewport,\n disableKeyboardA11y,\n translateExtent,\n defaultViewport,\n nodeTypes,\n elementsSelectable,\n onPaneClick,\n onPaneContextMenu,\n}: GraphViewProps<NodeType, EdgeType>) {\n return (\n <FlowRenderer<NodeType>\n minZoom={minZoom}\n maxZoom={maxZoom}\n noPanClassName={noPanClassName}\n noDragClassName={noDragClassName}\n isControlledViewport={!!viewport}\n disableKeyboardA11y={disableKeyboardA11y}\n translateExtent={translateExtent}\n defaultViewport={defaultViewport}\n elementsSelectable={elementsSelectable}\n onPaneClick={onPaneClick}\n onPaneContextMenu={onPaneContextMenu}\n >\n <Viewport>\n <EdgeRenderer<EdgeType> rfId={rfId} noPanClassName={noPanClassName} />\n {/* <ConnectionLineWrapper /> */}\n <div className=\"ink-flow__edgelabel-renderer\" />\n <NodeRenderer<NodeType>\n rfId={rfId}\n nodeTypes={nodeTypes}\n nodeOrigin={nodeOrigin}\n noDragClassName={noDragClassName}\n noPanClassName={noPanClassName}\n disableKeyboardA11y={false}\n />\n <div className=\"ink-flow__viewport-portal\" />\n </Viewport>\n </FlowRenderer>\n );\n}\n\nGraphViewComponent.displayName = 'GraphView';\n\nexport const GraphView = memo(GraphViewComponent) as typeof GraphViewComponent;\n","import { Transform, infiniteExtent, ConnectionMode } from '@aloudata/ink-core';\nimport type { Edge, InternalNode, Node, InkFlowStore } from '../types';\nimport { adoptUserNodes, updateConnectionLookup } from '../utils/store';\n\nconst getInitialState = ({\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n}: {\n nodes?: Node[];\n edges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n width?: number;\n height?: number;\n fitView?: boolean;\n} = {}): InkFlowStore => {\n const nodeLookup = new Map<string, InternalNode>();\n const parentLookup = new Map();\n const connectionLookup = new Map();\n const edgeLookup = new Map();\n const storeEdges = defaultEdges ?? edges ?? [];\n const storeNodes = defaultNodes ?? nodes ?? [];\n\n updateConnectionLookup(connectionLookup, edgeLookup, storeEdges);\n adoptUserNodes(storeNodes, nodeLookup, parentLookup, {\n nodeOrigin: [0, 0],\n elevateNodesOnSelect: false,\n });\n\n let transform: Transform = [0, 0, 1];\n\n // if (fitView && width && height) {\n // // @todo users nodeOrigin should be used here\n // const bounds = getInternalNodesBounds(nodeLookup, {\n // nodeOrigin: [0, 0],\n // filter: (node) =>\n // !!(\n // (node.width || node.initialWidth) &&\n // (node.height || node.initialHeight)\n // ),\n // });\n // const { x, y, zoom } = getViewportForBounds(\n // bounds,\n // width,\n // height,\n // 0.5,\n // 2,\n // 0.1,\n // );\n // transform = [x, y, zoom];\n // }\n\n return {\n rfId: '1',\n width: 0,\n height: 0,\n transform,\n nodes: storeNodes,\n nodeLookup,\n parentLookup,\n edges: storeEdges,\n edgeLookup,\n connectionLookup,\n onNodesChange: null,\n onEdgesChange: null,\n hasDefaultNodes: defaultNodes !== undefined,\n hasDefaultEdges: defaultEdges !== undefined,\n panZoom: null,\n minZoom: 0.5,\n maxZoom: 2,\n translateExtent: infiniteExtent,\n nodeExtent: infiniteExtent,\n nodesSelectionActive: false,\n userSelectionActive: false,\n userSelectionRect: null,\n connectionPosition: { x: 0, y: 0 },\n connectionStatus: null,\n connectionMode: ConnectionMode.Strict,\n domNode: null,\n paneDragging: false,\n noPanClassName: 'nopan',\n nodeOrigin: [0, 0],\n nodeDragThreshold: 1,\n\n snapGrid: [15, 15],\n snapToGrid: false,\n\n nodesDraggable: true,\n nodesConnectable: true,\n nodesFocusable: true,\n edgesFocusable: true,\n edgesUpdatable: true,\n elementsSelectable: true,\n elevateNodesOnSelect: true,\n elevateEdgesOnSelect: false,\n fitViewOnInit: false,\n fitViewDone: false,\n fitViewOnInitOptions: undefined,\n selectNodesOnDrag: true,\n\n multiSelectionActive: false,\n\n connectionStartHandle: null,\n connectionEndHandle: null,\n connectionClickStartHandle: null,\n connectOnClick: true,\n\n ariaLiveMessage: '',\n autoPanOnConnect: true,\n autoPanOnNodeDrag: true,\n connectionRadius: 20,\n onError: undefined,\n isValidConnection: undefined,\n onSelectionChangeHandlers: [],\n\n lib: 'react',\n debug: false,\n };\n};\n\nexport default getInitialState;\n","import { createWithEqualityFn } from 'zustand/traditional';\n\nimport {\n applyEdgeChanges,\n applyNodeChanges,\n createSelectionChange,\n getSelectionChanges,\n} from '../utils/changes';\nimport getInitialState from './initialState';\nimport type {\n Node,\n Edge,\n InkFlowState,\n FitViewOptions,\n UnselectNodesAndEdgesParams,\n} from '../types';\nimport {\n adoptUserNodes,\n handleExpandParent,\n updateAbsolutePositions,\n updateConnectionLookup,\n updateNodeInternals as updateNodeInternalsSystem,\n} from '../utils/store';\nimport { ParentExpandChild } from '../types/utils/types';\nimport { clampPosition } from '../utils/general';\nimport { fitView as fitViewSystem } from '../utils/graph';\nimport { panBy as panBySystem } from '../utils/store';\nimport {\n NodeChange,\n NodeSelectionChange,\n EdgeSelectionChange,\n} from '@aloudata/ink-core';\n\nconst createStore = ({\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n}: {\n nodes?: Node[];\n edges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n width?: number;\n height?: number;\n fitView?: boolean;\n}) =>\n createWithEqualityFn<InkFlowState>(\n (set, get) => ({\n ...getInitialState({\n nodes,\n edges,\n width,\n height,\n fitView,\n defaultNodes,\n defaultEdges,\n }),\n setNodes: (nodes: Node[]) => {\n const { nodeLookup, parentLookup, nodeOrigin, elevateNodesOnSelect } =\n get();\n // setNodes() is called exclusively in response to user actions:\n // - either when the `<InkFlow nodes>` prop is updated in the controlled InkFlow setup,\n // - or when the user calls something like `InkFlowInstance.setNodes()` in an uncontrolled InkFlow setup.\n //\n // When this happens, we take the note objects passed by the user and extend them with fields\n // relevant for internal Ink Flow operations.\n adoptUserNodes(nodes, nodeLookup, parentLookup, {\n nodeOrigin,\n elevateNodesOnSelect,\n checkEquality: true,\n });\n\n set({ nodes });\n },\n setEdges: (edges: Edge[]) => {\n const { connectionLookup, edgeLookup } = get();\n\n updateConnectionLookup(connectionLookup, edgeLookup, edges);\n\n set({ edges });\n },\n setDefaultNodesAndEdges: (nodes?: Node[], edges?: Edge[]) => {\n if (nodes) {\n const { setNodes } = get();\n setNodes(nodes);\n set({ hasDefaultNodes: true });\n }\n if (edges) {\n const { setEdges } = get();\n setEdges(edges);\n set({ hasDefaultEdges: true });\n }\n },\n // Every node gets registerd at a ResizeObserver. Whenever a node\n // changes its dimensions, this function is called to measure the\n // new dimensions and update the nodes.\n updateNodeInternals: (updates) => {\n const {\n triggerNodeChanges,\n fitView,\n nodeLookup,\n parentLookup,\n fitViewOnInit,\n fitViewDone,\n fitViewOnInitOptions,\n domNode,\n nodeOrigin,\n debug,\n } = get();\n\n const { changes, updatedInternals } = updateNodeInternalsSystem(\n updates,\n nodeLookup,\n parentLookup,\n domNode,\n nodeOrigin,\n );\n\n if (!updatedInternals) {\n return;\n }\n\n updateAbsolutePositions(nodeLookup, { nodeOrigin });\n\n // we call fitView once initially after all dimensions are set\n let nextFitViewDone = fitViewDone;\n if (!fitViewDone && fitViewOnInit) {\n nextFitViewDone = fitView({\n ...fitViewOnInitOptions,\n nodes: fitViewOnInitOptions?.nodes,\n });\n }\n\n // here we are cirmumventing the onNodesChange handler\n // in order to be able to display nodes even if the user\n // has not provided an onNodesChange handler.\n // Nodes are only rendered if they have a width and height\n // attribute which they get from this handler.\n set({ fitViewDone: nextFitViewDone });\n\n if (changes?.length > 0) {\n if (debug) {\n console.log('Ink Flow: trigger node changes', changes);\n }\n triggerNodeChanges?.(changes);\n }\n },\n updateNodePositions: (nodeDragItems, dragging = false) => {\n const parentExpandChildren: ParentExpandChild[] = [];\n const changes = [];\n\n for (const [id, dragItem] of nodeDragItems) {\n // @todo add expandParent to drag item so that we can get rid of the look up here\n const change: NodeChange = {\n id,\n type: 'position',\n position: dragItem.position,\n dragging,\n };\n\n if (dragItem?.expandParent && dragItem?.parentId && change.position) {\n parentExpandChildren.push({\n id,\n parentId: dragItem.parentId,\n rect: {\n ...dragItem.internals.positionAbsolute,\n width: dragItem.measured.width!,\n height: dragItem.measured.height!,\n },\n });\n\n change.position.x = Math.max(0, change.position.x);\n change.position.y = Math.max(0, change.position.y);\n }\n\n changes.push(change);\n }\n\n if (parentExpandChildren.length > 0) {\n const { nodeLookup, parentLookup } = get();\n const parentExpandChanges = handleExpandParent(\n parentExpandChildren,\n nodeLookup,\n parentLookup,\n );\n changes.push(...parentExpandChanges);\n }\n\n get().triggerNodeChanges(changes);\n },\n triggerNodeChanges: (changes) => {\n const { onNodesChange, setNodes, nodes, hasDefaultNodes, debug } =\n get();\n\n if (changes?.length) {\n if (hasDefaultNodes) {\n const updatedNodes = applyNodeChanges(changes, nodes);\n setNodes(updatedNodes);\n }\n\n if (debug) {\n console.log('Ink Flow: trigger node changes', changes);\n }\n\n onNodesChange?.(changes);\n }\n },\n triggerEdgeChanges: (changes) => {\n const { onEdgesChange, setEdges, edges, hasDefaultEdges, debug } =\n get();\n\n if (changes?.length) {\n if (hasDefaultEdges) {\n const updatedEdges = applyEdgeChanges(changes, edges);\n setEdges(updatedEdges);\n }\n\n if (debug) {\n console.log('Ink Flow: trigger edge changes', changes);\n }\n\n onEdgesChange?.(changes);\n }\n },\n addSelectedNodes: (selectedNodeIds) => {\n const {\n multiSelectionActive,\n edgeLookup,\n nodeLookup,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = get();\n\n if (multiSelectionActive) {\n const nodeChanges = selectedNodeIds.map((nodeId) =>\n createSelectionChange(nodeId, true),\n );\n triggerNodeChanges(nodeChanges as NodeSelectionChange[]);\n return;\n }\n\n triggerNodeChanges(\n getSelectionChanges(nodeLookup, new Set([...selectedNodeIds]), true),\n );\n triggerEdgeChanges(getSelectionChanges(edgeLookup));\n },\n addSelectedEdges: (selectedEdgeIds) => {\n const {\n multiSelectionActive,\n edgeLookup,\n nodeLookup,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = get();\n\n if (multiSelectionActive) {\n const changedEdges = selectedEdgeIds.map((edgeId) =>\n createSelectionChange(edgeId, true),\n );\n triggerEdgeChanges(changedEdges as EdgeSelectionChange[]);\n return;\n }\n\n triggerEdgeChanges(\n getSelectionChanges(edgeLookup, new Set([...selectedEdgeIds])),\n );\n triggerNodeChanges(getSelectionChanges(nodeLookup, new Set(), true));\n },\n unselectNodesAndEdges: ({\n nodes,\n edges,\n }: UnselectNodesAndEdgesParams = {}) => {\n const {\n edges: storeEdges,\n nodes: storeNodes,\n triggerNodeChanges,\n triggerEdgeChanges,\n } = get();\n const nodesToUnselect = nodes ? nodes : storeNodes;\n const edgesToUnselect = edges ? edges : storeEdges;\n\n const nodeChanges = nodesToUnselect.map((n) => {\n n.selected = false;\n return createSelectionChange(n.id, false);\n });\n const edgeChanges = edgesToUnselect.map((edge) =>\n createSelectionChange(edge.id, false),\n );\n\n triggerNodeChanges(nodeChanges as NodeSelectionChange[]);\n triggerEdgeChanges(edgeChanges as EdgeSelectionChange[]);\n },\n setMinZoom: (minZoom) => {\n const { panZoom, maxZoom } = get();\n panZoom?.setScaleExtent([minZoom, maxZoom]);\n\n set({ minZoom });\n },\n setMaxZoom: (maxZoom) => {\n const { panZoom, minZoom } = get();\n panZoom?.setScaleExtent([minZoom, maxZoom]);\n\n set({ maxZoom });\n },\n setTranslateExtent: (translateExtent) => {\n get().panZoom?.setTranslateExtent(translateExtent);\n\n set({ translateExtent });\n },\n resetSelectedElements: () => {\n const { edges, nodes, triggerNodeChanges, triggerEdgeChanges } = get();\n\n const nodeChanges = nodes.reduce<NodeSelectionChange[]>(\n (res, node) =>\n node.selected\n ? [\n ...res,\n createSelectionChange(node.id, false) as NodeSelectionChange,\n ]\n : res,\n [],\n );\n const edgeChanges = edges.reduce<EdgeSelectionChange[]>(\n (res, edge) =>\n edge.selected\n ? [\n ...res,\n createSelectionChange(edge.id, false) as EdgeSelectionChange,\n ]\n : res,\n [],\n );\n\n triggerNodeChanges(nodeChanges);\n triggerEdgeChanges(edgeChanges);\n },\n setNodeExtent: (nodeExtent) => {\n const { nodeLookup } = get();\n\n for (const [, node] of nodeLookup) {\n const positionAbsolute = clampPosition(node.position, nodeExtent);\n\n nodeLookup.set(node.id, {\n ...node,\n internals: {\n ...node.internals,\n positionAbsolute,\n },\n });\n }\n\n set({\n nodeExtent,\n });\n },\n panBy: (delta): boolean => {\n const { transform, width, height, panZoom, translateExtent } = get();\n return panBySystem({\n delta,\n panZoom,\n transform,\n translateExtent,\n width,\n height,\n });\n },\n fitView: (options?: FitViewOptions): boolean => {\n const {\n panZoom,\n width,\n height,\n minZoom,\n maxZoom,\n nodeOrigin,\n nodeLookup,\n } = get();\n\n if (!panZoom) {\n return false;\n }\n\n return fitViewSystem(\n {\n nodeLookup,\n width,\n height,\n panZoom,\n minZoom,\n maxZoom,\n nodeOrigin,\n },\n options,\n );\n },\n cancelConnection: () =>\n set({\n connectionStatus: null,\n connectionStartHandle: null,\n connectionEndHandle: null,\n }),\n updateConnection: (params) => {\n const { connectionPosition } = get();\n\n const currentConnection = {\n ...params,\n connectionPosition: params.connectionPosition ?? connectionPosition,\n };\n\n set(currentConnection);\n },\n\n reset: () => set({ ...getInitialState() }),\n }),\n Object.is,\n );\n\nexport { createStore };\n","import { useState, type ReactNode } from 'react';\n\nimport { Provider } from '../../contexts/StoreContext';\nimport { createStore } from '../../store';\nimport type { Node, Edge } from '../../types';\nimport { BatchProvider } from '../BatchProvider';\n\nexport type InkFlowProviderProps = {\n initialNodes?: Node[];\n initialEdges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n initialWidth?: number;\n initialHeight?: number;\n fitView?: boolean;\n children: ReactNode;\n};\n\nexport function InkFlowProvider({\n initialNodes: nodes,\n initialEdges: edges,\n defaultNodes,\n defaultEdges,\n initialWidth: width,\n initialHeight: height,\n fitView,\n children,\n}: InkFlowProviderProps) {\n const [store] = useState(() =>\n createStore({\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n }),\n );\n\n return (\n <Provider value={store}>\n <BatchProvider>{children}</BatchProvider>\n </Provider>\n );\n}\n","import { useContext, type ReactNode } from 'react';\n\nimport StoreContext from '../../contexts/StoreContext';\nimport type { Node, Edge } from '../../types';\nimport { InkFlowProvider } from '../../components/InkFlowProvider';\n\nexport function Wrapper({\n children,\n nodes,\n edges,\n defaultNodes,\n defaultEdges,\n width,\n height,\n fitView,\n}: {\n children: ReactNode;\n nodes?: Node[];\n edges?: Edge[];\n defaultNodes?: Node[];\n defaultEdges?: Edge[];\n width?: number;\n height?: number;\n fitView?: boolean;\n}) {\n const isWrapped = useContext(StoreContext);\n\n if (isWrapped) {\n return <>{children}</>;\n }\n\n return (\n <InkFlowProvider\n initialNodes={nodes}\n initialEdges={edges}\n defaultNodes={defaultNodes}\n defaultEdges={defaultEdges}\n initialWidth={width}\n initialHeight={height}\n fitView={fitView}\n >\n {children}\n </InkFlowProvider>\n );\n}\n","import { NodeOrigin, Viewport } from '@aloudata/ink-core';\n\nexport const defaultNodeOrigin: NodeOrigin = [0, 0];\nexport const defaultViewport: Viewport = { x: 0, y: 0, zoom: 1 };\n","/*\n * This component helps us to update the store with the vlues coming from the user.\n * We distinguish between values we can update directly with `useDirectStoreUpdater` (like `snapGrid`)\n * and values that have a dedicated setter function in the store (like `setNodes`).\n */\nimport { useEffect, useRef } from 'react';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\nimport type {\n Node,\n Edge,\n InkFlowState,\n InkFlowProps,\n FitViewOptions,\n} from '../../types';\nimport { defaultNodeOrigin } from '../../container/InkFlow/init-values';\nimport { infiniteExtent, CoordinateExtent } from '@aloudata/ink-core';\n\n// these fields exist in the global store and we need to keep them up to date\nconst InkFlowFieldsToTrack = [\n 'nodes',\n 'edges',\n 'defaultNodes',\n 'defaultEdges',\n // 'onConnect',\n // 'onConnectStart',\n // 'onConnectEnd',\n // 'onClickConnectStart',\n // 'onClickConnectEnd',\n 'nodesDraggable',\n // 'nodesConnectable',\n // 'nodesFocusable',\n // 'edgesFocusable',\n // 'edgesUpdatable',\n // 'elevateNodesOnSelect',\n // 'elevateEdgesOnSelect',\n 'minZoom',\n 'maxZoom',\n 'nodeExtent',\n 'onNodesChange',\n 'onEdgesChange',\n 'elementsSelectable',\n // 'connectionMode',\n // 'snapGrid',\n // 'snapToGrid',\n 'translateExtent',\n // 'connectOnClick',\n 'defaultEdgeOptions',\n 'fitView',\n 'fitViewOptions',\n // 'onNodesDelete',\n // 'onEdgesDelete',\n // 'onDelete',\n // 'onNodeDrag',\n // 'onNodeDragStart',\n // 'onNodeDragStop',\n // 'onSelectionDrag',\n // 'onSelectionDragStart',\n // 'onSelectionDragStop',\n // 'onMoveStart',\n // 'onMove',\n // 'onMoveEnd',\n // 'noPanClassName',\n // 'nodeOrigin',\n // 'autoPanOnConnect',\n // 'autoPanOnNodeDrag',\n // 'onError',\n // 'connectionRadius',\n // 'isValidConnection',\n // 'selectNodesOnDrag',\n // 'nodeDragThreshold',\n // 'onBeforeDelete',\n // 'debug',\n] as const;\n\ntype InkFlowFieldsToTrack = typeof InkFlowFieldsToTrack[number];\ntype StoreUpdaterProps<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n> = Pick<InkFlowProps<NodeType, EdgeType>, InkFlowFieldsToTrack> & {\n rfId: string;\n};\n\n// rfId doesn't exist in InkFlowProps, but it's one of the fields we want to update\nconst fieldsToTrack = [...InkFlowFieldsToTrack, 'rfId'] as const;\n\nconst selector = (s: InkFlowState) => ({\n setNodes: s.setNodes,\n setEdges: s.setEdges,\n setMinZoom: s.setMinZoom,\n setMaxZoom: s.setMaxZoom,\n setTranslateExtent: s.setTranslateExtent,\n setNodeExtent: s.setNodeExtent,\n reset: s.reset,\n setDefaultNodesAndEdges: s.setDefaultNodesAndEdges,\n});\n\nconst initPrevValues = {\n // these are values that are also passed directly to other components\n // than the StoreUpdater. We can reduce the number of setStore calls\n // by setting the same values here as prev fields.\n translateExtent: infiniteExtent,\n nodeOrigin: defaultNodeOrigin,\n minZoom: 0.5,\n maxZoom: 2,\n elementsSelectable: true,\n noPanClassName: 'nopan',\n rfId: '1',\n};\n\nexport function StoreUpdater<\n NodeType extends Node = Node,\n EdgeType extends Edge = Edge,\n>(props: StoreUpdaterProps<NodeType, EdgeType>) {\n const {\n setNodes,\n setEdges,\n setMinZoom,\n setMaxZoom,\n setTranslateExtent,\n setNodeExtent,\n reset,\n setDefaultNodesAndEdges,\n } = useStore(selector, shallow);\n const store = useStoreApi<NodeType, EdgeType>();\n\n useEffect(() => {\n setDefaultNodesAndEdges(props.defaultNodes, props.defaultEdges);\n\n return () => {\n // when we reset the store we also need to reset the previous fields\n previousFields.current = initPrevValues;\n reset();\n };\n }, []);\n\n const previousFields =\n useRef<Partial<StoreUpdaterProps<NodeType, EdgeType>>>(initPrevValues);\n\n useEffect(\n () => {\n for (const fieldName of fieldsToTrack) {\n const fieldValue = props[fieldName];\n const previousFieldValue = previousFields.current[fieldName];\n\n if (fieldValue === previousFieldValue) continue;\n if (typeof props[fieldName] === 'undefined') continue;\n // Custom handling with dedicated setters for some fields\n if (fieldName === 'nodes') setNodes(fieldValue as Node[]);\n else if (fieldName === 'edges') setEdges(fieldValue as Edge[]);\n else if (fieldName === 'minZoom') setMinZoom(fieldValue as number);\n else if (fieldName === 'maxZoom') setMaxZoom(fieldValue as number);\n else if (fieldName === 'translateExtent')\n setTranslateExtent(fieldValue as CoordinateExtent);\n else if (fieldName === 'nodeExtent')\n setNodeExtent(fieldValue as CoordinateExtent);\n // Renamed fields\n else if (fieldName === 'fitView')\n store.setState({ fitViewOnInit: fieldValue as boolean });\n else if (fieldName === 'fitViewOptions')\n store.setState({\n fitViewOnInitOptions: fieldValue as FitViewOptions,\n });\n // General case\n else store.setState({ [fieldName]: fieldValue });\n }\n\n previousFields.current = props;\n },\n // Only re-run the effect if one of the fields we track changes\n fieldsToTrack.map((fieldName) => props[fieldName]),\n );\n\n return null;\n}\n","import { ForwardedRef, type CSSProperties } from 'react';\nimport cls from 'classnames';\nimport type { Edge, Node, InkFlowProps } from '../../types';\nimport { GraphView } from '../GraphView';\nimport { Wrapper } from './Wrapper';\nimport { StoreUpdater } from '../../components/StoreUpdater';\nimport { fixedForwardRef } from '../../utils/general';\nimport { defaultViewport as initViewport } from './init-values';\nimport { infiniteExtent } from '@aloudata/ink-core';\n\nconst wrapperStyle: CSSProperties = {\n width: '100%',\n height: '100%',\n overflow: 'hidden',\n position: 'relative',\n zIndex: 0,\n};\n\nfunction InkFlow<NodeType extends Node = Node, EdgeType extends Edge = Edge>(\n {\n nodes,\n edges,\n translateExtent = infiniteExtent,\n defaultViewport = initViewport,\n minZoom = 0.5,\n maxZoom = 2,\n nodeOrigin,\n noDragClassName,\n noPanClassName,\n disableKeyboardA11y,\n nodeTypes,\n onNodesChange,\n onEdgesChange,\n fitView,\n fitViewOptions,\n nodeExtent,\n nodesDraggable,\n children,\n id,\n width,\n height,\n onPaneClick,\n onPaneContextMenu,\n elementsSelectable = true,\n ...rest\n }: InkFlowProps<NodeType, EdgeType>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const rfId = id || '1';\n\n return (\n <div\n {...rest}\n ref={ref}\n style={{ ...wrapperStyle }}\n className={cls(['ink-flow'])}\n data-testid=\"rf__wrapper\"\n id={id}\n >\n <Wrapper\n nodes={nodes}\n edges={edges}\n width={width}\n height={height}\n fitView={fitView}\n >\n <GraphView<NodeType, EdgeType>\n rfId={rfId}\n nodeTypes={nodeTypes}\n minZoom={minZoom}\n maxZoom={maxZoom}\n nodeOrigin={nodeOrigin}\n noDragClassName={noDragClassName}\n noPanClassName={noPanClassName}\n disableKeyboardA11y={disableKeyboardA11y}\n translateExtent={translateExtent}\n defaultViewport={defaultViewport}\n onPaneClick={onPaneClick}\n onPaneContextMenu={onPaneContextMenu}\n />\n <StoreUpdater<NodeType, EdgeType>\n nodes={nodes}\n edges={edges}\n rfId={rfId}\n onNodesChange={onNodesChange}\n onEdgesChange={onEdgesChange}\n fitView={fitView}\n fitViewOptions={fitViewOptions}\n nodeExtent={nodeExtent}\n nodesDraggable={nodesDraggable}\n elementsSelectable={elementsSelectable}\n />\n {children}\n </Wrapper>\n </div>\n );\n}\n\nexport default fixedForwardRef(InkFlow);\n","export function PlusIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 4.375C10.3452 4.375 10.625 4.65482 10.625 5V9.375H15C15.3452 9.375 15.625 9.65482 15.625 10C15.625 10.3452 15.3452 10.625 15 10.625H10.625V15C10.625 15.3452 10.3452 15.625 10 15.625C9.65482 15.625 9.375 15.3452 9.375 15V10.625H5C4.65482 10.625 4.375 10.3452 4.375 10C4.375 9.65482 4.65482 9.375 5 9.375H9.375V5C9.375 4.65482 9.65482 4.375 10 4.375Z\"\n fill=\"#6B7280\"\n />\n </svg>\n );\n}\n","export function MinusIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M4.375 10C4.375 9.65482 4.65482 9.375 5 9.375H15C15.3452 9.375 15.625 9.65482 15.625 10C15.625 10.3452 15.3452 10.625 15 10.625H5C4.65482 10.625 4.375 10.3452 4.375 10Z\"\n fill=\"#6B7280\"\n />\n </svg>\n );\n}\n","export function FitViewIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M10 1.875C10.3452 1.875 10.625 2.15482 10.625 2.5V3.57152C13.6929 3.86613 16.1339 6.30708 16.4285 9.375H17.5C17.8452 9.375 18.125 9.65482 18.125 10C18.125 10.3452 17.8452 10.625 17.5 10.625H16.4285C16.1339 13.6929 13.6929 16.1339 10.625 16.4285V17.5C10.625 17.8452 10.3452 18.125 10 18.125C9.65482 18.125 9.375 17.8452 9.375 17.5V16.4285C6.30708 16.1339 3.86613 13.6929 3.57152 10.625H2.5C2.15482 10.625 1.875 10.3452 1.875 10C1.875 9.65482 2.15482 9.375 2.5 9.375H3.57152C3.86613 6.30708 6.30708 3.86613 9.375 3.57152V2.5C9.375 2.15482 9.65482 1.875 10 1.875ZM4.82878 10.625H5.83333C6.17851 10.625 6.45833 10.3452 6.45833 10C6.45833 9.65482 6.17851 9.375 5.83333 9.375H4.82878C5.11304 6.99811 6.99811 5.11304 9.375 4.82878V5.83333C9.375 6.17851 9.65482 6.45833 10 6.45833C10.3452 6.45833 10.625 6.17851 10.625 5.83333V4.82878C13.0019 5.11304 14.887 6.99811 15.1712 9.375H14.1667C13.8215 9.375 13.5417 9.65482 13.5417 10C13.5417 10.3452 13.8215 10.625 14.1667 10.625H15.1712C14.887 13.0019 13.0019 14.887 10.625 15.1712V14.1667C10.625 13.8215 10.3452 13.5417 10 13.5417C9.65482 13.5417 9.375 13.8215 9.375 14.1667V15.1712C6.99811 14.887 5.11304 13.0019 4.82878 10.625Z\"\n fill=\"#6B7280\"\n />\n </svg>\n );\n}\n","export function LockIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 32\">\n <path d=\"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z\" />\n </svg>\n );\n}\n","export function UnlockIcon() {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 25 32\">\n <path d=\"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z\" />\n </svg>\n );\n}\n","import cc from 'classnames';\n\nimport type { ControlButtonProps } from './types';\n\nexport function ControlButton({\n children,\n className,\n ...rest\n}: ControlButtonProps) {\n return (\n <button\n type=\"button\"\n className={cc(['ink-flow__controls-button', className])}\n {...rest}\n >\n {children}\n </button>\n );\n}\n","import type { HTMLAttributes, ReactNode } from 'react';\nimport cc from 'classnames';\n\nimport { useStore } from '../../hooks/useStore';\nimport type { InkFlowState } from '../../types';\nimport { PanelPosition } from '@aloudata/ink-core';\n\nexport type PanelProps = HTMLAttributes<HTMLDivElement> & {\n /** Set position of the panel\n * @example 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'\n */\n position?: PanelPosition;\n children: ReactNode;\n};\n\nconst selector = (s: InkFlowState) => (s.userSelectionActive ? 'none' : 'all');\n\nexport function Panel({\n position = 'top-left',\n children,\n className,\n style,\n ...rest\n}: PanelProps) {\n const pointerEvents = useStore(selector);\n const positionClasses = `${position}`.split('-');\n\n return (\n <div\n className={cc(['ink-flow__panel', className, ...positionClasses])}\n style={{ ...style, pointerEvents }}\n {...rest}\n >\n {children}\n </div>\n );\n}\n","import { memo } from 'react';\nimport cc from 'classnames';\nimport { shallow } from 'zustand/shallow';\n\nimport { useStore, useStoreApi } from '../../hooks/useStore';\n\nimport { PlusIcon } from './Icons/Plus';\nimport { MinusIcon } from './Icons/Minus';\nimport { FitViewIcon } from './Icons/FitView';\nimport { LockIcon } from './Icons/Lock';\nimport { UnlockIcon } from './Icons/Unlock';\nimport { ControlButton } from './ControlButton';\nimport type { ControlProps } from './types';\nimport { InkFlowState } from '../../types';\nimport { useInkFlow } from '../../hooks/useInkFlow';\nimport { Panel } from '../../components/Panel';\n\nconst selector = (s: InkFlowState) => ({\n isInteractive: s.nodesDraggable || s.nodesConnectable || s.elementsSelectable,\n minZoomReached: s.transform[2] <= s.minZoom,\n maxZoomReached: s.transform[2] >= s.maxZoom,\n});\n\nfunction ControlsComponent({\n style,\n showZoom = true,\n showFitView = true,\n showInteractive = true,\n fitViewOptions,\n onZoomIn,\n onZoomOut,\n onFitView,\n onInteractiveChange,\n className,\n children,\n position = 'bottom-left',\n orientation = 'vertical',\n 'aria-label': ariaLabel = 'Ink Flow controls',\n}: ControlProps) {\n const store = useStoreApi();\n const { isInteractive, minZoomReached, maxZoomReached } = useStore(\n selector,\n shallow,\n );\n const { zoomIn, zoomOut, fitView } = useInkFlow();\n\n const onZoomInHandler = () => {\n zoomIn();\n onZoomIn?.();\n };\n\n const onZoomOutHandler = () => {\n zoomOut();\n onZoomOut?.();\n };\n\n const onFitViewHandler = () => {\n fitView(fitViewOptions);\n onFitView?.();\n };\n\n const onToggleInteractivity = () => {\n store.setState({\n nodesDraggable: !isInteractive,\n nodesConnectable: !isInteractive,\n elementsSelectable: !isInteractive,\n });\n\n onInteractiveChange?.(!isInteractive);\n };\n\n const orientationClass =\n orientation === 'horizontal' ? 'horizontal' : 'vertical';\n\n return (\n <Panel\n className={cc(['ink-flow__controls', orientationClass, className])}\n position={position}\n style={style}\n data-testid=\"rf__controls\"\n aria-label={ariaLabel}\n >\n {showFitView && (\n <ControlButton\n className=\"ink-flow__controls-fitview\"\n onClick={onFitViewHandler}\n title=\"fit view\"\n aria-label=\"fit view\"\n >\n <FitViewIcon />\n </ControlButton>\n )}\n\n {showZoom && (\n <div className=\"ink-flow__controls-zoom\">\n <ControlButton\n onClick={onZoomInHandler}\n className=\"ink-flow__controls-zoomin\"\n title=\"zoom in\"\n aria-label=\"zoom in\"\n disabled={maxZoomReached}\n >\n <PlusIcon />\n </ControlButton>\n <ControlButton\n onClick={onZoomOutHandler}\n className=\"ink-flow__controls-zoomout\"\n title=\"zoom out\"\n aria-label=\"zoom out\"\n disabled={minZoomReached}\n >\n <MinusIcon />\n </ControlButton>\n </div>\n )}\n\n {showInteractive && (\n <ControlButton\n className=\"ink-flow__controls-interactive\"\n onClick={onToggleInteractivity}\n title=\"toggle interactivity\"\n aria-label=\"toggle interactivity\"\n >\n {isInteractive ? <UnlockIcon /> : <LockIcon />}\n </ControlButton>\n )}\n {children}\n </Panel>\n );\n}\n\nControlsComponent.displayName = 'Controls';\n\nexport const Controls = memo(ControlsComponent);\n","import {\n useState,\n useCallback,\n type Dispatch,\n type SetStateAction,\n} from 'react';\nimport { applyEdgeChanges } from '../utils/changes';\nimport { Edge, OnEdgesChange } from '../types';\n\nexport function useEdgesState<EdgeType extends Edge = Edge>(\n initialEdges: EdgeType[],\n): [EdgeType[], Dispatch<SetStateAction<EdgeType[]>>, OnEdgesChange<EdgeType>] {\n const [edges, setEdges] = useState(initialEdges);\n const onEdgesChange: OnEdgesChange<EdgeType> = useCallback(\n (changes) => setEdges((eds) => applyEdgeChanges(changes, eds)),\n [],\n );\n\n return [edges, setEdges, onEdgesChange];\n}\n","import {\n useState,\n useCallback,\n type Dispatch,\n type SetStateAction,\n} from 'react';\nimport { applyNodeChanges } from '../utils/changes';\nimport { Node, OnNodesChange } from '../types';\n\nexport function useNodesState<NodeType extends Node>(\n initialNodes: NodeType[],\n): [NodeType[], Dispatch<SetStateAction<NodeType[]>>, OnNodesChange<NodeType>] {\n const [nodes, setNodes] = useState(initialNodes);\n const onNodesChange: OnNodesChange<NodeType> = useCallback(\n (changes) => setNodes((nds) => applyNodeChanges(changes, nds)),\n [],\n );\n\n return [nodes, setNodes, onNodesChange];\n}\n"],"names":["jsxRuntimeModule","exports","f","require$$0","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","reactJsxRuntime_production_min","jsx","jsxs","hasOwn","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","join","module","default","window","shimModule","is","useState","useEffect","useLayoutEffect","useDebugValue","r","getSnapshot","value","u","document","createElement","inst","useSyncExternalStoreShim_production_min","useSyncExternalStore","withSelectorModule","require$$1","t","useRef","v","useMemo","w","withSelector_production_min","useSyncExternalStoreWithSelector","hasValue","createStoreImpl","createState","state","listeners","Set","setState","partial","replace","nextState","previousState","assign","forEach","listener","getState","api","getInitialState","initialState","subscribe","add","delete","destroy","console","warn","clear","ReactExports","useSyncExternalStoreExports","identity","useStoreWithEqualityFn","selector","equalityFn","slice","getServerState","createWithEqualityFnImpl","defaultEqualityFn","createStore","useBoundStoreWithEqualityFn","o","s","y","x","_","E","N","O","j","M","S","A","I","P","z","T","C","L","B","R","D","H","V","Y","F","G","X","$","U","W","Z","K","Q","J","tt","nt","et","rt","ot","it","ut","at","ct","ft","st","lt","ht","dt","vt","pt","gt","yt","mt","wt","bt","xt","_t","Et","kt","Nt","Ot","jt","Mt","St","At","It","Pt","zt","Tt","Ct","Lt","Bt","Rt","Dt","Ht","Vt","Yt","Ft","Gt","Xt","$t","qt","Ut","Wt","Zt","Kt","Qt","Jt","StoreContext","createContext","Provider","tn","globalThis","global","self","nn","__esModule","rn","on","un","this","__data__","size","splice","pop","set","get","has","an","cn","Function","fn","sn","toStringTag","ln","hn","vn","pn","exec","keys","IE_PROTO","dn","RegExp","test","gn","yn","wn","map","bn","mn","hash","string","xn","_n","En","kn","configurable","enumerable","writable","Nn","On","jn","Mn","propertyIsEnumerable","Sn","An","In","Pn","zn","Tn","Cn","Ln","Bn","Rn","Dn","Hn","Vn","Yn","nodeType","Buffer","isBuffer","Fn","Gn","Xn","$n","qn","Un","Wn","Zn","Kn","Qn","Jn","te","ne","ee","re","oe","ie","ue","ae","ce","fe","se","le","he","de","ve","pe","ge","ye","me","we","be","process","require","types","binding","xe","isTypedArray","_e","String","Ee","constructor","ke","Ne","Oe","je","Se","Me","Ae","Ie","Pe","ze","Te","Ce","Le","Be","Re","De","He","Ve","Ye","Fe","Ge","Xe","$e","qe","Ue","We","Ze","Ke","Qe","Je","tr","nr","er","rr","or","ir","ur","ar","cr","fr","sr","lr","hr","dr","vr","pr","gr","yr","mr","wr","br","xr","_r","Er","kr","Nr","Or","jr","Mr","Sr","Ar","Ir","Pr","zr","Tr","Cr","Lr","Br","Rr","Dr","Hr","Vr","Yr","Fr","Gr","Xr","$r","qr","Ur","Wr","Zr","Kr","Qr","Jr","to","no","eo","ro","oo","io","uo","ao","co","fo","so","lo","ho","vo","po","go","yo","mo","wo","bo","xo","_o","Eo","ko","No","Oo","jo","Mo","So","Ao","Io","Po","zo","To","Co","Lo","Bo","Ro","Do","Ho","Vo","Yo","Fo","Go","Xo","$o","qo","Uo","Wo","Zo","Ko","Qo","Jo","ti","ni","ei","ri","oi","ii","ui","ai","ci","fi","si","li","hi","di","vi","pi","gi","yi","mi","wi","bi","xi","_i","Ei","ki","Ni","Oi","ji","Mi","Si","Ai","Ii","Pi","zi","Ti","Ci","Li","Bi","Ri","Di","Hi","Vi","Yi","Fi","Gi","Xi","$i","qi","Ui","Wi","Zi","Ki","Qi","Ji","tu","nu","eu","ru","ou","iu","uu","au","cu","fu","su","lu","hu","du","vu","pu","gu","yu","mu","wu","bu","xu","_u","Eu","ku","Nu","Ou","ju","Mu","Su","Au","Iu","Pu","zu","Tu","Cu","Lu","Bu","Ru","Du","Hu","Vu","Yu","Fu","Gu","Xu","$u","qu","Uu","Wu","Zu","Ku","Qu","Ju","ta","na","ea","ra","oa","ia","ua","aa","ca","fa","sa","la","ha","da","va","pa","ga","ya","ma","wa","ba","xa","_a","Ea","ka","Na","Oa","ja","Ma","Sa","Aa","Ia","Pa","za","Ta","Ca","La","Ba","Ra","Da","Ha","Va","Ya","allocUnsafe","copy","Fa","Ga","Xa","$a","getOwnPropertySymbols","qa","Ua","getPrototypeOf","Wa","Za","Ka","Qa","Ja","ArrayBuffer","resolve","tc","Uint8Array","nc","byteLength","ec","buffer","byteOffset","oc","create","ic","cc","index","input","source","lastIndex","valueOf","rc","isMap","uc","isSet","ac","fc","sc","lc","hc","dc","vc","pc","gc","yc","mc","wc","bc","xc","Ec","name","message","_c","kc","Nc","Oc","Mc","Sc","Ic","Pc","zc","TypeError","cache","Cache","Ac","charCodeAt","Tc","Cc","Lc","Bc","Dc","Vc","jc","Rc","Hc","Yc","Fc","Gc","Xc","$c","qc","Uc","Zc","Wc","Kc","Qc","isConcatSpreadable","Jc","Math","max","tf","Date","now","nf","ef","uf","rf","of","af","cf","ff","sf","clone","constant","each","filter","isEmpty","isFunction","isUndefined","reduce","transform","union","values","lf","_isDirected","directed","_isMultigraph","multigraph","_isCompound","compound","_label","_defaultNodeLabelFn","_defaultEdgeLabelFn","_nodes","_parent","_children","_in","_preds","_out","_sucs","_edgeObjs","_edgeLabels","_nodeCount","_edgeCount","isDirected","isMultigraph","isCompound","setGraph","graph","setDefaultNodeLabel","nodeCount","nodes","sources","sinks","setNodes","setNode","node","hasNode","removeNode","removeEdge","_removeFromParentsChildList","children","setParent","Error","parent","predecessors","successors","neighbors","isLeaf","filterNodes","setEdge","edge","setDefaultEdgeLabel","edgeCount","edges","setPath","freeze","hasEdge","inEdges","outEdges","nodeEdges","concat","hf","write","options","read","df","vf","_arr","_keyIndices","priority","min","_decrease","removeMin","_swap","_heapify","decrease","pf","distance","predecessor","Number","POSITIVE_INFINITY","gf","yf","onStack","lowlink","mf","wf","bf","CycleException","xf","_f","bind","Ef","kf","Nf","Graph","version","json","alg","components","dijkstra","dijkstraAll","findCycles","floydWarshall","isAcyclic","postorder","preorder","prim","tarjan","topsort","graphlib","Of","jf","Mf","Sf","Af","If","Pf","zf","Tf","Cf","Lf","Bf","Rf","Df","Hf","Vf","Yf","Ff","Gf","Xf","$f","qf","Uf","Wf","Zf","Kf","Qf","Jf","ts","ns","es","rs","os","us","as","cs","fs","ss","ls","hs","ds","vs","ps","gs","ys","ms","ws","bs","xs","_s","Es","ks","Ns","Os","js","Ms","Ss","As","Is","Ps","zs","Ts","Cs","Ls","Bs","Rs","Ds","Hs","Vs","Ys","Fs","Gs","Xs","$s","qs","Us","Ws","Zs","Ks","Qs","Js","tl","nl","el","rl","ol","il","ul","al","cl","fl","sl","ll","hl","vl","charAt","dl","parseInt","NaN","gl","yl","ml","wl","xl","Nl","sort","criteria","kl","cloneDeep","defaults","find","pl","flatten","forIn","last","mapValues","merge","bl","minBy","pick","_l","range","ceil","El","sortBy","uniqueId","zipObject","Ol","jl","Ml","_next","_prev","_sentinel","Sl","Al","dequeue","enqueue","JSON","stringify","Il","Pl","zl","Cl","Ll","out","Bl","in","Rl","Dl","buckets","zeroIdx","Hl","run","acyclicer","weight","forwardName","reversed","undo","Vl","Yl","Fl","addDummyNode","Gl","simplify","minlen","asNonCompoundGraph","successorWeights","predecessorWeights","intersectRect","width","height","abs","buildLayerMatrix","Xl","rank","order","normalizeRanks","removeEmptyRanks","nodeRankFactor","addBorderNode","maxRank","partition","lhs","rhs","time","log","notime","dummy","$l","ql","Ul","dummyChains","labelRank","points","edgeLabel","edgeObj","labelpos","Wl","Zl","Kl","Ql","Jl","th","nh","eh","rh","oh","ih","uh","ah","ch","fh","sh","lh","hh","ph","dh","yh","wh","mh","cutvalue","vh","gh","low","lim","bh","initLowLimValues","initCutValues","calcCutValue","leaveEdge","enterEdge","exchangeEdges","xh","_h","Eh","Nh","jh","Sh","Ah","Ih","nestingRoot","Ph","cleanup","nestingEdge","borderTop","borderBottom","zh","Th","Lh","borderType","Bh","Rh","adjust","rankdir","toLowerCase","Dh","Vh","Yh","Hh","Fh","Xh","qh","pos","Uh","Wh","Zh","Kh","Qh","Jh","od","id","ad","cd","fd","sd","ld","borderLeft","borderRight","sum","barycenter","td","indegree","merged","reverse","nd","ed","hd","root","minRank","vd","pd","yd","md","dd","wd","bd","xd","_d","Od","jd","zd","Td","Cd","kd","Nd","floor","align","Md","nodesep","edgesep","Sd","NEGATIVE_INFINITY","Ad","Id","Pd","Bd","Rd","Dd","Hd","ranker","Oh","Vd","Yd","path","lca","Fd","Gd","Xd","$d","qd","Ud","ranksep","Wd","Zd","Qd","Jd","tv","nv","ev","rv","ov","labeloffset","iv","uv","av","cv","fv","sv","lv","debugOrdering","label","style","hv","layout","debugTiming","selfEdges","marginx","marginy","unshift","debug","util","vv","isFinite","pv","indexOf","gv","yv","mv","wv","bv","xv","_v","Ev","kv","Nv","Ov","jv","Mv","Sv","Av","Iv","Pv","zv","Tv","Cv","Lv","Bv","Rv","Map","Dv","Hv","Vv","split","Yv","Fv","Gv","isInteger","Xv","PI","$v","qv","Uv","Wv","Zv","Kv","Qv","Jv","tp","np","ep","rp","op","ip","lp","up","ap","cp","fp","sp","hp","pp","iterator","next","done","gp","error","return","yp","SuppressedError","mp","fontSize","fontFamily","fontWeight","fontStyle","fontVariant","getContext","font","measureText","wp","bp","__proto__","augment","clamp","clearAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msCancelAnimationFrame","clearTimeout","contains","debounce","setTimeout","deepMix","difference","endsWith","every","extend","superclass","findIndex","firstValue","fixedBase","round","substr","parseFloat","toFixed","flattenDeep","getEllipsisText","getRange","isNaN","getType","getWrapBehavior","group","groupBy","groupToMap","hasKey","head","includes","isArguments","isArrayLike","isBoolean","isDate","isDecimal","isElement","Element","HTMLDocument","isEqual","isEqualWith","isError","isEven","isMatch","isNegative","isNil","isNull","isNumber","isNumberEqual","isObject","isObjectLike","isOdd","isPlainObject","isPositive","isPrototype","isRegExp","isString","isType","lowerCase","lowerFirst","substring","maxBy","measureTextWidth","memoize","mix","mod","noop","number2color","omit","parseRadius","r1","r2","r3","r4","pull","pullAt","remove","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","some","startsWith","substitute","throttle","leading","trailing","cancel","toArray","toDegree","toInteger","toRadian","uniq","upperCase","toUpperCase","upperFirst","valuesOfKey","wrapBehavior","xp","Reflect","construct","defineProperty","getOwnPropertyDescriptor","en","getHeight","_p","Ep","getId","getPreH","preH","getPreV","preV","getHGap","hgap","getVGap","vgap","getChildren","getWidth","kp","data","depth","addGap","isRoot","eachNode","shift","DFTraverse","BFTraverse","getBoundingBox","left","MAX_VALUE","top","translate","right2left","bottom2top","Np","collapsed","Op","jp","rootNode","execute","Mp","Sp","prelim","change","msel","mser","Ap","Ip","Pp","zp","Tp","fromNode","Cp","Lp","getSide","side","right","Bp","Rp","Dp","Hp","Vp","direction","isHorizontal","fixedRoot","Yp","setPrototypeOf","Fp","nxt","Gp","Xp","$p","qp","Wp","Zp","leftChild","rightChild","Kp","nodeSep","nodeSize","rankSep","subTreeSep","Qp","Jp","tg","originNode","drawingDepth","ng","eg","rg","og","ug","ag","cg","fg","sg","lg","hg","dg","vg","indent","dropCap","pg","yg","mg","_subTreeSep","getSubTreeSep","totalHeight","wg","bg","xg","_g","startY","Eg","kg","Ng","Og","compactBox","dendrogram","indented","mindmap","Ag","Ig","Pg","zg","Tg","trim","Cg","Lg","svg","xhtml","xlink","xml","xmlns","Bg","space","local","Rg","ownerDocument","namespaceURI","documentElement","createElementNS","Dg","Hg","Vg","Yg","querySelector","Fg","Gg","querySelectorAll","$g","matches","qg","Ug","Wg","firstElementChild","Zg","Kg","from","Qg","Jg","ty","ny","ey","ry","oy","iy","removeAttribute","uy","removeAttributeNS","ay","setAttribute","cy","setAttributeNS","fy","sy","ly","defaultView","hy","removeProperty","dy","setProperty","vy","py","getPropertyValue","getComputedStyle","gy","yy","my","wy","by","classList","xy","_node","_names","getAttribute","_y","Ey","ky","Ny","Oy","jy","textContent","My","Sy","Ay","innerHTML","Iy","Py","zy","nextSibling","parentNode","appendChild","Ty","previousSibling","insertBefore","firstChild","Cy","Ly","removeChild","By","cloneNode","Ry","Dy","__on","removeEventListener","Hy","addEventListener","Vy","CustomEvent","createEvent","initEvent","bubbles","cancelable","detail","dispatchEvent","Yy","Fy","Gy","Xy","_groups","_parents","$y","qy","Uy","sourceEvent","currentTarget","ownerSVGElement","createSVGPoint","clientX","clientY","matrixTransform","getScreenCTM","inverse","getBoundingClientRect","clientLeft","clientTop","pageX","pageY","select","selectAll","Xg","selectChild","selectChildren","_enter","_exit","enter","exit","selection","append","compareDocumentPosition","empty","attr","getAttributeNS","property","classed","text","html","raise","lower","insert","datum","dispatch","Wy","passive","Zy","capture","Ky","stopImmediatePropagation","Qy","preventDefault","Jy","__noselect","MozUserSelect","tm","nm","em","subject","target","identifier","active","dx","defineProperties","rm","ctrlKey","button","om","im","um","navigator","maxTouchPoints","sm","error001","error002","error003","error004","error005","error006","error007","error009","error008","sourceHandle","targetHandle","error010","error011","error012","error013","lm","hm","mm","measured","initialWidth","initialHeight","qm","internals","positionAbsolute","position","origin","bm","nodeOrigin","x2","y2","Tm","Am","Pm","km","nodeId","nextPosition","nodeLookup","nodeExtent","onError","parentId","extent","expandParent","$m","jm","Om","Mm","Sm","Im","Vm","Ym","Fm","Xm","userAgent","Zm","snapGrid","snapToGrid","cw","xSnapped","ySnapped","nw","ConnectionMode","ew","rw","ow","iw","MarkerType","uw","aw","touches","sw","sourceX","sourceY","targetX","targetY","sourceControlX","sourceControlY","targetControlX","targetControlY","lw","sqrt","hw","x1","y1","Left","Position","Right","Top","Bottom","vw","Strict","Loose","Free","Vertical","Horizontal","PanOnScrollMode","Partial","Full","SelectionMode","Bezier","Straight","Step","SmoothStep","SimpleBezier","Arrow","ArrowClosed","yw","mw","_w","kw","pow","Yw","selected","Fw","parentElement","Gw","dragItems","userNode","Xw","onNodeMouseDown","getStoreItems","onDragStart","onDrag","onDragStop","update","noDragClassName","handleSelector","domNode","isSelectable","onNodeDrag","onSelectionDrag","updateNodePositions","panBy","multiSelectionActive","nodesDraggable","selectNodesOnDrag","onNodeDragStart","onSelectionDragStart","unselectNodesAndEdges","draggable","view","mouse","changedTouches","container","touchable","clickDistance","am","nodeDragThreshold","autoPanOnNodeDrag","onNodeDragStop","onSelectionDragStop","$w","qw","Uw","Ww","Zw","handle","connectionMode","fromNodeId","fromHandleId","fromType","doc","lib","flowId","isValidConnection","elementFromPoint","handleDomNode","isValid","connection","endHandle","handleId","Kw","onPointerDown","connectionRadius","edgeUpdaterType","isTarget","autoPanOnConnect","cancelConnection","onConnectStart","onConnect","onConnectEnd","onEdgeUpdateEnd","updateConnection","getTransform","getConnectionStartHandle","getRootNode","Qm","handleType","handleBounds","connectionPosition","connectionStatus","connectionStartHandle","connectionEndHandle","Qw","Jw","tb","nb","eb","rb","ob","ib","ub","ab","cb","fb","sb","lb","hb","db","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","vb","rgb","formatHex","pb","formatRgb","gb","yb","bb","mb","Ob","wb","opacity","xb","Nb","_b","Eb","kb","Mb","jb","Sb","Ab","Ib","displayable","hex","formatHex8","formatHsl","brighter","darker","Pb","Tb","Cb","zb","gamma","Lb","Bb","Rb","Db","Hb","Vb","Yb","translateX","translateY","rotate","skewX","scaleX","scaleY","Fb","atan2","atan","Gb","Xb","DOMMatrix","WebKitCSSMatrix","isIdentity","$b","baseVal","consolidate","matrix","qb","exp","Ub","Wb","Zb","duration","SQRT2","rho","Kb","Qb","Jb","tx","nx","ex","rx","ox","performance","ix","ux","ax","cx","_call","_time","fx","restart","sx","hx","lx","clearInterval","setInterval","stop","vx","px","gx","mx","wx","xx","_x","Ex","__transition","timer","delay","tween","ease","kx","Ox","Nx","jx","Mx","Sx","Ax","_id","Ix","Px","zx","Tx","Cx","Lx","Bx","Rx","_value","Dx","Hx","Vx","Yx","Fx","Gx","Xx","$x","qx","_name","Ux","Wx","transition","attrTween","styleTween","textTween","easeVarying","end","Promise","interrupt","Zx","Kx","Qx","Jx","t_","scale","applyX","applyY","invert","invertX","invertY","rescaleX","domain","rescaleY","n_","e_","__zoom","r_","o_","i_","u_","SVGElement","hasAttribute","viewBox","clientWidth","clientHeight","a_","c_","deltaY","deltaMode","f_","s_","d_","v_","zoom","p_","g_","y_","closest","m_","w_","b_","x_","minZoom","maxZoom","translateExtent","viewport","onPanZoom","onPanZoomStart","onPanZoomEnd","onTransformChange","onDraggingChange","isZoomingOrPanning","usedRightMouseButton","prevViewport","mouseButton","timerId","panScrollTimeout","isPanScrolling","event","start","__zooming","that","args","taps","wheel","moved","shiftKey","touch0","touch1","hypot","scaleBy","scaleTo","translateBy","translateTo","emit","wheelDelta","scaleExtent","constrain","interpolate","tapDistance","l_","noWheelClassName","noPanClassName","onPaneContextMenu","userSelectionActive","panOnScroll","panOnDrag","panOnScrollMode","panOnScrollSpeed","preventScrolling","zoomOnPinch","zoomOnScroll","zoomOnDoubleClick","zoomActivationKeyPressed","d3ZoomHandler","zoomPanValues","d3Selection","d3Zoom","deltaX","internal","sync","setViewport","setViewportConstrained","getViewport","setScaleExtent","setTranslateExtent","syncViewport","Line","Handle","pointerX","pointerY","aspectRatio","zustandErrorMessage","errorMessages","useStore","store","useContext","useZustandStore","useStoreApi","updateAbsolutePositions","elevateNodesOnSelect","selectedNodeZ","nodeLookup_1","__values","nodeLookup_1_1","__read","calculateXYZPosition","__assign","isNumeric","zIndex","currPosition","positionChanged","result","parentPosition","getNodePositionWithOrigin","getNodeDimensions","offsetX","offsetY","updateConnectionLookup","connectionLookup","edgeLookup","edges_1","edges_1_1","sourceKey","targetKey","prevSource","prevTarget","edgeId","adoptUserNodes","parentLookup","checkEquality","tmpLookup","internalNode","childNodes","handleExpandParent","changes","parentExpansions","children_1","children_1_1","child","parent_1","parentRect","expandedRect","nodeToRect","getBoundsOfRects","rect","dimensions","xChange","yChange","childNode","setAttributes","val","clampPosition","snapPosition","pointToRendererPoint","tScale","getBoundsOfBoxes","box1","box2","rectToBox","boxToRect","rect1","rect2","fixedForwardRef","render","forwardRef","getOverlappingArea","rectA","rectB","xOverlap","yOverlap","getViewportForBounds","bounds","padding","xZoom","yZoom","clampedZoom","isCoordinateExtent","undefined","getPositionWithOrigin","isNode","element","isNodeBase","isRectObject","obj","getDimensions","offsetWidth","offsetHeight","inputTags","isInputDOMNode","composedPath","nodeName","isMouseEvent","getEventPosition","isMouse","evtX","evtY","getHandleBounds","nodeElement","handles","handlesArray","nodeBounds","nodeOffset","defaultDoc","useKeyPress","keyCode","actInsideInputWithModifier","keyPressed","setKeyPressed","modifierPressed","pressedKeys","keysFlat","res","item","__spreadArray","keyCodes","keysToWatch","downHandler_1","metaKey","keyOrCode","useKeyOrCode","code","isMatchingKey","upHandler_1","resetHandler_1","isUp","eventCode","shallow$1","objA","objB","keysA","keyA","containerStyle","ZoomPane","defaultViewport","zoomActivationKeyCode","_j","onViewportChange","isControlledViewport","zoomPane","_k","shallow","panZoom","updateDimensions","resizeObserver_1","ResizeObserver","observe","unobserve","useResizeHandler","XYPanZoom","paneDragging","vp","onViewportChangeStart","onMoveStart","onMove","onViewportChangeEnd","onMoveEnd","_jsx","className","deleteKeyOptions","applyChange","dragging","resizing","applyChanges","elements","updatedElements","changesMap","changes_1","changes_1_1","elementChanges","elements_1","elements_1_1","changes_3","updatedElement","changes_2","changes_2_1","applyEdgeChanges","applyNodeChanges","createSelectionChange","getSelectionChanges","items","selectedIds","mutateItem","items_1","items_1_1","willBeSelected","getElementsDiffChanges","lookup","itemsLookup","items_2","items_2_1","lookupItem","storeItem","lookup_1","lookup_1_1","elementToRemoveChange","getNodesBounds","params","box","currBox","nodeBox","nodeToBox","Infinity","getNodesInside","partially","excludeNonSelectableNodes","paneRect","visibleNodes","nodes_1","nodes_1_1","_m","selectable","hidden","overlappingArea","getConnectedEdges","nodeIds","fitView","filteredNodes","optionNodeIds","includeHiddenNodes","calculateNodePosition","parentX","parentY","currentExtent","clampNodeExtent","nodeWidth","nodeHeight","parentWidth","parentHeight","currNodeOrigin","extentX","extentY","getElementsToRemove","nodesToRemove","edgesToRemove","onBeforeDelete","matchingNodes","deletable","isIncluded","parentHit","nodes_2","nodes_2_1","edgeIds","deletableEdges","connectedEdges","matchingEdges","deletableEdges_1","deletableEdges_1_1","onBeforeDeleteResult","sent","userSelectionRect","UserSelection","wrapHandler","handler","containerRef","elementsSelectable","Pane","isSelecting","selectionMode","onSelectionStart","onSelectionEnd","onPaneClick","onPaneScroll","onPaneMouseEnter","onPaneMouseMove","onPaneMouseLeave","prevSelectedNodesCount","prevSelectedEdgesCount","containerBounds","edgeIdLookup","resetUserSelection","onClick","resetSelectedElements","nodesSelectionActive","onWheel","hasActiveSelection","_jsxs","onContextMenu","onMouseEnter","onMouseDown","edgeLookup_1","edgeLookup_1_1","nativeEvent","startX","onMouseMove","triggerNodeChanges","triggerEdgeChanges","mouseX","mouseY","nextUserSelectRect","selectedNodes","selectedEdgeIds","selectedNodeIds","selectedNodes_1","selectedNodes_1_1","selectedNode","edgeIds_1","edgeIds_1_1","onMouseUp","onMouseLeave","FlowRendererComponent","deleteKeyCode","selectionKeyCode","selectionOnDrag","multiSelectionKeyCode","panActivationKeyCode","_panOnScroll","_panOnDrag","onSelectionContextMenu","disableKeyboardA11y","selectionKeyPressed","panActivationKeyPressed","deleteKeyPressed","multiSelectionKeyPressed","useGlobalKeyHandler","displayName","FlowRenderer","memo","useIsomorphicLayoutEffect","useQueue","runQueue","shouldFlush","setShouldFlush","queue","reset","createQueue","queueItems","BatchContext","BatchProvider","nodeQueueHandler","useCallback","hasDefaultNodes","onNodesChange","queueItems_1","queueItems_1_1","payload","nodeQueue","edgeQueueHandler","setEdges","hasDefaultEdges","onEdgesChange","queueItems_2","queueItems_2_1","edgeQueue","useViewportHelper","zoomIn","zoomOut","zoomTo","zoomLevel","getZoom","tX","tY","tZoom","setCenter","nextZoom","centerX","centerY","fitBounds","screenToFlowPosition","clientPosition","domX","domY","correctedPosition","flowToScreenPosition","flowPosition","rendererPosition","rendererPointToPoint","useInkFlow","_this","viewportHelper","batchContext","useBatchContext","viewportInitialized","generalHelper","getInternalNode","getNodeRect","nodeToUse","nextParentId","origin_1","xOffset","yOffset","evaluateAbsolutePosition","nodeWithPosition","updateNode","nodeUpdate","prevNodes","nextNode","getNodes","getNode","getEdges","getEdge","addNodes","newNodes","addEdges","newEdges","toObject","deleteElements","onNodesDelete","onEdgesDelete","onDelete","hasMatchingEdges","hasMatchingNodes","edgeChanges","nodeChanges","deletedNodes","deletedEdges","getIntersectingNodes","nodeOrRect","isRect","nodeRect","hasNodesOption","currNodeRect","isNodeIntersecting","area","updateNodeData","dataUpdate","nextData","updateNodeInternals","onlyRenderVisible","NodeIdContext","Consumer","ARIA_NODE_DESC_KEY","ARIA_EDGE_DESC_KEY","getBezierEdgeCenter","calculateControlOffset","curvature","getControlWithCurvature","getEdgeCenter","getEdgeId","handleDirections","getDirection","sourcePosition","getSmoothStepPath","targetPosition","borderRadius","center","offset","sourceDir","targetDir","sourceGapped","targetGapped","dir","dirAccessor","currDir","sourceGapOffset","targetGapOffset","defaultCenterX","defaultCenterY","defaultOffsetX","defaultOffsetY","verticalSplit","horizontalSplit","sourceTarget","targetSource","diff","gapOffset","dirAccessorOpposite","isSameDir","sourceGtTargetOppo","sourceLtTargetOppo","sourceGapPoint","targetGapPoint","getPoints","labelX","labelY","segment","bendSize","xDir_1","yDir_1","xDir","yDir","getBend","connectOnClick","rfId","isConnectable","isConnectableStart","isConnectableEnd","onTouchStart","rest","__rest","startHandle","clickHandle","connectionClickStartHandle","connectingTo","connectingFrom","clickConnecting","isPossibleEndHandle","connectionInProcess","valid","connectingSelector","onConnectExtended","defaultEdgeOptions","onConnectAction","edgeParams","connectionExists","addEdge","isMouseTriggered","currentStore","XYHandle","connectable","connectablestart","connectableend","clickconnecting","connectingfrom","connectingto","connectionindicator","onClickConnectStart","onClickConnectEnd","isValidConnectionStore","getHostForElement","isValidConnectionHandler","arrowKeyDiffs","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","builtinNodeTypes","_Fragment","output","handleNodeClick","unselect","nodeRef","addSelectedNodes","blur","selectedAndDraggable","NodeWrapper","onDoubleClick","nodesConnectable","nodesFocusable","resizeObserver","nodeTypes","isParent","NodeComponent","isDraggable","isFocusable","focusable","hasDimensions","nodeHasDimensions","observedNode","prevSourcePosition","prevTargetPosition","prevType","isInitialized","typeChanged","sourcePosChanged","targetPosChanged","force","useNodeObserver","disabled","setDragging","xyDrag","XYDrag","useDrag","dragHandle","moveSelectedNodes","nodeUpdates","isSelected","xVelo","yVelo","xDiff","factor","yDiff","useMoveSelectedNodes","nodeDimensions","inlineDimensions","getNodeInlineStyleDimensions","clampedPosition","positionWithOrigin","hasPointerEvents","onMouseEnterHandler","onMouseMoveHandler","onMouseLeaveHandler","onContextMenuHandler","onDoubleClickHandler","pointerEvents","visibility","onKeyDown","elementSelectionKeys","ariaLiveMessage","tabIndex","role","ariaLabel","positionAbsoluteX","positionAbsoluteY","NodeRendererComponent","entries","updates","entry","disconnect","useResizeObserver","NodeRenderer","MarkerSymbols","color","strokeWidth","stroke","strokeLinecap","strokeLinejoin","fill","getMarkerId","marker","idPrefix","Marker","markerUnits","orient","symbol","useMarkerSymbol","markerWidth","markerHeight","refX","refY","MarkerDefinitions","defaultColor","markers","defaultMarkerStart","defaultMarkerEnd","ids","markerStart","markerEnd","markerId","localeCompare","createMarkerIds","EdgeTextComponent","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","edgeTextBbox","setEdgeTextBbox","edgeTextClasses","onEdgeTextRefChange","edgeRef","textBbox","getBBox","EdgeText","BaseEdge","interactionWidth","strokeOpacity","getControl","createSimpleBezierEdge","getSimpleBezierPath","isInternal","SimpleBezierEdge","SimpleBezierEdgeInternal","createSmoothStepEdge","pathOptions","SmoothStepEdge","SmoothStepEdgeInternal","createStepEdge","StepEdge","StepEdgeInternal","createStraightEdge","getStraightPath","StraightEdge","StraightEdgeInternal","createBezierEdge","getBezierPath","BezierEdge","BezierEdgeInternal","builtinEdgeTypes","straight","step","smoothstep","simplebezier","nullPosition","shiftX","shiftY","EdgeUpdaterClassName","EdgeAnchor","radius","onMouseOut","EdgeUpdateAnchors","isUpdatable","edgeUpdaterRadius","targetHandleId","sourceHandleId","onEdgeUpdate","onEdgeUpdateStart","setUpdating","setUpdateHover","handleEdgeUpdater","isSourceHandle","evt","onEdgeUpdaterMouseEnter","onEdgeUpdaterMouseOut","isNodeInitialized","toHandleBounds","handles_1","handles_1_1","getHandlePosition","getHandle","EdgeWrapper","edgesFocusable","edgesUpdatable","edgeTypes","edgeType","EdgeComponent","updatable","updateHover","updating","sourceNode","targetNode","edgePosition","sourceHandleBounds","targetHandleBounds","getEdgePosition","edgeOrConnectedNodeSelected","selectedZIndex","getElevatedEdgeZIndex","elevateOnSelect","elevateEdgesOnSelect","markerStartUrl","markerEndUrl","onEdgeDoubleClick","onEdgeContextMenu","onEdgeMouseEnter","onEdgeMouseMove","onEdgeMouseLeave","animated","inactive","addSelectedEdges","EdgeRendererComponent","useVisibleEdgeIds","EdgeRenderer","Viewport","GraphViewComponent","GraphView","defaultNodes","defaultEdges","storeEdges","storeNodes","infiniteExtent","fitViewOnInit","fitViewDone","fitViewOnInitOptions","onSelectionChangeHandlers","setDefaultNodesAndEdges","viewportNode","updatedInternals","DOMMatrixReadOnly","m22","parentExpandChildren","dimensionChanged","newNode","parentExpandChanges","updateNodeInternalsSystem","nextFitViewDone","nodeDragItems","nodeDragItems_1","nodeDragItems_1_1","dragItem","edgesToUnselect","setMinZoom","setMaxZoom","setNodeExtent","delta","nextViewport","panBySystem","fitViewSystem","currentConnection","InkFlowProvider","initialNodes","initialEdges","Wrapper","Fragment","fieldsToTrack","initPrevValues","StoreUpdater","previousFields","fieldsToTrack_1","fieldsToTrack_1_1","fieldName","fieldValue","wrapperStyle","overflow","initViewport","fitViewOptions","cls","PlusIcon","fillRule","clipRule","MinusIcon","FitViewIcon","LockIcon","UnlockIcon","ControlButton","Panel","positionClasses","isInteractive","minZoomReached","maxZoomReached","ControlsComponent","showZoom","showFitView","showInteractive","onZoomIn","onZoomOut","onFitView","onInteractiveChange","orientation","orientationClass","title","Controls","dm","Ew","shouldReplaceId","eds","nds"],"mappings":"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GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG,CAAC7lB,QAAQ,CAAE,GAAE,SAAS8lB,KAAK,OAAOzR,KAAKA,GAAG,EAAE,SAAS7P,EAAE7D,GAAG,IAAIc,EAAEwM,KAAKpK,EAAElD,IAAIA,EAAEuQ,UAAUvQ,EAAEyG,EAAEvD,GAAGW,IAAIA,EAAE0M,UAAU1M,EAAEhC,EAAE4E,GAAGA,EAAEpH,UAAU6D,EAAEpC,EAAE0P,YAAO,EAAOnN,EAAExB,EAAEA,EAAEujB,iBAAY,EAAOvhB,EAAExE,QAAQ,SAASwE,EAAE7D,GAAG,GAAGA,EAAE,OAAO6D,EAAEsC,QAAQ,IAAIrF,EAAE+C,EAAE9B,OAAOmB,EAAEG,EAAEA,EAAEvC,GAAG,IAAI+C,EAAEsP,YAAYrS,GAAG,OAAO+C,EAAEwhB,KAAKniB,GAAGA,CAAC,CAAC,CAA9O,CAAgPgiB,GAAGA,GAAG7lB,UAAU6lB,GAAG7lB,OAAO,CAAC,SAASimB,KAAK,OAAG1R,KAAoBA,GAAG,EAAED,GAAG,SAAS9P,EAAE7D,GAAG,IAAIc,GAAG,EAAEoC,EAAEW,EAAE9B,OAAO,IAAI/B,IAAIA,EAAEmC,MAAMe,MAAMpC,EAAEoC,GAAGlD,EAAEc,GAAG+C,EAAE/C,GAAG,OAAOd,CAAC,GAAjG2T,EAAqG,CAAC,SAAS4R,KAAK,OAAGzR,KAAoBA,GAAG,EAAED,GAAG,SAAShQ,EAAE7D,GAAG,IAAI,IAAIc,GAAG,EAAEoC,EAAE,MAAMW,EAAE,EAAEA,EAAE9B,OAAO0E,EAAE,EAAE5E,EAAE,KAAKf,EAAEoC,GAAG,CAAC,IAAIG,EAAEQ,EAAE/C,GAAGd,EAAEqD,EAAEvC,EAAE+C,KAAKhC,EAAE4E,KAAKpD,EAAE,CAAC,OAAOxB,CAAC,GAA3HgS,EAA+H,CAAC,SAAS2R,KAAK,OAAGxR,GAAUD,IAAUC,GAAG,EAAED,GAAG,WAAW,MAAM,EAAE,EAAC,CAAC,SAAS0R,KAAK,GAAGvR,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrQ,EAAE0hB,KAAKvlB,EAAEwlB,KAAK1kB,EAAEjB,OAAOC,UAAU0P,qBAAqBtM,EAAErD,OAAO6lB,sBAAsB,OAAOzR,GAAG/Q,EAAE,SAASlD,GAAG,OAAO,MAAMA,EAAE,IAAIA,EAAEH,OAAOG,GAAG6D,EAAEX,EAAElD,IAAE,SAAW6D,GAAG,OAAO/C,EAAEE,KAAKhB,EAAE6D,EAAG,IAAG,EAAE7D,CAAC,CAAC,SAAS2lB,KAAK,OAAGrR,KAAoBA,GAAG,EAAED,GAAG,SAASxQ,EAAE7D,GAAG,IAAI,IAAIc,GAAG,EAAEoC,EAAElD,EAAE+B,OAAO0E,EAAE5C,EAAE9B,SAASjB,EAAEoC,GAAGW,EAAE4C,EAAE3F,GAAGd,EAAEc,GAAG,OAAO+C,CAAC,GAA9FwQ,EAAkG,CAAC,SAASuR,KAAK,GAAGpR,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3Q,EAAEuP,KAAKvT,OAAOgmB,eAAehmB,QAAQ,OAAO0U,GAAG1Q,CAAC,CAAC,SAASiiB,KAAK,GAAGpR,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7Q,EAAE8hB,KAAK3lB,EAAE4lB,KAAK9kB,EAAE2kB,KAAKviB,EAAEsiB,KAAK/e,EAAE5G,OAAO6lB,sBAAsB,OAAOjR,GAAGhO,EAAE,SAASvD,GAAG,IAAI,IAAIuD,EAAE,GAAGvD,GAAGW,EAAE4C,EAAE3F,EAAEoC,IAAIA,EAAElD,EAAEkD,GAAG,OAAOuD,CAAC,EAAEvD,CAAC,CAAC,SAAS6iB,KAAK,GAAGjR,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjR,EAAE8hB,KAAK3lB,EAAEyP,KAAK,OAAOoF,GAAG,SAAS/T,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAEqB,EAAEpC,GAAG,OAAOd,EAAEc,GAAGe,EAAEgC,EAAEhC,EAAE4E,EAAE3F,GAAG,CAAC,CAAC,SAASklB,KAAK,GAAGhR,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInR,EAAEkiB,KAAK/lB,EAAEylB,KAAK3kB,EAAEyS,KAAK,OAAOwB,GAAG,SAAS7R,GAAG,OAAOW,EAAEX,EAAEpC,EAAEd,EAAE,CAAC,CAAC,SAASimB,KAAK,GAAGzQ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3R,EAAEiK,KAAKR,KAAK,OAAO,OAAOiI,GAAG1R,CAAC,CAAC,SAASqiB,KAAK,GAAGtQ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/R,EAAE,WAAW,GAAGuR,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvR,EAAEiK,KAAKR,KAAK,YAAY,OAAO6H,GAAGtR,CAAC,CAAvE,GAA2E7D,EAAEqO,KAAKvN,EAAE,WAAW,GAAGwU,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzR,EAAEiK,KAAKR,KAAK,WAAW,OAAO+H,GAAGxR,CAAC,CAAtE,GAA0EX,EAAE+iB,KAAKxf,EAAE,WAAW,GAAGiP,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7R,EAAEiK,KAAKR,KAAK,WAAW,OAAOmI,GAAG5R,CAAC,CAAtE,GAA0EhC,EAAE4L,KAAKpK,EAAEwK,KAAKnN,EAAE,eAAeD,EAAE,mBAAmBnB,EAAE,eAAeoH,EAAE,mBAAmB/G,EAAE,oBAAoBoB,EAAEsC,EAAEQ,GAAGhD,EAAEwC,EAAErD,GAAG+D,EAAEV,EAAEvC,GAAGX,EAAEkD,EAAEH,GAAGvC,EAAE0C,EAAEoD,GAAGE,EAAE9E,EAAE,OAAOgC,GAAG8C,EAAE,IAAI9C,EAAE,IAAIsiB,YAAY,MAAMxmB,GAAGK,GAAG2G,EAAE,IAAI3G,IAAIU,GAAGI,GAAG6F,EAAE7F,EAAEslB,YAAY3lB,GAAGyC,GAAGyD,EAAE,IAAIzD,IAAI5D,GAAGmH,GAAGE,EAAE,IAAIF,IAAIC,KAAKC,EAAE,SAAS9C,GAAG,IAAI7D,EAAE6B,EAAEgC,GAAG/C,EAAE,mBAAmBd,EAAE6D,EAAEsP,iBAAY,EAAOjQ,EAAEpC,EAAEuC,EAAEvC,GAAG,GAAG,GAAGoC,EAAE,OAAOA,GAAG,KAAKnC,EAAE,OAAOpB,EAAE,KAAKkB,EAAE,OAAOH,EAAE,KAAKqD,EAAE,OAAOtD,EAAE,KAAKN,EAAE,OAAOb,EAAE,KAAKqB,EAAE,OAAO+F,EAAE,OAAO1G,CAAC,GAAG2V,GAAGhP,CAAC,CAAC,SAAS0f,KAAK,GAAGrQ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInS,EAAEyJ,KAAKgZ,WAAW,OAAOvQ,GAAGlS,CAAC,CAAC,SAAS0iB,KAAK,GAAGrQ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrS,EAAEwiB,KAAK,OAAOpQ,GAAG,SAASjW,GAAG,IAAIc,EAAE,IAAId,EAAEmT,YAAYnT,EAAEwmB,YAAY,OAAO,IAAI3iB,EAAE/C,GAAGoM,IAAI,IAAIrJ,EAAE7D,IAAIc,CAAC,CAAC,CAAC,SAAS2lB,KAAK,GAAG/P,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7S,EAAE0iB,KAAK,OAAO9P,GAAG,SAASzW,EAAEc,GAAG,IAAIoC,EAAEpC,EAAE+C,EAAE7D,EAAE0mB,QAAQ1mB,EAAE0mB,OAAO,OAAO,IAAI1mB,EAAEmT,YAAYjQ,EAAElD,EAAE2mB,WAAW3mB,EAAE+B,OAAO,CAAC,CAAmnC,SAAS6kB,KAAK,GAAG9P,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjT,EAAE8J,KAAK3N,EAAEH,OAAOgnB,OAAO/lB,EAAE,WAAW,SAASA,IAAG,CAAE,OAAO,SAASoC,GAAG,IAAIW,EAAEX,GAAG,MAAM,CAAA,EAAG,GAAGlD,EAAE,OAAOA,EAAEkD,GAAGpC,EAAEhB,UAAUoD,EAAE,IAAIuD,EAAE,IAAI3F,EAAE,OAAOA,EAAEhB,eAAU,EAAO2G,CAAC,CAAC,CAArI,GAAyI,OAAOoQ,GAAG/V,CAAC,CAAC,SAASgmB,KAAK,GAAG9P,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInT,EAAE+iB,KAAK5mB,EAAE4lB,KAAK9kB,EAAEoS,KAAK,OAAO6D,GAAG,SAAS7T,GAAG,MAAM,mBAAmBA,EAAEiQ,aAAarS,EAAEoC,GAAG,CAAA,EAAGW,EAAE7D,EAAEkD,GAAG,CAAC,CAAmZ,SAAS6jB,KAAK,GAAGrP,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7T,EAAEgL,KAAK7O,EAAE8O,KAAKhO,EAAEsO,KAAKlM,EAAE,WAAW,GAAG6O,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIlO,EAAEwL,KAAKrP,EAAEuT,KAAK,OAAOzB,GAAG,SAAShR,EAAEoC,GAAG,OAAOpC,GAAG+C,EAAEX,EAAElD,EAAEkD,GAAGpC,EAAE,CAAC,CAAhG,GAAoG2F,EAAE,WAAW,GAAG8L,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI1O,EAAEwL,KAAKrP,EAAEwT,KAAK,OAAOlB,GAAG,SAASxR,EAAEoC,GAAG,OAAOpC,GAAG+C,EAAEX,EAAElD,EAAEkD,GAAGpC,EAAE,CAAC,CAAhG,GAAoGe,EAAEsjB,KAAK9hB,EAAEiiB,KAAK5kB,EAAE,WAAW,GAAG0T,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvQ,EAAEwL,KAAKrP,EAAEylB,KAAK,OAAOtR,GAAG,SAASrT,EAAEoC,GAAG,OAAOW,EAAE/C,EAAEd,EAAEc,GAAGoC,EAAE,CAAC,CAA7F,GAAiGzC,EAAE,WAAW,GAAGmU,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/Q,EAAEwL,KAAKrP,EAAE8lB,KAAK,OAAOnR,GAAG,SAAS7T,EAAEoC,GAAG,OAAOW,EAAE/C,EAAEd,EAAEc,GAAGoC,EAAE,CAAC,CAA7F,GAAiG5D,EAAE0mB,KAAKtf,EAAE,WAAW,GAAGwO,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrR,EAAEkiB,KAAK/lB,EAAE8lB,KAAKhlB,EAAE0S,KAAK,OAAOyB,GAAG,SAAS/R,GAAG,OAAOW,EAAEX,EAAEpC,EAAEd,EAAE,CAAC,CAA/F,GAAmGL,EAAEumB,KAAKnlB,EAAE,WAAW,GAAG+U,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjS,EAAEhE,OAAOC,UAAUC,eAAe,OAAO8V,GAAG,SAAS7V,GAAG,IAAIc,EAAEd,EAAE+B,OAAOmB,EAAE,IAAIlD,EAAEmT,YAAYrS,GAAG,OAAOA,GAAG,iBAAiBd,EAAE,IAAI6D,EAAE7C,KAAKhB,EAAE,WAAWkD,EAAE8jB,MAAMhnB,EAAEgnB,MAAM9jB,EAAE+jB,MAAMjnB,EAAEinB,OAAO/jB,CAAC,EAAE2S,EAAE,CAA7N,GAAiOhV,EAAtpF,WAAc,GAAG+V,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/S,EAAE0iB,KAAKvmB,EAAE,WAAW,GAAGoW,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvS,EAAE0iB,KAAK,OAAOpQ,GAAG,SAASnW,EAAEc,GAAG,IAAIoC,EAAEpC,EAAE+C,EAAE7D,EAAE0mB,QAAQ1mB,EAAE0mB,OAAO,OAAO,IAAI1mB,EAAEmT,YAAYjQ,EAAElD,EAAE2mB,WAAW3mB,EAAEwmB,WAAW,CAAC,CAAtJ,GAA0J1lB,EAAE,WAAW,GAAGwV,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzS,EAAE,OAAO,OAAOwS,GAAG,SAASrW,GAAG,IAAIc,EAAE,IAAId,EAAEmT,YAAYnT,EAAEknB,OAAOrjB,EAAEkK,KAAK/N,IAAI,OAAOc,EAAEqmB,UAAUnnB,EAAEmnB,UAAUrmB,CAAC,CAAC,CAAhJ,GAAoJoC,EAAE,WAAW,GAAGsT,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3S,EAAE2J,KAAKxN,EAAE6D,EAAEA,EAAE/D,eAAU,EAAOgB,EAAEd,EAAEA,EAAEonB,aAAQ,EAAO,OAAO7Q,GAAG,SAAS1S,GAAG,OAAO/C,EAAEjB,OAAOiB,EAAEE,KAAK6C,IAAI,CAAE,CAAA,CAAC,CAA3I,GAA+I4C,EAAEggB,KAAK,OAAO9P,GAAG,SAAS9U,EAAEwB,EAAE3C,GAAG,IAAID,EAAEoB,EAAEsR,YAAY,OAAO9P,GAAG,IAAI,uBAAuB,OAAOQ,EAAEhC,GAAG,IAAI,mBAAmB,IAAI,gBAAgB,OAAO,IAAIpB,GAAGoB,GAAG,IAAI,oBAAoB,OAAO7B,EAAE6B,EAAEnB,GAAG,IAAI,wBAAwB,IAAI,wBAAwB,IAAI,qBAAqB,IAAI,sBAAsB,IAAI,sBAAsB,IAAI,sBAAsB,IAAI,6BAA6B,IAAI,uBAAuB,IAAI,uBAAuB,OAAO+F,EAAE5E,EAAEnB,GAAG,IAAI,eAAe,IAAI,eAAe,OAAO,IAAID,EAAE,IAAI,kBAAkB,IAAI,kBAAkB,OAAO,IAAIA,EAAEoB,GAAG,IAAI,kBAAkB,OAAOf,EAAEe,GAAG,IAAI,kBAAkB,OAAOqB,EAAErB,GAAG,CAAC,CAAuiDwlB,GAAKtjB,EAAE+iB,KAAK3mB,EAAEsP,KAAK9O,EAAE2P,KAAK3J,EAAhuC,WAAc,GAAGyQ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvT,EAAE,WAAW,GAAGqT,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrT,EAAEqiB,KAAKlmB,EAAEsP,KAAK,OAAO2H,GAAG,SAASnW,GAAG,OAAOd,EAAEc,IAAI,gBAAgB+C,EAAE/C,EAAE,CAAC,CAA1G,GAA8Gd,EAAE4Q,KAAK9P,EAAE2R,KAAKvP,EAAEpC,GAAGA,EAAEwmB,MAAM7gB,EAAEvD,EAAElD,EAAEkD,GAAGW,EAAE,OAAOsT,GAAG1Q,CAAC,CAA0hC8gB,GAAK3nB,EAAE+N,KAAK1J,EAAriC,WAAc,GAAGuT,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3T,EAAE,WAAW,GAAGyT,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzT,EAAEqiB,KAAKlmB,EAAEsP,KAAK,OAAO+H,GAAG,SAASvW,GAAG,OAAOd,EAAEc,IAAI,gBAAgB+C,EAAE/C,EAAE,CAAC,CAA1G,GAA8Gd,EAAE4Q,KAAK9P,EAAE2R,KAAKvP,EAAEpC,GAAGA,EAAE0mB,MAAM/gB,EAAEvD,EAAElD,EAAEkD,GAAGW,EAAE,OAAO0T,GAAG9Q,CAAC,CAA+1BghB,GAAK7mB,EAAE2S,KAAK3M,EAAE4M,KAAK3M,EAAE,qBAAqBC,EAAE,oBAAoBtH,EAAE,kBAAkBuH,EAAE,CAAE,EAAC,OAAOA,EAAEF,GAAGE,EAAE,kBAAkBA,EAAE,wBAAwBA,EAAE,qBAAqBA,EAAE,oBAAoBA,EAAE,iBAAiBA,EAAE,yBAAyBA,EAAE,yBAAyBA,EAAE,sBAAsBA,EAAE,uBAAuBA,EAAE,uBAAuBA,EAAE,gBAAgBA,EAAE,mBAAmBA,EAAEvH,GAAGuH,EAAE,mBAAmBA,EAAE,gBAAgBA,EAAE,mBAAmBA,EAAE,mBAAmBA,EAAE,uBAAuBA,EAAE,8BAA8BA,EAAE,wBAAwBA,EAAE,yBAAwB,EAAGA,EAAE,kBAAkBA,EAAED,GAAGC,EAAE,qBAAoB,EAAG0Q,GAAG,SAASzQ,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,EAAEC,GAAG,IAAIC,EAAEC,EAAE,EAAEN,EAAEO,EAAE,EAAEP,EAAEQ,EAAE,EAAER,EAAE,GAAGC,IAAII,EAAEF,EAAEF,EAAEF,EAAEG,EAAEC,EAAEC,GAAGH,EAAEF,SAAI,IAASM,EAAE,OAAOA,EAAE,IAAI3H,EAAEqH,GAAG,OAAOA,EAAE,IAAIU,EAAExH,EAAE8G,GAAG,GAAGU,GAAG,GAAGJ,EAAExG,EAAEkG,IAAIO,EAAE,OAAOnE,EAAE4D,EAAEM,OAAO,CAAC,IAAIK,EAAEjI,EAAEsH,GAAGY,EAAED,GAAGd,GAAG,8BAA8Bc,EAAE,GAAGjH,EAAEsG,GAAG,OAAOpF,EAAEoF,EAAEO,GAAG,GAAGI,GAAGpI,GAAGoI,GAAGf,GAAGgB,IAAIR,GAAG,GAAGE,EAAEE,GAAGI,EAAE,CAAE,EAAC9D,EAAEkD,IAAIO,EAAE,OAAOC,EAAEhH,EAAEwG,EAAER,EAAEc,EAAEN,IAAIvG,EAAEuG,EAAE/D,EAAEqE,EAAEN,QAAQ,CAAC,IAAIF,EAAEa,GAAG,OAAOP,EAAEJ,EAAE,CAAE,EAACM,EAAE1G,EAAEoG,EAAEW,EAAEJ,EAAE,CAAC,CAACF,IAAIA,EAAE,IAAIzD,GAAG,IAAIiE,EAAER,EAAE6F,IAAIlG,GAAG,GAAGa,EAAE,OAAOA,EAAER,EAAE4F,IAAIjG,EAAEM,GAAGtD,EAAEgD,GAAGA,EAAEjC,SAAS,SAASnB,GAAG0D,EAAEhC,IAAIyB,EAAEnD,EAAEqD,EAAEC,EAAEtD,EAAEoD,EAAEK,GAAI,IAAGX,EAAEM,IAAIA,EAAEjC,kBAAkBnB,EAAE7D,GAAGuH,EAAE2F,IAAIlN,EAAEgH,EAAEnD,EAAEqD,EAAEC,EAAEnH,EAAEiH,EAAEK,GAAI,IAAG,IAAIS,EAAEJ,OAAE,GAAQD,EAAED,EAAEf,EAAEpH,EAAEmI,EAAEb,EAAEhG,GAAGqG,GAAG,OAAOjH,EAAE+H,GAAGd,GAAG,SAASpD,EAAE7D,GAAG+H,IAAIlE,EAAEoD,EAAEjH,EAAE6D,IAAI/C,EAAEyG,EAAEvH,EAAEgH,EAAEnD,EAAEqD,EAAEC,EAAEnH,EAAEiH,EAAEK,GAAI,IAAGC,CAAC,EAAEkQ,EAAE,CAAC,SAASiQ,KAAK,GAAG9P,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/T,EAAEkjB,KAAK,OAAOpP,GAAG,SAAS3X,GAAG,OAAO6D,EAAE7D,EAAE,EAAE,CAAC,CAAC,SAAS2nB,KAAK,OAAG7P,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAAShU,GAAG,OAAO,WAAW,OAAOA,CAAC,CAAC,EAAC,CAAC,SAAS+jB,KAAK,GAAG1P,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrU,GAAGmU,GAAGD,IAAIC,GAAG,EAAED,GAAG,SAASlU,GAAG,OAAO,SAAS7D,EAAEc,EAAEoC,GAAG,IAAI,IAAIuD,GAAG,EAAE5E,EAAEhC,OAAOG,GAAGqD,EAAEH,EAAElD,GAAGU,EAAE2C,EAAEtB,OAAOrB,KAAK,CAAC,IAAID,EAAE4C,EAAEQ,EAAEnD,IAAI+F,GAAG,IAAG,IAAK3F,EAAEe,EAAEpB,GAAGA,EAAEoB,GAAG,KAAK,CAAC,OAAO7B,CAAC,CAAC,MAAM,OAAOiY,GAAGpU,CAAC,CAAC,SAASgkB,KAAK,GAAGzP,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvU,EAAE+jB,KAAK5nB,EAAEuT,KAAK,OAAO4E,GAAG,SAASrX,EAAEoC,GAAG,OAAOpC,GAAG+C,EAAE/C,EAAEoC,EAAElD,EAAE,CAAC,CAAC,SAAS8nB,KAAK,GAAGtP,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3U,EAAEgkB,KAAK7nB,EAAE,WAAW,GAAGsY,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzU,EAAEyP,KAAK,OAAO+E,GAAG,SAASrY,EAAEc,GAAG,OAAO,SAASoC,EAAEuD,GAAG,GAAG,MAAMvD,EAAE,OAAOA,EAAE,IAAIW,EAAEX,GAAG,OAAOlD,EAAEkD,EAAEuD,GAAG,IAAI,IAAI5E,EAAEqB,EAAEnB,OAAOsB,EAAEvC,EAAEe,GAAG,EAAEnB,EAAEb,OAAOqD,IAAIpC,EAAEuC,MAAMA,EAAExB,KAAI,IAAK4E,EAAE/F,EAAE2C,GAAGA,EAAE3C,KAAK,OAAOwC,CAAC,CAAC,CAAC,CAAvN,GAA2NpC,EAAEd,EAAE6D,GAAG,OAAO0U,GAAGzX,CAAC,CAAC,SAASinB,KAAK,OAAGrP,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAAS5U,GAAG,OAAOA,CAAC,EAAC,CAAC,SAASmkB,KAAK,GAAGpP,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/U,EAAEkkB,KAAK,OAAOpP,GAAG,SAAS3Y,GAAG,MAAM,mBAAmBA,EAAEA,EAAE6D,CAAC,CAAC,CAAC,SAASokB,KAAK,GAAGnP,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjV,EAAEiL,KAAK9O,EAAE8nB,KAAKhnB,EAAEknB,KAAK9kB,EAAEuM,KAAK,OAAOoJ,GAAG,SAASpS,EAAE5E,GAAG,OAAOqB,EAAEuD,GAAG5C,EAAE7D,GAAGyG,EAAE3F,EAAEe,GAAG,CAAC,CAAC,SAASqmB,KAAK,OAAOlP,GAAGD,IAAIC,GAAG,EAAED,GAAGkP,KAAK,CAAC,SAASE,KAAK,GAAG3O,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3V,EAAE4K,KAAKzO,EAAEoZ,GAAGD,IAAIC,GAAG,EAAED,GAAG,SAAStV,GAAG,OAAOgJ,KAAKC,SAASI,IAAIrJ,EAAE,6BAA6BgJ,IAAI,GAAG/L,EAAEwY,GAAGD,IAAIC,GAAG,EAAED,GAAG,SAASxV,GAAG,OAAOgJ,KAAKC,SAASM,IAAIvJ,EAAE,GAAG,SAASX,EAAElD,GAAG,IAAIc,GAAG,EAAEoC,EAAE,MAAMlD,EAAE,EAAEA,EAAE+B,OAAO,IAAI8K,KAAKC,SAAS,IAAIjJ,IAAI/C,EAAEoC,GAAG2J,KAAKtH,IAAIvF,EAAEc,GAAG,CAAC,OAAOoC,EAAEpD,UAAUyF,IAAIrC,EAAEpD,UAAUoC,KAAKlC,EAAEkD,EAAEpD,UAAUsN,IAAItM,EAAEyY,GAAGrW,CAAC,CAAC,SAASklB,KAAK,OAAGxO,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAAS9V,EAAE7D,GAAG,OAAO6D,EAAEuJ,IAAIpN,EAAE,EAAC,CAAC,SAASqoB,KAAK,GAAGvO,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjW,EAAEskB,KAAKnoB,GAAG0Z,KAAKA,GAAG,EAAED,GAAG,SAAS5V,EAAE7D,GAAG,IAAI,IAAIc,GAAG,EAAEoC,EAAE,MAAMW,EAAE,EAAEA,EAAE9B,SAASjB,EAAEoC,GAAG,GAAGlD,EAAE6D,EAAE/C,GAAGA,EAAE+C,GAAG,OAAM,EAAG,OAAM,CAAE,GAAG4V,IAAI3Y,EAAEsnB,KAAK,OAAOvO,GAAG,SAAS3W,EAAEuD,EAAE5E,EAAEwB,EAAE3C,EAAED,GAAG,IAAInB,EAAE,EAAEuC,EAAE6E,EAAExD,EAAEnB,OAAOpC,EAAE8G,EAAE1E,OAAO,GAAG2E,GAAG/G,KAAKL,GAAGK,EAAE+G,GAAG,OAAM,EAAG,IAAI3F,EAAEN,EAAE0M,IAAIjK,GAAGrC,EAAEJ,EAAE0M,IAAI1G,GAAG,GAAG1F,GAAGF,EAAE,OAAOE,GAAG0F,GAAG5F,GAAGqC,EAAE,IAAIa,GAAG,EAAE5D,GAAE,EAAGQ,EAAE,EAAEkB,EAAE,IAAIgC,OAAE,EAAO,IAAIpD,EAAEyM,IAAIhK,EAAEuD,GAAGhG,EAAEyM,IAAIzG,EAAEvD,KAAKa,EAAE2C,GAAG,CAAC,IAAIC,EAAEzD,EAAEa,GAAGnE,EAAE6G,EAAE1C,GAAG,GAAGV,EAAE,IAAIY,EAAE3E,EAAE+D,EAAEzD,EAAE+G,EAAE5C,EAAE0C,EAAEvD,EAAEzC,GAAG4C,EAAEsD,EAAE/G,EAAEmE,EAAEb,EAAEuD,EAAEhG,GAAG,QAAG,IAASwD,EAAE,CAAC,GAAGA,EAAE,SAAS9D,GAAE,EAAG,KAAK,CAAC,GAAGQ,GAAG,IAAIX,EAAEyG,GAAG,SAAS5C,EAAE7D,GAAG,IAAIc,EAAEH,EAAEX,KAAK2G,IAAI9C,GAAGnD,EAAEiG,EAAE9C,EAAEhC,EAAEwB,EAAE5C,IAAI,OAAOE,EAAEuB,KAAKlC,EAAG,IAAG,CAACG,GAAE,EAAG,KAAK,OAAO,GAAGwG,IAAI/G,IAAIc,EAAEiG,EAAE/G,EAAEiC,EAAEwB,EAAE5C,GAAG,CAACN,GAAE,EAAG,KAAK,CAAC,CAAC,OAAOM,EAAE+E,OAAOtC,GAAGzC,EAAE+E,OAAOiB,GAAGtG,CAAC,EAAE0Z,EAAE,CAAC,SAASyO,KAAK,OAAGpO,KAAoBA,GAAG,EAAED,GAAG,SAASpW,GAAG,IAAI7D,GAAG,EAAEc,EAAEqB,MAAM0B,EAAEkJ,MAAM,OAAOlJ,EAAEmB,SAAO,SAAWnB,GAAG/C,IAAId,GAAG6D,CAAE,IAAG/C,CAAC,GAAlGmZ,EAAsG,CAAq6B,SAASsO,KAAK,GAAG/N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3W,EAAEgL,KAAK7O,EAAEqoB,KAAKvnB,EAAz9B,WAAc,GAAGsZ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvW,EAAE2J,KAAKxN,EAAEqmB,KAAKvlB,EAAE4L,KAAKxJ,EAAEmlB,KAAK5hB,GAAGuT,KAAKA,GAAG,EAAED,GAAG,SAASlW,GAAG,IAAI7D,GAAG,EAAEc,EAAEqB,MAAM0B,EAAEkJ,MAAM,OAAOlJ,EAAEmB,SAAO,SAAWnB,EAAEX,GAAGpC,IAAId,GAAG,CAACkD,EAAEW,EAAG,IAAG/C,CAAC,GAAGiZ,IAAIlY,EAAEymB,KAAKjlB,EAAEQ,EAAEA,EAAE/D,eAAU,EAAOY,EAAE2C,EAAEA,EAAE+jB,aAAQ,EAAO,OAAOjN,GAAG,SAAStW,EAAER,EAAE5C,EAAEnB,EAAEoH,EAAE/G,EAAEoB,GAAG,OAAON,GAAG,IAAI,oBAAoB,GAAGoD,EAAE2iB,YAAYnjB,EAAEmjB,YAAY3iB,EAAE8iB,YAAYtjB,EAAEsjB,WAAW,OAAM,EAAG9iB,EAAEA,EAAE6iB,OAAOrjB,EAAEA,EAAEqjB,OAAO,IAAI,uBAAuB,QAAQ7iB,EAAE2iB,YAAYnjB,EAAEmjB,aAAa7mB,EAAE,IAAIK,EAAE6D,GAAG,IAAI7D,EAAEqD,KAAK,IAAI,mBAAmB,IAAI,gBAAgB,IAAI,kBAAkB,OAAOvC,GAAG+C,GAAGR,GAAG,IAAI,iBAAiB,OAAOQ,EAAE2kB,MAAMnlB,EAAEmlB,MAAM3kB,EAAE4kB,SAASplB,EAAEolB,QAAQ,IAAI,kBAAkB,IAAI,kBAAkB,OAAO5kB,GAAGR,EAAE,GAAG,IAAI,eAAe,IAAIxC,EAAE4F,EAAE,IAAI,eAAe,IAAI1C,EAAE,EAAEzE,EAAE,GAAGuB,IAAIA,EAAEgB,GAAGgC,EAAEkJ,MAAM1J,EAAE0J,OAAOhJ,EAAE,OAAM,EAAG,IAAI5D,EAAEY,EAAEoM,IAAItJ,GAAG,GAAG1D,EAAE,OAAOA,GAAGkD,EAAE/D,GAAG,EAAEyB,EAAEmM,IAAIrJ,EAAER,GAAG,IAAI1C,EAAEuC,EAAErC,EAAEgD,GAAGhD,EAAEwC,GAAG/D,EAAEoH,EAAE/G,EAAEoB,GAAG,OAAOA,EAAEyE,OAAO3B,GAAGlD,EAAE,IAAI,kBAAkB,GAAGD,EAAE,OAAOA,EAAEM,KAAK6C,IAAInD,EAAEM,KAAKqC,GAAG,OAAM,CAAE,CAAC,CAAwDqlB,GAAKxlB,EAAE,WAAW,GAAGoX,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzW,EAAEmiB,KAAKhmB,EAAEH,OAAOC,UAAUC,eAAe,OAAOsa,GAAG,SAASvZ,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAAE3C,GAAG,IAAID,EAAE,EAAEgG,EAAEnH,EAAEuE,EAAE/C,GAAG4F,EAAEpH,EAAEyC,OAAO,GAAG2E,GAAG7C,EAAEX,GAAGnB,SAAStB,EAAE,OAAM,EAAG,IAAI,IAAId,EAAE+G,EAAE/G,KAAK,CAAC,IAAIoB,EAAEzB,EAAEK,GAAG,KAAKc,EAAEM,KAAKmC,EAAElD,EAAEgB,KAAKkC,EAAEnC,IAAI,OAAM,CAAE,CAAC,IAAIF,EAAEH,EAAEyM,IAAIrM,GAAGiD,EAAErD,EAAEyM,IAAIjK,GAAG,GAAGrC,GAAGkD,EAAE,OAAOlD,GAAGqC,GAAGa,GAAGjD,EAAE,IAAIX,GAAE,EAAGO,EAAEwM,IAAIpM,EAAEoC,GAAGxC,EAAEwM,IAAIhK,EAAEpC,GAAG,IAAI,IAAIH,EAAEF,IAAId,EAAE+G,GAAG,CAAC,IAAIC,EAAE7F,EAAEC,EAAEzB,EAAEK,IAAIC,EAAEsD,EAAEnC,GAAG,GAAGc,EAAE,IAAIoC,EAAExD,EAAEoB,EAAEjC,EAAE+G,EAAE5F,EAAEmC,EAAEpC,EAAEJ,GAAGmB,EAAE8E,EAAE/G,EAAEmB,EAAED,EAAEoC,EAAExC,GAAG,UAAK,IAASuD,EAAE0C,IAAI/G,GAAGyD,EAAEsD,EAAE/G,EAAE6G,EAAE5E,EAAEnB,GAAGuD,GAAG,CAAC9D,GAAE,EAAG,KAAK,CAACQ,IAAIA,EAAE,eAAeI,EAAE,CAAC,GAAGZ,IAAIQ,EAAE,CAAC,IAAIC,EAAEE,EAAEqS,YAAYvM,EAAE1D,EAAEiQ,YAAYvS,GAAGgG,KAAK,gBAAgB9F,MAAM,gBAAgBoC,IAAI,mBAAmBtC,GAAGA,aAAaA,GAAG,mBAAmBgG,GAAGA,aAAaA,IAAIzG,GAAE,EAAG,CAAC,OAAOO,EAAE8E,OAAO1E,GAAGJ,EAAE8E,OAAOtC,GAAG/C,CAAC,CAAC,CAAjrB,GAAqrBsG,EAAEyf,KAAKrkB,EAAE4N,KAAKpM,EAAEiN,KAAK5P,EAAEoS,KAAKrS,EAAE,qBAAqBnB,EAAE,iBAAiBoH,EAAE,kBAAkB/G,EAAEE,OAAOC,UAAUC,eAAe,OAAOwa,GAAG,SAASxZ,EAAEF,EAAEkD,EAAE5D,EAAEQ,EAAEgG,GAAG,IAAI/G,EAAEiC,EAAEd,GAAGkD,EAAEpC,EAAEhB,GAAGD,EAAEhB,EAAEN,EAAEmH,EAAE1F,GAAG6F,EAAE3C,EAAE3E,EAAEmH,EAAE5F,GAAGgG,GAAGjG,EAAEA,GAAGH,EAAEiG,EAAE9F,IAAI8F,EAAEI,GAAGF,EAAEA,GAAGnG,EAAEiG,EAAEE,IAAIF,EAAElH,EAAEoB,GAAGgG,EAAE,GAAGpH,GAAG6D,EAAEtC,GAAG,CAAC,IAAIsC,EAAExC,GAAG,OAAM,EAAGjB,GAAE,EAAGiH,GAAE,CAAE,CAAC,GAAGrH,IAAIqH,EAAE,OAAOF,IAAIA,EAAE,IAAI9C,GAAGjE,GAAGc,EAAEK,GAAGf,EAAEe,EAAEF,EAAEkD,EAAE5D,EAAEQ,EAAEgG,GAAG7F,EAAEC,EAAEF,EAAED,EAAEmD,EAAE5D,EAAEQ,EAAEgG,GAAG,KAAK,EAAE5C,GAAG,CAAC,IAAIgD,EAAEF,GAAGlH,EAAEqB,KAAKD,EAAE,eAAeiG,EAAEF,GAAGnH,EAAEqB,KAAKH,EAAE,eAAe,GAAGkG,GAAGC,EAAE,CAAC,IAAIC,EAAEF,EAAEhG,EAAEqC,QAAQrC,EAAEmG,EAAEF,EAAEnG,EAAEuC,QAAQvC,EAAE,OAAO8F,IAAIA,EAAE,IAAI9C,GAAGlD,EAAEsG,EAAEC,EAAEnD,EAAE5D,EAAEwG,EAAE,CAAC,CAAC,QAAQnH,IAAImH,IAAIA,EAAE,IAAI9C,GAAGX,EAAEnC,EAAEF,EAAEkD,EAAE5D,EAAEQ,EAAEgG,GAAG,CAAC,CAAC,SAASgiB,KAAK,GAAGjO,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7W,EAAE0kB,KAAKvoB,EAAEsP,KAAK,OAAOmL,GAAG,SAAS3Z,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAAE3C,GAAG,OAAOwC,IAAIuD,IAAI,MAAMvD,GAAG,MAAMuD,IAAIzG,EAAEkD,KAAKlD,EAAEyG,GAAGvD,GAAGA,GAAGuD,GAAGA,EAAE5C,EAAEX,EAAEuD,EAAE5E,EAAEwB,EAAEvC,EAAEJ,GAAG,EAAE+Z,EAAE,CAAC,SAASmO,KAAK,GAAG9N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjX,EAAE8J,KAAK,OAAOkN,GAAG,SAAS7a,GAAG,OAAOA,GAAGA,IAAI6D,EAAE7D,EAAE,CAAC,CAAC,SAAS6oB,KAAK,OAAG3N,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAASpX,EAAE7D,GAAG,OAAO,SAASc,GAAG,OAAO,MAAMA,GAAIA,EAAE+C,KAAK7D,SAAI,IAASA,GAAG6D,KAAKhE,OAAOiB,GAAI,CAAC,EAAC,CAAssB,SAASgoB,KAAK,GAAGxN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzX,EAAE4J,KAAKzN,EAAEsP,KAAK,OAAO+L,GAAG,SAASva,GAAG,MAAM,iBAAiBA,GAAGd,EAAEc,IAAI,mBAAmB+C,EAAE/C,EAAE,CAAC,CAAC,SAASioB,KAAK,GAAGvN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3X,EAAE4L,KAAKzP,EAAE8oB,KAAKhoB,EAAE,mDAAmDoC,EAAE,QAAQ,OAAOqY,GAAG,SAAS9U,EAAE5E,GAAG,GAAGgC,EAAE4C,GAAG,OAAM,EAAG,IAAIpD,SAASoD,EAAE,QAAQ,UAAUpD,GAAG,UAAUA,GAAG,WAAWA,GAAG,MAAMoD,IAAIzG,EAAEyG,KAAMvD,EAAEkL,KAAK3H,KAAK3F,EAAEsN,KAAK3H,IAAI,MAAM5E,GAAG4E,KAAK5G,OAAOgC,EAAG,CAAC,CAA4f,SAASmnB,KAAK,OAAGhN,KAAoBA,GAAG,EAAED,GAAG,SAASlY,EAAE7D,GAAG,IAAI,IAAIc,GAAG,EAAEoC,EAAE,MAAMW,EAAE,EAAEA,EAAE9B,OAAO0E,EAAEtE,MAAMe,KAAKpC,EAAEoC,GAAGuD,EAAE3F,GAAGd,EAAE6D,EAAE/C,GAAGA,EAAE+C,GAAG,OAAO4C,CAAC,GAA7GsV,EAAiH,CAAC,SAASkN,KAAK,GAAG7M,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvY,EAAE,WAAW,GAAGqY,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrY,EAAE2J,KAAKxN,EAAEgpB,KAAKloB,EAAE2O,KAAKvM,EAAE4lB,KAAKriB,EAAE5C,EAAEA,EAAE/D,eAAU,EAAO+B,EAAE4E,EAAEA,EAAElE,cAAS,EAAO,OAAO0Z,GAAG,SAASpY,EAAE4C,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAG3F,EAAE2F,GAAG,OAAOzG,EAAEyG,EAAE5C,GAAG,GAAG,GAAGX,EAAEuD,GAAG,OAAO5E,EAAEA,EAAEb,KAAKyF,GAAG,GAAG,IAAIpD,EAAEoD,EAAE,GAAG,MAAM,KAAKpD,GAAG,EAAEoD,IAAG,IAAK,KAAKpD,CAAC,EAAE4Y,EAAE,CAAxQ,GAA4Q,OAAOE,GAAG,SAASnc,GAAG,OAAO,MAAMA,EAAE,GAAG6D,EAAE7D,EAAE,CAAC,CAAC,SAASkpB,KAAK,GAAG5M,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzY,EAAE4L,KAAKzP,EAAE+oB,KAAKjoB,EAAE,WAAW,GAAGgb,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjY,EAAtkC,WAAc,GAAG+X,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/X,EAAE,WAAW,GAAG6X,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7X,EAAE4K,KAAK,SAASzO,EAAEc,EAAEoC,GAAG,GAAG,mBAAmBpC,GAAG,MAAMoC,GAAG,mBAAmBA,EAAE,MAAM,IAAIimB,UAAU,uBAAuB,IAAI1iB,EAAE,WAAW,IAAI5C,EAAE/B,UAAU9B,EAAEkD,EAAEA,EAAEZ,MAAMuK,KAAKhJ,GAAGA,EAAE,GAAGhC,EAAE4E,EAAE2iB,MAAM,GAAGvnB,EAAEuL,IAAIpN,GAAG,OAAO6B,EAAEsL,IAAInN,GAAG,IAAIqD,EAAEvC,EAAEwB,MAAMuK,KAAKhJ,GAAG,OAAO4C,EAAE2iB,MAAMvnB,EAAEqL,IAAIlN,EAAEqD,IAAIxB,EAAEwB,CAAC,EAAE,OAAOoD,EAAE2iB,MAAM,IAAIppB,EAAEqpB,OAAOxlB,GAAG4C,CAAC,CAAC,OAAOzG,EAAEqpB,MAAMxlB,EAAE4X,GAAGzb,CAAC,CAAzW,GAA6W,OAAO2b,GAAG,SAAS3b,GAAG,IAAIc,EAAE+C,EAAE7D,GAAC,SAAW6D,GAAG,OAAO,MAAMX,EAAE6J,MAAM7J,EAAE0C,QAAQ/B,CAAE,IAAGX,EAAEpC,EAAEsoB,MAAM,OAAOtoB,CAAC,CAAC,CAA8kBwoB,GAAKtpB,EAAE,mGAAmGc,EAAE,WAAWoC,EAAEW,YAAYA,GAAG,IAAIX,EAAE,GAAG,OAAO,KAAKW,EAAE0lB,WAAW,IAAIrmB,EAAEhB,KAAK,IAAI2B,EAAEe,QAAQ5E,GAAC,SAAW6D,EAAE7D,EAAEyG,EAAE5E,GAAGqB,EAAEhB,KAAKuE,EAAE5E,EAAE+C,QAAQ9D,EAAE,MAAMd,GAAG6D,EAAG,IAAGX,CAAE,IAAG,OAAO2Y,GAAG3Y,CAAC,CAAlT,GAAsTA,EAAE+lB,KAAK,OAAO5M,GAAG,SAAS5V,EAAE5E,GAAG,OAAOgC,EAAE4C,GAAGA,EAAEzG,EAAEyG,EAAE5E,GAAG,CAAC4E,GAAG3F,EAAEoC,EAAEuD,GAAG,CAAC,CAAC,SAAS+iB,KAAK,GAAGhN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3Y,EAAEilB,KAAK,OAAOvM,GAAG,SAASvc,GAAG,GAAG,iBAAiBA,GAAG6D,EAAE7D,GAAG,OAAOA,EAAE,IAAIc,EAAEd,EAAE,GAAG,MAAM,KAAKc,GAAG,EAAEd,IAAG,IAAK,KAAKc,CAAC,CAAC,CAAC,SAAS2oB,KAAK,GAAG/M,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7Y,EAAEqlB,KAAKlpB,EAAEwpB,KAAK,OAAO/M,GAAG,SAAS3b,EAAEoC,GAAG,IAAI,IAAIuD,EAAE,EAAE5E,GAAGqB,EAAEW,EAAEX,EAAEpC,IAAIiB,OAAO,MAAMjB,GAAG2F,EAAE5E,GAAGf,EAAEA,EAAEd,EAAEkD,EAAEuD,OAAO,OAAOA,GAAGA,GAAG5E,EAAEf,OAAE,CAAM,CAAC,CAAC,SAAS4oB,KAAK,GAAG1M,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInZ,EAAEqlB,KAAKlpB,EAAEuP,KAAKzO,EAAE2O,KAAKvM,EAAEwN,KAAKjK,EAAEkK,KAAK9O,EAAE2nB,KAAK,OAAOzM,GAAG,SAAS1Z,EAAE3C,EAAED,GAAG,IAAI,IAAInB,GAAG,EAAEoH,GAAGhG,EAAEmD,EAAEnD,EAAE2C,IAAItB,OAAOpC,GAAE,IAAKL,EAAEoH,GAAG,CAAC,IAAI3F,EAAEc,EAAEnB,EAAEpB,IAAI,KAAKK,EAAE,MAAM0D,GAAG5C,EAAE4C,EAAEtC,IAAI,MAAMsC,EAAEA,EAAEtC,EAAE,CAAC,OAAOpB,KAAKL,GAAGoH,EAAE/G,KAAK+G,EAAE,MAAMrD,EAAE,EAAEA,EAAEtB,SAAS0E,EAAEC,IAAIxD,EAAEnC,EAAE2F,KAAK5F,EAAEuC,IAAIrD,EAAEqD,GAAG,CAAC,CAAC,SAASsmB,KAAK,GAAGzM,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrZ,EAAEiZ,GAAGD,IAAIC,GAAG,EAAED,GAAG,SAAShZ,EAAE7D,GAAG,OAAO,MAAM6D,GAAG7D,KAAKH,OAAOgE,EAAE,GAAG7D,EAAE0pB,KAAK,OAAOzM,GAAG,SAASnc,EAAEoC,GAAG,OAAO,MAAMpC,GAAGd,EAAEc,EAAEoC,EAAEW,EAAE,CAAC,CAAuU,SAAS+lB,KAAK,OAAGtM,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAASxZ,GAAG,OAAO,SAAS7D,GAAG,OAAO,MAAMA,OAAE,EAAOA,EAAE6D,EAAE,CAAC,EAAC,CAAsN,SAASgmB,KAAK,GAAGjM,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/Z,EAAx5H,WAAc,GAAGuX,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvX,EAAE,WAAW,GAAG+W,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/W,EAAEgL,KAAK7O,EAAE2oB,KAAK,OAAOhO,GAAG,SAAS7Z,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAIwB,EAAEoD,EAAE1E,OAAOrB,EAAE2C,EAAE5C,GAAGoB,EAAE,GAAG,MAAMf,EAAE,OAAOJ,EAAE,IAAII,EAAEjB,OAAOiB,GAAGuC,KAAK,CAAC,IAAI/D,EAAEmH,EAAEpD,GAAG,GAAG5C,GAAGnB,EAAE,GAAGA,EAAE,KAAKwB,EAAExB,EAAE,MAAMA,EAAE,KAAKwB,GAAG,OAAM,CAAE,CAAC,OAAOuC,EAAE3C,GAAG,CAAC,IAAIgG,GAAGpH,EAAEmH,EAAEpD,IAAI,GAAG1D,EAAEmB,EAAE4F,GAAG3F,EAAEzB,EAAE,GAAG,GAAGmB,GAAGnB,EAAE,IAAI,QAAG,IAASK,KAAK+G,KAAK5F,GAAG,OAAM,MAAO,CAAC,IAAID,EAAE,IAAIgD,EAAE,GAAGhC,EAAE,IAAIkC,EAAElC,EAAElC,EAAEoB,EAAE2F,EAAE5F,EAAEoC,EAAErC,GAAG,UAAK,IAASkD,EAAE/D,EAAEe,EAAEpB,EAAE,EAAEkC,EAAEhB,GAAGkD,GAAG,OAAM,CAAE,CAAC,CAAC,OAAM,CAAE,CAAC,CAAnY,GAAuY/D,EAAE,WAAW,GAAGgb,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInX,EAAE+kB,KAAK5oB,EAAEuT,KAAK,OAAOwH,GAAG,SAASja,GAAG,IAAI,IAAIoC,EAAElD,EAAEc,GAAG2F,EAAEvD,EAAEnB,OAAO0E,KAAK,CAAC,IAAI5E,EAAEqB,EAAEuD,GAAGpD,EAAEvC,EAAEe,GAAGqB,EAAEuD,GAAG,CAAC5E,EAAEwB,EAAEQ,EAAER,GAAG,CAAC,OAAOH,CAAC,CAAC,CAAnJ,GAAuJpC,EAAE+nB,KAAK,OAAO1N,GAAG,SAASjY,GAAG,IAAIuD,EAAEzG,EAAEkD,GAAG,OAAO,GAAGuD,EAAE1E,QAAQ0E,EAAE,GAAG,GAAG3F,EAAE2F,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI,SAASzG,GAAG,OAAOA,IAAIkD,GAAGW,EAAE7D,EAAEkD,EAAEuD,EAAE,CAAC,CAAC,CAAstGqjB,GAAK9pB,EAAlrB,WAAc,GAAGod,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvZ,EAAE8kB,KAAK3oB,EAAE,WAAW,GAAG4c,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/Y,EAAE4lB,KAAK,OAAO9M,GAAG,SAAS3c,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,MAAMzG,OAAE,EAAO6D,EAAE7D,EAAEc,GAAG,YAAO,IAAS2F,EAAEvD,EAAEuD,CAAC,CAAC,CAAvH,GAA2H3F,EAAE6oB,KAAKzmB,EAAE6lB,KAAKtiB,EAAEmiB,KAAK/mB,EAAEgnB,KAAKxlB,EAAEmmB,KAAK,OAAOrM,GAAG,SAASzc,EAAED,GAAG,OAAOyC,EAAExC,IAAI+F,EAAEhG,GAAGoB,EAAEwB,EAAE3C,GAAGD,GAAG,SAASyC,GAAG,IAAIuD,EAAEzG,EAAEkD,EAAExC,GAAG,YAAO,IAAS+F,GAAGA,IAAIhG,EAAEK,EAAEoC,EAAExC,GAAGmD,EAAEpD,EAAEgG,EAAE,EAAE,CAAC,CAAC,CAA+WsjB,GAAKjpB,EAAEinB,KAAK7kB,EAAEuM,KAAKhJ,EAAxR,WAAc,GAAGiX,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7Z,EAAE+lB,KAAK5pB,EAAE,WAAW,GAAGwd,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3Z,EAAE4lB,KAAK,OAAOlM,GAAG,SAASvd,GAAG,OAAO,SAASc,GAAG,OAAO+C,EAAE/C,EAAEd,EAAE,CAAC,CAAC,CAAnG,GAAuGc,EAAEioB,KAAK7lB,EAAEsmB,KAAK,OAAO/L,GAAG,SAAShX,GAAG,OAAO3F,EAAE2F,GAAG5C,EAAEX,EAAEuD,IAAIzG,EAAEyG,EAAE,CAAC,CAAsEujB,GAAK,OAAOrM,GAAG,SAAS9b,GAAG,MAAM,mBAAmBA,EAAEA,EAAE,MAAMA,EAAEf,EAAE,iBAAiBe,EAAEqB,EAAErB,GAAG7B,EAAE6B,EAAE,GAAGA,EAAE,IAAIgC,EAAEhC,GAAG4E,EAAE5E,EAAE,CAAC,CAAC,SAASooB,KAAK,GAAGnM,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIja,EAAE0hB,KAAKvlB,EAAE,WAAW,GAAGkZ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrV,EAAEikB,KAAK,OAAO7O,GAAG,SAASjZ,EAAEc,GAAG,IAAIoC,EAAE,GAAG,OAAOW,EAAE7D,GAAG,SAAS6D,EAAE7D,EAAEyG,GAAG3F,EAAE+C,EAAE7D,EAAEyG,IAAIvD,EAAEhB,KAAK2B,EAAG,IAAGX,CAAC,CAAC,CAAjI,GAAqIpC,EAAE+oB,KAAK3mB,EAAEuM,KAAK,OAAOoO,GAAG,SAASpX,EAAE5E,GAAG,OAAOqB,EAAEuD,GAAG5C,EAAE7D,GAAGyG,EAAE3F,EAAEe,EAAE,GAAG,CAAC,CAAC,SAASqoB,KAAK,GAAGhM,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIra,EAAE,WAAW,GAAGma,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIna,EAAEhE,OAAOC,UAAUC,eAAe,OAAOge,GAAG,SAAS/d,EAAEc,GAAG,OAAO,MAAMd,GAAG6D,EAAE7C,KAAKhB,EAAEc,EAAE,CAAC,CAA1H,GAA8Hd,EAAE0pB,KAAK,OAAOzL,GAAG,SAASnd,EAAEoC,GAAG,OAAO,MAAMpC,GAAGd,EAAEc,EAAEoC,EAAEW,EAAE,CAAC,CAAC,SAASsmB,KAAK,GAAG/L,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIva,EAAEwP,KAAKrT,EAAEkmB,KAAKplB,EAAEyO,KAAKrM,EAAEuM,KAAKhJ,EAAE6M,KAAKzR,EAAEyO,KAAKjN,EAAE6P,KAAKxS,EAAEoS,KAAKrS,EAAEZ,OAAOC,UAAUC,eAAe,OAAOoe,GAAG,SAAS7e,GAAG,GAAG,MAAMA,EAAE,OAAM,EAAG,GAAGmH,EAAEnH,KAAK4D,EAAE5D,IAAI,iBAAiBA,GAAG,mBAAmBA,EAAE0N,QAAQnL,EAAEvC,IAAIoB,EAAEpB,IAAIwB,EAAExB,IAAI,OAAOA,EAAEyC,OAAO,IAAI2E,EAAE1G,EAAEV,GAAG,GAAG,gBAAgBoH,GAAG,gBAAgBA,EAAE,OAAOpH,EAAEyN,KAAK,GAAG1J,EAAE/D,GAAG,OAAOuE,EAAEvE,GAAGyC,OAAO,IAAI,IAAIpC,KAAKL,EAAE,GAAGmB,EAAEO,KAAK1B,EAAEK,GAAG,OAAM,EAAG,OAAM,CAAE,CAAC,CAAC,SAASyqB,KAAK,OAAG9L,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAASxa,GAAG,YAAO,IAASA,CAAC,EAAC,CAAC,SAASwmB,KAAK,GAAG7L,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3a,EAAEikB,KAAK9nB,EAAEsT,KAAK,OAAOiL,GAAG,SAASzd,EAAEoC,GAAG,IAAIuD,GAAG,EAAE5E,EAAE7B,EAAEc,GAAGqB,MAAMrB,EAAEiB,QAAQ,GAAG,OAAO8B,EAAE/C,YAAY+C,EAAE7D,EAAEc,GAAGe,IAAI4E,GAAGvD,EAAEW,EAAE7D,EAAEc,EAAG,IAAGe,CAAC,CAAC,CAAC,SAASyoB,KAAK,GAAG5L,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7a,EAAEmlB,KAAKhpB,EAAE6pB,KAAK/oB,EAAEupB,KAAKnnB,EAAEuM,KAAK,OAAOgP,GAAG,SAAShY,EAAE5E,GAAG,OAAOqB,EAAEuD,GAAG5C,EAAE/C,GAAG2F,EAAEzG,EAAE6B,EAAE,GAAG,CAAC,CAAC,SAAS0oB,KAAK,GAAGvL,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInb,GAAG+a,KAAKA,GAAG,EAAED,GAAG,SAAS9a,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,GAAG,EAAE5E,EAAE,MAAMgC,EAAE,EAAEA,EAAE9B,OAAO,IAAImB,GAAGrB,IAAIf,EAAE+C,IAAI4C,MAAMA,EAAE5E,GAAGf,EAAEd,EAAEc,EAAE+C,EAAE4C,GAAGA,EAAE5C,GAAG,OAAO/C,CAAC,GAAG6d,IAAI3e,EAAE8nB,KAAKhnB,EAAE+oB,KAAK3mB,EAAE4b,GAAGD,IAAIC,GAAG,EAAED,GAAG,SAAShb,EAAE7D,EAAEc,EAAEoC,EAAEuD,GAAG,OAAOA,EAAE5C,GAAC,SAAWA,EAAE4C,EAAE5E,GAAGf,EAAEoC,GAAGA,GAAE,EAAGW,GAAG7D,EAAEc,EAAE+C,EAAE4C,EAAE5E,EAAG,IAAGf,CAAC,GAAG2F,EAAEgJ,KAAK,OAAOsP,GAAG,SAASld,EAAEwB,EAAE3C,GAAG,IAAID,EAAEgG,EAAE5E,GAAGgC,EAAEX,EAAE5D,EAAEwC,UAAUC,OAAO,EAAE,OAAOtB,EAAEoB,EAAEf,EAAEuC,EAAE,GAAG3C,EAAEpB,EAAEU,EAAE,EAAE+e,EAAE,CAA8yB,SAASyL,KAAK,GAAG5K,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/b,EAAEwP,KAAKrT,EAAEkmB,KAAKplB,EAAEwS,KAAKpQ,EAAE,WAAW,GAAGgc,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrb,EAAE4J,KAAKzN,EAAEyP,KAAK3O,EAAEwO,KAAK,OAAO2P,GAAG,SAAS/b,GAAG,MAAM,iBAAiBA,IAAIlD,EAAEkD,IAAIpC,EAAEoC,IAAI,mBAAmBW,EAAEX,EAAE,CAAC,CAA9I,GAAkJuD,EAA7/B,WAAc,GAAGiZ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7b,EAAE,WAAW,GAAGub,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvb,EAAE+lB,KAAK,UAAU,OAAOzK,GAAGtb,CAAC,CAAhE,GAAoE7D,EAAE,WAAW,GAAGsf,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzb,EAAEsK,OAAO,uFAAuF,OAAOkR,GAAG,SAASrf,GAAG,OAAO6D,EAAEuK,KAAKpO,EAAE,CAAC,CAA3K,GAA+Kc,EAAE,WAAW,GAAG0e,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3b,EAAE,kBAAkB7D,EAAE,IAAI6D,EAAE,IAAI/C,EAAE,kDAAkDoC,EAAE,2BAA2BuD,EAAE,KAAK5C,EAAE,IAAIhC,EAAE,kCAAkCwB,EAAE,qCAAqC3C,EAAE,MAAMI,EAAE,IAAIoC,EAAE,KAAKzC,EAAE,oBAAoBnB,EAAEmB,EAAEC,EAAE,gBAAgB,CAAC+F,EAAE5E,EAAEwB,GAAGb,KAAK,KAAK,IAAI/B,EAAEC,EAAE,KAAKgG,EAAE,MAAM,CAACD,EAAE3F,EAAE,IAAIA,EAAEe,EAAEwB,EAAErD,GAAGwC,KAAK,KAAK,IAAI7C,EAAEwO,OAAOjL,EAAE,MAAMA,EAAE,KAAKwD,EAAEpH,EAAE,KAAK,OAAOigB,GAAG,SAAS1b,GAAG,IAAI,IAAI7D,EAAEL,EAAEwnB,UAAU,EAAExnB,EAAEyO,KAAKvK,MAAM7D,EAAE,OAAOA,CAAC,CAAC,CAA5d,GAAge,OAAOyf,GAAG,SAASvc,GAAG,OAAOlD,EAAEkD,GAAGpC,EAAEoC,GAAGW,EAAEX,EAAE,CAAC,CAAmNunB,GAAK,OAAO9K,GAAG,SAAS9d,GAAG,GAAG,MAAMA,EAAE,OAAO,EAAE,GAAGf,EAAEe,GAAG,OAAOqB,EAAErB,GAAG4E,EAAE5E,GAAGA,EAAEE,OAAO,IAAIsB,EAAErD,EAAE6B,GAAG,MAAM,gBAAgBwB,GAAG,gBAAgBA,EAAExB,EAAEkL,KAAKlJ,EAAEhC,GAAGE,MAAM,CAAC,CAAC,SAAS2oB,KAAK,GAAG5K,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjc,EAAEiL,KAAK9O,EAAE4mB,KAAK9lB,EAAE+mB,KAAK3kB,EAAE2mB,KAAKpjB,EAAEmf,KAAK/jB,EAAE4N,KAAKpM,EAAEiN,KAAK5P,EAAEkN,KAAKnN,EAAEkN,KAAKrO,EAAEwT,KAAK,OAAO+M,GAAG,SAASnZ,EAAE/G,EAAEoB,GAAG,IAAIF,EAAEgB,EAAE6E,GAAG3C,EAAElD,GAAGwC,EAAEqD,IAAIpH,EAAEoH,GAAG,GAAG/G,EAAEuD,EAAEvD,EAAE,GAAG,MAAMoB,EAAE,CAAC,IAAIZ,EAAEuG,GAAGA,EAAEyM,YAAYpS,EAAEgD,EAAElD,EAAE,IAAIV,EAAE,GAAGM,EAAEiG,IAAIhG,EAAEP,GAAGH,EAAEyG,EAAEC,IAAI,CAAE,CAAA,CAAC,OAAO3C,EAAEF,EAAE/C,GAAG4F,GAAG,SAAS7C,EAAE7D,EAAEc,GAAG,OAAOnB,EAAEoB,EAAE8C,EAAE7D,EAAEc,EAAG,IAAGC,CAAC,CAAC,CAAC,SAAS4pB,KAAK,GAAGzK,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrc,EAAE8hB,KAAK3lB,EAAE,WAAW,GAAGggB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInc,EAAE2J,KAAKxN,EAAEuP,KAAKzO,EAAE2O,KAAKvM,EAAEW,EAAEA,EAAE+mB,wBAAmB,EAAO,OAAO7K,GAAG,SAASlc,GAAG,OAAO/C,EAAE+C,IAAI7D,EAAE6D,OAAOX,GAAGW,GAAGA,EAAEX,GAAG,CAAC,CAAjJ,GAAqJ,OAAO+c,GAAG,SAASnf,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAAE3C,GAAG,IAAID,GAAG,EAAEnB,EAAE4D,EAAEnB,OAAO,IAAIF,IAAIA,EAAE7B,GAAGU,IAAIA,EAAE,MAAMD,EAAEnB,GAAG,CAAC,IAAIoH,EAAExD,EAAEzC,GAAGgG,EAAE,GAAG5E,EAAE6E,GAAGD,EAAE,EAAE3F,EAAE4F,EAAED,EAAE,EAAE5E,EAAEwB,EAAE3C,GAAGmD,EAAEnD,EAAEgG,GAAGrD,IAAI3C,EAAEA,EAAEqB,QAAQ2E,EAAE,CAAC,OAAOhG,CAAC,EAAEuf,EAAE,CAAC,SAAS4K,KAAK,GAAGvK,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzc,EAAEuc,GAAGD,IAAIC,GAAG,EAAED,GAAG,SAAStc,EAAE7D,EAAEc,GAAG,OAAOA,EAAEiB,QAAQ,KAAK,EAAE,OAAO8B,EAAE7C,KAAKhB,GAAG,KAAK,EAAE,OAAO6D,EAAE7C,KAAKhB,EAAEc,EAAE,IAAI,KAAK,EAAE,OAAO+C,EAAE7C,KAAKhB,EAAEc,EAAE,GAAGA,EAAE,IAAI,KAAK,EAAE,OAAO+C,EAAE7C,KAAKhB,EAAEc,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI,OAAO+C,EAAEvB,MAAMtC,EAAEc,EAAE,GAAGd,EAAE8qB,KAAKC,IAAI,OAAO1K,GAAG,SAASvf,EAAEoC,EAAEuD,GAAG,OAAOvD,EAAElD,OAAE,IAASkD,EAAEpC,EAAEiB,OAAO,EAAEmB,EAAE,GAAG,WAAW,IAAI,IAAIrB,EAAEC,UAAUuB,GAAG,EAAE3C,EAAEV,EAAE6B,EAAEE,OAAOmB,EAAE,GAAGzC,EAAE0B,MAAMzB,KAAK2C,EAAE3C,GAAGD,EAAE4C,GAAGxB,EAAEqB,EAAEG,GAAGA,GAAG,EAAE,IAAI,IAAI/D,EAAE6C,MAAMe,EAAE,KAAKG,EAAEH,GAAG5D,EAAE+D,GAAGxB,EAAEwB,GAAG,OAAO/D,EAAE4D,GAAGuD,EAAEhG,GAAGoD,EAAE/C,EAAE+L,KAAKvN,EAAE,CAAC,EAAE+gB,EAAE,CAAC,SAAS2K,KAAK,GAAGpK,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/c,EAAE,WAAW,GAAG2c,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3c,EAAE8jB,KAAK3nB,EAAE+O,KAAKjO,EAAEinB,KAAK,OAAOxH,GAAGvgB,EAAE,SAASc,EAAEoC,GAAG,OAAOlD,EAAEc,EAAE,WAAW,CAACmO,cAAa,EAAGC,YAAW,EAAG9L,MAAMS,EAAEX,GAAGiM,UAAS,GAAI,EAAErO,CAAC,CAAnK,GAAuKd,EAAE,WAAW,GAAG0gB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7c,EAAEonB,KAAKC,IAAI,OAAOzK,GAAG,SAASzgB,GAAG,IAAIc,EAAE,EAAEoC,EAAE,EAAE,OAAO,WAAW,IAAIuD,EAAE5C,IAAIhC,EAAE,IAAI4E,EAAEvD,GAAG,GAAGA,EAAEuD,EAAE5E,EAAE,GAAG,KAAKf,GAAG,IAAI,OAAOgB,UAAU,QAAQhB,EAAE,EAAE,OAAOd,EAAEsC,WAAM,EAAOR,UAAU,CAAC,EAAE2e,EAAE,CAAlN,GAAsN3f,EAAEd,EAAE6D,GAAG,OAAO8c,GAAG7f,CAAC,CAAC,SAASqqB,KAAK,GAAGrK,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjd,EAAEkkB,KAAK/nB,EAAE6qB,KAAK/pB,EAAEkqB,KAAK,OAAOnK,GAAG,SAAS3d,EAAEuD,GAAG,OAAO3F,EAAEd,EAAEkD,EAAEuD,EAAE5C,GAAGX,EAAE,GAAG,EAAE2d,EAAE,CAAC,SAASuK,KAAK,OAAGpK,KAAoBA,GAAG,EAAED,GAAG,SAASld,EAAE7D,EAAEc,EAAEoC,GAAG,IAAI,IAAIuD,EAAE5C,EAAE9B,OAAOF,EAAEf,GAAGoC,EAAE,GAAG,GAAGA,EAAErB,MAAMA,EAAE4E,GAAG,GAAGzG,EAAE6D,EAAEhC,GAAGA,EAAEgC,GAAG,OAAOhC,EAAE,OAAO,CAAC,GAAjHkf,EAAqH,CAAwZ,SAASsK,KAAK,GAAGrJ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIne,EAAEskB,KAAKnoB,EAAE,WAAW,GAAGwhB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3d,EAA3e,WAAc,GAAGyd,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzd,EAAEunB,KAAKprB,EAAEkhB,GAAGD,IAAIC,GAAG,EAAED,GAAG,SAASpd,GAAG,OAAOA,GAAGA,CAAC,GAAG/C,GAAGsgB,KAAKA,GAAG,EAAED,GAAG,SAAStd,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,EAAEpC,EAAE,EAAE2F,EAAE5C,EAAE9B,SAASmB,EAAEuD,GAAG,GAAG5C,EAAEX,KAAKlD,EAAE,OAAOkD,EAAE,OAAO,CAAC,GAAGie,IAAI,OAAOE,GAAG,SAASne,EAAEuD,EAAE5E,GAAG,OAAO4E,GAAGA,EAAE3F,EAAEoC,EAAEuD,EAAE5E,GAAGgC,EAAEX,EAAElD,EAAE6B,EAAE,EAAEwf,EAAE,CAAqPiK,GAAK,OAAO/J,GAAG,SAASvhB,EAAEc,GAAG,QAAQ,MAAMd,IAAIA,EAAE+B,SAAS8B,EAAE7D,EAAEc,EAAE,IAAI,CAAC,EAAEygB,EAAE,CAA/G,GAAmHzgB,GAAG4gB,KAAKA,GAAG,EAAED,GAAG,SAAS5d,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,GAAG,EAAEuD,EAAE,MAAM5C,EAAE,EAAEA,EAAE9B,SAASmB,EAAEuD,GAAG,GAAG3F,EAAEd,EAAE6D,EAAEX,IAAI,OAAM,EAAG,OAAM,CAAE,GAAGue,IAAIve,EAAEklB,KAAK3hB,EAAtb,WAAc,GAAGqb,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIje,EAAEoiB,KAAKjmB,EAAE4hB,GAAGD,IAAIC,GAAG,EAAED,GAAG,WAAU,GAAI7gB,EAAEwnB,KAAKplB,EAAEW,GAAG,EAAE/C,EAAE,IAAI+C,EAAE,CAAA,EAAG,KAAK,IAAI,IAAI,SAAS7D,GAAG,OAAO,IAAI6D,EAAE7D,EAAE,EAAEA,EAAE,OAAO6hB,GAAG3e,CAAC,CAA2RqoB,GAAK1pB,EAAEymB,KAAK,OAAOvG,GAAG,SAAS1e,EAAE3C,EAAED,GAAG,IAAInB,GAAG,EAAEoH,EAAE1G,EAAEL,EAAE0D,EAAEtB,OAAOhB,GAAE,EAAGF,EAAE,GAAGkD,EAAElD,EAAE,GAAGJ,EAAEM,GAAE,EAAG2F,EAAE5F,OAAO,GAAGnB,GAAG,IAAI,CAAC,IAAIQ,EAAEO,EAAE,KAAK+F,EAAEpD,GAAG,GAAGlD,EAAE,OAAO0B,EAAE1B,GAAGY,GAAE,EAAG2F,EAAExD,EAAEa,EAAE,IAAIF,CAAC,MAAME,EAAErD,EAAE,GAAGG,EAAEgD,EAAE,OAAOvE,EAAEK,GAAG,CAAC,IAAIgB,EAAE0C,EAAE/D,GAAGqH,EAAEjG,EAAEA,EAAEC,GAAGA,EAAE,GAAGA,EAAEF,GAAG,IAAIE,EAAEA,EAAE,EAAEI,GAAG4F,GAAGA,EAAE,CAAC,IAAI,IAAI/G,EAAEmE,EAAEhC,OAAOnC,KAAK,GAAGmE,EAAEnE,KAAK+G,EAAE,SAAS9C,EAAEnD,GAAGqD,EAAE7B,KAAKyE,GAAG9F,EAAEqB,KAAKvB,EAAE,MAAM+F,EAAE3C,EAAE4C,EAAElG,KAAKsD,IAAIlD,GAAGkD,EAAE7B,KAAKyE,GAAG9F,EAAEqB,KAAKvB,GAAG,CAAC,OAAOE,CAAC,EAAEkhB,EAAE,CAAC,SAASyJ,KAAK,GAAGtJ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIre,EAAEyP,KAAKtT,EAAEsP,KAAK,OAAO2S,GAAG,SAASnhB,GAAG,OAAOd,EAAEc,IAAI+C,EAAE/C,EAAE,CAAC,CAAC,SAAS2qB,KAAK,GAAGrJ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIve,EAAE8mB,KAAK3qB,EAAEmrB,KAAKrqB,EAAEuqB,KAAKnoB,EAAEsoB,KAAK/kB,EAAEzG,YAAYA,GAAG,OAAOc,EAAE+C,EAAE7D,EAAE,EAAEkD,GAAE,GAAK,IAAG,OAAOif,GAAG1b,CAAC,CAAC,SAASilB,KAAK,GAAGlJ,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3e,EAAE,WAAW,GAAGye,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIze,EAAEmlB,KAAK,OAAO3G,GAAG,SAASriB,EAAEc,GAAG,OAAO+C,EAAE/C,GAAC,SAAW+C,GAAG,OAAO7D,EAAE6D,EAAG,GAAE,CAAC,CAA1G,GAA8G7D,EAAEuT,KAAK,OAAOgP,GAAG,SAASzhB,GAAG,OAAO,MAAMA,EAAE,GAAG+C,EAAE/C,EAAEd,EAAEc,GAAG,CAAC,CAAC,SAAS6qB,KAAK,GAAGjJ,GAAG,OAAOD,GAAG,IAAI5e,EAAE6e,GAAG,EAAE,IAAI7e,EAAE,CAAC+nB,MAAMlE,KAAKmE,SAASlE,KAAKmE,KAAK5D,KAAK6D,OAAO9B,KAAK7c,IAAI8c,KAAK9nB,QAAQqN,KAAKuc,QAAQ7B,KAAK8B,WAAWre,KAAKse,YAAY9B,KAAKpc,KAAKuF,KAAK/E,IAAI8b,KAAK6B,OAAO5B,KAAKxd,KAAKyd,KAAK4B,UAAU1B,KAAK2B,MAAMZ,KAAKa,OAAOZ,KAAK,CAAC,MAAM7nB,GAAI,CAAA,OAAOA,IAAIA,EAAElB,OAAOkE,GAAG4b,GAAG5e,CAAC,CAAC,SAAS0oB,KAAK,GAAG3J,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/e,EAAE8nB,KAAKhJ,GAAGlc,EAAE,IAAIzG,EAAE,KAAKc,EAAE,KAAKoC,EAAE,IAAI,SAASuD,EAAEzG,GAAG6M,KAAK2f,aAAa3oB,EAAEuJ,IAAIpN,EAAE,aAAaA,EAAEysB,SAAS5f,KAAK6f,gBAAgB7oB,EAAEuJ,IAAIpN,EAAE,eAAeA,EAAE2sB,WAAW9f,KAAK+f,cAAc/oB,EAAEuJ,IAAIpN,EAAE,aAAaA,EAAE6sB,SAAShgB,KAAKigB,YAAO,EAAOjgB,KAAKkgB,oBAAoBlpB,EAAEgoB,cAAS,GAAQhf,KAAKmgB,oBAAoBnpB,EAAEgoB,cAAS,GAAQhf,KAAKogB,OAAO,CAAE,EAACpgB,KAAK+f,cAAc/f,KAAKqgB,QAAQ,GAAGrgB,KAAKsgB,UAAU,CAAE,EAACtgB,KAAKsgB,UAAUrsB,GAAG,CAAA,GAAI+L,KAAKugB,IAAI,GAAGvgB,KAAKwgB,OAAO,CAAE,EAACxgB,KAAKygB,KAAK,CAAE,EAACzgB,KAAK0gB,MAAM,CAAA,EAAG1gB,KAAK2gB,UAAU,CAAA,EAAG3gB,KAAK4gB,YAAY,EAAE,CAAC,SAAS5rB,EAAEgC,EAAE7D,GAAG6D,EAAE7D,GAAG6D,EAAE7D,KAAK6D,EAAE7D,GAAG,CAAC,CAAC,SAASqD,EAAEQ,EAAE7D,KAAK6D,EAAE7D,WAAW6D,EAAE7D,EAAE,CAAC,SAASU,EAAEI,EAAE2F,EAAE5E,EAAEwB,GAAG,IAAI3C,EAAE,GAAG+F,EAAEhG,EAAE,GAAGoB,EAAE,IAAIf,GAAGJ,EAAED,EAAE,CAAC,IAAInB,EAAEoB,EAAEA,EAAED,EAAEA,EAAEnB,CAAC,CAAC,OAAOoB,EAAEwC,EAAEzC,EAAEyC,GAAGW,EAAEqoB,YAAY7oB,GAAGrD,EAAEqD,EAAE,CAAC,SAAS5C,EAAEoD,EAAE7D,GAAG,OAAOU,EAAEmD,EAAE7D,EAAE+D,EAAE/D,EAAEiE,EAAEjE,EAAEwoB,KAAK,CAAC,OAAO/hB,EAAE3G,UAAU4tB,WAAW,EAAEjnB,EAAE3G,UAAU6tB,WAAW,EAAElnB,EAAE3G,UAAU8tB,WAAW,WAAW,OAAO/gB,KAAK2f,WAAW,EAAE/lB,EAAE3G,UAAU+tB,aAAa,WAAW,OAAOhhB,KAAK6f,aAAa,EAAEjmB,EAAE3G,UAAUguB,WAAW,WAAW,OAAOjhB,KAAK+f,WAAW,EAAEnmB,EAAE3G,UAAUiuB,SAAS,SAASlqB,GAAG,OAAOgJ,KAAKigB,OAAOjpB,EAAEgJ,IAAI,EAAEpG,EAAE3G,UAAUkuB,MAAM,WAAW,OAAOnhB,KAAKigB,MAAM,EAAErmB,EAAE3G,UAAUmuB,oBAAoB,SAASjuB,GAAG,OAAO6D,EAAEooB,WAAWjsB,KAAKA,EAAE6D,EAAEgoB,SAAS7rB,IAAI6M,KAAKkgB,oBAAoB/sB,EAAE6M,IAAI,EAAEpG,EAAE3G,UAAUouB,UAAU,WAAW,OAAOrhB,KAAK6gB,UAAU,EAAEjnB,EAAE3G,UAAUquB,MAAM,WAAW,OAAOtqB,EAAEmK,KAAKnB,KAAKogB,OAAO,EAAExmB,EAAE3G,UAAUsuB,QAAQ,WAAW,IAAIpuB,EAAE6M,KAAK,OAAOhJ,EAAEkoB,OAAOlf,KAAKshB,SAAO,SAAWrtB,GAAG,OAAO+C,EAAEmoB,QAAQhsB,EAAEotB,IAAItsB,GAAI,GAAE,EAAE2F,EAAE3G,UAAUuuB,MAAM,WAAW,IAAIruB,EAAE6M,KAAK,OAAOhJ,EAAEkoB,OAAOlf,KAAKshB,SAAS,SAASrtB,GAAG,OAAO+C,EAAEmoB,QAAQhsB,EAAEstB,KAAKxsB,GAAI,GAAE,EAAE2F,EAAE3G,UAAUwuB,SAAS,SAAStuB,EAAEc,GAAG,IAAIoC,EAAEpB,UAAU2E,EAAEoG,KAAK,OAAOhJ,EAAEioB,KAAK9rB,GAAC,SAAW6D,GAAGX,EAAEnB,OAAO,EAAE0E,EAAE8nB,QAAQ1qB,EAAE/C,GAAG2F,EAAE8nB,QAAQ1qB,EAAG,IAAGgJ,IAAI,EAAEpG,EAAE3G,UAAUyuB,QAAQ,SAASvuB,EAAEkD,GAAG,OAAOW,EAAEuJ,IAAIP,KAAKogB,OAAOjtB,IAAI8B,UAAUC,OAAO,IAAI8K,KAAKogB,OAAOjtB,GAAGkD,GAAG2J,OAAOA,KAAKogB,OAAOjtB,GAAG8B,UAAUC,OAAO,EAAEmB,EAAE2J,KAAKkgB,oBAAoB/sB,GAAG6M,KAAK+f,cAAc/f,KAAKqgB,QAAQltB,GAAGc,EAAE+L,KAAKsgB,UAAUntB,GAAG,CAAE,EAAC6M,KAAKsgB,UAAUrsB,GAAGd,IAAG,GAAI6M,KAAKugB,IAAIptB,GAAG,CAAA,EAAG6M,KAAKwgB,OAAOrtB,GAAG,GAAG6M,KAAKygB,KAAKttB,GAAG,CAAE,EAAC6M,KAAK0gB,MAAMvtB,GAAG,CAAE,IAAG6M,KAAK6gB,WAAW7gB,KAAK,EAAEpG,EAAE3G,UAAU0uB,KAAK,SAAS3qB,GAAG,OAAOgJ,KAAKogB,OAAOppB,EAAE,EAAE4C,EAAE3G,UAAU2uB,QAAQ,SAASzuB,GAAG,OAAO6D,EAAEuJ,IAAIP,KAAKogB,OAAOjtB,EAAE,EAAEyG,EAAE3G,UAAU4uB,WAAW,SAAS1uB,GAAG,IAAIc,EAAE+L,KAAK,GAAGhJ,EAAEuJ,IAAIP,KAAKogB,OAAOjtB,GAAG,CAAC,IAAIkD,EAAE,SAASW,GAAG/C,EAAE6tB,WAAW7tB,EAAE0sB,UAAU3pB,GAAG,SAASgJ,KAAKogB,OAAOjtB,GAAG6M,KAAK+f,cAAc/f,KAAK+hB,4BAA4B5uB,UAAU6M,KAAKqgB,QAAQltB,GAAG6D,EAAEioB,KAAKjf,KAAKgiB,SAAS7uB,IAAE,SAAW6D,GAAG/C,EAAEguB,UAAUjrB,EAAG,WAAUgJ,KAAKsgB,UAAUntB,IAAI6D,EAAEioB,KAAKjoB,EAAEmK,KAAKnB,KAAKugB,IAAIptB,IAAIkD,UAAU2J,KAAKugB,IAAIptB,UAAU6M,KAAKwgB,OAAOrtB,GAAG6D,EAAEioB,KAAKjoB,EAAEmK,KAAKnB,KAAKygB,KAAKttB,IAAIkD,UAAU2J,KAAKygB,KAAKttB,UAAU6M,KAAK0gB,MAAMvtB,KAAK6M,KAAK6gB,UAAU,CAAC,OAAO7gB,IAAI,EAAEpG,EAAE3G,UAAUgvB,UAAU,SAAS9uB,EAAEkD,GAAG,IAAI2J,KAAK+f,YAAY,MAAM,IAAImC,MAAM,6CAA6C,GAAGlrB,EAAEqoB,YAAYhpB,GAAGA,EAAEpC,MAAM,CAAC,IAAI,IAAI2F,EAAEvD,GAAG,IAAIW,EAAEqoB,YAAYzlB,GAAGA,EAAEoG,KAAKmiB,OAAOvoB,GAAG,GAAGA,IAAIzG,EAAE,MAAM,IAAI+uB,MAAM,WAAW7rB,EAAE,iBAAiBlD,EAAE,yBAAyB6M,KAAK0hB,QAAQrrB,EAAE,CAAC,OAAO2J,KAAK0hB,QAAQvuB,GAAG6M,KAAK+hB,4BAA4B5uB,GAAG6M,KAAKqgB,QAAQltB,GAAGkD,EAAE2J,KAAKsgB,UAAUjqB,GAAGlD,IAAG,EAAG6M,IAAI,EAAEpG,EAAE3G,UAAU8uB,4BAA4B,SAAS/qB,UAAUgJ,KAAKsgB,UAAUtgB,KAAKqgB,QAAQrpB,IAAIA,EAAE,EAAE4C,EAAE3G,UAAUkvB,OAAO,SAASnrB,GAAG,GAAGgJ,KAAK+f,YAAY,CAAC,IAAI5sB,EAAE6M,KAAKqgB,QAAQrpB,GAAG,GAAG7D,IAAIc,EAAE,OAAOd,CAAC,CAAC,EAAEyG,EAAE3G,UAAU+uB,SAAS,SAAS7uB,GAAG,GAAG6D,EAAEqoB,YAAYlsB,KAAKA,EAAEc,GAAG+L,KAAK+f,YAAY,CAAC,IAAI1pB,EAAE2J,KAAKsgB,UAAUntB,GAAG,GAAGkD,EAAE,OAAOW,EAAEmK,KAAK9K,EAAE,KAAK,CAAC,GAAGlD,IAAIc,EAAE,OAAO+L,KAAKshB,QAAQ,GAAGthB,KAAK4hB,QAAQzuB,GAAG,MAAM,EAAE,CAAC,EAAEyG,EAAE3G,UAAUmvB,aAAa,SAASjvB,GAAG,IAAIc,EAAE+L,KAAKwgB,OAAOrtB,GAAG,GAAGc,EAAE,OAAO+C,EAAEmK,KAAKlN,EAAE,EAAE2F,EAAE3G,UAAUovB,WAAW,SAASlvB,GAAG,IAAIc,EAAE+L,KAAK0gB,MAAMvtB,GAAG,GAAGc,EAAE,OAAO+C,EAAEmK,KAAKlN,EAAE,EAAE2F,EAAE3G,UAAUqvB,UAAU,SAASnvB,GAAG,IAAIc,EAAE+L,KAAKoiB,aAAajvB,GAAG,GAAGc,EAAE,OAAO+C,EAAEwoB,MAAMvrB,EAAE+L,KAAKqiB,WAAWlvB,GAAG,EAAEyG,EAAE3G,UAAUsvB,OAAO,SAASvrB,GAAG,OAAO,KAAKgJ,KAAK+gB,aAAa/gB,KAAKqiB,WAAWrrB,GAAGgJ,KAAKsiB,UAAUtrB,IAAI9B,MAAM,EAAE0E,EAAE3G,UAAUuvB,YAAY,SAASrvB,GAAG,IAAIc,EAAE,IAAI+L,KAAKsG,YAAY,CAACsZ,SAAS5f,KAAK2f,YAAYG,WAAW9f,KAAK6f,cAAcG,SAAShgB,KAAK+f,cAAc9rB,EAAEitB,SAASlhB,KAAKmhB,SAAS,IAAI9qB,EAAE2J,KAAKhJ,EAAEioB,KAAKjf,KAAKogB,iBAAiBppB,EAAEX,GAAGlD,EAAEkD,IAAIpC,EAAEytB,QAAQrrB,EAAEW,EAAG,IAAGA,EAAEioB,KAAKjf,KAAK2gB,oBAAoB3pB,GAAG/C,EAAE2tB,QAAQ5qB,EAAEE,IAAIjD,EAAE2tB,QAAQ5qB,EAAEI,IAAInD,EAAEwuB,QAAQzrB,EAAEX,EAAEqsB,KAAK1rB,GAAI,IAAG,IAAI4C,EAAE,CAAE,EAAC,SAAS5E,EAAEgC,GAAG,IAAI7D,EAAEkD,EAAE8rB,OAAOnrB,GAAG,YAAO,IAAS7D,GAAGc,EAAE2tB,QAAQzuB,IAAIyG,EAAE5C,GAAG7D,EAAEA,GAAGA,KAAKyG,EAAEA,EAAEzG,GAAG6B,EAAE7B,EAAE,CAAC,OAAO6M,KAAK+f,aAAa/oB,EAAEioB,KAAKhrB,EAAEqtB,SAAO,SAAWtqB,GAAG/C,EAAEguB,UAAUjrB,EAAEhC,EAAEgC,GAAI,IAAG/C,CAAC,EAAE2F,EAAE3G,UAAU0vB,oBAAoB,SAASxvB,GAAG,OAAO6D,EAAEooB,WAAWjsB,KAAKA,EAAE6D,EAAEgoB,SAAS7rB,IAAI6M,KAAKmgB,oBAAoBhtB,EAAE6M,IAAI,EAAEpG,EAAE3G,UAAU2vB,UAAU,WAAW,OAAO5iB,KAAK8gB,UAAU,EAAElnB,EAAE3G,UAAU4vB,MAAM,WAAW,OAAO7rB,EAAEyoB,OAAOzf,KAAK2gB,UAAU,EAAE/mB,EAAE3G,UAAU6vB,QAAQ,SAAS3vB,EAAEc,GAAG,IAAIoC,EAAE2J,KAAKpG,EAAE3E,UAAU,OAAO+B,EAAEsoB,OAAOnsB,GAAG,SAAS6D,EAAE7D,GAAG,OAAOyG,EAAE1E,OAAO,EAAEmB,EAAEosB,QAAQzrB,EAAE7D,EAAEc,GAAGoC,EAAEosB,QAAQzrB,EAAE7D,GAAGA,CAAE,IAAG6M,IAAI,EAAEpG,EAAE3G,UAAUwvB,QAAQ,WAAW,IAAItvB,EAAEc,EAAEoC,EAAEuD,EAAEpD,GAAE,EAAG5C,EAAEqB,UAAU,GAAG,iBAAiBrB,GAAG,OAAOA,GAAG,MAAMA,GAAGT,EAAES,EAAEsD,EAAEjD,EAAEL,EAAEwD,EAAEf,EAAEzC,EAAE+nB,KAAK,IAAI1mB,UAAUC,SAAS0E,EAAE3E,UAAU,GAAGuB,GAAE,KAAMrD,EAAES,EAAEK,EAAEgB,UAAU,GAAGoB,EAAEpB,UAAU,GAAGA,UAAUC,OAAO,IAAI0E,EAAE3E,UAAU,GAAGuB,GAAE,IAAKrD,EAAE,GAAGA,EAAEc,EAAE,GAAGA,EAAE+C,EAAEqoB,YAAYhpB,KAAKA,EAAE,GAAGA,GAAG,IAAI5D,EAAEoB,EAAEmM,KAAK2f,YAAYxsB,EAAEc,EAAEoC,GAAG,GAAGW,EAAEuJ,IAAIP,KAAK4gB,YAAYnuB,GAAG,OAAO+D,IAAIwJ,KAAK4gB,YAAYnuB,GAAGmH,GAAGoG,KAAK,IAAIhJ,EAAEqoB,YAAYhpB,KAAK2J,KAAK6f,cAAc,MAAM,IAAIqC,MAAM,qDAAqDliB,KAAK0hB,QAAQvuB,GAAG6M,KAAK0hB,QAAQztB,GAAG+L,KAAK4gB,YAAYnuB,GAAG+D,EAAEoD,EAAEoG,KAAKmgB,oBAAoBhtB,EAAEc,EAAEoC,GAAG,IAAIwD,EAAE,SAAS7C,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,GAAGzG,EAAE6B,EAAE,GAAGf,EAAE,IAAI+C,GAAG4C,EAAE5E,EAAE,CAAC,IAAIwB,EAAEoD,EAAEA,EAAE5E,EAAEA,EAAEwB,CAAC,CAAC,IAAI3C,EAAE,CAACqD,EAAE0C,EAAExC,EAAEpC,GAAiB,OAAdqB,IAAIxC,EAAE8nB,KAAKtlB,GAAUxC,CAAC,CAAtG,CAAwGmM,KAAK2f,YAAYxsB,EAAEc,EAAEoC,GAAG,OAAOlD,EAAE0G,EAAE3C,EAAEjD,EAAE4F,EAAEzC,EAAEpE,OAAO+vB,OAAOlpB,GAAGmG,KAAK2gB,UAAUluB,GAAGoH,EAAE7E,EAAEgL,KAAKwgB,OAAOvsB,GAAGd,GAAG6B,EAAEgL,KAAK0gB,MAAMvtB,GAAGc,GAAG+L,KAAKugB,IAAItsB,GAAGxB,GAAGoH,EAAEmG,KAAKygB,KAAKttB,GAAGV,GAAGoH,EAAEmG,KAAK8gB,aAAa9gB,IAAI,EAAEpG,EAAE3G,UAAUyvB,KAAK,SAAS1rB,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,IAAIpB,UAAUC,OAAOtB,EAAEoM,KAAK2f,YAAY1qB,UAAU,IAAIpB,EAAEmM,KAAK2f,YAAY3oB,EAAE7D,EAAEc,GAAG,OAAO+L,KAAK4gB,YAAYvqB,EAAE,EAAEuD,EAAE3G,UAAU+vB,QAAQ,SAAS7vB,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,IAAI3E,UAAUC,OAAOtB,EAAEoM,KAAK2f,YAAY1qB,UAAU,IAAIpB,EAAEmM,KAAK2f,YAAYxsB,EAAEc,EAAEoC,GAAG,OAAOW,EAAEuJ,IAAIP,KAAK4gB,YAAYhnB,EAAE,EAAEA,EAAE3G,UAAU6uB,WAAW,SAAS9qB,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,IAAIpB,UAAUC,OAAOtB,EAAEoM,KAAK2f,YAAY1qB,UAAU,IAAIpB,EAAEmM,KAAK2f,YAAY3oB,EAAE7D,EAAEc,GAAG2F,EAAEoG,KAAK2gB,UAAUtqB,GAAG,OAAOuD,IAAI5C,EAAE4C,EAAE1C,EAAE/D,EAAEyG,EAAExC,SAAS4I,KAAK4gB,YAAYvqB,UAAU2J,KAAK2gB,UAAUtqB,GAAGG,EAAEwJ,KAAKwgB,OAAOrtB,GAAG6D,GAAGR,EAAEwJ,KAAK0gB,MAAM1pB,GAAG7D,UAAU6M,KAAKugB,IAAIptB,GAAGkD,UAAU2J,KAAKygB,KAAKzpB,GAAGX,GAAG2J,KAAK8gB,cAAc9gB,IAAI,EAAEpG,EAAE3G,UAAUgwB,QAAQ,SAAS9vB,EAAEc,GAAG,IAAIoC,EAAE2J,KAAKugB,IAAIptB,GAAG,GAAGkD,EAAE,CAAC,IAAIuD,EAAE5C,EAAEyoB,OAAOppB,GAAG,OAAOpC,EAAE+C,EAAEkoB,OAAOtlB,GAAG,SAAS5C,GAAG,OAAOA,EAAEE,IAAIjD,CAAE,IAAG2F,CAAC,CAAC,EAAEA,EAAE3G,UAAUiwB,SAAS,SAAS/vB,EAAEc,GAAG,IAAIoC,EAAE2J,KAAKygB,KAAKttB,GAAG,GAAGkD,EAAE,CAAC,IAAIuD,EAAE5C,EAAEyoB,OAAOppB,GAAG,OAAOpC,EAAE+C,EAAEkoB,OAAOtlB,GAAC,SAAW5C,GAAG,OAAOA,EAAEI,IAAInD,CAAE,IAAG2F,CAAC,CAAC,EAAEA,EAAE3G,UAAUkwB,UAAU,SAASnsB,EAAE7D,GAAG,IAAIc,EAAE+L,KAAKijB,QAAQjsB,EAAE7D,GAAG,GAAGc,EAAE,OAAOA,EAAEmvB,OAAOpjB,KAAKkjB,SAASlsB,EAAE7D,GAAG,EAAE2iB,EAAE,CAAC,SAASuN,KAAK,GAAGhN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrf,EAAE8nB,KAAK3rB,EAAEusB,KAAK,SAASzrB,EAAEd,GAAG,OAAO6D,EAAE2K,IAAIxO,EAAEmuB,SAAS,SAASrtB,GAAG,IAAIoC,EAAElD,EAAEwuB,KAAK1tB,GAAG2F,EAAEzG,EAAEgvB,OAAOluB,GAAGe,EAAE,CAACkC,EAAEjD,GAAG,OAAO+C,EAAEqoB,YAAYhpB,KAAKrB,EAAEuB,MAAMF,GAAGW,EAAEqoB,YAAYzlB,KAAK5E,EAAEmtB,OAAOvoB,GAAG5E,CAAE,GAAE,CAAC,SAASqB,EAAElD,GAAG,OAAO6D,EAAE2K,IAAIxO,EAAE0vB,SAAO,SAAW5uB,GAAG,IAAIoC,EAAElD,EAAEuvB,KAAKzuB,GAAG2F,EAAE,CAAC1C,EAAEjD,EAAEiD,EAAEE,EAAEnD,EAAEmD,GAAG,OAAOJ,EAAEqoB,YAAYprB,EAAE0nB,QAAQ/hB,EAAE+hB,KAAK1nB,EAAE0nB,MAAM3kB,EAAEqoB,YAAYhpB,KAAKuD,EAAErD,MAAMF,GAAGuD,CAAE,GAAE,CAAC,OAAOwc,GAAG,CAACkN,MAAM,SAASnwB,GAAG,IAAIyG,EAAE,CAAC2pB,QAAQ,CAAC3D,SAASzsB,EAAE4tB,aAAajB,WAAW3sB,EAAE6tB,eAAehB,SAAS7sB,EAAE8tB,cAAcK,MAAMrtB,EAAEd,GAAG0vB,MAAMxsB,EAAElD,IAA2D,OAAvD6D,EAAEqoB,YAAYlsB,EAAEguB,WAAWvnB,EAAErD,MAAMS,EAAE+nB,MAAM5rB,EAAEguB,UAAiBvnB,CAAC,EAAE4pB,KAAK,SAASvvB,GAAG,IAAIoC,EAAE,IAAIlD,EAAEc,EAAEsvB,SAASrC,SAASjtB,EAAEsC,OAAO,OAAOS,EAAEioB,KAAKhrB,EAAEqtB,OAAO,SAAStqB,GAAGX,EAAEqrB,QAAQ1qB,EAAEE,EAAEF,EAAET,OAAOS,EAAEmrB,QAAQ9rB,EAAE4rB,UAAUjrB,EAAEE,EAAEF,EAAEmrB,OAAQ,IAAGnrB,EAAEioB,KAAKhrB,EAAE4uB,OAAO,SAAS7rB,GAAGX,EAAEosB,QAAQ,CAACvrB,EAAEF,EAAEE,EAAEE,EAAEJ,EAAEI,EAAEukB,KAAK3kB,EAAE2kB,MAAM3kB,EAAET,MAAO,IAAGF,CAAC,EAAE,CAAC,SAASotB,KAAK,GAAGlN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvf,EAAE8nB,KAAK,OAAOxI,GAAG,SAASnjB,GAAG,IAAIc,EAAEoC,EAAE,CAAE,EAACuD,EAAE,GAAG,SAAS5E,EAAE4E,GAAG5C,EAAEuJ,IAAIlK,EAAEuD,KAAKvD,EAAEuD,IAAG,EAAG3F,EAAEoB,KAAKuE,GAAG5C,EAAEioB,KAAK9rB,EAAEkvB,WAAWzoB,GAAG5E,GAAGgC,EAAEioB,KAAK9rB,EAAEivB,aAAaxoB,GAAG5E,GAAG,CAAC,OAAOgC,EAAEioB,KAAK9rB,EAAEmuB,SAAO,SAAWtqB,GAAG/C,EAAE,GAAGe,EAAEgC,GAAG/C,EAAEiB,QAAQ0E,EAAEvE,KAAKpB,EAAG,IAAG2F,CAAC,EAAE0c,EAAE,CAAC,SAASoN,KAAK,GAAGjN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzf,EAAE8nB,KAAK,SAAS3rB,IAAI6M,KAAK2jB,KAAK,GAAG3jB,KAAK4jB,YAAY,CAAA,CAAE,CAAC,OAAOpN,GAAGrjB,EAAEA,EAAEF,UAAUiN,KAAK,WAAW,OAAOF,KAAK2jB,KAAKzuB,MAAM,EAAE/B,EAAEF,UAAUkO,KAAK,WAAW,OAAOnB,KAAK2jB,KAAKhiB,KAAK,SAAS3K,GAAG,OAAOA,EAAEzD,GAAI,GAAE,EAAEJ,EAAEF,UAAUsN,IAAI,SAASpN,GAAG,OAAO6D,EAAEuJ,IAAIP,KAAK4jB,YAAYzwB,EAAE,EAAEA,EAAEF,UAAU4wB,SAAS,SAAS7sB,GAAG,IAAI7D,EAAE6M,KAAK4jB,YAAY5sB,GAAG,QAAG,IAAS7D,EAAE,OAAO6M,KAAK2jB,KAAKxwB,GAAG0wB,QAAQ,EAAE1wB,EAAEF,UAAU6wB,IAAI,WAAW,GAAG,IAAI9jB,KAAKE,OAAO,MAAM,IAAIgiB,MAAM,mBAAmB,OAAOliB,KAAK2jB,KAAK,GAAGpwB,GAAG,EAAEJ,EAAEF,UAAUyF,IAAI,SAASvF,EAAEc,GAAG,IAAIoC,EAAE2J,KAAK4jB,YAAY,GAAGzwB,EAAEiT,OAAOjT,IAAI6D,EAAEuJ,IAAIlK,EAAElD,GAAG,CAAC,IAAIyG,EAAEoG,KAAK2jB,KAAK3uB,EAAE4E,EAAE1E,OAAO,OAAOmB,EAAElD,GAAG6B,EAAE4E,EAAEvE,KAAK,CAAC9B,IAAIJ,EAAE0wB,SAAS5vB,IAAI+L,KAAK+jB,UAAU/uB,IAAG,CAAE,CAAC,OAAM,CAAE,EAAE7B,EAAEF,UAAU+wB,UAAU,WAAWhkB,KAAKikB,MAAM,EAAEjkB,KAAK2jB,KAAKzuB,OAAO,GAAG,IAAI8B,EAAEgJ,KAAK2jB,KAAKvjB,MAAM,cAAcJ,KAAK4jB,YAAY5sB,EAAEzD,KAAKyM,KAAKkkB,SAAS,GAAGltB,EAAEzD,GAAG,EAAEJ,EAAEF,UAAUkxB,SAAS,SAASntB,EAAE7D,GAAG,IAAIc,EAAE+L,KAAK4jB,YAAY5sB,GAAG,GAAG7D,EAAE6M,KAAK2jB,KAAK1vB,GAAG4vB,SAAS,MAAM,IAAI3B,MAAM,uDAAuDlrB,EAAE,SAASgJ,KAAK2jB,KAAK1vB,GAAG4vB,SAAS,SAAS1wB,GAAG6M,KAAK2jB,KAAK1vB,GAAG4vB,SAAS1wB,EAAE6M,KAAK+jB,UAAU9vB,EAAE,EAAEd,EAAEF,UAAUixB,SAAS,SAASltB,GAAG,IAAI7D,EAAE6M,KAAK2jB,KAAK1vB,EAAE,EAAE+C,EAAEX,EAAEpC,EAAE,EAAE2F,EAAE5C,EAAE/C,EAAEd,EAAE+B,SAAS0E,EAAEzG,EAAEc,GAAG4vB,SAAS1wB,EAAEyG,GAAGiqB,SAAS5vB,EAAE2F,EAAEvD,EAAElD,EAAE+B,SAAS0E,EAAEzG,EAAEkD,GAAGwtB,SAAS1wB,EAAEyG,GAAGiqB,SAASxtB,EAAEuD,GAAGA,IAAI5C,IAAIgJ,KAAKikB,MAAMjtB,EAAE4C,GAAGoG,KAAKkkB,SAAStqB,IAAI,EAAEzG,EAAEF,UAAU8wB,UAAU,SAAS/sB,GAAG,IAAI,IAAI7D,EAAEc,EAAE+L,KAAK2jB,KAAKttB,EAAEpC,EAAE+C,GAAG6sB,SAAS,IAAI7sB,KAAK/C,EAAEd,EAAE6D,GAAG,GAAG6sB,SAASxtB,IAAI2J,KAAKikB,MAAMjtB,EAAE7D,GAAG6D,EAAE7D,CAAC,EAAEA,EAAEF,UAAUgxB,MAAM,SAASjtB,EAAE7D,GAAG,IAAIc,EAAE+L,KAAK2jB,KAAKttB,EAAE2J,KAAK4jB,YAAYhqB,EAAE3F,EAAE+C,GAAGhC,EAAEf,EAAEd,GAAGc,EAAE+C,GAAGhC,EAAEf,EAAEd,GAAGyG,EAAEvD,EAAErB,EAAEzB,KAAKyD,EAAEX,EAAEuD,EAAErG,KAAKJ,CAAC,EAAEqjB,EAAE,CAAC,SAAS4N,KAAK,GAAGzN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3f,EAAE8nB,KAAK3rB,EAAEuwB,KAAKhN,GAAG,SAAS1f,EAAEX,EAAEuD,EAAE5E,GAAG,OAAO,SAASgC,EAAE/C,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAEwB,EAAE3C,EAAE,GAAGD,EAAE,IAAIT,EAAEV,EAAE,SAASuE,GAAG,IAAI7D,EAAE6D,EAAEE,IAAIlC,EAAEgC,EAAEE,EAAEF,EAAEI,EAAEnD,EAAEJ,EAAEV,GAAGyG,EAAEvD,EAAEW,GAAGvE,EAAE+D,EAAE6tB,SAASzqB,EAAE,GAAGA,EAAE,EAAE,MAAM,IAAIsoB,MAAM,4DAA4DlrB,EAAE,YAAY4C,GAAGnH,EAAEwB,EAAEowB,WAAWpwB,EAAEowB,SAAS5xB,EAAEwB,EAAEqwB,YAAYtvB,EAAEpB,EAAEuwB,SAAShxB,EAAEV,GAAG,EAAwG,IAAtGuE,EAAEsqB,QAAQnpB,SAAS,SAASnB,GAAG,IAAI7D,EAAE6D,IAAI/C,EAAE,EAAEswB,OAAOC,kBAAkB3wB,EAAEmD,GAAG,CAACqtB,SAASlxB,GAAGS,EAAE8E,IAAI1B,EAAE7D,EAAG,IAAQS,EAAEsM,OAAO,IAAIlL,EAAEpB,EAAEowB,aAAaxtB,EAAE3C,EAAEmB,IAAIqvB,WAAWE,OAAOC,oBAAoB5qB,EAAE5E,GAAGmD,QAAQ1F,GAAG,OAAOoB,CAAC,CAAzd,CAA2dmD,EAAEoP,OAAO/P,GAAGuD,GAAG3F,EAAEe,GAAG,SAAS7B,GAAG,OAAO6D,EAAEksB,SAAS/vB,EAAE,EAAE,EAAE,IAAIc,EAAE+C,EAAEgoB,SAAS,GAAG,OAAOtI,EAAE,CAAC,SAAS+N,KAAK,GAAG5N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7f,EAAEotB,KAAKjxB,EAAE2rB,KAAK,OAAOlI,GAAG,SAAS3iB,EAAEoC,EAAEuD,GAAG,OAAOzG,EAAEosB,UAAUtrB,EAAEqtB,SAAS,SAASnuB,EAAE6B,GAAG7B,EAAE6B,GAAGgC,EAAE/C,EAAEe,EAAEqB,EAAEuD,EAAG,GAAE,GAAG,CAAC,CAAC,SAAS8qB,KAAK,GAAG3N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/f,EAAE8nB,KAAK,OAAOhI,GAAG,SAAS3jB,GAAG,IAAIc,EAAE,EAAEoC,EAAE,GAAGuD,EAAE,CAAE,EAAC5E,EAAE,GAAG,SAASwB,EAAE3C,GAAG,IAAID,EAAEgG,EAAE/F,GAAG,CAAC8wB,SAAQ,EAAGC,QAAQ3wB,EAAEkmB,MAAMlmB,KAAK,GAAGoC,EAAEhB,KAAKxB,GAAGV,EAAEkvB,WAAWxuB,GAAGsE,SAAS,SAAShF,GAAG6D,EAAEuJ,IAAI3G,EAAEzG,GAAGyG,EAAEzG,GAAGwxB,UAAU/wB,EAAEgxB,QAAQ3G,KAAK6F,IAAIlwB,EAAEgxB,QAAQhrB,EAAEzG,GAAGgnB,SAAS3jB,EAAErD,GAAGS,EAAEgxB,QAAQ3G,KAAK6F,IAAIlwB,EAAEgxB,QAAQhrB,EAAEzG,GAAGyxB,SAAU,IAAGhxB,EAAEgxB,UAAUhxB,EAAEumB,MAAM,CAAC,IAAI1nB,EAAEoH,EAAE,GAAG,GAAGpH,EAAE4D,EAAE+J,MAAMxG,EAAEnH,GAAGkyB,SAAQ,EAAG9qB,EAAExE,KAAK5C,SAASoB,IAAIpB,GAAGuC,EAAEK,KAAKwE,EAAE,CAAC,CAAC,OAAO1G,EAAEmuB,QAAQnpB,SAAS,SAAShF,GAAG6D,EAAEuJ,IAAI3G,EAAEzG,IAAIqD,EAAErD,EAAG,IAAG6B,CAAC,EAAE8hB,EAAE,CAAC,SAAS+N,KAAK,GAAG5N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjgB,EAAE8nB,KAAK3rB,EAAEuxB,KAAK,OAAO1N,GAAG,SAAS/iB,GAAG,OAAO+C,EAAEkoB,OAAO/rB,EAAEc,IAAE,SAAW+C,GAAG,OAAOA,EAAE9B,OAAO,GAAG,IAAI8B,EAAE9B,QAAQjB,EAAE+uB,QAAQhsB,EAAE,GAAGA,EAAE,GAAI,GAAE,CAAC,CAAC,SAAS8tB,KAAK,GAAG3N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIngB,EAAE8nB,KAAK5H,GAAG,SAASlgB,EAAE/C,EAAEoC,GAAG,OAAO,SAASW,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,CAAE,EAACuD,EAAE5C,EAAEsqB,QAAQ,OAAO1nB,EAAEzB,kBAAkBnB,GAAGX,EAAEW,GAAG,CAAA,EAAGX,EAAEW,GAAGA,GAAG,CAACqtB,SAAS,GAAGzqB,EAAEzB,SAAO,SAAWhF,GAAG6D,IAAI7D,IAAIkD,EAAEW,GAAG7D,GAAG,CAACkxB,SAASE,OAAOC,mBAAoB,IAAGvwB,EAAE+C,GAAGmB,kBAAkBlE,GAAG,IAAI2F,EAAE3F,EAAEiD,IAAIF,EAAE/C,EAAEmD,EAAEnD,EAAEiD,EAAElC,EAAE7B,EAAEc,GAAGoC,EAAEW,GAAG4C,GAAG,CAACyqB,SAASrvB,EAAEsvB,YAAYttB,EAAG,GAAG,IAAG4C,EAAEzB,SAAO,SAAWnB,GAAG,IAAI7D,EAAEkD,EAAEW,GAAG4C,EAAEzB,SAAS,SAASlE,GAAG,IAAIe,EAAEqB,EAAEpC,GAAG2F,EAAEzB,SAAS,SAASlE,GAAG,IAAIoC,EAAErB,EAAEgC,GAAG4C,EAAEzG,EAAEc,GAAGuC,EAAExB,EAAEf,GAAGJ,EAAEwC,EAAEguB,SAASzqB,EAAEyqB,SAASxwB,EAAE2C,EAAE6tB,WAAW7tB,EAAE6tB,SAASxwB,EAAE2C,EAAE8tB,YAAY1qB,EAAE0qB,YAAa,GAAG,GAAG,IAAGjuB,CAAC,CAA9d,CAAgeW,EAAE/C,GAAGd,EAAEkD,GAAG,SAASlD,GAAG,OAAO6D,EAAEksB,SAAS/vB,EAAE,EAAE,EAAE,IAAIA,EAAE6D,EAAEgoB,SAAS,GAAG,OAAO9H,EAAE,CAAC,SAAS6N,KAAK,GAAG1N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrgB,EAAE8nB,KAAK,SAAS3rB,EAAEA,GAAG,IAAIkD,EAAE,CAAE,EAACuD,EAAE,CAAA,EAAG5E,EAAE,GAAG,GAAGgC,EAAEioB,KAAK9rB,EAAEquB,SAAO,SAAWhrB,EAAE3C,GAAG,GAAGmD,EAAEuJ,IAAI3G,EAAE/F,GAAG,MAAM,IAAII,EAAE+C,EAAEuJ,IAAIlK,EAAExC,KAAK+F,EAAE/F,IAAG,EAAGwC,EAAExC,IAAG,EAAGmD,EAAEioB,KAAK9rB,EAAEivB,aAAavuB,GAAG2C,UAAUoD,EAAE/F,GAAGmB,EAAEK,KAAKxB,GAAI,IAAGmD,EAAEkJ,KAAK7J,KAAKlD,EAAEkuB,YAAY,MAAM,IAAIptB,EAAE,OAAOe,CAAC,CAAC,SAASf,IAAK,CAAA,OAAOmjB,GAAGjkB,EAAEA,EAAE6xB,eAAe/wB,EAAEA,EAAEhB,UAAU,IAAIivB,MAAM9K,EAAE,CAAC,SAAS6N,KAAK,GAAG1N,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvgB,EAAE+tB,KAAK,OAAOzN,GAAG,SAASnkB,GAAG,IAAI6D,EAAE7D,EAAE,CAAC,MAAMA,GAAG,GAAGA,aAAa6D,EAAEguB,eAAe,OAAM,EAAG,MAAM7xB,CAAC,CAAC,OAAM,CAAE,CAAC,CAAC,SAAS+xB,KAAK,GAAGzN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzgB,EAAE8nB,KAAK,SAAS3rB,EAAEc,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAAE3C,GAAGmD,EAAEuJ,IAAIvL,EAAEqB,KAAKrB,EAAEqB,IAAG,EAAGuD,GAAG/F,EAAEwB,KAAKgB,GAAGW,EAAEioB,KAAKzoB,EAAEH,aAAaW,GAAG7D,EAAEc,EAAE+C,EAAE4C,EAAE5E,EAAEwB,EAAE3C,EAAG,IAAG+F,GAAG/F,EAAEwB,KAAKgB,GAAG,CAAC,OAAOmhB,GAAG,SAASvjB,EAAEoC,EAAEuD,GAAG5C,EAAEzB,QAAQc,KAAKA,EAAE,CAACA,IAAI,IAAIrB,GAAGf,EAAE8sB,aAAa9sB,EAAEouB,WAAWpuB,EAAEquB,WAAW6C,KAAKlxB,GAAGuC,EAAE,GAAG3C,EAAE,GAAG,OAAOmD,EAAEioB,KAAK5oB,GAAC,SAAWW,GAAG,IAAI/C,EAAE2tB,QAAQ5qB,GAAG,MAAM,IAAIkrB,MAAM,6BAA6BlrB,GAAG7D,EAAEc,EAAE+C,EAAE,SAAS4C,EAAE/F,EAAEmB,EAAEwB,EAAG,IAAGA,CAAC,EAAEghB,EAAE,CAAC,SAAS4N,KAAK,GAAGzN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3gB,EAAEkuB,KAAK,OAAOxN,GAAG,SAASvkB,EAAEc,GAAG,OAAO+C,EAAE7D,EAAEc,EAAE,OAAO,CAAC,CAAC,SAASoxB,KAAK,GAAGxN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7gB,EAAEkuB,KAAK,OAAOtN,GAAG,SAASzkB,EAAEc,GAAG,OAAO+C,EAAE7D,EAAEc,EAAE,MAAM,CAAC,CAAC,SAASqxB,KAAK,GAAGvN,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/gB,EAAE8nB,KAAK3rB,EAAEusB,KAAKzrB,EAAEyvB,KAAK,OAAO5L,GAAG,SAASzhB,EAAEuD,GAAG,IAAI5E,EAAEwB,EAAE,IAAIrD,EAAEU,EAAE,CAAE,EAACD,EAAE,IAAIK,EAAE,SAASxB,EAAEuE,GAAG,IAAI7D,EAAE6D,EAAEE,IAAIlC,EAAEgC,EAAEI,EAAEJ,EAAEE,EAAEjD,EAAEL,EAAEiwB,SAAS1wB,GAAG,QAAG,IAASc,EAAE,CAAC,IAAIoC,EAAEuD,EAAE5C,GAAGX,EAAEpC,IAAIJ,EAAEV,GAAG6B,EAAEpB,EAAEuwB,SAAShxB,EAAEkD,GAAG,CAAC,CAAC,GAAG,IAAIA,EAAEgrB,YAAY,OAAO7qB,EAAEQ,EAAEioB,KAAK5oB,EAAEirB,SAAO,SAAWtqB,GAAGpD,EAAE8E,IAAI1B,EAAEutB,OAAOC,mBAAmBhuB,EAAEkrB,QAAQ1qB,EAAG,IAAGpD,EAAEuwB,SAAS9tB,EAAEirB,QAAQ,GAAG,GAAY,IAAT,IAAIznB,GAAE,EAAQjG,EAAEsM,OAAO,GAAG,CAAC,GAAGlL,EAAEpB,EAAEowB,YAAYhtB,EAAEuJ,IAAI1M,EAAEmB,GAAGwB,EAAEisB,QAAQztB,EAAEnB,EAAEmB,QAAQ,CAAC,GAAG6E,EAAE,MAAM,IAAIqoB,MAAM,iCAAiC7rB,GAAGwD,GAAE,CAAE,CAACxD,EAAE8sB,UAAUnuB,GAAGmD,QAAQ1F,EAAE,CAAC,OAAO+D,CAAC,EAAEshB,EAAE,CAACO,GAAG7lB,QAAQ,IAAI4lB,GAAG,WAAW,GAAGD,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInhB,EAAEmf,GAAGD,IAAIC,GAAG,EAAED,GAAG,CAACqP,MAAM7F,KAAK8F,QAAQvP,GAAGD,IAAIC,GAAG,EAAED,GAAG,WAAW,OAAOkC,GAAG,CAACqN,MAAMvuB,EAAEuuB,MAAME,KAAKpC,KAAKqC,IAAIzN,GAAGD,IAAIC,GAAG,EAAED,GAAG,CAAC2N,WAAWlC,KAAKmC,SAASxB,KAAKyB,YAAYpB,KAAKqB,WAAWjB,KAAKkB,cAAcjB,KAAKkB,UAAUf,KAAKgB,UAAUb,KAAKc,SAASb,KAAKc,KAAKb,KAAKc,OAAO1B,KAAK2B,QAAQtB,OAAOS,QAAQxuB,EAAEwuB,QAAQ,CAA/U,EAAkV,CAAC,MAAMxuB,GAAE,CAAEohB,KAAKA,GAAGtiB,OAAOwwB,UAAU,IAAIC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGvyB,GAAGwyB,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAGC,GAAG/T,GAAG,SAASgU,KAAK,GAAG1F,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI1vB,EAAE6I,KAAK1M,EAAEsT,KAAKxS,EAAE4P,KAAKxN,EAAEyK,KAAK,OAAO2lB,GAAG,SAAS7sB,EAAE5E,EAAEwB,GAAG,IAAIH,EAAEG,GAAG,OAAM,EAAG,IAAI3C,SAASmB,EAAE,SAAS,UAAUnB,EAAEV,EAAEqD,IAAIvC,EAAEe,EAAEwB,EAAEtB,QAAQ,UAAUrB,GAAGmB,KAAKwB,IAAIQ,EAAER,EAAExB,GAAG4E,EAAE,CAAC,CAAiP,SAASyyB,KAAK,GAAG/E,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAItwB,EAAE,WAAW,GAAGowB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIpwB,EAA7T,WAAc,GAAGkwB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIlwB,EAAE,WAAW,GAAGgwB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIhwB,EAAE,KAAK,OAAO+vB,GAAG,SAAS5zB,GAAG,IAAI,IAAIc,EAAEd,EAAE+B,OAAOjB,KAAK+C,EAAEuK,KAAKpO,EAAEm5B,OAAOr4B,MAAM,OAAOA,CAAC,CAAC,CAAxH,GAA4Hd,EAAE,OAAO,OAAO8zB,GAAG,SAAShzB,GAAG,OAAOA,EAAEA,EAAEqF,MAAM,EAAEtC,EAAE/C,GAAG,GAAG8D,QAAQ5E,EAAE,IAAIc,CAAC,CAAC,CAAgFs4B,GAAKp5B,EAAE2N,KAAK7M,EAAEgoB,KAAK5lB,EAAE,qBAAqBuD,EAAE,aAAa5E,EAAE,cAAcwB,EAAEg2B,SAAS,OAAOrF,GAAG,SAAStzB,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,GAAGI,EAAEJ,GAAG,OAAO44B,IAAI,GAAGt5B,EAAEU,GAAG,CAAC,IAAID,EAAE,mBAAmBC,EAAE0mB,QAAQ1mB,EAAE0mB,UAAU1mB,EAAEA,EAAEV,EAAES,GAAGA,EAAE,GAAGA,CAAC,CAAC,GAAG,iBAAiBC,EAAE,OAAO,IAAIA,EAAEA,GAAGA,EAAEA,EAAEmD,EAAEnD,GAAG,IAAIpB,EAAEmH,EAAE2H,KAAK1N,GAAG,OAAOpB,GAAGuC,EAAEuM,KAAK1N,GAAG2C,EAAE3C,EAAEyF,MAAM,GAAG7G,EAAE,EAAE,GAAG4D,EAAEkL,KAAK1N,GAAG44B,KAAK54B,CAAC,CAAC,CAAlY,GAAsYV,EAAE,IAAI,OAAOk0B,GAAG,SAASpzB,GAAG,OAAOA,GAAGA,EAAE+C,EAAE/C,MAAMd,GAAGc,KAAI,IAAK,uBAAuBA,EAAE,GAAG,EAAE,GAAGA,GAAGA,EAAEA,EAAE,EAAE,IAAIA,EAAEA,EAAE,CAAC,CAAC,CAAiT,SAASy4B,KAAK,GAAG5E,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI9wB,EAAE8mB,KAAK,OAAO+J,GAAG,SAAS10B,GAAG,OAAO,MAAMA,GAAIA,EAAE+B,OAAQ8B,EAAE7D,EAAE,GAAG,EAAE,EAAE00B,EAAE,CAAC,SAAS8E,KAAK,GAAGrE,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAItxB,EAAEilB,KAAK,OAAOoM,GAAG,SAASl1B,EAAEc,EAAEoC,GAAG,IAAI,IAAIuD,GAAG,EAAE5E,EAAE7B,EAAE+B,SAAS0E,EAAE5E,GAAG,CAAC,IAAIwB,EAAErD,EAAEyG,GAAG/F,EAAEI,EAAEuC,GAAG,GAAG,MAAM3C,SAAI,IAASD,EAAEC,GAAGA,IAAImD,EAAEnD,GAAGwC,EAAExC,EAAED,IAAI,IAAIA,EAAEC,EAAEpB,EAAE+D,CAAC,CAAC,OAAO/D,CAAC,EAAE41B,EAAE,CAAC,SAASuE,KAAK,GAAGjE,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3xB,EAAEmL,KAAKhP,EAAE0M,KAAK,OAAO6oB,GAAG,SAASz0B,EAAEoC,EAAEuD,SAAI,IAASA,IAAIzG,EAAEc,EAAEoC,GAAGuD,SAAI,IAASA,KAAKvD,KAAKpC,KAAK+C,EAAE/C,EAAEoC,EAAEuD,EAAE,CAAC,CAAC,SAASizB,KAAK,OAAG9D,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAAS9xB,EAAE7D,GAAG,IAAI,gBAAgBA,GAAG,mBAAmB6D,EAAE7D,KAAK,aAAaA,EAAE,OAAO6D,EAAE7D,EAAE,EAAC,CAAw6B,SAAS25B,KAAK,OAAGnD,GAAUD,IAAUC,GAAG,EAAED,GAAG,SAAS1yB,EAAE7D,GAAG,OAAO6D,EAAE7D,CAAC,EAAC,CAAs7C,SAAS45B,KAAK,GAAGtB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIz0B,EAAEmlB,KAAKhpB,EAAEypB,KAAK3oB,EAAE+oB,KAAK3mB,EAAEmnB,KAAK5jB,GAAGuxB,KAAKA,GAAG,EAAED,GAAG,SAASl0B,EAAE7D,GAAG,IAAIc,EAAE+C,EAAE9B,OAAO,IAAI8B,EAAEg2B,KAAK75B,GAAGc,KAAK+C,EAAE/C,GAAG+C,EAAE/C,GAAGsC,MAAM,OAAOS,CAAC,GAAGk0B,IAAIl2B,EAAE+O,KAAKvN,EAAjrB,WAAc,GAAG+0B,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIv0B,EAAE,WAAW,GAAGq0B,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIr0B,EAAEilB,KAAK,OAAOmP,GAAG,SAASj4B,EAAEc,GAAG,GAAGd,IAAIc,EAAE,CAAC,IAAIoC,OAAE,IAASlD,EAAEyG,EAAE,OAAOzG,EAAE6B,EAAE7B,GAAGA,EAAEqD,EAAEQ,EAAE7D,GAAGU,OAAE,IAASI,EAAEL,EAAE,OAAOK,EAAExB,EAAEwB,GAAGA,EAAE4F,EAAE7C,EAAE/C,GAAG,IAAIL,IAAIiG,IAAIrD,GAAGrD,EAAEc,GAAGuC,GAAG3C,GAAGpB,IAAImB,IAAIiG,GAAGD,GAAG/F,GAAGpB,IAAI4D,GAAG5D,IAAIuC,EAAE,OAAO,EAAE,IAAI4E,IAAIpD,IAAIqD,GAAG1G,EAAEc,GAAG4F,GAAGxD,GAAGrB,IAAI4E,IAAIpD,GAAG5C,GAAGyC,GAAGrB,IAAInB,GAAGmB,IAAIvC,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAxS,GAA4S,OAAO64B,GAAG,SAASn4B,EAAEc,EAAEoC,GAAG,IAAI,IAAIuD,GAAG,EAAE5E,EAAE7B,EAAE85B,SAASz2B,EAAEvC,EAAEg5B,SAASp5B,EAAEmB,EAAEE,OAAOtB,EAAEyC,EAAEnB,SAAS0E,EAAE/F,GAAG,CAAC,IAAIpB,EAAEuE,EAAEhC,EAAE4E,GAAGpD,EAAEoD,IAAI,GAAGnH,EAAE,OAAOmH,GAAGhG,EAAEnB,EAAEA,GAAG,QAAQ4D,EAAEuD,IAAI,EAAE,EAAE,CAAC,OAAOzG,EAAEgnB,MAAMlmB,EAAEkmB,KAAK,CAAC,CAA4K+S,GAAKr5B,EAAEqnB,KAAKtnB,EAAEgP,KAAK,OAAO4oB,GAAG,SAAS/4B,EAAEoH,EAAE/G,GAAG+G,EAAEA,EAAE3E,OAAO8B,EAAE6C,GAAC,SAAW7C,GAAG,OAAOpD,EAAEoD,GAAG,SAAS/C,GAAG,OAAOd,EAAEc,EAAE,IAAI+C,EAAE9B,OAAO8B,EAAE,GAAGA,EAAE,EAAEA,CAAE,IAAG,CAACnD,GAAG,IAAIK,GAAG,EAAE2F,EAAE7C,EAAE6C,EAAE7E,EAAEf,IAAI,IAAID,EAAEqC,EAAE5D,YAAYU,EAAEc,EAAEoC,GAAG,MAAM,CAAC42B,SAASj2B,EAAE6C,GAAC,SAAW7C,GAAG,OAAOA,EAAE7D,EAAG,IAAGgnB,QAAQjmB,EAAEqC,MAAMpD,EAAG,IAAG,OAAOyG,EAAE5F,GAAG,SAASgD,EAAE7D,GAAG,OAAOqD,EAAEQ,EAAE7D,EAAEL,EAAG,GAAE,CAAC,CAAC,IAAIo5B,GAAG,CAACiB,UAAU,WAAW,GAAG3G,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIxvB,EAAEkjB,KAAK,OAAOqM,GAAG,SAASpzB,GAAG,OAAO6D,EAAE7D,EAAE,EAAE,CAAC,CAA/E,GAAmF6rB,SAASlE,KAAKsS,SAAS,WAAW,GAAGxG,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI5vB,EAAEsnB,KAAKnrB,EAAE0M,KAAK5L,EAAEm4B,KAAK/1B,EAAEsQ,KAAK/M,EAAE5G,OAAOC,UAAU+B,EAAE4E,EAAE1G,eAAesD,EAAEQ,GAAG,SAASA,EAAER,GAAGQ,EAAEhE,OAAOgE,GAAG,IAAInD,GAAG,EAAED,EAAE4C,EAAEtB,OAAOzC,EAAEmB,EAAE,EAAE4C,EAAE,QAAG,EAAO,IAAI/D,GAAGwB,EAAEuC,EAAE,GAAGA,EAAE,GAAG/D,KAAKmB,EAAE,KAAKC,EAAED,GAAG,IAAI,IAAIiG,EAAErD,EAAE3C,GAAGf,EAAEuD,EAAEwD,GAAG3F,GAAG,EAAEF,EAAElB,EAAEoC,SAAShB,EAAEF,GAAG,CAAC,IAAIkD,EAAEpE,EAAEoB,GAAGZ,EAAE0D,EAAEE,SAAI,IAAS5D,GAAGH,EAAEG,EAAEsG,EAAE1C,MAAMlC,EAAEb,KAAK6C,EAAEE,MAAMF,EAAEE,GAAG2C,EAAE3C,GAAG,CAAC,OAAOF,CAAE,IAAG,OAAO2vB,GAAGnwB,CAAC,CAAzV,GAA6VyoB,KAAK5D,KAAK6D,OAAO9B,KAAKiQ,KAAK,WAAW,GAAGzF,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI5wB,EAAE,WAAW,GAAG8vB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI9vB,EAAEgmB,KAAK7pB,EAAEsT,KAAKxS,EAAEyS,KAAK,OAAOmgB,GAAG,SAASxwB,GAAG,OAAO,SAASuD,EAAE5E,EAAEwB,GAAG,IAAI3C,EAAEb,OAAO4G,GAAG,IAAIzG,EAAEyG,GAAG,CAAC,IAAIhG,EAAEoD,EAAEhC,EAAE,GAAG4E,EAAE3F,EAAE2F,GAAG5E,EAAE,SAASgC,GAAG,OAAOpD,EAAEC,EAAEmD,GAAGA,EAAEnD,EAAE,CAAC,CAAC,IAAIpB,EAAE4D,EAAEuD,EAAE5E,EAAEwB,GAAG,OAAO/D,GAAG,EAAEoB,EAAED,EAAEgG,EAAEnH,GAAGA,QAAG,CAAM,CAAC,CAAC,CAArO,GAAyOU,EAAE6D,EAAh/I,WAAc,GAAG0wB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI1wB,EAAEunB,KAAKprB,EAAE6pB,KAAK/oB,EAAE,WAAW,GAAGuzB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIxwB,EAAEq1B,KAAK,OAAO9E,GAAG,SAASp0B,GAAG,IAAIc,EAAE+C,EAAE7D,GAAGkD,EAAEpC,EAAE,EAAE,OAAOA,GAAGA,EAAEoC,EAAEpC,EAAEoC,EAAEpC,EAAE,CAAC,CAAC,CAAxG,GAA4GoC,EAAE4nB,KAAKC,IAAI,OAAOuJ,GAAG,SAAS7tB,EAAE5E,EAAEwB,GAAG,IAAI3C,EAAE,MAAM+F,EAAE,EAAEA,EAAE1E,OAAO,IAAIrB,EAAE,OAAO,EAAE,IAAID,EAAE,MAAM4C,EAAE,EAAEvC,EAAEuC,GAAG,OAAO5C,EAAE,IAAIA,EAAEyC,EAAExC,EAAED,EAAE,IAAIoD,EAAE4C,EAAEzG,EAAE6B,EAAE,GAAGpB,EAAE,EAAE6zB,EAAE,CAAmsI6F,IAAM,OAAO3F,GAAGx0B,CAAC,CAApS,GAAwSo6B,QAAQb,KAAKv0B,QAAQijB,KAAKoS,MAAM,WAAW,GAAGxF,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIhxB,EAAE+jB,KAAK5nB,EAAEgoB,KAAKlnB,EAAE0S,KAAK,OAAOohB,GAAG,SAAS1xB,EAAEuD,GAAG,OAAO,MAAMvD,EAAEA,EAAEW,EAAEX,EAAElD,EAAEyG,GAAG3F,EAAE,CAAC,CAA9G,GAAkHsM,IAAI8c,KAAKgC,YAAY9B,KAAKkQ,MAAMvF,KAAKA,GAAG,EAAED,GAAG,SAASjxB,GAAG,IAAI7D,EAAE,MAAM6D,EAAE,EAAEA,EAAE9B,OAAO,OAAO/B,EAAE6D,EAAE7D,EAAE,QAAG,CAAM,GAAG80B,IAAItmB,IAAI8b,KAAKiQ,UAAU,WAAW,GAAGtF,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIpxB,EAAEmL,KAAKhP,EAAE6nB,KAAK/mB,EAAE+oB,KAAK,OAAOmL,GAAG,SAAS9xB,EAAEuD,GAAG,IAAI5E,EAAE,CAAE,EAAC,OAAO4E,EAAE3F,EAAE2F,EAAE,GAAGzG,EAAEkD,GAAC,SAAWlD,EAAEc,EAAEoC,GAAGW,EAAEhC,EAAEf,EAAE2F,EAAEzG,EAAEc,EAAEoC,GAAI,IAAGrB,CAAC,CAAC,CAApJ,GAAwJkpB,IAAI,WAAW,GAAGuK,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzxB,EAAE21B,KAAKx5B,EAAE6C,GAAGuyB,IAAIvyB,GAAG,EAAEuyB,GAAG,SAASvxB,EAAE7D,GAAG,OAAO6D,EAAE7D,CAAC,GAAGc,EAAEinB,KAAK,OAAOsN,GAAG,SAASnyB,GAAG,OAAOA,GAAGA,EAAEnB,OAAO8B,EAAEX,EAAEpC,EAAEd,QAAG,CAAM,EAAEq1B,EAAE,CAA1J,GAA8JmF,MAAM,WAAW,GAAGlE,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzyB,EAAE,WAAW,GAAGqyB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIryB,EAAEgL,KAAK7O,EAAEy5B,KAAK34B,EAAE8mB,KAAK1kB,EAA50I,WAAc,GAAG8yB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInyB,EAAE41B,KAAKz5B,EAAEmlB,KAAKrkB,EAAE2lB,KAAKvjB,EAAEoiB,KAAK7e,EAAEqgB,KAAKjlB,EAAE0N,KAAKlM,EAAEoM,KAAK/O,EAAE8qB,KAAK/qB,EAAE6P,KAAKhR,EAAEsO,KAAKlH,EAAEiH,KAAKhO,EAAE,WAAW,GAAG+1B,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7xB,EAAE4J,KAAKzN,EAAE4lB,KAAK9kB,EAAEwO,KAAKpM,EAAEqK,SAASzN,UAAU2G,EAAE5G,OAAOC,UAAU+B,EAAEqB,EAAEX,SAASc,EAAEoD,EAAE1G,eAAeW,EAAEmB,EAAEb,KAAKnB,QAAQ,OAAO41B,GAAG,SAASvyB,GAAG,IAAIpC,EAAEoC,IAAI,mBAAmBW,EAAEX,GAAG,OAAM,EAAG,IAAIuD,EAAEzG,EAAEkD,GAAG,GAAG,OAAOuD,EAAE,OAAM,EAAG,IAAIhG,EAAE4C,EAAErC,KAAKyF,EAAE,gBAAgBA,EAAE0M,YAAY,MAAM,mBAAmB1S,GAAGA,aAAaA,GAAGoB,EAAEb,KAAKP,IAAIC,CAAC,CAAC,CAAzV,GAA6VK,EAAE+R,KAAKjS,EAAE64B,KAAK31B,EAAE,WAAW,GAAG+xB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjyB,EAAEwL,KAAKrP,EAAEwT,KAAK,OAAOqiB,GAAG,SAAS/0B,GAAG,OAAO+C,EAAE/C,EAAEd,EAAEc,GAAG,CAAC,CAAzF,GAA6F,OAAOi1B,GAAG,SAAS51B,EAAEQ,EAAEgG,EAAE/G,EAAEqE,EAAErD,EAAEgG,GAAG,IAAIC,EAAEhG,EAAEV,EAAEwG,GAAGG,EAAEjG,EAAEF,EAAEgG,GAAGnH,EAAEoH,EAAEuG,IAAIrG,GAAG,GAAGtH,EAAEqE,EAAE1D,EAAEwG,EAAEnH,OAAO,CAAC,IAAIuH,EAAEnG,EAAEA,EAAEiG,EAAEC,EAAEH,EAAE,GAAGxG,EAAEQ,EAAEiG,QAAG,EAAOI,OAAE,IAASD,EAAE,GAAGC,EAAE,CAAC,IAAIC,EAAE5D,EAAEyD,GAAGI,GAAGD,GAAGxG,EAAEqG,GAAGK,GAAGF,IAAIC,GAAGnG,EAAE+F,GAAGC,EAAED,EAAEG,GAAGC,GAAGC,EAAE9D,EAAEwD,GAAGE,EAAEF,EAAEnG,EAAEmG,GAAGE,EAAE7D,EAAE2D,GAAGK,GAAGF,GAAE,EAAGD,EAAE/G,EAAE8G,GAAE,IAAKK,GAAGH,GAAE,EAAGD,EAAEjG,EAAEgG,GAAE,IAAKC,EAAE,GAAGpH,EAAEmH,IAAIjF,EAAEiF,IAAIC,EAAEF,EAAEhF,EAAEgF,GAAGE,EAAEhD,EAAE8C,GAAGH,EAAEG,KAAKvH,EAAEuH,KAAKE,EAAEN,EAAEK,KAAKE,GAAE,CAAE,CAACA,IAAIJ,EAAEsG,IAAIpG,EAAEC,GAAG9C,EAAE8C,EAAED,EAAElH,EAAEgB,EAAEgG,GAAGA,EAAEpB,OAAOsB,IAAIjD,EAAE1D,EAAEwG,EAAEI,EAAE,CAAC,CAAC,CAAw6G0zB,GAAKh0B,EAAEkH,KAAK9L,EAAE2R,KAAKnQ,EAAEq2B,KAAK,OAAOzD,GAAG,SAASv1B,EAAED,EAAEnB,EAAEoH,EAAE/G,EAAEoB,GAAGN,IAAInB,GAAGwB,EAAExB,GAAG,SAASwB,EAAEe,GAAG,GAAGd,IAAIA,EAAE,IAAI8C,GAAG4C,EAAE3F,GAAGoC,EAAEzC,EAAEnB,EAAEuC,EAAE6E,EAAEhG,EAAEf,EAAEoB,OAAO,CAAC,IAAIF,EAAElB,EAAEA,EAAE0D,EAAE5C,EAAEoB,GAAGf,EAAEe,EAAE,GAAGpB,EAAEnB,EAAEyB,QAAG,OAAO,IAASF,IAAIA,EAAEC,GAAGd,EAAES,EAAEoB,EAAEhB,EAAE,CAAE,GAAEgB,EAAE,EAAEo0B,EAAE,CAApQ,GAAwQj2B,EAAE,WAAW,GAAGo2B,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvyB,EAAEsnB,KAAKnrB,EAAEi5B,KAAK,OAAO9C,GAAG,SAASr1B,GAAG,OAAO+C,YAAYA,EAAEX,GAAG,IAAIuD,GAAG,EAAE5E,EAAEqB,EAAEnB,OAAOsB,EAAExB,EAAE,EAAEqB,EAAErB,EAAE,QAAG,EAAOnB,EAAEmB,EAAE,EAAEqB,EAAE,QAAG,EAAO,IAAIG,EAAEvC,EAAEiB,OAAO,GAAG,mBAAmBsB,GAAGxB,IAAIwB,QAAG,EAAO3C,GAAGV,EAAEkD,EAAE,GAAGA,EAAE,GAAGxC,KAAK2C,EAAExB,EAAE,OAAE,EAAOwB,EAAExB,EAAE,GAAGgC,EAAEhE,OAAOgE,KAAK4C,EAAE5E,GAAG,CAAC,IAAIpB,EAAEyC,EAAEuD,GAAGhG,GAAGK,EAAE+C,EAAEpD,EAAEgG,EAAEpD,EAAE,CAAC,OAAOQ,CAAE,GAAE,CAAC,CAAjT,IAAoT,SAAW7D,EAAEc,EAAEoC,GAAGW,EAAE7D,EAAEc,EAAEoC,EAAG,IAAG,OAAOmzB,GAAGr2B,CAAC,CAA7oB,GAAipB2wB,IAAI,WAAW,GAAG+F,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7yB,EAAE21B,KAAKx5B,EAAE25B,KAAK74B,EAAEinB,KAAK,OAAO0O,GAAG,SAASvzB,GAAG,OAAOA,GAAGA,EAAEnB,OAAO8B,EAAEX,EAAEpC,EAAEd,QAAG,CAAM,EAAEy2B,EAAE,CAArH,GAAyHiE,MAAM,WAAW,GAAG9D,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/yB,EAAE21B,KAAKx5B,EAAE6pB,KAAK/oB,EAAE64B,KAAK,OAAOhD,GAAG,SAASzzB,EAAEuD,GAAG,OAAOvD,GAAGA,EAAEnB,OAAO8B,EAAEX,EAAElD,EAAEyG,EAAE,GAAG3F,QAAG,CAAM,EAAE61B,EAAE,CAA5H,GAAgIzL,IAAI,WAAW,GAAG4L,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIjzB,EAAEyJ,KAAK,OAAOupB,GAAG,WAAW,OAAOhzB,EAAEonB,KAAKC,KAAK,CAAC,CAApF,GAAwFyP,KAAK,WAAW,GAAGnD,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI3zB,EAAE,WAAW,GAAGuzB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIvzB,EAA9zI,WAAc,GAAGqzB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIrzB,EAAE4lB,KAAKzpB,EAAE,WAAW,GAAGg3B,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAInzB,EAAEuL,KAAKpP,EAAEkpB,KAAKpoB,EAAE4P,KAAKxN,EAAEyK,KAAKlH,EAAE+iB,KAAK,OAAOuN,GAAG,SAASl1B,EAAEwB,EAAE3C,EAAED,GAAG,IAAIyC,EAAErB,GAAG,OAAOA,EAAE,IAAI,IAAIvC,GAAG,EAAEoH,GAAGrD,EAAErD,EAAEqD,EAAExB,IAAIE,OAAOpC,EAAE+G,EAAE,EAAE3F,EAAEc,EAAE,MAAMd,KAAKzB,EAAEoH,GAAG,CAAC,IAAI7F,EAAE4F,EAAEpD,EAAE/D,IAAIyE,EAAErD,EAAE,GAAG,cAAcG,GAAG,gBAAgBA,GAAG,cAAcA,EAAE,OAAOgB,EAAE,GAAGvC,GAAGK,EAAE,CAAC,IAAIQ,EAAEY,EAAEF,QAAG,KAAUkD,EAAEtD,EAAEA,EAAEN,EAAEU,EAAEE,QAAG,KAAUgD,EAAEb,EAAE/C,GAAGA,EAAEW,EAAEuC,EAAE/D,EAAE,IAAI,GAAG,CAAA,EAAG,CAACuE,EAAE9C,EAAEF,EAAEkD,GAAGhD,EAAEA,EAAEF,EAAE,CAAC,OAAOgB,CAAC,CAAC,CAA3W,GAA+Wf,EAAEooB,KAAK,OAAO+N,GAAG,SAAS/zB,EAAEuD,EAAE5E,GAAG,IAAI,IAAIwB,GAAG,EAAE3C,EAAE+F,EAAE1E,OAAOtB,EAAE,KAAK4C,EAAE3C,GAAG,CAAC,IAAIpB,EAAEmH,EAAEpD,GAAGqD,EAAE7C,EAAEX,EAAE5D,GAAGuC,EAAE6E,EAAEpH,IAAIU,EAAES,EAAEK,EAAExB,EAAE4D,GAAGwD,EAAE,CAAC,OAAOjG,CAAC,CAAC,CAAwyHm6B,GAAK56B,EAAE2pB,KAAK,OAAOwN,GAAG,SAASr2B,EAAEoC,GAAG,OAAOW,EAAE/C,EAAEoC,GAAC,SAAWW,EAAEX,GAAG,OAAOlD,EAAEc,EAAEoC,EAAG,GAAE,CAAC,CAAvH,GAA2HlD,EAAE,WAAW,GAAGs3B,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIzzB,EAAE01B,KAAKv5B,EAAE6qB,KAAK/pB,EAAEkqB,KAAK,OAAOqM,GAAG,SAASn0B,GAAG,OAAOpC,EAAEd,EAAEkD,OAAE,EAAOW,GAAGX,EAAE,GAAG,CAAC,CAA5G,GAAgHpC,EAAEd,GAAG,SAASA,EAAEc,GAAG,OAAO,MAAMd,EAAE,CAAA,EAAG6D,EAAE7D,EAAEc,EAAG,IAAG,OAAOy2B,GAAGz2B,CAAC,CAA7U,GAAiV+5B,MAAM,WAAW,GAAG/C,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIj0B,EAAtlI,WAAc,GAAG+zB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI/zB,EAAE,WAAW,GAAG6zB,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI7zB,EAAEinB,KAAKgQ,KAAK96B,EAAE8qB,KAAKC,IAAI,OAAO0M,GAAG,SAAS32B,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAI,IAAIwB,GAAG,EAAE3C,EAAEV,EAAE6D,GAAGX,EAAEpC,IAAI2F,GAAG,IAAI,GAAGhG,EAAE0B,MAAMzB,GAAGA,KAAKD,EAAEoB,EAAEnB,IAAI2C,GAAGvC,EAAEA,GAAG2F,EAAE,OAAOhG,CAAC,EAAEg3B,EAAE,CAAzK,GAA6Kz3B,EAAEi5B,KAAKn4B,EAAEo4B,KAAK,OAAOvB,GAAG,SAASz0B,GAAG,OAAO,SAASuD,EAAE5E,EAAEwB,GAAG,OAAOA,GAAG,iBAAiBA,GAAGrD,EAAEyG,EAAE5E,EAAEwB,KAAKxB,EAAEwB,OAAE,GAAQoD,EAAE3F,EAAE2F,QAAG,IAAS5E,GAAGA,EAAE4E,EAAEA,EAAE,GAAG5E,EAAEf,EAAEe,GAAGwB,OAAE,IAASA,EAAEoD,EAAE5E,EAAE,GAAG,EAAEf,EAAEuC,GAAGQ,EAAE4C,EAAE5E,EAAEwB,EAAEH,EAAE,CAAC,EAAEy0B,EAAE,CAAqsHoD,KAAO,OAAOlD,GAAGh0B,CAAC,CAAxD,GAA4DsoB,OAAO5B,KAAKyQ,OAAO,WAAW,GAAGxC,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI30B,EAAE8mB,KAAK3qB,EAAE45B,KAAK94B,EAAEqqB,KAAKjoB,EAAE+1B,KAAKxyB,EAAE3F,YAAYA,EAAE2F,GAAG,GAAG,MAAM3F,EAAE,MAAM,GAAG,IAAIe,EAAE4E,EAAE1E,OAAO,OAAOF,EAAE,GAAGqB,EAAEpC,EAAE2F,EAAE,GAAGA,EAAE,IAAIA,EAAE,GAAG5E,EAAE,GAAGqB,EAAEuD,EAAE,GAAGA,EAAE,GAAGA,EAAE,MAAMA,EAAE,CAACA,EAAE,KAAKzG,EAAEc,EAAE+C,EAAE4C,EAAE,GAAG,GAAI,IAAG,OAAO8xB,GAAG9xB,CAAC,CAAtN,GAA0Nw0B,SAAS,WAAW,GAAGvC,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAI70B,EAAEolB,KAAKjpB,EAAE,EAAE,OAAOy4B,GAAG,SAAS33B,GAAG,IAAIoC,IAAIlD,EAAE,OAAO6D,EAAE/C,GAAGoC,CAAC,EAAEu1B,EAAE,CAAhG,GAAoGnM,OAAOZ,KAAKwP,UAAU,WAAW,GAAGpC,GAAG,OAAOD,GAAGC,GAAG,EAAE,IAAIj1B,EAAEuL,KAAKpP,GAAG44B,KAAKA,GAAG,EAAED,GAAG,SAAS90B,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,GAAG,EAAEuD,EAAE5C,EAAE9B,OAAOF,EAAE7B,EAAE+B,OAAOsB,EAAE,KAAKH,EAAEuD,GAAG,CAAC,IAAI/F,EAAEwC,EAAErB,EAAE7B,EAAEkD,QAAG,EAAOpC,EAAEuC,EAAEQ,EAAEX,GAAGxC,EAAE,CAAC,OAAO2C,CAAC,GAAGs1B,IAAI,OAAOE,GAAG,SAAS/3B,EAAEoC,GAAG,OAAOlD,EAAEc,GAAG,GAAGoC,GAAG,GAAGW,EAAE,EAAEg1B,EAAE,CAA/N,GAAmO,CAAC,MAAMh1B,GAAI,CAAAk1B,KAAKA,GAAGp2B,OAAOkE,GAAG,IAAIs0B,GAAGpC,GAAGqC,GAAGC,GAAG,SAASA,KAAK,IAAIx3B,EAAE,CAAA,EAAGA,EAAEy3B,MAAMz3B,EAAE03B,MAAM13B,EAAEgJ,KAAK2uB,UAAU33B,CAAC,CAAC,SAAS43B,GAAG53B,GAAGA,EAAE03B,MAAMD,MAAMz3B,EAAEy3B,MAAMz3B,EAAEy3B,MAAMC,MAAM13B,EAAE03B,aAAa13B,EAAEy3B,aAAaz3B,EAAE03B,KAAK,CAAC,SAASG,GAAG73B,EAAE7D,GAAG,GAAG,UAAU6D,GAAG,UAAUA,EAAE,OAAO7D,CAAC,CAACq7B,GAAGv7B,UAAU67B,QAAQ,WAAW,IAAI93B,EAAEgJ,KAAK2uB,UAAUx7B,EAAE6D,EAAE03B,MAAM,GAAGv7B,IAAI6D,EAAE,OAAO43B,GAAGz7B,GAAGA,CAAC,EAAEq7B,GAAGv7B,UAAU87B,QAAQ,SAAS/3B,GAAG,IAAI7D,EAAE6M,KAAK2uB,UAAU33B,EAAE03B,OAAO13B,EAAEy3B,OAAOG,GAAG53B,GAAGA,EAAEy3B,MAAMt7B,EAAEs7B,MAAMt7B,EAAEs7B,MAAMC,MAAM13B,EAAE7D,EAAEs7B,MAAMz3B,EAAEA,EAAE03B,MAAMv7B,CAAC,EAAEq7B,GAAGv7B,UAAUyC,SAAS,WAAW,IAAI,IAAIsB,EAAE,GAAG7D,EAAE6M,KAAK2uB,UAAU16B,EAAEd,EAAEu7B,MAAMz6B,IAAId,GAAG6D,EAAE3B,KAAK25B,KAAKC,UAAUh7B,EAAE46B,KAAK56B,EAAEA,EAAEy6B,MAAM,MAAM,IAAI13B,EAAErB,KAAK,MAAM,GAAG,EAAE,IAAIu5B,GAAGZ,GAAGa,GAAGhD,GAAG5G,MAAM6J,GAAGb,GAAi0Bc,GAAGH,GAAGlQ,SAAS,GAAG,SAASsQ,GAAGt4B,EAAE7D,EAAEc,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAE4E,EAAE,QAAG,EAAO,OAAOs1B,GAAG/2B,QAAQnB,EAAEisB,QAAQ5sB,EAAEa,IAAE,SAAWb,GAAG,IAAIG,EAAEQ,EAAE0rB,KAAKrsB,GAAGxC,EAAEmD,EAAE2qB,KAAKtrB,EAAEa,GAAG0C,GAAG5E,EAAEK,KAAK,CAAC6B,EAAEb,EAAEa,EAAEE,EAAEf,EAAEe,IAAIvD,EAAE07B,KAAK/4B,EAAEg5B,GAAGr8B,EAAEc,EAAEJ,EAAG,IAAGq7B,GAAG/2B,QAAQnB,EAAEksB,SAAS7sB,EAAEa,IAAE,SAAWb,GAAG,IAAIuD,EAAE5C,EAAE0rB,KAAKrsB,GAAGrB,EAAEqB,EAAEe,EAAEZ,EAAEQ,EAAE2qB,KAAK3sB,GAAGwB,EAAEi5B,IAAI71B,EAAE41B,GAAGr8B,EAAEc,EAAEuC,EAAG,IAAGQ,EAAE6qB,WAAWxrB,EAAEa,GAAGlC,CAAC,CAAC,SAASw6B,GAAGx4B,EAAE7D,EAAEc,GAAGA,EAAEs7B,IAAIt7B,EAAEw7B,GAAGz4B,EAAE/C,EAAEs7B,IAAIt7B,EAAEw7B,GAAGt8B,GAAG47B,QAAQ96B,GAAG+C,EAAEA,EAAE9B,OAAO,GAAG65B,QAAQ96B,GAAG+C,EAAE,GAAG+3B,QAAQ96B,EAAE,CAAC,IAAIy7B,GAAGpB,GAAGqB,GAAhtC,SAAS34B,EAAE7D,GAAG,GAAG6D,EAAEqqB,aAAa,EAAE,MAAM,GAAG,IAAIptB,EAAE,SAAS+C,EAAE7D,GAAG,IAAIc,EAAE,IAAIk7B,GAAG94B,EAAE,EAAEuD,EAAE,EAAEs1B,GAAG/2B,QAAQnB,EAAEsqB,SAAO,SAAWtqB,GAAG/C,EAAEytB,QAAQ1qB,EAAE,CAACE,EAAEF,EAAEy4B,GAAG,EAAEF,IAAI,GAAI,IAAGL,GAAG/2B,QAAQnB,EAAE6rB,SAAO,SAAW7rB,GAAG,IAAIhC,EAAEf,EAAEyuB,KAAK1rB,EAAEE,EAAEF,EAAEI,IAAI,EAAEZ,EAAErD,EAAE6D,GAAGnD,EAAEmB,EAAEwB,EAAEvC,EAAEwuB,QAAQzrB,EAAEE,EAAEF,EAAEI,EAAEvD,GAAG+F,EAAEqkB,KAAKC,IAAItkB,EAAE3F,EAAE0tB,KAAK3qB,EAAEE,GAAGq4B,KAAK/4B,GAAGH,EAAE4nB,KAAKC,IAAI7nB,EAAEpC,EAAE0tB,KAAK3qB,EAAEI,GAAGq4B,IAAIj5B,EAAG,IAAG,IAAIxB,EAAEk6B,GAAGlB,MAAMp0B,EAAEvD,EAAE,GAAGsL,KAAG,WAAa,OAAO,IAAIytB,EAAG,IAAG54B,EAAEH,EAAE,EAAE,OAAO64B,GAAG/2B,QAAQlE,EAAEqtB,SAAO,SAAWtqB,GAAGw4B,GAAGx6B,EAAEwB,EAAEvC,EAAE0tB,KAAK3qB,GAAI,IAAG,CAACmqB,MAAMltB,EAAE27B,QAAQ56B,EAAE66B,QAAQr5B,EAAE,CAA/Z,CAAiaQ,EAAE7D,GAAGk8B,IAAIh5B,EAAE,SAASW,EAAE7D,EAAEc,GAAqC,IAAlC,IAAIoC,EAAEuD,EAAE,GAAG5E,EAAE7B,EAAEA,EAAE+B,OAAO,GAAGsB,EAAErD,EAAE,GAAQ6D,EAAEqqB,aAAa,CAAC,KAAKhrB,EAAEG,EAAEs4B,WAAWQ,GAAGt4B,EAAE7D,EAAEc,EAAEoC,GAAG,KAAKA,EAAErB,EAAE85B,WAAWQ,GAAGt4B,EAAE7D,EAAEc,EAAEoC,GAAG,GAAGW,EAAEqqB,YAAY,IAAI,IAAIxtB,EAAEV,EAAE+B,OAAO,EAAErB,EAAE,IAAIA,EAAE,GAAGwC,EAAElD,EAAEU,GAAGi7B,UAAU,CAACl1B,EAAEA,EAAEwpB,OAAOkM,GAAGt4B,EAAE7D,EAAEc,EAAEoC,GAAE,IAAK,KAAK,CAAC,CAAC,OAAOuD,CAAC,CAApP,CAAsP3F,EAAEktB,MAAMltB,EAAE27B,QAAQ37B,EAAE47B,SAAS,OAAOX,GAAG3B,QAAQ2B,GAAGvtB,IAAItL,GAAC,SAAWlD,GAAG,OAAO6D,EAAEksB,SAAS/vB,EAAE+D,EAAE/D,EAAEiE,EAAG,KAAG,EAAG,EAA6Z04B,GAAG,CAACC,IAAI,SAAS/4B,GAAG,IAAI7D,EAAE,WAAW6D,EAAEmqB,QAAQ6O,UAAUL,GAAG34B,EAAE,SAASA,GAAG,OAAO,SAAS7D,GAAG,OAAO6D,EAAE0rB,KAAKvvB,GAAG88B,MAAM,CAAC,CAAvD,CAAyDj5B,IAAI,SAASA,GAAG,IAAI7D,EAAE,GAAGc,EAAE,GAAGoC,EAAE,CAAA,EAAoI,OAAOq5B,GAAGv3B,QAAQnB,EAAEsqB,SAArJ,SAAS1nB,EAAE5E,GAAG06B,GAAGnvB,IAAIlK,EAAErB,KAAKqB,EAAErB,IAAG,EAAGf,EAAEe,IAAG,EAAG06B,GAAGv3B,QAAQnB,EAAEksB,SAASluB,IAAI,SAASgC,GAAG04B,GAAGnvB,IAAItM,EAAE+C,EAAEI,GAAGjE,EAAEkC,KAAK2B,GAAG4C,EAAE5C,EAAEI,EAAG,WAAUnD,EAAEe,GAAG,IAAgC7B,CAAC,CAAhM,CAAkM6D,GAAG04B,GAAGv3B,QAAQhF,GAAG,SAASA,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAG6D,EAAE8qB,WAAW3uB,GAAGc,EAAEi8B,YAAY/8B,EAAEwoB,KAAK1nB,EAAEk8B,UAAS,EAAGn5B,EAAEyrB,QAAQtvB,EAAEiE,EAAEjE,EAAE+D,EAAEjD,EAAEy7B,GAAGtB,SAAS,OAAQ,GAAE,EAAEgC,KAAK,SAASp5B,GAAG04B,GAAGv3B,QAAQnB,EAAE6rB,kBAAkB1vB,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAG,GAAGc,EAAEk8B,SAAS,CAACn5B,EAAE8qB,WAAW3uB,GAAG,IAAIkD,EAAEpC,EAAEi8B,mBAAmBj8B,EAAEk8B,gBAAgBl8B,EAAEi8B,YAAYl5B,EAAEyrB,QAAQtvB,EAAEiE,EAAEjE,EAAE+D,EAAEjD,EAAEoC,EAAE,CAAE,GAAE,GAAOg6B,GAAG/B,GAAGgC,GAAGnE,GAAG5G,MAAMgL,GAAG,CAACC,aAAaC,GAAGC,SAAS,SAAS15B,GAAG,IAAI7D,GAAE,IAAKm9B,IAAIpP,SAASlqB,EAAEmqB,SAAS,OAAOkP,GAAGl4B,QAAQnB,EAAEsqB,SAAS,SAASrtB,GAAGd,EAAEuuB,QAAQztB,EAAE+C,EAAE2qB,KAAK1tB,GAAI,IAAGo8B,GAAGl4B,QAAQnB,EAAE6rB,SAAO,SAAW5uB,GAAG,IAAIoC,EAAElD,EAAEuvB,KAAKzuB,EAAEiD,EAAEjD,EAAEmD,IAAI,CAAC64B,OAAO,EAAEU,OAAO,GAAG/2B,EAAE5C,EAAE0rB,KAAKzuB,GAAGd,EAAEsvB,QAAQxuB,EAAEiD,EAAEjD,EAAEmD,EAAE,CAAC64B,OAAO55B,EAAE45B,OAAOr2B,EAAEq2B,OAAOU,OAAO1S,KAAKC,IAAI7nB,EAAEs6B,OAAO/2B,EAAE+2B,SAAU,IAAGx9B,CAAC,EAAEy9B,mBAAmB,SAAS55B,GAAG,IAAI7D,EAAE,IAAIm9B,GAAG,CAACxQ,WAAW9oB,EAAEgqB,iBAAiBE,SAASlqB,EAAEmqB,SAAS,OAAOkP,GAAGl4B,QAAQnB,EAAEsqB,SAAS,SAASrtB,GAAG+C,EAAEgrB,SAAS/tB,GAAGiB,QAAQ/B,EAAEuuB,QAAQztB,EAAE+C,EAAE2qB,KAAK1tB,GAAI,IAAGo8B,GAAGl4B,QAAQnB,EAAE6rB,kBAAkB5uB,GAAGd,EAAEsvB,QAAQxuB,EAAE+C,EAAE0rB,KAAKzuB,GAAI,IAAGd,CAAC,EAAE09B,iBAAiB,SAAS75B,GAAG,IAAI7D,EAAEk9B,GAAG1uB,IAAI3K,EAAEsqB,kBAAkBnuB,GAAG,IAAIc,EAAE,GAAG,OAAOo8B,GAAGl4B,QAAQnB,EAAEksB,SAAS/vB,IAAE,SAAWA,GAAGc,EAAEd,EAAEiE,IAAInD,EAAEd,EAAEiE,IAAI,GAAGJ,EAAE0rB,KAAKvvB,GAAG88B,MAAO,IAAGh8B,CAAE,IAAG,OAAOo8B,GAAGhC,UAAUr3B,EAAEsqB,QAAQnuB,EAAE,EAAE29B,mBAAmB,SAAS95B,GAAG,IAAI7D,EAAEk9B,GAAG1uB,IAAI3K,EAAEsqB,SAAS,SAASnuB,GAAG,IAAIc,EAAE,CAAE,EAAC,OAAOo8B,GAAGl4B,QAAQnB,EAAEisB,QAAQ9vB,aAAaA,GAAGc,EAAEd,EAAE+D,IAAIjD,EAAEd,EAAE+D,IAAI,GAAGF,EAAE0rB,KAAKvvB,GAAG88B,MAAO,IAAGh8B,CAAE,IAAG,OAAOo8B,GAAGhC,UAAUr3B,EAAEsqB,QAAQnuB,EAAE,EAAE49B,cAAc,SAAS/5B,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5C,EAAE+C,EAAE/E,EAAEgC,EAAE8C,EAAEtD,EAAErD,EAAE4G,EAAEH,EAAE/F,EAAEV,EAAE2G,EAAE9E,EAAEpB,EAAEoD,EAAEg6B,MAAM,EAAEv+B,EAAEuE,EAAEi6B,OAAO,EAAE,IAAIz6B,IAAI3C,EAAE,MAAM,IAAIquB,MAAM,6DAA6I,OAAhFjE,KAAKiT,IAAIr9B,GAAGD,EAAEqqB,KAAKiT,IAAI16B,GAAG/D,GAAGoB,EAAE,IAAIpB,GAAGA,GAAGwB,EAAExB,EAAE+D,EAAE3C,EAAEwC,EAAE5D,IAAI+D,EAAE,IAAI5C,GAAGA,GAAGK,EAAEL,EAAEyC,EAAEzC,EAAEC,EAAE2C,GAAS,CAACuD,EAAEH,EAAE3F,EAAE6F,EAAE9E,EAAEqB,EAAE,EAAE86B,iBAAiB,SAASn6B,GAAG,IAAI7D,EAAEk9B,GAAG1uB,IAAI0uB,GAAGrC,MAAMoD,GAAGp6B,GAAG,IAAI,WAAW,MAAM,EAAG,IAAG,OAAOq5B,GAAGl4B,QAAQnB,EAAEsqB,SAAS,SAASrtB,GAAG,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAG2F,EAAEvD,EAAEg7B,KAAKhB,GAAGhR,YAAYzlB,KAAKzG,EAAEyG,GAAGvD,EAAEi7B,OAAOr9B,EAAG,IAAGd,CAAC,EAAEo+B,eAAe,SAASv6B,GAAG,IAAI7D,EAAEk9B,GAAGvM,IAAIuM,GAAG1uB,IAAI3K,EAAEsqB,SAAO,SAAWnuB,GAAG,OAAO6D,EAAE2qB,KAAKxuB,GAAGk+B,IAAK,KAAIhB,GAAGl4B,QAAQnB,EAAEsqB,SAAS,SAASrtB,GAAG,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAGo8B,GAAG9vB,IAAIlK,EAAE,UAAUA,EAAEg7B,MAAMl+B,EAAG,GAAE,EAAEq+B,iBAAiB,SAASx6B,GAAG,IAAI7D,EAAEk9B,GAAGvM,IAAIuM,GAAG1uB,IAAI3K,EAAEsqB,SAAS,SAASnuB,GAAG,OAAO6D,EAAE2qB,KAAKxuB,GAAGk+B,IAAK,KAAIp9B,EAAE,GAAGo8B,GAAGl4B,QAAQnB,EAAEsqB,kBAAkBjrB,GAAG,IAAIuD,EAAE5C,EAAE2qB,KAAKtrB,GAAGg7B,KAAKl+B,EAAEc,EAAE2F,KAAK3F,EAAE2F,GAAG,IAAI3F,EAAE2F,GAAGvE,KAAKgB,EAAG,IAAG,IAAIA,EAAE,EAAEuD,EAAE5C,EAAEmqB,QAAQsQ,eAAepB,GAAGl4B,QAAQlE,YAAYd,EAAEc,GAAGo8B,GAAGhR,YAAYlsB,IAAIc,EAAE2F,GAAG,IAAIvD,EAAEA,GAAGg6B,GAAGl4B,QAAQhF,GAAG,SAASA,GAAG6D,EAAE2qB,KAAKxuB,GAAGk+B,MAAMh7B,CAAE,GAAG,GAAE,EAAEq7B,cAAc,SAAS16B,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,CAACo3B,MAAM,EAAEC,OAAO,GAA6C,OAA1Ch8B,UAAUC,QAAQ,IAAI0E,EAAEy3B,KAAKp9B,EAAE2F,EAAE03B,MAAMj7B,GAAUo6B,GAAGz5B,EAAE,SAAS4C,EAAEzG,EAAE,EAAEw+B,QAAQP,GAAGQ,UAAU,SAAS56B,EAAE7D,GAAG,IAAIc,EAAE,CAAC49B,IAAI,GAAGC,IAAI,IAAI,OAAOzB,GAAGl4B,QAAQnB,YAAYA,GAAG7D,EAAE6D,GAAG/C,EAAE49B,IAAIx8B,KAAK2B,GAAG/C,EAAE69B,IAAIz8B,KAAK2B,EAAG,IAAG/C,CAAC,EAAE89B,KAAK,SAAS/6B,EAAE7D,GAAG,IAAIc,EAAEo8B,GAAGhS,MAAM,IAAI,OAAOlrB,GAAG,CAAC,QAAQ0F,QAAQm5B,IAAIh7B,EAAE,WAAWq5B,GAAGhS,MAAMpqB,GAAG,KAAK,CAAC,EAAEg+B,OAAO,SAASj7B,EAAE7D,GAAG,OAAOA,GAAG,GAAG,SAASs9B,GAAGz5B,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,GAAGA,EAAEy2B,GAAGjC,SAAS/3B,SAASW,EAAE4qB,QAAQhoB,IAAI,OAAO3F,EAAEi+B,MAAM/+B,EAAE6D,EAAE0qB,QAAQ9nB,EAAE3F,GAAG2F,CAAC,CAAC,SAASw3B,GAAGp6B,GAAG,OAAOq5B,GAAGnS,IAAImS,GAAG1uB,IAAI3K,EAAEsqB,SAAS,SAASnuB,GAAG,IAAIc,EAAE+C,EAAE2qB,KAAKxuB,GAAGk+B,KAAK,IAAIhB,GAAGhR,YAAYprB,GAAG,OAAOA,CAAE,IAAG,CAAC,IAAIk+B,GAAG7D,GAAG8D,GAAG7B,GAAG8B,GAAG,CAACtC,IAAI,SAAS/4B,GAAGA,EAAEmqB,QAAQmR,YAAY,GAAGH,GAAGh6B,QAAQnB,EAAE6rB,SAAO,SAAW1vB,IAAI,SAAS6D,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5E,EAAE7B,EAAE+D,EAAEV,EAAEQ,EAAE2qB,KAAK3sB,GAAGq8B,KAAKx9B,EAAEV,EAAEiE,EAAExD,EAAEoD,EAAE2qB,KAAK9tB,GAAGw9B,KAAK5+B,EAAEU,EAAEwoB,KAAK9hB,EAAE7C,EAAE0rB,KAAKvvB,GAAGL,EAAE+G,EAAE04B,UAAU,GAAG3+B,IAAI4C,EAAE,EAAT,CAAkB,IAAIQ,EAAE8qB,WAAW3uB,GAAGyG,EAAE,IAAIpD,EAAEA,EAAE5C,IAAIgG,IAAIpD,EAAEqD,EAAE24B,OAAO,GAAGn8B,EAAE,CAAC26B,MAAM,EAAEC,OAAO,EAAEwB,UAAU54B,EAAE64B,QAAQv/B,EAAEk+B,KAAK76B,GAAGvC,EAAEm+B,GAAG5B,aAAax5B,EAAE,OAAOX,EAAE,MAAMG,IAAI1D,IAAIuD,EAAE26B,MAAMn3B,EAAEm3B,MAAM36B,EAAE46B,OAAOp3B,EAAEo3B,OAAO56B,EAAE67B,MAAM,aAAa77B,EAAEs8B,SAAS94B,EAAE84B,UAAU37B,EAAEyrB,QAAQztB,EAAEf,EAAE,CAACg8B,OAAOp2B,EAAEo2B,QAAQx9B,GAAG,IAAImH,GAAG5C,EAAEmqB,QAAQmR,YAAYj9B,KAAKpB,GAAGe,EAAEf,EAAE+C,EAAEyrB,QAAQztB,EAAEnB,EAAE,CAACo8B,OAAOp2B,EAAEo2B,QAAQx9B,EAA3U,CAA6U,CAAxc,CAA0cuE,EAAE7D,EAAG,GAAE,EAAEi9B,KAAK,SAASp5B,GAAGm7B,GAAGh6B,QAAQnB,EAAEmqB,QAAQmR,aAAa,SAASn/B,GAAG,IAAIc,EAAEoC,EAAEW,EAAE2qB,KAAKxuB,GAAGyG,EAAEvD,EAAEo8B,UAAU,IAAIz7B,EAAEyrB,QAAQpsB,EAAEq8B,QAAQ94B,GAAGvD,EAAE67B,OAAOj+B,EAAE+C,EAAEqrB,WAAWlvB,GAAG,GAAG6D,EAAE6qB,WAAW1uB,GAAGyG,EAAE44B,OAAOn9B,KAAK,CAAC0E,EAAE1D,EAAE0D,EAAED,EAAEzD,EAAEyD,IAAI,eAAezD,EAAE67B,QAAQt4B,EAAEG,EAAE1D,EAAE0D,EAAEH,EAAEE,EAAEzD,EAAEyD,EAAEF,EAAEo3B,MAAM36B,EAAE26B,MAAMp3B,EAAEq3B,OAAO56B,EAAE46B,QAAQ99B,EAAEc,EAAEoC,EAAEW,EAAE2qB,KAAKxuB,EAAG,GAAE,GAAOy/B,GAAGtE,GAAGuE,GAAgB,SAAS77B,GAAG,IAAI7D,EAAE,GAAGy/B,GAAGz6B,QAAQnB,EAAEuqB,WAAS,SAAWttB,EAAEoC,GAAG,IAAIuD,EAAE5C,EAAE2qB,KAAKtrB,GAAG,GAAGu8B,GAAGryB,IAAIpN,EAAEkD,GAAG,OAAOuD,EAAEy3B,KAAKl+B,EAAEkD,IAAG,EAAG,IAAIrB,EAAE49B,GAAG9O,IAAI8O,GAAGjxB,IAAI3K,EAAEksB,SAAS7sB,IAAI,SAASlD,GAAG,OAAOc,EAAEd,EAAEiE,GAAGJ,EAAE0rB,KAAKvvB,GAAGw9B,MAAO,KAAI,OAAO37B,IAAIuvB,OAAOC,mBAAmB,MAAMxvB,IAAIA,EAAE,GAAG4E,EAAEy3B,KAAKr8B,CAAE,GAAE,EAAjR69B,GAAyR,SAAS77B,EAAE7D,GAAG,OAAO6D,EAAE2qB,KAAKxuB,EAAEiE,GAAGi6B,KAAKr6B,EAAE2qB,KAAKxuB,EAAE+D,GAAGm6B,KAAKr6B,EAAE0rB,KAAKvvB,GAAGw9B,MAAM,EAAOmC,GAAGxE,GAAGyE,GAAG5G,GAAG5G,MAAMyN,GAAGH,GAASI,GAAG,SAASj8B,GAAG,IAAI7D,EAAEc,EAAEoC,EAAE,IAAI08B,GAAG,CAACnT,UAAS,IAAKhmB,EAAE5C,EAAEsqB,QAAQ,GAAGtsB,EAAEgC,EAAEqqB,YAA4B,IAAhBhrB,EAAEqrB,QAAQ9nB,EAAE,CAAE,GAAOs5B,GAAG78B,EAAEW,GAAGhC,GAAG7B,EAAEggC,GAAG98B,EAAEW,GAAG/C,EAAEoC,EAAEurB,QAAQzuB,EAAE+D,GAAG87B,GAAGh8B,EAAE7D,IAAI6/B,GAAGh8B,EAAE7D,GAAGigC,GAAG/8B,EAAEW,EAAE/C,GAAG,OAAOoC,CAAC,EAAE,SAAS68B,GAAGl8B,EAAE7D,GAAG,OAAO2/B,GAAG36B,QAAQnB,EAAEsqB,kBAAkBrtB,EAAEoC,GAAGy8B,GAAG36B,QAAQhF,EAAEgwB,UAAU9sB,aAAauD,GAAG,IAAI5E,EAAE4E,EAAE1C,EAAEV,EAAEH,IAAIrB,EAAE4E,EAAExC,EAAEpC,EAAEgC,EAAE4qB,QAAQprB,IAAIw8B,GAAG7/B,EAAEyG,KAAK5C,EAAE0qB,QAAQlrB,EAAE,IAAIQ,EAAEyrB,QAAQpsB,EAAEG,EAAE,IAAIvC,EAAEuC,GAAI,GAAG,IAAGQ,EAAEqqB,WAAW,CAAC,SAAS8R,GAAGn8B,EAAE7D,GAAG,OAAO2/B,GAAGjF,MAAM16B,EAAE0vB,SAAO,SAAW5uB,GAAG,GAAG+C,EAAE4qB,QAAQ3tB,EAAEiD,KAAKF,EAAE4qB,QAAQ3tB,EAAEmD,GAAG,OAAO47B,GAAG7/B,EAAEc,EAAG,GAAE,CAAC,SAASm/B,GAAGp8B,EAAE7D,EAAEc,GAAG6+B,GAAG36B,QAAQnB,EAAEsqB,SAAO,SAAWtqB,GAAG7D,EAAEwuB,KAAK3qB,GAAGq6B,MAAMp9B,CAAE,GAAE,CAAC,IAAIo/B,GAAG/E,GAAGgF,GAAGL,GAAGM,GAAGV,GAASW,GAAGX,GAAeY,GAAGtH,GAAGzG,IAAIQ,SAASwN,GAAGvH,GAAGzG,IAAIO,UAAU0N,GAAGpD,GAAGG,SAASkD,GAAGC,GAAG,SAASA,GAAG78B,GAAGA,EAAE28B,GAAG38B,GAAGw8B,GAAGx8B,GAAG,IAAI7D,EAAEc,EAAEq/B,GAAGt8B,GAAG,IAAI88B,GAAG7/B,GAAG8/B,GAAG9/B,EAAE+C,GAAG7D,EAAE6gC,GAAG//B,IAAIggC,GAAGhgC,EAAE+C,EAAE7D,EAAE+gC,GAAGjgC,EAAE+C,EAAE7D,GAAG,CAAC,SAAS4gC,GAAG/8B,EAAE7D,GAAG,IAAIc,EAAEy/B,GAAG18B,EAAEA,EAAEsqB,SAASrtB,EAAEA,EAAEqF,MAAM,EAAErF,EAAEiB,OAAO,GAAGm+B,GAAGl7B,QAAQlE,GAAG,SAASA,IAAI,SAAS+C,EAAE7D,EAAEc,GAAG,IAAgB2F,EAAV5C,EAAE2qB,KAAK1tB,GAAOkuB,OAAOnrB,EAAE0rB,KAAKzuB,EAAE2F,GAAGu6B,SAASC,GAAGp9B,EAAE7D,EAAEc,EAAE,CAAzE,CAA2E+C,EAAE7D,EAAEc,EAAG,GAAE,CAAC,SAASmgC,GAAGp9B,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAGkuB,OAAOvoB,GAAE,EAAG5E,EAAE7B,EAAEuvB,KAAKzuB,EAAEoC,GAAGG,EAAE,EAAE,OAAOxB,IAAI4E,GAAE,EAAG5E,EAAE7B,EAAEuvB,KAAKrsB,EAAEpC,IAAIuC,EAAExB,EAAEi7B,OAAOoD,GAAGl7B,QAAQhF,EAAEgwB,UAAUlvB,IAAE,SAAWe,GAAG,IAAInB,EAAED,EAAEnB,EAAEuC,EAAEkC,IAAIjD,EAAE4F,EAAEpH,EAAEuC,EAAEoC,EAAEpC,EAAEkC,EAAE,GAAG2C,IAAIxD,EAAE,CAAC,IAAIvD,EAAEL,IAAImH,EAAE1F,EAAEf,EAAEuvB,KAAK1tB,GAAGi7B,OAAO,GAAGz5B,GAAG1D,EAAEoB,GAAGA,EAAEL,EAAEI,EAAEL,EAAEiG,EAAE7C,EAAEgsB,QAAQnvB,EAAED,GAAG,CAAC,IAAII,EAAEgD,EAAE0rB,KAAKzuB,EAAE4F,GAAGs6B,SAAS39B,GAAG1D,GAAGkB,EAAEA,CAAC,CAAC,CAAE,IAAGwC,CAAC,CAAC,SAASs9B,GAAG98B,EAAE7D,GAAG8B,UAAUC,OAAO,IAAI/B,EAAE6D,EAAEsqB,QAAQ,IAAI+S,GAAGr9B,EAAE,CAAA,EAAG,EAAE7D,EAAE,CAAC,SAASkhC,GAAGr9B,EAAE7D,EAAEc,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAEf,EAAEuC,EAAEQ,EAAE2qB,KAAKtrB,GAAG,OAAOlD,EAAEkD,IAAG,EAAGg9B,GAAGl7B,QAAQnB,EAAEsrB,UAAUjsB,IAAI,SAASuD,GAAGy5B,GAAG9yB,IAAIpN,EAAEyG,KAAK3F,EAAEogC,GAAGr9B,EAAE7D,EAAEc,EAAE2F,EAAEvD,GAAI,IAAGG,EAAE89B,IAAIt/B,EAAEwB,EAAE+9B,IAAItgC,IAAI2F,EAAEpD,EAAE2rB,OAAOvoB,SAASpD,EAAE2rB,OAAOluB,CAAC,CAAC,SAAS+/B,GAAGh9B,GAAG,OAAOq8B,GAAGhG,KAAKr2B,EAAE6rB,kBAAkB1vB,GAAG,OAAO6D,EAAE0rB,KAAKvvB,GAAGghC,SAAS,CAAE,GAAE,CAAC,SAASD,GAAGl9B,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEpC,EAAEiD,EAAE0C,EAAE3F,EAAEmD,EAAEjE,EAAE6vB,QAAQ3sB,EAAEuD,KAAKvD,EAAEpC,EAAEmD,EAAEwC,EAAE3F,EAAEiD,GAAG,IAAIlC,EAAEgC,EAAE2qB,KAAKtrB,GAAGG,EAAEQ,EAAE2qB,KAAK/nB,GAAG/F,EAAEmB,EAAEpB,GAAE,EAAGoB,EAAEu/B,IAAI/9B,EAAE+9B,MAAM1gC,EAAE2C,EAAE5C,GAAE,GAAI,IAAInB,EAAE4gC,GAAGnU,OAAO/rB,EAAE0vB,SAAS,SAAS1vB,GAAG,OAAOS,IAAI4gC,GAAGx9B,EAAEA,EAAE2qB,KAAKxuB,EAAE+D,GAAGrD,IAAID,IAAI4gC,GAAGx9B,EAAEA,EAAE2qB,KAAKxuB,EAAEiE,GAAGvD,EAAG,IAAG,OAAOw/B,GAAGxF,MAAMp7B,GAAC,SAAWuE,GAAG,OAAOu8B,GAAGpgC,EAAE6D,EAAG,GAAE,CAAC,SAASi9B,GAAGj9B,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE3F,EAAEiD,EAAElC,EAAEf,EAAEmD,EAAEJ,EAAE8qB,WAAWloB,EAAE5E,GAAGgC,EAAEyrB,QAAQpsB,EAAEa,EAAEb,EAAEe,EAAE,CAAA,GAAI08B,GAAG98B,GAAG+8B,GAAG/8B,EAAE7D,GAAG,SAAS6D,EAAE7D,GAAG,IAAIc,EAAEo/B,GAAGhG,KAAKr2B,EAAEsqB,SAAS,SAAStqB,GAAG,OAAO7D,EAAEwuB,KAAK3qB,GAAGmrB,MAAO,IAAG9rB,EAAEo9B,GAAGz8B,EAAE/C,GAAGoC,EAAEA,EAAEiD,MAAM,GAAG+5B,GAAGl7B,QAAQ9B,GAAC,SAAWpC,GAAG,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAGkuB,OAAOvoB,EAAEzG,EAAEuvB,KAAKzuB,EAAEoC,GAAGrB,GAAE,EAAG4E,IAAIA,EAAEzG,EAAEuvB,KAAKrsB,EAAEpC,GAAGe,GAAE,GAAI7B,EAAEwuB,KAAK1tB,GAAGo9B,KAAKl+B,EAAEwuB,KAAKtrB,GAAGg7B,MAAMr8B,EAAE4E,EAAE+2B,QAAQ/2B,EAAE+2B,OAAQ,GAAE,CAAxP,CAA0P35B,EAAE7D,EAAE,CAAC,SAASqhC,GAAGx9B,EAAE7D,EAAEc,GAAG,OAAOA,EAAEqgC,KAAKnhC,EAAEohC,KAAKphC,EAAEohC,KAAKtgC,EAAEsgC,GAAG,CAACV,GAAGY,iBAAiBX,GAAGD,GAAGa,cAAcX,GAAGF,GAAGc,aAAaP,GAAGP,GAAGe,UAAUZ,GAAGH,GAAGgB,UAAUX,GAAGL,GAAGiB,cAAcb,GAAG,IAAIc,GAAGlC,GAAemC,GAAG/B,GAAGgC,GAAGrB,GAAwKsB,GAAGH,GAAwB,IAAII,GAAG7G,GAAuuB8G,GAAG9G,GAAG+G,GAAG9E,GAAG+E,GAAG,CAACvF,IAAI,SAAS/4B,GAAG,IAAI7D,EAAEkiC,GAAG7E,aAAax5B,EAAE,OAAO,CAAE,EAAC,SAAS/C,EAAE,SAAS+C,GAAG,IAAI7D,EAAE,CAAE,EAAC,SAASc,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAEgC,EAAEgrB,SAAS3rB,GAAGrB,GAAGA,EAAEE,QAAQkgC,GAAGj9B,QAAQnD,GAAC,SAAWgC,GAAG/C,EAAE+C,EAAE4C,EAAE,EAAG,IAAGzG,EAAEkD,GAAGuD,CAAC,CAAC,OAAOw7B,GAAGj9B,QAAQnB,EAAEgrB,YAAY,SAAShrB,GAAG/C,EAAE+C,EAAE,EAAG,IAAG7D,CAAC,CAA1K,CAA4K6D,GAAGX,EAAE++B,GAAGlX,IAAIkX,GAAG3V,OAAOxrB,IAAI,EAAE2F,EAAE,EAAEvD,EAAE,EAAEW,EAAEmqB,QAAQoU,YAAYpiC,EAAEiiC,GAAGj9B,QAAQnB,EAAE6rB,SAAO,SAAW1vB,GAAG6D,EAAE0rB,KAAKvvB,GAAGw9B,QAAQ/2B,CAAE,IAAG,IAAI5E,EAAE,SAASgC,GAAG,OAAOo+B,GAAG9V,OAAOtoB,EAAE6rB,kBAAkB1vB,EAAEc,GAAG,OAAOd,EAAE6D,EAAE0rB,KAAKzuB,GAAGg8B,MAAO,GAAE,EAAE,CAApF,CAAsFj5B,GAAG,EAAEo+B,GAAGj9B,QAAQnB,EAAEgrB,YAAY,SAASxrB,GAAGg/B,GAAGx+B,EAAE7D,EAAEyG,EAAE5E,EAAEqB,EAAEpC,EAAEuC,EAAG,IAAGQ,EAAEmqB,QAAQsQ,eAAe73B,CAAC,EAAE67B,QAAQ,SAASz+B,GAAG,IAAI7D,EAAE6D,EAAEmqB,QAAQnqB,EAAE6qB,WAAW1uB,EAAEoiC,oBAAoBpiC,EAAEoiC,YAAYH,GAAGj9B,QAAQnB,EAAE6rB,SAAO,SAAW1vB,GAAG6D,EAAE0rB,KAAKvvB,GAAGuiC,aAAa1+B,EAAE8qB,WAAW3uB,EAAG,GAAE,GAAG,SAASqiC,GAAGx+B,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,EAAEwB,GAAG,IAAI3C,EAAEmD,EAAEgrB,SAASxrB,GAAG,GAAG3C,EAAEqB,OAAO,CAAC,IAAItB,EAAEyhC,GAAG3D,cAAc16B,EAAE,OAAOvE,EAAE4iC,GAAG3D,cAAc16B,EAAE,OAAO6C,EAAE7C,EAAE2qB,KAAKnrB,GAAGQ,EAAEirB,UAAUruB,EAAE4C,GAAGqD,EAAE87B,UAAU/hC,EAAEoD,EAAEirB,UAAUxvB,EAAE+D,GAAGqD,EAAE+7B,aAAanjC,EAAE2iC,GAAGj9B,QAAQtE,YAAYA,GAAG2hC,GAAGx+B,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,EAAEnB,GAAG,IAAIgG,EAAE7C,EAAE2qB,KAAK9tB,GAAGf,EAAE+G,EAAE87B,UAAU97B,EAAE87B,UAAU9hC,EAAEK,EAAE2F,EAAE+7B,aAAa/7B,EAAE+7B,aAAa/hC,EAAEG,EAAE6F,EAAE87B,UAAUt/B,EAAE,EAAEA,EAAEa,EAAEpE,IAAIoB,EAAE,EAAE0F,EAAE5E,EAAEwB,GAAG,EAAEQ,EAAEyrB,QAAQ7uB,EAAEd,EAAE,CAACm9B,OAAOj8B,EAAE28B,OAAOz5B,EAAEw+B,aAAY,IAAK1+B,EAAEyrB,QAAQvuB,EAAEzB,EAAE,CAACw9B,OAAOj8B,EAAE28B,OAAOz5B,EAAEw+B,aAAY,GAAK,IAAG1+B,EAAEmrB,OAAO3rB,IAAIQ,EAAEyrB,QAAQtvB,EAAES,EAAE,CAACq8B,OAAO,EAAEU,OAAO/2B,EAAE5E,EAAEwB,IAAI,MAAMA,IAAIrD,GAAG6D,EAAEyrB,QAAQtvB,EAAEqD,EAAE,CAACy5B,OAAO,EAAEU,OAAO18B,GAAG,CAAC,IAAI4hC,GAAGvH,GAAGwH,GAAGvF,GAA0R,SAASwF,GAAG/+B,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAIwB,EAAE,CAACw6B,MAAM,EAAEC,OAAO,EAAEI,KAAKr8B,EAAEghC,WAAW7iC,GAAGU,EAAE+F,EAAEzG,GAAG6B,EAAE,GAAGpB,EAAEkiC,GAAGtF,aAAax5B,EAAE,SAASR,EAAEvC,GAAG2F,EAAEzG,GAAG6B,GAAGpB,EAAEoD,EAAEirB,UAAUruB,EAAEyC,GAAGxC,GAAGmD,EAAEyrB,QAAQ5uB,EAAED,EAAE,CAACq8B,OAAO,GAAG,CAAC,IAAIgG,GAAG3H,GAAG4H,GAAG,CAACC,OAAO,SAASn/B,GAAG,IAAI7D,EAAE6D,EAAEmqB,QAAQiV,QAAQC,cAAc,OAAOljC,GAAG,OAAOA,GAAGmjC,GAAGt/B,EAAE,EAAEo5B,KAAK,SAASp5B,GAAG,IAAI7D,EAAE6D,EAAEmqB,QAAQiV,QAAQC,cAAc,OAAOljC,GAAG,OAAOA,GAAG,SAAS6D,GAAGi/B,GAAG99B,QAAQnB,EAAEsqB,SAAO,SAAWnuB,GAAGojC,GAAGv/B,EAAE2qB,KAAKxuB,GAAI,IAAG8iC,GAAG99B,QAAQnB,EAAE6rB,SAAO,SAAW1vB,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAG8iC,GAAG99B,QAAQlE,EAAEu+B,OAAO+D,IAAIN,GAAG11B,IAAItM,EAAE,MAAMsiC,GAAGtiC,EAAG,GAAE,CAAhK,CAAkK+C,GAAG,OAAO7D,GAAG,OAAOA,IAAK,SAAS6D,GAAGi/B,GAAG99B,QAAQnB,EAAEsqB,kBAAkBnuB,GAAGqjC,GAAGx/B,EAAE2qB,KAAKxuB,GAAI,IAAG8iC,GAAG99B,QAAQnB,EAAE6rB,SAAS,SAAS1vB,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAG8iC,GAAG99B,QAAQlE,EAAEu+B,OAAOgE,IAAIP,GAAG11B,IAAItM,EAAE,MAAMuiC,GAAGviC,EAAG,GAAE,CAAhK,CAAkK+C,GAAGs/B,GAAGt/B,GAAG,GAAG,SAASs/B,GAAGt/B,GAAGi/B,GAAG99B,QAAQnB,EAAEsqB,SAAS,SAASnuB,GAAGsjC,GAAGz/B,EAAE2qB,KAAKxuB,GAAI,IAAG8iC,GAAG99B,QAAQnB,EAAE6rB,SAAS,SAAS1vB,GAAGsjC,GAAGz/B,EAAE0rB,KAAKvvB,GAAI,GAAE,CAAC,SAASsjC,GAAGz/B,GAAG,IAAI7D,EAAE6D,EAAEg6B,MAAMh6B,EAAEg6B,MAAMh6B,EAAEi6B,OAAOj6B,EAAEi6B,OAAO99B,CAAC,CAAC,SAASojC,GAAGv/B,GAAGA,EAAE8C,GAAG9C,EAAE8C,CAAC,CAAC,SAAS08B,GAAGx/B,GAAG,IAAI7D,EAAE6D,EAAE+C,EAAE/C,EAAE+C,EAAE/C,EAAE8C,EAAE9C,EAAE8C,EAAE3G,CAAC,CAAC,IAAIujC,GAAGpI,GAAmYqI,GAAGrI,GAAkF,SAASsI,GAAG5/B,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,EAAEsgC,GAAGtI,UAAUp6B,EAAE0iC,GAAGh1B,IAAI1N,GAAG,SAAS+C,EAAE7D,GAAG,OAAOA,CAAE,KAAIyG,EAAE+8B,GAAGpJ,QAAQoJ,GAAGh1B,IAAIxO,YAAYA,GAAG,OAAOwjC,GAAGxI,OAAOwI,GAAGh1B,IAAI3K,EAAEksB,SAAS/vB,IAAI,SAASA,GAAG,MAAM,CAAC0jC,IAAIxgC,EAAElD,EAAEiE,GAAG64B,OAAOj5B,EAAE0rB,KAAKvvB,GAAG88B,OAAQ,IAAG,MAAO,KAAG,GAAIj7B,EAAE,EAAEA,EAAEf,EAAEiB,QAAQF,IAAI,EAAE,IAAIwB,EAAE,EAAExB,EAAE,EAAEA,GAAG,EAAE,IAAInB,EAAE8iC,GAAGh1B,IAAI,IAAIrM,MAAMkB,IAAE,WAAa,OAAO,CAAE,IAAG5C,EAAE,EAAE,OAAO+iC,GAAGx+B,QAAQyB,EAAEzB,kBAAkBnB,GAAG,IAAI7D,EAAE6D,EAAE6/B,IAAI7hC,EAAEnB,EAAEV,IAAI6D,EAAEi5B,OAAO,IAAI,IAAIh8B,EAAE,EAAEd,EAAE,GAAGA,EAAE,IAAIc,GAAGJ,EAAEV,EAAE,IAAIU,EAAEV,EAAEA,EAAE,GAAG,IAAI6D,EAAEi5B,OAAOr8B,GAAGoD,EAAEi5B,OAAOh8B,CAAE,KAAIL,CAAC,CAAC,IAAIkjC,GAAGxI,GAAOyI,GAAGzI,GAAO0I,GAAG1I,GAAG2I,GAAG1G,GAAG,SAAS2G,GAAGlgC,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,EAAElD,EAAE+B,SAASmB,EAAE2gC,GAAGvJ,KAAKt6B,IAAI6B,GAAGf,GAAGd,EAAEiN,MAAMpJ,EAAE3B,KAAKgB,EAAE2yB,IAAI/0B,IAAI,OAAOA,CAAC,CAAC,IAAIkjC,GAAG7I,GAAmoF8I,GAAG9I,GAAG+I,GAAGlL,GAAG5G,MAAklB+R,GAAGhJ,GAAOiJ,GAAGjJ,GAAGkJ,GAA9xI,SAASxgC,GAAG,IAAI7D,EAAE,CAAA,EAAGc,EAAEyiC,GAAGxX,OAAOloB,EAAEsqB,kBAAkBnuB,GAAG,OAAO6D,EAAEgrB,SAAS7uB,GAAG+B,MAAO,IAAGmB,EAAEqgC,GAAGxY,IAAIwY,GAAG/0B,IAAI1N,GAAC,SAAWd,GAAG,OAAO6D,EAAE2qB,KAAKxuB,GAAGk+B,IAAK,KAAIz3B,EAAE88B,GAAG/0B,IAAI+0B,GAAG1I,MAAM33B,EAAE,IAAI,WAAW,MAAM,EAAG,IAA2G,IAAIG,EAAEkgC,GAAGvI,OAAOl6B,YAAYd,GAAG,OAAO6D,EAAE2qB,KAAKxuB,GAAGk+B,IAAK,IAAG,OAAOqF,GAAGv+B,QAAQ3B,GAAlL,SAASxB,EAAEf,GAAG,IAAIyiC,GAAGn2B,IAAIpN,EAAEc,GAAG,CAACd,EAAEc,IAAG,EAAG,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAG2F,EAAEvD,EAAEg7B,MAAMh8B,KAAKpB,GAAGyiC,GAAGv+B,QAAQnB,EAAEqrB,WAAWpuB,GAAGe,EAAE,CAAC,IAAgF4E,CAAC,EAA66H69B,GAA95H,SAASzgC,EAAE7D,GAAG,IAAI,IAAIc,EAAE,EAAEoC,EAAE,EAAEA,EAAElD,EAAE+B,SAASmB,EAAEpC,GAAG2iC,GAAG5/B,EAAE7D,EAAEkD,EAAE,GAAGlD,EAAEkD,IAAI,OAAOpC,CAAC,EAA01HyjC,GAA1/C,SAAS1gC,EAAE7D,EAAEc,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAE7B,EAAE6uB,SAAS/tB,GAAGuC,EAAErD,EAAEwuB,KAAK1tB,GAAGJ,EAAE2C,EAAEA,EAAEmhC,gBAAW,EAAO/jC,EAAE4C,EAAEA,EAAEohC,iBAAY,EAAOnlC,EAAE,CAAE,EAACoB,IAAImB,EAAEmiC,GAAGjY,OAAOlqB,GAAG,SAASgC,GAAG,OAAOA,IAAInD,GAAGmD,IAAIpD,CAAE,KAAI,IAAIiG,EAAl6D,SAAS7C,EAAE7D,GAAG,OAAO2jC,GAAGn1B,IAAIxO,GAAG,SAASA,GAAG,IAAIc,EAAE+C,EAAEisB,QAAQ9vB,GAAG,GAAGc,EAAEiB,OAAO,CAAC,IAAImB,EAAEygC,GAAGxX,OAAOrrB,GAAC,SAAWd,EAAEc,GAAG,IAAIoC,EAAEW,EAAE0rB,KAAKzuB,GAAG2F,EAAE5C,EAAE2qB,KAAK1tB,EAAEiD,GAAG,MAAM,CAAC2gC,IAAI1kC,EAAE0kC,IAAIxhC,EAAE45B,OAAOr2B,EAAE03B,MAAMrB,OAAO98B,EAAE88B,OAAO55B,EAAE45B,OAAQ,GAAE,CAAC4H,IAAI,EAAE5H,OAAO,IAAI,MAAM,CAAC/4B,EAAE/D,EAAE2kC,WAAWzhC,EAAEwhC,IAAIxhC,EAAE45B,OAAOA,OAAO55B,EAAE45B,OAAO,CAAC,MAAM,CAAC/4B,EAAE/D,EAAG,GAAE,CAAsoD4kC,CAAG5kC,EAAE6B,GAAGmiC,GAAGh/B,QAAQ0B,YAAY5F,GAAG,GAAGd,EAAE6uB,SAAS/tB,EAAEiD,GAAGhC,OAAO,CAAC,IAAIF,EAAEgC,EAAE7D,EAAEc,EAAEiD,EAAEb,EAAEuD,GAAGnH,EAAEwB,EAAEiD,GAAGlC,EAAEmiC,GAAG52B,IAAIvL,EAAE,gBAAgBwB,EAAEvC,EAAEJ,EAAEmB,EAAEmiC,GAAG9X,YAAY7oB,EAAEshC,aAAathC,EAAEshC,WAAWjkC,EAAEikC,WAAWthC,EAAEy5B,OAAOp8B,EAAEo8B,SAASz5B,EAAEshC,YAAYthC,EAAEshC,WAAWthC,EAAEy5B,OAAOp8B,EAAEikC,WAAWjkC,EAAEo8B,SAASz5B,EAAEy5B,OAAOp8B,EAAEo8B,QAAQz5B,EAAEy5B,QAAQp8B,EAAEo8B,QAAQ,CAAC,IAAIz5B,EAAE3C,CAAE,IAAG,IAAIf,EAA17D,SAASkE,EAAE7D,GAAG,IAAIc,EAAE,CAAA,EAAG,OAAO8iC,GAAG5+B,QAAQnB,GAAG,SAASA,EAAE7D,GAAG,IAAIkD,EAAEpC,EAAE+C,EAAEE,GAAG,CAAC8gC,SAAS,EAAEvI,GAAG,GAAGF,IAAI,GAAGvG,GAAG,CAAChyB,EAAEE,GAAGlC,EAAE7B,GAAG4jC,GAAG1X,YAAYroB,EAAE8gC,cAAczhC,EAAEyhC,WAAW9gC,EAAE8gC,WAAWzhC,EAAE45B,OAAOj5B,EAAEi5B,OAAQ,IAAG8G,GAAG5+B,QAAQhF,EAAE0vB,SAAS,SAAS7rB,GAAG,IAAI7D,EAAEc,EAAE+C,EAAEE,GAAGb,EAAEpC,EAAE+C,EAAEI,GAAG2/B,GAAG1X,YAAYlsB,IAAI4jC,GAAG1X,YAAYhpB,KAAKA,EAAE2hC,WAAW7kC,EAAEo8B,IAAIl6B,KAAKpB,EAAE+C,EAAEI,IAAK,IAAG,SAASJ,GAAG,IAAI7D,EAAE,GAAG,SAASc,EAAE+C,GAAG,OAAO,SAAS7D,GAAGA,EAAE8kC,SAASlB,GAAG1X,YAAYlsB,EAAE2kC,aAAaf,GAAG1X,YAAYroB,EAAE8gC,aAAa3kC,EAAE2kC,YAAY9gC,EAAE8gC,aAAa,SAAS9gC,EAAE7D,GAAG,IAAIc,EAAE,EAAEoC,EAAE,EAAEW,EAAEi5B,SAASh8B,GAAG+C,EAAE8gC,WAAW9gC,EAAEi5B,OAAO55B,GAAGW,EAAEi5B,QAAQ98B,EAAE88B,SAASh8B,GAAGd,EAAE2kC,WAAW3kC,EAAE88B,OAAO55B,GAAGlD,EAAE88B,QAAQj5B,EAAEgyB,GAAG71B,EAAE61B,GAAG5F,OAAOpsB,EAAEgyB,IAAIhyB,EAAE8gC,WAAW7jC,EAAEoC,EAAEW,EAAEi5B,OAAO55B,EAAEW,EAAEhC,EAAEipB,KAAK6F,IAAI3wB,EAAE6B,EAAEgC,EAAEhC,GAAG7B,EAAE8kC,QAAO,CAAE,CAAhN,CAAkNjhC,EAAE7D,EAAE,CAAC,CAAC,SAASkD,EAAElD,GAAG,OAAO,SAASc,GAAGA,EAAEw7B,GAAGp6B,KAAKlC,GAAG,KAAKc,EAAE+jC,UAAUhhC,EAAE3B,KAAKpB,EAAE,CAAC,CAAC,KAAK+C,EAAE9B,QAAQ,CAAC,IAAI0E,EAAE5C,EAAEoJ,MAAMjN,EAAEkC,KAAKuE,GAAGm9B,GAAG5+B,QAAQyB,EAAE61B,GAAGyI,UAAUjkC,EAAE2F,IAAIm9B,GAAG5+B,QAAQyB,EAAE21B,IAAIl5B,EAAEuD,GAAG,CAAC,OAAOm9B,GAAGp1B,IAAIo1B,GAAG7X,OAAO/rB,GAAC,SAAW6D,GAAG,OAAOA,EAAEihC,MAAO,cAAajhC,GAAG,OAAO+/B,GAAGjJ,KAAK92B,EAAE,CAAC,KAAK,IAAI,aAAa,UAAW,GAAE,CAAvpB,CAAypB+/B,GAAG7X,OAAOjrB,GAAG,SAAS+C,GAAG,OAAOA,EAAEghC,QAAS,IAAG,CAAq7BG,CAAGt+B,EAAExD,IAAI,SAASW,EAAE7D,GAAGgkC,GAAGh/B,QAAQnB,GAAG,SAASA,GAAGA,EAAEgyB,GAAGmO,GAAG5J,QAAQv2B,EAAEgyB,GAAGrnB,KAAG,SAAW3K,GAAG,OAAO7D,EAAE6D,GAAG7D,EAAE6D,GAAGgyB,GAAGhyB,CAAE,KAAG,EAAI,GAAE,CAA7G,CAA+GlE,EAAEL,GAAG,IAAIyB,EAAjjC,SAAS8C,EAAE7D,GAAG,IAAoXV,EAAhXwB,EAAEgjC,GAAGrF,UAAU56B,GAAC,SAAWA,GAAG,OAAOggC,GAAGz2B,IAAIvJ,EAAE,aAAc,IAAGX,EAAEpC,EAAE49B,IAAIj4B,EAAEo9B,GAAG7I,OAAOl6B,EAAE69B,KAAG,SAAW96B,GAAG,OAAOA,EAAEhC,CAAE,IAAGA,EAAE,GAAGwB,EAAE,EAAE3C,EAAE,EAAED,EAAE,EAAEyC,EAAE22B,MAAMv6B,IAAIU,EAAE,SAAS6D,EAAE7D,GAAG,OAAO6D,EAAE8gC,WAAW3kC,EAAE2kC,YAAY,EAAE9gC,EAAE8gC,WAAW3kC,EAAE2kC,WAAW,EAAErlC,EAAEU,EAAE6B,EAAEgC,EAAEhC,EAAEgC,EAAEhC,EAAE7B,EAAE6B,CAAC,IAAIpB,EAAEsjC,GAAGliC,EAAE4E,EAAEhG,GAAGojC,GAAG7+B,QAAQ9B,YAAYW,GAAGpD,GAAGoD,EAAEgyB,GAAG9zB,OAAOF,EAAEK,KAAK2B,EAAEgyB,IAAIxyB,GAAGQ,EAAE8gC,WAAW9gC,EAAEi5B,OAAOp8B,GAAGmD,EAAEi5B,OAAOr8B,EAAEsjC,GAAGliC,EAAE4E,EAAEhG,EAAG,IAAS,IAAIiG,EAAE,CAACmvB,GAAGgO,GAAGzJ,QAAQv4B,GAAE,IAAsC,OAAjCnB,IAAIgG,EAAEi+B,WAAWthC,EAAE3C,EAAEgG,EAAEo2B,OAAOp8B,GAAUgG,CAAC,CAA0mBu+B,CAAGtlC,EAAE8G,GAAG,GAAG/F,IAAIK,EAAE80B,GAAGmO,GAAG5J,QAAQ,CAAC15B,EAAEK,EAAE80B,GAAGp1B,IAAG,GAAIT,EAAEivB,aAAavuB,GAAGqB,QAAQ,CAAC,IAAIlB,EAAEb,EAAEwuB,KAAKxuB,EAAEivB,aAAavuB,GAAG,IAAIqD,EAAE/D,EAAEwuB,KAAKxuB,EAAEivB,aAAaxuB,GAAG,IAAIujC,GAAG52B,IAAIrM,EAAE,gBAAgBA,EAAE4jC,WAAW,EAAE5jC,EAAE+7B,OAAO,GAAG/7B,EAAE4jC,YAAY5jC,EAAE4jC,WAAW5jC,EAAE+7B,OAAOj8B,EAAEs9B,MAAMp6B,EAAEo6B,QAAQp9B,EAAE+7B,OAAO,GAAG/7B,EAAE+7B,QAAQ,CAAC,CAAC,OAAO/7B,CAAC,EAAsoBmkC,GAA3mB,SAASrhC,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,SAASW,GAAS,IAAN,IAAI7D,EAAO6D,EAAE4qB,QAAQzuB,EAAEikC,GAAGhJ,SAAS,YAAY,OAAOj7B,CAAC,CAAnE,CAAqE6D,GAAG4C,EAAE,IAAIy9B,GAAG,CAACrX,UAAS,IAAKkB,SAAS,CAACoX,KAAKjiC,IAAI+qB,qBAAmB,SAAWjuB,GAAG,OAAO6D,EAAE2qB,KAAKxuB,EAAG,IAAG,OAAOikC,GAAGj/B,QAAQnB,EAAEsqB,SAAO,SAAWtsB,GAAG,IAAIwB,EAAEQ,EAAE2qB,KAAK3sB,GAAGnB,EAAEmD,EAAEmrB,OAAOntB,IAAIwB,EAAE66B,OAAOl+B,GAAGqD,EAAE+hC,SAASplC,GAAGA,GAAGqD,EAAEm7B,WAAW/3B,EAAE8nB,QAAQ1sB,GAAG4E,EAAEqoB,UAAUjtB,EAAEnB,GAAGwC,GAAG+gC,GAAGj/B,QAAQnB,EAAE/C,GAAGe,IAAE,SAAW7B,GAAG,IAAIc,EAAEd,EAAE+D,IAAIlC,EAAE7B,EAAEiE,EAAEjE,EAAE+D,EAAEb,EAAEuD,EAAE8oB,KAAKzuB,EAAEe,GAAGwB,EAAE4gC,GAAG/X,YAAYhpB,GAAG,EAAEA,EAAE45B,OAAOr2B,EAAE6oB,QAAQxuB,EAAEe,EAAE,CAACi7B,OAAOj5B,EAAE0rB,KAAKvvB,GAAG88B,OAAOz5B,GAAI,IAAG4gC,GAAG72B,IAAI/J,EAAE,YAAYoD,EAAE8nB,QAAQ1sB,EAAE,CAAC2iC,WAAWnhC,EAAEmhC,WAAWxkC,GAAGykC,YAAYphC,EAAEohC,YAAYzkC,KAAM,IAAGyG,CAAC,EAA8N4+B,GAAGrM,GAAG5G,MAAMkT,GAAGlI,GAA6R,SAASmI,GAAG1hC,EAAE7D,EAAEc,GAAG,OAAOsjC,GAAG51B,IAAIxO,GAAC,SAAWA,GAAG,OAAOklC,GAAGrhC,EAAE7D,EAAEc,EAAG,GAAE,CAAC,SAAS0kC,GAAG3hC,EAAE7D,GAAG,IAAIc,EAAE,IAAIukC,GAAGjB,GAAGp/B,QAAQnB,YAAYA,GAAG,IAAIX,EAAEW,EAAEmqB,QAAQmX,KAAK1+B,EAAE89B,GAAG1gC,EAAEX,EAAEpC,EAAEd,GAAGokC,GAAGp/B,QAAQyB,EAAEovB,IAAE,SAAW71B,EAAEc,GAAG+C,EAAE2qB,KAAKxuB,GAAGm+B,MAAMr9B,CAAE,IAAzqB,SAAS+C,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE,CAAE,EAAC09B,GAAGn/B,QAAQlE,GAAC,SAAWA,GAAG,IAAI,IAAIe,EAAEwB,EAAE3C,EAAEmD,EAAEmrB,OAAOluB,GAAGJ,GAAG,CAAC,IAAImB,EAAEgC,EAAEmrB,OAAOtuB,KAAK2C,EAAEoD,EAAE5E,GAAG4E,EAAE5E,GAAGnB,IAAI2C,EAAEH,EAAEA,EAAExC,GAAG2C,GAAGA,IAAI3C,EAAE,YAAYV,EAAEsvB,QAAQjsB,EAAE3C,GAAGA,EAAEmB,CAAC,CAAE,GAAE,CAAigB4jC,CAAG5hC,EAAE/C,EAAE2F,EAAEovB,GAAI,GAAE,CAAC,SAAS6P,GAAG7hC,EAAE7D,GAAGokC,GAAGp/B,QAAQhF,GAAG,SAASA,GAAGokC,GAAGp/B,QAAQhF,GAAG,SAASA,EAAEc,GAAG+C,EAAE2qB,KAAKxuB,GAAGm+B,MAAMr9B,CAAE,GAAG,GAAE,CAAC,IAAI6kC,GAAGxK,GAAGyK,GAAG5M,GAAG5G,MAAMyT,GAAGzI,GAA+2C,SAAS0I,GAAGjiC,EAAE7D,EAAEc,GAAG,GAAGd,EAAEc,EAAE,CAAC,IAAIoC,EAAElD,EAAEA,EAAEc,EAAEA,EAAEoC,CAAC,CAAC,IAAIuD,EAAE5C,EAAE7D,GAAGyG,IAAI5C,EAAE7D,GAAGyG,EAAE,IAAIA,EAAE3F,IAAG,CAAE,CAAC,SAASilC,GAAGliC,EAAE7D,EAAEc,GAAG,GAAGd,EAAEc,EAAE,CAAC,IAAIoC,EAAElD,EAAEA,EAAEc,EAAEA,EAAEoC,CAAC,CAAC,OAAOyiC,GAAGv4B,IAAIvJ,EAAE7D,GAAGc,EAAE,CAA2vE,IAAIklC,GAAG7K,GAAG8K,GAAG7I,GAAG8I,GAAjwH,SAASriC,GAAG,IAAI7D,EAAEc,EAAE+kC,GAAG7H,iBAAiBn6B,GAAGX,EAAEyiC,GAAGnL,MAAka,SAAY32B,EAAE7D,GAAG,IAAIc,EAAE,CAAE,EAAC,OAAO6kC,GAAGxZ,OAAOnsB,GAAG,SAASA,EAAEkD,GAAG,IAAIuD,EAAE,EAAE5E,EAAE,EAAEwB,EAAErD,EAAE+B,OAAOrB,EAAEilC,GAAGrL,KAAKp3B,GAAG,OAAOyiC,GAAG3gC,QAAQ9B,GAAC,SAAWlD,EAAES,GAAG,IAAInB,EAAE,SAASuE,EAAE7D,GAAG,GAAG6D,EAAE2qB,KAAKxuB,GAAG++B,MAAM,OAAO4G,GAAGzL,KAAKr2B,EAAEorB,aAAajvB,IAAE,SAAWA,GAAG,OAAO6D,EAAE2qB,KAAKxuB,GAAG++B,KAAM,GAAE,CAAxG,CAA0Gl7B,EAAE7D,GAAG0G,EAAEpH,EAAEuE,EAAE2qB,KAAKlvB,GAAG6+B,MAAM96B,GAAG/D,GAAGU,IAAIU,KAAKilC,GAAG3gC,QAAQ9B,EAAEiD,MAAMtE,EAAEpB,EAAE,aAAaT,GAAG2lC,GAAG3gC,QAAQnB,EAAEorB,aAAajvB,IAAE,SAAWkD,GAAG,IAAIrB,EAAEgC,EAAE2qB,KAAKtrB,GAAGG,EAAExB,EAAEs8B,QAAQ96B,EAAEoD,GAAGC,EAAErD,IAAIxB,EAAEk9B,OAAOl7B,EAAE2qB,KAAKxuB,GAAG++B,OAAO+G,GAAGhlC,EAAEoC,EAAElD,EAAG,GAAG,IAAG6B,EAAEpB,EAAE,EAAEgG,EAAEC,EAAG,IAAGxD,CAAE,IAAGpC,CAAC,CAA72BqlC,CAAGtiC,EAAE/C,GAAy2B,SAAY+C,EAAE7D,GAAG,IAAIc,EAAE,CAAE,EAAC,SAASoC,EAAElD,EAAEkD,EAAEuD,EAAE5E,EAAEwB,GAAG,IAAI3C,EAAEilC,GAAG3gC,QAAQ2gC,GAAG9K,MAAM33B,EAAEuD,IAAI,SAASvD,GAAGxC,EAAEV,EAAEkD,GAAGW,EAAE2qB,KAAK9tB,GAAGq+B,OAAO4G,GAAG3gC,QAAQnB,EAAEorB,aAAavuB,IAAE,SAAWV,GAAG,IAAIkD,EAAEW,EAAE2qB,KAAKxuB,GAAGkD,EAAE67B,QAAQ77B,EAAEi7B,MAAMt8B,GAAGqB,EAAEi7B,MAAM96B,IAAIyiC,GAAGhlC,EAAEd,EAAEU,EAAG,GAAG,GAAE,CAAC,OAAOilC,GAAGxZ,OAAOnsB,GAAG,SAASA,EAAEc,GAAG,IAAI2F,EAAE5E,GAAG,EAAEwB,EAAE,EAAE,OAAOsiC,GAAG3gC,QAAQlE,GAAG,SAASJ,EAAED,GAAG,GAAG,WAAWoD,EAAE2qB,KAAK9tB,GAAGq+B,MAAM,CAAC,IAAIz/B,EAAEuE,EAAEorB,aAAavuB,GAAGpB,EAAEyC,SAAS0E,EAAE5C,EAAE2qB,KAAKlvB,EAAE,IAAI6+B,MAAMj7B,EAAEpC,EAAEuC,EAAE5C,EAAEoB,EAAE4E,GAAGpD,EAAE5C,EAAEoB,EAAE4E,EAAE,CAACvD,EAAEpC,EAAEuC,EAAEvC,EAAEiB,OAAO0E,EAAEzG,EAAE+B,OAAQ,IAAGjB,CAAE,IAAGA,CAAC,CAA1yCslC,CAAGviC,EAAE/C,IAAI2F,EAAE,CAAA,EAAGk/B,GAAG3gC,QAAQ,CAAC,IAAI,MAAI,SAAWnD,GAAG7B,EAAE,MAAM6B,EAAEf,EAAE6kC,GAAGrZ,OAAOxrB,GAAGikC,UAAUY,GAAG3gC,QAAQ,CAAC,IAAI,MAAM,SAASlE,GAAG,MAAMA,IAAId,EAAE2lC,GAAGn3B,IAAIxO,GAAG,SAAS6D,GAAG,OAAO8hC,GAAGrZ,OAAOzoB,GAAGkhC,SAAU,KAAI,IAAI1hC,GAAG,MAAMxB,EAAEgC,EAAEorB,aAAaprB,EAAEqrB,YAAY8C,KAAKnuB,GAAGnD,EAA4sC,SAAYmD,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,GAAG5E,EAAE,CAAA,EAAGwB,EAAE,GAAG,OAAOsiC,GAAG3gC,QAAQhF,YAAY6D,GAAG8hC,GAAG3gC,QAAQnB,GAAC,SAAWA,EAAE7D,GAAGyG,EAAE5C,GAAGA,EAAEhC,EAAEgC,GAAGA,EAAER,EAAEQ,GAAG7D,CAAE,GAAG,IAAG2lC,GAAG3gC,QAAQhF,YAAY6D,GAAG,IAAI7D,GAAG,EAAE2lC,GAAG3gC,QAAQnB,GAAC,SAAWA,GAAG,IAAInD,EAAEwC,EAAEW,GAAG,GAAGnD,EAAEqB,OAAO,CAACrB,EAAEilC,GAAG3K,OAAOt6B,GAAG,SAASmD,GAAG,OAAOR,EAAEQ,EAAG,IAAG,IAAI,IAAIpD,GAAGC,EAAEqB,OAAO,GAAG,EAAEzC,EAAEwrB,KAAKub,MAAM5lC,GAAGiG,EAAEokB,KAAKgQ,KAAKr6B,GAAGnB,GAAGoH,IAAIpH,EAAE,CAAC,IAAIK,EAAEe,EAAEpB,GAAGuC,EAAEgC,KAAKA,GAAG7D,EAAEqD,EAAE1D,KAAKomC,GAAGjlC,EAAE+C,EAAElE,KAAKkC,EAAElC,GAAGkE,EAAEhC,EAAEgC,GAAG4C,EAAE5C,GAAG4C,EAAE9G,GAAGK,EAAEqD,EAAE1D,GAAG,CAAC,CAAE,GAAG,IAAG,CAACwlC,KAAK1+B,EAAE6/B,MAAMzkC,EAAE,CAA3mD0kC,CAAG1iC,EAAE7D,EAAEkD,EAAEG,GAAG5C,EAAgmD,SAAYoD,EAAE7D,EAAEc,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAE,GAAGwB,EAAE,SAASQ,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,IAAIm/B,GAAG/jC,EAAEgC,EAAEmqB,QAAQ3qB,EAAE,SAASQ,EAAE7D,EAAEc,GAAG,OAAO,SAASoC,EAAEuD,EAAE5E,GAAG,IAAIwB,EAAE3C,EAAEwC,EAAEsrB,KAAK/nB,GAAGhG,EAAEyC,EAAEsrB,KAAK3sB,GAAGvC,EAAE,EAAE,GAAGA,GAAGoB,EAAEm9B,MAAM,EAAE8H,GAAGv4B,IAAI1M,EAAE,YAAY,OAAOA,EAAE8+B,SAAS0D,eAAe,IAAI,IAAI7/B,GAAG3C,EAAEm9B,MAAM,EAAE,MAAM,IAAI,IAAIx6B,EAAE3C,EAAEm9B,MAAM,EAAE,GAAGx6B,IAAI/D,GAAGwB,EAAEuC,GAAGA,GAAGA,EAAE,EAAE/D,IAAIoB,EAAEq+B,MAAM/+B,EAAE6D,GAAG,EAAEvE,IAAImB,EAAEs+B,MAAM/+B,EAAE6D,GAAG,EAAEvE,GAAGmB,EAAEo9B,MAAM,EAAE8H,GAAGv4B,IAAI3M,EAAE,YAAY,OAAOA,EAAE++B,SAAS0D,eAAe,IAAI,IAAI7/B,EAAE5C,EAAEo9B,MAAM,EAAE,MAAM,IAAI,IAAIx6B,GAAG5C,EAAEo9B,MAAM,EAAE,OAAOx6B,IAAI/D,GAAGwB,EAAEuC,GAAGA,GAAGA,EAAE,EAAE/D,CAAC,CAAC,CAAxY,CAA0YuC,EAAE2kC,QAAQ3kC,EAAE4kC,QAAQvjC,GAAG,OAAOyiC,GAAG3gC,QAAQhF,GAAG,SAASA,GAAG,IAAIkD,EAAEyiC,GAAG3gC,QAAQhF,YAAYA,GAAG,IAAI6B,EAAEf,EAAEd,GAAG,GAAGyG,EAAE8nB,QAAQ1sB,GAAGqB,EAAE,CAAC,IAAIxC,EAAEI,EAAEoC,GAAGzC,EAAEgG,EAAE8oB,KAAK7uB,EAAEmB,GAAG4E,EAAE6oB,QAAQ5uB,EAAEmB,EAAEipB,KAAKC,IAAI1nB,EAAEQ,EAAE7D,EAAEkD,GAAGzC,GAAG,GAAG,CAACyC,EAAElD,CAAE,GAAG,IAAGyG,CAAC,CAAxnB,CAA0nB5C,EAAE7D,EAAEc,EAAE2F,GAAG/F,EAAE+F,EAAE,aAAa,cAAc,SAAShG,EAAEoD,EAAE7D,GAAG,IAAI,IAAIc,EAAEuC,EAAE8qB,QAAQjrB,EAAEpC,EAAEmM,MAAMxG,EAAE,CAAA,EAAGvD,GAAGuD,EAAEvD,GAAGW,EAAEX,IAAIuD,EAAEvD,IAAG,EAAGpC,EAAEoB,KAAKgB,GAAGpC,EAAEA,EAAEmvB,OAAOjwB,EAAEkD,KAAKA,EAAEpC,EAAEmM,KAAK,CAAC,OAAOxM,YAAYoD,GAAGhC,EAAEgC,GAAGR,EAAEysB,QAAQjsB,GAAGsoB,QAAM,SAAWtoB,EAAE7D,GAAG,OAAO8qB,KAAKC,IAAIlnB,EAAEhC,EAAE7B,EAAE+D,GAAGV,EAAEksB,KAAKvvB,GAAI,GAAE,EAAG,GAAEqD,EAAE4rB,aAAa+C,KAAK3uB,IAAI5C,YAAYT,GAAG,IAAIc,EAAEuC,EAAE0sB,SAAS/vB,GAAGmsB,QAAM,SAAWtoB,EAAE7D,GAAG,OAAO8qB,KAAK6F,IAAI9sB,EAAEhC,EAAE7B,EAAEiE,GAAGZ,EAAEksB,KAAKvvB,GAAI,GAAEoxB,OAAOC,mBAAmBnuB,EAAEW,EAAE2qB,KAAKxuB,GAAGc,IAAIswB,OAAOC,mBAAmBnuB,EAAE2/B,aAAaniC,IAAImB,EAAE7B,GAAG8qB,KAAKC,IAAIlpB,EAAE7B,GAAGc,GAAI,GAAEuC,EAAE6rB,WAAW8C,KAAK3uB,IAAIsiC,GAAG3gC,QAAQ9B,GAAC,SAAWW,GAAGhC,EAAEgC,GAAGhC,EAAEf,EAAE+C,GAAI,IAAGhC,CAAC,CAAlyF6kC,CAAG7iC,EAAE7D,EAAEU,EAAEykC,KAAKzkC,EAAE4lC,MAAM,MAAMxlC,GAAG,MAAMA,IAAIL,EAAEklC,GAAGpL,UAAU95B,YAAYoD,GAAG,OAAOA,CAAE,KAAI4C,EAAE5E,EAAEf,GAAGL,CAAE,GAAG,IAAG,IAAIoB,EAA4rF,SAAYgC,EAAE7D,GAAG,OAAO2lC,GAAGjL,MAAMiL,GAAGrZ,OAAOtsB,IAAE,SAAWA,GAAG,IAAIc,EAAEswB,OAAOuV,kBAAkBzjC,EAAEkuB,OAAOC,kBAAkB,OAAOsU,GAAGtL,MAAMr6B,GAAC,SAAWA,EAAEyG,GAAG,IAAI5E,EAAE,SAASgC,EAAE7D,GAAG,OAAO6D,EAAE2qB,KAAKxuB,GAAG69B,KAAK,CAApC,CAAsCh6B,EAAE4C,GAAG,EAAE3F,EAAEgqB,KAAKC,IAAI/qB,EAAE6B,EAAEf,GAAGoC,EAAE4nB,KAAK6F,IAAI3wB,EAAE6B,EAAEqB,EAAG,IAAGpC,EAAEoC,CAAE,GAAE,CAAh7F0jC,CAAG/iC,EAAE4C,GAAG,OAAy6F,SAAY5C,EAAE7D,GAAG,IAAIc,EAAE6kC,GAAGrZ,OAAOtsB,GAAGkD,EAAEyiC,GAAGhV,IAAI7vB,GAAG2F,EAAEk/B,GAAG5a,IAAIjqB,GAAG6kC,GAAG3gC,QAAQ,CAAC,IAAI,MAAI,SAAWlE,GAAG6kC,GAAG3gC,QAAQ,CAAC,IAAI,MAAI,SAAWnD,GAAG,IAAIwB,EAAE3C,EAAEI,EAAEe,EAAEpB,EAAEoD,EAAEnD,GAAG,GAAGD,IAAIT,EAAE,CAAC,IAAIV,EAAEqmC,GAAGrZ,OAAO7rB,IAAI4C,EAAE,MAAMxB,EAAEqB,EAAEyiC,GAAGhV,IAAIrxB,GAAGmH,EAAEk/B,GAAG5a,IAAIzrB,MAAMuE,EAAEnD,GAAGilC,GAAGpL,UAAU95B,YAAYoD,GAAG,OAAOA,EAAER,CAAE,IAAG,CAAE,GAAG,GAAE,CAA9qGwjC,CAAGpgC,EAAE5E,GAA0qG,SAAYgC,EAAE7D,GAAG,OAAO2lC,GAAGpL,UAAU12B,EAAE80B,IAAI,SAAS73B,EAAEoC,GAAG,GAAGlD,EAAE,OAAO6D,EAAE7D,EAAEkjC,eAAehgC,GAAG,IAAIuD,EAAEk/B,GAAG3K,OAAO2K,GAAGn3B,IAAI3K,EAAEX,IAAI,OAAOuD,EAAE,GAAGA,EAAE,IAAI,CAAE,GAAE,CAArzGqgC,CAAGrgC,EAAE5C,EAAEmqB,QAAQsY,MAAM,EAA8mHS,GAAG5L,GAAG6L,GAAGrK,GAAGsK,GAAG/H,GAAGgI,GAA1kZ,SAASrjC,GAAG,OAAOA,EAAEmqB,QAAQmZ,QAAQ,IAAI,kBAAkB,SAA6G,SAAYtjC,GAAGi+B,GAAGj+B,EAAE,CAAzHujC,CAAGvjC,GAAG,MAAM,IAAI,cAAc,SAASA,GAAG+9B,GAAG/9B,GAAGg+B,GAAGh+B,EAAE,CAAvB,CAAyBA,GAAG,MAAM,IAAI,eAAek+B,GAAGl+B,GAAG,EAAo7YwjC,GAAGjK,GAAGgB,eAAekJ,GAA35Y,SAASzjC,GAAG,IAAI7D,EAAE,SAAS6D,GAAG,IAAI7D,EAAE,GAAGc,EAAE,EAAyE,OAAOkhC,GAAGh9B,QAAQnB,EAAEgrB,YAA3F,SAAS3rB,EAAEuD,GAAG,IAAI5E,EAAEf,EAAEkhC,GAAGh9B,QAAQnB,EAAEgrB,SAASpoB,GAAGvD,GAAGlD,EAAEyG,GAAG,CAAC06B,IAAIt/B,EAAEu/B,IAAItgC,IAAI,IAAmCd,CAAC,CAAnI,CAAqI6D,GAAGm+B,GAAGh9B,QAAQnB,EAAEmqB,QAAQmR,aAAW,SAAWr+B,GAAG,IAAI,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAG2F,EAAEvD,EAAEq8B,QAAQ19B,EAAE,SAASgC,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE5E,EAAEwB,EAAE,GAAG3C,EAAE,GAAGD,EAAEqqB,KAAK6F,IAAI3wB,EAAEc,GAAGqgC,IAAInhC,EAAEkD,GAAGi+B,KAAK7hC,EAAEwrB,KAAKC,IAAI/qB,EAAEc,GAAGsgC,IAAIphC,EAAEkD,GAAGk+B,KAAK36B,EAAE3F,EAAE,GAAG2F,EAAE5C,EAAEmrB,OAAOvoB,GAAGpD,EAAEnB,KAAKuE,SAASA,IAAIzG,EAAEyG,GAAG06B,IAAI1gC,GAAGnB,EAAEU,EAAEyG,GAAG26B,MAAc,IAARv/B,EAAE4E,EAAEA,EAAEvD,GAAQuD,EAAE5C,EAAEmrB,OAAOvoB,MAAM5E,GAAGnB,EAAEwB,KAAKuE,GAAG,MAAM,CAAC8gC,KAAKlkC,EAAE4sB,OAAOvvB,EAAEqkC,WAAWyC,IAAI3lC,EAAE,CAAtP,CAAwPgC,EAAE7D,EAAEyG,EAAE1C,EAAE0C,EAAExC,GAAGZ,EAAExB,EAAE0lC,KAAK7mC,EAAEmB,EAAE2lC,IAAI/mC,EAAE,EAAEnB,EAAE+D,EAAE5C,GAAGiG,GAAE,EAAG5F,IAAI2F,EAAExC,GAAG,CAAC,GAAGf,EAAEW,EAAE2qB,KAAK1tB,GAAG4F,EAAE,CAAC,MAAMpH,EAAE+D,EAAE5C,MAAMC,GAAGmD,EAAE2qB,KAAKlvB,GAAGk/B,QAAQt7B,EAAEg7B,MAAMz9B,IAAInB,IAAIoB,IAAIgG,GAAE,EAAG,CAAC,IAAIA,EAAE,CAAC,KAAKjG,EAAE4C,EAAEtB,OAAO,GAAG8B,EAAE2qB,KAAKlvB,EAAE+D,EAAE5C,EAAE,IAAI2kC,SAASliC,EAAEg7B,MAAMz9B,IAAInB,EAAE+D,EAAE5C,EAAE,CAACoD,EAAEirB,UAAUhuB,EAAExB,GAAGwB,EAAE+C,EAAEqrB,WAAWpuB,GAAG,EAAE,CAAE,GAAE,EAAssX2mC,GAAGrK,GAAGiB,iBAAiBqJ,GAAGvF,GAAGwF,GAAj9U,SAAS9jC,GAAG6+B,GAAG19B,QAAQnB,EAAEgrB,YAAY,SAAS7uB,EAAEc,GAAG,IAAIoC,EAAEW,EAAEgrB,SAAS/tB,GAAG2F,EAAE5C,EAAE2qB,KAAK1tB,GAAG,GAAGoC,EAAEnB,QAAQ2gC,GAAG19B,QAAQ9B,EAAElD,GAAG0iC,GAAGt1B,IAAI3G,EAAE,WAAW,CAACA,EAAE+9B,WAAW,GAAG/9B,EAAEg+B,YAAY,GAAG,IAAI,IAAI5iC,EAAE4E,EAAE2+B,QAAQ/hC,EAAEoD,EAAE+3B,QAAQ,EAAE38B,EAAEwB,IAAIxB,EAAE+gC,GAAG/+B,EAAE,aAAa,MAAM/C,EAAE2F,EAAE5E,GAAG+gC,GAAG/+B,EAAE,cAAc,MAAM/C,EAAE2F,EAAE5E,EAAE,CAAE,GAAE,EAAqsU+lC,GAAG7E,GAAG8E,GAAlxJ,SAAShkC,GAAG,IAAI7D,EAAEslC,GAAG9G,QAAQ36B,GAAG/C,EAAEykC,GAAG1hC,EAAEugC,GAAGvJ,MAAM,EAAE76B,EAAE,GAAG,WAAWkD,EAAEqiC,GAAG1hC,EAAEugC,GAAGvJ,MAAM76B,EAAE,GAAG,GAAG,GAAG,YAAYyG,EAAE49B,GAAGxgC,GAAG6hC,GAAG7hC,EAAE4C,GAAG,IAAI,IAAI5E,EAAEwB,EAAE+tB,OAAOC,kBAAkB3wB,EAAE,EAAED,EAAE,EAAEA,EAAE,IAAIC,IAAID,EAAE,CAAC+kC,GAAG9kC,EAAE,EAAEI,EAAEoC,EAAExC,EAAE,GAAG,GAAG+F,EAAE6+B,GAAGtH,iBAAiBn6B,GAAG,IAAIvE,EAAEglC,GAAGzgC,EAAE4C,GAAGnH,EAAE+D,IAAI5C,EAAE,EAAEoB,EAAEuiC,GAAGpK,UAAUvzB,GAAGpD,EAAE/D,EAAE,CAAComC,GAAG7hC,EAAEhC,EAAE,EAAmgJimC,GAAtZ,SAASjkC,IAAG,SAAUA,GAAG,IAAI7D,EAAEimC,GAAGjI,iBAAiBn6B,GAAG/C,EAAE+C,EAAEmqB,QAAQ+Z,QAAQ7kC,EAAE,EAAE8iC,GAAGhhC,QAAQhF,GAAC,SAAWA,GAAG,IAAIyG,EAAEu/B,GAAGjb,IAAIib,GAAGx3B,IAAIxO,GAAC,SAAWA,GAAG,OAAO6D,EAAE2qB,KAAKxuB,GAAG89B,MAAO,KAAIkI,GAAGhhC,QAAQhF,YAAYA,GAAG6D,EAAE2qB,KAAKxuB,GAAG2G,EAAEzD,EAAEuD,EAAE,CAAE,IAAGvD,GAAGuD,EAAE3F,CAAE,GAAG,EAApN,CAAsN+C,EAAEoiC,GAAGxI,mBAAmB55B,IAAImiC,GAAGhhC,QAAQkhC,GAAGriC,aAAa7D,EAAEc,GAAG+C,EAAE2qB,KAAK1tB,GAAG8F,EAAE5G,CAAE,GAAE,EAA8GgoC,GAAG5K,GAAG6K,GAAGjP,GAAG5G,MAA6wK8V,GAAG,CAAC,UAAU,UAAU,UAAU,UAAU,WAAWC,GAAG,CAACJ,QAAQ,GAAGtB,QAAQ,GAAGD,QAAQ,GAAGvD,QAAQ,MAAMmF,GAAG,CAAC,YAAY,SAAS,UAAU,SAASC,GAAG,CAAC,QAAQ,UAAUC,GAAG,CAACzK,MAAM,EAAEC,OAAO,GAAGyK,GAAG,CAAC,SAAS,SAAS,QAAQ,SAAS,eAAeC,GAAG,CAAChL,OAAO,EAAEV,OAAO,EAAEe,MAAM,EAAEC,OAAO,EAAE2K,YAAY,GAAGjJ,SAAS,KAAKkJ,GAAG,CAAC,YAAY,SAASC,GAAG9kC,EAAE7D,GAAG,OAAO+mC,GAAGxM,UAAUwM,GAAGpM,KAAK92B,EAAE7D,GAAGoxB,OAAO,CAAC,SAASwX,GAAG/kC,GAAG,IAAI7D,EAAE,CAAA,EAAG,OAAO+mC,GAAG/hC,QAAQnB,GAAG,SAASA,EAAE/C,GAAGd,EAAEc,EAAEoiC,eAAer/B,CAAE,IAAG7D,CAAC,CAAC,IAAI6oC,GAAG1N,GAAG2N,GAAG1L,GAAG2L,GAAG/P,GAAG5G,MAAM4W,GAAG,CAACC,cAAc,SAASplC,GAAG,IAAI7D,EAAE8oC,GAAG9K,iBAAiBn6B,GAAG/C,EAAE,IAAIioC,GAAG,CAAClc,UAAS,EAAGF,YAAW,IAAKoB,SAAS,IAAI,OAAO8a,GAAG7jC,QAAQnB,EAAEsqB,SAAS,SAASnuB,GAAGc,EAAEytB,QAAQvuB,EAAE,CAACkpC,MAAMlpC,IAAIc,EAAEguB,UAAU9uB,EAAE,QAAQ6D,EAAE2qB,KAAKxuB,GAAGk+B,KAAM,IAAG2K,GAAG7jC,QAAQnB,EAAE6rB,SAAS,SAAS7rB,GAAG/C,EAAEwuB,QAAQzrB,EAAEE,EAAEF,EAAEI,EAAE,CAAE,EAACJ,EAAE2kB,KAAM,IAAGqgB,GAAG7jC,QAAQhF,GAAG,SAAS6D,EAAE7D,GAAG,IAAIkD,EAAE,QAAQlD,EAAEc,EAAEytB,QAAQrrB,EAAE,CAACg7B,KAAK,SAAS2K,GAAG1c,OAAOtoB,YAAYA,EAAE7D,GAAG,OAAOc,EAAEwuB,QAAQzrB,EAAE7D,EAAE,CAACmpC,MAAM,UAAUnpC,CAAE,GAAG,IAAGc,CAAC,GAAOsoC,GAAG58B,GAAG,CAAC2mB,SAAS6F,GAAGqQ,OAA/rM,SAASxlC,EAAE7D,GAAG,IAAIc,EAAEd,GAAGA,EAAEspC,YAAYtB,GAAGpJ,KAAKoJ,GAAGlJ,OAAOh+B,EAAE,UAAQ,WAAa,IAAId,EAAEc,EAAE,iCAAiC,OAAO,SAAS+C,GAAG,IAAI7D,EAAE,IAAIioC,GAAG,CAACtb,YAAW,EAAGE,UAAS,IAAK/rB,EAAE8nC,GAAG/kC,EAAEmqB,SAAS,OAAOhuB,EAAE+tB,SAASgZ,GAAGvM,MAAM,CAAA,EAAG2N,GAAGQ,GAAG7nC,EAAEonC,IAAInB,GAAGpM,KAAK75B,EAAEsnC,MAAMrB,GAAG/hC,QAAQnB,EAAEsqB,SAAO,SAAWrtB,GAAG,IAAIoC,EAAE0lC,GAAG/kC,EAAE2qB,KAAK1tB,IAAId,EAAEuuB,QAAQztB,EAAEimC,GAAG9M,SAAS0O,GAAGzlC,EAAEmlC,IAAIC,KAAKtoC,EAAE8uB,UAAUhuB,EAAE+C,EAAEmrB,OAAOluB,GAAI,IAAGimC,GAAG/hC,QAAQnB,EAAE6rB,SAAO,SAAW5uB,GAAG,IAAIoC,EAAE0lC,GAAG/kC,EAAE0rB,KAAKzuB,IAAId,EAAEsvB,QAAQxuB,EAAEimC,GAAGvM,MAAM,GAAGgO,GAAGG,GAAGzlC,EAAEqlC,IAAIxB,GAAGpM,KAAKz3B,EAAEwlC,KAAM,IAAG1oC,CAAC,CAAxW,CAA0W6D,EAAG,IAAG/C,EAAE,eAAa,YAAc,SAAS+C,EAAE7D,GAAGA,EAAE,8BAA8B,YAAY,SAAS6D,GAAG,IAAI7D,EAAE6D,EAAEmqB,QAAQhuB,EAAE+nC,SAAS,EAAEhB,GAAG/hC,QAAQnB,EAAE6rB,SAAS,SAAS5uB,GAAG,IAAIoC,EAAEW,EAAE0rB,KAAKzuB,GAAGoC,EAAEs6B,QAAQ,EAAE,MAAMt6B,EAAEs8B,SAAS0D,gBAAgB,OAAOljC,EAAEijC,SAAS,OAAOjjC,EAAEijC,QAAQ//B,EAAE26B,OAAO36B,EAAEulC,YAAYvlC,EAAE46B,QAAQ56B,EAAEulC,YAAa,GAAE,CAA7N,CAA+N5kC,EAAG,IAAG7D,EAAE,uBAAqB,YAAc,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAE6rB,SAAO,SAAW1vB,GAAG,GAAGA,EAAE+D,IAAI/D,EAAEiE,EAAE,CAAC,IAAInD,EAAE+C,EAAE2qB,KAAKxuB,EAAE+D,GAAGjD,EAAEyoC,YAAYzoC,EAAEyoC,UAAU,IAAIzoC,EAAEyoC,UAAUrnC,KAAK,CAACpB,EAAEd,EAAEkpC,MAAMrlC,EAAE0rB,KAAKvvB,KAAK6D,EAAE8qB,WAAW3uB,EAAE,CAAE,GAAE,CAAvK,CAAyK6D,EAAG,IAAG7D,EAAE,eAAe,WAAWgnC,GAAGpK,IAAI/4B,EAAG,IAAG7D,EAAE,wBAAsB,WAAa0nC,GAAG9K,IAAI/4B,EAAG,IAAG7D,EAAE,YAAY,WAAWknC,GAAGc,GAAGvK,mBAAmB55B,GAAI,IAAG7D,EAAE,8BAA8B,YAAY,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAE6rB,kBAAkB1vB,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAG,GAAGc,EAAE+8B,OAAO/8B,EAAEg9B,OAAO,CAAC,IAAI56B,EAAEW,EAAE2qB,KAAKxuB,EAAE+D,GAAG0C,EAAE,CAACy3B,MAAMr6B,EAAE2qB,KAAKxuB,EAAEiE,GAAGi6B,KAAKh7B,EAAEg7B,MAAM,EAAEh7B,EAAEg7B,KAAKp9B,EAAEd,GAAGgoC,GAAG3K,aAAax5B,EAAE,aAAa4C,EAAE,MAAM,CAAE,GAAE,CAAjM,CAAmM5C,EAAG,IAAG7D,EAAE,wBAAwB,WAAWynC,GAAG5jC,EAAG,IAAG7D,EAAE,uCAAuC0nC,GAAGpF,QAAQz+B,EAAG,IAAG7D,EAAE,sBAAsB,WAAWqnC,GAAGxjC,EAAG,IAAG7D,EAAE,oCAAoC,SAAS6D,GAAG,IAAI7D,EAAE,EAAE+mC,GAAG/hC,QAAQnB,EAAEsqB,SAAO,SAAWrtB,GAAG,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAGoC,EAAEs/B,YAAYt/B,EAAEkiC,QAAQvhC,EAAE2qB,KAAKtrB,EAAEs/B,WAAWtE,KAAKh7B,EAAEs7B,QAAQ36B,EAAE2qB,KAAKtrB,EAAEu/B,cAAcvE,KAAKl+B,EAAE+mC,GAAGhc,IAAI/qB,EAAEkD,EAAEs7B,SAAU,IAAG36B,EAAEmqB,QAAQwQ,QAAQx+B,CAAC,CAA1M,CAA4M6D,EAAG,IAAG7D,EAAE,0CAA0C,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAEsqB,SAAO,SAAWnuB,GAAG,IAAIc,EAAE+C,EAAE2qB,KAAKxuB,GAAG,eAAec,EAAEi+B,QAAQl7B,EAAE0rB,KAAKzuB,EAAEA,GAAGs+B,UAAUt+B,EAAEo9B,KAAKr6B,EAAE6qB,WAAW1uB,GAAI,GAAE,CAAvI,CAAyI6D,EAAG,IAAG7D,EAAE,qBAAmB,WAAainC,GAAGrK,IAAI/4B,EAAG,IAAG7D,EAAE,yBAAyB,WAAWsnC,GAAGzjC,EAAG,IAAG7D,EAAE,yBAAyB,WAAW2nC,GAAG9jC,EAAG,IAAG7D,EAAE,wBAAwB6nC,GAAGhkC,EAAG,IAAG7D,EAAE,uBAAqB,YAAc,SAAS6D,GAAG,IAAI7D,EAAEgoC,GAAGhK,iBAAiBn6B,GAAGkjC,GAAG/hC,QAAQhF,YAAYA,GAAG,IAAIc,EAAE,EAAEimC,GAAG/hC,QAAQhF,GAAC,SAAWA,EAAEkD,GAAG,IAAIuD,EAAE5C,EAAE2qB,KAAKxuB,GAAGyG,EAAE03B,MAAMj7B,EAAEpC,EAAEimC,GAAG/hC,QAAQyB,EAAE8iC,WAAW,SAASvpC,GAAGgoC,GAAG3K,aAAax5B,EAAE,WAAW,CAACg6B,MAAM79B,EAAEkpC,MAAMrL,MAAMC,OAAO99B,EAAEkpC,MAAMpL,OAAOI,KAAKz3B,EAAEy3B,KAAKC,MAAMj7B,KAAKpC,EAAEA,EAAEd,EAAEc,EAAEooC,MAAMlpC,EAAEkpC,OAAO,MAAO,WAAUziC,EAAE8iC,SAAU,GAAG,GAAE,CAA/T,CAAiU1lC,EAAG,IAAG7D,EAAE,yCAAyC4nC,GAAG5E,OAAOn/B,EAAG,IAAG7D,EAAE,gBAAgB,WAAW8nC,GAAGjkC,EAAG,IAAG7D,EAAE,qCAAqC,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAEsqB,kBAAkBnuB,GAAG,IAAIc,EAAE+C,EAAE2qB,KAAKxuB,GAAG,GAAG,aAAac,EAAEi+B,MAAM,CAAC,IAAI77B,EAAEW,EAAE2qB,KAAK1tB,EAAEA,EAAEiD,GAAG0C,EAAEvD,EAAE0D,EAAE1D,EAAE26B,MAAM,EAAEh8B,EAAEqB,EAAEyD,EAAEtD,EAAEvC,EAAE8F,EAAEH,EAAE/F,EAAEwC,EAAE46B,OAAO,EAAEj6B,EAAEyrB,QAAQxuB,EAAEA,EAAEA,EAAEooC,OAAOrlC,EAAE6qB,WAAW1uB,GAAGc,EAAEooC,MAAM7J,OAAO,CAAC,CAACz4B,EAAEH,EAAE,EAAEpD,EAAE,EAAEsD,EAAE9E,EAAEnB,GAAG,CAACkG,EAAEH,EAAE,EAAEpD,EAAE,EAAEsD,EAAE9E,EAAEnB,GAAG,CAACkG,EAAEH,EAAEpD,EAAEsD,EAAE9E,GAAG,CAAC+E,EAAEH,EAAE,EAAEpD,EAAE,EAAEsD,EAAE9E,EAAEnB,GAAG,CAACkG,EAAEH,EAAE,EAAEpD,EAAE,EAAEsD,EAAE9E,EAAEnB,IAAII,EAAEooC,MAAMtiC,EAAE9F,EAAE8F,EAAE9F,EAAEooC,MAAMviC,EAAE7F,EAAE6F,CAAC,CAAE,GAAE,CAAjU,CAAmU9C,EAAG,IAAG7D,EAAE,yBAAyB,YAAY,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAEsqB,SAAS,SAASnuB,GAAG,GAAG6D,EAAEgrB,SAAS7uB,GAAG+B,OAAO,CAAC,IAAIjB,EAAE+C,EAAE2qB,KAAKxuB,GAAGkD,EAAEW,EAAE2qB,KAAK1tB,EAAE0hC,WAAW/7B,EAAE5C,EAAE2qB,KAAK1tB,EAAE2hC,cAAc5gC,EAAEgC,EAAE2qB,KAAKuY,GAAGzM,KAAKx5B,EAAE0jC,aAAanhC,EAAEQ,EAAE2qB,KAAKuY,GAAGzM,KAAKx5B,EAAE2jC,cAAc3jC,EAAE+8B,MAAM/S,KAAKiT,IAAI16B,EAAEuD,EAAE/E,EAAE+E,GAAG9F,EAAEg9B,OAAOhT,KAAKiT,IAAIt3B,EAAEE,EAAEzD,EAAEyD,GAAG7F,EAAE8F,EAAE/E,EAAE+E,EAAE9F,EAAE+8B,MAAM,EAAE/8B,EAAE6F,EAAEzD,EAAEyD,EAAE7F,EAAEg9B,OAAO,CAAC,CAAE,IAAGiJ,GAAG/hC,QAAQnB,EAAEsqB,SAAS,SAASnuB,GAAG,WAAW6D,EAAE2qB,KAAKxuB,GAAG++B,OAAOl7B,EAAE6qB,WAAW1uB,EAAG,GAAE,CAArX,CAAuX6D,EAAG,IAAG7D,EAAE,sBAAoB,WAAainC,GAAGhK,KAAKp5B,EAAG,IAAG7D,EAAE,wCAAwC,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAE6rB,kBAAkB1vB,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAG,GAAG+mC,GAAG35B,IAAItM,EAAE,KAAK,OAAO,MAAMA,EAAE0+B,UAAU,MAAM1+B,EAAE0+B,WAAW1+B,EAAE+8B,OAAO/8B,EAAE2nC,aAAa3nC,EAAE0+B,UAAU,IAAI,IAAI1+B,EAAE8F,GAAG9F,EAAE+8B,MAAM,EAAE/8B,EAAE2nC,YAAY,MAAM,IAAI,IAAI3nC,EAAE8F,GAAG9F,EAAE+8B,MAAM,EAAE/8B,EAAE2nC,YAAa,GAAE,CAAlP,CAAoP5kC,EAAG,IAAG7D,EAAE,uCAAuC4nC,GAAG3K,KAAKp5B,EAAG,IAAG7D,EAAE,sBAAsB,YAAY,SAAS6D,GAAG,IAAI7D,EAAEoxB,OAAOC,kBAAkBvwB,EAAE,EAAEoC,EAAEkuB,OAAOC,kBAAkB5qB,EAAE,EAAE5E,EAAEgC,EAAEmqB,QAAQ3qB,EAAExB,EAAE2nC,SAAS,EAAE9oC,EAAEmB,EAAE4nC,SAAS,EAAE,SAAShpC,EAAEoD,GAAG,IAAIhC,EAAEgC,EAAE+C,EAAEvD,EAAEQ,EAAE8C,EAAEjG,EAAEmD,EAAEg6B,MAAMp9B,EAAEoD,EAAEi6B,OAAO99B,EAAE8qB,KAAK6F,IAAI3wB,EAAE6B,EAAEnB,EAAE,GAAGI,EAAEgqB,KAAKC,IAAIjqB,EAAEe,EAAEnB,EAAE,GAAGwC,EAAE4nB,KAAK6F,IAAIztB,EAAEG,EAAE5C,EAAE,GAAGgG,EAAEqkB,KAAKC,IAAItkB,EAAEpD,EAAE5C,EAAE,EAAE,CAACsmC,GAAG/hC,QAAQnB,EAAEsqB,SAAS,SAASnuB,GAAGS,EAAEoD,EAAE2qB,KAAKxuB,GAAI,IAAG+mC,GAAG/hC,QAAQnB,EAAE6rB,SAAS,SAAS1vB,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAG+mC,GAAG35B,IAAItM,EAAE,MAAML,EAAEK,EAAG,IAAGd,GAAGqD,EAAEH,GAAGxC,EAAEqmC,GAAG/hC,QAAQnB,EAAEsqB,SAAS,SAASrtB,GAAG,IAAI2F,EAAE5C,EAAE2qB,KAAK1tB,GAAG2F,EAAEG,GAAG5G,EAAEyG,EAAEE,GAAGzD,CAAE,IAAG6jC,GAAG/hC,QAAQnB,EAAE6rB,kBAAkB5uB,GAAG,IAAI2F,EAAE5C,EAAE0rB,KAAKzuB,GAAGimC,GAAG/hC,QAAQyB,EAAE44B,QAAQ,SAASx7B,GAAGA,EAAE+C,GAAG5G,EAAE6D,EAAE8C,GAAGzD,CAAE,IAAG6jC,GAAG35B,IAAI3G,EAAE,OAAOA,EAAEG,GAAG5G,GAAG+mC,GAAG35B,IAAI3G,EAAE,OAAOA,EAAEE,GAAGzD,EAAG,IAAGrB,EAAEg8B,MAAM/8B,EAAEd,EAAEqD,EAAExB,EAAEi8B,OAAOr3B,EAAEvD,EAAExC,CAAC,CAAtnB,CAAwnBmD,EAAG,IAAG7D,EAAE,wCAAwC,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAE6rB,kBAAkB1vB,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5C,EAAE0rB,KAAKvvB,GAAG6B,EAAEgC,EAAE2qB,KAAKxuB,EAAE+D,GAAGV,EAAEQ,EAAE2qB,KAAKxuB,EAAEiE,GAAGwC,EAAE44B,QAAQv+B,EAAE2F,EAAE44B,OAAO,GAAGn8B,EAAEuD,EAAE44B,OAAO54B,EAAE44B,OAAOt9B,OAAO,KAAK0E,EAAE44B,OAAO,GAAGv+B,EAAEuC,EAAEH,EAAErB,GAAG4E,EAAE44B,OAAOqK,QAAQ1B,GAAGpK,cAAc/7B,EAAEf,IAAI2F,EAAE44B,OAAOn9B,KAAK8lC,GAAGpK,cAAcv6B,EAAEH,GAAI,GAAE,CAA1P,CAA4PW,EAAG,IAAG7D,EAAE,iCAAiC,SAAS6D,GAAGkjC,GAAG/hC,QAAQnB,EAAE6rB,kBAAkB1vB,GAAG,IAAIc,EAAE+C,EAAE0rB,KAAKvvB,GAAGc,EAAEk8B,UAAUl8B,EAAEu+B,OAAO0F,SAAU,GAAE,CAA/F,CAAiGlhC,EAAG,IAAG7D,EAAE,oBAAoB,WAAWgnC,GAAG/J,KAAKp5B,EAAG,GAAE,CAAt2I,CAAw2I7D,EAAEc,EAAG,IAAGA,EAAE,sBAAoB,YAAc,SAAS+C,EAAE7D,GAAG+mC,GAAG/hC,QAAQnB,EAAEsqB,SAAS,SAASrtB,GAAG,IAAIoC,EAAEW,EAAE2qB,KAAK1tB,GAAG2F,EAAEzG,EAAEwuB,KAAK1tB,GAAGoC,IAAIA,EAAE0D,EAAEH,EAAEG,EAAE1D,EAAEyD,EAAEF,EAAEE,EAAE3G,EAAE6uB,SAAS/tB,GAAGiB,SAASmB,EAAE26B,MAAMp3B,EAAEo3B,MAAM36B,EAAE46B,OAAOr3B,EAAEq3B,QAAS,IAAGiJ,GAAG/hC,QAAQnB,EAAE6rB,SAAS,SAAS5uB,GAAG,IAAIoC,EAAEW,EAAE0rB,KAAKzuB,GAAG2F,EAAEzG,EAAEuvB,KAAKzuB,GAAGoC,EAAEm8B,OAAO54B,EAAE44B,OAAO0H,GAAG35B,IAAI3G,EAAE,OAAOvD,EAAE0D,EAAEH,EAAEG,EAAE1D,EAAEyD,EAAEF,EAAEE,EAAG,IAAG9C,EAAEmqB,QAAQ6P,MAAM79B,EAAEguB,QAAQ6P,MAAMh6B,EAAEmqB,QAAQ8P,OAAO99B,EAAEguB,QAAQ8P,MAAM,CAAnV,CAAqVj6B,EAAE7D,EAAG,GAAG,GAAE,EAA28B2pC,MAAMX,GAAGY,KAAK,CAAChL,KAAKxB,GAAGwB,KAAKE,OAAO1B,GAAG0B,QAAQzM,QAAQ,UAAwvB,IAAIwX,GAAG,SAAShmC,GAAG,OAAO,OAAOA,GAAG,mBAAmBA,GAAGimC,SAASjmC,EAAE9B,OAAO,EAAEgoC,GAAG,SAASlmC,EAAE7D,GAAG,QAAQ6pC,GAAGhmC,IAAIA,EAAEmmC,QAAQhqC,IAAI,CAAC,EAAEiqC,GAAG,SAASpmC,EAAE7D,GAAG,IAAI6pC,GAAGhmC,GAAG,OAAOA,EAAE,IAAI,IAAI/C,EAAE,GAAGoC,EAAE,EAAEA,EAAEW,EAAE9B,OAAOmB,IAAI,CAAC,IAAIuD,EAAE5C,EAAEX,GAAGlD,EAAEyG,EAAEvD,IAAIpC,EAAEoB,KAAKuE,EAAE,CAAC,OAAO3F,CAAC,EAAEopC,GAAG,CAAE,EAAC3nC,SAAS4nC,GAAG,SAAStmC,EAAE7D,GAAG,OAAOkqC,GAAGlpC,KAAK6C,KAAK,WAAW7D,EAAE,GAAG,EAAEoqC,GAAG,SAASvmC,GAAG,OAAOsmC,GAAGtmC,EAAE,WAAW,EAAEwmC,GAAG,SAASxmC,GAAG,OAAO,MAAMA,CAAC,EAAEymC,GAAG,SAASzmC,GAAG,OAAO1B,MAAMC,QAAQD,MAAMC,QAAQyB,GAAGsmC,GAAGtmC,EAAE,QAAQ,EAAE0mC,GAAG,SAAS1mC,GAAG,IAAI7D,SAAS6D,EAAE,OAAO,OAAOA,GAAG,WAAW7D,GAAG,aAAaA,CAAC,EAAE,SAASwqC,GAAG3mC,EAAE7D,GAAG,GAAG6D,EAAE,GAAGymC,GAAGzmC,GAAG,IAAI,IAAI/C,EAAE,EAAEoC,EAAEW,EAAE9B,OAAOjB,EAAEoC,IAAG,IAAKlD,EAAE6D,EAAE/C,GAAGA,GAAGA,UAAU,GAAGypC,GAAG1mC,GAAG,IAAI,IAAI4C,KAAK5C,EAAE,GAAGA,EAAE9D,eAAe0G,KAAI,IAAKzG,EAAE6D,EAAE4C,GAAGA,GAAG,KAAK,CAAC,IAAIgkC,GAAG5qC,OAAOmO,KAAK,SAASnK,GAAG,OAAOhE,OAAOmO,KAAKnK,EAAE,EAAE,SAASA,GAAG,IAAI7D,EAAE,GAAG,OAAOwqC,GAAG3mC,GAAG,SAAS/C,EAAEoC,GAAGknC,GAAGvmC,IAAI,cAAcX,GAAGlD,EAAEkC,KAAKgB,EAAG,IAAGlD,CAAC,EAAE,SAAS0qC,GAAG7mC,EAAE7D,GAAG,IAAIc,EAAE2pC,GAAGzqC,GAAGkD,EAAEpC,EAAEiB,OAAO,GAAGsoC,GAAGxmC,GAAG,OAAOX,EAAE,IAAI,IAAIuD,EAAE,EAAEA,EAAEvD,EAAEuD,GAAG,EAAE,CAAC,IAAI5E,EAAEf,EAAE2F,GAAG,GAAGzG,EAAE6B,KAAKgC,EAAEhC,MAAMA,KAAKgC,GAAG,OAAM,CAAE,CAAC,OAAM,CAAE,CAAC,IAAI8mC,GAAG,SAAS9mC,GAAG,MAAM,iBAAiBA,GAAG,OAAOA,CAAC,EAAE+mC,GAAG,SAAS/mC,GAAG,IAAI8mC,GAAG9mC,KAAKsmC,GAAGtmC,EAAE,UAAU,OAAM,EAAG,GAAG,OAAOhE,OAAOgmB,eAAehiB,GAAG,OAAM,EAAG,IAAI,IAAI7D,EAAE6D,EAAE,OAAOhE,OAAOgmB,eAAe7lB,IAAIA,EAAEH,OAAOgmB,eAAe7lB,GAAG,OAAOH,OAAOgmB,eAAehiB,KAAK7D,CAAC,EAAM6qC,GAAG,SAAShnC,EAAE7D,GAAG,QAAG,IAASA,IAAIA,EAAE,IAAIsqC,GAAGzmC,GAAG,IAAI,IAAI/C,EAAE,EAAEA,EAAE+C,EAAE9B,OAAOjB,GAAG,EAAE+pC,GAAGhnC,EAAE/C,GAAGd,QAAQA,EAAEkC,KAAK2B,GAAG,OAAO7D,CAAC,EAAE8qC,GAAG,SAASjnC,GAAG,GAAGymC,GAAGzmC,GAAG,OAAOA,EAAEsoB,QAAQ,SAAStoB,EAAE7D,GAAG,OAAO8qB,KAAKC,IAAIlnB,EAAE7D,EAAG,GAAE6D,EAAE,GAAG,EAAEknC,GAAG,SAASlnC,GAAG,GAAGymC,GAAGzmC,GAAG,OAAOA,EAAEsoB,iBAAiBtoB,EAAE7D,GAAG,OAAO8qB,KAAK6F,IAAI9sB,EAAE7D,EAAG,GAAE6D,EAAE,GAAG,EAAEmnC,GAAG7oC,MAAMrC,UAAUmrC,GAAGD,GAAGh+B,OAAOk+B,GAAGF,GAAGhB,QAAQmB,GAAGhpC,MAAMrC,UAAUkN,OAAOo+B,GAAG,SAASvnC,EAAE7D,GAAG,IAAI6pC,GAAGhmC,GAAG,MAAM,GAAG,IAAI,IAAI/C,EAAE+C,EAAE7D,EAAE+B,OAAO,EAAEmB,EAAEpC,EAAE,EAAEA,KAAK,CAAC,IAAI2F,OAAE,EAAO5E,EAAE7B,EAAEc,GAAGA,IAAIoC,GAAGrB,IAAI4E,IAAIA,EAAE5E,EAAEspC,GAAGnqC,KAAK6C,EAAEhC,EAAE,GAAG,CAAC,OAAOgC,CAAC,EAAEwnC,GAAG,SAASxnC,EAAE7D,EAAEc,GAAG,IAAIwpC,GAAGzmC,KAAK+mC,GAAG/mC,GAAG,OAAOA,EAAE,IAAIX,EAAEpC,EAAE,OAAO0pC,GAAG3mC,GAAC,SAAWA,EAAE/C,GAAGoC,EAAElD,EAAEkD,EAAEW,EAAE/C,EAAG,IAAGoC,CAAC,EAAEooC,GAAG,SAASznC,GAAG,OAAOsmC,GAAGtmC,EAAE,SAAS,EAAE,SAAS0nC,GAAG1nC,EAAE7D,QAAG,IAASA,IAAIA,EAAE,IAAIwrC,KAAK,IAAI1qC,EAAE,GAAG,GAAGqB,MAAMC,QAAQyB,GAAG,IAAI,IAAIX,EAAE,EAAEuD,EAAE5C,EAAE9B,OAAOmB,EAAEuD,EAAEvD,IAAI,CAAC,IAAIrB,EAAEgC,EAAEX,GAAGlD,EAAEoN,IAAIvL,KAAKf,EAAEoB,KAAKL,GAAG7B,EAAEkN,IAAIrL,GAAE,GAAI,CAAC,OAAOf,CAAC,CAAC,IAAI2qC,GAAG5rC,OAAOC,UAAUC,eAAe,SAAS2rC,GAAG7nC,EAAE7D,GAAG,IAAIA,IAAIsqC,GAAGzmC,GAAG,MAAM,CAAE,EAAC,IAAI,IAAI/C,EAAEoC,EAAE,GAAGuD,EAAE2jC,GAAGpqC,GAAGA,EAAE,SAAS6D,GAAG,OAAOA,EAAE7D,EAAE,EAAE6B,EAAE,EAAEA,EAAEgC,EAAE9B,OAAOF,IAAI,CAAC,IAAIwB,EAAEQ,EAAEhC,GAAGf,EAAE2F,EAAEpD,GAAGooC,GAAGzqC,KAAKkC,EAAEpC,GAAGoC,EAAEpC,GAAGoB,KAAKmB,GAAGH,EAAEpC,GAAG,CAACuC,EAAE,CAAC,OAAOH,CAAC,CAAC,SAASyoC,GAAG9nC,EAAE7D,GAAG,IAAIA,EAAE,MAAM,CAAC,EAAE6D,GAAG,IAAIumC,GAAGpqC,GAAG,CAAC,IAAIc,EAAEwpC,GAAGtqC,GAAGA,EAAEA,EAAE4E,QAAQ,OAAO,IAAIgnC,MAAM,KAAK5rC,EAAE,SAAS6D,GAAG,IAAI,IAAI7D,EAAE,IAAIkD,EAAE,EAAEuD,EAAE3F,EAAEiB,OAAOmB,EAAEuD,EAAEvD,IAAIlD,GAAG6D,EAAE/C,EAAEoC,KAAKW,EAAE/C,EAAEoC,IAAIX,WAAW,OAAOvC,CAAC,CAAC,CAAC,OAAO0rC,GAAG7nC,EAAE7D,EAAE,CAAC,IAAI6rC,GAAG,CAAE,EAAKC,GAAG,SAASjoC,GAAG,OAAOsmC,GAAGtmC,EAAE,SAAS,EAAEkoC,GAAG3a,OAAO4a,UAAU5a,OAAO4a,UAAU,SAASnoC,GAAG,OAAOioC,GAAGjoC,IAAIA,EAAE,GAAG,CAAC,EAAMooC,GAAG,IAAInhB,KAAKohB,GAAGC,GAAG9S,SAAS+S,GAAGthB,KAAKohB,GAAG,IAAIG,GAAG,SAASxoC,EAAE7D,GAAG,OAAO6D,EAAE9D,eAAeC,EAAE,EAAEssC,GAAGzsC,OAAOysB,OAAO,SAASzoB,GAAG,OAAOhE,OAAOysB,OAAOzoB,EAAE,EAAE,SAASA,GAAG,IAAI7D,EAAE,GAAG,OAAOwqC,GAAG3mC,GAAC,SAAW/C,EAAEoC,GAAGknC,GAAGvmC,IAAI,cAAcX,GAAGlD,EAAEkC,KAAKpB,EAAG,IAAGd,CAAC,EAAEusC,GAAG,SAAS1oC,GAAG,OAAOwmC,GAAGxmC,GAAG,GAAGA,EAAEtB,UAAU,EAAMiqC,GAAG,CAAE,EAACjqC,SAASkqC,GAAG,SAAS5oC,GAAG,OAAO2oC,GAAGxrC,KAAK6C,GAAGe,QAAQ,aAAa,IAAIA,QAAQ,KAAK,GAAG,EAAM8nC,GAAG7sC,OAAOC,UAAU6sC,GAAG,SAAS9oC,GAAG,IAAI7D,EAAE6D,GAAGA,EAAEsP,YAAY,OAAOtP,KAAK,mBAAmB7D,GAAGA,EAAEF,WAAW4sC,GAAG,EAAE,SAASE,GAAG/oC,EAAE7D,GAAG,IAAI,IAAIc,KAAKd,EAAEA,EAAED,eAAee,IAAI,gBAAgBA,QAAG,IAASd,EAAEc,KAAK+C,EAAE/C,GAAGd,EAAEc,GAAG,CAAC,SAAS+rC,GAAGhpC,EAAE7D,EAAEc,EAAEoC,GAAG,OAAOlD,GAAG4sC,GAAG/oC,EAAE7D,GAAGc,GAAG8rC,GAAG/oC,EAAE/C,GAAGoC,GAAG0pC,GAAG/oC,EAAEX,GAAGW,CAAC,CAAC,IAAIipC,GAAG,SAASjpC,GAAG,GAAG,iBAAiBA,GAAG,OAAOA,EAAE,OAAOA,EAAE,IAAI7D,EAAE,GAAGsqC,GAAGzmC,GAAG,CAAC7D,EAAE,GAAG,IAAI,IAAIc,EAAE,EAAEoC,EAAEW,EAAE9B,OAAOjB,EAAEoC,EAAEpC,IAAI,iBAAiB+C,EAAE/C,IAAI,MAAM+C,EAAE/C,GAAGd,EAAEc,GAAGgsC,GAAGjpC,EAAE/C,IAAId,EAAEc,GAAG+C,EAAE/C,EAAE,MAAM,IAAI,IAAI2F,KAAKzG,EAAE,CAAE,EAAC6D,EAAE,iBAAiBA,EAAE4C,IAAI,MAAM5C,EAAE4C,GAAGzG,EAAEyG,GAAGqmC,GAAGjpC,EAAE4C,IAAIzG,EAAEyG,GAAG5C,EAAE4C,GAAG,OAAOzG,CAAC,EAAM+sC,GAAG,SAASlpC,EAAE7D,GAAG,IAAIoqC,GAAGvmC,GAAG,MAAM,IAAIslB,UAAU,uBAAuB,IAAIroB,EAAE,WAAW,IAAI,IAAIoC,EAAE,GAAGuD,EAAE,EAAEA,EAAE3E,UAAUC,OAAO0E,IAAIvD,EAAEuD,GAAG3E,UAAU2E,GAAG,IAAI5E,EAAE7B,EAAEA,EAAEsC,MAAMuK,KAAK3J,GAAGA,EAAE,GAAGG,EAAEvC,EAAEsoB,MAAM,GAAG/lB,EAAE+J,IAAIvL,GAAG,OAAOwB,EAAE8J,IAAItL,GAAG,IAAInB,EAAEmD,EAAEvB,MAAMuK,KAAK3J,GAAG,OAAOG,EAAE6J,IAAIrL,EAAEnB,GAAGA,CAAC,EAAE,OAAOI,EAAEsoB,MAAM,IAAIoiB,IAAI1qC,CAAC,EAAE,SAASksC,GAAGnpC,EAAE7D,EAAEc,EAAEoC,GAAG,IAAI,IAAIuD,KAAK3F,EAAEA,GAAG,EAAEoC,EAAEA,GAAG,EAAElD,EAAE,GAAGA,EAAED,eAAe0G,GAAG,CAAC,IAAI5E,EAAE7B,EAAEyG,GAAG,OAAO5E,GAAG+oC,GAAG/oC,IAAI+oC,GAAG/mC,EAAE4C,MAAM5C,EAAE4C,GAAG,CAAA,GAAI3F,EAAEoC,EAAE8pC,GAAGnpC,EAAE4C,GAAG5E,EAAEf,EAAE,EAAEoC,GAAGW,EAAE4C,GAAGzG,EAAEyG,IAAI6jC,GAAGzoC,IAAIgC,EAAE4C,GAAG,GAAG5C,EAAE4C,GAAG5C,EAAE4C,GAAGwpB,OAAOpuB,SAAI,IAASA,IAAIgC,EAAE4C,GAAG5E,EAAE,CAAC,CAAC,IAA8corC,GAA1cC,GAAGrtC,OAAOC,UAAUC,eAAmBotC,GAAG,SAAStpC,EAAE7D,GAAG,GAAG6D,IAAI7D,EAAE,OAAM,EAAG,IAAI6D,IAAI7D,EAAE,OAAM,EAAG,GAAGsrC,GAAGznC,IAAIynC,GAAGtrC,GAAG,OAAM,EAAG,GAAG6pC,GAAGhmC,IAAIgmC,GAAG7pC,GAAG,CAAC,GAAG6D,EAAE9B,SAAS/B,EAAE+B,OAAO,OAAM,EAAG,IAAI,IAAIjB,GAAE,EAAGoC,EAAE,EAAEA,EAAEW,EAAE9B,SAASjB,EAAEqsC,GAAGtpC,EAAEX,GAAGlD,EAAEkD,KAAKA,KAAK,OAAOpC,CAAC,CAAC,GAAG6pC,GAAG9mC,IAAI8mC,GAAG3qC,GAAG,CAAC,IAAIyG,EAAE5G,OAAOmO,KAAKnK,GAAGhC,EAAEhC,OAAOmO,KAAKhO,GAAG,GAAGyG,EAAE1E,SAASF,EAAEE,OAAO,OAAM,EAAG,IAAIjB,GAAE,EAAGoC,EAAE,EAAEA,EAAEuD,EAAE1E,SAASjB,EAAEqsC,GAAGtpC,EAAE4C,EAAEvD,IAAIlD,EAAEyG,EAAEvD,MAAMA,KAAK,OAAOpC,CAAC,CAAC,OAAM,CAAE,EAAEssC,GAAG,SAASvpC,GAAG,OAAOA,CAAC,EAAEwpC,GAAGxtC,OAAOC,UAAUC,eAAeutC,GAAG,CAAE,EAAQC,GAAG,WAAW,OAAOA,GAAG1tC,OAAOkF,QAAQ,SAASlB,GAAG,IAAI,IAAI7D,EAAEc,EAAE,EAAEoC,EAAEpB,UAAUC,OAAOjB,EAAEoC,EAAEpC,IAAI,IAAI,IAAI2F,KAAKzG,EAAE8B,UAAUhB,GAAGjB,OAAOC,UAAUC,eAAeiB,KAAKhB,EAAEyG,KAAK5C,EAAE4C,GAAGzG,EAAEyG,IAAI,OAAO5C,CAAC,EAAE0pC,GAAGjrC,MAAMuK,KAAK/K,UAAU,EAAo2C,SAAS0rC,GAAG3pC,GAAG,IAAI7D,EAAE,mBAAmBP,QAAQA,OAAOguC,SAAS3sC,EAAEd,GAAG6D,EAAE7D,GAAGkD,EAAE,EAAE,GAAGpC,EAAE,OAAOA,EAAEE,KAAK6C,GAAG,GAAGA,GAAG,iBAAiBA,EAAE9B,OAAO,MAAM,CAAC2rC,KAAK,WAAW,OAAO7pC,GAAGX,GAAGW,EAAE9B,SAAS8B,OAAE,GAAQ,CAACT,MAAMS,GAAGA,EAAEX,KAAKyqC,MAAM9pC,EAAE,GAAG,MAAM,IAAIslB,UAAUnpB,EAAE,0BAA0B,kCAAkC,CAAC,SAAS4tC,GAAG/pC,EAAE7D,GAAG,IAAIc,EAAE,mBAAmBrB,QAAQoE,EAAEpE,OAAOguC,UAAU,IAAI3sC,EAAE,OAAO+C,EAAE,IAAIX,EAAEuD,EAAE5E,EAAEf,EAAEE,KAAK6C,GAAGR,EAAE,GAAG,IAAI,WAAM,IAASrD,GAAGA,KAAK,MAAMkD,EAAErB,EAAE6rC,QAAQC,MAAMtqC,EAAEnB,KAAKgB,EAAEE,MAAM,CAAC,MAAMS,GAAG4C,EAAE,CAAConC,MAAMhqC,EAAE,CAAC,QAAQ,IAAIX,IAAIA,EAAEyqC,OAAO7sC,EAAEe,EAAEisC,SAAShtC,EAAEE,KAAKa,EAAE,CAAC,QAAQ,GAAG4E,EAAE,MAAMA,EAAEonC,KAAK,CAAC,CAAC,OAAOxqC,CAAC,CAAC,SAAS0qC,GAAGlqC,EAAE7D,EAAEc,GAAG,GAAM,IAAIgB,UAAUC,OAAO,IAAI,IAAImB,EAAEuD,EAAE,EAAE5E,EAAE7B,EAAE+B,OAAO0E,EAAE5E,EAAE4E,KAAKvD,GAAGuD,KAAKzG,IAAIkD,IAAIA,EAAEf,MAAMrC,UAAUqG,MAAMnF,KAAKhB,EAAE,EAAEyG,IAAIvD,EAAEuD,GAAGzG,EAAEyG,IAAI,OAAO5C,EAAEosB,OAAO/sB,GAAGf,MAAMrC,UAAUqG,MAAMnF,KAAKhB,GAAG,CAAC,mBAAmBguC,iBAAiBA,gBAAgB,IAAIC,GAAGlB,aAAalpC,EAAE7D,QAAG,IAASA,IAAIA,EAAE,CAAE,GAAE,IAAIc,EAAEd,EAAEkuC,SAAShrC,EAAElD,EAAEmuC,WAAW1nC,EAAEzG,EAAEouC,WAAWvsC,EAAE7B,EAAEquC,UAAUhrC,EAAErD,EAAEsuC,YAAY,OAAOrB,KAAKA,GAAG3pC,SAASC,cAAc,UAAUgrC,WAAW,OAAOtB,GAAGuB,KAAK,CAAC3sC,EAAEwB,EAAEoD,EAAE3F,EAAE,KAAKoC,GAAGV,KAAK,KAAKyqC,GAAGwB,YAAYnD,GAAGznC,GAAGA,EAAE,IAAIg6B,KAAM,IAAG,SAASh6B,EAAE7D,GAAG,YAAO,IAASA,IAAIA,EAAE,IAAI,WAAW,IAAI,IAAI6D,EAAE,EAAE7D,EAAE,EAAEc,EAAEgB,UAAUC,OAAO/B,EAAEc,EAAEd,IAAI6D,GAAG/B,UAAU9B,GAAG+B,OAAO,IAAImB,EAAEf,MAAM0B,GAAG4C,EAAE,EAAE,IAAIzG,EAAE,EAAEA,EAAEc,EAAEd,IAAI,IAAI,IAAI6B,EAAEC,UAAU9B,GAAGqD,EAAE,EAAE3C,EAAEmB,EAAEE,OAAOsB,EAAE3C,EAAE2C,IAAIoD,IAAIvD,EAAEuD,GAAG5E,EAAEwB,GAAG,OAAOH,CAAC,CAApL,CAAsL,CAACW,GAAGyoC,GAAGtsC,IAAIwC,KAAK,GAAI,IAAGksC,GAAG,WAAW,SAAS7qC,IAAIgJ,KAAK2B,IAAI,CAAE,CAAA,CAAC,OAAO3K,EAAE/D,UAAUsN,IAAI,SAASvJ,GAAG,YAAO,IAASgJ,KAAK2B,IAAI3K,EAAE,EAAEA,EAAE/D,UAAUqN,IAAI,SAAStJ,EAAE7D,GAAG,IAAIc,EAAE+L,KAAK2B,IAAI3K,GAAG,YAAO,IAAS/C,EAAEd,EAAEc,CAAC,EAAE+C,EAAE/D,UAAUoN,IAAI,SAASrJ,EAAE7D,GAAG6M,KAAK2B,IAAI3K,GAAG7D,CAAC,EAAE6D,EAAE/D,UAAU8F,MAAM,WAAWiH,KAAK2B,IAAI,CAAA,CAAE,EAAE3K,EAAE/D,UAAU0F,OAAO,SAAS3B,UAAUgJ,KAAK2B,IAAI3K,EAAE,EAAEA,EAAE/D,UAAUiN,KAAK,WAAW,OAAOlN,OAAOmO,KAAKnB,KAAK2B,KAAKzM,MAAM,EAAE8B,CAAC,CAAvX,GAA2X8qC,GAAG9uC,OAAO+vB,OAAO,CAACgf,UAAU,KAAKvlB,MAAMqlB,GAAG3pC,OAAO8nC,GAAGgC,QAAQ,WAAW,IAAI,IAAIhrC,EAAE,GAAG7D,EAAE,EAAEA,EAAE8B,UAAUC,OAAO/B,IAAI6D,EAAE7D,GAAG8B,UAAU9B,GAAG,IAAI,IAAIc,EAAE+C,EAAE,GAAGX,EAAE,EAAEA,EAAEW,EAAE9B,OAAOmB,IAAI,CAAC,IAAIuD,EAAE5C,EAAEX,GAAGknC,GAAG3jC,KAAKA,EAAEA,EAAE3G,WAAW+sC,GAAG/rC,EAAEhB,UAAU2G,EAAE,CAAC,EAAEqoC,MAAM,SAASjrC,EAAE7D,EAAEc,GAAG,OAAO+C,EAAE7D,EAAEA,EAAE6D,EAAE/C,EAAEA,EAAE+C,CAAC,EAAEkrC,oBAAoB,SAASlrC,IAAIlB,OAAOqsC,sBAAsBrsC,OAAOssC,4BAA4BtsC,OAAOusC,yBAAyBvsC,OAAOwsC,wBAAwBC,cAAcvrC,EAAE,EAAE+nB,MAAMkhB,GAAGuC,SAAStF,GAAGuF,SAAS,SAASzrC,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,OAAO,WAAW,IAAIuD,EAAEoG,KAAKhL,EAAEC,UAAUuB,EAAEvC,IAAIoC,EAAEksC,aAAalsC,GAAGA,EAAEqsC,YAAY,WAAWrsC,EAAE,KAAKpC,GAAG+C,EAAEvB,MAAMmE,EAAE5E,EAAG,GAAE7B,GAAGqD,GAAGQ,EAAEvB,MAAMmE,EAAE5E,EAAE,CAAC,EAAE2tC,QAAQ,SAAS3rC,GAAG,IAAI,IAAI7D,EAAE,GAAGc,EAAE,EAAEA,EAAEgB,UAAUC,OAAOjB,IAAId,EAAEc,EAAE,GAAGgB,UAAUhB,GAAG,IAAI,IAAIoC,EAAE,EAAEA,EAAElD,EAAE+B,OAAOmB,GAAG,EAAE8pC,GAAGnpC,EAAE7D,EAAEkD,IAAI,OAAOW,CAAC,EAAE4rC,WAAW,SAAS5rC,EAAE7D,GAAG,YAAO,IAASA,IAAIA,EAAE,IAAIiqC,GAAGpmC,GAAC,SAAWA,GAAG,OAAOkmC,GAAG/pC,EAAE6D,EAAG,GAAE,EAAEioB,KAAK0e,GAAGkF,SAAS,SAAS7rC,EAAE7D,GAAG,SAASsqC,GAAGzmC,KAAKynC,GAAGznC,KAAKA,EAAEA,EAAE9B,OAAO,KAAK/B,CAAC,EAAE2vC,MAAM,SAAS9rC,EAAE7D,GAAG,IAAI,IAAIc,EAAE,EAAEA,EAAE+C,EAAE9B,OAAOjB,IAAI,IAAId,EAAE6D,EAAE/C,GAAGA,GAAG,OAAM,EAAG,OAAM,CAAE,EAAE8uC,OAAO,SAAS/rC,EAAE7D,EAAEc,EAAEoC,GAAGknC,GAAGpqC,KAAKc,EAAEd,EAAEA,EAAE6D,EAAEA,EAAE,WAAY,GAAE,IAAI4C,EAAE5G,OAAOgnB,OAAO,SAAShjB,EAAE7D,GAAG,OAAOH,OAAOgnB,OAAOhjB,EAAE,CAACsP,YAAY,CAAC/P,MAAMpD,IAAI,EAAE,SAAS6D,EAAE7D,GAAG,SAASc,IAAK,CAAAA,EAAEhB,UAAU+D,EAAE,IAAIX,EAAE,IAAIpC,EAAE,OAAOoC,EAAEiQ,YAAYnT,EAAEkD,CAAC,EAAErB,EAAE4E,EAAEzG,EAAEF,UAAU+D,GAAG,OAAOA,EAAE/D,UAAU+sC,GAAGhrC,EAAEgC,EAAE/D,WAAW+D,EAAEgsC,WAAWppC,EAAEzG,EAAEF,UAAUE,GAAG6sC,GAAGhrC,EAAEf,GAAG+rC,GAAGhpC,EAAEX,GAAGW,CAAC,EAAEkoB,OAAOke,GAAG/P,KAAK,SAASr2B,EAAE7D,GAAG,IAAIsqC,GAAGzmC,GAAG,OAAO,KAAK,IAAI/C,EAAE,GAAGspC,GAAGpqC,KAAKc,EAAEd,GAAG4qC,GAAG5qC,KAAKc,EAAE,SAAS+C,GAAG,OAAO6mC,GAAG7mC,EAAE7D,EAAE,GAAGc,EAAE,IAAI,IAAIoC,EAAE,EAAEA,EAAEW,EAAE9B,OAAOmB,GAAG,EAAE,GAAGpC,EAAE+C,EAAEX,IAAI,OAAOW,EAAEX,GAAG,OAAO,IAAI,EAAE4sC,UAAU,SAASjsC,EAAE7D,EAAEc,QAAG,IAASA,IAAIA,EAAE,GAAG,IAAI,IAAIoC,EAAEpC,EAAEoC,EAAEW,EAAE9B,OAAOmB,IAAI,GAAGlD,EAAE6D,EAAEX,GAAGA,GAAG,OAAOA,EAAE,OAAO,CAAC,EAAE6sC,WAAW,SAASlsC,EAAE7D,GAAG,IAAI,IAAIc,EAAE,KAAKoC,EAAE,EAAEA,EAAEW,EAAE9B,OAAOmB,IAAI,CAAC,IAAIuD,EAAE5C,EAAEX,GAAGlD,GAAG,IAAIqqC,GAAG5jC,GAAG,CAAC3F,EAAEwpC,GAAG7jC,GAAGA,EAAE,GAAGA,EAAE,KAAK,CAAC,CAAC,OAAO3F,CAAC,EAAEkvC,UAAU,SAASnsC,EAAE7D,GAAG,IAAIc,EAAEd,EAAEuC,WAAWW,EAAEpC,EAAEkpC,QAAQ,KAAK,IAAI,IAAI9mC,EAAE,OAAO4nB,KAAKmlB,MAAMpsC,GAAG,IAAI4C,EAAE3F,EAAEovC,OAAOhtC,EAAE,GAAGnB,OAAO,OAAO0E,EAAE,KAAKA,EAAE,IAAI0pC,WAAWtsC,EAAEusC,QAAQ3pC,GAAG,EAAE2zB,QAAQ,SAASv2B,GAAG,IAAIymC,GAAGzmC,GAAG,MAAM,GAAG,IAAI,IAAI7D,EAAE,GAAGc,EAAE,EAAEA,EAAE+C,EAAE9B,OAAOjB,IAAId,EAAEA,EAAEiwB,OAAOpsB,EAAE/C,IAAI,OAAOd,CAAC,EAAEqwC,YAAYxF,GAAGxQ,MAAMmQ,GAAGr9B,IAAI,SAAStJ,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,EAAE,EAAEuD,EAAE6kC,GAAGtrC,GAAGA,EAAE4rC,MAAM,KAAK5rC,EAAE6D,GAAGX,EAAEuD,EAAE1E,QAAQ8B,EAAEA,EAAE4C,EAAEvD,MAAM,YAAO,IAASW,GAAGX,EAAEuD,EAAE1E,OAAOjB,EAAE+C,CAAC,EAAEysC,gBAAgB,SAASzsC,EAAE7D,EAAEc,EAAEoC,QAAG,IAASA,IAAIA,EAAE,OAAO,IAAIuD,EAAE5E,EAAEwB,EAAE4qC,GAAG/qC,EAAEpC,GAAGJ,EAAE4qC,GAAGznC,GAAGA,EAAE0oC,GAAG1oC,GAAGpD,EAAET,EAAEV,EAAE,GAAG,GAAG2uC,GAAGpqC,EAAE/C,IAAId,EAAE,OAAO6D,EAAE,KAAK4C,EAAE/F,EAAEwvC,OAAO,EAAE,OAAOruC,EAAEosC,GAAGxnC,EAAE3F,IAAIuC,EAAE5C,GAAGoB,EAAEpB,IAAI,GAAGnB,EAAE4C,KAAKuE,GAAGhG,GAAGoB,IAAInB,EAAEA,EAAEwvC,OAAO,KAAK,OAAO5wC,EAAEkD,KAAK,IAAI,KAAKiE,EAAE/F,EAAEwvC,OAAO,EAAE,MAAMruC,EAAEosC,GAAGxnC,EAAE3F,IAAIuC,EAAE5C,IAAI,GAAGnB,EAAE4C,KAAKuE,GAAGhG,GAAGoB,IAAInB,EAAEA,EAAEwvC,OAAO,IAAI,OAAO5wC,EAAEkD,KAAK,IAAI,MAAM,GAAGlD,EAAEkD,KAAK,IAAIU,CAAC,EAAEqtC,SAAS,SAAS1sC,GAAG,IAAI7D,EAAE6D,EAAEkoB,QAAM,SAAWloB,GAAG,OAAO2sC,MAAM3sC,EAAG,IAAG,IAAI7D,EAAE+B,OAAO,MAAM,CAAC4uB,IAAI,EAAE5F,IAAI,GAAG,GAAGuf,GAAGzmC,EAAE,IAAI,CAAC,IAAI,IAAI/C,EAAE,GAAGoC,EAAE,EAAEA,EAAEW,EAAE9B,OAAOmB,IAAIpC,EAAEA,EAAEmvB,OAAOpsB,EAAEX,IAAIlD,EAAEc,CAAC,CAAC,IAAI2F,EAAEqkC,GAAG9qC,GAAG,MAAM,CAAC2wB,IAAIoa,GAAG/qC,GAAG+qB,IAAItkB,EAAE,EAAEgqC,QAAQhE,GAAGiE,gBAAgB,SAAS7sC,EAAE7D,GAAG,OAAO6D,EAAE,SAAS7D,EAAE,EAAE2wC,MAAM,SAAS9sC,EAAE7D,GAAG,IAAIA,EAAE,MAAM,CAAC6D,GAAG,IAAI/C,EAAE6qC,GAAG9nC,EAAE7D,GAAGkD,EAAE,GAAG,IAAI,IAAIuD,KAAK3F,EAAEoC,EAAEhB,KAAKpB,EAAE2F,IAAI,OAAOvD,CAAC,EAAE0tC,QAAQlF,GAAGmF,WAAWlF,GAAGv+B,IAAIi/B,GAAGyE,OAAOzE,GAAGjoC,SAAS,SAASP,EAAE7D,GAAG,OAAO+pC,GAAGuC,GAAGzoC,GAAG7D,EAAE,EAAE+wC,KAAK,SAASltC,GAAG,GAAGgmC,GAAGhmC,GAAG,OAAOA,EAAE,EAAE,EAAEkC,SAAS,SAASlC,GAAG,OAAOA,CAAC,EAAEmtC,SAASjH,GAAGC,QAAQ,SAASnmC,EAAE7D,GAAG,IAAI6pC,GAAGhmC,GAAG,OAAO,EAAE,IAAI/C,EAAEqB,MAAMrC,UAAUkqC,QAAQ,GAAGlpC,EAAE,OAAOA,EAAEE,KAAK6C,EAAE7D,GAAG,IAAI,IAAIkD,GAAG,EAAEuD,EAAE,EAAEA,EAAE5C,EAAE9B,OAAO0E,IAAI,GAAG5C,EAAE4C,KAAKzG,EAAE,CAACkD,EAAEuD,EAAE,KAAK,CAAC,OAAOvD,CAAC,EAAE+tC,YAAY,SAASptC,GAAG,OAAOsmC,GAAGtmC,EAAE,YAAY,EAAEzB,QAAQkoC,GAAG4G,YAAYrH,GAAGsH,UAAU,SAASttC,GAAG,OAAOsmC,GAAGtmC,EAAE,UAAU,EAAEutC,OAAO,SAASvtC,GAAG,OAAOsmC,GAAGtmC,EAAE,OAAO,EAAEwtC,UAAU,SAASxtC,GAAG,OAAOioC,GAAGjoC,IAAIA,EAAE,GAAG,CAAC,EAAEytC,UAAU,SAASztC,GAAG,OAAOA,aAAa0tC,SAAS1tC,aAAa2tC,YAAY,EAAExlB,QAAQ,SAASnoB,GAAG,GAAGwmC,GAAGxmC,GAAG,OAAM,EAAG,GAAGgmC,GAAGhmC,GAAG,OAAOA,EAAE9B,OAAO,IAAI/B,EAAEysC,GAAG5oC,GAAG,GAAG,QAAQ7D,GAAG,QAAQA,EAAE,OAAO6D,EAAEkJ,KAAK,GAAG4/B,GAAG9oC,GAAG,OAAOhE,OAAOmO,KAAKnK,GAAG9B,OAAO,IAAI,IAAIjB,KAAK+C,EAAE,GAAGqpC,GAAGlsC,KAAK6C,EAAE/C,GAAG,OAAM,EAAG,OAAM,CAAE,EAAE2wC,QAAQtE,GAAGuE,YAAY,SAAS7tC,EAAE7D,EAAEc,GAAG,OAAOspC,GAAGtpC,KAAKA,EAAE+C,EAAE7D,GAAGmtC,GAAGtpC,EAAE7D,EAAE,EAAE2xC,QAAQ,SAAS9tC,GAAG,OAAOsmC,GAAGtmC,EAAE,QAAQ,EAAE+tC,OAAO,SAAS/tC,GAAG,OAAOioC,GAAGjoC,IAAIA,EAAE,GAAG,CAAC,EAAEimC,SAAS,SAASjmC,GAAG,OAAOioC,GAAGjoC,IAAIimC,SAASjmC,EAAE,EAAEooB,WAAWme,GAAG4B,UAAUD,GAAG8F,QAAQnH,GAAGoH,WAAW,SAASjuC,GAAG,OAAOioC,GAAGjoC,IAAIA,EAAE,CAAC,EAAEkuC,MAAM1H,GAAG2H,OAAO,SAASnuC,GAAG,OAAO,OAAOA,CAAC,EAAEouC,SAASnG,GAAGoG,cAAc,SAASruC,EAAE7D,EAAEc,GAAG,YAAO,IAASA,IAAIA,EAAE,MAAMgqB,KAAKiT,IAAIl6B,EAAE7D,GAAGc,CAAC,EAAEqxC,SAAS5H,GAAG6H,aAAazH,GAAG0H,MAAM,SAASxuC,GAAG,OAAOioC,GAAGjoC,IAAIA,EAAE,GAAG,CAAC,EAAEyuC,cAAc1H,GAAG2H,WAAW,SAAS1uC,GAAG,OAAOioC,GAAGjoC,IAAIA,EAAE,CAAC,EAAE2uC,YAAY7F,GAAG8F,SAAS,SAAS5uC,GAAG,OAAOsmC,GAAGtmC,EAAE,SAAS,EAAE6uC,SAASpH,GAAGqH,OAAOxI,GAAGje,YAAY,SAASroB,GAAG,YAAO,IAASA,CAAC,EAAEmK,KAAKy8B,GAAGnQ,KAAK,SAASz2B,GAAG,GAAGgmC,GAAGhmC,GAAI,OAAOA,EAAEA,EAAE9B,OAAO,EAAG,EAAE6wC,UAAU,SAAS/uC,GAAG,OAAO0oC,GAAG1oC,GAAGq/B,aAAa,EAAE2P,WAAW,SAAShvC,GAAG,IAAI7D,EAAEusC,GAAG1oC,GAAG,OAAO7D,EAAEm5B,OAAO,GAAG+J,cAAcljC,EAAE8yC,UAAU,EAAE,EAAEtkC,IAAI,SAAS3K,EAAE7D,GAAG,IAAI6pC,GAAGhmC,GAAG,OAAOA,EAAE,IAAI,IAAI/C,EAAE,GAAGoC,EAAE,EAAEA,EAAEW,EAAE9B,OAAOmB,IAAI,CAAC,IAAIuD,EAAE5C,EAAEX,GAAGpC,EAAEoB,KAAKlC,EAAEyG,EAAEvD,GAAG,CAAC,OAAOpC,CAAC,EAAEy5B,UAAU,SAAS12B,EAAE7D,QAAG,IAASA,IAAIA,EAAEotC,IAAI,IAAItsC,EAAE,CAAA,EAAG,OAAOypC,GAAG1mC,KAAKwmC,GAAGxmC,IAAIhE,OAAOmO,KAAKnK,GAAGmB,SAAO,SAAW9B,GAAGpC,EAAEoC,GAAGlD,EAAE6D,EAAEX,GAAGA,EAAG,IAAGpC,CAAC,EAAEiqB,IAAI+f,GAAGiI,MAAM,SAASlvC,EAAE7D,GAAG,GAAGsqC,GAAGzmC,GAAG,CAAC,IAAI,IAAI/C,EAAEoC,GAAE,IAAKuD,EAAE,EAAEA,EAAE5C,EAAE9B,OAAO0E,IAAI,CAAC,IAAI5E,EAAEgC,EAAE4C,GAAGpD,EAAE+mC,GAAGpqC,GAAGA,EAAE6B,GAAGA,EAAE7B,GAAGqD,EAAEH,IAAIpC,EAAEe,EAAEqB,EAAEG,EAAE,CAAC,OAAOvC,CAAC,CAAC,EAAEkyC,iBAAiB/E,GAAGgF,QAAQlG,GAAGpc,IAAIoa,GAAGrQ,MAAM,SAAS72B,EAAE7D,GAAG,GAAGsqC,GAAGzmC,GAAG,CAAC,IAAI,IAAI/C,EAAEoC,EAAE,IAAIuD,EAAE,EAAEA,EAAE5C,EAAE9B,OAAO0E,IAAI,CAAC,IAAI5E,EAAEgC,EAAE4C,GAAGpD,EAAE+mC,GAAGpqC,GAAGA,EAAE6B,GAAGA,EAAE7B,GAAGqD,EAAEH,IAAIpC,EAAEe,EAAEqB,EAAEG,EAAE,CAAC,OAAOvC,CAAC,CAAC,EAAEoyC,IAAIrG,GAAGsG,IAAI,SAAStvC,EAAE7D,GAAG,OAAO6D,EAAE7D,EAAEA,GAAGA,CAAC,EAAEozC,KAAK,WAAY,EAACC,aAAa,SAASxvC,GAAG,IAAI7D,EAAE6rC,GAAGhoC,GAAG,IAAI7D,EAAE,CAAC,IAAI,IAAIc,EAAE+C,EAAEtB,SAAS,IAAIW,EAAEpC,EAAEiB,OAAOmB,EAAE,EAAEA,IAAIpC,EAAE,IAAIA,EAAEd,EAAE,IAAIc,EAAE+qC,GAAGhoC,GAAG7D,CAAC,CAAC,OAAOA,CAAC,EAAEszC,KAAK,SAASzvC,EAAE7D,GAAG,OAAOqrC,GAAGxnC,GAAC,SAAWA,EAAE/C,EAAEoC,GAAG,OAAOlD,EAAEgxC,SAAS9tC,KAAKW,EAAEX,GAAGpC,GAAG+C,CAAE,GAAE,GAAG,EAAE0vC,YAAY,SAAS1vC,GAAG,IAAI7D,EAAE,EAAEc,EAAE,EAAEoC,EAAE,EAAEuD,EAAE,EAAE,OAAO6jC,GAAGzmC,GAAG,IAAIA,EAAE9B,OAAO/B,EAAEc,EAAEoC,EAAEuD,EAAE5C,EAAE,GAAG,IAAIA,EAAE9B,QAAQ/B,EAAEkD,EAAEW,EAAE,GAAG/C,EAAE2F,EAAE5C,EAAE,IAAI,IAAIA,EAAE9B,QAAQ/B,EAAE6D,EAAE,GAAG/C,EAAE2F,EAAE5C,EAAE,GAAGX,EAAEW,EAAE,KAAK7D,EAAE6D,EAAE,GAAG/C,EAAE+C,EAAE,GAAGX,EAAEW,EAAE,GAAG4C,EAAE5C,EAAE,IAAI7D,EAAEc,EAAEoC,EAAEuD,EAAE5C,EAAE,CAAC2vC,GAAGxzC,EAAEyzC,GAAG3yC,EAAE4yC,GAAGxwC,EAAEywC,GAAGltC,EAAE,EAAEk0B,KAAK,SAAS92B,EAAE7D,GAAG,GAAG,OAAO6D,IAAI+mC,GAAG/mC,GAAG,MAAM,CAAE,EAAC,IAAI/C,EAAE,CAAE,EAAC,OAAO0pC,GAAGxqC,GAAG,SAASA,GAAGqtC,GAAGrsC,KAAK6C,EAAE7D,KAAKc,EAAEd,GAAG6D,EAAE7D,GAAI,IAAGc,CAAC,EAAE8yC,KAAK,SAAS/vC,GAAG,IAAI,IAAI7D,EAAE,GAAGc,EAAE,EAAEA,EAAEgB,UAAUC,OAAOjB,IAAId,EAAEc,EAAE,GAAGgB,UAAUhB,GAAG,IAAI,IAAIoC,EAAE,EAAEA,EAAElD,EAAE+B,OAAOmB,IAAI,IAAI,IAAIuD,EAAEzG,EAAEkD,GAAGrB,GAAG,GAAGA,EAAEqpC,GAAGlqC,KAAK6C,EAAE4C,KAAK,GAAGwkC,GAAGjqC,KAAK6C,EAAEhC,EAAE,GAAG,OAAOgC,CAAC,EAAEgwC,OAAOzI,GAAGjf,OAAOkf,GAAGyI,OAAO,SAASjwC,EAAE7D,GAAG,IAAIc,EAAE,GAAG,IAAI+oC,GAAGhmC,GAAG,OAAO/C,EAAE,IAAI,IAAIoC,GAAG,EAAEuD,EAAE,GAAG5E,EAAEgC,EAAE9B,SAASmB,EAAErB,GAAG,CAAC,IAAIwB,EAAEQ,EAAEX,GAAGlD,EAAEqD,EAAEH,EAAEW,KAAK/C,EAAEoB,KAAKmB,GAAGoD,EAAEvE,KAAKgB,GAAG,CAAC,OAAOkoC,GAAGvnC,EAAE4C,GAAG3F,CAAC,EAAEizC,sBAAsB,SAASlwC,GAAG,OAAOlB,OAAOoxC,uBAAuBpxC,OAAOqxC,6BAA6BrxC,OAAOsxC,0BAA0BtxC,OAAOuxC,yBAAyB,SAASrwC,GAAG,OAAO0rC,WAAW1rC,EAAE,GAAG,GAAGA,EAAE,EAAEqJ,IAAI,SAASrJ,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEW,EAAE4C,EAAE6kC,GAAGtrC,GAAGA,EAAE4rC,MAAM,KAAK5rC,EAAE,OAAOyG,EAAEzB,SAAO,SAAWnB,EAAE7D,GAAGA,EAAEyG,EAAE1E,OAAO,GAAGwoC,GAAGrnC,EAAEW,MAAMX,EAAEW,GAAGioC,GAAGrlC,EAAEzG,EAAE,IAAI,GAAG,IAAIkD,EAAEA,EAAEW,IAAIX,EAAEW,GAAG/C,CAAE,IAAG+C,CAAC,EAAEkJ,KAAK,SAASlJ,GAAG,OAAOwmC,GAAGxmC,GAAG,EAAEgmC,GAAGhmC,GAAGA,EAAE9B,OAAOlC,OAAOmO,KAAKnK,GAAG9B,MAAM,EAAEoyC,KAAK,SAAStwC,EAAE7D,GAAG,IAAI,IAAIc,EAAE,EAAEA,EAAE+C,EAAE9B,OAAOjB,IAAI,GAAGd,EAAE6D,EAAE/C,GAAGA,GAAG,OAAM,EAAG,OAAM,CAAE,EAAEk6B,OAAO,SAASn3B,EAAE7D,GAAG,IAAIc,EAAE,GAAGspC,GAAGpqC,GAAGc,EAAE,SAAS+C,EAAE/C,GAAG,OAAOd,EAAE6D,GAAG7D,EAAEc,EAAE,MAAM,CAAC,IAAIoC,EAAE,GAAGooC,GAAGtrC,GAAGkD,EAAEhB,KAAKlC,GAAGsqC,GAAGtqC,KAAKkD,EAAElD,GAAGc,EAAE,SAAS+C,EAAE7D,GAAG,IAAI,IAAIc,EAAE,EAAEA,EAAEoC,EAAEnB,OAAOjB,GAAG,EAAE,CAAC,IAAI2F,EAAEvD,EAAEpC,GAAG,GAAG+C,EAAE4C,GAAGzG,EAAEyG,GAAG,OAAO,EAAE,GAAG5C,EAAE4C,GAAGzG,EAAEyG,GAAG,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO5C,EAAEg2B,KAAK/4B,GAAG+C,CAAC,EAAEuwC,WAAW,SAASvwC,EAAE7D,GAAG,SAASsqC,GAAGzmC,KAAKynC,GAAGznC,KAAKA,EAAE,KAAK7D,CAAC,EAAEq0C,WAAW,SAASxwC,EAAE7D,GAAG,OAAO6D,GAAG7D,EAAE6D,EAAEe,QAAQ,6BAA6Bf,EAAE/C,GAAG,MAAM,OAAO+C,EAAEs1B,OAAO,GAAGt1B,EAAEsC,MAAM,QAAG,IAASnG,EAAEc,GAAG,GAAGd,EAAEc,EAAG,IAAG+C,CAAC,EAAEywC,SAAS,SAASzwC,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAEwB,EAAE3C,EAAE,EAAEI,IAAIA,EAAE,CAAA,GAAI,IAAIL,EAAE,WAAWC,GAAE,IAAKI,EAAEyzC,QAAQ,EAAEtpB,KAAKC,MAAMhoB,EAAE,KAAKG,EAAEQ,EAAEvB,MAAMmE,EAAE5E,GAAGqB,IAAIuD,EAAE5E,EAAE,KAAK,EAAEvC,EAAE,WAAW,IAAIA,EAAE2rB,KAAKC,MAAMxqB,IAAG,IAAKI,EAAEyzC,UAAU7zC,EAAEpB,GAAG,IAAIoH,EAAE1G,GAAGV,EAAEoB,GAAG,OAAO+F,EAAEoG,KAAKhL,EAAEC,UAAU4E,GAAG,GAAGA,EAAE1G,GAAGkD,IAAIksC,aAAalsC,GAAGA,EAAE,MAAMxC,EAAEpB,EAAE+D,EAAEQ,EAAEvB,MAAMmE,EAAE5E,GAAGqB,IAAIuD,EAAE5E,EAAE,OAAOqB,IAAG,IAAKpC,EAAE0zC,WAAWtxC,EAAEqsC,WAAW9uC,EAAEiG,IAAIrD,CAAC,EAAE,OAAO/D,EAAEm1C,OAAO,WAAWrF,aAAalsC,GAAGxC,EAAE,EAAEwC,EAAEuD,EAAE5E,EAAE,IAAI,EAAEvC,CAAC,EAAEo1C,QAAQ,SAAS7wC,GAAG,OAAOgmC,GAAGhmC,GAAG1B,MAAMrC,UAAUqG,MAAMnF,KAAK6C,GAAG,EAAE,EAAE8wC,SAAS,SAAS9wC,GAAG,OAAOooC,GAAGpoC,CAAC,EAAE+wC,UAAUzI,GAAG0I,SAAS,SAAShxC,GAAG,OAAOuoC,GAAGvoC,CAAC,EAAEtB,SAASgqC,GAAGlgB,MAAM,WAAW,IAAI,IAAIxoB,EAAE,GAAG7D,EAAE,EAAEA,EAAE8B,UAAUC,OAAO/B,IAAI6D,EAAE7D,GAAG8B,UAAU9B,GAAG,OAAOurC,GAAG,GAAGtb,OAAO3tB,MAAM,GAAGuB,GAAG,EAAEixC,KAAKvJ,GAAGtQ,SAAS,SAASp3B,GAAG,OAAOypC,GAAGzpC,EAAEA,GAAG,KAAKypC,GAAGzpC,IAAI,EAAEypC,GAAGzpC,GAAG,EAAEA,EAAEypC,GAAGzpC,EAAE,EAAEkxC,UAAU,SAASlxC,GAAG,OAAO0oC,GAAG1oC,GAAGmxC,aAAa,EAAEC,WAAW,SAASpxC,GAAG,IAAI7D,EAAEusC,GAAG1oC,GAAG,OAAO7D,EAAEm5B,OAAO,GAAG6b,cAAch1C,EAAE8yC,UAAU,EAAE,EAAExmB,OAAOggB,GAAG4I,YAAY,SAASrxC,EAAE7D,GAAG,IAAI,IAAIc,EAAE,GAAGoC,EAAE,GAAGuD,EAAE,EAAEA,EAAE5C,EAAE9B,OAAO0E,IAAI,CAAC,IAAI5E,EAAEgC,EAAE4C,GAAGzG,GAAG,IAAIqqC,GAAGxoC,GAAG,CAACyoC,GAAGzoC,KAAKA,EAAE,CAACA,IAAI,IAAI,IAAIwB,EAAE,EAAEA,EAAExB,EAAEE,OAAOsB,IAAI,CAAC,IAAI3C,EAAEmB,EAAEwB,GAAGH,EAAExC,KAAKI,EAAEoB,KAAKxB,GAAGwC,EAAExC,IAAG,EAAG,CAAC,CAAC,CAAC,OAAOI,CAAC,EAAEq0C,aAAa,SAAStxC,EAAE7D,GAAG,GAAG6D,EAAE,SAAS7D,GAAG,OAAO6D,EAAE,SAAS7D,GAAG,IAAIc,EAAE,SAASA,GAAG+C,EAAE7D,GAAGc,EAAE,EAAE,OAAO+C,EAAE,SAAS7D,GAAGc,EAAEA,CAAC,IAAQs0C,GAAG,CAACrwC,OAA5klG,SAAYlB,GAAG,GAAGA,EAAE4I,WAAW,OAAO5I,EAAE,IAAI7D,EAAE6D,EAAEnB,QAAQ,GAAG,mBAAmB1C,EAAE,CAAC,IAAIc,EAAE,SAAS+C,IAAI,OAAOgJ,gBAAgBhJ,EAAEwxC,QAAQC,UAAUt1C,EAAE8B,UAAU+K,KAAKsG,aAAanT,EAAEsC,MAAMuK,KAAK/K,UAAU,EAAEhB,EAAEhB,UAAUE,EAAEF,SAAS,MAAMgB,EAAE,CAAA,EAAG,OAAOjB,OAAO01C,eAAez0C,EAAE,aAAa,CAACsC,OAAM,IAAKvD,OAAOmO,KAAKnK,GAAGmB,SAAO,SAAWhF,GAAG,IAAIkD,EAAErD,OAAO21C,yBAAyB3xC,EAAE7D,GAAGH,OAAO01C,eAAez0C,EAAEd,EAAEkD,EAAEiK,IAAIjK,EAAE,CAACgM,YAAW,EAAG/B,IAAI,WAAW,OAAOtJ,EAAE7D,EAAE,GAAI,IAAGc,CAAC,CAAipkG20C,CAAG9G,IAAIuE,IAAIwC,UAAU,SAAS7xC,EAAE7D,EAAEc,EAAEoC,GAAG,YAAO,IAASA,IAAIA,EAAE,UAAU,WAAWpC,GAAG+C,EAAEX,GAAGlD,EAAEkD,IAAI,EAAEW,EAAEi6B,MAAM,GAAG6X,GAAGP,GAAGQ,GAAG,CAACC,MAAM,SAAShyC,GAAG,OAAOA,EAAEqgC,IAAIrgC,EAAE2kB,IAAI,EAAEstB,QAAQ,SAASjyC,GAAG,OAAOA,EAAEkyC,MAAM,CAAC,EAAEC,QAAQ,SAASnyC,GAAG,OAAOA,EAAEoyC,MAAM,CAAC,EAAEC,QAAQ,SAASryC,GAAG,OAAOA,EAAEsyC,MAAM,EAAE,EAAEC,QAAQ,SAASvyC,GAAG,OAAOA,EAAEwyC,MAAM,EAAE,EAAEC,YAAY,SAASzyC,GAAG,OAAOA,EAAEgrB,QAAQ,EAAE6mB,UAAU,SAAS7xC,GAAG,OAAOA,EAAEi6B,QAAQ,EAAE,EAAEyY,SAAS,SAAS1yC,GAAG,IAAI7D,EAAE6D,EAAEqlC,OAAO,IAAI,OAAOrlC,EAAEg6B,OAAO,GAAG79B,EAAE4rC,MAAM,IAAI7pC,MAAM,GAAG,SAASy0C,GAAG3yC,EAAE7D,GAAG,IAAIc,EAAE+L,KAAK,GAAG/L,EAAEu1C,KAAKv1C,EAAEq1C,KAAK,EAAEtyC,aAAa2yC,GAAG,OAAO3yC,EAAE/C,EAAE21C,KAAK5yC,EAAE,IAAIX,EAAElD,EAAEk2C,QAAQryC,GAAG4C,EAAEzG,EAAEo2C,QAAQvyC,GAAG,OAAO/C,EAAEi1C,KAAK/1C,EAAE81C,QAAQjyC,GAAG/C,EAAEm1C,KAAKj2C,EAAEg2C,QAAQnyC,GAAG/C,EAAE+8B,MAAM79B,EAAEu2C,SAAS1yC,GAAG/C,EAAEg9B,OAAO99B,EAAE01C,UAAU7xC,GAAG/C,EAAE+8B,OAAO/8B,EAAEi1C,KAAKj1C,EAAEg9B,QAAQh9B,EAAEm1C,KAAKn1C,EAAEojC,GAAGlkC,EAAE61C,MAAMhyC,GAAG/C,EAAE8F,EAAE9F,EAAE6F,EAAE,EAAE7F,EAAE41C,MAAM,EAAE51C,EAAE+tB,WAAW/tB,EAAE+tB,SAAS,IAAI/tB,EAAE61C,OAAOzzC,EAAEuD,GAAG3F,CAAC,CAAC60C,GAAG5wC,OAAOyxC,GAAG12C,UAAU,CAAC82C,OAAO,WAAW,OAAO,IAAI/pC,KAAK6pC,KAAK,EAAEtnB,OAAO,WAAW,OAAO,IAAIviB,KAAKgiB,SAAS9sB,MAAM,EAAE40C,OAAO,SAAS9yC,EAAE7D,GAAG,IAAIc,EAAE+L,KAAK/L,EAAEq1C,MAAMtyC,EAAE/C,EAAEu1C,MAAMr2C,EAAEc,EAAE+8B,OAAO,EAAEh6B,EAAE/C,EAAEg9B,QAAQ,EAAE99B,CAAC,EAAE62C,SAAS,SAAShzC,GAAG,IAAI,IAAI7D,EAAEc,EAAE,CAAC+L,MAAM7M,EAAEc,EAAEg2C,SAASjzC,EAAE7D,GAAGc,EAAEd,EAAE6uB,SAASoB,OAAOnvB,EAAE,EAAEi2C,WAAW,SAASlzC,GAAGgJ,KAAKgqC,SAAShzC,EAAE,EAAEmzC,WAAW,SAASnzC,GAAG,IAAI,IAAI7D,EAAEc,EAAE,CAAC+L,MAAM7M,EAAEc,EAAEg2C,SAASjzC,EAAE7D,GAAGc,EAAEA,EAAEmvB,OAAOjwB,EAAE6uB,SAAS,EAAEooB,eAAe,WAAW,IAAIpzC,EAAE,CAACqzC,KAAK9lB,OAAO+lB,UAAUC,IAAIhmB,OAAO+lB,UAAUtZ,MAAM,EAAEC,OAAO,GAAG,OAAOjxB,KAAKgqC,UAAQ,SAAW72C,GAAG6D,EAAEqzC,KAAKpsB,KAAK6F,IAAI9sB,EAAEqzC,KAAKl3C,EAAE4G,GAAG/C,EAAEuzC,IAAItsB,KAAK6F,IAAI9sB,EAAEuzC,IAAIp3C,EAAE2G,GAAG9C,EAAEg6B,MAAM/S,KAAKC,IAAIlnB,EAAEg6B,MAAM79B,EAAE4G,EAAE5G,EAAE69B,OAAOh6B,EAAEi6B,OAAOhT,KAAKC,IAAIlnB,EAAEi6B,OAAO99B,EAAE2G,EAAE3G,EAAE89B,OAAQ,IAAGj6B,CAAC,EAAEwzC,UAAU,SAASxzC,EAAE7D,QAAG,IAAS6D,IAAIA,EAAE,QAAG,IAAS7D,IAAIA,EAAE,GAAG6M,KAAKgqC,UAAQ,SAAW/1C,GAAGA,EAAE8F,GAAG/C,EAAE/C,EAAE6F,GAAG3G,EAAEc,EAAE8F,GAAG9F,EAAEi1C,KAAKj1C,EAAE6F,GAAG7F,EAAEm1C,IAAK,GAAE,EAAEqB,WAAW,WAAW,IAAIzzC,EAAEgJ,KAAK7M,EAAE6D,EAAEozC,iBAAiBpzC,EAAEgzC,UAAQ,SAAWhzC,GAAGA,EAAE+C,EAAE/C,EAAE+C,EAAE,GAAG/C,EAAE+C,EAAE5G,EAAEk3C,MAAMrzC,EAAEg6B,KAAM,IAAGh6B,EAAEwzC,UAAUr3C,EAAE69B,MAAM,EAAE,EAAE0Z,WAAW,WAAW,IAAI1zC,EAAEgJ,KAAK7M,EAAE6D,EAAEozC,iBAAiBpzC,EAAEgzC,UAAQ,SAAWhzC,GAAGA,EAAE8C,EAAE9C,EAAE8C,EAAE,GAAG9C,EAAE8C,EAAE3G,EAAEo3C,KAAKvzC,EAAEi6B,MAAO,IAAGj6B,EAAEwzC,UAAU,EAAEr3C,EAAE89B,OAAO,IAAI,IAAI0Z,GAAG,SAAS3zC,EAAE7D,EAAEc,QAAG,IAASd,IAAIA,EAAE,CAAE,GAAE,IAAIkD,EAAEuD,EAAE,IAAI+vC,GAAG3yC,EAAE7D,EAAE21C,GAAG5wC,OAAO,CAAE,EAAC6wC,GAAG51C,IAAI6B,EAAE,CAAC4E,GAAG,IAAI3F,IAAI+C,EAAE4zC,UAAU,KAAKv0C,EAAErB,EAAEi1C,SAAS,IAAI5zC,EAAEuzC,KAAKgB,UAAU,CAAC,IAAIp0C,EAAErD,EAAEs2C,YAAYpzC,EAAEuzC,MAAM/1C,EAAE2C,EAAEA,EAAEtB,OAAO,EAAE,GAAGmB,EAAE2rB,SAAS,IAAI1sB,MAAMzB,GAAG2C,GAAG3C,EAAE,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAED,IAAI,CAAC,IAAInB,EAAE,IAAIk3C,GAAGnzC,EAAE5C,GAAGT,GAAGkD,EAAE2rB,SAASpuB,GAAGnB,EAAEuC,EAAEK,KAAK5C,GAAGA,EAAE0vB,OAAO9rB,EAAE5D,EAAEo3C,MAAMxzC,EAAEwzC,MAAM,CAAC,CAAC,CAAC,OAAOjwC,CAAC,EAAEixC,GAAGF,GAAGG,GAAG,WAAW,SAAS9zC,EAAEA,EAAE7D,QAAG,IAASA,IAAIA,EAAE,CAAA,GAAI6M,KAAKujB,QAAQpwB,EAAE6M,KAAK+qC,SAASF,GAAG7zC,EAAE7D,EAAE,CAAC,OAAO6D,EAAE/D,UAAU+3C,QAAQ,WAAW,MAAM,IAAI9oB,MAAM,8BAA8B,EAAElrB,CAAC,CAA1K,GAA8Ki0C,GAAGH,GAAG,SAASI,GAAGl0C,EAAE7D,EAAEc,EAAEoC,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAIuD,EAAEoG,KAAKpG,EAAExC,EAAEJ,GAAG,EAAE4C,EAAE1F,EAAEf,GAAG,EAAEyG,EAAEE,EAAE7F,GAAG,EAAE2F,EAAEG,EAAE,EAAEH,EAAEhG,EAAEyC,GAAG,GAAGuD,EAAE8uB,GAAGryB,EAAEnB,OAAO0E,EAAEuxC,OAAO,EAAEvxC,EAAE0sC,IAAI,EAAE1sC,EAAEqwC,MAAM,EAAErwC,EAAEwxC,OAAO,EAAExxC,EAAE4xB,GAAG,KAAK5xB,EAAEyO,GAAG,KAAKzO,EAAE8xB,GAAG,KAAK9xB,EAAE2O,GAAG,KAAK3O,EAAEyxC,KAAK,EAAEzxC,EAAE0xC,KAAK,CAAC,CAAC,SAASC,GAAGv0C,EAAE7D,EAAEc,GAAGA,EAAE+C,EAAE8C,GAAG3G,EAAE6D,EAAE+C,GAAG5G,EAAE6D,EAAEgrB,SAAS7pB,SAAS,SAASnB,GAAGu0C,GAAGv0C,EAAE7D,EAAEc,EAAG,GAAE,CAAC,SAASu3C,GAAGx0C,EAAE7D,GAAG,IAAIc,EAAEd,EAAE6D,EAAE8C,EAAE9C,EAAE+C,EAAE,OAAO/C,EAAEgrB,SAAS7pB,SAAS,SAASnB,GAAG/C,EAAEgqB,KAAK6F,IAAI0nB,GAAGx0C,EAAE7D,GAAGc,EAAG,IAAGA,CAAC,CAAC,SAASw3C,GAAGz0C,EAAE7D,GAAGo4C,GAAGv0C,GAAGw0C,GAAGx0C,EAAE7D,GAAGA,EAAE,CAAC,SAASu4C,GAAG10C,EAAE7D,EAAEc,GAAGA,EAAEd,EAAE2G,EAAE9C,EAAE+C,EAAE5G,EAAE4G,EAAE/C,EAAE+C,EAAE/C,EAAEpD,EAAEuE,SAAO,SAAWnB,EAAEX,GAAGq1C,GAAG10C,EAAE7D,EAAE6uB,SAAS3rB,GAAGpC,EAAG,GAAE,CAAC,SAAS03C,GAAG30C,EAAE7D,EAAEc,QAAG,IAASA,IAAIA,EAAE,GAAGd,GAAG6D,EAAE+C,EAAE9F,EAAEA,GAAG+C,EAAEg6B,QAAQh6B,EAAE8C,EAAE7F,EAAEA,GAAG+C,EAAEi6B,QAAQj6B,EAAEgrB,SAAS7pB,kBAAkBnB,GAAG20C,GAAG30C,EAAE7D,EAAEc,EAAG,GAAE,CAACi3C,GAAGU,SAAS,SAAS50C,EAAE7D,GAAG,IAAI6D,EAAE,OAAO,KAAK,IAAI/C,EAAE,GAAG,OAAO+C,EAAEgrB,SAAS7pB,kBAAkBnB,GAAG/C,EAAEoB,KAAK61C,GAAGU,SAAS50C,EAAE7D,GAAI,IAAGA,EAAE,IAAI+3C,GAAGl0C,EAAEi6B,OAAOj6B,EAAEg6B,MAAMh6B,EAAE+C,EAAE9F,GAAG,IAAIi3C,GAAGl0C,EAAEg6B,MAAMh6B,EAAEi6B,OAAOj6B,EAAE8C,EAAE7F,EAAE,EAAE,IAAI43C,GAAGlB,GAAGmB,GAAG,SAAS90C,EAAE7D,GAAG,IAAI,IAAIc,EAAE43C,GAAG70C,EAAE4yC,KAAKz2C,GAAE,GAAIkD,EAAEw1C,GAAG70C,EAAE4yC,KAAKz2C,GAAE,GAAIyG,EAAE5C,EAAEgrB,SAAS9sB,OAAOF,EAAEipB,KAAKmlB,MAAMxpC,EAAE,GAAGpD,EAAErD,EAAE44C,SAAS,SAAS/0C,EAAE7D,GAAG,OAAOA,EAAE6B,EAAE,QAAQ,MAAM,EAAEnB,EAAE,EAAEA,EAAE+F,EAAE/F,IAAI,CAAC,IAAID,EAAEoD,EAAEgrB,SAASnuB,GAAG,UAAU2C,EAAE5C,EAAEC,GAAGwC,EAAE2rB,SAAS3sB,KAAKzB,GAAGK,EAAE+tB,SAAS3sB,KAAKzB,EAAE,CAAC,OAAOK,EAAE+1C,mBAAmBhzC,GAAGA,EAAE+yC,WAAW/yC,EAAEg1C,KAAK,OAAQ,IAAG31C,EAAE2zC,mBAAmBhzC,GAAGA,EAAE+yC,WAAW/yC,EAAEg1C,KAAK,QAAS,IAAG,CAAC3B,KAAKp2C,EAAEg4C,MAAM51C,EAAE,EAAE61C,GAAGJ,GAAGK,GAAG,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,KAAKC,GAAG,CAAC,KAAK,KAAK,KAAKC,GAAGF,GAAG,GAAGG,GAAG,SAASt1C,EAAE7D,EAAEc,GAAG,IAAIoC,EAAElD,EAAEo5C,WAAWF,GAAG,GAAGl5C,EAAEq5C,aAAa,SAASx1C,GAAG,OAAOo1C,GAAGjP,QAAQnmC,IAAI,CAAC,CAAnC,CAAqCX,GAAGA,IAAI,IAAI81C,GAAGhP,QAAQ9mC,GAAG,MAAM,IAAIimB,UAAU,sBAAsBjmB,GAAG,GAAGA,IAAI81C,GAAG,GAAGl4C,EAAE+C,EAAE7D,QAAQ,GAAGkD,IAAI81C,GAAG,GAAGl4C,EAAE+C,EAAE7D,GAAG6D,EAAEyzC,kBAAkB,GAAGp0C,IAAI81C,GAAG,GAAGl4C,EAAE+C,EAAE7D,QAAQ,GAAGkD,IAAI81C,GAAG,GAAGl4C,EAAE+C,EAAE7D,GAAG6D,EAAE0zC,kBAAkB,GAAGr0C,IAAI81C,GAAG,IAAI91C,IAAI81C,GAAG,GAAG,CAAC,IAAIvyC,EAAEsyC,GAAGl1C,EAAE7D,GAAG6B,EAAE4E,EAAEywC,KAAK7zC,EAAEoD,EAAEqyC,MAAMh4C,EAAEe,EAAE7B,GAAGc,EAAEuC,EAAErD,GAAGA,EAAEq5C,aAAax3C,EAAEy1C,aAAaz1C,EAAE01C,aAAal0C,EAAEg0C,UAAUx1C,EAAE+E,EAAEvD,EAAEuD,EAAE/E,EAAE8E,EAAEtD,EAAEsD,GAAG9C,EAAE+C,EAAE/E,EAAE+E,EAAE/C,EAAE8C,EAAEtD,EAAEsD,EAAE,IAAIjG,EAAEmD,EAAEozC,iBAAiBj3C,EAAEq5C,aAAa34C,EAAE02C,IAAI,GAAGvzC,EAAEwzC,UAAU,GAAG32C,EAAE02C,KAAK12C,EAAEw2C,KAAK,GAAGrzC,EAAEwzC,WAAW32C,EAAEw2C,KAAK,EAAE,CAAC,IAAIz2C,EAAET,EAAEs5C,UAAU,YAAO,IAAS74C,IAAIA,GAAE,GAAIA,GAAGoD,EAAEwzC,YAAYxzC,EAAE+C,EAAE/C,EAAEg6B,MAAM,EAAEh6B,EAAEsyC,QAAQtyC,EAAE8C,EAAE9C,EAAEi6B,OAAO,EAAEj6B,EAAEwyC,OAAOxyC,CAAC,EAAE,SAAS01C,GAAG11C,EAAE7D,GAAG,OAAOu5C,GAAG15C,OAAO25C,eAAe35C,OAAO25C,eAAexnB,OAAO,SAASnuB,EAAE7D,GAAG,OAAO6D,EAAE+qC,UAAU5uC,EAAE6D,CAAC,EAAE01C,GAAG11C,EAAE7D,EAAE,CAAC,IAAIy5C,GAAG,SAAS51C,EAAE7D,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAIc,EAAEd,EAAEq5C,aAAa,SAASn2C,EAAEW,GAAG,IAAIA,EAAE0xB,IAAI1xB,EAAE00B,GAAG10B,EAAEA,EAAEuR,GAAGvR,EAAEA,EAAEq0C,KAAKr0C,EAAEs0C,KAAK,IAAIt0C,EAAE00B,GAAG10B,EAAEpD,EAAE,GAAG83B,GAAG10B,EAAEq0C,KAAKr0C,EAAEpD,EAAE,GAAGy3C,KAAKr0C,EAAEuR,GAAGvR,EAAEpD,EAAEoD,EAAE0xB,GAAG,GAAGngB,GAAGvR,EAAEs0C,KAAKt0C,EAAEpD,EAAEoD,EAAE0xB,GAAG,GAAG4iB,KAAK,CAAC,SAAS1xC,EAAE5C,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,EAAEW,EAAEpD,EAAET,EAAE,GAAGyG,EAAEvD,EAAEiwC,IAAI7zC,EAAEuE,EAAEpD,EAAET,GAAG0G,EAAEpH,EAAE6zC,IAAI,OAAOjwC,GAAG,OAAO5D,GAAG,CAACmB,EAAEyC,GAAGpC,EAAEqgC,MAAMrgC,EAAEA,EAAE44C,KAAK,IAAI/5C,EAAE8G,EAAEvD,EAAE80C,OAAO90C,EAAEe,GAAGyC,EAAEpH,EAAE04C,QAAQr4C,EAAE,IAAI+G,GAAG/G,EAAEkC,EAAEgC,EAAE7D,EAAEc,EAAEkmB,MAAMrnB,IAAI,IAAIoB,EAAEN,EAAEyC,GAAGrC,EAAEJ,EAAEnB,GAAGyB,GAAGF,GAAG,QAAQqC,EAAExC,EAAEwC,MAAMuD,GAAGvD,EAAEiwC,KAAKpyC,GAAGF,GAAG,QAAQvB,EAAE+D,EAAE/D,MAAMoH,GAAGpH,EAAE6zC,IAAI,EAAEjwC,GAAG5D,EAAE,SAASuE,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE5C,EAAEpD,EAAE,GAAG83B,GAAG9xB,EAAE4xB,GAAGv3B,EAAE,IAAIe,EAAEqB,EAAEpC,EAAEqyC,IAAItvC,EAAEpD,EAAE,GAAGy3C,KAAKzxC,EAAE0sC,KAAKtxC,EAAE4E,EAAEuxC,QAAQn2C,EAAEgC,EAAEpD,EAAE,GAAG83B,GAAG10B,EAAEpD,EAAET,GAAGu4B,GAAG10B,EAAEpD,EAAE,GAAGy3C,KAAKr0C,EAAEpD,EAAET,GAAGk4C,IAAI,CAAnI,CAAqIr0C,EAAE7D,EAAEV,EAAEoH,GAAGxD,IAAI5D,GAAG,SAASuE,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE5C,EAAEpD,EAAET,GAAGoV,GAAG3O,EAAEyO,GAAGpU,EAAE,IAAIe,EAAEqB,EAAEpC,EAAEqyC,IAAItvC,EAAEpD,EAAET,GAAGm4C,KAAK1xC,EAAE0sC,KAAKtxC,EAAE4E,EAAEuxC,QAAQn2C,EAAEgC,EAAEpD,EAAET,GAAGoV,GAAGvR,EAAEpD,EAAET,EAAE,GAAGoV,GAAGvR,EAAEpD,EAAET,GAAGm4C,KAAKt0C,EAAEpD,EAAET,EAAE,GAAGm4C,IAAI,CAAvI,CAAyIt0C,EAAE7D,EAAEkD,EAAEuD,EAAE,CAAC,SAAS5E,EAAEgC,EAAE7D,EAAEc,EAAEoC,GAAGW,EAAEpD,EAAET,GAAGmzC,KAAKjwC,EAAEW,EAAEpD,EAAET,GAAGk4C,MAAMh1C,EAAEW,EAAEpD,EAAET,GAAGm4C,MAAMj1C,EAAE,SAASW,EAAE7D,EAAEc,EAAEoC,GAAG,GAAGpC,IAAId,EAAE,EAAE,CAAC,IAAIyG,EAAEzG,EAAEc,EAAE+C,EAAEpD,EAAEK,EAAE,GAAGg2C,OAAO5zC,EAAEuD,EAAE5C,EAAEpD,EAAET,GAAG82C,OAAO5zC,EAAEuD,EAAE5C,EAAEpD,EAAET,GAAGi4C,QAAQ/0C,EAAEA,EAAEuD,CAAC,CAAC,CAAnG,CAAqG5C,EAAE7D,EAAEc,EAAEoC,EAAE,CAAC,SAASG,EAAEQ,GAAG,OAAO,IAAIA,EAAE0xB,GAAG1xB,EAAEw0B,GAAGx0B,EAAEpD,EAAE,EAAE,CAAC,SAASC,EAAEmD,GAAG,OAAO,IAAIA,EAAE0xB,GAAG1xB,EAAEqR,GAAGrR,EAAEpD,EAAEoD,EAAE0xB,GAAG,EAAE,CAAC,SAAS90B,EAAEoD,GAAG,OAAOA,EAAE8C,EAAE9C,EAAE9C,CAAC,CAAC,SAASzB,EAAEuE,EAAE7D,EAAEc,GAAG,KAAK,OAAOA,GAAG+C,GAAG/C,EAAEqgC,KAAKrgC,EAAEA,EAAE44C,IAAI,MAAM,CAACvY,IAAIt9B,EAAEmjB,MAAMhnB,EAAE05C,IAAI54C,EAAE,CAAC03C,GAAG30C,EAAE/C,GAAG,IAAI4F,EAAEqxC,GAAGU,SAAS50C,EAAE/C,GAAG,OAAO,SAAS+C,EAAE7D,GAAG,GAAG,IAAIA,EAAEu1B,GAAG,CAAC1xB,EAAE7D,EAAES,EAAE,IAAI,IAAI,IAAIK,EAAExB,EAAEmB,EAAET,EAAES,EAAE,GAAG83B,IAAI,EAAE,MAAM12B,EAAE,EAAEA,EAAE7B,EAAEu1B,KAAK1zB,EAAE,CAACgC,EAAE7D,EAAES,EAAEoB,IAAI,IAAIwB,EAAE5C,EAAET,EAAES,EAAEoB,GAAGuT,IAAI3O,EAAEzG,EAAE6B,EAAEf,GAAGA,EAAExB,EAAE+D,EAAExB,EAAEf,EAAE,EAAE,SAAS+C,GAAGA,EAAEm0C,QAAQn0C,EAAEpD,EAAE,GAAGu3C,OAAOn0C,EAAEpD,EAAE,GAAG0yC,IAAItvC,EAAEpD,EAAEoD,EAAE0xB,GAAG,GAAG4d,IAAItvC,EAAEpD,EAAEoD,EAAE0xB,GAAG,GAAGyiB,OAAOn0C,EAAEpD,EAAEoD,EAAE0xB,GAAG,GAAGtxB,GAAG,EAAEJ,EAAEI,EAAE,CAAC,CAAxG,CAA0GjE,GAAGkD,EAAElD,EAAE,MAAMkD,EAAElD,EAAE,CAAnQ,CAAqQ0G,GAAG,SAAS7C,EAAE7D,EAAEc,GAAGA,GAAGd,EAAEmzC,IAAInzC,EAAE4G,EAAE5G,EAAEg4C,OAAOl3C,EAAE,SAAS+C,GAAG,IAAI,IAAI7D,EAAE,EAAEc,EAAE,EAAEoC,EAAE,EAAEA,EAAEW,EAAE0xB,GAAGryB,IAAIpC,IAAId,GAAG6D,EAAEpD,EAAEyC,GAAG4zC,OAAOjzC,EAAEpD,EAAEyC,GAAG+0C,OAAOp0C,EAAEpD,EAAEyC,GAAGiwC,KAAKryC,CAAC,CAA3F,CAA6Fd,GAAG,IAAI,IAAIkD,EAAE,EAAEA,EAAElD,EAAEu1B,GAAGryB,IAAIW,EAAE7D,EAAES,EAAEyC,GAAGpC,EAAE,CAA1K,CAA4K4F,EAAE,GAAG6xC,GAAG7xC,EAAE7C,EAAE/C,GAAGw3C,GAAGz0C,EAAE/C,GAAG+C,CAAC,EAAE81C,GAAGR,GAAGS,GAAGxE,GAAGyE,GAAG,SAASh2C,GAAG,IAAI7D,EAAEc,EAAE,SAASoC,IAAI,OAAOW,EAAEvB,MAAMuK,KAAK/K,YAAY+K,IAAI,CAAC,OAAO/L,EAAE+C,GAAG7D,EAAEkD,GAAGpD,UAAUD,OAAOgnB,OAAO/lB,EAAEhB,WAAWE,EAAEF,UAAUqT,YAAYnT,EAAEu5C,GAAGv5C,EAAEc,GAAGoC,EAAEpD,UAAU+3C,QAAQ,WAAW,OAAO8B,GAAG9sC,KAAK+qC,SAAS/qC,KAAKujB,QAAQqpB,GAAG,EAAEv2C,CAAC,CAAxO,CAA0O40C,IAAIgC,GAAG,GAA2EC,GAAG3E,GAAG,SAAS4E,GAAGn2C,EAAE7D,QAAG,IAASA,IAAIA,EAAE,IAAI,IAAIc,EAAE+L,KAAK/L,EAAE8F,EAAE9F,EAAE6F,EAAE,EAAE7F,EAAEm5C,UAAUn5C,EAAEo5C,WAAW,KAAKp5C,EAAEg9B,OAAO,EAAEh9B,EAAE+tB,SAAS7uB,CAAC,CAAC,IAAIm6C,GAAG,CAACd,cAAa,EAAGe,QAAQ,GAAGC,SAAS,GAAGC,QAAQ,IAAIC,WAAW,IAAI,SAASC,GAAG32C,EAAE7D,EAAEc,GAAGA,GAAGd,EAAE4G,EAAE/C,EAAE+C,EAAE5G,EAAE2G,EAAE9C,EAAE8C,IAAI3G,EAAE4G,EAAE/C,EAAE8C,EAAE3G,EAAE2G,EAAE9C,EAAE+C,GAAG/C,EAAEgrB,SAAS7pB,SAAO,SAAWnB,EAAEX,GAAGs3C,GAAG32C,EAAE7D,EAAE6uB,SAAS3rB,GAAGpC,EAAG,GAAE,CAAC,SAAS25C,GAAG52C,EAAE7D,GAAG,OAAOy6C,GAAG56C,OAAO25C,eAAe35C,OAAO25C,eAAexnB,OAAO,SAASnuB,EAAE7D,GAAG,OAAO6D,EAAE+qC,UAAU5uC,EAAE6D,CAAC,EAAE42C,GAAG52C,EAAE7D,EAAE,CAAC,IAAI06C,GAAG,SAAS72C,EAAE7D,QAAG,IAASA,IAAIA,EAAE,IAAIA,EAAE+5C,GAAGh1C,OAAO,CAAE,EAACo1C,GAAGn6C,GAAG,IAAIc,EAAEoC,EAAE,EAAMuD,EAAE,SAAS5C,EAAE7D,GAAG,IAAIA,EAAE,OAAO,KAAKA,EAAE69B,MAAM,EAAE79B,EAAE02C,OAAO12C,EAAE02C,MAAMxzC,IAAIA,EAAElD,EAAE02C,OAAO,IAAI51C,EAAEd,EAAE6uB,SAASpoB,EAAE3F,EAAEiB,OAAOF,EAAE,IAAIm4C,GAAGh6C,EAAE89B,OAAO,IAAI,OAAOh9B,EAAEkE,SAAO,SAAWhF,EAAEc,GAAG,IAAIoC,EAAEW,EAAE7D,GAAG6B,EAAEgtB,SAAS3sB,KAAKgB,GAAG,IAAIpC,IAAIe,EAAEo4C,UAAU/2C,GAAGpC,IAAI2F,EAAE,IAAI5E,EAAEq4C,WAAWh3C,EAAG,IAAGrB,EAAE84C,WAAW36C,EAAE6B,EAAEutB,OAAOpvB,EAAEovB,SAASvtB,CAAC,CAAlR,CAAoRgC,GAAG,OAAO,SAASA,EAAE7D,GAAG,GAAGA,EAAEovB,QAAQ,IAAIpvB,EAAE6uB,SAAS9sB,OAAO/B,EAAE46C,aAAa13C,MAAM,CAAC,IAAIpC,EAAEd,EAAE6uB,SAASrgB,KAAK,SAASxO,GAAG,OAAO6D,EAAE7D,EAAG,IAAGyG,EAAEqkB,KAAK6F,IAAIruB,MAAM,KAAKxB,GAAGd,EAAE46C,aAAan0C,EAAE,CAAC,CAAC,OAAOzG,EAAE46C,YAAY,CAAzL,CAA2Ln0C,GAAG,SAAS5C,EAAEX,GAAGA,EAAE0D,EAAE1D,EAAE03C,aAAa56C,EAAEs6C,QAAQp3C,EAAEksB,QAAQlsB,EAAEyD,EAAE,EAAE7F,IAAIoC,EAAEyD,EAAE7F,EAAE6F,EAAE7F,EAAEg9B,OAAO99B,EAAEo6C,QAAQl3C,EAAEy3C,WAAW3rB,SAASluB,EAAE65C,WAAW3rB,SAAS9rB,EAAEyD,GAAG3G,EAAEu6C,aAAaz5C,EAAEoC,IAAIA,EAAE2rB,SAAS7pB,SAAS,SAAShF,GAAG6D,EAAE7D,EAAG,IAAGkD,EAAEyD,GAAGzD,EAAE+2C,UAAUtzC,EAAEzD,EAAEg3C,WAAWvzC,GAAG,EAAE,CAA7O,CAA+OF,GAAG+zC,GAAG/zC,EAAE5C,EAAE7D,EAAEq5C,cAAcx1C,CAAC,EAAEg3C,GAAG1B,GAAG2B,GAAG1F,GAAG2F,GAAG,SAASl3C,GAAG,IAAI7D,EAAEc,EAAE,SAASoC,IAAI,OAAOW,EAAEvB,MAAMuK,KAAK/K,YAAY+K,IAAI,CAAC,OAAO/L,EAAE+C,GAAG7D,EAAEkD,GAAGpD,UAAUD,OAAOgnB,OAAO/lB,EAAEhB,WAAWE,EAAEF,UAAUqT,YAAYnT,EAAEy6C,GAAGz6C,EAAEc,GAAGoC,EAAEpD,UAAU+3C,QAAQ,WAAW,IAAIh0C,EAAEgJ,KAAK,OAAOhJ,EAAE+zC,SAAS/Z,MAAM,EAAEgd,GAAGh3C,EAAE+zC,SAAS/zC,EAAEusB,QAAQsqB,GAAG,EAAEx3C,CAAC,CAAhQ,CAAkQ40C,IAAIkD,GAAG,CAAA,EAA2EC,GAAG7F,GAAG,SAAS8F,GAAGr3C,EAAE7D,GAAG,OAAOk7C,GAAGr7C,OAAO25C,eAAe35C,OAAO25C,eAAexnB,OAAO,SAASnuB,EAAE7D,GAAG,OAAO6D,EAAE+qC,UAAU5uC,EAAE6D,CAAC,EAAEq3C,GAAGr3C,EAAE7D,EAAE,CAAC,IAAIm7C,GAAGrD,GAAGsD,GAAG,SAASv3C,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE,KAAK5C,EAAEgzC,UAAU,SAAShzC,IAAI,SAASA,EAAE7D,EAAEc,EAAEoC,EAAEuD,GAAG,IAAI5E,EAAE,mBAAmBf,EAAEA,EAAE+C,GAAG/C,EAAE+C,EAAE6yC,MAAM,IAAIxzC,EAAE,IAAI,GAAGW,EAAEqgC,KAAKrgC,EAAEmrB,OAAOH,SAAS,GAAGqV,GAAG,OAAOrgC,EAAE+C,GAAG/E,OAAOgC,EAAE8C,EAAE3G,EAAEA,EAAE2G,EAAE,EAAE,CAAC,MAAM9C,GAAI,CAAA,GAAGA,EAAE+C,GAAG/E,EAAE7B,GAAG,GAAG6D,EAAE8C,EAAE3G,EAAE2G,EAAEs0C,GAAGvF,UAAU11C,EAAE6D,EAAE4C,GAAGzG,EAAEgvB,QAAQnrB,EAAEmrB,OAAOkV,KAAKlkC,EAAEgvB,OAAOkV,GAAG,CAAC,IAAI7gC,EAAErD,EAAEgvB,OAAOtuB,EAAE2C,EAAEsD,EAAEs0C,GAAGvF,UAAUryC,EAAEQ,EAAE4C,GAAG5C,EAAE8C,EAAEjG,EAAEmD,EAAE8C,EAAEjG,EAAEmD,EAAE8C,CAAC,OAAO9C,EAAE8C,EAAE,CAAC,CAAzS,CAA2S9C,EAAE4C,EAAEzG,EAAEc,EAAEoC,GAAGuD,EAAE5C,CAAE,GAAE,EAAEw3C,GAAG1C,GAAG2C,GAAGlG,GAAGmG,GAAG,CAAC,KAAK,KAAK,KAAKC,GAAGD,GAAG,GAAGE,GAAG,SAAS53C,GAAG,IAAI7D,EAAEc,EAAE,SAASoC,IAAI,OAAOW,EAAEvB,MAAMuK,KAAK/K,YAAY+K,IAAI,CAAC,OAAO/L,EAAE+C,GAAG7D,EAAEkD,GAAGpD,UAAUD,OAAOgnB,OAAO/lB,EAAEhB,WAAWE,EAAEF,UAAUqT,YAAYnT,EAAEk7C,GAAGl7C,EAAEc,GAAGoC,EAAEpD,UAAU+3C,QAAQ,WAAW,IAAIh0C,EAAEgJ,KAAKujB,QAAQpwB,EAAE6M,KAAK+qC,SAAS/zC,EAAEw1C,cAAa,EAAG,IAAIv4C,EAAE+C,EAAE63C,OAAOx4C,OAAE,IAASpC,EAAE,GAAGA,EAAE2F,EAAE5C,EAAE83C,QAAQ95C,OAAE,IAAS4E,GAAGA,EAAEpD,EAAEQ,EAAEu1C,UAAU14C,OAAE,IAAS2C,EAAEm4C,GAAGn4C,EAAE5C,EAAEoD,EAAEyiC,MAAM,GAAG5lC,IAAI,IAAI66C,GAAGvR,QAAQtpC,GAAG,MAAM,IAAIyoB,UAAU,sBAAsBzoB,GAAG,GAAGA,IAAI66C,GAAG,GAAGH,GAAGp7C,EAAEkD,EAAErB,EAAEpB,QAAQ,GAAGC,IAAI66C,GAAG,GAAGH,GAAGp7C,EAAEkD,EAAErB,EAAEpB,GAAGT,EAAEs3C,kBAAkB,GAAG52C,IAAI66C,GAAG,GAAG,CAAC,IAAIj8C,EAAE+7C,GAAGr7C,EAAE6D,GAAG6C,EAAEpH,EAAE43C,KAAKv3C,EAAEL,EAAEw5C,MAAMsC,GAAG10C,EAAExD,EAAErB,EAAEpB,GAAGiG,EAAE4wC,aAAa8D,GAAGz7C,EAAEuD,EAAErB,EAAEpB,GAAG,IAAIM,EAAE2F,EAAEuwC,iBAAiBt3C,EAAE03C,UAAUt2C,EAAE88B,MAAM,GAAG79B,EAAE4G,EAAEjH,EAAEiH,EAAE5G,EAAE69B,MAAM,CAAC,CAAC,OAAO79B,CAAC,EAAEkD,CAAC,CAA7oB,CAA+oBi4C,IAAIS,GAAG,GAA2EC,GAAGzG,GAAG,SAAS0G,GAAGj4C,EAAE7D,GAAG,IAAIc,EAAE,EAAE,OAAO+C,EAAEgrB,SAAS9sB,OAAO8B,EAAEgrB,SAAS7pB,SAAS,SAASnB,GAAG/C,GAAGg7C,GAAGj4C,EAAE7D,EAAG,IAAGc,EAAE+C,EAAEi6B,OAAOj6B,EAAEk4C,YAAY/7C,EAAEg8C,cAAcn4C,EAAE4yC,MAAM5yC,EAAEo4C,YAAYnxB,KAAKC,IAAIlnB,EAAEi6B,OAAOh9B,GAAG,EAAE+C,EAAEk4C,YAAYl4C,EAAEo4C,WAAW,CAAC,SAASC,GAAGr4C,GAAG,IAAI7D,EAAE6D,EAAEgrB,SAAS/tB,EAAEd,EAAE+B,OAAO,GAAGjB,EAAE,CAACd,EAAEgF,SAAO,SAAWnB,GAAGq4C,GAAGr4C,EAAG,IAAG,IAAIX,EAAElD,EAAE,GAAGyG,EAAEzG,EAAEc,EAAE,GAAGe,EAAE4E,EAAEE,EAAEzD,EAAEyD,EAAEF,EAAEq3B,OAAOz6B,EAAE,EAAE,GAAGrD,EAAEgF,kBAAkBnB,GAAGR,GAAGQ,EAAEo4C,WAAY,IAAGp6C,EAAEgC,EAAEi6B,OAAOj6B,EAAE8C,EAAEzD,EAAEyD,EAAE9E,EAAE,EAAEgC,EAAEi6B,OAAO,OAAO,GAAG,IAAI99B,EAAE+B,QAAQ8B,EAAEi6B,OAAOz6B,EAAE,CAAC,IAAI3C,EAAEmD,EAAE8C,GAAG9C,EAAEi6B,OAAOj8B,GAAG,EAAEqB,EAAEyD,EAAE3G,EAAEgF,SAAS,SAASnB,GAAGA,EAAEwzC,UAAU,EAAE32C,EAAG,GAAE,MAAMmD,EAAE8C,GAAGzD,EAAEyD,EAAEzD,EAAE46B,OAAO,EAAEr3B,EAAEE,EAAEF,EAAEq3B,OAAO,GAAG,EAAEj6B,EAAEi6B,OAAO,CAAC,CAAC,CAAC,IAAIqe,GAAG,CAACH,cAAc,WAAW,OAAO,CAAC,GAAG,SAASI,GAAGv4C,EAAE7D,GAAG,OAAOo8C,GAAGv8C,OAAO25C,eAAe35C,OAAO25C,eAAexnB,OAAO,SAASnuB,EAAE7D,GAAG,OAAO6D,EAAE+qC,UAAU5uC,EAAE6D,CAAC,EAAEu4C,GAAGv4C,EAAE7D,EAAE,CAAC,IAAIq8C,GAAG,SAASx4C,EAAE7D,QAAG,IAASA,IAAIA,EAAE,CAAE,GAAEA,EAAE67C,GAAG92C,OAAO,CAAE,EAACo3C,GAAGn8C,GAAG6D,EAAEmrB,OAAO,CAACpoB,EAAE,EAAEi3B,MAAM,EAAEC,OAAO,EAAEn3B,EAAE,GAAG9C,EAAEmzC,qBAAqBnzC,GAAGA,EAAE+C,EAAE/C,EAAEmrB,OAAOpoB,EAAE/C,EAAEmrB,OAAO6O,KAAM,IAAGh6B,EAAEmrB,OAAO,KAAK8sB,GAAGj4C,EAAE7D,GAAG6D,EAAEy4C,OAAO,EAAEz4C,EAAE8C,EAAE9C,EAAEo4C,YAAY,EAAEp4C,EAAEi6B,OAAO,EAAEj6B,EAAEgzC,UAAU,SAAShzC,GAAG,IAAI7D,EAAE6D,EAAEgrB,SAAS/tB,EAAEd,EAAE+B,OAAO,GAAGjB,EAAE,CAAC,IAAIoC,EAAElD,EAAE,GAAG,GAAGkD,EAAEo5C,OAAOz4C,EAAEy4C,OAAOz4C,EAAEk4C,YAAY,IAAIj7C,EAAEoC,EAAEyD,EAAE9C,EAAE8C,EAAE9C,EAAEi6B,OAAO,EAAE56B,EAAE46B,OAAO,MAAM,CAAC56B,EAAEyD,EAAEzD,EAAEo5C,OAAOp5C,EAAE+4C,YAAY,EAAE/4C,EAAE46B,OAAO,EAAE,IAAI,IAAIr3B,EAAE,EAAEA,EAAE3F,EAAE2F,IAAI,CAAC,IAAI5E,EAAE7B,EAAEyG,GAAG5E,EAAEy6C,OAAOt8C,EAAEyG,EAAE,GAAG61C,OAAOt8C,EAAEyG,EAAE,GAAGw1C,YAAYp6C,EAAE8E,EAAE9E,EAAEy6C,OAAOz6C,EAAEo6C,YAAY,EAAEp6C,EAAEi8B,OAAO,CAAC,CAAC,CAAC,CAAE,IAAGoe,GAAGr4C,EAAE,EAAE04C,GAAGpD,GAAGqD,GAAGpH,GAAGqH,GAAG,SAAS54C,GAAG,IAAI7D,EAAEc,EAAE,SAASoC,IAAI,OAAOW,EAAEvB,MAAMuK,KAAK/K,YAAY+K,IAAI,CAAC,OAAO/L,EAAE+C,GAAG7D,EAAEkD,GAAGpD,UAAUD,OAAOgnB,OAAO/lB,EAAEhB,WAAWE,EAAEF,UAAUqT,YAAYnT,EAAEo8C,GAAGp8C,EAAEc,GAAGoC,EAAEpD,UAAU+3C,QAAQ,WAAW,OAAO0E,GAAG1vC,KAAK+qC,SAAS/qC,KAAKujB,QAAQisB,GAAG,EAAEn5C,CAAC,CAAxO,CAA0O40C,IAAI4E,GAAG,CAAA,EAA8ElwC,GAAG,CAACmwC,WAA1+I,SAAS94C,EAAE7D,GAAG,OAAOA,EAAE45C,GAAG70C,OAAO,CAAA,EAAG+0C,GAAG95C,GAAG,IAAI65C,GAAGh2C,EAAE7D,GAAG63C,SAAS,EAAy7I+E,WAAj7F,SAAS/4C,EAAE7D,GAAG,OAAOA,EAAE86C,GAAG/1C,OAAO,CAAE,EAACi2C,GAAGh7C,GAAG,IAAI+6C,GAAGl3C,EAAE7D,GAAG63C,SAAS,EAAg4FgF,SAAhrD,SAASh5C,EAAE7D,GAAG,OAAOA,EAAEs7C,GAAGv2C,OAAO,CAAA,EAAG62C,GAAG57C,GAAG,IAAIy7C,GAAG53C,EAAE7D,GAAG63C,SAAS,EAA6nDiF,QAAhH,SAASj5C,EAAE7D,GAAG,OAAOA,EAAEw8C,GAAGz3C,OAAO,CAAE,EAAC23C,GAAG18C,GAAG,IAAIy8C,GAAG54C,EAAE7D,GAAG63C,SAAS,IAAqnB,IAAIkF,GAAG,CAAC35C,MAAM,QAAQ,SAAS45C,KAAK,IAAI,IAAIn5C,EAAE7D,EAAE,EAAEc,EAAEgB,UAAUC,OAAOmB,EAAE,CAAE,EAAClD,EAAEc,IAAId,EAAE,CAAC,KAAK6D,EAAE/B,UAAU9B,GAAG,KAAK6D,KAAKX,GAAG,QAAQkL,KAAKvK,GAAG,MAAM,IAAIkrB,MAAM,iBAAiBlrB,GAAGX,EAAEW,GAAG,EAAE,CAAC,OAAO,IAAIo5C,GAAG/5C,EAAE,CAAC,SAAS+5C,GAAGp5C,GAAGgJ,KAAKhG,EAAEhD,CAAC,CAAC,SAASq5C,GAAGr5C,EAAE7D,GAAG,IAAI,IAAIc,EAAEoC,EAAE,EAAEuD,EAAE5C,EAAE9B,OAAOmB,EAAEuD,IAAIvD,EAAE,IAAIpC,EAAE+C,EAAEX,IAAIslB,OAAOxoB,EAAE,OAAOc,EAAEsC,KAAK,CAAC,SAAS+5C,GAAGt5C,EAAE7D,EAAEc,GAAG,IAAI,IAAIoC,EAAE,EAAEuD,EAAE5C,EAAE9B,OAAOmB,EAAEuD,IAAIvD,EAAE,GAAGW,EAAEX,GAAGslB,OAAOxoB,EAAE,CAAC6D,EAAEX,GAAG65C,GAAGl5C,EAAEA,EAAEsC,MAAM,EAAEjD,GAAG+sB,OAAOpsB,EAAEsC,MAAMjD,EAAE,IAAI,KAAK,CAAC,OAAO,MAAMpC,GAAG+C,EAAE3B,KAAK,CAACsmB,KAAKxoB,EAAEoD,MAAMtC,IAAI+C,CAAC,CAACo5C,GAAGn9C,UAAUk9C,GAAGl9C,UAAU,CAACqT,YAAY8pC,GAAGtwC,GAAG,SAAS9I,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAEoG,KAAKhG,EAAEhF,GAAGqB,EAAEuD,GAAG5C,EAAE,IAAIu5C,OAAOxR,MAAM,SAASp9B,KAAG,SAAW3K,GAAG,IAAI7D,EAAE,GAAGc,EAAE+C,EAAEmmC,QAAQ,KAAK,GAAGlpC,GAAG,IAAId,EAAE6D,EAAEsC,MAAMrF,EAAE,GAAG+C,EAAEA,EAAEsC,MAAM,EAAErF,IAAI+C,IAAIX,EAAEnD,eAAe8D,GAAG,MAAM,IAAIkrB,MAAM,iBAAiBlrB,GAAG,MAAM,CAAC1C,KAAK0C,EAAE2kB,KAAKxoB,EAAG,KAAIqD,GAAG,EAAE3C,EAAEmB,EAAEE,OAAO,KAAKD,UAAUC,OAAO,GAAG,CAAC,GAAG,MAAM/B,GAAG,mBAAmBA,EAAE,MAAM,IAAI+uB,MAAM,qBAAqB/uB,GAAG,OAAOqD,EAAE3C,GAAG,GAAGI,GAAG+C,EAAEhC,EAAEwB,IAAIlC,KAAKsF,EAAE3F,GAAGq8C,GAAG12C,EAAE3F,GAAG+C,EAAE2kB,KAAKxoB,QAAQ,GAAG,MAAMA,EAAE,IAAIc,KAAK2F,EAAEA,EAAE3F,GAAGq8C,GAAG12C,EAAE3F,GAAG+C,EAAE2kB,KAAK,MAAM,OAAO3b,IAAI,CAAC,OAAOxJ,EAAE3C,GAAG,IAAII,GAAG+C,EAAEhC,EAAEwB,IAAIlC,QAAQL,EAAEo8C,GAAGz2C,EAAE3F,GAAG+C,EAAE2kB,OAAO,OAAO1nB,CAAC,EAAEukB,KAAK,WAAW,IAAIxhB,EAAE,CAAA,EAAG7D,EAAE6M,KAAKhG,EAAE,IAAI,IAAI/F,KAAKd,EAAE6D,EAAE/C,GAAGd,EAAEc,GAAGqF,QAAQ,OAAO,IAAI82C,GAAGp5C,EAAE,EAAE7C,KAAK,SAAS6C,EAAE7D,GAAG,IAAIc,EAAEgB,UAAUC,OAAO,GAAG,EAAE,IAAI,IAAIjB,EAAEoC,EAAEuD,EAAE,IAAItE,MAAMrB,GAAGe,EAAE,EAAEA,EAAEf,IAAIe,EAAE4E,EAAE5E,GAAGC,UAAUD,EAAE,GAAG,IAAIgL,KAAKhG,EAAE9G,eAAe8D,GAAG,MAAM,IAAIkrB,MAAM,iBAAiBlrB,GAAG,IAAIhC,EAAE,EAAEf,GAAGoC,EAAE2J,KAAKhG,EAAEhD,IAAI9B,OAAOF,EAAEf,IAAIe,EAAEqB,EAAErB,GAAGuB,MAAMd,MAAMtC,EAAEyG,EAAE,EAAEnE,MAAM,SAASuB,EAAE7D,EAAEc,GAAG,IAAI+L,KAAKhG,EAAE9G,eAAe8D,GAAG,MAAM,IAAIkrB,MAAM,iBAAiBlrB,GAAG,IAAI,IAAIX,EAAE2J,KAAKhG,EAAEhD,GAAG4C,EAAE,EAAE5E,EAAEqB,EAAEnB,OAAO0E,EAAE5E,IAAI4E,EAAEvD,EAAEuD,GAAGrD,MAAMd,MAAMtC,EAAEc,EAAE,GAAG,IAAIu8C,GAAG,+BAA+BC,GAAG,CAACC,IAAI,6BAA6BC,MAAMH,GAAGI,MAAM,+BAA+BC,IAAI,uCAAuCC,MAAM,iCAAiC,SAASC,GAAG/5C,GAAG,IAAI7D,EAAE6D,GAAG,GAAG/C,EAAEd,EAAEgqC,QAAQ,KAAK,OAAOlpC,GAAG,GAAG,WAAWd,EAAE6D,EAAEsC,MAAM,EAAErF,MAAM+C,EAAEA,EAAEsC,MAAMrF,EAAE,IAAIw8C,GAAGv9C,eAAeC,GAAG,CAAC69C,MAAMP,GAAGt9C,GAAG89C,MAAMj6C,GAAGA,CAAC,CAAC,SAASk6C,GAAGl6C,GAAG,OAAO,WAAW,IAAI7D,EAAE6M,KAAKmxC,cAAcl9C,EAAE+L,KAAKoxC,aAAa,OAAOn9C,IAAIu8C,IAAIr9C,EAAEk+C,gBAAgBD,eAAeZ,GAAGr9C,EAAEuD,cAAcM,GAAG7D,EAAEm+C,gBAAgBr9C,EAAE+C,EAAE,CAAC,CAAC,SAASu6C,GAAGv6C,GAAG,OAAO,WAAW,OAAOgJ,KAAKmxC,cAAcG,gBAAgBt6C,EAAEg6C,MAAMh6C,EAAEi6C,MAAM,CAAC,CAAC,SAASO,GAAGx6C,GAAG,IAAI7D,EAAE49C,GAAG/5C,GAAG,OAAO7D,EAAE89C,MAAMM,GAAGL,IAAI/9C,EAAE,CAAC,SAASs+C,KAAM,CAAA,SAASC,GAAG16C,GAAG,OAAO,MAAMA,EAAEy6C,GAAG,WAAW,OAAOzxC,KAAK2xC,cAAc36C,EAAE,CAAC,CAAC,SAAS46C,KAAK,MAAM,EAAE,CAAC,SAASC,GAAG76C,GAAG,OAAO,MAAMA,EAAE46C,GAAG,WAAW,OAAO5xC,KAAK8xC,iBAAiB96C,EAAE,CAAC,CAAsH,SAAS+6C,GAAG/6C,GAAG,OAAO,WAAW,OAAOgJ,KAAKgyC,QAAQh7C,EAAE,CAAC,CAAC,SAASi7C,GAAGj7C,GAAG,OAAO,SAAS7D,GAAG,OAAOA,EAAE6+C,QAAQh7C,EAAE,CAAC,CAAC,IAAIk7C,GAAG58C,MAAMrC,UAAUo6B,KAAK,SAAS8kB,KAAK,OAAOnyC,KAAKoyC,iBAAiB,CAAC,IAAIC,GAAG/8C,MAAMrC,UAAUisB,OAAO,SAASozB,KAAK,OAAOh9C,MAAMi9C,KAAKvyC,KAAKgiB,SAAS,CAAC,SAASwwB,GAAGx7C,GAAG,OAAO,IAAI1B,MAAM0B,EAAE9B,OAAO,CAAC,SAASu9C,GAAGz7C,EAAE7D,GAAG6M,KAAKmxC,cAAcn6C,EAAEm6C,cAAcnxC,KAAKoxC,aAAap6C,EAAEo6C,aAAapxC,KAAKyuB,MAAM,KAAKzuB,KAAKqgB,QAAQrpB,EAAEgJ,KAAKC,SAAS9M,CAAC,CAAC,SAASu/C,GAAG17C,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAI,IAAIwB,EAAE3C,EAAE,EAAED,EAAET,EAAE+B,OAAOzC,EAAEuC,EAAEE,OAAOrB,EAAEpB,IAAIoB,GAAG2C,EAAErD,EAAEU,KAAK2C,EAAEyJ,SAASjL,EAAEnB,GAAGwC,EAAExC,GAAG2C,GAAGvC,EAAEJ,GAAG,IAAI4+C,GAAGz7C,EAAEhC,EAAEnB,IAAI,KAAKA,EAAED,IAAIC,GAAG2C,EAAErD,EAAEU,MAAM+F,EAAE/F,GAAG2C,EAAE,CAAC,SAASm8C,GAAG37C,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,EAAEwB,GAAG,IAAI3C,EAAED,EAAEnB,EAAEoH,EAAE,IAAI8kC,IAAI7rC,EAAEK,EAAE+B,OAAOhB,EAAEc,EAAEE,OAAOlB,EAAE,IAAIsB,MAAMxC,GAAG,IAAIe,EAAE,EAAEA,EAAEf,IAAIe,GAAGD,EAAET,EAAEU,MAAMG,EAAEH,GAAGpB,EAAE+D,EAAErC,KAAKP,EAAEA,EAAEqM,SAASpM,EAAEV,GAAG,GAAG0G,EAAE0G,IAAI9N,GAAGmH,EAAE/F,GAAGD,EAAEiG,EAAEwG,IAAI5N,EAAEmB,IAAI,IAAIC,EAAE,EAAEA,EAAEK,IAAIL,EAAEpB,EAAE+D,EAAErC,KAAK6C,EAAEhC,EAAEnB,GAAGA,EAAEmB,GAAG,IAAIpB,EAAEiG,EAAEyG,IAAI7N,KAAK4D,EAAExC,GAAGD,EAAEA,EAAEqM,SAASjL,EAAEnB,GAAGgG,EAAElB,OAAOlG,IAAIwB,EAAEJ,GAAG,IAAI4+C,GAAGz7C,EAAEhC,EAAEnB,IAAI,IAAIA,EAAE,EAAEA,EAAEf,IAAIe,GAAGD,EAAET,EAAEU,KAAKgG,EAAEyG,IAAItM,EAAEH,MAAMD,IAAIgG,EAAE/F,GAAGD,EAAE,CAAC,SAASg/C,GAAG57C,GAAG,OAAOA,EAAEiJ,QAAQ,CAAC,SAAS4yC,GAAG77C,GAAG,MAAM,iBAAiBA,GAAG,WAAWA,EAAEA,EAAE1B,MAAMi9C,KAAKv7C,EAAE,CAAC,SAAS87C,GAAG97C,EAAE7D,GAAG,OAAO6D,EAAE7D,GAAG,EAAE6D,EAAE7D,EAAE,EAAE6D,GAAG7D,EAAE,EAAEs5B,GAAG,CAAC,SAASsmB,GAAG/7C,GAAG,OAAO,WAAWgJ,KAAKgzC,gBAAgBh8C,EAAE,CAAC,CAAC,SAASi8C,GAAGj8C,GAAG,OAAO,WAAWgJ,KAAKkzC,kBAAkBl8C,EAAEg6C,MAAMh6C,EAAEi6C,MAAM,CAAC,CAAC,SAASkC,GAAGn8C,EAAE7D,GAAG,OAAO,WAAW6M,KAAKozC,aAAap8C,EAAE7D,EAAE,CAAC,CAAC,SAASkgD,GAAGr8C,EAAE7D,GAAG,OAAO,WAAW6M,KAAKszC,eAAet8C,EAAEg6C,MAAMh6C,EAAEi6C,MAAM99C,EAAE,CAAC,CAAC,SAASogD,GAAGv8C,EAAE7D,GAAG,OAAO,WAAW,IAAIc,EAAEd,EAAEsC,MAAMuK,KAAK/K,WAAW,MAAMhB,EAAE+L,KAAKgzC,gBAAgBh8C,GAAGgJ,KAAKozC,aAAap8C,EAAE/C,EAAE,CAAC,CAAC,SAASu/C,GAAGx8C,EAAE7D,GAAG,OAAO,WAAW,IAAIc,EAAEd,EAAEsC,MAAMuK,KAAK/K,WAAW,MAAMhB,EAAE+L,KAAKkzC,kBAAkBl8C,EAAEg6C,MAAMh6C,EAAEi6C,OAAOjxC,KAAKszC,eAAet8C,EAAEg6C,MAAMh6C,EAAEi6C,MAAMh9C,EAAE,CAAC,CAAC,SAASw/C,GAAGz8C,GAAG,OAAOA,EAAEm6C,eAAen6C,EAAEm6C,cAAcuC,aAAa18C,EAAEP,UAAUO,GAAGA,EAAE08C,WAAW,CAAC,SAASC,GAAG38C,GAAG,OAAO,WAAWgJ,KAAKs8B,MAAMsX,eAAe58C,EAAE,CAAC,CAAC,SAAS68C,GAAG78C,EAAE7D,EAAEc,GAAG,OAAO,WAAW+L,KAAKs8B,MAAMwX,YAAY98C,EAAE7D,EAAEc,EAAE,CAAC,CAAC,SAAS8/C,GAAG/8C,EAAE7D,EAAEc,GAAG,OAAO,WAAW,IAAIoC,EAAElD,EAAEsC,MAAMuK,KAAK/K,WAAW,MAAMoB,EAAE2J,KAAKs8B,MAAMsX,eAAe58C,GAAGgJ,KAAKs8B,MAAMwX,YAAY98C,EAAEX,EAAEpC,EAAE,CAAC,CAAC,SAAS+/C,GAAGh9C,EAAE7D,GAAG,OAAO6D,EAAEslC,MAAM2X,iBAAiB9gD,IAAIsgD,GAAGz8C,GAAGk9C,iBAAiBl9C,EAAE,MAAMi9C,iBAAiB9gD,EAAE,CAAC,SAASghD,GAAGn9C,GAAG,OAAO,kBAAkBgJ,KAAKhJ,EAAE,CAAC,CAAC,SAASo9C,GAAGp9C,EAAE7D,GAAG,OAAO,WAAW6M,KAAKhJ,GAAG7D,CAAC,CAAC,CAAC,SAASkhD,GAAGr9C,EAAE7D,GAAG,OAAO,WAAW,IAAIc,EAAEd,EAAEsC,MAAMuK,KAAK/K,WAAW,MAAMhB,SAAS+L,KAAKhJ,GAAGgJ,KAAKhJ,GAAG/C,CAAC,CAAC,CAAC,SAASqgD,GAAGt9C,GAAG,OAAOA,EAAEu5C,OAAOxR,MAAM,QAAQ,CAAC,SAASwV,GAAGv9C,GAAG,OAAOA,EAAEw9C,WAAW,IAAIC,GAAGz9C,EAAE,CAAC,SAASy9C,GAAGz9C,GAAGgJ,KAAK00C,MAAM19C,EAAEgJ,KAAK20C,OAAOL,GAAGt9C,EAAE49C,aAAa,UAAU,GAAG,CAAC,SAASC,GAAG79C,EAAE7D,GAAG,IAAI,IAAIc,EAAEsgD,GAAGv9C,GAAGX,GAAG,EAAEuD,EAAEzG,EAAE+B,SAASmB,EAAEuD,GAAG3F,EAAEyE,IAAIvF,EAAEkD,GAAG,CAAC,SAASy+C,GAAG99C,EAAE7D,GAAG,IAAI,IAAIc,EAAEsgD,GAAGv9C,GAAGX,GAAG,EAAEuD,EAAEzG,EAAE+B,SAASmB,EAAEuD,GAAG3F,EAAEgzC,OAAO9zC,EAAEkD,GAAG,CAAC,SAAS0+C,GAAG/9C,GAAG,OAAO,WAAW69C,GAAG70C,KAAKhJ,EAAE,CAAC,CAAC,SAASg+C,GAAGh+C,GAAG,OAAO,WAAW89C,GAAG90C,KAAKhJ,EAAE,CAAC,CAAC,SAASi+C,GAAGj+C,EAAE7D,GAAG,OAAO,YAAYA,EAAEsC,MAAMuK,KAAK/K,WAAW4/C,GAAGC,IAAI90C,KAAKhJ,EAAE,CAAC,CAAC,SAASk+C,KAAKl1C,KAAKm1C,YAAY,EAAE,CAAC,SAASC,GAAGp+C,GAAG,OAAO,WAAWgJ,KAAKm1C,YAAYn+C,CAAC,CAAC,CAAC,SAASq+C,GAAGr+C,GAAG,OAAO,WAAW,IAAI7D,EAAE6D,EAAEvB,MAAMuK,KAAK/K,WAAW+K,KAAKm1C,YAAY,MAAMhiD,EAAE,GAAGA,CAAC,CAAC,CAAC,SAASmiD,KAAKt1C,KAAKu1C,UAAU,EAAE,CAAC,SAASC,GAAGx+C,GAAG,OAAO,WAAWgJ,KAAKu1C,UAAUv+C,CAAC,CAAC,CAAC,SAASy+C,GAAGz+C,GAAG,OAAO,WAAW,IAAI7D,EAAE6D,EAAEvB,MAAMuK,KAAK/K,WAAW+K,KAAKu1C,UAAU,MAAMpiD,EAAE,GAAGA,CAAC,CAAC,CAAC,SAASuiD,KAAK11C,KAAK21C,aAAa31C,KAAK41C,WAAWC,YAAY71C,KAAK,CAAC,SAAS81C,KAAK91C,KAAK+1C,iBAAiB/1C,KAAK41C,WAAWI,aAAah2C,KAAKA,KAAK41C,WAAWK,WAAW,CAAC,SAASC,KAAK,OAAO,IAAI,CAAC,SAASC,KAAK,IAAIn/C,EAAEgJ,KAAK41C,WAAW5+C,GAAGA,EAAEo/C,YAAYp2C,KAAK,CAAC,SAASq2C,KAAK,IAAIr/C,EAAEgJ,KAAKs2C,WAAU,GAAInjD,EAAE6M,KAAK41C,WAAW,OAAOziD,EAAEA,EAAE6iD,aAAah/C,EAAEgJ,KAAK21C,aAAa3+C,CAAC,CAAC,SAASu/C,KAAK,IAAIv/C,EAAEgJ,KAAKs2C,WAAU,GAAInjD,EAAE6M,KAAK41C,WAAW,OAAOziD,EAAEA,EAAE6iD,aAAah/C,EAAEgJ,KAAK21C,aAAa3+C,CAAC,CAAC,SAASw/C,GAAGx/C,GAAG,OAAO,WAAW,IAAI7D,EAAE6M,KAAKy2C,KAAK,GAAGtjD,EAAE,CAAC,IAAI,IAAIc,EAAEoC,EAAE,EAAEuD,GAAG,EAAE5E,EAAE7B,EAAE+B,OAAOmB,EAAErB,IAAIqB,EAAEpC,EAAEd,EAAEkD,GAAGW,EAAE1C,MAAML,EAAEK,OAAO0C,EAAE1C,MAAML,EAAE0nB,OAAO3kB,EAAE2kB,KAAKxoB,IAAIyG,GAAG3F,EAAE+L,KAAK02C,oBAAoBziD,EAAEK,KAAKL,EAAEmE,SAASnE,EAAEsvB,WAAW3pB,EAAEzG,EAAE+B,OAAO0E,SAASoG,KAAKy2C,IAAI,CAAC,CAAC,CAAC,SAASE,GAAG3/C,EAAE7D,EAAEc,GAAG,OAAO,WAAW,IAAIoC,EAAEuD,EAAEoG,KAAKy2C,KAAKzhD,EAAE,SAASgC,GAAG,OAAO,SAAS7D,GAAG6D,EAAE7C,KAAK6L,KAAK7M,EAAE6M,KAAKC,SAAS,CAAC,CAA5D,CAA8D9M,GAAG,GAAGyG,EAAE,IAAI,IAAIpD,EAAE,EAAE3C,EAAE+F,EAAE1E,OAAOsB,EAAE3C,IAAI2C,EAAE,IAAIH,EAAEuD,EAAEpD,IAAIlC,OAAO0C,EAAE1C,MAAM+B,EAAEslB,OAAO3kB,EAAE2kB,KAAK,OAAO3b,KAAK02C,oBAAoBrgD,EAAE/B,KAAK+B,EAAE+B,SAAS/B,EAAEktB,SAASvjB,KAAK42C,iBAAiBvgD,EAAE/B,KAAK+B,EAAE+B,SAASpD,EAAEqB,EAAEktB,QAAQtvB,QAAQoC,EAAEE,MAAMpD,GAAG6M,KAAK42C,iBAAiB5/C,EAAE1C,KAAKU,EAAEf,GAAGoC,EAAE,CAAC/B,KAAK0C,EAAE1C,KAAKqnB,KAAK3kB,EAAE2kB,KAAKplB,MAAMpD,EAAEiF,SAASpD,EAAEuuB,QAAQtvB,GAAG2F,EAAEA,EAAEvE,KAAKgB,GAAG2J,KAAKy2C,KAAK,CAACpgD,EAAE,CAAC,CAAC,SAASwgD,GAAG7/C,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEo9C,GAAGz8C,GAAG4C,EAAEvD,EAAEygD,YAAY,mBAAmBl9C,EAAEA,EAAE,IAAIA,EAAEzG,EAAEc,IAAI2F,EAAEvD,EAAEI,SAASsgD,YAAY,SAAS9iD,GAAG2F,EAAEo9C,UAAU7jD,EAAEc,EAAEgjD,QAAQhjD,EAAEijD,YAAYt9C,EAAEu9C,OAAOljD,EAAEkjD,QAAQv9C,EAAEo9C,UAAU7jD,GAAE,GAAG,IAAK6D,EAAEogD,cAAcx9C,EAAE,CAAC,SAASy9C,GAAGrgD,EAAE7D,GAAG,OAAO,WAAW,OAAO0jD,GAAG72C,KAAKhJ,EAAE7D,EAAE,CAAC,CAAC,SAASmkD,GAAGtgD,EAAE7D,GAAG,OAAO,WAAW,OAAO0jD,GAAG72C,KAAKhJ,EAAE7D,EAAEsC,MAAMuK,KAAK/K,WAAW,CAAC,CAACw9C,GAAGx/C,UAAU,CAACqT,YAAYmsC,GAAGoD,YAAY,SAAS7+C,GAAG,OAAOgJ,KAAKqgB,QAAQ21B,aAAah/C,EAAEgJ,KAAKyuB,MAAM,EAAEunB,aAAa,SAASh/C,EAAE7D,GAAG,OAAO6M,KAAKqgB,QAAQ21B,aAAah/C,EAAE7D,EAAE,EAAEw+C,cAAc,SAAS36C,GAAG,OAAOgJ,KAAKqgB,QAAQsxB,cAAc36C,EAAE,EAAE86C,iBAAiB,SAAS96C,GAAG,OAAOgJ,KAAKqgB,QAAQyxB,iBAAiB96C,EAAE,GAAGy9C,GAAGxhD,UAAU,CAACyF,IAAI,SAAS1B,GAAGgJ,KAAK20C,OAAOxX,QAAQnmC,GAAG,IAAIgJ,KAAK20C,OAAOt/C,KAAK2B,GAAGgJ,KAAK00C,MAAMtB,aAAa,QAAQpzC,KAAK20C,OAAOh/C,KAAK,MAAM,EAAEsxC,OAAO,SAASjwC,GAAG,IAAI7D,EAAE6M,KAAK20C,OAAOxX,QAAQnmC,GAAG7D,GAAG,IAAI6M,KAAK20C,OAAOx0C,OAAOhN,EAAE,GAAG6M,KAAK00C,MAAMtB,aAAa,QAAQpzC,KAAK20C,OAAOh/C,KAAK,MAAM,EAAE6sC,SAAS,SAASxrC,GAAG,OAAOgJ,KAAK20C,OAAOxX,QAAQnmC,IAAI,CAAC,GAAG,IAAIugD,GAAG,CAAC,MAAM,SAASC,GAAGxgD,EAAE7D,GAAG6M,KAAKy3C,QAAQzgD,EAAEgJ,KAAK03C,SAASvkD,CAAC,CAAC,SAASwkD,KAAK,OAAO,IAAIH,GAAG,CAAC,CAAC/gD,SAAS46C,kBAAkBkG,GAAG,CAAC,SAASK,GAAG5gD,GAAG,MAAM,iBAAiBA,EAAE,IAAIwgD,GAAG,CAAC,CAAC/gD,SAASk7C,cAAc36C,KAAK,CAACP,SAAS46C,kBAAkB,IAAImG,GAAG,CAAC,CAACxgD,IAAIugD,GAAG,CAAC,SAASM,GAAG7gD,EAAE7D,GAAG,GAAG6D,EAAE,SAASA,GAAG,IAAI7D,EAAE,KAAKA,EAAE6D,EAAE8gD,aAAa9gD,EAAE7D,EAAE,OAAO6D,CAAC,CAApD,CAAsDA,QAAG,IAAS7D,IAAIA,EAAE6D,EAAE+gD,eAAe5kD,EAAE,CAAC,IAAIc,EAAEd,EAAE6kD,iBAAiB7kD,EAAE,GAAGc,EAAEgkD,eAAe,CAAC,IAAI5hD,EAAEpC,EAAEgkD,iBAAiB,OAAO5hD,EAAE0D,EAAE/C,EAAEkhD,QAAQ7hD,EAAEyD,EAAE9C,EAAEmhD,QAAQ,EAAE9hD,EAAEA,EAAE+hD,gBAAgBjlD,EAAEklD,eAAeC,YAAYv+C,EAAE1D,EAAEyD,EAAE,CAAC,GAAG3G,EAAEolD,sBAAsB,CAAC,IAAI3+C,EAAEzG,EAAEolD,wBAAwB,MAAM,CAACvhD,EAAEkhD,QAAQt+C,EAAEywC,KAAKl3C,EAAEqlD,WAAWxhD,EAAEmhD,QAAQv+C,EAAE2wC,IAAIp3C,EAAEslD,UAAU,CAAC,CAAC,MAAM,CAACzhD,EAAE0hD,MAAM1hD,EAAE2hD,MAAM,CAACnB,GAAGvkD,UAAU0kD,GAAG1kD,UAAU,CAACqT,YAAYkxC,GAAGoB,OAAO,SAAS5hD,GAAG,mBAAmBA,IAAIA,EAAE06C,GAAG16C,IAAI,IAAI,IAAI7D,EAAE6M,KAAKy3C,QAAQxjD,EAAEd,EAAE+B,OAAOmB,EAAE,IAAIf,MAAMrB,GAAG2F,EAAE,EAAEA,EAAE3F,IAAI2F,EAAE,IAAI,IAAI5E,EAAEwB,EAAE3C,EAAEV,EAAEyG,GAAGhG,EAAEC,EAAEqB,OAAOzC,EAAE4D,EAAEuD,GAAG,IAAItE,MAAM1B,GAAGiG,EAAE,EAAEA,EAAEjG,IAAIiG,GAAG7E,EAAEnB,EAAEgG,MAAMrD,EAAEQ,EAAE7C,KAAKa,EAAEA,EAAEiL,SAASpG,EAAEhG,MAAM,aAAamB,IAAIwB,EAAEyJ,SAASjL,EAAEiL,UAAUxN,EAAEoH,GAAGrD,GAAG,OAAO,IAAIghD,GAAGnhD,EAAE2J,KAAK03C,SAAS,EAAEmB,UAAU,SAAS7hD,GAAGA,EAAE,mBAAmBA,EAA9vM,SAAYA,GAAG,OAAO,WAAW,OAAO,OAAO7D,EAAE6D,EAAEvB,MAAMuK,KAAK/K,YAAY,GAAGK,MAAMC,QAAQpC,GAAGA,EAAEmC,MAAMi9C,KAAKp/C,GAAG,IAAIA,CAAC,CAAC,CAA4oM2lD,CAAG9hD,GAAG66C,GAAG76C,GAAG,IAAI,IAAI7D,EAAE6M,KAAKy3C,QAAQxjD,EAAEd,EAAE+B,OAAOmB,EAAE,GAAGuD,EAAE,GAAG5E,EAAE,EAAEA,EAAEf,IAAIe,EAAE,IAAI,IAAIwB,EAAE3C,EAAEV,EAAE6B,GAAGpB,EAAEC,EAAEqB,OAAOzC,EAAE,EAAEA,EAAEmB,IAAInB,GAAG+D,EAAE3C,EAAEpB,MAAM4D,EAAEhB,KAAK2B,EAAE7C,KAAKqC,EAAEA,EAAEyJ,SAASxN,EAAEoB,IAAI+F,EAAEvE,KAAKmB,IAAI,OAAO,IAAIghD,GAAGnhD,EAAEuD,EAAE,EAAEm/C,YAAY,SAAS/hD,GAAG,OAAOgJ,KAAK44C,OAAO,MAAM5hD,EAAEm7C,GAAG,SAASn7C,GAAG,OAAO,WAAW,OAAOk7C,GAAG/9C,KAAK6L,KAAKgiB,SAAShrB,EAAE,CAAC,CAA9D,CAAgE,mBAAmBA,EAAEA,EAAEi7C,GAAGj7C,IAAI,EAAEgiD,eAAe,SAAShiD,GAAG,OAAOgJ,KAAK64C,UAAU,MAAM7hD,EAAEs7C,GAAG,SAASt7C,GAAG,OAAO,WAAW,OAAOq7C,GAAGl+C,KAAK6L,KAAKgiB,SAAShrB,EAAE,CAAC,CAA9D,CAAgE,mBAAmBA,EAAEA,EAAEi7C,GAAGj7C,IAAI,EAAEkoB,OAAO,SAASloB,GAAG,mBAAmBA,IAAIA,EAAE+6C,GAAG/6C,IAAI,IAAI,IAAI7D,EAAE6M,KAAKy3C,QAAQxjD,EAAEd,EAAE+B,OAAOmB,EAAE,IAAIf,MAAMrB,GAAG2F,EAAE,EAAEA,EAAE3F,IAAI2F,EAAE,IAAI,IAAI5E,EAAEwB,EAAErD,EAAEyG,GAAG/F,EAAE2C,EAAEtB,OAAOtB,EAAEyC,EAAEuD,GAAG,GAAGnH,EAAE,EAAEA,EAAEoB,IAAIpB,GAAGuC,EAAEwB,EAAE/D,KAAKuE,EAAE7C,KAAKa,EAAEA,EAAEiL,SAASxN,EAAE+D,IAAI5C,EAAEyB,KAAKL,GAAG,OAAO,IAAIwiD,GAAGnhD,EAAE2J,KAAK03C,SAAS,EAAE9N,KAAK,SAAS5yC,EAAE7D,GAAG,IAAI8B,UAAUC,OAAO,OAAOI,MAAMi9C,KAAKvyC,KAAK4yC,IAAI,IAAI3+C,EAAEoC,EAAElD,EAAEw/C,GAAGD,GAAG94C,EAAEoG,KAAK03C,SAAS1iD,EAAEgL,KAAKy3C,QAAQ,mBAAmBzgD,IAAI/C,EAAE+C,EAAEA,EAAE,WAAW,OAAO/C,CAAC,GAAG,IAAI,IAAIuC,EAAExB,EAAEE,OAAOrB,EAAE,IAAIyB,MAAMkB,GAAG5C,EAAE,IAAI0B,MAAMkB,GAAG/D,EAAE,IAAI6C,MAAMkB,GAAGqD,EAAE,EAAEA,EAAErD,IAAIqD,EAAE,CAAC,IAAI/G,EAAE8G,EAAEC,GAAG3F,EAAEc,EAAE6E,GAAG7F,EAAEE,EAAEgB,OAAOgC,EAAE27C,GAAG77C,EAAE7C,KAAKrB,EAAEA,GAAGA,EAAEmN,SAASpG,EAAED,IAAItG,EAAE4D,EAAEhC,OAAOpB,EAAEF,EAAEiG,GAAG,IAAIvE,MAAMhC,GAAGwG,EAAEjG,EAAEgG,GAAG,IAAIvE,MAAMhC,GAAG+C,EAAEvD,EAAEoB,EAAEJ,EAAEgG,EAAErH,EAAEoH,GAAG,IAAIvE,MAAMtB,GAAGkD,EAAE/D,GAAG,IAAI,IAAIJ,EAAEqE,EAAErD,EAAE,EAAEgG,EAAE,EAAEhG,EAAET,IAAIS,EAAE,GAAGhB,EAAEe,EAAEC,GAAG,CAAC,IAAIA,GAAGgG,IAAIA,EAAEhG,EAAE,KAAKqD,EAAE0C,EAAEC,OAAOA,EAAEzG,IAAIP,EAAE07B,MAAMr3B,GAAG,IAAI,CAAC,CAAC,OAAOvD,EAAE,IAAI2jD,GAAG3jD,EAAE+F,IAAIq/C,OAAOrlD,EAAEC,EAAEqlD,MAAMzmD,EAAEoB,CAAC,EAAEslD,MAAM,WAAW,OAAO,IAAI3B,GAAGx3C,KAAKi5C,QAAQj5C,KAAKy3C,QAAQ91C,IAAI6wC,IAAIxyC,KAAK03C,SAAS,EAAE0B,KAAK,WAAW,OAAO,IAAI5B,GAAGx3C,KAAKk5C,OAAOl5C,KAAKy3C,QAAQ91C,IAAI6wC,IAAIxyC,KAAK03C,SAAS,EAAE/hD,KAAK,SAASqB,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE2J,KAAKm5C,QAAQv/C,EAAEoG,KAAKhL,EAAEgL,KAAKo5C,OAAO,MAAM,mBAAmBpiD,GAAGX,EAAEW,EAAEX,MAAMA,EAAEA,EAAEgjD,aAAahjD,EAAEA,EAAEijD,OAAOtiD,EAAE,IAAI,MAAM7D,IAAIyG,EAAEzG,EAAEyG,MAAMA,EAAEA,EAAEy/C,aAAa,MAAMplD,EAAEe,EAAEiyC,SAAShzC,EAAEe,GAAGqB,GAAGuD,EAAEvD,EAAEs3B,MAAM/zB,GAAG03B,QAAQ13B,CAAC,EAAE+zB,MAAM,SAAS32B,GAAG,IAAI,IAAI7D,EAAE6D,EAAEqiD,UAAUriD,EAAEqiD,YAAYriD,EAAE/C,EAAE+L,KAAKy3C,QAAQphD,EAAElD,EAAEskD,QAAQ79C,EAAE3F,EAAEiB,OAAOF,EAAEqB,EAAEnB,OAAOsB,EAAEynB,KAAK6F,IAAIlqB,EAAE5E,GAAGnB,EAAE,IAAIyB,MAAMsE,GAAGhG,EAAE,EAAEA,EAAE4C,IAAI5C,EAAE,IAAI,IAAInB,EAAEoH,EAAE5F,EAAEL,GAAGd,EAAEuD,EAAEzC,GAAGM,EAAE2F,EAAE3E,OAAOlB,EAAEH,EAAED,GAAG,IAAI0B,MAAMpB,GAAGgD,EAAE,EAAEA,EAAEhD,IAAIgD,GAAGzE,EAAEoH,EAAE3C,IAAIpE,EAAEoE,MAAMlD,EAAEkD,GAAGzE,GAAG,KAAKmB,EAAEgG,IAAIhG,EAAEC,EAAED,GAAGK,EAAEL,GAAG,OAAO,IAAI4jD,GAAG3jD,EAAEmM,KAAK03C,SAAS,EAAE2B,UAAU,WAAW,OAAOr5C,IAAI,EAAEsxB,MAAM,WAAW,IAAI,IAAIt6B,EAAEgJ,KAAKy3C,QAAQtkD,GAAG,EAAEc,EAAE+C,EAAE9B,SAAS/B,EAAEc,GAAG,IAAI,IAAIoC,EAAEuD,EAAE5C,EAAE7D,GAAG6B,EAAE4E,EAAE1E,OAAO,EAAEsB,EAAEoD,EAAE5E,KAAKA,GAAG,IAAIqB,EAAEuD,EAAE5E,MAAMwB,GAAG,EAAEH,EAAEkjD,wBAAwB/iD,IAAIA,EAAEo/C,WAAWI,aAAa3/C,EAAEG,GAAGA,EAAEH,GAAG,OAAO2J,IAAI,EAAEgtB,KAAK,SAASh2B,GAAG,SAAS7D,EAAEA,EAAEc,GAAG,OAAOd,GAAGc,EAAE+C,EAAE7D,EAAE8M,SAAShM,EAAEgM,WAAW9M,GAAGc,CAAC,CAAC+C,IAAIA,EAAE87C,IAAI,IAAI,IAAI7+C,EAAE+L,KAAKy3C,QAAQphD,EAAEpC,EAAEiB,OAAO0E,EAAE,IAAItE,MAAMe,GAAGrB,EAAE,EAAEA,EAAEqB,IAAIrB,EAAE,CAAC,IAAI,IAAIwB,EAAE3C,EAAEI,EAAEe,GAAGpB,EAAEC,EAAEqB,OAAOzC,EAAEmH,EAAE5E,GAAG,IAAIM,MAAM1B,GAAGiG,EAAE,EAAEA,EAAEjG,IAAIiG,GAAGrD,EAAE3C,EAAEgG,MAAMpH,EAAEoH,GAAGrD,GAAG/D,EAAEu6B,KAAK75B,EAAE,CAAC,OAAO,IAAIqkD,GAAG59C,EAAEoG,KAAK03C,UAAUpmB,OAAO,EAAEn9B,KAAK,WAAW,IAAI6C,EAAE/B,UAAU,GAAG,OAAOA,UAAU,GAAG+K,KAAKhJ,EAAEvB,MAAM,KAAKR,WAAW+K,IAAI,EAAEshB,MAAM,WAAW,OAAOhsB,MAAMi9C,KAAKvyC,KAAK,EAAE2hB,KAAK,WAAW,IAAI,IAAI3qB,EAAEgJ,KAAKy3C,QAAQtkD,EAAE,EAAEc,EAAE+C,EAAE9B,OAAO/B,EAAEc,IAAId,EAAE,IAAI,IAAIkD,EAAEW,EAAE7D,GAAGyG,EAAE,EAAE5E,EAAEqB,EAAEnB,OAAO0E,EAAE5E,IAAI4E,EAAE,CAAC,IAAIpD,EAAEH,EAAEuD,GAAG,GAAGpD,EAAE,OAAOA,CAAC,CAAC,OAAO,IAAI,EAAE0J,KAAK,WAAW,IAAIlJ,EAAE,EAAE,IAAI,MAAM7D,KAAK6M,OAAOhJ,EAAE,OAAOA,CAAC,EAAEwiD,MAAM,WAAW,OAAOx5C,KAAK2hB,MAAM,EAAE1C,KAAK,SAASjoB,GAAG,IAAI,IAAI7D,EAAE6M,KAAKy3C,QAAQxjD,EAAE,EAAEoC,EAAElD,EAAE+B,OAAOjB,EAAEoC,IAAIpC,EAAE,IAAI,IAAI2F,EAAE5E,EAAE7B,EAAEc,GAAGuC,EAAE,EAAE3C,EAAEmB,EAAEE,OAAOsB,EAAE3C,IAAI2C,GAAGoD,EAAE5E,EAAEwB,KAAKQ,EAAE7C,KAAKyF,EAAEA,EAAEqG,SAASzJ,EAAExB,GAAG,OAAOgL,IAAI,EAAEy5C,KAAK,SAASziD,EAAE7D,GAAG,IAAIc,EAAE88C,GAAG/5C,GAAG,GAAG/B,UAAUC,OAAO,EAAE,CAAC,IAAImB,EAAE2J,KAAK2hB,OAAO,OAAO1tB,EAAEg9C,MAAM56C,EAAEqjD,eAAezlD,EAAE+8C,MAAM/8C,EAAEg9C,OAAO56C,EAAEu+C,aAAa3gD,EAAE,CAAC,OAAO+L,KAAKif,MAAM,MAAM9rB,EAAEc,EAAEg9C,MAAMgC,GAAGF,GAAG,mBAAmB5/C,EAAEc,EAAEg9C,MAAMuC,GAAGD,GAAGt/C,EAAEg9C,MAAMoC,GAAGF,IAAIl/C,EAAEd,GAAG,EAAEmpC,MAAM,SAAStlC,EAAE7D,EAAEc,GAAG,OAAOgB,UAAUC,OAAO,EAAE8K,KAAKif,MAAM,MAAM9rB,EAAEwgD,GAAG,mBAAmBxgD,EAAE4gD,GAAGF,IAAI78C,EAAE7D,EAAE,MAAMc,EAAE,GAAGA,IAAI+/C,GAAGh0C,KAAK2hB,OAAO3qB,EAAE,EAAE2iD,SAAS,SAAS3iD,EAAE7D,GAAG,OAAO8B,UAAUC,OAAO,EAAE8K,KAAKif,MAAM,MAAM9rB,EAAEghD,GAAG,mBAAmBhhD,EAAEkhD,GAAGD,IAAIp9C,EAAE7D,IAAI6M,KAAK2hB,OAAO3qB,EAAE,EAAE4iD,QAAQ,SAAS5iD,EAAE7D,GAAG,IAAIc,EAAEqgD,GAAGt9C,EAAE,IAAI,GAAG/B,UAAUC,OAAO,EAAE,CAAC,IAAI,IAAImB,EAAEk+C,GAAGv0C,KAAK2hB,QAAQ/nB,GAAG,EAAE5E,EAAEf,EAAEiB,SAAS0E,EAAE5E,GAAG,IAAIqB,EAAEmsC,SAASvuC,EAAE2F,IAAI,OAAM,EAAG,OAAM,CAAE,CAAC,OAAOoG,KAAKif,MAAM,mBAAmB9rB,EAAE8hD,GAAG9hD,EAAE4hD,GAAGC,IAAI/gD,EAAEd,GAAG,EAAE0mD,KAAK,SAAS7iD,GAAG,OAAO/B,UAAUC,OAAO8K,KAAKif,KAAK,MAAMjoB,EAAEk+C,IAAI,mBAAmBl+C,EAAEq+C,GAAGD,IAAIp+C,IAAIgJ,KAAK2hB,OAAOwzB,WAAW,EAAE2E,KAAK,SAAS9iD,GAAG,OAAO/B,UAAUC,OAAO8K,KAAKif,KAAK,MAAMjoB,EAAEs+C,IAAI,mBAAmBt+C,EAAEy+C,GAAGD,IAAIx+C,IAAIgJ,KAAK2hB,OAAO4zB,SAAS,EAAEwE,MAAM,WAAW,OAAO/5C,KAAKif,KAAKy2B,GAAG,EAAEsE,MAAM,WAAW,OAAOh6C,KAAKif,KAAK62B,GAAG,EAAEwD,OAAO,SAAStiD,GAAG,IAAI7D,EAAE,mBAAmB6D,EAAEA,EAAEw6C,GAAGx6C,GAAG,OAAOgJ,KAAK44C,mBAAmB,OAAO54C,KAAK61C,YAAY1iD,EAAEsC,MAAMuK,KAAK/K,WAAY,GAAE,EAAEglD,OAAO,SAASjjD,EAAE7D,GAAG,IAAIc,EAAE,mBAAmB+C,EAAEA,EAAEw6C,GAAGx6C,GAAGX,EAAE,MAAMlD,EAAE+iD,GAAG,mBAAmB/iD,EAAEA,EAAEu+C,GAAGv+C,GAAG,OAAO6M,KAAK44C,QAAM,WAAa,OAAO54C,KAAKg2C,aAAa/hD,EAAEwB,MAAMuK,KAAK/K,WAAWoB,EAAEZ,MAAMuK,KAAK/K,YAAY,KAAM,GAAE,EAAEgyC,OAAO,WAAW,OAAOjnC,KAAKif,KAAKk3B,GAAG,EAAEp3B,MAAM,SAAS/nB,GAAG,OAAOgJ,KAAK44C,OAAO5hD,EAAEu/C,GAAGF,GAAG,EAAE6D,MAAM,SAASljD,GAAG,OAAO/B,UAAUC,OAAO8K,KAAK25C,SAAS,WAAW3iD,GAAGgJ,KAAK2hB,OAAO1hB,QAAQ,EAAEH,GAAG,SAAS9I,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAE,SAASgC,GAAG,OAAOA,EAAEu5C,OAAOxR,MAAM,SAASp9B,KAAK,SAAS3K,GAAG,IAAI7D,EAAE,GAAGc,EAAE+C,EAAEmmC,QAAQ,KAAK,OAAOlpC,GAAG,IAAId,EAAE6D,EAAEsC,MAAMrF,EAAE,GAAG+C,EAAEA,EAAEsC,MAAM,EAAErF,IAAI,CAACK,KAAK0C,EAAE2kB,KAAKxoB,EAAG,GAAE,CAArJ,CAAuJ6D,EAAE,IAAIR,EAAExB,EAAEE,OAAO,KAAKD,UAAUC,OAAO,GAAG,CAAC,IAAIrB,EAAEV,EAAEwjD,GAAGH,GAAGngD,EAAE,EAAEA,EAAEG,IAAIH,EAAE2J,KAAKif,KAAKprB,EAAEmB,EAAEqB,GAAGlD,EAAEc,IAAI,OAAO+L,IAAI,CAAC,IAAInM,EAAEmM,KAAK2hB,OAAO80B,KAAK,GAAG5iD,EAAE,IAAI,IAAID,EAAEnB,EAAE,EAAEoH,EAAEhG,EAAEqB,OAAOzC,EAAEoH,IAAIpH,EAAE,IAAI4D,EAAE,EAAEzC,EAAEC,EAAEpB,GAAG4D,EAAEG,IAAIH,EAAE,IAAIuD,EAAE5E,EAAEqB,IAAI/B,OAAOV,EAAEU,MAAMsF,EAAE+hB,OAAO/nB,EAAE+nB,KAAK,OAAO/nB,EAAE2C,KAAK,EAAE4jD,SAAS,SAASnjD,EAAE7D,GAAG,OAAO6M,KAAKif,MAAM,mBAAmB9rB,EAAEmkD,GAAGD,IAAIrgD,EAAE7D,GAAG,EAAE,CAACP,OAAOguC,UAAU,YAAY,IAAI,IAAI5pC,EAAEgJ,KAAKy3C,QAAQtkD,EAAE,EAAEc,EAAE+C,EAAE9B,OAAO/B,EAAEc,IAAId,EAAE,IAAI,IAAIkD,EAAEuD,EAAE5C,EAAE7D,GAAG6B,EAAE,EAAEwB,EAAEoD,EAAE1E,OAAOF,EAAEwB,IAAIxB,GAAGqB,EAAEuD,EAAE5E,YAAYqB,EAAE,GAAG,MAAM+jD,GAAG,CAACC,SAAQ,GAAIC,GAAG,CAACC,SAAQ,EAAGF,SAAQ,GAAI,SAASG,GAAGxjD,GAAGA,EAAEyjD,0BAA0B,CAAC,SAASC,GAAG1jD,GAAGA,EAAE2jD,iBAAiB3jD,EAAEyjD,0BAA0B,CAAC,SAASG,GAAG5jD,GAAG,IAAI7D,EAAE6D,EAAEP,SAAS46C,gBAAgBp9C,EAAE2jD,GAAG5gD,GAAG8I,GAAG,iBAAiB46C,GAAGJ,IAAI,kBAAkBnnD,EAAEc,EAAE6L,GAAG,mBAAmB46C,GAAGJ,KAAKnnD,EAAE0nD,WAAW1nD,EAAEmpC,MAAMwe,cAAc3nD,EAAEmpC,MAAMwe,cAAc,OAAO,CAAC,SAASC,GAAG/jD,EAAE7D,GAAG,IAAIc,EAAE+C,EAAEP,SAAS46C,gBAAgBh7C,EAAEuhD,GAAG5gD,GAAG8I,GAAG,iBAAiB,MAAM3M,IAAIkD,EAAEyJ,GAAG,aAAa46C,GAAGJ,IAAI5X,uBAAuBrsC,EAAEyJ,GAAG,aAAa,KAAM,GAAE,IAAI,kBAAkB7L,EAAEoC,EAAEyJ,GAAG,mBAAmB,OAAO7L,EAAEqoC,MAAMwe,cAAc7mD,EAAE4mD,kBAAkB5mD,EAAE4mD,WAAW,CAAC,IAAIG,GAAGhkD,GAAG,IAAIA,EAAE,SAASikD,GAAGjkD,GAAG8gD,YAAY3kD,EAAE+nD,QAAQjnD,EAAEknD,OAAO9kD,EAAE+kD,WAAWxhD,EAAEyhD,OAAOrmD,EAAE+E,EAAEvD,EAAEsD,EAAEjG,EAAEynD,GAAG1nD,EAAEigD,GAAGphD,EAAE0nD,SAAStgD,IAAI7G,OAAOuoD,iBAAiBv7C,KAAK,CAAC1L,KAAK,CAACiC,MAAMS,EAAEqL,YAAW,EAAGD,cAAa,GAAI01C,YAAY,CAACvhD,MAAMpD,EAAEkP,YAAW,EAAGD,cAAa,GAAI84C,QAAQ,CAAC3kD,MAAMtC,EAAEoO,YAAW,EAAGD,cAAa,GAAI+4C,OAAO,CAAC5kD,MAAMF,EAAEgM,YAAW,EAAGD,cAAa,GAAIg5C,WAAW,CAAC7kD,MAAMqD,EAAEyI,YAAW,EAAGD,cAAa,GAAIi5C,OAAO,CAAC9kD,MAAMvB,EAAEqN,YAAW,EAAGD,cAAa,GAAIrI,EAAE,CAACxD,MAAMC,EAAE6L,YAAW,EAAGD,cAAa,GAAItI,EAAE,CAACvD,MAAM1C,EAAEwO,YAAW,EAAGD,cAAa,GAAIk5C,GAAG,CAAC/kD,MAAM3C,EAAEyO,YAAW,EAAGD,cAAa,GAAIyxC,GAAG,CAACt9C,MAAM9D,EAAE4P,YAAW,EAAGD,cAAa,GAAIpI,EAAE,CAACzD,MAAMsD,IAAI,CAAC,SAAS2hD,GAAGxkD,GAAG,OAAOA,EAAEykD,UAAUzkD,EAAE0kD,MAAM,CAAC,SAASC,KAAK,OAAO37C,KAAK41C,UAAU,CAAC,SAASgG,GAAG5kD,EAAE7D,GAAG,OAAO,MAAMA,EAAE,CAAC4G,EAAE/C,EAAE+C,EAAED,EAAE9C,EAAE8C,GAAG3G,CAAC,CAAC,SAAS0oD,KAAK,OAAOC,UAAUC,gBAAgB,iBAAiB/7C,IAAI,CAAkhFi7C,GAAGhoD,UAAU6M,GAAG,WAAW,IAAI9I,EAAEgJ,KAAKhG,EAAE8F,GAAGrK,MAAMuK,KAAKhG,EAAE/E,WAAW,OAAO+B,IAAIgJ,KAAKhG,EAAEgG,KAAKhJ,CAAC,EAAK,IAACglD,GAAG,CAACC,SAAS,WAAW,MAAM,iHAAiH,EAAEC,SAAS,WAAW,MAAM,6KAA6K,EAAEC,SAAS,SAASnlD,GAAG,MAAM,cAAcosB,OAAOpsB,EAAE,8CAA8C,EAAEolD,SAAS,WAAW,MAAM,+EAA+E,EAAEC,SAAS,WAAW,MAAM,2CAA2C,EAAEC,SAAS,WAAW,MAAM,yDAAyD,EAAEC,SAAS,SAASvlD,GAAG,MAAM,wBAAwBosB,OAAOpsB,EAAE,mBAAmB,EAAEwlD,SAAS,SAASxlD,GAAG,MAAM,gBAAgBosB,OAAOpsB,EAAE,oBAAoB,EAAEylD,SAAS,SAASzlD,EAAE7D,GAAG,IAAIc,EAAEd,EAAEkkC,GAAGhhC,EAAElD,EAAEupD,aAAa9iD,EAAEzG,EAAEwpD,aAAa,MAAM,4BAA4Bv5B,OAAOpsB,EAAE,iBAAiBosB,OAAO/sB,EAAEuD,EAAEvD,EAAE,gBAAgB+sB,OAAOnvB,EAAE,IAAI,EAAE2oD,SAAS,WAAW,MAAM,gFAAgF,EAAEC,SAAS,SAAS7lD,GAAG,MAAM,cAAcosB,OAAOpsB,EAAE,8CAA8C,EAAE8lD,SAAS,SAAS9lD,GAAG,MAAM,iBAAiBosB,OAAOpsB,EAAE,iIAAiI,EAAE+lD,SAAS,SAAS/lD,GAAG,YAAO,IAASA,IAAIA,EAAE,SAAS,uEAAuEosB,OAAOpsB,EAAE,4EAA4E,GAAGgmD,GAAG,CAAC,CAACz4B,OAAOuV,kBAAkBvV,OAAOuV,mBAAmB,CAACvV,OAAOC,kBAAkBD,OAAOC,oBAAoBy4B,GAAG,CAAC,QAAQ,IAAI,UAA4iBC,GAAG,SAASlmD,EAAE7D,QAAG,IAASA,IAAIA,EAAE,CAAC,EAAE,IAAI,IAAIc,EAAivN,SAAY+C,GAAG,IAAI7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAAE3C,EAAED,EAAE,MAAM,CAACo9B,MAAM,QAAQp3B,EAAE,QAAQvD,EAAE,QAAQpC,EAAE,QAAQd,EAAE6D,EAAEmmD,gBAAW,IAAShqD,OAAE,EAAOA,EAAE69B,aAAQ,IAAS/8B,EAAEA,EAAE+C,EAAEg6B,aAAQ,IAAS36B,EAAEA,EAAEW,EAAEomD,oBAAe,IAASxjD,EAAEA,EAAE,EAAEq3B,OAAO,QAAQr9B,EAAE,QAAQC,EAAE,QAAQ2C,EAAE,QAAQxB,EAAEgC,EAAEmmD,gBAAW,IAASnoD,OAAE,EAAOA,EAAEi8B,cAAS,IAASz6B,EAAEA,EAAEQ,EAAEi6B,cAAS,IAASp9B,EAAEA,EAAEmD,EAAEqmD,qBAAgB,IAASzpD,EAAEA,EAAE,EAAE,CAAnlO0pD,CAAGtmD,GAAGX,EAAEpC,EAAE+8B,MAAMp3B,EAAE3F,EAAEg9B,OAAOj8B,EAAE,cAAcgC,EAAEA,EAAEumD,UAAUC,iBAAiBxmD,EAAEymD,SAASjnD,EAAEQ,EAAE0mD,QAAQvqD,EAAEU,EAAEwC,EAAEG,EAAE,GAAG5C,EAAEgG,EAAEpD,EAAE,GAAG,MAAM,CAACinD,SAAS,CAAC1jD,EAAE/C,EAAEymD,SAAS1jD,EAAElG,EAAEiG,EAAE9C,EAAEymD,SAAS3jD,EAAElG,GAAG4pD,iBAAiB,CAACzjD,EAAE/E,EAAE+E,EAAElG,EAAEiG,EAAE9E,EAAE8E,EAAElG,GAAG,EAA4N+pD,GAAG,SAAS3mD,EAAE7D,GAAG,QAAG,IAASA,IAAIA,EAAE,CAACyqD,WAAW,CAAC,EAAE,KAAK,IAAI5mD,EAAEkJ,KAAK,MAAM,CAACnG,EAAE,EAAED,EAAE,EAAEk3B,MAAM,EAAEC,OAAO,GAAG,IAAIh9B,EAAE,CAAC8F,EAAE,IAAID,EAAE,IAAI+jD,IAAG,IAAKC,IAAG,KAAM,OAAO9mD,EAAEmB,SAAO,SAAWnB,GAAG,GAAG,MAAM7D,EAAE+rB,QAAQ/rB,EAAE+rB,OAAOloB,GAAG,CAAC,IAAIX,EAAE0nD,GAAG/mD,EAAE7D,EAAEyqD,YAAY3pD,EAAE+pD,GAAG/pD,EAAEoC,EAAE,CAAE,IAAG4nD,GAAGhqD,EAAE,EAAwlD,SAASiqD,GAAGlnD,GAAG,IAAI7D,EAAE6D,EAAEmnD,OAAOlqD,EAAE+C,EAAEonD,aAAa/nD,EAAEW,EAAEqnD,WAAWzkD,EAAE5C,EAAE4mD,WAAW5oD,OAAE,IAAS4E,EAAE,CAAC,EAAE,GAAGA,EAAEpD,EAAEQ,EAAEsnD,WAAWzqD,EAAEmD,EAAEunD,QAAQ3qD,EAAEyC,EAAEiK,IAAInN,GAAGV,EAAEmB,EAAE4qD,SAASnoD,EAAEiK,IAAI1M,EAAE4qD,eAAU,EAAO3kD,EAAEpH,EAAEyqD,GAAGzqD,EAAEA,EAAEirD,QAAQ1oD,GAAGwoD,iBAAiB,CAACzjD,EAAE,EAAED,EAAE,GAAGhH,EAAE+G,EAAEE,EAAE7F,EAAE2F,EAAEC,EAAE9F,EAAE,SAASgD,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5E,EAAE,OAAO7B,GAAG,WAAWA,EAAE,CAACA,EAAE,GAAG,CAACA,EAAE,GAAG,IAAI,QAAQkD,EAAE,QAAQpC,EAAE+C,EAAEmmD,gBAAW,IAASlpD,OAAE,EAAOA,EAAE+8B,aAAQ,IAAS36B,EAAEA,EAAE,GAAGlD,EAAE,GAAG,IAAI,QAAQ6B,EAAE,QAAQ4E,EAAE5C,EAAEmmD,gBAAW,IAASvjD,OAAE,EAAOA,EAAEq3B,cAAS,IAASj8B,EAAEA,EAAE,KAAK7B,CAAC,CAAxO,CAA0OS,EAAEA,EAAE6qD,QAAQjoD,GAAG,GAAG,WAAW5C,EAAE6qD,QAAQ7qD,EAAE8qD,aAAajsD,GAAGksD,GAAG/qD,EAAE6qD,UAAUzqD,EAAE,CAAC,CAACJ,EAAE6qD,OAAO,GAAG,GAAG3rD,EAAEc,EAAE6qD,OAAO,GAAG,GAAGvqD,GAAG,CAACN,EAAE6qD,OAAO,GAAG,GAAG3rD,EAAEc,EAAE6qD,OAAO,GAAG,GAAGvqD,UAAU,GAAGzB,EAAE,CAAC,IAAIyE,EAAEtD,EAAEupD,SAASnsB,MAAM19B,EAAEM,EAAEupD,SAASlsB,OAAOn9B,EAAErB,EAAE0qD,SAASnsB,MAAMl3B,EAAErH,EAAE0qD,SAASlsB,OAAO,GAAG/5B,GAAG5D,GAAGQ,GAAGgG,EAAE,CAAC,IAAI/G,EAAEa,EAAE8pD,QAAQ1oD,EAAEoC,EAAEtE,EAAEoE,EAAEnE,EAAE,GAAGgB,EAAEG,EAAEZ,EAAEP,EAAE,GAAGiB,EAAE,CAAC,CAACoD,EAAErD,GAAG,CAACqD,EAAEtD,EAAEoD,EAAEnD,EAAE+F,EAAExG,GAAG,CAAC,MAAM,MAAMO,GAAGA,EAAE,MAAMmoD,GAAGK,YAAY,IAAItiD,EAAE4kD,GAAG3qD,GAAG4qD,GAAG3qD,EAAED,GAAGC,EAAE,MAAM,CAACwpD,SAAS,CAAC1jD,EAAEA,EAAEA,EAAEjH,EAAEgH,EAAEC,EAAED,EAAE5F,GAAGspD,iBAAiBzjD,EAAE,CAA+mC,IAAC8kD,GAAG,SAAS7nD,EAAE7D,EAAEc,GAAG,YAAO,IAASd,IAAIA,EAAE,QAAG,IAASc,IAAIA,EAAE,GAAGgqB,KAAK6F,IAAI7F,KAAKC,IAAIlnB,EAAE7D,GAAGc,EAAE,EAAE2qD,GAAG,SAAS5nD,EAAE7D,GAAG,YAAO,IAAS6D,IAAIA,EAAE,CAAC+C,EAAE,EAAED,EAAE,IAAI,CAACC,EAAE8kD,GAAG7nD,EAAE+C,EAAE5G,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI2G,EAAE+kD,GAAG7nD,EAAE8C,EAAE3G,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI,EAAE2rD,GAAG,SAAS9nD,EAAE7D,EAAEc,GAAG,OAAO+C,EAAE7D,EAAE0rD,GAAG5gC,KAAKiT,IAAIl6B,EAAE7D,GAAG,EAAE,IAAI,GAAG6D,EAAE/C,GAAG4qD,GAAG5gC,KAAKiT,IAAIl6B,EAAE/C,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE8qD,GAAG,SAAS/nD,EAAE7D,GAAG,MAAM,CAAC,GAAG2rD,GAAG9nD,EAAE+C,EAAE,GAAG5G,EAAE69B,MAAM,IAAI,GAAG8tB,GAAG9nD,EAAE8C,EAAE,GAAG3G,EAAE89B,OAAO,IAAI,EAAE+sB,GAAG,SAAShnD,EAAE7D,GAAG,MAAM,CAAC4G,EAAEkkB,KAAK6F,IAAI9sB,EAAE+C,EAAE5G,EAAE4G,GAAGD,EAAEmkB,KAAK6F,IAAI9sB,EAAE8C,EAAE3G,EAAE2G,GAAG+jD,GAAG5/B,KAAKC,IAAIlnB,EAAE6mD,GAAG1qD,EAAE0qD,IAAIC,GAAG7/B,KAAKC,IAAIlnB,EAAE8mD,GAAG3qD,EAAE2qD,IAAI,EAAEkB,GAAG,SAAShoD,GAAG,IAAI7D,EAAE6D,EAAE+C,EAAE9F,EAAE+C,EAAE8C,EAAE,MAAM,CAACC,EAAE5G,EAAE2G,EAAE7F,EAAE4pD,GAAG1qD,EAAE6D,EAAEg6B,MAAM8sB,GAAG7pD,EAAE+C,EAAEi6B,OAAO,EAAEgtB,GAAG,SAASjnD,GAAG,IAAI7D,EAAE6D,EAAE+C,EAAE9F,EAAE+C,EAAE8C,EAAE,MAAM,CAACC,EAAE5G,EAAE2G,EAAE7F,EAAE+8B,MAAMh6B,EAAE6mD,GAAG1qD,EAAE89B,OAAOj6B,EAAE8mD,GAAG7pD,EAAE,EAAsV8pD,GAAG,SAAS/mD,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAAE3C,OAAE,IAASV,IAAIA,EAAE,CAAC,EAAE,IAAI,IAAIS,EAAEspD,GAAGlmD,EAAE7D,GAAGqqD,iBAAiB/qD,EAAEmB,EAAEmG,EAAEF,EAAEjG,EAAEkG,EAAE,MAAM,CAACC,EAAEtH,EAAEqH,EAAED,EAAEgkD,GAAGprD,GAAG,QAAQmH,EAAE,QAAQvD,EAAE,QAAQpC,EAAE+C,EAAEmmD,gBAAW,IAASlpD,OAAE,EAAOA,EAAE+8B,aAAQ,IAAS36B,EAAEA,EAAEW,EAAEg6B,aAAQ,IAASp3B,EAAEA,EAAE,GAAGkkD,GAAGjkD,GAAG,QAAQhG,EAAE,QAAQ2C,EAAE,QAAQxB,EAAEgC,EAAEmmD,gBAAW,IAASnoD,OAAE,EAAOA,EAAEi8B,cAAS,IAASz6B,EAAEA,EAAEQ,EAAEi6B,cAAS,IAASp9B,EAAEA,EAAE,GAAG,EAAwgBorD,GAAG,SAASjoD,EAAE7D,GAAG,YAAO,IAASA,IAAIA,EAAE,CAAC,EAAE,IAAI,CAAC4G,EAAE5G,EAAE,GAAG8qB,KAAKmlB,MAAMpsC,EAAE+C,EAAE5G,EAAE,IAAI2G,EAAE3G,EAAE,GAAG8qB,KAAKmlB,MAAMpsC,EAAE8C,EAAE3G,EAAE,IAAI,EAAE+rD,GAAG,SAASloD,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE5C,EAAE+C,EAAE/E,EAAEgC,EAAE8C,EAAEtD,EAAEuqC,GAAG5tC,EAAE,GAAGU,EAAE2C,EAAE,GAAG5C,EAAE4C,EAAE,GAAG/D,EAAE+D,EAAE,QAAG,IAASvC,IAAIA,GAAE,QAAI,IAASoC,IAAIA,EAAE,CAAC,EAAE,IAAI,IAAIwD,EAAE,CAACE,GAAGH,EAAE/F,GAAGpB,EAAEqH,GAAG9E,EAAEpB,GAAGnB,GAAG,OAAOwB,EAAEgrD,GAAGplD,EAAExD,GAAGwD,CAAC,EAAEslD,GAAG,SAASnoD,EAAE7D,GAAG,IAAIc,EAAE+C,EAAE+C,EAAE1D,EAAEW,EAAE8C,EAAEF,EAAEmnC,GAAG5tC,EAAE,GAAG6B,EAAE4E,EAAE,GAAGpD,EAAEoD,EAAE,GAAG/F,EAAE+F,EAAE,GAAG,MAAM,CAACG,EAAE9F,EAAEJ,EAAEmB,EAAE8E,EAAEzD,EAAExC,EAAE2C,EAAE,EAAqK4oD,GAAG,WAAW,IAAIpoD,EAAE,MAAM,oBAAoB8kD,YAAY,QAAQ9kD,EAAE,OAAO8kD,gBAAW,IAASA,eAAU,EAAOA,UAAUuD,iBAAY,IAASroD,OAAE,EAAOA,EAAEmmC,QAAQ,SAAS,CAAC,EAAE,SAASwhB,GAAG3nD,GAAG,YAAO,IAASA,GAAG,WAAWA,CAAC,CAAw8B,SAASsoD,GAAGtoD,EAAE7D,GAAG,IAAIc,EAAEd,EAAEosD,SAASlpD,OAAE,IAASpC,EAAE,CAAC,EAAE,GAAGA,EAAE2F,EAAEzG,EAAEqsD,WAAWxqD,OAAE,IAAS4E,GAAGA,EAAEpD,EAAErD,EAAEosB,UAAU1rB,EAAE4rD,GAAGzoD,GAAGpD,EAAEC,EAAEkG,EAAEtH,EAAEoB,EAAEiG,EAAED,EAAEqlD,GAAG,CAACnlD,EAAEnG,EAAEkG,EAAErH,GAAG+D,GAAG1D,EAAEkC,EAAEiqD,GAAGplD,EAAExD,GAAGwD,EAAE3F,EAAEpB,EAAEiH,EAAE/F,EAAElB,EAAEgH,EAAE,OAAO4mC,GAAG,CAACgf,SAASxrD,EAAEyrD,SAAS3rD,GAAG6F,EAAE,CAAkgB+lD,QAAEC,oBAAA,EAACC,+BAAGC,QAAAA,mBAAAA,EAAGC,QAAAA,wBAAAA,EAAGC,QAAEC,gBAAA,EAACC,wBAAG,IAAoCV,GAAG,SAASzoD,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAA9D,SAASQ,GAAG,MAAM,YAAYA,CAAC,CAAiCopD,CAAGppD,GAAGnD,EAAE2C,EAAEQ,EAAEkhD,QAAQ,QAAQjkD,EAAE+C,EAAEqpD,eAAU,IAASpsD,OAAE,EAAOA,EAAE,GAAGikD,QAAQtkD,EAAE4C,EAAEQ,EAAEmhD,QAAQ,QAAQ9hD,EAAEW,EAAEqpD,eAAU,IAAShqD,OAAE,EAAOA,EAAE,GAAG8hD,QAAQ,MAAM,CAACp+C,EAAElG,GAAG,QAAQ+F,EAAE,MAAMzG,OAAE,EAAOA,EAAEk3C,YAAO,IAASzwC,EAAEA,EAAE,GAAGE,EAAElG,GAAG,QAAQoB,EAAE,MAAM7B,OAAE,EAAOA,EAAEo3C,WAAM,IAASv1C,EAAEA,EAAE,GAAG,EAA6X,SAASsrD,GAAGtpD,GAAG,IAAI7D,EAAE6D,EAAEupD,QAAQtsD,EAAE+C,EAAEwpD,QAAQnqD,EAAEW,EAAEypD,QAAQ7mD,EAAE5C,EAAE0pD,QAAQ1rD,EAAEgC,EAAE2pD,eAAenqD,EAAEQ,EAAE4pD,eAAe/sD,EAAE,KAAKV,EAAE,KAAK6B,EAAE,KAAKgC,EAAE6pD,eAAe,KAAKxqD,EAAEzC,EAAE,KAAKK,EAAE,KAAKuC,EAAE,KAAKQ,EAAE8pD,eAAe,KAAKlnD,EAAE,MAAM,CAAC/F,EAAED,EAAEqqB,KAAKiT,IAAIr9B,EAAEV,GAAG8qB,KAAKiT,IAAIt9B,EAAEK,GAAG,CAAC,SAAS8sD,GAAG/pD,EAAE7D,GAAG,OAAO6D,GAAG,EAAE,GAAGA,EAAE,GAAG7D,EAAE8qB,KAAK+iC,MAAMhqD,EAAE,CAAC,SAASiqD,GAAGjqD,GAAG,IAAI7D,EAAE6D,EAAE6/B,IAAI5iC,EAAE+C,EAAEkqD,GAAG7qD,EAAEW,EAAEmqD,GAAGvnD,EAAE5C,EAAE6mD,GAAG7oD,EAAEgC,EAAE8mD,GAAGtnD,EAAEQ,EAAEpD,EAAE,OAAOT,GAAG,KAAKgtD,QAAAA,SAAGiB,KAAK,MAAM,CAACntD,EAAE8sD,GAAG9sD,EAAE2F,EAAEpD,GAAGH,GAAG,KAAK8pD,QAAEkB,SAACC,MAAM,MAAM,CAACrtD,EAAE8sD,GAAGnnD,EAAE3F,EAAEuC,GAAGH,GAAG,KAAK8pD,iBAAGoB,IAAI,MAAM,CAACttD,EAAEoC,EAAE0qD,GAAG1qD,EAAErB,EAAEwB,IAAI,KAAK2pD,QAAAA,SAAGqB,OAAO,MAAM,CAACvtD,EAAEoC,EAAE0qD,GAAG/rD,EAAEqB,EAAEG,IAAI,CAAqkB,SAASirD,GAAGzqD,GAAG,IAAI7D,EAAE6D,EAAEupD,QAAQtsD,EAAE+C,EAAEwpD,QAAQnqD,EAAEW,EAAEypD,QAAQ7mD,EAAE5C,EAAE0pD,QAAQ1rD,EAAEipB,KAAKiT,IAAI76B,EAAElD,GAAG,EAAEqD,EAAEH,EAAElD,EAAEkD,EAAErB,EAAEqB,EAAErB,EAAEnB,EAAEoqB,KAAKiT,IAAIt3B,EAAE3F,GAAG,EAAE,MAAM,CAACuC,EAAEoD,EAAE3F,EAAE2F,EAAE/F,EAAE+F,EAAE/F,EAAEmB,EAAEnB,EAAE,EAAoe,SAASmD,GAAGA,EAAE0qD,OAAO,SAAS1qD,EAAE2qD,MAAM,OAAO,CAA7C,CAA+C/B,yBAAKA,QAAAA,eAAG,CAAA,IAAK,SAAS5oD,GAAGA,EAAE4qD,KAAK,OAAO5qD,EAAE6qD,SAAS,WAAW7qD,EAAE8qD,WAAW,YAAY,CAAzE,CAA2EhC,QAAEiC,kBAAGjC,wBAAG,CAAA,IAAK,SAAS9oD,GAAGA,EAAEgrD,QAAQ,UAAUhrD,EAAEirD,KAAK,MAAM,CAA7C,CAA+ClC,QAAEmC,gBAAGnC,QAAEmC,cAAC,KAAK,SAASlrD,GAAGA,EAAEmrD,OAAO,UAAUnrD,EAAEorD,SAAS,WAAWprD,EAAEqrD,KAAK,OAAOrrD,EAAEsrD,WAAW,aAAatrD,EAAEurD,aAAa,cAAc,CAA1H,CAA4HvC,6BAAKA,QAAAA,mBAAG,CAAA,IAAK,SAAShpD,GAAGA,EAAEwrD,MAAM,QAAQxrD,EAAEyrD,YAAY,aAAa,CAAvD,CAAyDxC,QAAEC,aAAGD,mBAAG,CAAA,IAAK,SAASjpD,GAAGA,EAAEoqD,KAAK,OAAOpqD,EAAEuqD,IAAI,MAAMvqD,EAAEsqD,MAAM,QAAQtqD,EAAEwqD,OAAO,QAAQ,CAAvE,CAAyErB,mBAAKA,QAAAA,SAAG,CAAE,IAAM,IAACuC,GAAGC,GAAG,SAAS3rD,GAAG,IAAI7D,EAAE6D,EAAEqjB,OAAOpmB,EAAE+C,EAAE0lD,aAAarmD,EAAEW,EAAEmkD,OAAOvhD,EAAE5C,EAAE2lD,aAAa,MAAM,YAAYv5B,OAAOjwB,GAAGiwB,OAAOnvB,GAAG,GAAG,KAAKmvB,OAAO/sB,GAAG+sB,OAAOxpB,GAAG,GAAG,EAAq3C,IAAIgpD,KAAKF,GAAG,IAAIvC,QAAAA,SAAGiB,MAAM,CAACrnD,GAAG,EAAED,EAAE,GAAG4oD,GAAGvC,QAAAA,SAAGmB,OAAO,CAACvnD,EAAE,EAAED,EAAE,GAAG4oD,GAAGvC,QAAAA,SAAGoB,KAAK,CAACxnD,EAAE,EAAED,GAAG,GAAG4oD,GAAGvC,QAAEkB,SAACG,QAAQ,CAACznD,EAAE,EAAED,EAAE,GAAG4oD,IAAqLG,GAAG,SAAS7rD,EAAE7D,GAAG,OAAO8qB,KAAK+iC,KAAK/iC,KAAK6kC,IAAI3vD,EAAE4G,EAAE/C,EAAE+C,EAAE,GAAGkkB,KAAK6kC,IAAI3vD,EAAE2G,EAAE9C,EAAE8C,EAAE,GAAG,EAA+yT,SAASipD,GAAG/rD,EAAE7D,GAAG,IAAI6D,EAAEwnD,SAAS,OAAM,EAAG,IAAIvqD,EAAEd,EAAEmN,IAAItJ,EAAEwnD,UAAU,QAAQvqD,MAAMA,EAAE+uD,UAAUD,GAAG9uD,EAAEd,GAAG,CAAC,SAAS8vD,GAAGjsD,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEW,EAAE,EAAE,CAAC,GAAG,MAAMX,OAAE,EAAOA,EAAE27C,QAAQ7+C,GAAG,OAAM,EAAG,GAAGkD,IAAIpC,EAAE,OAAM,EAAGoC,EAAEA,EAAE6sD,aAAa,OAAO7sD,GAAG,OAAM,CAAE,CAAC,SAAS8sD,GAAGnsD,GAAG,IAAI7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,EAAEgC,EAAEmnD,OAAO3nD,EAAEQ,EAAEosD,UAAUvvD,EAAEmD,EAAEqnD,WAAWzqD,EAAE,GAAG,IAAI,IAAI,IAAInB,EAAEkuC,GAAGnqC,GAAGqD,EAAEpH,EAAEouC,QAAQhnC,EAAEinC,KAAKjnC,EAAEpH,EAAEouC,OAAO,CAAC,IAAI/tC,EAAEiuC,GAAGlnC,EAAEtD,MAAM,GAAGrC,EAAEpB,EAAE,GAAGkB,EAAElB,EAAE,GAAGoE,EAAE,QAAQb,EAAExC,EAAEyM,IAAIpM,UAAK,IAASmC,OAAE,EAAOA,EAAEknD,UAAU8F,SAASnsD,GAAGtD,EAAEyB,KAAKqrC,GAAGA,GAAG,GAAGxpC,GAAG,CAACumD,SAASzpD,EAAEypD,WAAW,CAAC,CAAC,MAAMzmD,GAAG7D,EAAE,CAAC6tC,MAAMhqC,EAAE,CAAC,QAAQ,IAAI6C,IAAIA,EAAEinC,OAAO7sC,EAAExB,EAAEwuC,SAAShtC,EAAEE,KAAK1B,EAAE,CAAC,QAAQ,GAAGU,EAAE,MAAMA,EAAE6tC,KAAK,CAAC,CAAC,IAAIhsC,EAAE,MAAM,CAACpB,EAAE,GAAGA,GAAG,IAAIN,EAAEO,EAAEyM,IAAItL,GAAGuoD,UAAU8F,SAAS,MAAM,CAAC3iB,GAAGA,GAAG,CAAA,EAAGptC,GAAG,CAACmqD,UAAU,QAAQ7jD,EAAEpD,EAAE8J,IAAItL,UAAK,IAAS4E,OAAE,EAAOA,EAAE6jD,WAAWnqD,EAAEmqD,WAAW7pD,EAAE,CAAC,SAAS0vD,GAAGtsD,GAAG,IAAI7D,EAAE6D,EAAEusD,gBAAgBtvD,EAAE+C,EAAEwsD,cAAcntD,EAAEW,EAAEysD,YAAY7pD,EAAE5C,EAAE0sD,OAAO1uD,EAAEgC,EAAE2sD,WAAWntD,EAAE,CAACuD,EAAE,KAAKD,EAAE,MAAMjG,EAAE,EAAED,EAAE,IAAI+qC,IAAIlsC,GAAE,EAAGoH,EAAE,CAACE,EAAE,EAAED,EAAE,GAAGhH,EAAE,KAAKoB,GAAE,EAAGF,EAAE,KAAK,MAAM,CAAC4vD,OAAO,SAAS5sD,GAAG,IAAIE,EAAEF,EAAE6sD,gBAAgBvwD,EAAE0D,EAAE8sD,eAAehwD,EAAEkD,EAAE+sD,QAAQjqD,EAAE9C,EAAEgtD,aAAajxD,EAAEiE,EAAEmnD,OAAO,SAAS/mD,EAAEJ,EAAE7D,GAAG,IAAIkD,EAAErB,EAAEnB,EAAEmD,EAAE+C,EAAEtH,EAAEuE,EAAE8C,EAAED,EAAE5F,IAAInB,EAAE+G,EAAEwkD,WAAWnqD,EAAE2F,EAAEykD,WAAWtqD,EAAE6F,EAAE0lD,SAASroD,EAAE2C,EAAE2lD,WAAWlsD,EAAEuG,EAAE+jD,WAAW9pD,EAAE+F,EAAEoqD,WAAWnqD,EAAED,EAAEqqD,gBAAgB9sD,EAAEyC,EAAE0kD,QAAQxqD,EAAE8F,EAAEsqD,oBAAoB3tD,EAAE,CAACuD,EAAElG,EAAEiG,EAAErH,GAAG,IAAIsH,GAAE,EAAGC,EAAE,CAACD,EAAE,EAAED,EAAE,EAAE+jD,GAAG,EAAEC,GAAG,GAAG,GAAGlqD,EAAEsM,KAAK,GAAGhM,EAAE,CAAC,IAAI+F,EAAE0jD,GAAG/pD,EAAE,CAACgqD,WAAWtqD,IAAI0G,EAAEglD,GAAG/kD,EAAE,CAAC,IAAI,IAAI,IAAItH,EAAEguC,GAAG/sC,GAAGsG,EAAEvH,EAAEkuC,QAAQ3mC,EAAE4mC,KAAK5mC,EAAEvH,EAAEkuC,OAAO,CAAC,IAAI1mC,EAAE4mC,GAAG7mC,EAAE3D,MAAM,GAAG6D,EAAED,EAAE,GAAGE,EAAEF,EAAE,GAAGG,EAAE,CAACP,EAAElG,EAAEwG,EAAEgqB,SAAStqB,EAAED,EAAErH,EAAE4H,EAAEgqB,SAASvqB,GAAG5C,IAAIoD,EAAE2kD,GAAG3kD,EAAEtG,IAAI,IAAIuG,EAAE,CAAC,CAACrG,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI,CAACA,EAAE,GAAG,GAAGA,EAAE,GAAG,KAAK,GAAGN,EAAEsM,KAAK,GAAGhM,IAAImG,EAAEokD,OAAO,CAAC,IAAIjkD,EAAEH,EAAEkjD,UAAUC,iBAAiB/iD,EAAED,EAAET,EAAEC,EAAED,EAAE7F,EAAE,GAAG,GAAGwG,EAAEF,EAAET,EAAEM,EAAE8iD,SAASnsB,MAAMh3B,EAAE6jD,GAAG3pD,EAAE,GAAG,GAAGqG,EAAE,CAAC,CAACE,EAAED,EAAEV,EAAEE,EAAEF,EAAE5F,EAAE,GAAG,IAAI,CAACwG,EAAEF,EAAEV,EAAEO,EAAE8iD,SAASlsB,OAAOj3B,EAAE8jD,GAAG5pD,EAAE,GAAG,IAAI,CAAC,IAAIyG,EAAEujD,GAAG,CAACC,OAAO/jD,EAAEgkD,aAAa9jD,EAAE+jD,WAAWvrD,EAAEwrD,WAAW/jD,EAAEqjD,WAAWtqD,EAAEirD,QAAQnnD,IAAIwD,EAAED,EAAE8iD,SAAS5iD,EAAEF,EAAE6iD,iBAAiBzjD,EAAEA,GAAGM,EAAEojD,SAAS1jD,IAAIa,EAAEb,GAAGM,EAAEojD,SAAS3jD,IAAIc,EAAEd,EAAEO,EAAEojD,SAAS7iD,EAAEP,EAAEkjD,UAAUC,iBAAiB3iD,CAAC,CAAC,CAAC,MAAM7D,GAAGX,EAAE,CAAC2qC,MAAMhqC,EAAE,CAAC,QAAQ,IAAIkD,IAAIA,EAAE4mC,OAAO9rC,EAAErC,EAAEsuC,SAASjsC,EAAEb,KAAKxB,EAAE,CAAC,QAAQ,GAAG0D,EAAE,MAAMA,EAAE2qC,KAAK,CAAC,CAAC,GAAGjnC,IAAIhG,EAAEH,GAAE,GAAIT,IAAIyG,GAAG9F,IAAIf,GAAG+G,IAAI,CAAC,IAAIgB,EAAEimC,GAAGoiB,GAAG,CAAChF,OAAOprD,EAAEqwD,UAAUxvD,EAAEyqD,WAAWvrD,IAAI,GAAGiI,EAAED,EAAE,GAAGE,EAAEF,EAAE,GAAG,MAAMlB,GAAGA,EAAEzG,EAAES,EAAEmH,EAAEC,GAAG,MAAMlH,GAAGA,EAAEX,EAAE4H,EAAEC,GAAGjI,GAAG,MAAM+G,GAAGA,EAAE3G,EAAE6H,EAAE,CAAC,CAAC,SAASjH,IAAI,IAAIiD,EAAE7D,EAAE,GAAGL,EAAE,CAAC,IAAIuD,EAAE0qC,GAAGge,GAAGllD,EAAE/G,GAAG,GAAG8G,EAAEvD,EAAE,GAAGrB,EAAEqB,EAAE,GAAG,GAAG,IAAIuD,GAAG,IAAI5E,EAAE,CAAC,IAAIpB,EAAEK,IAAIxB,EAAEmB,EAAE2rB,UAAUrrB,EAAEN,EAAEwwD,MAAM5tD,EAAEuD,GAAG,QAAQ/C,EAAER,EAAEuD,SAAI,IAAS/C,EAAEA,EAAE,GAAG4C,EAAEnH,EAAE,GAAG+D,EAAEsD,GAAG,QAAQ3G,EAAEqD,EAAEsD,SAAI,IAAS3G,EAAEA,EAAE,GAAG6B,EAAEvC,EAAE,GAAGyB,EAAE,CAAC6F,EAAEH,EAAEE,EAAE9E,KAAKoC,EAAEZ,EAAE,KAAK,CAAC3C,EAAEqzC,sBAAsBnzC,EAAE,CAAC,CAAC,SAASgG,EAAE/C,GAAG,IAAI4C,EAAE5E,EAAEf,IAAIJ,EAAEmB,EAAEqpD,WAAW5rD,EAAEuC,EAAEqvD,qBAAqBxqD,EAAE7E,EAAEsvD,eAAexxD,EAAEkC,EAAEuqB,UAAUvrB,EAAEgB,EAAEuqD,SAASroD,EAAElC,EAAEwqD,WAAWlsD,EAAE0B,EAAEuvD,kBAAkBzwD,EAAEkB,EAAEwvD,gBAAgBptD,EAAEpC,EAAEyvD,qBAAqB1wD,EAAEiB,EAAE0vD,sBAAsBxwD,GAAE,EAAGZ,GAAGwG,GAAGrH,IAAIM,IAAI,QAAQ6G,EAAE/F,EAAEyM,IAAIvN,UAAK,IAAS6G,OAAE,EAAOA,EAAEopD,WAAWjvD,IAAI+F,GAAGxG,GAAGP,IAAI,MAAMI,GAAGA,EAAEJ,IAAI,IAAIgH,EAAEulD,GAAGtoD,EAAE8gD,YAAY,CAACv4B,UAAUzsB,EAAEysD,SAASvrD,EAAEwrD,WAAWtoD,IAAI,GAAGV,EAAEuD,EAAEnG,EAAE,SAASoD,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE5E,EAAEwB,EAAE3C,EAAED,EAAE,IAAI+qC,IAAI,IAAI,IAAI,IAAIlsC,EAAEkuC,GAAG3pC,GAAG6C,EAAEpH,EAAEouC,QAAQhnC,EAAEinC,KAAKjnC,EAAEpH,EAAEouC,OAAO,CAAC,IAAI/tC,EAAEiuC,GAAGlnC,EAAEtD,MAAM,GAAGrC,EAAEpB,EAAE,GAAGkB,EAAElB,EAAE,GAAG,IAAIkB,EAAEgvD,UAAUhvD,EAAEqjC,KAAKhhC,MAAMrC,EAAEwqD,WAAWuE,GAAG/uD,EAAEgD,MAAMhD,EAAE2wD,WAAWxxD,QAAG,IAASa,EAAE2wD,WAAW,CAAC,IAAIztD,EAAEF,EAAEsJ,IAAIpM,GAAGgD,GAAGtD,EAAEyM,IAAInM,EAAE,CAACmjC,GAAGnjC,EAAEupD,SAASvmD,EAAEumD,UAAU,CAAC1jD,EAAE,EAAED,EAAE,GAAGuqB,SAAS,CAACtqB,EAAE9F,EAAE8F,EAAE7C,EAAEqmD,UAAUC,iBAAiBzjD,EAAED,EAAE7F,EAAE6F,EAAE5C,EAAEqmD,UAAUC,iBAAiB1jD,GAAG2kD,OAAOvnD,EAAEunD,OAAOD,SAAStnD,EAAEsnD,SAASd,OAAOxmD,EAAEwmD,OAAOgB,aAAaxnD,EAAEwnD,aAAanB,UAAU,CAACC,iBAAiBtmD,EAAEqmD,UAAUC,kBAAkB,CAACzjD,EAAE,EAAED,EAAE,IAAIqjD,SAAS,CAACnsB,MAAM,QAAQx6B,EAAEU,EAAEimD,SAASnsB,aAAQ,IAASx6B,EAAEA,EAAE,EAAEy6B,OAAO,QAAQp9B,EAAEqD,EAAEimD,SAASlsB,cAAS,IAASp9B,EAAEA,EAAE,IAAI,CAAC,CAAC,CAAC,MAAMmD,GAAG4C,EAAE,CAAConC,MAAMhqC,EAAE,CAAC,QAAQ,IAAI6C,IAAIA,EAAEinC,OAAO9rC,EAAEvC,EAAEwuC,SAASjsC,EAAEb,KAAK1B,EAAE,CAAC,QAAQ,GAAGmH,EAAE,MAAMA,EAAEonC,KAAK,CAAC,CAAC,OAAOptC,CAAC,CAAhuB,CAAkuBC,EAAEgG,EAAEE,EAAEhH,GAAGa,EAAEsM,KAAK,IAAI7J,GAAGvC,IAAIf,GAAGqE,GAAG,CAAC,IAAI4C,EAAE+mC,GAAGoiB,GAAG,CAAChF,OAAOprD,EAAEqwD,UAAUxvD,EAAEyqD,WAAWxqD,IAAI,GAAGoG,EAAED,EAAE,GAAGrH,EAAEqH,EAAE,GAAG,MAAM3D,GAAGA,EAAEW,EAAE8gD,YAAYlkD,EAAEqG,EAAEtH,GAAG,MAAMmB,GAAGA,EAAEkD,EAAE8gD,YAAY79C,EAAEtH,GAAGI,GAAG,MAAMqE,GAAGA,EAAEJ,EAAE8gD,YAAYnlD,EAAE,CAAC,CAACqB,EAAE4jD,GAAG9jD,GAAG,IAAIkG,EAA57+B,WAAc,IAAIhD,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE4hD,GAAGxmD,EAAE2mD,GAAGnlD,EAAEolD,GAAG/nD,EAAEgoD,GAAGjoD,EAAE,CAAE,EAACnB,EAAE09C,GAAG,QAAQ,OAAO,OAAOt2C,EAAE,EAAE/G,EAAE,EAAE,SAASoB,EAAE8C,GAAGA,EAAE8I,GAAG,iBAAiB9L,GAAGkrB,OAAOrrB,GAAGiM,GAAG,kBAAkBhM,GAAGgM,GAAG,iBAAiBhG,EAAEsgD,IAAIt6C,GAAG,iCAAiC/M,GAAGupC,MAAM,eAAe,QAAQA,MAAM,8BAA8B,gBAAgB,CAAC,SAAStoC,EAAEwC,EAAE3C,GAAG,IAAIwC,GAAGuD,EAAEzF,KAAK6L,KAAKxJ,EAAE3C,GAAG,CAAC,IAAID,EAAEwD,EAAE4I,KAAKhL,EAAEb,KAAK6L,KAAKxJ,EAAE3C,GAAG2C,EAAE3C,EAAE,SAASD,IAAIgkD,GAAGphD,EAAEouD,MAAM9kD,GAAG,iBAAiB5I,EAAEojD,IAAIx6C,GAAG,eAAexM,EAAEgnD,IAAIM,GAAGpkD,EAAEouD,MAAMpK,GAAGhkD,GAAGvC,GAAE,EAAG+C,EAAER,EAAE0hD,QAAQ/kD,EAAEqD,EAAE2hD,QAAQvkD,EAAE,QAAQ4C,GAAG,CAAC,CAAC,SAASU,EAAEb,GAAG,GAAGqkD,GAAGrkD,IAAIpC,EAAE,CAAC,IAAI2F,EAAEvD,EAAE6hD,QAAQlhD,EAAEhC,EAAEqB,EAAE8hD,QAAQhlD,EAAEc,EAAE2F,EAAEA,EAAE5E,EAAEA,EAAElC,CAAC,CAACc,EAAEixD,MAAM,OAAOxuD,EAAE,CAAC,SAAS/C,EAAE0D,GAAG4gD,GAAG5gD,EAAE4tD,MAAM9kD,GAAG,8BAA8B,MAAMi7C,GAAG/jD,EAAE4tD,KAAK3wD,GAAGymD,GAAG1jD,GAAGpD,EAAEixD,MAAM,MAAM7tD,EAAE,CAAC,SAASlD,EAAEkD,EAAE7D,GAAG,GAAGyG,EAAEzF,KAAK6L,KAAKhJ,EAAE7D,GAAG,CAAC,IAAIc,EAAEoC,EAAEG,EAAEQ,EAAE8tD,eAAejxD,EAAEmB,EAAEb,KAAK6L,KAAKhJ,EAAE7D,GAAGS,EAAE4C,EAAEtB,OAAO,IAAIjB,EAAE,EAAEA,EAAEL,IAAIK,GAAGoC,EAAEe,EAAE4I,KAAKnM,EAAEmD,EAAE7D,EAAEqD,EAAEvC,GAAGmnD,WAAW5kD,EAAEvC,OAAOumD,GAAGxjD,GAAGX,EAAE,QAAQW,EAAER,EAAEvC,IAAI,CAAC,CAAC,SAAS6F,EAAE9C,GAAG,IAAI7D,EAAEc,EAAEoC,EAAEW,EAAE8tD,eAAelrD,EAAEvD,EAAEnB,OAAO,IAAI/B,EAAE,EAAEA,EAAEyG,IAAIzG,GAAGc,EAAEL,EAAEyC,EAAElD,GAAGioD,eAAeV,GAAG1jD,GAAG/C,EAAE,OAAO+C,EAAEX,EAAElD,IAAI,CAAC,SAASJ,EAAEiE,GAAG,IAAI7D,EAAEc,EAAE2F,EAAE5C,EAAE8tD,eAAe9vD,EAAE4E,EAAE1E,OAAO,IAAImB,GAAGksC,aAAalsC,GAAGA,EAAEqsC,YAAY,WAAWrsC,EAAE,IAAK,GAAE,KAAKlD,EAAE,EAAEA,EAAE6B,IAAI7B,GAAGc,EAAEL,EAAEgG,EAAEzG,GAAGioD,eAAeZ,GAAGxjD,GAAG/C,EAAE,MAAM+C,EAAE4C,EAAEzG,IAAI,CAAC,SAASiE,EAAEJ,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAInB,EAAEf,EAAEkB,EAAEkD,EAAEzE,EAAE+lB,OAAOllB,EAAEukD,GAAG7iD,GAAGf,EAAEd,GAAG,GAAG,OAAOa,EAAEwC,EAAErC,KAAK6C,EAAE,IAAIikD,GAAG,cAAc,CAACnD,YAAY7jD,EAAEknD,OAAOjnD,EAAEknD,WAAWxhD,EAAEyhD,OAAOxhD,EAAEE,EAAEzG,EAAE,GAAGwG,EAAExG,EAAE,GAAGgoD,GAAG,EAAEzH,GAAG,EAAEsG,SAASjjD,IAAIb,IAAI,OAAOxC,EAAEG,EAAE+F,EAAEzG,EAAE,IAAI,EAAER,EAAEkB,EAAE8F,EAAExG,EAAE,IAAI,EAAE,SAASW,EAAEe,EAAEwB,EAAE/D,GAAG,IAAIqB,EAAEgG,EAAExG,EAAE,OAAO0B,GAAG,IAAI,QAAQpB,EAAEgG,GAAG3F,EAAEH,EAAE+F,IAAI,MAAM,IAAI,aAAajG,EAAEgG,KAAKC,EAAE,IAAI,OAAOvG,EAAEukD,GAAGplD,GAAG+D,EAAErD,GAAGW,EAAE+F,EAAE3C,EAAE/C,KAAKa,EAAEgC,EAAE,IAAIikD,GAAGjmD,EAAE,CAAC8iD,YAAYthD,EAAE0kD,QAAQlnD,EAAEmnD,OAAOjnD,EAAEknD,WAAWxhD,EAAEyhD,OAAOvnD,EAAEiG,EAAEzG,EAAE,GAAGO,EAAEiG,EAAExG,EAAE,GAAGR,EAAEwoD,GAAGhoD,EAAE,GAAGwG,EAAE,GAAG+5C,GAAGvgD,EAAE,GAAGwG,EAAE,GAAGqgD,SAASjjD,IAAIb,EAAE,CAAC,CAAC,OAAOnC,EAAEgrB,OAAO,SAASloB,GAAG,OAAO/B,UAAUC,QAAQ0E,EAAE,mBAAmB5C,EAAEA,EAAEgkD,KAAKhkD,GAAG9C,GAAG0F,CAAC,EAAE1F,EAAE6wD,UAAU,SAAS/tD,GAAG,OAAO/B,UAAUC,QAAQF,EAAE,mBAAmBgC,EAAEA,EAAEgkD,GAAGhkD,GAAG9C,GAAGc,CAAC,EAAEd,EAAEgnD,QAAQ,SAASlkD,GAAG,OAAO/B,UAAUC,QAAQsB,EAAE,mBAAmBQ,EAAEA,EAAEgkD,GAAGhkD,GAAG9C,GAAGsC,CAAC,EAAEtC,EAAE8wD,UAAU,SAAShuD,GAAG,OAAO/B,UAAUC,QAAQrB,EAAE,mBAAmBmD,EAAEA,EAAEgkD,KAAKhkD,GAAG9C,GAAGL,CAAC,EAAEK,EAAE4L,GAAG,WAAW,IAAI9I,EAAEvE,EAAEqN,GAAGrK,MAAMhD,EAAEwC,WAAW,OAAO+B,IAAIvE,EAAEyB,EAAE8C,CAAC,EAAE9C,EAAE+wD,cAAc,SAASjuD,GAAG,OAAO/B,UAAUC,QAAQpC,GAAGkE,GAAGA,GAAGA,EAAE9C,GAAG+pB,KAAK+iC,KAAKluD,EAAE,EAAEoB,CAAC,CAAu16BgxD,GAAKplD,GAAG,SAAS,SAAS9I,GAAG,IAAI7D,EAAEc,IAAIoC,EAAElD,EAAE4wD,QAAQnqD,EAAEzG,EAAEgyD,kBAAkBnwD,EAAE7B,EAAEosB,UAAU1rB,EAAEV,EAAEosD,SAAS3rD,EAAET,EAAEqsD,WAAW,IAAI5lD,GAAGG,EAAE/C,GAAG,IAAIvE,EAAE6sD,GAAGtoD,EAAE8gD,YAAY,CAACv4B,UAAUvqB,EAAEuqD,SAAS1rD,EAAE2rD,WAAW5rD,IAAI4C,EAAE/D,EAAEK,GAAG,MAAMuD,OAAE,EAAOA,EAAEkiD,0BAA0B,KAAK1+C,EAAE4lD,GAAGzoD,EAAE8gD,YAAYhlD,EAAG,IAAGgN,GAAG,QAAM,SAAW9I,GAAG,IAAI7D,EAAEkD,EAAEuD,EAAE3F,IAAIe,EAAE4E,EAAEwrD,kBAAkBvxD,EAAE+F,EAAE2lB,UAAUvrB,EAAE4F,EAAE2lD,SAASroD,EAAE0C,EAAE4lD,WAAWlsD,EAAEsG,EAAEurD,kBAAkBrxD,EAAEwrD,GAAGtoD,EAAE8gD,YAAY,CAACv4B,UAAU1rB,EAAE0rD,SAASvrD,EAAEwrD,WAAWtoD,IAAI,IAAIzE,GAAGuC,GAAGd,IAAIzB,GAAE,EAAGsB,MAAMG,EAAE,CAAC,IAAI4F,EAAEhG,EAAE4rD,UAAU,QAAQvsD,EAAEqD,EAAEuD,SAAI,IAAS5G,EAAEA,EAAE,GAAGJ,EAAEe,EAAE6rD,UAAU,QAAQtpD,EAAEG,EAAEsD,SAAI,IAASzD,EAAEA,EAAE,GAAG4nB,KAAK+iC,KAAKlnD,EAAEA,EAAE/G,EAAEA,GAAGO,GAAGyG,EAAE/C,EAAE,EAAER,EAAEuD,IAAIjG,EAAE4rD,UAAUlpD,EAAEsD,IAAIhG,EAAE6rD,WAAW/rD,GAAGM,IAAI2F,EAAE4lD,GAAGzoD,EAAE8gD,YAAYhlD,GAAGsE,EAAEtD,EAAEkD,EAAE8gD,aAAc,IAAGh4C,GAAG,OAAO,SAAS9I,GAAG,GAAG9C,IAAIzB,GAAE,EAAGyB,GAAE,EAAGiuC,qBAAqBtuC,GAAGD,EAAEsM,KAAK,GAAG,CAAC,IAAI/M,EAAEc,IAAIoC,EAAElD,EAAEkrD,WAAWzkD,EAAEzG,EAAEgxD,oBAAoB3tD,EAAErD,EAAEkyD,eAAexrD,EAAE1G,EAAEmyD,oBAAoB,GAAG1rD,EAAEhG,GAAE,GAAIoB,GAAGwB,IAAIzD,GAAG8G,EAAE,CAAC,IAAI/G,EAAEiuC,GAAGoiB,GAAG,CAAChF,OAAOprD,EAAEqwD,UAAUxvD,EAAEyqD,WAAWhoD,IAAI,GAAGrC,EAAElB,EAAE,GAAGoE,EAAEpE,EAAE,GAAG,MAAMkC,GAAGA,EAAEgC,EAAE8gD,YAAYlkD,EAAEI,EAAEkD,GAAG,MAAMV,GAAGA,EAAEQ,EAAE8gD,YAAY9jD,EAAEkD,GAAGnE,GAAG,MAAM8G,GAAGA,EAAE7C,EAAE8gD,YAAY5gD,EAAE,CAAC,CAAE,IAAGgoB,QAAM,SAAWloB,GAAG,IAAI7D,EAAE6D,EAAEmkD,OAAO,OAAOnkD,EAAE0kD,UAAUxkD,IAAI+rD,GAAG9vD,EAAE,IAAIiwB,OAAOlsB,GAAGpD,OAAOR,GAAG2vD,GAAG9vD,EAAEG,EAAEQ,GAAI,IAAGE,EAAEG,KAAK6F,EAAE,EAAEpB,QAAQ,WAAW,MAAM5E,GAAGA,EAAE8L,GAAG,QAAQ,KAAK,EAAE,CAAC,SAASylD,GAAGvuD,EAAE7D,EAAEc,EAAEoC,GAAG,OAAOlD,EAAEc,IAAI,IAAIqrB,QAAM,SAAWnsB,EAAEyG,GAAG,MAAM,GAAGwpB,OAAOpsB,EAAEqgC,GAAG,KAAKjU,OAAOxpB,EAAEy9B,GAAG,KAAKjU,OAAOnvB,KAAKoC,GAAGlD,EAAEkC,KAAK,CAACgiC,GAAGz9B,EAAEy9B,IAAI,KAAK/iC,KAAKL,EAAEkqD,OAAOnnD,EAAEqgC,GAAGt9B,EAAE/C,EAAEumD,UAAUC,iBAAiBzjD,EAAEH,EAAEG,EAAEH,EAAEo3B,MAAM,EAAEl3B,EAAE9C,EAAEumD,UAAUC,iBAAiB1jD,EAAEF,EAAEE,EAAEF,EAAEq3B,OAAO,IAAI99B,CAAE,GAAE,GAAG,CAAC,SAASqyD,GAAGxuD,EAAE7D,GAAG,OAAO6D,KAAK,MAAM7D,OAAE,EAAOA,EAAEqhD,UAAUhS,SAAS,WAAW,UAAU,MAAMrvC,OAAE,EAAOA,EAAEqhD,UAAUhS,SAAS,WAAW,SAAS,KAAK,CAAC,IAAIijB,GAAG,WAAW,OAAM,CAAE,EAAEC,GAAG,KAAK,SAASC,GAAG3uD,EAAE7D,GAAG,IAAIc,EAAEd,EAAEyyD,OAAOvvD,EAAElD,EAAE0yD,eAAejsD,EAAEzG,EAAE2yD,WAAW9wD,EAAE7B,EAAE4yD,aAAavvD,EAAErD,EAAE6yD,SAASnyD,EAAEV,EAAE8yD,IAAIryD,EAAET,EAAE+yD,IAAIzzD,EAAEU,EAAEgzD,OAAOtsD,EAAE1G,EAAEizD,kBAAkBtzD,OAAE,IAAS+G,EAAE4rD,GAAG5rD,EAAE3F,EAAE,WAAWsC,EAAExC,EAAEC,EAAEJ,EAAE89C,cAAc,IAAIvuB,OAAOxvB,EAAE,2BAA2BwvB,OAAO3wB,EAAE,KAAK2wB,OAAO,MAAMnvB,OAAE,EAAOA,EAAEkqD,OAAO,KAAK/6B,OAAO,MAAMnvB,OAAE,EAAOA,EAAEojC,GAAG,KAAKjU,OAAO,MAAMnvB,OAAE,EAAOA,EAAEK,KAAK,OAAO,KAAK4C,EAAEuoD,GAAGzoD,GAAG1D,EAAE4D,EAAE6C,EAAEjG,EAAEoD,EAAE4C,EAAEA,EAAEjG,EAAEwyD,iBAAiB/yD,EAAEQ,GAAGf,GAAG,MAAM+G,OAAE,EAAOA,EAAE06C,UAAUhS,SAAS,GAAGpf,OAAOxvB,EAAE,mBAAmBkG,EAAE9F,EAAEoD,EAAE,CAACkvD,cAAcvzD,EAAEwzD,SAAQ,EAAGC,WAAW,KAAKC,UAAU,MAAM,GAAG1zD,EAAE,CAAC,IAAIgB,EAAEyxD,QAAG,EAAOzyD,GAAGgH,EAAEhH,EAAE6hD,aAAa,eAAe56C,EAAEjH,EAAE6hD,aAAa,iBAAiB36C,EAAElH,EAAEyhD,UAAUhS,SAAS,eAAe7vC,EAAEI,EAAEyhD,UAAUhS,SAAS,kBAAkB,IAAIzoC,EAAE,OAAO3C,EAAE,IAAI8C,EAAE,CAACmgB,OAAOnmB,EAAE6F,EAAEH,EAAE8iD,aAAaxoD,EAAE8F,EAAEhF,EAAEmmD,OAAOjnD,EAAE0F,EAAEG,EAAE4iD,aAAazoD,EAAEc,EAAEgF,GAAG5C,EAAEovD,WAAWtsD,EAAED,GAAGtH,IAAI0D,IAAIupD,uBAAG8B,OAAOxtD,GAAG,WAAWH,IAAIG,GAAG,WAAWH,EAAEgG,IAAIH,GAAGI,IAAIhF,KAAKoC,EAAEqvD,UAAU,CAACtI,OAAOpkD,EAAE2sD,SAAS1sD,EAAE1F,KAAKP,GAAGqD,EAAEmvD,QAAQzzD,EAAEoH,GAAG,CAAC,OAAO9C,CAAC,CAAC,IAAIuvD,GAAG,CAACC,cAAc,SAAS5vD,EAAE7D,GAAG,IAAIc,EAAEoC,EAAElD,EAAE0yD,eAAejsD,EAAEzG,EAAE0zD,iBAAiB7xD,EAAE7B,EAAEuzD,SAASlwD,EAAErD,EAAEgrD,OAAOtqD,EAAEV,EAAE2zD,gBAAgBlzD,EAAET,EAAE4zD,SAASt0D,EAAEU,EAAE4wD,QAAQlqD,EAAE1G,EAAEkrD,WAAWvrD,EAAEK,EAAE+yD,IAAIhyD,EAAEf,EAAE6zD,iBAAiBhzD,EAAEb,EAAEgzD,OAAOjvD,EAAE/D,EAAEixD,MAAM9wD,EAAEH,EAAE8zD,iBAAiBnzD,EAAEX,EAAE+zD,eAAeptD,EAAE3G,EAAEg0D,UAAUp0D,EAAEI,EAAEi0D,aAAahwD,EAAEjE,EAAEizD,kBAAkBryD,OAAE,IAASqD,EAAEquD,GAAGruD,EAAE2C,EAAE5G,EAAEk0D,gBAAgBrtD,EAAE7G,EAAEm0D,iBAAiBrtD,EAAE9G,EAAEo0D,aAAa50D,EAAEQ,EAAEq0D,yBAAyBttD,EAAvhrB,SAASlD,GAAG,IAAI7D,EAAE,OAAO,QAAQA,EAAE6D,EAAEywD,mBAAc,IAASt0D,OAAE,EAAOA,EAAEgB,KAAK6C,MAAM,OAAOlB,aAAQ,IAASA,YAAO,EAAOA,OAAOW,SAAS,CAAi5qBixD,CAAG1wD,EAAEmkD,QAAQhhD,EAAE,EAAEC,EAAEqlD,GAAGzoD,GAAGqD,EAAED,EAAEL,EAAEO,EAAEF,EAAEN,EAAES,EAAE,MAAML,OAAE,EAAOA,EAAEmsD,iBAAiBhsD,EAAEC,GAAGE,EAAEgrD,GAAG3xD,EAAE0G,GAAGE,EAAE,MAAMhI,OAAE,EAAOA,EAAE8lD,wBAAwB,GAAG99C,GAAGD,EAAE,CAAC,IAAIE,EAAE+kD,GAAGzoD,EAAEyD,GAAGE,GAAE,EAAGC,EAAE,KAAKC,GAAE,EAAGC,EAAE,KAAKC,EAAE,SAAS/D,GAAG,IAAI7D,EAAEc,EAAEoC,EAAEW,EAAEqnD,WAAWzkD,EAAE5C,EAAEmnD,OAAOnpD,EAAEgC,EAAE0vD,SAASlwD,EAAEQ,EAAE2wD,WAAW9zD,EAAE,GAAG,IAAI,IAAI,IAAID,EAAE+sC,GAAGtqC,GAAG5D,EAAEmB,EAAEitC,QAAQpuC,EAAEquC,KAAKruC,EAAEmB,EAAEitC,OAAO,CAAC,IAAIhnC,EAAEknC,GAAGtuC,EAAE8D,MAAM,GAAG,GAAG,GAAGsD,EAAE0jD,UAAUqK,aAAa,CAAC,IAAI90D,EAAE,GAAGswB,OAAOxpB,EAAE,KAAKwpB,OAAOpuB,EAAE,KAAKouB,OAAO5sB,GAAGtC,EAAEqxD,GAAG1rD,EAAEA,EAAE0jD,UAAUqK,aAAa,SAAS90D,GAAGkB,EAAEuxD,GAAG1rD,EAAEA,EAAE0jD,UAAUqK,aAAa,SAAS90D,GAAGe,EAAEwB,KAAKI,MAAM5B,EAAEqtC,GAAGA,GAAG,GAAGH,GAAG7sC,IAAG,GAAI6sC,GAAG/sC,IAAG,GAAI,CAAC,CAAC,CAAC,MAAMgD,GAAG7D,EAAE,CAAC6tC,MAAMhqC,EAAE,CAAC,QAAQ,IAAIvE,IAAIA,EAAEquC,OAAO7sC,EAAEL,EAAEqtC,SAAShtC,EAAEE,KAAKP,EAAE,CAAC,QAAQ,GAAGT,EAAE,MAAMA,EAAE6tC,KAAK,CAAC,CAAC,OAAOntC,CAAC,CAArd,CAAud,CAACwqD,WAAWxkD,EAAEskD,OAAO3nD,EAAEkwD,SAAS1xD,EAAE2yD,WAAWntD,IAAIR,EAAE,CAAC6tD,mBAAmBntD,EAAEotD,iBAAiB,KAAKC,sBAAsBrC,GAAG,CAACvH,OAAO3nD,EAAEkwD,SAAS1xD,EAAEV,KAAKkG,GAAGwtD,oBAAoB,OAAO,MAAMl0D,GAAGA,EAAEkD,EAAE,CAACmnD,OAAO3nD,EAAEkwD,SAAS1xD,EAAE2yD,WAAWntD,IAAIN,EAAE08C,iBAAiB,YAAY37C,GAAGf,EAAE08C,iBAAiB,UAAU17C,GAAGhB,EAAE08C,iBAAiB,YAAY37C,GAAGf,EAAE08C,iBAAiB,WAAW17C,EAAE,CAAC,SAASF,IAAI,GAAG9G,GAAGuG,EAAE,CAAC,IAAIzD,EAAE+pC,GAAGge,GAAGrkD,EAAED,GAAG,GAAGtH,EAAE6D,EAAE,GAAG/C,EAAE+C,EAAE,GAAGE,EAAE,CAAC6C,EAAE5G,EAAE2G,EAAE7F,IAAIkG,EAAE+sC,sBAAsBlsC,EAAE,CAAC,CAAC,SAASC,EAAEjE,GAAGrE,KAAKuI,EAAElE,GAAG,IAAI7D,EAAE8G,IAAIS,EAAE+kD,GAAGzoD,EAAEyD,GAAGxG,EAAE,SAAS+C,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAE,GAAGwB,EAAE,IAAI,IAAI,IAAI,IAAI3C,EAAE8sC,GAAG1sC,GAAGL,EAAEC,EAAEgtC,QAAQjtC,EAAEktC,KAAKltC,EAAEC,EAAEgtC,OAAO,CAAC,IAAIpuC,EAAEmB,EAAE2C,MAAMsD,EAAEokB,KAAK+iC,KAAK/iC,KAAK6kC,IAAIrwD,EAAEsH,EAAE/C,EAAE+C,EAAE,GAAGkkB,KAAK6kC,IAAIrwD,EAAEqH,EAAE9C,EAAE8C,EAAE,IAAID,GAAG1G,IAAI0G,EAAErD,EAAExB,EAAE,CAACvC,GAAGoH,IAAIrD,GAAGxB,EAAEK,KAAK5C,GAAG+D,EAAEqD,EAAE,CAAC,CAAC,MAAM7C,GAAGX,EAAE,CAAC2qC,MAAMhqC,EAAE,CAAC,QAAQ,IAAIpD,IAAIA,EAAEktC,OAAOlnC,EAAE/F,EAAEotC,SAASrnC,EAAEzF,KAAKN,EAAE,CAAC,QAAQ,GAAGwC,EAAE,MAAMA,EAAE2qC,KAAK,CAAC,CAAC,OAAOhsC,EAAEE,OAAO,IAAIF,EAAEE,OAAOF,EAAE,GAAGA,EAAEq4B,eAAer2B,GAAG,MAAM,WAAWA,EAAE1C,IAAK,KAAIU,EAAE,GAAG,IAAI,CAA7X,CAA+XkqD,GAAGxkD,EAAEvH,GAAE,EAAG,CAAC,EAAE,IAAIyG,EAAEmB,GAAGJ,IAAIK,IAAIL,GAAE,GAAI,IAAI9G,EAAEpB,EAAEoH,EAAE3F,EAAEyxD,GAAG3uD,EAAE,CAAC4uD,OAAO3xD,EAAE4xD,eAAexvD,EAAEyvD,WAAWtvD,EAAEuvD,aAAa/wD,EAAEgxD,SAASpyD,EAAE,SAAS,SAASwyD,kBAAkBryD,EAAEkyD,IAAI/rD,EAAEgsD,IAAIpzD,EAAEqzD,OAAOnyD,IAAI8G,EAAE5G,EAAEoyD,cAAc1rD,EAAE1G,EAAEsyD,WAAW3rD,EAAE3G,EAAEqyD,QAAQvsD,EAAE,CAAC+tD,sBAAsBrC,GAAGmC,mBAAmB5zD,GAAG4G,EAAEskD,GAAG,CAACplD,EAAE9F,EAAE8F,EAAED,EAAE7F,EAAE6F,GAAG3G,GAAGuH,EAAEotD,kBAAkBj0D,IAAII,EAAExB,EAAEoI,EAAEhB,EAAE,KAAKpH,EAAEoH,EAAE,QAAQhG,IAAIpB,IAAIoH,EAAE,WAAWA,GAAGmuD,oBAAoB9zD,EAAEuyD,WAAW,CAAC,SAASvrD,EAAElE,IAAI/C,GAAG6G,IAAIF,GAAGC,IAAI,MAAMf,GAAGA,EAAEc,IAAI,MAAM7H,GAAGA,EAAEiE,GAAGnD,IAAI,MAAMkG,GAAGA,EAAE/C,IAAI1D,IAAI6uC,qBAAqBhoC,GAAGQ,GAAE,EAAGE,GAAE,EAAGD,EAAE,KAAKE,EAAE,KAAK4qD,GAAG,KAAKxrD,EAAEw8C,oBAAoB,YAAYz7C,GAAGf,EAAEw8C,oBAAoB,UAAUx7C,GAAGhB,EAAEw8C,oBAAoB,YAAYz7C,GAAGf,EAAEw8C,oBAAoB,WAAWx7C,EAAE,CAAC,EAAEqrD,QAAQZ,IAAI,SAASsC,GAAGjxD,EAAE7D,EAAEc,GAAG+C,EAAE/D,UAAUE,EAAEF,UAAUgB,EAAEA,EAAEqS,YAAYtP,CAAC,CAAC,SAASkxD,GAAGlxD,EAAE7D,GAAG,IAAIc,EAAEjB,OAAOgnB,OAAOhjB,EAAE/D,WAAW,IAAI,IAAIoD,KAAKlD,EAAEc,EAAEoC,GAAGlD,EAAEkD,GAAG,OAAOpC,CAAC,CAAC,SAASk0D,MAAM,IAAIC,GAAG,GAAGC,GAAG,EAAED,GAAGE,GAAG,sBAAsBC,GAAG,oDAAoDC,GAAG,qDAAqDC,GAAG,qBAAqBC,GAAG,IAAIpnD,OAAO,UAAUgnD,MAAMA,MAAMA,UAAUK,GAAG,IAAIrnD,OAAO,UAAUknD,MAAMA,MAAMA,UAAUI,GAAG,IAAItnD,OAAO,WAAWgnD,MAAMA,MAAMA,MAAMC,UAAUM,GAAG,IAAIvnD,OAAO,WAAWknD,MAAMA,MAAMA,MAAMD,UAAUO,GAAG,IAAIxnD,OAAO,UAAUinD,MAAMC,MAAMA,UAAUO,GAAG,IAAIznD,OAAO,WAAWinD,MAAMC,MAAMA,MAAMD,UAAUS,GAAG,CAACC,UAAU,SAASC,aAAa,SAASC,KAAK,MAAMC,WAAW,QAAQC,MAAM,SAASC,MAAM,SAASC,OAAO,SAASC,MAAM,EAAEC,eAAe,SAASC,KAAK,IAAIC,WAAW,QAAQC,MAAM,SAASC,UAAU,SAASC,UAAU,QAAQC,WAAW,QAAQC,UAAU,SAASC,MAAM,SAASC,eAAe,QAAQC,SAAS,SAASC,QAAQ,SAASC,KAAK,MAAMC,SAAS,IAAIC,SAAS,MAAMC,cAAc,SAASC,SAAS,SAASC,UAAU,MAAMC,SAAS,SAASC,UAAU,SAASC,YAAY,QAAQC,eAAe,QAAQC,WAAW,SAASC,WAAW,SAASC,QAAQ,QAAQC,WAAW,SAASC,aAAa,QAAQC,cAAc,QAAQC,cAAc,QAAQC,cAAc,QAAQC,cAAc,MAAMC,WAAW,QAAQC,SAAS,SAASC,YAAY,MAAMC,QAAQ,QAAQC,QAAQ,QAAQC,WAAW,QAAQC,UAAU,SAASC,YAAY,SAASC,YAAY,QAAQC,QAAQ,SAASC,UAAU,SAASC,WAAW,SAASC,KAAK,SAASC,UAAU,SAASC,KAAK,QAAQC,MAAM,MAAMC,YAAY,SAASC,KAAK,QAAQC,SAAS,SAASC,QAAQ,SAASC,UAAU,SAASC,OAAO,QAAQC,MAAM,SAASC,MAAM,SAASC,SAAS,SAASC,cAAc,SAASC,UAAU,QAAQC,aAAa,SAASC,UAAU,SAASC,WAAW,SAASC,UAAU,SAASC,qBAAqB,SAASC,UAAU,SAASC,WAAW,QAAQC,UAAU,SAASC,UAAU,SAASC,YAAY,SAASC,cAAc,QAAQC,aAAa,QAAQC,eAAe,QAAQC,eAAe,QAAQC,eAAe,SAASC,YAAY,SAASC,KAAK,MAAMC,UAAU,QAAQC,MAAM,SAASC,QAAQ,SAASC,OAAO,QAAQC,iBAAiB,QAAQC,WAAW,IAAIC,aAAa,SAASC,aAAa,QAAQC,eAAe,QAAQC,gBAAgB,QAAQC,kBAAkB,MAAMC,gBAAgB,QAAQC,gBAAgB,SAASC,aAAa,QAAQC,UAAU,SAASC,UAAU,SAASC,SAAS,SAASC,YAAY,SAASC,KAAK,IAAIC,QAAQ,SAASC,MAAM,QAAQC,UAAU,QAAQC,OAAO,SAASC,UAAU,SAASC,OAAO,SAASC,cAAc,SAASC,UAAU,SAASC,cAAc,SAASC,cAAc,SAASC,WAAW,SAASC,UAAU,SAASC,KAAK,SAASC,KAAK,SAASC,KAAK,SAASC,WAAW,SAASC,OAAO,QAAQC,cAAc,QAAQC,IAAI,SAASC,UAAU,SAASC,UAAU,QAAQC,YAAY,QAAQC,OAAO,SAASC,WAAW,SAASC,SAAS,QAAQC,SAAS,SAASC,OAAO,SAASC,OAAO,SAASC,QAAQ,QAAQC,UAAU,QAAQC,UAAU,QAAQC,UAAU,QAAQC,KAAK,SAASC,YAAY,MAAMC,UAAU,QAAQC,IAAI,SAASC,KAAK,MAAMC,QAAQ,SAASC,OAAO,SAASC,UAAU,QAAQC,OAAO,SAASC,MAAM,SAASC,MAAM,SAASC,WAAW,SAASC,OAAO,SAASC,YAAY,UAAU,SAASC,KAAK,OAAOryD,KAAKsyD,MAAMC,WAAW,CAAC,SAASC,KAAK,OAAOxyD,KAAKsyD,MAAMG,WAAW,CAAC,SAASC,GAAG17D,GAAG,IAAI7D,EAAEc,EAAE,OAAO+C,GAAGA,EAAE,IAAIu5C,OAAOla,eAAeljC,EAAEs1D,GAAGvnD,KAAKlK,KAAK/C,EAAEd,EAAE,GAAG+B,OAAO/B,EAAEq5B,SAASr5B,EAAE,GAAG,IAAI,IAAIc,EAAE0+D,GAAGx/D,GAAG,IAAIc,EAAE,IAAI2+D,GAAGz/D,GAAG,EAAE,GAAGA,GAAG,EAAE,IAAIA,GAAG,EAAE,GAAG,IAAIA,GAAG,GAAGA,IAAI,EAAE,GAAGA,EAAE,GAAG,IAAIc,EAAE4+D,GAAG1/D,GAAG,GAAG,IAAIA,GAAG,GAAG,IAAIA,GAAG,EAAE,KAAK,IAAIA,GAAG,KAAK,IAAIc,EAAE4+D,GAAG1/D,GAAG,GAAG,GAAGA,GAAG,EAAE,IAAIA,GAAG,EAAE,GAAGA,GAAG,EAAE,IAAIA,GAAG,EAAE,GAAG,IAAIA,IAAI,GAAGA,IAAI,EAAE,GAAGA,GAAG,KAAK,OAAOA,EAAEu1D,GAAGxnD,KAAKlK,IAAI,IAAI47D,GAAGz/D,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAEw1D,GAAGznD,KAAKlK,IAAI,IAAI47D,GAAG,IAAIz/D,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAEy1D,GAAG1nD,KAAKlK,IAAI67D,GAAG1/D,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,KAAKA,EAAE01D,GAAG3nD,KAAKlK,IAAI67D,GAAG,IAAI1/D,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,IAAIA,EAAE,KAAKA,EAAE21D,GAAG5nD,KAAKlK,IAAI87D,GAAG3/D,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAI,IAAIA,EAAE41D,GAAG7nD,KAAKlK,IAAI87D,GAAG3/D,EAAE,GAAGA,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAIA,EAAE,IAAI61D,GAAG91D,eAAe8D,GAAG27D,GAAG3J,GAAGhyD,IAAI,gBAAgBA,EAAE,IAAI47D,GAAGnmC,IAAIA,IAAIA,IAAI,GAAG,IAAI,CAAC,SAASkmC,GAAG37D,GAAG,OAAO,IAAI47D,GAAG57D,GAAG,GAAG,IAAIA,GAAG,EAAE,IAAI,IAAIA,EAAE,EAAE,CAAC,SAAS67D,GAAG77D,EAAE7D,EAAEc,EAAEoC,GAAG,OAAOA,GAAG,IAAIW,EAAE7D,EAAEc,EAAEw4B,KAAK,IAAImmC,GAAG57D,EAAE7D,EAAEc,EAAEoC,EAAE,CAAC,SAAS08D,GAAG/7D,EAAE7D,EAAEc,EAAEoC,GAAG,OAAO,IAAIpB,UAAUC,SAAS0E,EAAE5C,aAAamxD,KAAKvuD,EAAE84D,GAAG94D,IAAIA,EAAE,IAAIg5D,IAAIh5D,EAAEA,EAAE04D,OAAOj8D,EAAEuD,EAAE9F,EAAE8F,EAAE7F,EAAE6F,EAAEo5D,SAAS,IAAIJ,IAAI,IAAIA,GAAG57D,EAAE7D,EAAEc,EAAE,MAAMoC,EAAE,EAAEA,GAAG,IAAIuD,CAAC,CAAC,SAASg5D,GAAG57D,EAAE7D,EAAEc,EAAEoC,GAAG2J,KAAK3J,GAAGW,EAAEgJ,KAAKlM,GAAGX,EAAE6M,KAAKjM,GAAGE,EAAE+L,KAAKgzD,SAAS38D,CAAC,CAAC,SAAS48D,KAAK,MAAM,IAAIC,GAAGlzD,KAAK3J,KAAK68D,GAAGlzD,KAAKlM,KAAKo/D,GAAGlzD,KAAKjM,IAAI,CAAC,SAASo/D,KAAK,MAAMn8D,EAAEo8D,GAAGpzD,KAAKgzD,SAAS,MAAM,GAAG,IAAIh8D,EAAE,OAAO,UAAUq8D,GAAGrzD,KAAK3J,OAAOg9D,GAAGrzD,KAAKlM,OAAOu/D,GAAGrzD,KAAKjM,KAAK,IAAIiD,EAAE,IAAI,KAAKA,MAAM,CAAC,SAASo8D,GAAGp8D,GAAG,OAAO2sC,MAAM3sC,GAAG,EAAEinB,KAAKC,IAAI,EAAED,KAAK6F,IAAI,EAAE9sB,GAAG,CAAC,SAASq8D,GAAGr8D,GAAG,OAAOinB,KAAKC,IAAI,EAAED,KAAK6F,IAAI,IAAI7F,KAAKmlB,MAAMpsC,IAAI,GAAG,CAAC,SAASk8D,GAAGl8D,GAAG,QAAQA,EAAEq8D,GAAGr8D,IAAI,GAAG,IAAI,IAAIA,EAAEtB,SAAS,GAAG,CAAC,SAASo9D,GAAG97D,EAAE7D,EAAEc,EAAEoC,GAAG,OAAOA,GAAG,EAAEW,EAAE7D,EAAEc,EAAEw4B,IAAIx4B,GAAG,GAAGA,GAAG,EAAE+C,EAAE7D,EAAEs5B,IAAIt5B,GAAG,IAAI6D,EAAEy1B,KAAK,IAAI6mC,GAAGt8D,EAAE7D,EAAEc,EAAEoC,EAAE,CAAC,SAASk9D,GAAGv8D,GAAG,GAAGA,aAAas8D,GAAG,OAAO,IAAIA,GAAGt8D,EAAE9C,EAAE8C,EAAE6C,EAAE7C,EAAElE,EAAEkE,EAAEg8D,SAAS,GAAGh8D,aAAamxD,KAAKnxD,EAAE07D,GAAG17D,KAAKA,EAAE,OAAO,IAAIs8D,GAAG,GAAGt8D,aAAas8D,GAAG,OAAOt8D,EAAE,IAAI7D,GAAG6D,EAAEA,EAAEs7D,OAAOj8D,EAAE,IAAIpC,EAAE+C,EAAElD,EAAE,IAAIuC,EAAEW,EAAEjD,EAAE,IAAI6F,EAAEqkB,KAAK6F,IAAI3wB,EAAEc,EAAEoC,GAAGrB,EAAEipB,KAAKC,IAAI/qB,EAAEc,EAAEoC,GAAGG,EAAEi2B,IAAI54B,EAAEmB,EAAE4E,EAAEhG,GAAGoB,EAAE4E,GAAG,EAAE,OAAO/F,GAAG2C,EAAErD,IAAI6B,GAAGf,EAAEoC,GAAGxC,EAAE,GAAGI,EAAEoC,GAAGpC,IAAIe,GAAGqB,EAAElD,GAAGU,EAAE,GAAGV,EAAEc,GAAGJ,EAAE,EAAEA,GAAGD,EAAE,GAAGoB,EAAE4E,EAAE,EAAE5E,EAAE4E,EAAEpD,GAAG,IAAI3C,EAAED,EAAE,GAAGA,EAAE,EAAE,EAAE4C,EAAE,IAAI88D,GAAG98D,EAAE3C,EAAED,EAAEoD,EAAEg8D,QAAQ,CAAC,SAASM,GAAGt8D,EAAE7D,EAAEc,EAAEoC,GAAG2J,KAAK9L,GAAG8C,EAAEgJ,KAAKnG,GAAG1G,EAAE6M,KAAKlN,GAAGmB,EAAE+L,KAAKgzD,SAAS38D,CAAC,CAAC,SAASm9D,GAAGx8D,GAAG,OAAOA,GAAGA,GAAG,GAAG,KAAK,EAAEA,EAAE,IAAIA,CAAC,CAAC,SAASy8D,GAAGz8D,GAAG,OAAOinB,KAAKC,IAAI,EAAED,KAAK6F,IAAI,EAAE9sB,GAAG,GAAG,CAAC,SAAS08D,GAAG18D,EAAE7D,EAAEc,GAAG,OAAO,KAAK+C,EAAE,GAAG7D,GAAGc,EAAEd,GAAG6D,EAAE,GAAGA,EAAE,IAAI/C,EAAE+C,EAAE,IAAI7D,GAAGc,EAAEd,IAAI,IAAI6D,GAAG,GAAG7D,EAAE,CAAC80D,GAAGE,GAAGuK,GAAG,CAAC,IAAAl6C,CAAKxhB,GAAG,OAAOhE,OAAOkF,OAAO,IAAI8H,KAAKsG,YAAYtG,KAAKhJ,EAAE,EAAE,WAAA28D,GAAc,OAAO3zD,KAAKsyD,MAAMqB,aAAa,EAAEC,IAAIvB,GAAGE,UAAUF,GAAGwB,WAAW,WAAW,OAAO7zD,KAAKsyD,MAAMuB,YAAY,EAAEC,UAAU,WAAW,OAAOP,GAAGvzD,MAAM8zD,WAAW,EAAErB,UAAUD,GAAG98D,SAAS88D,KAAKvK,GAAG2K,GAAGG,GAAG7K,GAAGC,GAAG,CAAC,QAAA4L,CAAS/8D,GAAG,OAAOA,EAAE,MAAMA,EAAEqxD,GAAGpqC,KAAK6kC,IAAIuF,GAAGrxD,GAAG,IAAI47D,GAAG5yD,KAAK3J,EAAEW,EAAEgJ,KAAKlM,EAAEkD,EAAEgJ,KAAKjM,EAAEiD,EAAEgJ,KAAKgzD,QAAQ,EAAE,MAAAgB,CAAOh9D,GAAG,OAAOA,EAAE,MAAMA,EAAEoxD,GAAGnqC,KAAK6kC,IAAIsF,GAAGpxD,GAAG,IAAI47D,GAAG5yD,KAAK3J,EAAEW,EAAEgJ,KAAKlM,EAAEkD,EAAEgJ,KAAKjM,EAAEiD,EAAEgJ,KAAKgzD,QAAQ,EAAE,GAAAV,GAAM,OAAOtyD,IAAI,EAAE,KAAAiiC,GAAQ,OAAO,IAAI2wB,GAAGS,GAAGrzD,KAAK3J,GAAGg9D,GAAGrzD,KAAKlM,GAAGu/D,GAAGrzD,KAAKjM,GAAGq/D,GAAGpzD,KAAKgzD,SAAS,EAAE,WAAAW,GAAc,OAAO,IAAI3zD,KAAK3J,GAAG2J,KAAK3J,EAAE,QAAQ,IAAI2J,KAAKlM,GAAGkM,KAAKlM,EAAE,QAAQ,IAAIkM,KAAKjM,GAAGiM,KAAKjM,EAAE,OAAO,GAAGiM,KAAKgzD,SAAShzD,KAAKgzD,SAAS,CAAC,EAAEY,IAAIX,GAAGV,UAAUU,GAAGY,WAAW,WAAW,MAAM,IAAIX,GAAGlzD,KAAK3J,KAAK68D,GAAGlzD,KAAKlM,KAAKo/D,GAAGlzD,KAAKjM,KAAKm/D,GAAG,KAAKvvB,MAAM3jC,KAAKgzD,SAAS,EAAEhzD,KAAKgzD,WAAW,EAAEP,UAAUU,GAAGz9D,SAASy9D,MAAMlL,GAAGqL,IAAI,SAASt8D,EAAE7D,EAAEc,EAAEoC,GAAG,OAAO,IAAIpB,UAAUC,OAAOq+D,GAAGv8D,GAAG,IAAIs8D,GAAGt8D,EAAE7D,EAAEc,EAAE,MAAMoC,EAAE,EAAEA,EAAG,GAAE6xD,GAAGC,GAAG,CAAC,QAAA4L,CAAS/8D,GAAG,OAAOA,EAAE,MAAMA,EAAEqxD,GAAGpqC,KAAK6kC,IAAIuF,GAAGrxD,GAAG,IAAIs8D,GAAGtzD,KAAK9L,EAAE8L,KAAKnG,EAAEmG,KAAKlN,EAAEkE,EAAEgJ,KAAKgzD,QAAQ,EAAE,MAAAgB,CAAOh9D,GAAG,OAAOA,EAAE,MAAMA,EAAEoxD,GAAGnqC,KAAK6kC,IAAIsF,GAAGpxD,GAAG,IAAIs8D,GAAGtzD,KAAK9L,EAAE8L,KAAKnG,EAAEmG,KAAKlN,EAAEkE,EAAEgJ,KAAKgzD,QAAQ,EAAE,GAAAV,GAAM,IAAIt7D,EAAEgJ,KAAK9L,EAAE,IAAI,KAAK8L,KAAK9L,EAAE,GAAGf,EAAEwwC,MAAM3sC,IAAI2sC,MAAM3jC,KAAKnG,GAAG,EAAEmG,KAAKnG,EAAE5F,EAAE+L,KAAKlN,EAAEuD,EAAEpC,GAAGA,EAAE,GAAGA,EAAE,EAAEA,GAAGd,EAAEyG,EAAE,EAAE3F,EAAEoC,EAAE,OAAO,IAAIu8D,GAAGc,GAAG18D,GAAG,IAAIA,EAAE,IAAIA,EAAE,IAAI4C,EAAEvD,GAAGq9D,GAAG18D,EAAE4C,EAAEvD,GAAGq9D,GAAG18D,EAAE,IAAIA,EAAE,IAAIA,EAAE,IAAI4C,EAAEvD,GAAG2J,KAAKgzD,QAAQ,EAAE,KAAA/wB,GAAQ,OAAO,IAAIqxB,GAAGE,GAAGxzD,KAAK9L,GAAGu/D,GAAGzzD,KAAKnG,GAAG45D,GAAGzzD,KAAKlN,GAAGsgE,GAAGpzD,KAAKgzD,SAAS,EAAE,WAAAW,GAAc,OAAO,GAAG3zD,KAAKnG,GAAGmG,KAAKnG,GAAG,GAAG8pC,MAAM3jC,KAAKnG,KAAK,GAAGmG,KAAKlN,GAAGkN,KAAKlN,GAAG,GAAG,GAAGkN,KAAKgzD,SAAShzD,KAAKgzD,SAAS,CAAC,EAAE,SAAAc,GAAY,MAAM98D,EAAEo8D,GAAGpzD,KAAKgzD,SAAS,MAAM,GAAG,IAAIh8D,EAAE,OAAO,UAAUw8D,GAAGxzD,KAAK9L,OAAO,IAAIu/D,GAAGzzD,KAAKnG,QAAQ,IAAI45D,GAAGzzD,KAAKlN,MAAM,IAAIkE,EAAE,IAAI,KAAKA,MAAM,KAAK,IAAIi9D,GAAGj9D,GAAG,IAAIA,EAA6L,SAASk9D,GAAGl9D,EAAE7D,GAAG,IAAIc,EAAEd,EAAE6D,EAAE,OAAO/C,EAAE,SAAS+C,EAAE7D,GAAG,OAAO,SAASc,GAAG,OAAO+C,EAAE/C,EAAEd,CAAC,CAAC,CAA9C,CAAgD6D,EAAE/C,GAAGggE,GAAGtwB,MAAM3sC,GAAG7D,EAAE6D,EAAE,CAAC,IAAIm9D,GAAG,SAASn9D,EAAE7D,GAAG,IAAIc,EAA9T,SAAY+C,GAAG,OAAO,IAAIA,GAAGA,GAAGk9D,GAAG,SAAS/gE,EAAEc,GAAG,OAAOA,EAAEd,EAAE,SAAS6D,EAAE7D,EAAEc,GAAG,OAAO+C,EAAEinB,KAAK6kC,IAAI9rD,EAAE/C,GAAGd,EAAE8qB,KAAK6kC,IAAI3vD,EAAEc,GAAG+C,EAAE/C,EAAE,EAAEA,EAAE,SAASoC,GAAG,OAAO4nB,KAAK6kC,IAAI9rD,EAAEX,EAAElD,EAAEc,EAAE,CAAC,CAApG,CAAsGd,EAAEc,EAAE+C,GAAGi9D,GAAGtwB,MAAMxwC,GAAGc,EAAEd,EAAE,CAAC,CAAsIihE,CAAGjhE,GAAG,SAASkD,EAAEW,EAAE7D,GAAG,IAAIkD,EAAEpC,GAAG+C,EAAE+7D,GAAG/7D,IAAIX,GAAGlD,EAAE4/D,GAAG5/D,IAAIkD,GAAGuD,EAAE3F,EAAE+C,EAAElD,EAAEX,EAAEW,GAAGkB,EAAEf,EAAE+C,EAAEjD,EAAEZ,EAAEY,GAAGyC,EAAE09D,GAAGl9D,EAAEg8D,QAAQ7/D,EAAE6/D,SAAS,OAAO,SAAS7/D,GAAG,OAAO6D,EAAEX,EAAEA,EAAElD,GAAG6D,EAAElD,EAAE8F,EAAEzG,GAAG6D,EAAEjD,EAAEiB,EAAE7B,GAAG6D,EAAEg8D,QAAQx8D,EAAErD,GAAG6D,EAAE,EAAE,CAAC,CAAC,OAAOX,EAAEg+D,MAAMr9D,EAAEX,CAAC,CAA3N,CAA6N,GAAG,SAASi+D,GAAGt9D,EAAE7D,GAAG,OAAO6D,GAAGA,EAAE7D,GAAGA,EAAE,SAASc,GAAG,OAAO+C,GAAG,EAAE/C,GAAGd,EAAEc,CAAC,CAAC,CAAC,IAAIsgE,GAAG,8CAA8CC,GAAG,IAAIlzD,OAAOizD,GAAGl6C,OAAO,KAAK,SAASo6C,GAAGz9D,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5E,EAAEu/D,GAAGj6C,UAAUk6C,GAAGl6C,UAAU,EAAE9jB,GAAG,EAAE3C,EAAE,GAAGD,EAAE,GAAG,IAAIoD,GAAG,GAAG7D,GAAG,IAAIc,EAAEsgE,GAAGrzD,KAAKlK,MAAMX,EAAEm+D,GAAGtzD,KAAK/N,MAAMyG,EAAEvD,EAAE8jB,OAAOnlB,IAAI4E,EAAEzG,EAAEmG,MAAMtE,EAAE4E,GAAG/F,EAAE2C,GAAG3C,EAAE2C,IAAIoD,EAAE/F,IAAI2C,GAAGoD,IAAI3F,EAAEA,EAAE,OAAOoC,EAAEA,EAAE,IAAIxC,EAAE2C,GAAG3C,EAAE2C,IAAIH,EAAExC,IAAI2C,GAAGH,GAAGxC,IAAI2C,GAAG,KAAK5C,EAAEyB,KAAK,CAACL,EAAEwB,EAAEuD,EAAEu6D,GAAGrgE,EAAEoC,MAAMrB,EAAEw/D,GAAGl6C,UAAU,OAAOtlB,EAAE7B,EAAE+B,SAAS0E,EAAEzG,EAAEmG,MAAMtE,GAAGnB,EAAE2C,GAAG3C,EAAE2C,IAAIoD,EAAE/F,IAAI2C,GAAGoD,GAAG/F,EAAEqB,OAAO,EAAEtB,EAAE,GAAG,SAASoD,GAAG,OAAO,SAAS7D,GAAG,OAAO6D,EAAE7D,GAAG,EAAE,CAAC,CAA9C,CAAgDS,EAAE,GAAGmG,GAAG,SAAS/C,GAAG,OAAO,WAAW,OAAOA,CAAC,CAAC,CAAvC,CAAyC7D,IAAIA,EAAES,EAAEsB,OAAO,SAAS8B,GAAG,IAAI,IAAI/C,EAAEoC,EAAE,EAAEA,EAAElD,IAAIkD,EAAExC,GAAGI,EAAEL,EAAEyC,IAAIrB,GAAGf,EAAE8F,EAAE/C,GAAG,OAAOnD,EAAE8B,KAAK,GAAG,EAAE,CAAC,IAAI++D,GAAGC,GAAG,IAAI12C,KAAKohB,GAAGu1B,GAAG,CAACC,WAAW,EAAEC,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAEC,OAAO,GAAG,SAASC,GAAGn+D,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAIwB,EAAE3C,EAAED,EAAE,OAAO4C,EAAEynB,KAAK+iC,KAAKhqD,EAAEA,EAAE7D,EAAEA,MAAM6D,GAAGR,EAAErD,GAAGqD,IAAI5C,EAAEoD,EAAE/C,EAAEd,EAAEkD,KAAKpC,GAAG+C,EAAEpD,EAAEyC,GAAGlD,EAAES,IAAIC,EAAEoqB,KAAK+iC,KAAK/sD,EAAEA,EAAEoC,EAAEA,MAAMpC,GAAGJ,EAAEwC,GAAGxC,EAAED,GAAGC,GAAGmD,EAAEX,EAAElD,EAAEc,IAAI+C,GAAGA,EAAE7D,GAAGA,EAAES,GAAGA,EAAE4C,GAAGA,GAAG,CAACq+D,WAAWj7D,EAAEk7D,WAAW9/D,EAAE+/D,OAAO92C,KAAKm3C,MAAMjiE,EAAE6D,GAAG29D,GAAGK,MAAM/2C,KAAKo3C,KAAKzhE,GAAG+gE,GAAGM,OAAOz+D,EAAE0+D,OAAOrhE,EAAE,CAAC,SAASyhE,GAAGt+D,EAAE7D,EAAEc,EAAEoC,GAAG,SAASuD,EAAE5C,GAAG,OAAOA,EAAE9B,OAAO8B,EAAEoJ,MAAM,IAAI,EAAE,CAAC,OAAO,SAASpL,EAAEwB,GAAG,IAAI3C,EAAE,GAAGD,EAAE,GAAG,OAAOoB,EAAEgC,EAAEhC,GAAGwB,EAAEQ,EAAER,GAAG,SAASQ,EAAEX,EAAEuD,EAAE5E,EAAEwB,EAAE3C,GAAG,GAAGmD,IAAI4C,GAAGvD,IAAIrB,EAAE,CAAC,IAAIpB,EAAE4C,EAAEnB,KAAK,aAAa,KAAKlC,EAAE,KAAKc,GAAGJ,EAAEwB,KAAK,CAACL,EAAEpB,EAAE,EAAEmG,EAAEu6D,GAAGt9D,EAAE4C,IAAI,CAAC5E,EAAEpB,EAAE,EAAEmG,EAAEu6D,GAAGj+D,EAAErB,IAAI,MAAM4E,GAAG5E,IAAIwB,EAAEnB,KAAK,aAAauE,EAAEzG,EAAE6B,EAAEf,EAAE,CAApK,CAAsKe,EAAE6/D,WAAW7/D,EAAE8/D,WAAWt+D,EAAEq+D,WAAWr+D,EAAEs+D,WAAWjhE,EAAED,GAAG,SAASoD,EAAE7D,EAAEc,EAAEe,GAAGgC,IAAI7D,GAAG6D,EAAE7D,EAAE,IAAIA,GAAG,IAAIA,EAAE6D,EAAE,MAAMA,GAAG,KAAKhC,EAAEK,KAAK,CAACL,EAAEf,EAAEoB,KAAKuE,EAAE3F,GAAG,UAAU,KAAKoC,GAAG,EAAE0D,EAAEu6D,GAAGt9D,EAAE7D,MAAMA,GAAGc,EAAEoB,KAAKuE,EAAE3F,GAAG,UAAUd,EAAEkD,EAAE,CAA9I,CAAgJrB,EAAE+/D,OAAOv+D,EAAEu+D,OAAOlhE,EAAED,GAAG,SAASoD,EAAE7D,EAAEc,EAAEe,GAAGgC,IAAI7D,EAAE6B,EAAEK,KAAK,CAACL,EAAEf,EAAEoB,KAAKuE,EAAE3F,GAAG,SAAS,KAAKoC,GAAG,EAAE0D,EAAEu6D,GAAGt9D,EAAE7D,KAAKA,GAAGc,EAAEoB,KAAKuE,EAAE3F,GAAG,SAASd,EAAEkD,EAAE,CAAzG,CAA2GrB,EAAEggE,MAAMx+D,EAAEw+D,MAAMnhE,EAAED,GAAG,SAASoD,EAAE7D,EAAEc,EAAEoC,EAAErB,EAAEwB,GAAG,GAAGQ,IAAI/C,GAAGd,IAAIkD,EAAE,CAAC,IAAIxC,EAAEmB,EAAEK,KAAKuE,EAAE5E,GAAG,SAAS,KAAK,IAAI,KAAK,KAAKwB,EAAEnB,KAAK,CAACL,EAAEnB,EAAE,EAAEkG,EAAEu6D,GAAGt9D,EAAE/C,IAAI,CAACe,EAAEnB,EAAE,EAAEkG,EAAEu6D,GAAGnhE,EAAEkD,IAAI,MAAM,IAAIpC,GAAG,IAAIoC,GAAGrB,EAAEK,KAAKuE,EAAE5E,GAAG,SAASf,EAAE,IAAIoC,EAAE,IAAI,CAArL,CAAuLrB,EAAEigE,OAAOjgE,EAAEkgE,OAAO1+D,EAAEy+D,OAAOz+D,EAAE0+D,OAAOrhE,EAAED,GAAGoB,EAAEwB,EAAE,KAAK,SAASQ,GAAG,IAAI,IAAI7D,EAAEc,GAAG,EAAEoC,EAAEzC,EAAEsB,SAASjB,EAAEoC,GAAGxC,GAAGV,EAAES,EAAEK,IAAIe,GAAG7B,EAAE4G,EAAE/C,GAAG,OAAOnD,EAAE8B,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI4/D,GAAGD,aAAat+D,GAAG,MAAM7D,EAAE,IAAI,mBAAmBqiE,UAAUA,UAAUC,iBAAiBz+D,EAAE,IAAI,OAAO7D,EAAEuiE,WAAWd,GAAGO,GAAGhiE,EAAEU,EAAEV,EAAEY,EAAEZ,EAAES,EAAET,EAAEa,EAAEb,EAAEc,EAAEd,EAAEV,EAAG,GAAE,OAAO,MAAM,QAAQkjE,GAAGL,aAAat+D,GAAG,OAAO,MAAMA,EAAE49D,IAAIF,KAAKA,GAAGj+D,SAAS66C,gBAAgB,6BAA6B,MAAMojB,GAAGthB,aAAa,YAAYp8C,IAAIA,EAAE09D,GAAGn1C,UAAUq2C,QAAQC,eAAeV,IAAIn+D,EAAEA,EAAE8+D,QAAQjiE,EAAEmD,EAAEjD,EAAEiD,EAAEpD,EAAEoD,EAAEhD,EAAEgD,EAAE/C,EAAE+C,EAAEvE,GAAGmiE,GAAI,GAAE,KAAK,IAAI,KAAK,SAASmB,GAAG/+D,GAAG,QAAQA,EAAEinB,KAAK+3C,IAAIh/D,IAAI,EAAEA,GAAG,CAAC,CAAC,IAAIi/D,GAAGC,GAAGC,GAAG,SAASn/D,EAAE7D,EAAEc,EAAEoC,GAAG,SAASuD,EAAE5C,EAAE4C,GAAG,IAAI5E,EAAEwB,EAAE3C,EAAEmD,EAAE,GAAGpD,EAAEoD,EAAE,GAAGvE,EAAEuE,EAAE,GAAG6C,EAAED,EAAE,GAAG9G,EAAE8G,EAAE,GAAG1F,EAAE0F,EAAE,GAAG5F,EAAE6F,EAAEhG,EAAEqD,EAAEpE,EAAEc,EAAEN,EAAEU,EAAEA,EAAEkD,EAAEA,EAAE,GAAG5D,EAAE,MAAMkD,EAAEynB,KAAK+T,IAAI99B,EAAEzB,GAAGU,EAAE6B,EAAE,SAASgC,GAAG,MAAM,CAACnD,EAAEmD,EAAEhD,EAAEJ,EAAEoD,EAAEE,EAAEzE,EAAEwrB,KAAK+3C,IAAI7iE,EAAE6D,EAAER,GAAG,MAAM,CAAC,IAAI1C,EAAEmqB,KAAK+iC,KAAK1tD,GAAGwG,GAAG5F,EAAEA,EAAEzB,EAAEA,EAAE4D,EAAE/C,IAAI,EAAEb,EAAEwB,EAAEH,GAAGf,GAAGmB,EAAEA,EAAEzB,EAAEA,EAAE4D,EAAE/C,IAAI,EAAEY,EAAED,EAAEH,GAAGsD,EAAE6mB,KAAK+T,IAAI/T,KAAK+iC,KAAKlnD,EAAEA,EAAE,GAAGA,GAAG/F,EAAEkqB,KAAK+T,IAAI/T,KAAK+iC,KAAKjuD,EAAEA,EAAE,GAAGA,GAAGyD,GAAGzC,EAAEqD,GAAGjE,EAAE6B,EAAE,SAASgC,GAAG,IAAIX,EAAEuD,EAAE5C,EAAER,EAAExB,EAAE+gE,GAAG3+D,GAAGyC,EAAEpH,GAAGwB,EAAEH,IAAIkB,GAAGqB,EAAElD,EAAEyG,EAAExC,IAAIf,EAAE4nB,KAAK+3C,IAAI,EAAE3/D,IAAI,IAAIA,EAAE,IAAI,SAASW,GAAG,QAAQA,EAAEinB,KAAK+3C,IAAIh/D,IAAI,EAAEA,GAAG,CAAC,CAAzC,CAA2CI,IAAI,MAAM,CAACvD,EAAEgG,EAAE7F,EAAEJ,EAAEiG,EAAE3C,EAAEzE,EAAEuC,EAAE+gE,GAAG5iE,EAAEyG,EAAExC,GAAG,CAAC,CAAC,OAAOpC,EAAEohE,SAAS,IAAI5/D,EAAErD,EAAE8qB,KAAKo4C,MAAMrhE,CAAC,CAAC,OAAO4E,EAAE08D,IAAI,SAASnjE,GAAG,IAAIc,EAAEgqB,KAAKC,IAAI,MAAM/qB,GAAGkD,EAAEpC,EAAEA,EAAE,OAAO+C,EAAE/C,EAAEoC,EAAEA,EAAEA,EAAE,EAAEuD,CAAC,CAAzmB,CAA2mBqkB,KAAKo4C,MAAM,EAAE,GAAGE,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,IAAIC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,iBAAiBC,aAAaA,YAAY14C,IAAI04C,YAAY34C,KAAK44C,GAAG,iBAAiBlhE,QAAQA,OAAOoxC,sBAAsBpxC,OAAOoxC,sBAAsB/hB,KAAKrvB,QAAQ,SAASkB,GAAG0rC,WAAW1rC,EAAE,GAAG,EAAE,SAASigE,KAAK,OAAOL,KAAKI,GAAGE,IAAIN,GAAGE,GAAGz4C,MAAMw4C,GAAG,CAAC,SAASK,KAAKN,GAAG,CAAC,CAAC,SAASO,KAAKn3D,KAAKo3D,MAAMp3D,KAAKq3D,MAAMr3D,KAAKyuB,MAAM,IAAI,CAAC,SAAS6oC,GAAGtgE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,IAAI8gE,GAAG,OAAO9gE,EAAEkhE,QAAQvgE,EAAE7D,EAAEc,GAAGoC,CAAC,CAAC,SAASmhE,KAAKZ,IAAID,GAAGG,GAAGz4C,OAAOw4C,GAAGN,GAAGC,GAAG,EAAE,KAAK,WAAWS,OAAOV,GAAG,IAAI,IAAIv/D,EAAE7D,EAAE8iE,GAAG9iE,IAAI6D,EAAE4/D,GAAGzjE,EAAEkkE,QAAQ,GAAGlkE,EAAEikE,MAAMjjE,UAAK,EAAO6C,GAAG7D,EAAEA,EAAEs7B,QAAQ8nC,EAAE,CAA/F,EAAkG,CAAC,QAAQA,GAAG,EAAE,WAA8B,IAAnB,IAAIv/D,EAAE7D,EAAEc,EAAEgiE,GAAG5/D,EAAE,IAASpC,GAAGA,EAAEmjE,OAAO/gE,EAAEpC,EAAEojE,QAAQhhE,EAAEpC,EAAEojE,OAAOrgE,EAAE/C,EAAEA,EAAEA,EAAEw6B,QAAQt7B,EAAEc,EAAEw6B,MAAMx6B,EAAEw6B,MAAM,KAAKx6B,EAAE+C,EAAEA,EAAEy3B,MAAMt7B,EAAE8iE,GAAG9iE,GAAG+iE,GAAGl/D,EAAEygE,GAAGphE,EAAE,CAA3I,GAA+IugE,GAAG,CAAC,CAAC,CAAC,SAASc,KAAK,IAAI1gE,EAAE8/D,GAAGz4C,MAAMlrB,EAAE6D,EAAE2/D,GAAGxjE,EAAEujE,KAAKG,IAAI1jE,EAAEwjE,GAAG3/D,EAAE,CAAC,SAASygE,GAAGzgE,GAAGu/D,KAAKC,KAAKA,GAAGj0B,aAAai0B,KAAKx/D,EAAE4/D,GAAG,IAAI5/D,EAAE,MAAMw/D,GAAG9zB,WAAW80B,GAAGxgE,EAAE8/D,GAAGz4C,MAAMw4C,KAAKJ,KAAKA,GAAGkB,cAAclB,OAAOA,KAAKE,GAAGG,GAAGz4C,MAAMo4C,GAAGmB,YAAYF,GAAGhB,KAAKH,GAAG,EAAES,GAAGQ,KAAK,CAAC,SAASlc,GAAGtkD,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,IAAI8gE,GAAG,OAAOhkE,EAAE,MAAMA,EAAE,GAAGA,EAAEkD,EAAEkhE,SAAStjE,IAAIoC,EAAEwhE,OAAO7gE,EAAE/C,EAAEd,EAAG,GAAEA,EAAEc,GAAGoC,CAAC,CAAC8gE,GAAGlkE,UAAUqkE,GAAGrkE,UAAU,CAACqT,YAAY6wD,GAAGI,QAAQ,SAASvgE,EAAE7D,EAAEc,GAAG,GAAG,mBAAmB+C,EAAE,MAAM,IAAIslB,UAAU,8BAA8BroB,GAAG,MAAMA,EAAEgjE,MAAMhjE,IAAI,MAAMd,EAAE,GAAGA,GAAG6M,KAAKyuB,OAAOynC,KAAKl2D,OAAOk2D,GAAGA,GAAGznC,MAAMzuB,KAAKi2D,GAAGj2D,KAAKk2D,GAAGl2D,MAAMA,KAAKo3D,MAAMpgE,EAAEgJ,KAAKq3D,MAAMpjE,EAAEwjE,IAAI,EAAEI,KAAK,WAAW73D,KAAKo3D,QAAQp3D,KAAKo3D,MAAM,KAAKp3D,KAAKq3D,MAAM,IAAII,KAAK,GAAG,IAAIK,GAAG3nB,GAAG,QAAQ,MAAM,SAAS,aAAa4nB,GAAG,GAAGC,GAAG,EAAOC,GAAG,EAAEC,GAAG,EAAOC,GAAG,EAAEC,GAAG,EAAE,SAASC,GAAGrhE,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAIwB,EAAEQ,EAAEshE,aAAa,GAAG9hE,GAAG,GAAGvC,KAAKuC,EAAE,YAAYQ,EAAEshE,aAAa,IAAI,SAASthE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5C,EAAEshE,aAAiG,SAAS9hE,EAAExB,GAAG,IAAIvC,EAAEoH,EAAE/G,EAAEoB,EAAE,GAA7Q,IAAgRD,EAAEyD,MAAW,OAAO9D,IAAI,IAAInB,KAAKmH,EAAE,IAAI1F,EAAE0F,EAAEnH,IAAIkpB,OAAO1nB,EAAE0nB,KAAK,CAAC,GAAGznB,EAAEwD,QAAQwgE,GAAG,OAAO5c,GAAG9kD,GAAzV,IAA4VtC,EAAEwD,OAAYxD,EAAEwD,MAAM0gE,GAAGlkE,EAAEqkE,MAAMV,OAAO3jE,EAAE4L,GAAG3L,KAAK,YAAY6C,EAAEA,EAAEiJ,SAAS/L,EAAEimB,MAAMjmB,EAAE4vC,cAAclqC,EAAEnH,KAAKA,EAAEU,IAAIe,EAAEwD,MAAM0gE,GAAGlkE,EAAEqkE,MAAMV,OAAO3jE,EAAE4L,GAAG3L,KAAK,SAAS6C,EAAEA,EAAEiJ,SAAS/L,EAAEimB,MAAMjmB,EAAE4vC,cAAclqC,EAAEnH,GAAG,CAAC,GAAG6oD,eAAernD,EAAEyD,QAAQwgE,KAAKjkE,EAAEyD,MAAvkB,EAAglBzD,EAAEskE,MAAMhB,QAAQ1jE,EAAEI,EAAEukE,MAAMvkE,EAAE89B,MAAMl+B,EAAEmB,GAAI,IAAGf,EAAEyD,MAAMugE,GAAGhkE,EAAE6L,GAAG3L,KAAK,QAAQ6C,EAAEA,EAAEiJ,SAAShM,EAAEkmB,MAAMlmB,EAAE6vC,OAAO7vC,EAAEyD,QAAQugE,GAAG,CAAC,IAAIhkE,EAAEyD,MAAMwgE,GAAG7hE,EAAE,IAAIf,MAAMxC,EAAEmB,EAAEwkE,MAAMvjE,QAAQzC,EAAE,EAAEoH,GAAG,EAAEpH,EAAEK,IAAIL,GAAGyB,EAAED,EAAEwkE,MAAMhmE,GAAG8D,MAAMpC,KAAK6C,EAAEA,EAAEiJ,SAAShM,EAAEkmB,MAAMlmB,EAAE6vC,UAAUztC,IAAIwD,GAAG3F,GAAGmC,EAAEnB,OAAO2E,EAAE,CAAC,CAAC,CAAC,SAAShG,EAAEV,GAAG,IAAI,IAAIyG,EAAEzG,EAAEc,EAAEmiE,SAASniE,EAAEykE,KAAKvkE,KAAK,KAAKhB,EAAEc,EAAEmiE,WAAWniE,EAAEskE,MAAMhB,QAAQ3jE,GAAGK,EAAEyD,MAAMygE,GAAG,GAAGnjE,GAAG,EAAEwB,EAAEH,EAAEnB,SAASF,EAAEwB,GAAGH,EAAErB,GAAGb,KAAK6C,EAAE4C,GAAG3F,EAAEyD,QAAQygE,KAAKlkE,EAAE6L,GAAG3L,KAAK,MAAM6C,EAAEA,EAAEiJ,SAAShM,EAAEkmB,MAAMlmB,EAAE6vC,OAAOlwC,IAAI,CAAC,SAASA,IAAI,IAAI,IAAIyC,KAAKpC,EAAEyD,MAAM0gE,GAAGnkE,EAAEskE,MAAMV,cAAcj+D,EAAEzG,GAAGyG,EAAE,cAAc5C,EAAEshE,YAAY,CAAC1+D,EAAEzG,GAAGc,EAAEA,EAAEskE,MAAMjB,IAAhgC,SAAWtgE,GAAG/C,EAAEyD,MAA/K,EAAwLzD,EAAEskE,MAAMhB,QAAQ/gE,EAAEvC,EAAEukE,MAAMvkE,EAAE89B,MAAM99B,EAAEukE,OAAOxhE,GAAGR,EAAEQ,EAAE/C,EAAEukE,MAAM,GAAk7B,EAAEvkE,EAAE89B,KAAK,CAArjC,CAAujC/6B,EAAE/C,EAAE,CAAC0nB,KAAKxoB,EAAEgnB,MAAM9jB,EAAEytC,MAAMlqC,EAAEkG,GAAGg4D,GAAGW,MAAMV,GAAGhmC,KAAK/8B,EAAE+8B,KAAKymC,MAAMxjE,EAAEwjE,MAAMpC,SAASphE,EAAEohE,SAASsC,KAAK1jE,EAAE0jE,KAAKH,MAAM,KAAK7gE,MAAMsgE,IAAI,CAAC,SAASW,GAAG3hE,EAAE7D,GAAG,IAAIc,EAAE2kE,GAAG5hE,EAAE7D,GAAG,GAAGc,EAAEyD,MAAMsgE,GAAG,MAAM,IAAI91C,MAAM,+BAA+B,OAAOjuB,CAAC,CAAC,SAAS4kE,GAAG7hE,EAAE7D,GAAG,IAAIc,EAAE2kE,GAAG5hE,EAAE7D,GAAG,GAAGc,EAAEyD,MAAMwgE,GAAG,MAAM,IAAIh2C,MAAM,6BAA6B,OAAOjuB,CAAC,CAAC,SAAS2kE,GAAG5hE,EAAE7D,GAAG,IAAIc,EAAE+C,EAAEshE,aAAa,IAAIrkE,KAAKA,EAAEA,EAAEd,IAAI,MAAM,IAAI+uB,MAAM,wBAAwB,OAAOjuB,CAAC,CAAC,SAAS6kE,GAAG9hE,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5E,EAAEgC,EAAEshE,aAAa9hE,GAAE,EAAG,GAAGxB,EAAE,CAAC,IAAI4E,KAAKzG,EAAE,MAAMA,EAAE,KAAKA,EAAE,GAAG6B,GAAGf,EAAEe,EAAE4E,IAAI+hB,OAAOxoB,GAAGkD,EAAEpC,EAAEyD,MAAMugE,IAAIhkE,EAAEyD,MAAMygE,GAAGlkE,EAAEyD,MAAM0gE,GAAGnkE,EAAEskE,MAAMV,OAAO5jE,EAAE6L,GAAG3L,KAAKkC,EAAE,YAAY,SAASW,EAAEA,EAAEiJ,SAAShM,EAAEkmB,MAAMlmB,EAAE6vC,cAAc9uC,EAAE4E,IAAIpD,GAAE,EAAGA,UAAUQ,EAAEshE,YAAY,CAAC,CAAC,SAASS,GAAG/hE,EAAE7D,GAAG,IAAIc,EAAEoC,EAAE,OAAO,WAAW,IAAIuD,EAAEi/D,GAAG74D,KAAKhJ,GAAGhC,EAAE4E,EAAE6+D,MAAM,GAAGzjE,IAAIf,EAAE,IAAI,IAAIuC,EAAE,EAAE3C,GAAGwC,EAAEpC,EAAEe,GAAGE,OAAOsB,EAAE3C,IAAI2C,EAAE,GAAGH,EAAEG,GAAGmlB,OAAOxoB,EAAE,EAAEkD,EAAEA,EAAEiD,SAAS6G,OAAO3J,EAAE,GAAG,KAAK,CAACoD,EAAE6+D,MAAMpiE,CAAC,CAAC,CAAC,SAAS2iE,GAAGhiE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE,GAAG,mBAAmB3F,EAAE,MAAM,IAAIiuB,MAAM,OAAO,WAAW,IAAIltB,EAAE6jE,GAAG74D,KAAKhJ,GAAGR,EAAExB,EAAEyjE,MAAM,GAAGjiE,IAAIH,EAAE,CAACuD,GAAGvD,EAAEG,GAAG8C,QAAQ,IAAI,IAAIzF,EAAE,CAAC8nB,KAAKxoB,EAAEoD,MAAMtC,GAAGL,EAAE,EAAEnB,EAAEmH,EAAE1E,OAAOtB,EAAEnB,IAAImB,EAAE,GAAGgG,EAAEhG,GAAG+nB,OAAOxoB,EAAE,CAACyG,EAAEhG,GAAGC,EAAE,KAAK,CAACD,IAAInB,GAAGmH,EAAEvE,KAAKxB,EAAE,CAACmB,EAAEyjE,MAAM7+D,CAAC,CAAC,CAAC,SAASq/D,GAAGjiE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEW,EAAEkiE,IAAI,OAAOliE,EAAEioB,MAAI,WAAa,IAAIjoB,EAAE6hE,GAAG74D,KAAK3J,IAAIW,EAAET,QAAQS,EAAET,MAAM,CAAA,IAAKpD,GAAGc,EAAEwB,MAAMuK,KAAK/K,UAAW,IAAG,SAAS+B,GAAG,OAAO4hE,GAAG5hE,EAAEX,GAAGE,MAAMpD,EAAE,CAAC,CAAC,SAASgmE,GAAGniE,EAAE7D,GAAG,IAAIc,EAAE,OAAO,iBAAiBd,EAAEmhE,GAAGnhE,aAAau/D,GAAGyB,IAAIlgE,EAAEy+D,GAAGv/D,KAAKA,EAAEc,EAAEkgE,IAAIM,IAAIz9D,EAAE7D,EAAE,CAAC,SAASimE,GAAGpiE,GAAG,OAAO,WAAWgJ,KAAKgzC,gBAAgBh8C,EAAE,CAAC,CAAC,SAASqiE,GAAGriE,GAAG,OAAO,WAAWgJ,KAAKkzC,kBAAkBl8C,EAAEg6C,MAAMh6C,EAAEi6C,MAAM,CAAC,CAAC,SAASqoB,GAAGtiE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAEf,EAAE,GAAG,OAAO,WAAW,IAAIuC,EAAEwJ,KAAK40C,aAAa59C,GAAG,OAAOR,IAAIxB,EAAE,KAAKwB,IAAIH,EAAEuD,EAAEA,EAAEzG,EAAEkD,EAAEG,EAAEvC,EAAE,CAAC,CAAC,SAASslE,GAAGviE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAEf,EAAE,GAAG,OAAO,WAAW,IAAIuC,EAAEwJ,KAAK05C,eAAe1iD,EAAEg6C,MAAMh6C,EAAEi6C,OAAO,OAAOz6C,IAAIxB,EAAE,KAAKwB,IAAIH,EAAEuD,EAAEA,EAAEzG,EAAEkD,EAAEG,EAAEvC,EAAE,CAAC,CAAC,SAASulE,GAAGxiE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAE,OAAO,WAAW,IAAIwB,EAAE3C,EAAED,EAAEK,EAAE+L,MAAM,GAAG,MAAMpM,EAAE,OAAO4C,EAAEwJ,KAAK40C,aAAa59C,OAAOnD,EAAED,EAAE,IAAI,KAAK4C,IAAIH,GAAGxC,IAAI+F,EAAE5E,GAAG4E,EAAE/F,EAAEmB,EAAE7B,EAAEkD,EAAEG,EAAE5C,IAAIoM,KAAKgzC,gBAAgBh8C,EAAE,CAAC,CAAC,SAASyiE,GAAGziE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAE,OAAO,WAAW,IAAIwB,EAAE3C,EAAED,EAAEK,EAAE+L,MAAM,GAAG,MAAMpM,EAAE,OAAO4C,EAAEwJ,KAAK05C,eAAe1iD,EAAEg6C,MAAMh6C,EAAEi6C,WAAWp9C,EAAED,EAAE,IAAI,KAAK4C,IAAIH,GAAGxC,IAAI+F,EAAE5E,GAAG4E,EAAE/F,EAAEmB,EAAE7B,EAAEkD,EAAEG,EAAE5C,IAAIoM,KAAKkzC,kBAAkBl8C,EAAEg6C,MAAMh6C,EAAEi6C,MAAM,CAAC,CAAC,SAASyoB,GAAG1iE,EAAE7D,GAAG,IAAIc,EAAEoC,EAAE,SAASuD,IAAI,IAAIA,EAAEzG,EAAEsC,MAAMuK,KAAK/K,WAAW,OAAO2E,IAAIvD,IAAIpC,GAAGoC,EAAEuD,IAAI,SAAS5C,EAAE7D,GAAG,OAAO,SAASc,GAAG+L,KAAKszC,eAAet8C,EAAEg6C,MAAMh6C,EAAEi6C,MAAM99C,EAAEgB,KAAK6L,KAAK/L,GAAG,CAAC,CAArF,CAAuF+C,EAAE4C,IAAI3F,CAAC,CAAC,OAAO2F,EAAE+/D,OAAOxmE,EAAEyG,CAAC,CAAC,SAASggE,GAAG5iE,EAAE7D,GAAG,IAAIc,EAAEoC,EAAE,SAASuD,IAAI,IAAIA,EAAEzG,EAAEsC,MAAMuK,KAAK/K,WAAW,OAAO2E,IAAIvD,IAAIpC,GAAGoC,EAAEuD,IAAI,SAAS5C,EAAE7D,GAAG,OAAO,SAASc,GAAG+L,KAAKozC,aAAap8C,EAAE7D,EAAEgB,KAAK6L,KAAK/L,GAAG,CAAC,CAArE,CAAuE+C,EAAE4C,IAAI3F,CAAC,CAAC,OAAO2F,EAAE+/D,OAAOxmE,EAAEyG,CAAC,CAAC,SAASigE,GAAG7iE,EAAE7D,GAAG,OAAO,WAAWwlE,GAAG34D,KAAKhJ,GAAGwhE,OAAOrlE,EAAEsC,MAAMuK,KAAK/K,UAAU,CAAC,CAAC,SAAS6kE,GAAG9iE,EAAE7D,GAAG,OAAOA,GAAGA,EAAE,WAAWwlE,GAAG34D,KAAKhJ,GAAGwhE,MAAMrlE,CAAC,CAAC,CAAC,SAAS4mE,GAAG/iE,EAAE7D,GAAG,OAAO,WAAW0lE,GAAG74D,KAAKhJ,GAAGo/D,UAAUjjE,EAAEsC,MAAMuK,KAAK/K,UAAU,CAAC,CAAC,SAAS+kE,GAAGhjE,EAAE7D,GAAG,OAAOA,GAAGA,EAAE,WAAW0lE,GAAG74D,KAAKhJ,GAAGo/D,SAASjjE,CAAC,CAAC,CAAC,IAAI8mE,GAAGtiB,GAAG1kD,UAAUqT,YAAY,SAAS4zD,GAAGljE,GAAG,OAAO,WAAWgJ,KAAKs8B,MAAMsX,eAAe58C,EAAE,CAAC,CAAC,IAAImjE,GAAG,EAAE,SAASC,GAAGpjE,EAAE7D,EAAEc,EAAEoC,GAAG2J,KAAKy3C,QAAQzgD,EAAEgJ,KAAK03C,SAASvkD,EAAE6M,KAAKq6D,MAAMpmE,EAAE+L,KAAKk5D,IAAI7iE,CAAC,CAAC,SAASikE,KAAK,QAAQH,EAAE,CAAC,IAAII,GAAG5iB,GAAG1kD,UAAUmnE,GAAGnnE,UAAU,CAACqT,YAAY8zD,GAAGxhB,OAAO,SAAS5hD,GAAG,IAAI7D,EAAE6M,KAAKq6D,MAAMpmE,EAAE+L,KAAKk5D,IAAI,mBAAmBliE,IAAIA,EAAE06C,GAAG16C,IAAI,IAAI,IAAIX,EAAE2J,KAAKy3C,QAAQ79C,EAAEvD,EAAEnB,OAAOF,EAAE,IAAIM,MAAMsE,GAAGpD,EAAE,EAAEA,EAAEoD,IAAIpD,EAAE,IAAI,IAAI3C,EAAED,EAAEnB,EAAE4D,EAAEG,GAAGqD,EAAEpH,EAAEyC,OAAOpC,EAAEkC,EAAEwB,GAAG,IAAIlB,MAAMuE,GAAG3F,EAAE,EAAEA,EAAE2F,IAAI3F,GAAGL,EAAEpB,EAAEyB,MAAMN,EAAEoD,EAAE7C,KAAKN,EAAEA,EAAEoM,SAAS/L,EAAEzB,MAAM,aAAaoB,IAAID,EAAEqM,SAASpM,EAAEoM,UAAUnN,EAAEoB,GAAGN,EAAEykE,GAAGvlE,EAAEoB,GAAGf,EAAEc,EAAEC,EAAEpB,EAAE8lE,GAAG/kE,EAAEI,KAAK,OAAO,IAAImmE,GAAGplE,EAAEgL,KAAK03C,SAASvkD,EAAEc,EAAE,EAAE4kD,UAAU,SAAS7hD,GAAG,IAAI7D,EAAE6M,KAAKq6D,MAAMpmE,EAAE+L,KAAKk5D,IAAI,mBAAmBliE,IAAIA,EAAE66C,GAAG76C,IAAI,IAAI,IAAIX,EAAE2J,KAAKy3C,QAAQ79C,EAAEvD,EAAEnB,OAAOF,EAAE,GAAGwB,EAAE,GAAG3C,EAAE,EAAEA,EAAE+F,IAAI/F,EAAE,IAAI,IAAID,EAAEnB,EAAE4D,EAAExC,GAAGgG,EAAEpH,EAAEyC,OAAOpC,EAAE,EAAEA,EAAE+G,IAAI/G,EAAE,GAAGc,EAAEnB,EAAEK,GAAG,CAAC,IAAI,IAAIoB,EAAEF,EAAEgD,EAAE7C,KAAKP,EAAEA,EAAEqM,SAASnN,EAAEL,GAAGyE,EAAE0hE,GAAGhlE,EAAEK,GAAGX,EAAE,EAAEQ,EAAEE,EAAEkB,OAAO5B,EAAEQ,IAAIR,GAAGY,EAAEF,EAAEV,KAAK+kE,GAAGnkE,EAAEf,EAAEc,EAAEX,EAAEU,EAAEkD,GAAGlC,EAAEK,KAAKrB,GAAGwC,EAAEnB,KAAKzB,EAAE,CAAC,OAAO,IAAIwmE,GAAGplE,EAAEwB,EAAErD,EAAEc,EAAE,EAAE8kD,YAAYwhB,GAAGxhB,YAAYC,eAAeuhB,GAAGvhB,eAAe95B,OAAO,SAASloB,GAAG,mBAAmBA,IAAIA,EAAE+6C,GAAG/6C,IAAI,IAAI,IAAI7D,EAAE6M,KAAKy3C,QAAQxjD,EAAEd,EAAE+B,OAAOmB,EAAE,IAAIf,MAAMrB,GAAG2F,EAAE,EAAEA,EAAE3F,IAAI2F,EAAE,IAAI,IAAI5E,EAAEwB,EAAErD,EAAEyG,GAAG/F,EAAE2C,EAAEtB,OAAOtB,EAAEyC,EAAEuD,GAAG,GAAGnH,EAAE,EAAEA,EAAEoB,IAAIpB,GAAGuC,EAAEwB,EAAE/D,KAAKuE,EAAE7C,KAAKa,EAAEA,EAAEiL,SAASxN,EAAE+D,IAAI5C,EAAEyB,KAAKL,GAAG,OAAO,IAAIolE,GAAG/jE,EAAE2J,KAAK03C,SAAS13C,KAAKq6D,MAAMr6D,KAAKk5D,IAAI,EAAEvrC,MAAM,SAAS32B,GAAG,GAAGA,EAAEkiE,MAAMl5D,KAAKk5D,IAAI,MAAM,IAAIh3C,MAAM,IAAI,IAAI/uB,EAAE6M,KAAKy3C,QAAQxjD,EAAE+C,EAAEygD,QAAQphD,EAAElD,EAAE+B,OAAO0E,EAAE3F,EAAEiB,OAAOF,EAAEipB,KAAK6F,IAAIztB,EAAEuD,GAAGpD,EAAE,IAAIlB,MAAMe,GAAGxC,EAAE,EAAEA,EAAEmB,IAAInB,EAAE,IAAI,IAAID,EAAEnB,EAAEU,EAAEU,GAAGgG,EAAE5F,EAAEJ,GAAGf,EAAEL,EAAEyC,OAAOhB,EAAEsC,EAAE3C,GAAG,IAAIyB,MAAMxC,GAAGkB,EAAE,EAAEA,EAAElB,IAAIkB,GAAGJ,EAAEnB,EAAEuB,IAAI6F,EAAE7F,MAAME,EAAEF,GAAGJ,GAAG,KAAKC,EAAEwC,IAAIxC,EAAE2C,EAAE3C,GAAGV,EAAEU,GAAG,OAAO,IAAIumE,GAAG5jE,EAAEwJ,KAAK03C,SAAS13C,KAAKq6D,MAAMr6D,KAAKk5D,IAAI,EAAE7f,UAAU,WAAW,OAAO,IAAI4gB,GAAGj6D,KAAKy3C,QAAQz3C,KAAK03C,SAAS,EAAE8iB,WAAW,WAAW,IAAI,IAAIxjE,EAAEgJ,KAAKq6D,MAAMlnE,EAAE6M,KAAKk5D,IAAIjlE,EAAEqmE,KAAKjkE,EAAE2J,KAAKy3C,QAAQ79C,EAAEvD,EAAEnB,OAAOF,EAAE,EAAEA,EAAE4E,IAAI5E,EAAE,IAAI,IAAIwB,EAAE3C,EAAEwC,EAAErB,GAAGpB,EAAEC,EAAEqB,OAAOzC,EAAE,EAAEA,EAAEmB,IAAInB,EAAE,GAAG+D,EAAE3C,EAAEpB,GAAG,CAAC,IAAIoH,EAAE++D,GAAGpiE,EAAErD,GAAGklE,GAAG7hE,EAAEQ,EAAE/C,EAAExB,EAAEoB,EAAE,CAACk+B,KAAKl4B,EAAEk4B,KAAKl4B,EAAE2+D,MAAM3+D,EAAEu8D,SAASoC,MAAM,EAAEpC,SAASv8D,EAAEu8D,SAASsC,KAAK7+D,EAAE6+D,MAAM,CAAC,OAAO,IAAI0B,GAAG/jE,EAAE2J,KAAK03C,SAAS1gD,EAAE/C,EAAE,EAAEE,KAAKomE,GAAGpmE,KAAKmtB,MAAMi5C,GAAGj5C,MAAMK,KAAK44C,GAAG54C,KAAKzhB,KAAKq6D,GAAGr6D,KAAKs5C,MAAM+gB,GAAG/gB,MAAMv6B,KAAKs7C,GAAGt7C,KAAKnf,GAAG,SAAS9I,EAAE7D,GAAG,IAAIc,EAAE+L,KAAKk5D,IAAI,OAAOjkE,UAAUC,OAAO,EAAE0jE,GAAG54D,KAAK2hB,OAAO1tB,GAAG6L,GAAGA,GAAG9I,GAAGgJ,KAAKif,KAAK,SAASjoB,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAE,SAASgC,GAAG,OAAOA,EAAE,IAAIu5C,OAAOxR,MAAM,SAAS+D,OAAO,SAAS9rC,GAAG,IAAI7D,EAAE6D,EAAEmmC,QAAQ,KAAK,OAAOhqC,GAAG,IAAI6D,EAAEA,EAAEsC,MAAM,EAAEnG,KAAK6D,GAAG,UAAUA,CAAE,GAAE,CAAvI,CAAyI7D,GAAGwlE,GAAGE,GAAG,OAAO,WAAW,IAAIriE,EAAExB,EAAEgL,KAAKhJ,GAAGnD,EAAE2C,EAAEsJ,GAAGjM,IAAIwC,IAAIuD,GAAGvD,EAAExC,GAAG2kB,QAAQ1Y,GAAG3M,EAAEc,GAAGuC,EAAEsJ,GAAGlG,CAAC,CAAC,CAA5P,CAA8P3F,EAAE+C,EAAE7D,GAAG,EAAEsmD,KAAK,SAASziD,EAAE7D,GAAG,IAAIc,EAAE88C,GAAG/5C,GAAGX,EAAE,cAAcpC,EAAE0hE,GAAGwD,GAAG,OAAOn5D,KAAKy6D,UAAUzjE,EAAE,mBAAmB7D,GAAGc,EAAEg9C,MAAMwoB,GAAGD,IAAIvlE,EAAEoC,EAAE4iE,GAAGj5D,KAAK,QAAQhJ,EAAE7D,IAAI,MAAMA,GAAGc,EAAEg9C,MAAMooB,GAAGD,IAAInlE,IAAIA,EAAEg9C,MAAMsoB,GAAGD,IAAIrlE,EAAEoC,EAAElD,GAAG,EAAEsnE,UAAU,SAASzjE,EAAE7D,GAAG,IAAIc,EAAE,QAAQ+C,EAAE,GAAG/B,UAAUC,OAAO,EAAE,OAAOjB,EAAE+L,KAAKy4D,MAAMxkE,KAAKA,EAAE0lE,OAAO,GAAG,MAAMxmE,EAAE,OAAO6M,KAAKy4D,MAAMxkE,EAAE,MAAM,GAAG,mBAAmBd,EAAE,MAAM,IAAI+uB,MAAM,IAAI7rB,EAAE06C,GAAG/5C,GAAG,OAAOgJ,KAAKy4D,MAAMxkE,GAAGoC,EAAE46C,MAAMyoB,GAAGE,IAAIvjE,EAAElD,GAAG,EAAEmpC,MAAM,SAAStlC,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,cAAcW,GAAG,IAAIu+D,GAAG4D,GAAG,OAAO,MAAMhmE,EAAE6M,KAAK06D,WAAW1jE,EAAE,SAASA,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE,OAAO,WAAW,IAAI5E,EAAEg/C,GAAGh0C,KAAKhJ,GAAGR,GAAGwJ,KAAKs8B,MAAMsX,eAAe58C,GAAGg9C,GAAGh0C,KAAKhJ,IAAI,OAAOhC,IAAIwB,EAAE,KAAKxB,IAAIf,GAAGuC,IAAIH,EAAEuD,EAAEA,EAAEzG,EAAEc,EAAEe,EAAEqB,EAAEG,EAAE,CAAC,CAArJ,CAAuJQ,EAAEX,IAAIyJ,GAAG,aAAa9I,EAAEkjE,GAAGljE,IAAI,mBAAmB7D,EAAE6M,KAAK06D,WAAW1jE,EAAE,SAASA,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAE,OAAO,WAAW,IAAIwB,EAAEw9C,GAAGh0C,KAAKhJ,GAAGnD,EAAEI,EAAE+L,MAAMpM,EAAEC,EAAE,GAAG,OAAO,MAAMA,IAAImM,KAAKs8B,MAAMsX,eAAe58C,GAAGpD,EAAEC,EAAEmgD,GAAGh0C,KAAKhJ,IAAIR,IAAI5C,EAAE,KAAK4C,IAAIH,GAAGzC,IAAIgG,EAAE5E,GAAG4E,EAAEhG,EAAEoB,EAAE7B,EAAEkD,EAAEG,EAAE3C,GAAG,CAAC,CAAvL,CAAyLmD,EAAEX,EAAE4iE,GAAGj5D,KAAK,SAAShJ,EAAE7D,KAAK8rB,KAAK,SAASjoB,EAAE7D,GAAG,IAAIc,EAAEoC,EAAEuD,EAAE5E,EAAEwB,EAAE,SAASrD,EAAEU,EAAE,OAAO2C,EAAE,OAAO,WAAW,IAAI5C,EAAEilE,GAAG74D,KAAKhJ,GAAGvE,EAAEmB,EAAEkM,GAAGjG,EAAE,MAAMjG,EAAE2C,MAAMC,GAAGxB,IAAIA,EAAEklE,GAAG/mE,SAAI,EAAOV,IAAIwB,GAAG2F,IAAIC,IAAIxD,GAAGpC,EAAExB,GAAG+lB,QAAQ1Y,GAAGjM,EAAE+F,EAAEC,GAAGjG,EAAEkM,GAAGzJ,CAAC,CAAC,CAAnL,CAAqL2J,KAAKk5D,IAAIliE,IAAIgJ,KAAK06D,WAAW1jE,EAAE,SAASA,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE5E,EAAEf,EAAE,GAAG,OAAO,WAAW,IAAIuC,EAAEw9C,GAAGh0C,KAAKhJ,GAAG,OAAOR,IAAIxB,EAAE,KAAKwB,IAAIH,EAAEuD,EAAEA,EAAEzG,EAAEkD,EAAEG,EAAEvC,EAAE,CAAC,CAAvG,CAAyG+C,EAAEX,EAAElD,GAAGc,GAAG6L,GAAG,aAAa9I,EAAE,KAAK,EAAE0jE,WAAW,SAAS1jE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE,UAAUW,GAAG,IAAI,GAAG/B,UAAUC,OAAO,EAAE,OAAOmB,EAAE2J,KAAKy4D,MAAMpiE,KAAKA,EAAEsjE,OAAO,GAAG,MAAMxmE,EAAE,OAAO6M,KAAKy4D,MAAMpiE,EAAE,MAAM,GAAG,mBAAmBlD,EAAE,MAAM,IAAI+uB,MAAM,OAAOliB,KAAKy4D,MAAMpiE,EAAE,SAASW,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEuD,EAAE,SAAS5E,IAAI,IAAIA,EAAE7B,EAAEsC,MAAMuK,KAAK/K,WAAW,OAAOD,IAAI4E,IAAIvD,GAAGuD,EAAE5E,IAAI,SAASgC,EAAE7D,EAAEc,GAAG,OAAO,SAASoC,GAAG2J,KAAKs8B,MAAMwX,YAAY98C,EAAE7D,EAAEgB,KAAK6L,KAAK3J,GAAGpC,EAAE,CAAC,CAA9E,CAAgF+C,EAAEhC,EAAEf,IAAIoC,CAAC,CAAC,OAAOrB,EAAE2kE,OAAOxmE,EAAE6B,CAAC,CAAxM,CAA0MgC,EAAE7D,EAAE,MAAMc,EAAE,GAAGA,GAAG,EAAE4lD,KAAK,SAAS7iD,GAAG,OAAOgJ,KAAKy4D,MAAM,OAAO,mBAAmBzhE,EAAE,SAASA,GAAG,OAAO,WAAW,IAAI7D,EAAE6D,EAAEgJ,MAAMA,KAAKm1C,YAAY,MAAMhiD,EAAE,GAAGA,CAAC,CAAC,CAA1E,CAA4E8lE,GAAGj5D,KAAK,OAAOhJ,IAAI,SAASA,GAAG,OAAO,WAAWgJ,KAAKm1C,YAAYn+C,CAAC,CAAC,CAAjD,CAAmD,MAAMA,EAAE,GAAGA,EAAE,IAAI,EAAE2jE,UAAU,SAAS3jE,GAAG,IAAI7D,EAAE,OAAO,GAAG8B,UAAUC,OAAO,EAAE,OAAO/B,EAAE6M,KAAKy4D,MAAMtlE,KAAKA,EAAEwmE,OAAO,GAAG,MAAM3iE,EAAE,OAAOgJ,KAAKy4D,MAAMtlE,EAAE,MAAM,GAAG,mBAAmB6D,EAAE,MAAM,IAAIkrB,MAAM,OAAOliB,KAAKy4D,MAAMtlE,EAAE,SAAS6D,GAAG,IAAI7D,EAAEc,EAAE,SAASoC,IAAI,IAAIA,EAAEW,EAAEvB,MAAMuK,KAAK/K,WAAW,OAAOoB,IAAIpC,IAAId,GAAGc,EAAEoC,IAAI,SAASW,GAAG,OAAO,SAAS7D,GAAG6M,KAAKm1C,YAAYn+C,EAAE7C,KAAK6L,KAAK7M,EAAE,CAAC,CAA/D,CAAiEkD,IAAIlD,CAAC,CAAC,OAAOkD,EAAEsjE,OAAO3iE,EAAEX,CAAC,CAAjL,CAAmLW,GAAG,EAAEiwC,OAAO,WAAW,OAAOjnC,KAAKF,GAAG,aAAa,SAAS9I,GAAG,OAAO,WAAW,IAAI7D,EAAE6M,KAAK41C,WAAW,IAAI,IAAI3hD,KAAK+L,KAAKs4D,aAAa,IAAIrkE,IAAI+C,EAAE,OAAO7D,GAAGA,EAAEijD,YAAYp2C,KAAK,CAAC,CAA3H,CAA6HA,KAAKk5D,KAAK,EAAET,MAAM,SAASzhE,EAAE7D,GAAG,IAAIc,EAAE+L,KAAKk5D,IAAI,GAAGliE,GAAG,GAAG/B,UAAUC,OAAO,EAAE,CAAC,IAAI,IAAImB,EAAEuD,EAAEg/D,GAAG54D,KAAK2hB,OAAO1tB,GAAGwkE,MAAMzjE,EAAE,EAAEwB,EAAEoD,EAAE1E,OAAOF,EAAEwB,IAAIxB,EAAE,IAAIqB,EAAEuD,EAAE5E,IAAI2mB,OAAO3kB,EAAE,OAAOX,EAAEE,MAAM,OAAO,IAAI,CAAC,OAAOyJ,KAAKif,MAAM,MAAM9rB,EAAE4lE,GAAGC,IAAI/kE,EAAE+C,EAAE7D,GAAG,EAAEqlE,MAAM,SAASxhE,GAAG,IAAI7D,EAAE6M,KAAKk5D,IAAI,OAAOjkE,UAAUC,OAAO8K,KAAKif,MAAM,mBAAmBjoB,EAAE6iE,GAAGC,IAAI3mE,EAAE6D,IAAI4hE,GAAG54D,KAAK2hB,OAAOxuB,GAAGqlE,KAAK,EAAEpC,SAAS,SAASp/D,GAAG,IAAI7D,EAAE6M,KAAKk5D,IAAI,OAAOjkE,UAAUC,OAAO8K,KAAKif,MAAM,mBAAmBjoB,EAAE+iE,GAAGC,IAAI7mE,EAAE6D,IAAI4hE,GAAG54D,KAAK2hB,OAAOxuB,GAAGijE,QAAQ,EAAEsC,KAAK,SAAS1hE,GAAG,IAAI7D,EAAE6M,KAAKk5D,IAAI,OAAOjkE,UAAUC,OAAO8K,KAAKif,KAAK,SAASjoB,EAAE7D,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAI+uB,MAAM,OAAO,WAAW22C,GAAG74D,KAAKhJ,GAAG0hE,KAAKvlE,CAAC,CAAC,CAA1F,CAA4FA,EAAE6D,IAAI4hE,GAAG54D,KAAK2hB,OAAOxuB,GAAGulE,IAAI,EAAEkC,YAAY,SAAS5jE,GAAG,GAAG,mBAAmBA,EAAE,MAAM,IAAIkrB,MAAM,OAAOliB,KAAKif,KAAK,SAASjoB,EAAE7D,GAAG,OAAO,WAAW,IAAIc,EAAEd,EAAEsC,MAAMuK,KAAK/K,WAAW,GAAG,mBAAmBhB,EAAE,MAAM,IAAIiuB,MAAM22C,GAAG74D,KAAKhJ,GAAG0hE,KAAKzkE,CAAC,CAAC,CAAxH,CAA0H+L,KAAKk5D,IAAIliE,GAAG,EAAE6jE,IAAI,WAAW,IAAI7jE,EAAE7D,EAAEc,EAAE+L,KAAK3J,EAAEpC,EAAEilE,IAAIt/D,EAAE3F,EAAEiM,OAAO,OAAO,IAAI46D,SAAS,SAAS9lE,EAAEwB,GAAG,IAAI3C,EAAE,CAAC0C,MAAMC,GAAG5C,EAAE,CAAC2C,MAAM,WAAW,KAAKqD,GAAG5E,GAAG,GAAGf,EAAEgrB,MAAI,WAAa,IAAIhrB,EAAE4kE,GAAG74D,KAAK3J,GAAGuD,EAAE3F,EAAE6L,GAAGlG,IAAI5C,KAAK7D,GAAG6D,EAAE4C,GAAG4e,QAAQxe,EAAE4tC,OAAOvyC,KAAKxB,GAAGV,EAAE6G,EAAE+gE,UAAU1lE,KAAKxB,GAAGV,EAAE6G,EAAE6gE,IAAIxlE,KAAKzB,IAAIK,EAAE6L,GAAG3M,CAAE,IAAG,IAAIyG,GAAG5E,GAAI,GAAE,EAAE,CAACpC,OAAOguC,UAAU25B,GAAG3nE,OAAOguC,WAAW,IAAIo6B,GAAG,CAACjpC,KAAK,KAAKymC,MAAM,EAAEpC,SAAS,IAAIsC,KAAK,SAAS1hE,GAAG,QAAQA,GAAG,IAAI,EAAEA,EAAEA,EAAEA,GAAGA,GAAG,GAAGA,EAAEA,EAAE,GAAG,CAAC,GAAG,SAASikE,GAAGjkE,EAAE7D,GAAG,IAAI,IAAIc,IAAIA,EAAE+C,EAAEshE,iBAAiBrkE,EAAEA,EAAEd,KAAK,KAAK6D,EAAEA,EAAE4+C,YAAY,MAAM,IAAI1zB,MAAM,cAAc/uB,eAAe,OAAOc,CAAC,CAAC0jD,GAAG1kD,UAAU8nE,UAAU,SAAS/jE,GAAG,OAAOgJ,KAAKif,MAAI,WAAa65C,GAAG94D,KAAKhJ,EAAG,GAAE,EAAE2gD,GAAG1kD,UAAUunE,WAAW,SAASxjE,GAAG,IAAI7D,EAAEc,EAAE+C,aAAaojE,IAAIjnE,EAAE6D,EAAEkiE,IAAIliE,EAAEA,EAAEqjE,QAAQlnE,EAAEmnE,MAAMrmE,EAAE+mE,IAAIjpC,KAAKklC,KAAKjgE,EAAE,MAAMA,EAAE,KAAKA,EAAE,IAAI,IAAI,IAAIX,EAAE2J,KAAKy3C,QAAQ79C,EAAEvD,EAAEnB,OAAOF,EAAE,EAAEA,EAAE4E,IAAI5E,EAAE,IAAI,IAAIwB,EAAE3C,EAAEwC,EAAErB,GAAGpB,EAAEC,EAAEqB,OAAOzC,EAAE,EAAEA,EAAEmB,IAAInB,GAAG+D,EAAE3C,EAAEpB,KAAK4lE,GAAG7hE,EAAEQ,EAAE7D,EAAEV,EAAEoB,EAAEI,GAAGgnE,GAAGzkE,EAAErD,IAAI,OAAO,IAAIinE,GAAG/jE,EAAE2J,KAAK03C,SAAS1gD,EAAE7D,EAAE,EAAE,IAAI+nE,GAAGlkE,GAAG,IAAIA,EAAE,SAASmkE,GAAGnkE,GAAG8gD,YAAY3kD,EAAEgoD,OAAOlnD,EAAEsrB,UAAUlpB,EAAE8jD,SAASvgD,IAAI5G,OAAOuoD,iBAAiBv7C,KAAK,CAAC1L,KAAK,CAACiC,MAAMS,EAAEqL,YAAW,EAAGD,cAAa,GAAI01C,YAAY,CAACvhD,MAAMpD,EAAEkP,YAAW,EAAGD,cAAa,GAAI+4C,OAAO,CAAC5kD,MAAMtC,EAAEoO,YAAW,EAAGD,cAAa,GAAImd,UAAU,CAAChpB,MAAMF,EAAEgM,YAAW,EAAGD,cAAa,GAAIpI,EAAE,CAACzD,MAAMqD,IAAI,CAAC,SAASwhE,GAAGpkE,EAAE7D,EAAEc,GAAG+L,KAAKrN,EAAEqE,EAAEgJ,KAAKjG,EAAE5G,EAAE6M,KAAKlG,EAAE7F,CAAC,CAACmnE,GAAGnoE,UAAU,CAACqT,YAAY80D,GAAGC,MAAM,SAASrkE,GAAG,OAAO,IAAIA,EAAEgJ,KAAK,IAAIo7D,GAAGp7D,KAAKrN,EAAEqE,EAAEgJ,KAAKjG,EAAEiG,KAAKlG,EAAE,EAAE0wC,UAAU,SAASxzC,EAAE7D,GAAG,OAAO,IAAI6D,EAAE,IAAI7D,EAAE6M,KAAK,IAAIo7D,GAAGp7D,KAAKrN,EAAEqN,KAAKjG,EAAEiG,KAAKrN,EAAEqE,EAAEgJ,KAAKlG,EAAEkG,KAAKrN,EAAEQ,EAAE,EAAEsC,MAAM,SAASuB,GAAG,MAAM,CAACA,EAAE,GAAGgJ,KAAKrN,EAAEqN,KAAKjG,EAAE/C,EAAE,GAAGgJ,KAAKrN,EAAEqN,KAAKlG,EAAE,EAAEwhE,OAAO,SAAStkE,GAAG,OAAOA,EAAEgJ,KAAKrN,EAAEqN,KAAKjG,CAAC,EAAEwhE,OAAO,SAASvkE,GAAG,OAAOA,EAAEgJ,KAAKrN,EAAEqN,KAAKlG,CAAC,EAAE0hE,OAAO,SAASxkE,GAAG,MAAM,EAAEA,EAAE,GAAGgJ,KAAKjG,GAAGiG,KAAKrN,GAAGqE,EAAE,GAAGgJ,KAAKlG,GAAGkG,KAAKrN,EAAE,EAAE8oE,QAAQ,SAASzkE,GAAG,OAAOA,EAAEgJ,KAAKjG,GAAGiG,KAAKrN,CAAC,EAAE+oE,QAAQ,SAAS1kE,GAAG,OAAOA,EAAEgJ,KAAKlG,GAAGkG,KAAKrN,CAAC,EAAEgpE,SAAS,SAAS3kE,GAAG,OAAOA,EAAEwhB,OAAOojD,OAAO5kE,EAAEg3B,QAAQrsB,IAAI3B,KAAKy7D,QAAQz7D,MAAM2B,IAAI3K,EAAEwkE,OAAOxkE,GAAG,EAAE6kE,SAAS,SAAS7kE,GAAG,OAAOA,EAAEwhB,OAAOojD,OAAO5kE,EAAEg3B,QAAQrsB,IAAI3B,KAAK07D,QAAQ17D,MAAM2B,IAAI3K,EAAEwkE,OAAOxkE,GAAG,EAAEtB,SAAS,WAAW,MAAM,aAAasK,KAAKjG,EAAE,IAAIiG,KAAKlG,EAAE,WAAWkG,KAAKrN,EAAE,GAAG,GAAG,IAAImpE,GAAG,IAAIV,GAAG,EAAE,EAAE,GAAG,SAASW,GAAG/kE,GAAG,MAAMA,EAAEglE,QAAQ,KAAKhlE,EAAEA,EAAE4+C,YAAY,OAAOkmB,GAAG,OAAO9kE,EAAEglE,MAAM,CAAC,SAASC,GAAGjlE,GAAGA,EAAEyjD,0BAA0B,CAAC,SAASyhB,GAAGllE,GAAGA,EAAE2jD,iBAAiB3jD,EAAEyjD,0BAA0B,CAAC,SAAS0hB,GAAGnlE,GAAG,QAAQA,EAAEykD,SAAS,UAAUzkD,EAAE1C,MAAM0C,EAAE0kD,OAAO,CAAC,SAAS0gB,KAAK,IAAIplE,EAAEgJ,KAAK,OAAOhJ,aAAaqlE,YAAYrlE,EAAEA,EAAEghD,iBAAiBhhD,GAAGslE,aAAa,WAAW,CAAC,EAAEtlE,EAAEA,EAAEulE,QAAQ3G,SAAS77D,EAAE/C,EAAE8C,GAAG,CAAC9C,EAAE+C,EAAE/C,EAAEg6B,MAAMh6B,EAAE8C,EAAE9C,EAAEi6B,SAAS,CAAC,CAAC,EAAE,GAAG,CAACj6B,EAAEg6B,MAAM4kC,QAAQr/D,MAAMS,EAAEi6B,OAAO2kC,QAAQr/D,QAAQ,CAAC,CAAC,EAAE,GAAG,CAACS,EAAEwlE,YAAYxlE,EAAEylE,cAAc,CAAC,SAASC,KAAK,OAAO18D,KAAKg8D,QAAQF,EAAE,CAAC,SAASa,GAAG3lE,GAAG,OAAOA,EAAE4lE,QAAQ,IAAI5lE,EAAE6lE,UAAU,IAAI7lE,EAAE6lE,UAAU,EAAE,OAAO7lE,EAAEykD,QAAQ,GAAG,EAAE,CAAC,SAASqhB,KAAK,OAAOhhB,UAAUC,gBAAgB,iBAAiB/7C,IAAI,CAAC,SAAS+8D,GAAG/lE,EAAE7D,EAAEc,GAAG,IAAIoC,EAAEW,EAAEykE,QAAQtoE,EAAE,GAAG,IAAIc,EAAE,GAAG,GAAG2F,EAAE5C,EAAEykE,QAAQtoE,EAAE,GAAG,IAAIc,EAAE,GAAG,GAAGe,EAAEgC,EAAE0kE,QAAQvoE,EAAE,GAAG,IAAIc,EAAE,GAAG,GAAGuC,EAAEQ,EAAE0kE,QAAQvoE,EAAE,GAAG,IAAIc,EAAE,GAAG,GAAG,OAAO+C,EAAEwzC,UAAU5wC,EAAEvD,GAAGA,EAAEuD,GAAG,EAAEqkB,KAAK6F,IAAI,EAAEztB,IAAI4nB,KAAKC,IAAI,EAAEtkB,GAAGpD,EAAExB,GAAGA,EAAEwB,GAAG,EAAEynB,KAAK6F,IAAI,EAAE9uB,IAAIipB,KAAKC,IAAI,EAAE1nB,GAAG,CAAqtQulE,GAAG9oE,UAAUmoE,GAAGnoE,UAAU,IAAI+pE,GAAGC,GAAG,SAASjmE,EAAE7D,GAAG,OAAO6D,EAAE+C,IAAI5G,EAAE4G,GAAG/C,EAAE8C,IAAI3G,EAAE2G,GAAG9C,EAAEkmE,OAAO/pE,EAAER,CAAC,EAAEwqE,GAAG,SAASnmE,GAAG,MAAM,CAAC+C,EAAE/C,EAAE+C,EAAED,EAAE9C,EAAE8C,EAAEojE,KAAKlmE,EAAErE,EAAE,EAAEyqE,GAAG,SAASpmE,GAAG,IAAI7D,EAAE6D,EAAE+C,EAAE9F,EAAE+C,EAAE8C,EAAEzD,EAAEW,EAAEkmE,KAAK,OAAOpB,GAAGtxB,UAAUr3C,EAAEc,GAAGonE,MAAMhlE,EAAE,EAAEgnE,GAAG,SAASrmE,EAAE7D,GAAG,OAAO6D,EAAEmkD,OAAOmiB,QAAQ,IAAIl6C,OAAOjwB,GAAG,EAAEoqE,GAAG,SAASvmE,EAAE7D,GAAG,OAAO,IAAIA,GAAGmC,MAAMC,QAAQyB,IAAIA,EAAEmtC,SAAS,EAAE,EAAEq5B,GAAG,SAASxmE,EAAE7D,GAAG,YAAO,IAASA,IAAIA,EAAE,GAAG,iBAAiBA,GAAGA,EAAE,EAAE6D,EAAEwjE,aAAapE,SAASjjE,GAAG6D,CAAC,EAAEymE,GAAG,SAASzmE,GAAG,IAAI7D,EAAE6D,EAAEykD,SAAS2D,KAAK,GAAG,EAAE,OAAOpoD,EAAE4lE,QAAQ,IAAI5lE,EAAE6lE,UAAU,IAAI7lE,EAAE6lE,UAAU,EAAE,MAAM1pE,CAAC,EAAE,SAASuqE,GAAG1mE,GAAG,IAAI7D,EAAE6D,EAAE+sD,QAAQ9vD,EAAE+C,EAAE2mE,QAAQtnE,EAAEW,EAAE4mE,QAAQhkE,EAAE5C,EAAE6mE,gBAAgB7oE,EAAEgC,EAAE8mE,SAAStnE,EAAEQ,EAAE+mE,UAAUlqE,EAAEmD,EAAEgnE,eAAepqE,EAAEoD,EAAEinE,aAAaxrE,EAAEuE,EAAEknE,kBAAkBrkE,EAAE7C,EAAEmnE,iBAAiBrrE,EAAE,CAACsrE,oBAAmB,EAAGC,sBAAqB,EAAGC,aAAa,CAACvkE,EAAE,EAAED,EAAE,EAAEojE,KAAK,GAAGqB,YAAY,EAAEC,aAAQ,EAAOC,sBAAiB,EAAOC,gBAAe,GAAIxqE,EAAEf,EAAEolD,wBAAwBvkD,EAAhlS,WAAc,IAAIgD,EAAE7D,EAAEc,EAAEoC,EAAE8lE,GAAGviE,EAAEwiE,GAAGpnE,EAAE+nE,GAAGvmE,EAAEmmE,GAAG9oE,EAAEipE,GAAGlpE,EAAE,CAAC,EAAE,KAAKnB,EAAE,CAAC,EAAC,KAAK,KAAM,CAAC,IAAI,MAAMoH,EAAE,IAAI/G,EAAEqjE,GAAGjiE,EAAEi8C,GAAG,QAAQ,OAAO,OAAOn8C,EAAE,IAAIkD,EAAE,IAAI5D,EAAE,EAAEQ,EAAE,GAAG,SAASgG,EAAE9C,GAAGA,EAAE2iD,SAAS,SAAS+iB,IAAI58D,GAAG,aAAanN,EAAE,CAAC0nD,SAAQ,IAAKv6C,GAAG,iBAAiB5F,GAAG4F,GAAG,gBAAgB3F,GAAG+kB,OAAOrrB,GAAGiM,GAAG,kBAAkB1F,GAAG0F,GAAG,iBAAiBzF,GAAGyF,GAAG,iCAAiCxF,GAAGgiC,MAAM,8BAA8B,gBAAgB,CAAC,SAASvpC,EAAEiE,EAAE7D,GAAG,OAAOA,EAAE8qB,KAAKC,IAAItqB,EAAE,GAAGqqB,KAAK6F,IAAIlwB,EAAE,GAAGT,OAAO6D,EAAErE,EAAEqE,EAAE,IAAIokE,GAAGjoE,EAAE6D,EAAE+C,EAAE/C,EAAE8C,EAAE,CAAC,SAAS1C,EAAEJ,EAAE7D,EAAEc,GAAG,IAAIoC,EAAElD,EAAE,GAAGc,EAAE,GAAG+C,EAAErE,EAAEiH,EAAEzG,EAAE,GAAGc,EAAE,GAAG+C,EAAErE,EAAE,OAAO0D,IAAIW,EAAE+C,GAAGH,IAAI5C,EAAE8C,EAAE9C,EAAE,IAAIokE,GAAGpkE,EAAErE,EAAE0D,EAAEuD,EAAE,CAAC,SAAS7F,EAAEiD,GAAG,MAAM,GAAGA,EAAE,GAAG,KAAKA,EAAE,GAAG,IAAI,IAAIA,EAAE,GAAG,KAAKA,EAAE,GAAG,IAAI,EAAE,CAAC,SAAS+C,EAAE/C,EAAE7D,EAAEc,EAAEoC,GAAGW,EAAE8I,GAAG,yBAAyB9F,EAAEgG,KAAK/K,WAAW0pE,MAAMtoE,GAAGuoE,OAAQ,IAAG9+D,GAAG,2BAA2B,WAAW9F,EAAEgG,KAAK/K,WAAW0pE,MAAMtoE,GAAGwkE,KAAM,IAAGpC,MAAM,QAAM,WAAa,IAAIzhE,EAAEgJ,KAAKhL,EAAEC,UAAUuB,EAAEwD,EAAEhD,EAAEhC,GAAG2pE,MAAMtoE,GAAGxC,EAAE+F,EAAEnE,MAAMuB,EAAEhC,GAAGpB,EAAE,MAAMK,EAAEF,EAAEF,GAAG,mBAAmBI,EAAEA,EAAEwB,MAAMuB,EAAEhC,GAAGf,EAAExB,EAAEwrB,KAAKC,IAAIrqB,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAIgG,EAAE7C,EAAEglE,OAAO9nE,EAAE,mBAAmBf,EAAEA,EAAEsC,MAAMuB,EAAEhC,GAAG7B,EAAEa,EAAElB,EAAE+G,EAAE2hE,OAAO5nE,GAAGwvB,OAAO3wB,EAAEoH,EAAElH,GAAGuB,EAAEsnE,OAAO5nE,GAAGwvB,OAAO3wB,EAAEyB,EAAEvB,IAAI,OAAO,SAASqE,GAAG,GAAG,IAAIA,EAAEA,EAAE9C,MAAM,CAAC,IAAIf,EAAEa,EAAEgD,GAAG/C,EAAExB,EAAEU,EAAE,GAAG6D,EAAE,IAAIokE,GAAGnnE,EAAEL,EAAE,GAAGT,EAAE,GAAGc,EAAEL,EAAE,GAAGT,EAAE,GAAGc,EAAE,CAACuC,EAAE0mE,KAAK,KAAKlmE,EAAE,CAAE,GAAE,CAAC,SAASgD,EAAEhD,EAAE7D,EAAEc,GAAG,OAAOA,GAAG+C,EAAE6nE,WAAW,IAAI5kE,EAAEjD,EAAE7D,EAAE,CAAC,SAAS8G,EAAEjD,EAAE7D,GAAG6M,KAAK8+D,KAAK9nE,EAAEgJ,KAAK++D,KAAK5rE,EAAE6M,KAAKq7C,OAAO,EAAEr7C,KAAK83C,YAAY,KAAK93C,KAAKy+C,OAAO7kD,EAAEnE,MAAMuB,EAAE7D,GAAG6M,KAAKg/D,KAAK,CAAC,CAAC,SAASrsE,EAAEqE,KAAK7D,GAAG,GAAGkD,EAAEZ,MAAMuK,KAAK/K,WAAW,CAAC,IAAIhB,EAAE+F,EAAEgG,KAAK7M,GAAGwrE,MAAM3nE,GAAG4C,EAAEoG,KAAKg8D,OAAOnoE,EAAEoqB,KAAKC,IAAItqB,EAAE,GAAGqqB,KAAK6F,IAAIlwB,EAAE,GAAGgG,EAAEjH,EAAEsrB,KAAK6kC,IAAI,EAAEtsD,EAAEf,MAAMuK,KAAK/K,cAAc4E,EAAEg+C,GAAG7gD,GAAG,GAAG/C,EAAEgrE,MAAMhrE,EAAE4wD,MAAM,GAAG,KAAKhrD,EAAE,IAAI5F,EAAE4wD,MAAM,GAAG,KAAKhrD,EAAE,KAAK5F,EAAE4wD,MAAM,GAAGjrD,EAAE4hE,OAAOvnE,EAAE4wD,MAAM,GAAGhrD,IAAI0oC,aAAatuC,EAAEgrE,WAAW,CAAC,GAAGrlE,EAAEjH,IAAIkB,EAAE,OAAOI,EAAE4wD,MAAM,CAAChrD,EAAED,EAAE4hE,OAAO3hE,IAAIi/D,GAAG94D,MAAM/L,EAAE2qE,OAAO,CAAC1C,GAAGllE,GAAG/C,EAAEgrE,MAAMv8B,YAAU,WAAazuC,EAAEgrE,MAAM,KAAKhrE,EAAE4mE,KAAM,GAAE3jE,GAAGjD,EAAEipE,KAAK,QAAQloE,EAAEoC,EAAErE,EAAE6G,EAAE/F,GAAGI,EAAE4wD,MAAM,GAAG5wD,EAAE4wD,MAAM,IAAI5wD,EAAEwqD,OAAOhsD,GAAG,CAAC,CAAC,SAASyH,EAAElD,KAAK7D,GAAG,IAAIc,GAAGoC,EAAEZ,MAAMuK,KAAK/K,WAAW,CAAC,IAAI2E,EAAE5C,EAAE+gD,cAAcvhD,EAAEwD,EAAEgG,KAAK7M,GAAE,GAAIwrE,MAAM3nE,GAAGnD,EAAE+jD,GAAG5gD,EAAE4tD,MAAM9kD,GAAG,kBAAgB,SAAW9I,GAAG,GAAGklE,GAAGllE,IAAIR,EAAE0oE,MAAM,CAAC,IAAI/rE,EAAE6D,EAAEkhD,QAAQr+C,EAAE5F,EAAE+C,EAAEmhD,QAAQrlD,EAAE0D,EAAE0oE,MAAM/rE,EAAEA,EAAEc,EAAEA,EAAEX,CAAC,CAACkD,EAAEmoE,MAAM3nE,GAAGkmE,KAAK,QAAQloE,EAAEoC,EAAEZ,EAAEsoE,KAAK9C,OAAOxlE,EAAEquD,MAAM,GAAGhN,GAAG7gD,EAAE4C,GAAGpD,EAAEquD,MAAM,IAAIruD,EAAEioD,OAAOhsD,GAAI,IAAE,GAAIqN,GAAG,gBAAc,SAAW9I,GAAGnD,EAAEiM,GAAG,8BAA8B,MAAMi7C,GAAG/jD,EAAE4tD,KAAKpuD,EAAE0oE,OAAOhD,GAAGllE,GAAGR,EAAEmoE,MAAM3nE,GAAG6jE,KAAM,IAAE,GAAIjnE,EAAEikD,GAAG7gD,EAAE4C,GAAGC,EAAE7C,EAAEkhD,QAAQplD,EAAEkE,EAAEmhD,QAAQyC,GAAG5jD,EAAE4tD,MAAMqX,GAAGjlE,GAAGR,EAAEquD,MAAM,CAACjxD,EAAEoM,KAAKg8D,OAAOR,OAAO5nE,IAAIklE,GAAG94D,MAAMxJ,EAAEooE,OAAO,CAAC,CAAC,SAASzkE,EAAEnD,KAAK7D,GAAG,GAAGkD,EAAEZ,MAAMuK,KAAK/K,WAAW,CAAC,IAAIhB,EAAE+L,KAAKg8D,OAAOxlE,EAAEqhD,GAAG7gD,EAAE8tD,eAAe9tD,EAAE8tD,eAAe,GAAG9tD,EAAEgJ,MAAMnM,EAAEI,EAAEunE,OAAOhlE,GAAG5C,EAAEK,EAAEtB,GAAGqE,EAAEmoE,SAAS,GAAG,GAAGrsE,EAAEkC,EAAEoC,EAAErE,EAAEkB,EAAEL,GAAG4C,EAAE3C,GAAG+F,EAAEnE,MAAMuK,KAAK7M,GAAGV,GAAGypE,GAAGllE,GAAG6C,EAAE,EAAE+9C,GAAG53C,MAAMw6D,aAAapE,SAASv8D,GAAG1F,KAAK4F,EAAEjH,EAAE0D,EAAEQ,GAAG4gD,GAAG53C,MAAM7L,KAAK2F,EAAEylB,UAAUzsB,EAAE0D,EAAEQ,EAAE,CAAC,CAAC,SAASoD,EAAEnG,KAAK2F,GAAG,GAAGvD,EAAEZ,MAAMuK,KAAK/K,WAAW,CAAC,IAAID,EAAEwB,EAAE3C,EAAED,EAAEnB,EAAEwB,EAAEosD,QAAQxmD,EAAEpH,EAAEyC,OAAOpC,EAAEkH,EAAEgG,KAAKpG,EAAE3F,EAAE6wD,eAAe5vD,SAAS2E,GAAG8kE,MAAM1qE,GAAG,IAAIgoE,GAAGhoE,GAAGuC,EAAE,EAAEA,EAAEqD,IAAIrD,EAAE5C,EAAE,CAACA,EAAEikD,GAAGhkD,EAAEpB,EAAE+D,GAAGwJ,MAAMA,KAAKg8D,OAAOR,OAAO5nE,GAAGC,EAAEunD,YAAYtoD,EAAEssE,OAAOtsE,EAAEusE,QAAQvsE,EAAEssE,OAAO,KAAKxrE,EAAE,KAAKd,EAAEusE,OAAOzrE,EAAEd,EAAEksE,KAAK,IAAIlsE,EAAEssE,OAAOxrE,EAAEoB,GAAE,EAAGlC,EAAEksE,KAAK,IAAIhoE,GAAGA,IAAIA,EAAEurC,aAAavrC,IAAIhC,IAAIlC,EAAEksE,KAAK,IAAI7rE,EAAES,EAAE,GAAGoD,EAAE0rC,uBAAuB1rC,EAAE,IAAK,GAAEhD,IAAI8kE,GAAG94D,MAAMlN,EAAE8rE,QAAQ,CAAC,CAAC,SAASvkE,EAAErD,KAAK7D,GAAG,GAAG6M,KAAK6+D,UAAU,CAAC,IAAI5qE,EAAEoC,EAAEuD,EAAEpD,EAAE3C,EAAEmG,EAAEgG,KAAK7M,GAAGwrE,MAAM3nE,GAAGpD,EAAEoD,EAAE8tD,eAAejrD,EAAEjG,EAAEsB,OAAO,IAAIgnE,GAAGllE,GAAG/C,EAAE,EAAEA,EAAE4F,IAAI5F,EAAE2F,EAAEi+C,GAAGxhD,EAAEzC,EAAEK,GAAG+L,MAAMnM,EAAEurE,QAAQvrE,EAAEurE,OAAO,KAAK/oE,EAAE+kD,WAAWvnD,EAAEurE,OAAO,GAAGxlE,EAAE/F,EAAEwrE,QAAQxrE,EAAEwrE,OAAO,KAAKhpE,EAAE+kD,aAAavnD,EAAEwrE,OAAO,GAAGzlE,GAAG,GAAGvD,EAAExC,EAAEirE,KAAK9C,OAAOnoE,EAAEwrE,OAAO,CAAC,IAAIvsE,EAAEe,EAAEurE,OAAO,GAAGlrE,EAAEL,EAAEurE,OAAO,GAAGprE,EAAEH,EAAEwrE,OAAO,GAAGnoE,EAAErD,EAAEwrE,OAAO,GAAG/rE,GAAGA,EAAEU,EAAE,GAAGlB,EAAE,IAAIQ,GAAGA,EAAEU,EAAE,GAAGlB,EAAE,IAAIQ,EAAEQ,GAAGA,EAAEoD,EAAE,GAAGhD,EAAE,IAAIJ,GAAGA,EAAEoD,EAAE,GAAGhD,EAAE,IAAIJ,EAAEuC,EAAEtD,EAAEsD,EAAE4nB,KAAK+iC,KAAK1tD,EAAEQ,IAAI8F,EAAE,EAAE9G,EAAE,GAAGkB,EAAE,IAAI,GAAGlB,EAAE,GAAGkB,EAAE,IAAI,GAAGwC,EAAE,EAAEtC,EAAE,GAAGgD,EAAE,IAAI,GAAGhD,EAAE,GAAGgD,EAAE,IAAI,EAAE,KAAK,CAAC,IAAIrD,EAAEurE,OAAO,OAAOxlE,EAAE/F,EAAEurE,OAAO,GAAG5oE,EAAE3C,EAAEurE,OAAO,EAAE,CAACvrE,EAAEqpE,KAAK,QAAQloE,EAAEoC,EAAEf,EAAEuD,EAAEpD,GAAG3C,EAAE4qD,OAAOhsD,GAAG,CAAC,CAAC,SAAS6H,EAAEtD,KAAKX,GAAG,GAAG2J,KAAK6+D,UAAU,CAAC,IAAIjlE,EAAE5E,EAAEwB,EAAEwD,EAAEgG,KAAK3J,GAAGsoE,MAAM3nE,GAAGnD,EAAEmD,EAAE8tD,eAAelxD,EAAEC,EAAEqB,OAAO,IAAI+mE,GAAGjlE,GAAG/C,GAAGsuC,aAAatuC,GAAGA,EAAEyuC,YAAU,WAAazuC,EAAE,IAAK,GAAED,GAAG4F,EAAE,EAAEA,EAAEhG,IAAIgG,EAAE5E,EAAEnB,EAAE+F,GAAGpD,EAAE4oE,QAAQ5oE,EAAE4oE,OAAO,KAAKpqE,EAAEomD,kBAAkB5kD,EAAE4oE,OAAO5oE,EAAE6oE,QAAQ7oE,EAAE6oE,OAAO,KAAKrqE,EAAEomD,mBAAmB5kD,EAAE6oE,OAAO,GAAG7oE,EAAE6oE,SAAS7oE,EAAE4oE,SAAS5oE,EAAE4oE,OAAO5oE,EAAE6oE,cAAc7oE,EAAE6oE,QAAQ7oE,EAAE4oE,OAAO5oE,EAAE4oE,OAAO,GAAGp/D,KAAKg8D,OAAOR,OAAOhlE,EAAE4oE,OAAO,SAAS,GAAG5oE,EAAEqkE,MAAM,IAAIrkE,EAAEwoE,OAAOhqE,EAAE6iD,GAAG7iD,EAAEgL,MAAMie,KAAKqhD,MAAMnsE,EAAE,GAAG6B,EAAE,GAAG7B,EAAE,GAAG6B,EAAE,IAAIlB,GAAG,CAAC,IAAIrB,EAAEmlD,GAAG53C,MAAMF,GAAG,iBAAiBrN,GAAGA,EAAEgD,MAAMuK,KAAK/K,UAAU,CAAC,CAAC,CAAC,OAAO6E,EAAEylB,UAAU,SAASvoB,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAE5C,EAAEqiD,UAAUriD,EAAEqiD,YAAYriD,EAAE4C,EAAE+/C,SAAS,SAAS+iB,IAAI1lE,IAAI4C,EAAEG,EAAE/C,EAAE7D,EAAEc,EAAEoC,GAAGuD,EAAEmhE,YAAY97C,MAAI,WAAajlB,EAAEgG,KAAK/K,WAAW0pE,MAAMtoE,GAAGuoE,QAAQ1B,KAAK,KAAK,mBAAmB/pE,EAAEA,EAAEsC,MAAMuK,KAAK/K,WAAW9B,GAAG0nE,KAAM,GAAE,EAAE/gE,EAAEylE,QAAQ,SAASvoE,EAAE7D,EAAEc,EAAEoC,GAAGyD,EAAE0lE,QAAQxoE,cAAc,OAAOgJ,KAAKg8D,OAAOrpE,GAAG,mBAAmBQ,EAAEA,EAAEsC,MAAMuK,KAAK/K,WAAW9B,EAAG,GAAEc,EAAEoC,EAAE,EAAEyD,EAAE0lE,QAAQ,SAASxoE,EAAE7D,EAAEc,EAAEoC,GAAGyD,EAAEylB,UAAUvoB,GAAG,WAAW,IAAIA,EAAE4C,EAAEnE,MAAMuK,KAAK/K,WAAWoB,EAAE2J,KAAKg8D,OAAOxlE,EAAE,MAAMvC,EAAEF,EAAEiD,GAAG,mBAAmB/C,EAAEA,EAAEwB,MAAMuK,KAAK/K,WAAWhB,EAAEJ,EAAEwC,EAAEmlE,OAAOhlE,GAAG5C,EAAE,mBAAmBT,EAAEA,EAAEsC,MAAMuK,KAAK/K,WAAW9B,EAAE,OAAO6B,EAAEoC,EAAErE,EAAEsD,EAAEzC,GAAG4C,EAAE3C,GAAGmD,EAAEvE,EAAG,GAAEwB,EAAEoC,EAAE,EAAEyD,EAAE2lE,YAAY,SAASzoE,EAAE7D,EAAEc,EAAEoC,GAAGyD,EAAEylB,UAAUvoB,cAAc,OAAOhC,EAAEgL,KAAKg8D,OAAOxxB,UAAU,mBAAmBr3C,EAAEA,EAAEsC,MAAMuK,KAAK/K,WAAW9B,EAAE,mBAAmBc,EAAEA,EAAEwB,MAAMuK,KAAK/K,WAAWhB,GAAG2F,EAAEnE,MAAMuK,KAAK/K,WAAWxC,EAAG,GAAE,KAAK4D,EAAE,EAAEyD,EAAE4lE,YAAY,SAAS1oE,EAAE7D,EAAEc,EAAEoC,EAAEG,GAAGsD,EAAEylB,UAAUvoB,GAAG,WAAW,IAAIA,EAAE4C,EAAEnE,MAAMuK,KAAK/K,WAAWuB,EAAEwJ,KAAKg8D,OAAOnoE,EAAE,MAAMwC,EAAEtC,EAAEiD,GAAG,mBAAmBX,EAAEA,EAAEZ,MAAMuK,KAAK/K,WAAWoB,EAAE,OAAOrB,EAAE8mE,GAAGtxB,UAAU32C,EAAE,GAAGA,EAAE,IAAIwnE,MAAM7kE,EAAE7D,GAAG63C,UAAU,mBAAmBr3C,GAAGA,EAAEsC,MAAMuK,KAAK/K,YAAY9B,EAAE,mBAAmBc,GAAGA,EAAEwB,MAAMuK,KAAK/K,YAAYhB,GAAG+C,EAAEvE,EAAG,GAAE4D,EAAEG,EAAE,EAAEyD,EAAEhH,UAAU,CAAC0rE,MAAM,SAAS3nE,GAAG,OAAOA,IAAIgJ,KAAK83C,YAAY9gD,GAAGgJ,IAAI,EAAE4+D,MAAM,WAAW,OAAO,KAAK5+D,KAAKq7C,SAASr7C,KAAK8+D,KAAKD,UAAU7+D,KAAKA,KAAK2/D,KAAK,UAAU3/D,IAAI,EAAEk9D,KAAK,SAASlmE,EAAE7D,GAAG,OAAO6M,KAAK6kD,OAAO,UAAU7tD,IAAIgJ,KAAK6kD,MAAM,GAAG1xD,EAAEqoE,OAAOx7D,KAAK6kD,MAAM,KAAK7kD,KAAKo/D,QAAQ,UAAUpoE,IAAIgJ,KAAKo/D,OAAO,GAAGjsE,EAAEqoE,OAAOx7D,KAAKo/D,OAAO,KAAKp/D,KAAKq/D,QAAQ,UAAUroE,IAAIgJ,KAAKq/D,OAAO,GAAGlsE,EAAEqoE,OAAOx7D,KAAKq/D,OAAO,KAAKr/D,KAAK8+D,KAAK9C,OAAO7oE,EAAE6M,KAAK2/D,KAAK,QAAQ3/D,IAAI,EAAE66D,IAAI,WAAW,OAAO,KAAK76D,KAAKq7C,gBAAgBr7C,KAAK8+D,KAAKD,UAAU7+D,KAAK2/D,KAAK,QAAQ3/D,IAAI,EAAE2/D,KAAK,SAAS3oE,GAAG,IAAI7D,EAAEykD,GAAG53C,KAAK8+D,MAAM5kB,QAAQhmD,EAAEC,KAAK6C,EAAEgJ,KAAK8+D,KAAK,IAAI3D,GAAGnkE,EAAE,CAAC8gD,YAAY93C,KAAK83C,YAAYqD,OAAOrhD,EAAExF,KAAK0C,EAAEuoB,UAAUvf,KAAK8+D,KAAK9C,OAAO7hB,SAASjmD,IAAIf,EAAE,GAAG2G,EAAE8lE,WAAW,SAAS5oE,GAAG,OAAO/B,UAAUC,QAAQsB,EAAE,mBAAmBQ,EAAEA,EAAEkkE,IAAIlkE,GAAG8C,GAAGtD,CAAC,EAAEsD,EAAEolB,OAAO,SAASloB,GAAG,OAAO/B,UAAUC,QAAQmB,EAAE,mBAAmBW,EAAEA,EAAEkkE,KAAKlkE,GAAG8C,GAAGzD,CAAC,EAAEyD,EAAEkrD,UAAU,SAAShuD,GAAG,OAAO/B,UAAUC,QAAQrB,EAAE,mBAAmBmD,EAAEA,EAAEkkE,KAAKlkE,GAAG8C,GAAGjG,CAAC,EAAEiG,EAAE2kD,OAAO,SAASznD,GAAG,OAAO/B,UAAUC,QAAQ0E,EAAE,mBAAmB5C,EAAEA,EAAEkkE,GAAG,CAAC,EAAElkE,EAAE,GAAG,IAAIA,EAAE,GAAG,IAAI,EAAEA,EAAE,GAAG,IAAIA,EAAE,GAAG,MAAM8C,GAAGF,CAAC,EAAEE,EAAE+lE,YAAY,SAAS7oE,GAAG,OAAO/B,UAAUC,QAAQtB,EAAE,IAAIoD,EAAE,GAAGpD,EAAE,IAAIoD,EAAE,GAAG8C,GAAG,CAAClG,EAAE,GAAGA,EAAE,GAAG,EAAEkG,EAAE+jE,gBAAgB,SAAS7mE,GAAG,OAAO/B,UAAUC,QAAQzC,EAAE,GAAG,IAAIuE,EAAE,GAAG,GAAGvE,EAAE,GAAG,IAAIuE,EAAE,GAAG,GAAGvE,EAAE,GAAG,IAAIuE,EAAE,GAAG,GAAGvE,EAAE,GAAG,IAAIuE,EAAE,GAAG,GAAG8C,GAAG,CAAC,CAACrH,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI,CAACA,EAAE,GAAG,GAAGA,EAAE,GAAG,IAAI,EAAEqH,EAAEgmE,UAAU,SAAS9oE,GAAG,OAAO/B,UAAUC,QAAQF,EAAEgC,EAAE8C,GAAG9E,CAAC,EAAE8E,EAAEs8D,SAAS,SAASp/D,GAAG,OAAO/B,UAAUC,QAAQ2E,GAAG7C,EAAE8C,GAAGD,CAAC,EAAEC,EAAEimE,YAAY,SAAS/oE,GAAG,OAAO/B,UAAUC,QAAQpC,EAAEkE,EAAE8C,GAAGhH,CAAC,EAAEgH,EAAEgG,GAAG,WAAW,IAAI9I,EAAE9C,EAAE4L,GAAGrK,MAAMvB,EAAEe,WAAW,OAAO+B,IAAI9C,EAAE4F,EAAE9C,CAAC,EAAE8C,EAAEmrD,cAAc,SAASjuD,GAAG,OAAO/B,UAAUC,QAAQ5B,GAAG0D,GAAGA,GAAGA,EAAE8C,GAAGmkB,KAAK+iC,KAAK1tD,EAAE,EAAEwG,EAAEkmE,YAAY,SAAShpE,GAAG,OAAO/B,UAAUC,QAAQpB,GAAGkD,EAAE8C,GAAGhG,CAAC,EAAEgG,CAAC,CAA0pEmmE,GAAKJ,YAAY,CAAC5rE,EAAEoC,IAAIwnE,gBAAgBjkE,GAAG1C,EAAE0gD,GAAGzkD,GAAGgB,KAAKH,GAAGoD,EAAE,CAAC2C,EAAE/E,EAAE+E,EAAED,EAAE9E,EAAE8E,EAAEojE,KAAKre,GAAG7pD,EAAEkoE,KAAKjpE,EAAEoC,IAAI,CAAC,CAAC,EAAE,GAAG,CAACnC,EAAE88B,MAAM98B,EAAE+8B,SAASr3B,GAAG,IAAItG,EAAE4D,EAAE4I,GAAG,cAAchM,EAAEoD,EAAE4I,GAAG,iBAAiB,SAAShG,EAAE9C,EAAE7D,GAAG+D,IAAI,MAAMlD,GAAGA,EAAEurB,UAAUi+C,GAAGtmE,EAAE,MAAM/D,OAAE,EAAOA,EAAEijE,UAAUp/D,GAAG,CAAC,SAASjE,IAAIiB,EAAE8L,GAAG,OAAO,KAAK,CAAC,SAAS1I,EAAEJ,EAAE7D,EAAEc,GAAG,IAAIoC,EAAE+mE,GAAGpmE,GAAG4C,EAAE,MAAM5F,OAAE,EAAOA,EAAE8rE,WAAF9rE,CAAcqC,EAAElD,EAAEc,GAAG,OAAO2F,GAAGE,EAAEF,GAAGA,CAAC,CAAC,OAAO5F,EAAE4rE,WAAWnC,IAAI,CAAC7Z,OAAO,SAAS5sD,GAAG,IAAI7D,EAAE6D,EAAEkpE,iBAAiBjsE,EAAE+C,EAAEmpE,eAAe9pE,EAAEW,EAAEopE,kBAAkBxmE,EAAE5C,EAAEqpE,oBAAoBrrE,EAAEgC,EAAEspE,YAAYpsE,EAAE8C,EAAEupE,UAAUzmE,EAAE9C,EAAEwpE,gBAAgBppE,EAAEJ,EAAEypE,iBAAiB1sE,EAAEiD,EAAE0pE,iBAAiB3mE,EAAE/C,EAAE2pE,YAAY3mE,EAAEhD,EAAE4pE,aAAa3mE,EAAEjD,EAAE6pE,kBAAkBluE,EAAEqE,EAAE8pE,yBAAyB5mE,EAAElD,EAAEkvD,IAAItsD,IAAI9G,EAAEsrE,oBAAoBrrE,IAAI,IAAIoH,GAAEnF,GAAIrC,GAAIiH,EAAo9B,SAAS5C,GAAG,IAAI7D,EAAE6D,EAAEkpE,iBAAiBjsE,EAAE+C,EAAE0pE,iBAAiBrqE,EAAEW,EAAE+pE,cAAc,OAAO,SAAS/pE,EAAE4C,GAAG,IAAI3F,GAAG,UAAU+C,EAAE1C,OAAO0C,EAAEykD,SAAS4hB,GAAGrmE,EAAE7D,GAAG,OAAO,KAAK6D,EAAE2jD,iBAAiBtkD,EAAElC,KAAK6L,KAAKhJ,EAAE4C,EAAE,CAAC,CAA9L,CAAgM,CAACsmE,iBAAiB/sE,EAAEutE,iBAAiB3sE,EAAEgtE,cAAcztE,IAAvsC,SAAS0D,GAAG,IAAI7D,EAAE6D,EAAEgqE,cAAc/sE,EAAE+C,EAAEkpE,iBAAiB7pE,EAAEW,EAAEiqE,YAAYrnE,EAAE5C,EAAEkqE,OAAOlsE,EAAEgC,EAAEwpE,gBAAgBhqE,EAAEQ,EAAEypE,iBAAiB5sE,EAAEmD,EAAE2pE,YAAY/sE,EAAEoD,EAAEgnE,eAAevrE,EAAEuE,EAAE+mE,UAAUlkE,EAAE7C,EAAEinE,aAAa,OAAO,SAASjnE,GAAG,GAAGqmE,GAAGrmE,EAAE/C,GAAG,OAAM,EAAG+C,EAAE2jD,iBAAiB3jD,EAAEyjD,2BAA2B,IAAI3nD,EAAEuD,EAAEsjD,SAAS,UAAUhnD,GAAG,EAAE,GAAGqE,EAAEykD,SAAS5nD,EAAE,CAAC,IAAIK,EAAE2jD,GAAG7gD,GAAGhD,EAAEypE,GAAGzmE,GAAGE,EAAEpE,EAAEmrB,KAAK6kC,IAAI,EAAE9uD,GAAG4F,EAAE4lE,QAAQnpE,EAAEa,EAAEhD,EAAE8C,EAAE,KAAK,CAAC,IAAI1D,EAAE,IAAI0D,EAAE6lE,UAAU,GAAG,EAAE/oE,EAAEkB,IAAI8qD,wBAAG+B,SAAS,EAAE7qD,EAAEmqE,OAAO7tE,EAAEwG,EAAE9E,IAAI8qD,wBAAGgC,WAAW,EAAE9qD,EAAE4lE,OAAOtpE,GAAG8rD,MAAMpoD,EAAEmoE,UAAUnqE,IAAI8qD,wBAAG+B,WAAW/tD,EAAEkD,EAAE4lE,OAAOtpE,EAAEwG,EAAE,GAAGF,EAAE6lE,YAAYppE,GAAGvC,EAAEhB,EAAE0D,GAAGsD,EAAEhH,EAAE0D,EAAE,CAAC4qE,UAAS,IAAK,IAAIruE,EAAEoqE,GAAG9mE,EAAEsjD,SAAS,WAAWpX,aAAapvC,EAAEsrE,kBAAkBtrE,EAAEurE,iBAAiBvrE,EAAEurE,gBAAe,EAAG,MAAM9qE,GAAGA,EAAEoD,EAAEjE,IAAII,EAAEurE,iBAAiB,MAAMjsE,GAAGA,EAAEuE,EAAEjE,GAAGI,EAAEsrE,iBAAiB/7B,YAAY,WAAW,MAAM7oC,GAAGA,EAAE7C,EAAEjE,GAAGI,EAAEurE,gBAAe,CAAG,GAAE,KAAK,CAAC,CAAC,CAApzB,CAAszB,CAACsC,cAAcluE,EAAEotE,iBAAiB/sE,EAAE8tE,YAAY/pE,EAAEgqE,OAAOltE,EAAEwsE,gBAAgB1mE,EAAE2mE,iBAAiBrpE,EAAEupE,YAAY5mE,EAAEikE,eAAenqE,EAAEkqE,UAAUvnE,EAAEynE,aAAarqE,IAA6P,GAAGsD,EAAE4I,GAAG,aAAa3F,EAAE,CAACkgD,SAAQ,KAAMzgD,EAAE,CAAC,IAAIQ,EAAE,SAASpD,GAAG,IAAI7D,EAAE6D,EAAEgqE,cAAc/sE,EAAE+C,EAAEmnE,iBAAiB9nE,EAAEW,EAAEgnE,eAAe,OAAO,SAAShnE,GAAG,IAAI4C,EAAE5E,EAAEwB,EAAE,KAAK,QAAQoD,EAAE5C,EAAE8gD,mBAAc,IAASl+C,OAAE,EAAOA,EAAEwnE,UAAU,CAAC,IAAIvtE,EAAEspE,GAAGnmE,EAAEuoB,WAAWpsB,EAAEorE,aAAa,QAAQvpE,EAAEgC,EAAE8gD,mBAAc,IAAS9iD,OAAE,EAAOA,EAAE0mD,SAAS,EAAEvoD,EAAEirE,oBAAmB,EAAGjrE,EAAEmrE,aAAazqE,EAAE,eAAe,QAAQ2C,EAAEQ,EAAE8gD,mBAAc,IAASthD,OAAE,EAAOA,EAAElC,OAAOL,GAAE,GAAIoC,IAAI,MAAMA,GAAGA,EAAEW,EAAE8gD,YAAYjkD,GAAG,CAAC,CAAC,CAAxZ,CAA0Z,CAACmtE,cAAcluE,EAAEqrE,iBAAiBtkE,EAAEmkE,eAAenqE,IAAIG,EAAE8L,GAAG,QAAQ1F,GAAG,IAAIC,EAAE,SAASrD,GAAG,IAAI7D,EAAE6D,EAAEgqE,cAAc/sE,EAAE+C,EAAEupE,UAAUlqE,EAAEW,EAAEopE,kBAAkBxmE,EAAE5C,EAAEknE,kBAAkBlpE,EAAEgC,EAAE+mE,UAAU,OAAO,SAAS/mE,GAAG,IAAIR,EAAE3C,EAAED,EAAET,EAAEkrE,wBAAwBhoE,IAAIknE,GAAGtpE,EAAE,QAAQuC,EAAErD,EAAEorE,mBAAc,IAAS/nE,EAAEA,EAAE,KAAK,QAAQ3C,EAAEmD,EAAE8gD,mBAAc,IAASjkD,OAAE,EAAOA,EAAEwtE,OAAOznE,EAAE,CAAC5C,EAAEuoB,UAAUxlB,EAAE/C,EAAEuoB,UAAUzlB,EAAE9C,EAAEuoB,UAAU5sB,IAAIqC,KAAK,QAAQpB,EAAEoD,EAAE8gD,mBAAc,IAASlkD,OAAE,EAAOA,EAAEwtE,YAAY,MAAMpsE,GAAGA,EAAEgC,EAAE8gD,YAAYqlB,GAAGnmE,EAAEuoB,YAAY,CAAC,CAApa,CAAsa,CAACyhD,cAAcluE,EAAEytE,UAAUrsE,EAAEksE,oBAAoB/pE,EAAE0nE,UAAUvnE,EAAE0nE,kBAAkBzrE,IAAIuB,EAAE8L,GAAG,OAAOzF,GAAG,IAAIC,EAAE,SAAStD,GAAG,IAAI7D,EAAE6D,EAAEgqE,cAAc/sE,EAAE+C,EAAEupE,UAAUlqE,EAAEW,EAAEspE,YAAY1mE,EAAE5C,EAAEmnE,iBAAiBnpE,EAAEgC,EAAEinE,aAAaznE,EAAEQ,EAAEopE,kBAAkB,OAAO,SAASppE,GAAG,IAAInD,EAAED,EAAE,KAAK,QAAQC,EAAEmD,EAAE8gD,mBAAc,IAASjkD,OAAE,EAAOA,EAAEutE,YAAYjuE,EAAEirE,oBAAmB,EAAG5nE,GAAG+mE,GAAGtpE,EAAE,QAAQL,EAAET,EAAEorE,mBAAc,IAAS3qE,EAAEA,EAAE,KAAKT,EAAEkrE,sBAAsBrnE,EAAE8gD,aAAathD,EAAEQ,EAAE8gD,aAAa3kD,EAAEkrE,sBAAqB,EAAGzkE,GAAE,GAAI5E,GAAGioE,GAAG9pE,EAAEmrE,aAAatnE,EAAEuoB,YAAY,CAAC,IAAI9sB,EAAE0qE,GAAGnmE,EAAEuoB,WAAWpsB,EAAEmrE,aAAa7rE,EAAE8vC,aAAapvC,EAAEqrE,SAASrrE,EAAEqrE,QAAQ97B,YAAU,WAAa,MAAM1tC,GAAGA,EAAEgC,EAAE8gD,YAAYrlD,EAAG,GAAE4D,EAAE,IAAI,EAAE,CAAC,CAAC,CAAtiB,CAAwiB,CAAC2qE,cAAcluE,EAAEytE,UAAUrsE,EAAEosE,YAAYtrE,EAAEorE,kBAAkB/pE,EAAE4nE,aAAarqE,EAAEuqE,iBAAiBtkE,IAAI7F,EAAE8L,GAAG,MAAMxF,EAAE,CAAC,IAAIC,EAAE,SAASvD,GAAG,IAAI7D,EAAE6D,EAAE8pE,yBAAyB7sE,EAAE+C,EAAE4pE,aAAavqE,EAAEW,EAAE2pE,YAAY/mE,EAAE5C,EAAEupE,UAAUvrE,EAAEgC,EAAEspE,YAAY9pE,EAAEQ,EAAE6pE,kBAAkBhtE,EAAEmD,EAAEqpE,oBAAoBzsE,EAAEoD,EAAEkpE,iBAAiBztE,EAAEuE,EAAEmpE,eAAetmE,EAAE7C,EAAEkvD,IAAI,OAAO,SAASlvD,GAAG,IAAIlE,EAAEK,GAAGc,EAAEC,EAAEmC,GAAGW,EAAEykD,QAAQ,GAAG,IAAIzkD,EAAE0kD,QAAQ,cAAc1kD,EAAE1C,OAAO+oE,GAAGrmE,EAAE,GAAGosB,OAAOvpB,EAAE,iBAAiBwjE,GAAGrmE,EAAE,GAAGosB,OAAOvpB,EAAE,iBAAiB,OAAM,EAAG,KAAKD,GAAG9G,GAAGkC,GAAGwB,GAAGH,GAAG,OAAM,EAAG,GAAGxC,EAAE,OAAM,EAAG,GAAGwpE,GAAGrmE,EAAEpD,IAAI,UAAUoD,EAAE1C,KAAK,OAAM,EAAG,GAAG+oE,GAAGrmE,EAAEvE,KAAK,UAAUuE,EAAE1C,MAAMU,GAAG,UAAUgC,EAAE1C,OAAOnB,GAAG,OAAM,EAAG,IAAIkD,GAAGW,EAAEykD,SAAS,UAAUzkD,EAAE1C,KAAK,OAAM,EAAG,IAAIxB,IAAIkC,IAAId,GAAG,UAAU8C,EAAE1C,KAAK,OAAM,EAAG,IAAIsF,IAAI,cAAc5C,EAAE1C,MAAM,eAAe0C,EAAE1C,MAAM,OAAM,EAAG,GAAGgB,MAAMC,QAAQqE,KAAKA,EAAEuqC,SAASntC,EAAE0kD,SAAS,cAAc1kD,EAAE1C,KAAK,OAAM,EAAG,IAAIN,EAAEsB,MAAMC,QAAQqE,IAAIA,EAAEuqC,SAASntC,EAAE0kD,UAAU1kD,EAAE0kD,QAAQ1kD,EAAE0kD,QAAQ,EAAE,QAAQ1kD,EAAEykD,SAAS,UAAUzkD,EAAE1C,OAAON,CAAC,CAAC,CAAx0B,CAA00B,CAAC8sE,yBAAyBnuE,EAAE4tE,UAAUrsE,EAAE0sE,aAAa5mE,EAAEsmE,YAAYtrE,EAAE6rE,kBAAkB5mE,EAAE0mE,YAAY5mE,EAAEsmE,oBAAoBzmE,EAAEumE,eAAelsE,EAAEisE,iBAAiB/sE,EAAE+yD,IAAIhsD,IAAIlG,EAAEkrB,OAAO3kB,GAAGN,EAAE/C,EAAE4I,GAAG,gBAAgBhM,GAAGoD,EAAE4I,GAAG,gBAAgB,KAAK,EAAElH,QAAQ7F,EAAEuuE,YAAY,SAAStqE,EAAE7D,GAAG,IAAIc,EAAEmpE,GAAGpmE,GAAG,OAAO8C,EAAE7F,EAAEd,GAAGc,CAAC,EAAEstE,uBAAuBnqE,EAAEoqE,YAAY,WAAW,IAAIxqE,EAAEE,EAAE6kE,GAAG7kE,EAAEyqB,QAAQ,CAAC5nB,EAAE,EAAED,EAAE,EAAEnH,EAAE,GAAG,MAAM,CAACoH,EAAE/C,EAAE+C,EAAED,EAAE9C,EAAE8C,EAAEojE,KAAKlmE,EAAErE,EAAE,EAAE6sE,QAAQ,SAASxoE,EAAE7D,GAAG+D,IAAI,MAAMlD,GAAGA,EAAEwrE,QAAQhC,GAAGtmE,EAAE,MAAM/D,OAAE,EAAOA,EAAEijE,UAAUp/D,GAAG,EAAEuoE,QAAQ,SAASvoE,EAAE7D,GAAG+D,IAAI,MAAMlD,GAAGA,EAAEurE,QAAQ/B,GAAGtmE,EAAE,MAAM/D,OAAE,EAAOA,EAAEijE,UAAUp/D,GAAG,EAAEyqE,eAAe,SAASzqE,GAAG,MAAMhD,GAAGA,EAAE6rE,YAAY7oE,EAAE,EAAE0qE,mBAAmB,SAAS1qE,GAAG,MAAMhD,GAAGA,EAAE6pE,gBAAgB7mE,EAAE,EAAE2qE,aAAa,SAAS3qE,GAAG,GAAGE,EAAE,CAAC,IAAI/D,EAAEiqE,GAAGpmE,GAAG/C,EAAEiD,EAAEyiD,SAAS,UAAU1lD,EAAEtB,IAAIqE,EAAEkmE,MAAMjpE,EAAE8F,IAAI/C,EAAE+C,GAAG9F,EAAE6F,IAAI9C,EAAE8C,GAAG,MAAM9F,GAAGA,EAAEurB,UAAUroB,EAAE/D,EAAE,KAAK,CAACkuE,MAAK,GAAI,CAAC,EAAE,EAAE,SAASrqE,GAAGA,EAAE4qE,KAAK,OAAO5qE,EAAE6qE,OAAO,QAAQ,CAA3C,CAA6C7E,KAAKA,GAAG,CAAA,IAAuSt8B,GAAGA,GAAG,CAAE,EAAtC,CAAC1P,MAAM,EAAEC,OAAO,EAAEl3B,EAAE,EAAED,EAAE,IAAmB,CAACgoE,SAAS,EAAEC,SAAS,EAAEC,YAAY,ICWhsyM,IAAMC,GAAsBC,GAAwB,WAcpD,SAASC,GACP/oE,EACAC,GAEA,IAAM+oE,EAAQC,aAAWjjE,IAEzB,GAAc,OAAVgjE,EACF,MAAM,IAAIlgD,MAAM+/C,IAGlB,OAAOK,EAAgBF,EAAOhpE,EAAUC,EAC1C,CAEA,SAASkpE,KAIP,IAAMH,EAAQC,aAAWjjE,IAIzB,GAAc,OAAVgjE,EACF,MAAM,IAAIlgD,MAAM+/C,IAGlB,OAAO9qE,EAAAA,SACL,WAAM,MAAC,CACLkB,SAAU+pE,EAAM/pE,SAChBR,SAAUuqE,EAAMvqE,SAChBY,UAAW2pE,EAAM3pE,UACjB,GACF,CAAC2pE,GAEL,CCvBgB,SAAAI,GACdnkB,EACA96B,kBAAA,IAAAA,IAAAA,EAAA,CACEq6B,WAAY,CAAC,EAAG,GAChB6kB,sBAAsB,EACtBr1C,SAAU,CAAE,IAGd,IAAMs1C,GAAwBn/C,eAAAA,EAASk/C,sBAAuB,IAAO,MAErE,IAAuB,IAAAE,EAAAC,EAAAvkB,GAAUwkB,EAAAF,EAAA9hC,0BAAE,CAAxB,IAAGlf,EAAHmhD,EAAAD,EAAAtsE,MAAA,GAAO,GACVioD,EAAW78B,EAAK68B,SAEtB,GAAKA,EAAL,CAIA,IAAKH,EAAW99C,IAAIi+C,GAClB,MAAM,IAAIt8B,MAAM,sBAAes8B,EAAQ,eAGzC,IAAM5I,EAAayI,EAAW/9C,IAAIk+C,GAC5BxlB,EAAc+pC,GAClBphD,EACA08B,EAEK2kB,EAAAA,EAAA,CAAA,EAAArhD,EAAK87B,UACR,CAAA/iD,GACGuoE,GAAUthD,EAAKuhD,QAAUvhD,EAAKuhD,OAAS,IACvCvhD,EAAKqhC,SAAW0f,EAAgB,KAEnB,QAAlBvP,EAAAvd,aAAA,EAAAA,EAAY8H,cAAM,IAAAyV,EAAAA,EAAI5vC,EAAQq6B,YATxB7jD,EAACi/B,EAAAj/B,EAAED,EAACk/B,EAAAl/B,EAAEY,MAYRyoE,EAAexhD,EAAK47B,UAAUC,iBAC9B4lB,EAAkBrpE,IAAMopE,EAAappE,GAAKD,IAAMqpE,EAAarpE,GAE/DspE,GAAmB1oE,IAAMinB,EAAK47B,UAAU7iD,KAC1CinB,EAAK47B,UACAylB,EAAAA,EAAA,CAAA,EAAArhD,EAAK47B,WACR,CAAAC,iBAAkB4lB,EAAkB,CAAErpE,EAACA,EAAED,EAACA,GAAKqpE,EAC/CzoE,EAACA,IA1BJ,CA6BF,mGACH,CA0GA,SAASqoE,GACPphD,EACA08B,EACAglB,EACAzlB,mBAEA,QAFA,IAAAA,IAAAA,EAAA,CAA0B,EAAG,KAExBj8B,EAAK68B,SACR,OAAO6kB,EAGT,IAAMlhD,EAASk8B,EAAW/9C,IAAIqhB,EAAK68B,UAC7B8kB,EAAiBC,GAA0BphD,EAAQy7B,GAAYH,SAErE,OAAOslB,GACL5gD,EACAk8B,EACA,CACEtkD,GAAgB,QAAZmd,EAAAmsD,EAAOtpE,SAAK,IAAAmd,EAAAA,EAAA,GAAKosD,EAAevpE,EACpCD,GAAgB,QAAZq5D,EAAAkQ,EAAOvpE,SAAK,IAAAq5D,EAAAA,EAAA,GAAKmQ,EAAexpE,EACpCY,GACqB,QAAlBmhB,EAAAsG,EAAOo7B,UAAU7iD,SAAC,IAAAmhB,EAAAA,EAAI,IAAc,QAARmd,EAAAqqC,EAAO3oE,SAAC,IAAAs+B,EAAAA,EAAI,aACrC7W,EAAOo7B,UAAU7iD,iBAAK,UACtBwqB,EAAAm+C,EAAO3oE,iBAAK,GAEpBynB,EAAOu7B,QAAUE,EAErB,CAEO,IAAM2lB,GAA4B,SACvC5hD,EACAi8B,QAAA,IAAAA,IAAAA,EAAA,CAA0B,EAAG,IAEvB,IAAA1mC,EAAoBssD,GAAkB7hD,GAApCqP,EAAK9Z,EAAA8Z,MAAEC,EAAM/Z,EAAA+Z,OACfusB,EACJ,cAAe77B,EAAOA,EAAK47B,UAAUC,iBAAmB77B,EAAK87B,SACzDC,EAAS/7B,EAAK+7B,QAAUE,EACxB6lB,EAAUzyC,EAAQ0sB,EAAO,GACzBgmB,EAAUzyC,EAASysB,EAAO,GAEhC,MAAO,CACLD,SAAU,CACR1jD,EAAG4nB,EAAK87B,SAAS1jD,EAAI0pE,EACrB3pE,EAAG6nB,EAAK87B,SAAS3jD,EAAI4pE,GAEvBlmB,iBAAkB,CAChBzjD,EAAGyjD,EAAiBzjD,EAAI0pE,EACxB3pE,EAAG0jD,EAAiB1jD,EAAI4pE,GAG9B,WAEgBC,GACdC,EACAC,EACAhhD,WAEA+gD,EAAiB7qE,QACjB8qE,EAAW9qE,YAEX,IAAmB,IAAA+qE,EAAAlB,EAAA//C,GAAKkhD,EAAAD,EAAAjjC,0BAAE,CAArB,IAAMne,EAAIqhD,EAAAxtE,MACL8jB,EAA6DqI,EAAvDrI,OAAE8gC,EAAqDz4B,EAAIy4B,OAAjDgY,EAA6CzwC,EAAIg6B,aAAjDA,OAAe,IAAAyW,EAAA,KAAIA,EAAEt3C,EAAwB6G,EAALi6B,aAAnBA,OAAY,IAAA9gC,EAAG,KAAIA,EAE1DmoD,EAAY,GAAA5gD,OAAG/I,EAAiB,YAAA+I,OAAAs5B,GAChCunB,EAAY,GAAA7gD,OAAG+3B,EAAiB,YAAA/3B,OAAAu5B,GAEhCunB,EAAaN,EAAiBtjE,IAAI0jE,IAAc,IAAIrlC,IACpDwlC,EAAaP,EAAiBtjE,IAAI2jE,IAAc,IAAItlC,IACpD6nB,EAAa,CACjB4d,OAAQ1hD,EAAK2U,GACbhd,OAAMA,EACN8gC,OAAMA,EACNuB,aAAYA,EACZC,aAAYA,GAGdknB,EAAWxjE,IAAIqiB,EAAK2U,GAAI3U,GACxBkhD,EAAiBvjE,IACf2jE,EACAE,EAAW7jE,IAAI,GAAG+iB,OAAA+3B,cAAUwB,GAAgB6J,IAE9Cod,EAAiBvjE,IACf4jE,EACAE,EAAW9jE,IAAI,GAAG+iB,OAAA/I,cAAUqiC,GAAgB8J,GAE/C,mGACH,CAEM,SAAU6d,GACd/iD,EACA+8B,EACAimB,EACA/gD,QAAA,IAAAA,IAAAA,EAAA,CACEq6B,WAAY,CAAC,EAAG,GAChB6kB,sBAAsB,EACtBr1C,SAAU,CAAE,EACZm3C,eAAe,IAGjB,IAAMC,EAAY,IAAI7lC,IAAI0f,GAC1BA,EAAWtlD,QACXurE,EAAavrE,QAEb,IAAM2pE,GAAwBn/C,eAAAA,EAASk/C,sBAAuB,IAAO,EAErEnhD,EAAMnpB,SAAQ,SAACkrD,WACTohB,EAAeD,EAAUlkE,IAAI+iD,EAAShsB,IA2B1C,GAxBE9T,EAAQghD,eACRlhB,KAAaohB,aAAA,EAAAA,EAAclnB,UAAU8F,YAIrCohB,EAAYzB,EAAAA,EAAAA,EAAA,CAAA,EACPz/C,EAAQ6J,UACRi2B,GAAQ,CACXlG,SAAU,CACRnsB,cAAO9Z,EAAAmsC,EAASlG,+BAAUnsB,MAC1BC,eAAQkiC,EAAA9P,EAASlG,+BAAUlsB,QAE7BssB,UAAW,CACTC,iBAAkB6F,EAAS5F,SAC3BmK,aAAc6c,eAAAA,EAAclnB,UAAUqK,aACtCltD,GACGuoE,GAAU5f,EAAS6f,QAAU7f,EAAS6f,OAAS,IAC/C7f,EAASL,SAAW0f,EAAgB,GACvCrf,SAAQA,MAfZhF,EAAWh+C,IAAIgjD,EAAShsB,GAAIotC,GAqB1BphB,EAAS7E,SAAU,CACrB,IAAMkmB,EAAaJ,EAAahkE,IAAI+iD,EAAS7E,UACzCkmB,EACFA,EAAWrvE,KAAKovE,GAEhBH,EAAajkE,IAAIgjD,EAAS7E,SAAU,CAACimB,GAExC,CACH,IAEIH,EAAapkE,KAAO,GACtBsiE,GAAwBnkB,EAAY96B,EAExC,CAEM,SAAUohD,GACd3iD,EACAq8B,EACAimB,EACA1mB,iBAEMgnB,EAAwD,GACxDC,EAAmB,IAAIlmC,QAM7B,IAAoB,IAAAmmC,EAAAlC,EAAA5gD,GAAQ+iD,EAAAD,EAAAjkC,0BAAE,CAAzB,IAAMmkC,EAAKD,EAAAxuE,MACR0uE,EAAS5mB,EAAW/9C,IAAI0kE,EAAMxmB,UACpC,GAAKymB,EAAL,CAIA,IAAMC,EAEJ,QADArpD,EAAoC,QAApCs3C,EAAA0R,EAAiBvkE,IAAI0kE,EAAMxmB,iBAAS,IAAA2U,OAAA,EAAAA,EAAEgS,oBACtC,IAAAtpD,EAAAA,EAAAupD,GAAWH,EAAqB,QAAbjsC,EAAAisC,EAAOvnB,cAAM,IAAA1kB,EAAAA,EAAI4kB,GAChCunB,EAAeE,GAAiBH,EAAYF,EAAMM,MACxDT,EAAiBxkE,IAAI2kE,EAAMxmB,SAAU,CAAE2mB,eAAchjD,OAAM8iD,GAN1D,CAOF,mGAiED,OA/DIJ,EAAiB3kE,KAAO,GAC1B2kE,EAAiB1sE,SAAQ,SAAC+e,EAA0BsnC,OAAxB2mB,EAAYjuD,EAAAiuD,aAAEhjD,EAAMjL,EAAAiL,OAEtCs7B,EAAa8lB,GAA0BphD,EAAQA,EAAOu7B,QAAOD,SAC/D8nB,EAAa/B,GAAkBrhD,GAG/BqjD,EACJL,EAAaprE,EAAI0jD,EAAS1jD,EACtBkkB,KAAKmlB,MAAMnlB,KAAKiT,IAAIusB,EAAS1jD,EAAIorE,EAAaprE,IAC9C,EACA0rE,EACJN,EAAarrE,EAAI2jD,EAAS3jD,EACtBmkB,KAAKmlB,MAAMnlB,KAAKiT,IAAIusB,EAAS3jD,EAAIqrE,EAAarrE,IAC9C,EAEN,GAAI0rE,EAAU,GAAKC,EAAU,EAAG,CAC9Bb,EAAQvvE,KAAK,CACXgiC,GAAImnB,EACJlqD,KAAM,WACNmpD,SAAU,CACR1jD,EAAG0jD,EAAS1jD,EAAIyrE,EAChB1rE,EAAG2jD,EAAS3jD,EAAI2rE,KAMpB,IAAMf,EAAaJ,EAAahkE,IAAIk+C,GACpCkmB,SAAAA,EAAYvsE,SAAQ,SAACutE,GACd1jD,EAASslB,MAAK,SAAC09B,GAAU,OAAAA,EAAM3tC,KAAOquC,EAAUruC,EAAE,KACrDutC,EAAQvvE,KAAK,CACXgiC,GAAIquC,EAAUruC,GACd/iC,KAAM,WACNmpD,SAAU,CACR1jD,EAAG2rE,EAAUjoB,SAAS1jD,EAAIyrE,EAC1B1rE,EAAG4rE,EAAUjoB,SAAS3jD,EAAI2rE,IAIlC,GACD,EAGCF,EAAWv0C,MAAQm0C,EAAan0C,OAChCu0C,EAAWt0C,OAASk0C,EAAal0C,SAEjC2zC,EAAQvvE,KAAK,CACXgiC,GAAImnB,EACJlqD,KAAM,aACNqxE,eAAe,EACfJ,WAAY,CACVv0C,MAAO/S,KAAKC,IAAIqnD,EAAWv0C,MAAO/S,KAAKmlB,MAAM+hC,EAAan0C,QAC1DC,OAAQhT,KAAKC,IACXqnD,EAAWt0C,OACXhT,KAAKmlB,MAAM+hC,EAAal0C,WAKlC,IAGK2zC,CACT,CCpZO,IAAM3iC,GAAQ,SAAC2jC,EAAa9hD,EAAS5F,GAC1C,YADiC,IAAA4F,IAAAA,EAAO,QAAE,IAAA5F,IAAAA,EAAO,GACjDD,KAAK6F,IAAI7F,KAAKC,IAAI0nD,EAAK9hD,GAAM5F,EAA7B,EAEW2nD,GAAgB,SAC3BpoB,EACAgB,GACG,YAFH,IAAAhB,IAAAA,GAAyB1jD,EAAG,EAAGD,EAAG,IAE9B,CACJC,EAAGkoC,GAAMwb,EAAS1jD,EAAG0kD,EAAO,GAAG,GAAIA,EAAO,GAAG,IAC7C3kD,EAAGmoC,GAAMwb,EAAS3jD,EAAG2kD,EAAO,GAAG,GAAIA,EAAO,GAAG,IAF1C,EAKC,SAAU+kB,GAAkB7hD,uBAOhC,MAAO,CACLqP,cAAOgI,EAAkC,QAAlCnd,EAAwB,UAAX,QAAb3E,EAAAyK,EAAKw7B,gBAAQ,IAAAjmC,OAAA,EAAAA,EAAE8Z,aAAS,IAAAmiC,EAAAA,EAAAxxC,EAAKqP,aAAK,IAAAnV,EAAAA,EAAI8F,EAAKy7B,4BAAgB,EAClEnsB,eAAQ+D,EAAoC,QAApCwa,EAAyB,UAAZ,QAAbrpC,EAAAwb,EAAKw7B,gBAAQ,IAAAh3C,OAAA,EAAAA,EAAE8qB,cAAU,IAAA/L,EAAAA,EAAAvD,EAAKsP,cAAM,IAAAue,EAAAA,EAAI7tB,EAAK07B,6BAAiB,EAE1E,CAEO,IAAM4lB,GAAY,SAAC9vE,GAAwB,OAACwwC,MAAMxwC,IAAM8pC,SAAS9pC,IAE3D2yE,GAAe,SAC1BroB,EACA8B,GAEA,YAFA,IAAAA,IAAAA,EAAA,CAAsB,EAAG,IAElB,CACLxlD,EAAGwlD,EAAS,GAAKthC,KAAKmlB,MAAMqa,EAAS1jD,EAAIwlD,EAAS,IAClDzlD,EAAGylD,EAAS,GAAKthC,KAAKmlB,MAAMqa,EAAS3jD,EAAIylD,EAAS,IAEtD,EAEawmB,GAAuB,SAClC7uD,EACAi8C,EACA3T,EACAD,OAHExlD,EAACmd,EAAAnd,EAAED,EAACod,EAAApd,EACN+hB,EAAAinD,EAAA3P,EAAA,GAACuD,EAAE76C,EAAA,GAAE62B,EAAE72B,EAAA,GAAEmqD,EAAMnqD,EAAA,QACf,IAAA2jC,IAAAA,GAAkB,QAClB,IAAAD,IAAAA,EAAA,CAAsB,EAAG,IAEzB,IAAM9B,EAAuB,CAC3B1jD,GAAIA,EAAI28D,GAAMsP,EACdlsE,GAAIA,EAAI44C,GAAMszB,GAGhB,OAAOxmB,EAAasmB,GAAaroB,EAAU8B,GAAY9B,CACzD,EAEa2nB,GAAa,SACxBzjD,EACAi8B,wBAAA,IAAAA,IAAAA,EAAA,CAA0B,EAAG,IAEvB,IAAApO,EAAW+zB,GAA0B5hD,EAAMi8B,GAAYJ,iBAE7D,MAAO,CACLzjD,EAHOy1C,EAAAz1C,EAIPD,MACAk3B,cAAOnV,EAAwB,QAAxBs3C,EAAe,QAAfj8C,EAAAyK,EAAKw7B,gBAAU,IAAAjmC,OAAA,EAAAA,EAAA8Z,aAAS,IAAAmiC,EAAAA,EAAAxxC,EAAKqP,qBAAS,EAC7CC,eAAQ/L,EAAyB,QAAzB/e,EAAe,QAAf6yB,EAAArX,EAAKw7B,gBAAU,IAAAnkB,OAAA,EAAAA,EAAA/H,cAAU,IAAA9qB,EAAAA,EAAAwb,EAAKsP,sBAAU,EAEpD,EAEag1C,GAAmB,SAACC,EAAWC,GAAmB,MAAC,CAC9DpsE,EAAGkkB,KAAK6F,IAAIoiD,EAAKnsE,EAAGosE,EAAKpsE,GACzBD,EAAGmkB,KAAK6F,IAAIoiD,EAAKpsE,EAAGqsE,EAAKrsE,GACzB+jD,GAAI5/B,KAAKC,IAAIgoD,EAAKroB,GAAIsoB,EAAKtoB,IAC3BC,GAAI7/B,KAAKC,IAAIgoD,EAAKpoB,GAAIqoB,EAAKroB,MAGhBsoB,GAAY,SAAClvD,OAAEnd,EAACmd,EAAAnd,EAAED,EAACod,EAAApd,EAAiC,MAAC,CAChEC,EAACA,EACDD,EAACA,EACD+jD,GAAI9jD,EAHiCmd,EAAA8Z,MAIrC8sB,GAAIhkD,EAJyCod,EAAA+Z,OAAkB,EAOpDo1C,GAAY,SAACnvD,OAAEnd,EAACmd,EAAAnd,EAAED,EAACod,EAAApd,EAA0B,MAAC,CACzDC,EAACA,EACDD,EAACA,EACDk3B,MAHkC9Z,EAAA2mC,GAGtB9jD,EACZk3B,OAJsC/Z,EAAA4mC,GAIzBhkD,EAJ2C,EAqB7CurE,GAAmB,SAACiB,EAAaC,GAC5C,OAAAF,GAAUJ,GAAiBG,GAAUE,GAAQF,GAAUG,IAAvD,EAEI,SAAUC,GACdC,GAGA,OAAOC,EAAAA,WAAWD,EACpB,CAEO,IAAME,GAAqB,SAACC,EAAaC,GAC9C,IAAMC,EAAW7oD,KAAKC,IACpB,EACAD,KAAK6F,IAAI8iD,EAAM7sE,EAAI6sE,EAAM51C,MAAO61C,EAAM9sE,EAAI8sE,EAAM71C,OAC9C/S,KAAKC,IAAI0oD,EAAM7sE,EAAG8sE,EAAM9sE,IAEtBgtE,EAAW9oD,KAAKC,IACpB,EACAD,KAAK6F,IAAI8iD,EAAM9sE,EAAI8sE,EAAM31C,OAAQ41C,EAAM/sE,EAAI+sE,EAAM51C,QAC/ChT,KAAKC,IAAI0oD,EAAM9sE,EAAG+sE,EAAM/sE,IAG5B,OAAOmkB,KAAKgQ,KAAK64C,EAAWC,EAC9B,EAEaC,GAAuB,SAClCC,EACAj2C,EACAC,EACA0sC,EACAC,EACAsJ,GAEA,IAAMC,EAAQn2C,GAASi2C,EAAOj2C,OAAS,EAAIk2C,IACrCE,EAAQn2C,GAAUg2C,EAAOh2C,QAAU,EAAIi2C,IACvChK,EAAOj/C,KAAK6F,IAAIqjD,EAAOC,GACvBC,EAAcplC,GAAMi7B,EAAMS,EAASC,GAMzC,MAAO,CAAE7jE,EAHCi3B,EAAQ,GAFIi2C,EAAOltE,EAAIktE,EAAOj2C,MAAQ,GAEVq2C,EAG1BvtE,EAFFm3B,EAAS,GAFGg2C,EAAOntE,EAAImtE,EAAOh2C,OAAS,GAEVo2C,EAExBnK,KAAMmK,EACvB,EAEM,SAAUC,GACd7oB,GAEA,YAAkB8oB,IAAX9oB,GAAmC,WAAXA,CACjC,CAgCO,IAAM+oB,GAAwB,SAACtwD,OACpCnd,EAACmd,EAAAnd,EACDD,EAACod,EAAApd,EACDk3B,EAAK9Z,EAAA8Z,MACLC,EAAM/Z,EAAA+Z,OACNkiC,EAAej8C,EAAAwmC,OAAfA,OAAS,IAAAyV,EAAA,CAAC,EAAG,GAAEA,EAQf,OACGniC,IACAC,GACDysB,EAAO,GAAK,GACZA,EAAO,GAAK,GACZA,EAAO,GAAK,GACZA,EAAO,GAAK,EAEL,CAAE3jD,EAACA,EAAED,EAACA,GAGR,CACLC,EAAGA,EAAIi3B,EAAQ0sB,EAAO,GACtB5jD,EAAGA,EAAIm3B,EAASysB,EAAO,GAE3B,EAea+pB,GAAS,SACpBC,GACwB,OAAAC,GAAqBD,IAElCC,GAAa,SACxBD,GAEA,MAAA,OAAQA,GACR,aAAcA,KACZ,WAAYA,MACZ,WAAYA,EAHd,EAyCK,IAAME,GAAe,SAACC,GAC3B,OAAA5E,GAAU4E,EAAI72C,QACdiyC,GAAU4E,EAAI52C,SACdgyC,GAAU4E,EAAI9tE,IACdkpE,GAAU4E,EAAI/tE,EAHd,EC5PWguE,GAAgB,SAACnmD,GAAqC,MAAC,CAClEqP,MAAOrP,EAAKomD,YACZ92C,OAAQtP,EAAKqmD,eAQTC,GAAY,CAAC,QAAS,SAAU,YAEhC,SAAUC,GAAevJ,WAEvBxjB,GAAgC,QAAtBgY,EAAsB,QAAtBj8C,EAAAynD,EAAMwJ,oBAAgB,IAAAjxD,OAAA,EAAAA,EAAA/iB,KAAAwqE,UAAA,IAAAxL,OAAA,EAAAA,EAAG,KAAMwL,EAAMxjB,OAMrD,OAJE8sB,GAAU9jC,SAASgX,aAAM,EAANA,EAAQitB,YAC3BjtB,aAAM,EAANA,EAAQmhB,aAAa,wBAGHnhB,aAAA,EAAAA,EAAQmiB,QAAQ,UACtC,CAEO,IAAM+K,GAAe,SAC1B1J,GACwB,MAAA,YAAaA,CAAK,EAE/B2J,GAAmB,SAC9B3J,EACAsI,eAEMsB,EAAUF,GAAa1J,GACvB6J,EAAOD,EAAU5J,EAAMzmB,gBAAUhhC,EAAAynD,EAAMte,8BAAU,GAAGnI,QACpDuwB,EAAOF,EAAU5J,EAAMxmB,gBAAUgb,EAAAwL,EAAMte,8BAAU,GAAGlI,QAE1D,MAAO,CACLp+C,EAAGyuE,GAAoB,UAAZvB,aAAM,EAANA,EAAQ58B,YAAI,IAAAxuB,EAAAA,EAAI,GAC3B/hB,EAAG2uE,GAAmB,UAAXxB,aAAM,EAANA,EAAQ18B,WAAG,IAAAvR,EAAAA,EAAI,GAE9B,EAKa0vC,GAAkB,SAC7BtvE,EACAuvE,EACAzL,EACAtf,QAAA,IAAAA,IAAAA,EAAA,CAA0B,EAAG,IAE7B,IAAMgrB,EAAUD,EAAY72B,iBAAiB14C,GAE7C,IAAKwvE,IAAYA,EAAQ1zE,OACvB,OAAO,KAGT,IAAM2zE,EAAevzE,MAAMi9C,KAAKq2B,GAG1BE,EAAaH,EAAYpwB,wBACzBwwB,EACDD,EAAW93C,MAAQ4sB,EAAW,GAD7BmrB,EAEDD,EAAW73C,OAAS2sB,EAAW,GAGpC,OAAOirB,EAAalnE,KAAI,SAACikD,GACvB,IAAMgC,EAAehC,EAAOrN,wBAE5B,OACEyqB,EAAA,CAAA3rC,GAAIuuB,EAAOhR,aAAa,iBACxB6I,SAAUmI,EAAOhR,aAAa,kBAC9B76C,GAAI6tD,EAAavd,KAAOy+B,EAAWz+B,KAAO0+B,GAAgB7L,EAC1DpjE,GAAI8tD,EAAard,IAAMu+B,EAAWv+B,IAAMw+B,GAAgB7L,GACrD4K,GAAcliB,GAErB,GACF,ECtGMojB,GAAiC,oBAAbvyE,SAA2BA,SAAW,cAUhDwyE,GAKdC,EACA3lD,QADA,IAAA2lD,IAAAA,EAA8B,WAC9B,IAAA3lD,IAAAA,EAAA,CACE43B,OAAQ6tB,GACRG,4BAA4B,IAGxB,IAAAjyD,EAAA4rD,EAA8B7sE,EAAQA,UAAC,GAAM,GAA5CmzE,EAAUlyD,EAAA,GAAEmyD,OAGbC,EAAkBryE,UAAO,GAGzBsyE,EAActyE,EAAMA,OAAc,IAAIW,IAAI,KAQ1Cu7D,EAAA2P,EAA0B3rE,EAAAA,SAA6B,WAC3D,GAAgB,OAAZ+xE,EAAkB,CACpB,IACM/nE,GADa7L,MAAMC,QAAQ2zE,GAAWA,EAAU,CAACA,IAEpDhqD,QAAO,SAACpD,GAAO,MAAc,iBAAPA,KACtBna,KAAI,SAACma,GAAO,OAAAA,EAAGijB,MAAM,IAAT,IACTyqC,EAAWroE,EAAKme,QACpB,SAACmqD,EAAWC,GAAS,OAAAD,EAAIrmD,OAAJ3tB,MAAAg0E,EAAcE,EAAA,GAAA7G,EAAA4G,UACnC,IAGF,MAAO,CAACvoE,EAAMqoE,EACf,CAED,MAAO,CAAC,GAAI,GACb,GAAE,CAACN,IAAS,GAfNU,EAAQzW,EAAA,GAAE0W,EAAW1W,EAAA,GAkG5B,OAjFAj9D,EAAAA,WAAU,WACR,IAAMilD,GAAS53B,aAAA,EAAAA,EAAS43B,SAAU6tB,GAElC,GAAgB,OAAZE,EAAkB,CACpB,IAAMY,EAAc,SAACnL,GAQnB,GAPA2K,EAAgB70E,QACdkqE,EAAMljB,SAAWkjB,EAAMoL,SAAWpL,EAAMQ,WAEtCmK,EAAgB70E,SACf60E,EAAgB70E,UAAY8uB,EAAQ4lD,6BACvCjB,GAAevJ,GAGf,OAAO,EAET,IAAMqL,EAAYC,GAAatL,EAAMuL,KAAML,GAC3CN,EAAY90E,QAAQiE,IAAIimE,EAAMqL,IAE1BG,GAAcP,EAAUL,EAAY90E,SAAS,KAC/CkqE,EAAMhkB,iBACN0uB,GAAc,GAElB,EAEMe,EAAY,SAACzL,GAMjB,KAJI2K,EAAgB70E,SACf60E,EAAgB70E,UAAY8uB,EAAQ4lD,6BACvCjB,GAAevJ,GAGf,OAAO,EAET,IAAMqL,EAAYC,GAAatL,EAAMuL,KAAML,GAEvCM,GAAcP,EAAUL,EAAY90E,SAAS,IAC/C40E,GAAc,GACdE,EAAY90E,QAAQsE,SAEpBwwE,EAAY90E,QAAQkE,OAAOgmE,EAAMqL,IAIjB,SAAdrL,EAAMprE,KACRg2E,EAAY90E,QAAQsE,QAGtBuwE,EAAgB70E,SAAU,CAC5B,EAEM41E,EAAe,WACnBd,EAAY90E,QAAQsE,QACpBswE,GAAc,EAChB,EAaA,OAXAluB,SAAAA,EAAQvE,iBACN,UACAkzB,GAEF3uB,SAAAA,EAAQvE,iBACN,QACAwzB,GAEFt0E,OAAO8gD,iBAAiB,OAAQyzB,GAChCv0E,OAAO8gD,iBAAiB,cAAeyzB,GAEhC,WACLlvB,SAAAA,EAAQzE,oBACN,UACAozB,GAEF3uB,SAAAA,EAAQzE,oBACN,QACA0zB,GAEFt0E,OAAO4gD,oBAAoB,OAAQ2zB,GACnCv0E,OAAO4gD,oBAAoB,cAAe2zB,EAC5C,CACD,CACH,GAAG,CAACnB,EAASG,IAEND,CACT,CAIA,SAASe,GACPP,EACAL,EACAe,GAEA,OACEV,EAIG1qD,QAAO,SAAC/d,GAAS,OAAAmpE,GAAQnpE,EAAKjM,SAAWq0E,EAAYrpE,QAGrDonC,MAAK,SAACnmC,GAAS,OAAAA,EAAK2hC,OAAM,SAACnwC,GAAM,OAAA42E,EAAYhpE,IAAI5N,EAAE,GAAC,GAE3D,CAEA,SAASs3E,GAAaM,EAAmBV,GACvC,OAAOA,EAAY1lC,SAASomC,GAAa,OAAS,KACpD,CC1KA,SAASC,GAAUC,EAAMC,GACvB,GAAI13E,OAAOgD,GAAGy0E,EAAMC,GAClB,OAAO,EAET,GAAoB,iBAATD,GAA8B,OAATA,GAAiC,iBAATC,GAA8B,OAATA,EAC3E,OAAO,EAET,GAAID,aAAgB9rC,KAAO+rC,aAAgB/rC,IAAK,CAC9C,GAAI8rC,EAAKvqE,OAASwqE,EAAKxqE,KACrB,OAAO,EACT,IAAK,MAAO3M,EAAKgD,KAAUk0E,EACzB,IAAKz3E,OAAOgD,GAAGO,EAAOm0E,EAAKpqE,IAAI/M,IAC7B,OAAO,EAGX,OAAO,CACR,CACD,GAAIk3E,aAAgB7yE,KAAO8yE,aAAgB9yE,IAAK,CAC9C,GAAI6yE,EAAKvqE,OAASwqE,EAAKxqE,KACrB,OAAO,EACT,IAAK,MAAM3J,KAASk0E,EAClB,IAAKC,EAAKnqE,IAAIhK,GACZ,OAAO,EAGX,OAAO,CACR,CACD,MAAMo0E,EAAQ33E,OAAOmO,KAAKspE,GAC1B,GAAIE,EAAMz1E,SAAWlC,OAAOmO,KAAKupE,GAAMx1E,OACrC,OAAO,EAET,IAAK,MAAM01E,KAAQD,EACjB,IAAK33E,OAAOC,UAAUC,eAAeiB,KAAKu2E,EAAME,KAAU53E,OAAOgD,GAAGy0E,EAAKG,GAAOF,EAAKE,IACnF,OAAO,EAGX,OAAO,CACT,CCnCO,IAAMC,GAAgC,CAC3CptB,SAAU,WACVzsB,MAAO,OACPC,OAAQ,OACRsZ,IAAK,EACLF,KAAM,GCsBR,IAAMjxC,GAAW,SAACS,GAAoB,MAAC,CACrCwmE,oBAAqBxmE,EAAEwmE,oBACvBna,IAAKrsD,EAAEqsD,MAGH,SAAU4kB,GAAS5zD,GACvB,IAAAkpD,sBACAjN,EAAAj8C,EAAA0pD,aAAAA,OAAY,IAAAzN,GAAOA,EACnBt3C,gBAAA8kD,cAAkB9kD,EAClBmd,EAAmB9hB,EAAAopD,YAAnBA,OAAc,IAAAtnC,GAAKA,EACnB7yB,qBAAAs6D,aAAmB,GAAGt6D,EACtB+e,EAAsChO,EAAAspD,gBAAtCA,OAAkB,IAAAt7C,EAAA68B,QAAAA,gBAAgBH,KAAI18B,EACtCsqB,EAAwBt4B,EAAA2pD,kBAAxBA,OAAoB,IAAArxB,GAAIA,EACxBxa,cAAAurC,cAAgBvrC,EAChB+1C,EAAe7zD,EAAA6zD,gBACflN,EAAe3mD,EAAA2mD,gBACfF,EAAOzmD,EAAAymD,QACPC,EAAO1mD,EAAA0mD,QACPoN,EAAqB9zD,EAAA8zD,sBACrBC,EAAA/zD,EAAAwpD,iBAAAA,OAAgB,IAAAuK,GAAOA,EACvBjpD,EAAQ9K,EAAA8K,SACRk+C,EAAgBhpD,EAAAgpD,iBAChBC,EAAcjpD,EAAAipD,eACd+K,EAAgBh0D,EAAAg0D,iBAChBC,EAAoBj0D,EAAAi0D,qBAEd/I,EAAQG,KACR6I,EAAWn0E,SAAuB,MAClCo0E,EAA+BlJ,GAAS/oE,GAAUkyE,IAAhDjL,EAAmBgL,EAAAhL,oBAAEna,QACvB4a,EAA2BmI,GAAY+B,GACvCO,EAAUt0E,EAAAA,SA0FhB,OC1II,SACJ8sD,GAEA,IAAMqe,EAAQG,KAEdrsE,EAAAA,WAAU,WACR,IAAMs1E,EAAmB,mBACvB,IAAKznB,EAAQtvD,QACX,OAAO,EAET,IAAMyL,EAAO4nE,GAAc/jB,EAAQtvD,SAEf,IAAhByL,EAAK+wB,QAA+B,IAAf/wB,EAAK8wB,OACJ,QAAxBmiC,KAAAiP,EAAM/pE,YAAWkmD,eAAO,IAAA4U,GAAAA,EAAAh/D,KAAA+iB,EAAG,MAAOgrD,GAAwB,YAG5DE,EAAMvqE,SAAS,CAAEm5B,MAAO9wB,EAAK8wB,OAAS,IAAKC,OAAQ/wB,EAAK+wB,QAAU,KACpE,EAEA,GAAI8yB,EAAQtvD,QAAS,CACnB+2E,IACA11E,OAAO8gD,iBAAiB,SAAU40B,GAElC,IAAMC,EAAiB,IAAIC,gBAAe,WAAM,OAAAF,GAAkB,IAGlE,OAFAC,EAAeE,QAAQ5nB,EAAQtvD,SAExB,WACLqB,OAAO4gD,oBAAoB,SAAU80B,GAEjCC,GAAkB1nB,EAAQtvD,SAC5Bg3E,EAAeG,UAAU7nB,EAAQtvD,QAErC,CACD,CACF,GAAE,GACL,CDeEo3E,CAAiBT,GAEjBl1E,EAAAA,WAAU,WACR,GAAIk1E,EAAS32E,QAAS,CACpB82E,EAAQ92E,QAAUq3E,GAAU,CAC1B/nB,QAASqnB,EAAS32E,QAClBkpE,QAAOA,EACPC,QAAOA,EACPC,gBAAeA,EACfC,SAAUiN,EACV7M,kBAAmB,SAAC3+C,GAClB2rD,SAAAA,EAAmB,CACjBnxE,EAAGwlB,EAAU,GACbzlB,EAAGylB,EAAU,GACb29C,KAAM39C,EAAU,KAGb4rD,GACH/I,EAAMvqE,SAAS,CAAE0nB,UAASA,GAE7B,EACD4+C,iBAAkB,SAAC4N,GACjB,OAAA3J,EAAMvqE,SAAS,CAAEk0E,aAAYA,GAAG,EAClC/N,eAAgB,SAACW,EAAOqN,GAChB,IAAA90D,EAAyCkrD,EAAM/pE,WAA7C4zE,EAAqB/0D,EAAA+0D,sBAAEC,EAAWh1D,EAAAg1D,YAC1CA,SAAAA,EAAcvN,EAAOqN,GACrBC,SAAAA,EAAwBD,EACzB,EACDjO,UAAW,SAACY,EAAOqN,GACX,IAAA90D,EAA+BkrD,EAAM/pE,WAAnC6yE,EAAgBh0D,EAAAg0D,iBAAEiB,EAAMj1D,EAAAi1D,OAChCA,SAAAA,EAASxN,EAAOqN,GAChBd,SAAAA,EAAmBc,EACpB,EACD/N,aAAc,SAACU,EAAOqN,GACd,IAAA90D,EAAqCkrD,EAAM/pE,WAAzC+zE,EAAmBl1D,EAAAk1D,oBAAEC,EAASn1D,EAAAm1D,UACtCA,SAAAA,EAAY1N,EAAOqN,GACnBI,SAAAA,EAAsBJ,EACvB,IAGG,IAAA90D,EAAiBq0D,EAAQ92E,QAAS+sE,cAAhCznE,EAACmd,EAAAnd,EAAED,EAACod,EAAApd,EAAEojE,SAQd,OANAkF,EAAMvqE,SAAS,CACb0zE,QAASA,EAAQ92E,QACjB8qB,UAAW,CAACxlB,EAAGD,EAAGojE,GAClBnZ,QAASqnB,EAAS32E,QAAQ6oE,QAAQ,eAG7B,iBACY,QAAjBpmD,EAAAq0D,EAAQ92E,eAAS,IAAAyiB,GAAAA,EAAAte,SACnB,CACD,CACF,GAAE,IAEH1C,EAAAA,WAAU,iBACO,QAAfghB,EAAAq0D,EAAQ92E,eAAO,IAAAyiB,GAAAA,EAAE0sC,OAAO,CACtBwc,kBAAiBA,EACjBQ,aAAYA,EACZD,YAAWA,EACXL,YAAWA,EACXG,iBAAgBA,EAChBD,gBAAeA,EACfK,kBAAiBA,EACjBN,UAASA,EACTO,yBAAwBA,EACxBJ,iBAAgBA,EAChBP,eAAcA,EACdE,oBAAmBA,EACnBH,iBAAgBA,EAChBha,IAAGA,GAEP,GAAG,CACDka,EACAQ,EACAD,EACAL,EACAG,EACAD,EACAK,EACAN,EACAO,EACAJ,EACAP,EACAE,EACAH,EACAha,IAIAomB,MAAK,MAAA,CAAAC,UAAU,qBAAqB/4E,IAAK43E,EAAU9uC,MAAOuuC,YACvD7oD,GAGP,CEjJA,IAAMwqD,GAAuC,CAC3CrD,4BAA4B,GCE9B,SAASsD,GAAYrhC,EAAas8B,SAChC,OAAQt8B,EAAO92C,MACb,IAAK,SACHozE,EAAQ1kB,SAAW5X,EAAO4X,SAC1B,MAGF,IAAK,gBAC4B,IAApB5X,EAAOqS,WAChBiqB,EAAQjqB,SAAWrS,EAAOqS,eAGG,IAApBrS,EAAOshC,WAChBhF,EAAQgF,SAAWthC,EAAOshC,UAG5B,MAGF,IAAK,kBAC8B,IAAtBthC,EAAOm6B,aACA,QAAhBruD,EAAAwwD,EAAQvqB,gBAAQ,IAAAjmC,IAAhBwwD,EAAQvqB,SAAa,CAAE,GACvBuqB,EAAQvqB,SAASnsB,MAAQoa,EAAOm6B,WAAWv0C,MAC3C02C,EAAQvqB,SAASlsB,OAASma,EAAOm6B,WAAWt0C,OAExCma,EAAOu6B,gBACT+B,EAAQ12C,MAAQoa,EAAOm6B,WAAWv0C,MAClC02C,EAAQz2C,OAASma,EAAOm6B,WAAWt0C,SAIR,kBAApBma,EAAOuhC,WAChBjF,EAAQiF,SAAWvhC,EAAOuhC,UAMlC,CAEA,SAASC,GAAahI,EAAgBiI,mBAC9BC,EAAyB,GAGzBC,EAAa,IAAIpuC,QAEvB,IAAqB,IAAAquC,EAAApK,EAAAgC,GAAOqI,EAAAD,EAAAnsC,0BAAE,CAC5B,GAAoB,SADXuK,EAAM6hC,EAAA12E,OACJjC,KAGJ,GAAoB,WAAhB82C,EAAO92C,MAAqC,YAAhB82C,EAAO92C,KAG5Cy4E,EAAW1sE,IAAI+qC,EAAO/T,GAAI,CAAC+T,QACtB,CACL,IAAM8hC,EAAiBH,EAAWzsE,IAAI8qC,EAAO/T,IAEzC61C,EAGFA,EAAe73E,KAAK+1C,GAEpB2hC,EAAW1sE,IAAI+qC,EAAO/T,GAAI,CAAC+T,GAE9B,MAhBC0hC,EAAgBz3E,KAAK+1C,EAAOs+B,KAiB/B,uGAED,IAAsB,IAAAyD,EAAAvK,EAAAiK,GAAQO,EAAAD,EAAAtsC,0BAAE,CAA3B,IAAM6mC,EAAO0F,EAAA72E,MACV82E,EAAUN,EAAWzsE,IAAIonE,EAAQrwC,IAIvC,GAAKg2C,GAML,GAAwB,WAApBA,EAAQ,GAAG/4E,KAIf,GAAwB,YAApB+4E,EAAQ,GAAG/4E,KAAf,CAQA,IAAMg5E,EAActK,EAAA,CAAA,EAAQ0E,OAE5B,IAAqB,IAAA6F,YAAA3K,EAAAyK,IAAOG,EAAAD,EAAA1sC,0BAAE,CAAzB,IAAMuK,EACTqhC,GADSrhC,EAAMoiC,EAAAj3E,MACK+2E,EACrB,mGAEDR,EAAgBz3E,KAAKi4E,EAXpB,MAFCR,EAAgBz3E,KAAI2tE,EAAA,CAAA,EAAMqK,EAAQ,GAAG3D,YAVrCoD,EAAgBz3E,KAAKqyE,EAwBxB,mGAED,OAAOoF,CACT,CAEgB,SAAAW,GACd7I,EACA/hD,GAEA,OAAO+pD,GAAahI,EAAS/hD,EAC/B,CAEgB,SAAA6qD,GACd9I,EACAtjD,GAEA,OAAOsrD,GAAahI,EAAStjD,EAC/B,CAEgB,SAAAqsD,GACdt2C,EACA2rB,GAEA,MAAO,CACL3rB,GAAEA,EACF/iC,KAAM,SACN0uD,SAAQA,EAEZ,UAEgB4qB,GACdC,EACAC,EACAC,gBADA,IAAAD,IAAAA,EAA+B,IAAAl2E,UAC/B,IAAAm2E,IAAAA,GAAkB,GAElB,IAAMnJ,EAAyD,OAE/D,IAAyB,IAAAoJ,EAAApL,EAAAiL,GAAKI,EAAAD,EAAAntC,0BAAE,CAArB,IAAAsyB,EAAA2P,EAAUmL,EAAA13E,MAAA,GAAT8gC,EAAE87B,EAAA,GAAEuW,EAAIvW,EAAA,GACZ+a,EAAiBJ,EAAYvtE,IAAI82B,QAIjBkwC,IAAlBmC,EAAK1mB,WAA2BkrB,GAClCxE,EAAK1mB,WAAakrB,IAEdH,IAIFrE,EAAK1mB,SAAWkrB,GAElBtJ,EAAQvvE,KAAKs4E,GAAsBjE,EAAKryC,GAAI62C,IAE/C,mGAED,OAAOtJ,CACT,CAgBM,SAAUuJ,GAAuBj3D,mBACrCgO,EAAAhO,EAAA22D,MAAAA,OAAK,IAAA3oD,EAAG,GAAEA,EACVkpD,EAAMl3D,EAAAk3D,OAKAxJ,EAAiB,GACjByJ,EAAc,IAAI1vC,IACtBkvC,EAAMlsE,KAAI,SAAC+nE,GAAS,MAAA,CAACA,EAAKryC,GAAIqyC,EAAV,SAGtB,IAAmB,IAAA4E,EAAA1L,EAAAiL,GAAKU,EAAAD,EAAAztC,0BAAE,CAArB,IAAM6oC,EAAI6E,EAAAh4E,MACPi4E,EAAaJ,EAAO9tE,IAAIopE,EAAKryC,IAC7Bo3C,EAA2C,QAA/BtoE,EAAqB,QAArB6yB,EAAAw1C,aAAA,EAAAA,EAAYjxB,iBAAS,IAAAvkB,OAAA,EAAAA,EAAEqqB,gBAAQ,IAAAl9C,EAAAA,EAAIqoE,OAEnCjH,IAAdkH,GAA2BA,IAAc/E,GAC3C9E,EAAQvvE,KAAK,CAAEgiC,GAAIqyC,EAAKryC,GAAIqyC,KAAMA,EAAMp1E,KAAM,iBAG9BizE,IAAdkH,GACF7J,EAAQvvE,KAAK,CAAEq0E,KAAMA,EAAMp1E,KAAM,OAEpC,uGAED,IAAmB,IAAAo6E,EAAA9L,EAAAwL,GAAMO,EAAAD,EAAA7tC,0BAAE,CAAhB,IAACxJ,EAADyrC,EAAA6L,EAAAp4E,MAAA,GAAG,QAGKgxE,IAFA8G,EAAY/tE,IAAI+2B,IAG/ButC,EAAQvvE,KAAK,CAAEgiC,GAAEA,EAAE/iC,KAAM,UAE5B,mGAED,OAAOswE,CACT,CAEM,SAAUgK,GACdlF,GAEA,MAAO,CACLryC,GAAIqyC,EAAKryC,GACT/iC,KAAM,SAEV,CC1LO,IAyFMivE,GAA4B,SACvC5hD,EACAi8B,QAAA,IAAAA,IAAAA,EAAA,CAA0B,EAAG,IAEvB,IAAA1mC,EAAoBssD,GAAkB7hD,GAApCqP,EAAK9Z,EAAA8Z,MAAEC,EAAM/Z,EAAA+Z,OACfusB,EACJ,cAAe77B,EAAOA,EAAK47B,UAAUC,iBAAmB77B,EAAK87B,SACzDC,EAAS/7B,EAAK+7B,QAAUE,EACxB6lB,EAAUzyC,EAAQ0sB,EAAO,GACzBgmB,EAAUzyC,EAASysB,EAAO,GAEhC,MAAO,CACLD,SAAU,CACR1jD,EAAG4nB,EAAK87B,SAAS1jD,EAAI0pE,EACrB3pE,EAAG6nB,EAAK87B,SAAS3jD,EAAI4pE,GAEvBlmB,iBAAkB,CAChBzjD,EAAGyjD,EAAiBzjD,EAAI0pE,EACxB3pE,EAAG0jD,EAAiB1jD,EAAI4pE,GAG9B,EAcamL,GAAiB,SAC5BvtD,EACAwtD,GAEA,QAFA,IAAAA,IAAAA,GAAiClxB,WAAY,CAAC,EAAG,KAE5B,IAAjBt8B,EAAMpsB,OACR,MAAO,CAAE6E,EAAG,EAAGD,EAAG,EAAGk3B,MAAO,EAAGC,OAAQ,GAGzC,IAAM89C,EAAMztD,EAAMhC,QAChB,SAAC0vD,EAASrtD,GACR,IAAMstD,ETpEa,SACvBttD,EACAi8B,wBAAA,IAAAA,IAAAA,EAAA,CAA0B,EAAG,IAEvB,IAAApO,EAAW+zB,GAA0B5hD,EAAMi8B,GAAYJ,iBAArDzjD,EAACy1C,EAAAz1C,EAAED,MAEX,MAAO,CACLC,EAACA,EACDD,EAACA,EACD+jD,GAAI9jD,GAAuC,QAAlC8hB,EAAwB,QAAxBs3C,EAAa,UAAbxxC,EAAKw7B,gBAAQ,IAAAjmC,OAAA,EAAAA,EAAE8Z,aAAS,IAAAmiC,EAAAA,EAAAxxC,EAAKqP,aAAK,IAAAnV,EAAAA,EAAI,GAC/CiiC,GAAIhkD,GAAyC,QAApCorB,EAAyB,QAAzB/e,EAAa,UAAbwb,EAAKw7B,gBAAQ,IAAAnkB,OAAA,EAAAA,EAAE/H,cAAU,IAAA9qB,EAAAA,EAAAwb,EAAKsP,cAAM,IAAA/L,EAAAA,EAAI,GAErD,CSwDsBgqD,CAAUvtD,EAAMmtD,EAAOlxB,YACvC,OAAOqoB,GAAiB+I,EAASC,EAClC,GACD,CAAEl1E,EAAGo1E,IAAUr1E,EAAGq1E,IAAUtxB,IAAKsxB,IAAUrxB,IAAKqxB,MAGlD,OAAO9I,GAAU0I,EACnB,EAoCaK,GAAiB,SAC5B9tD,EACAgkD,EACApuD,EACAm4D,EAEAC,EACA1xB,uBAJAytB,EAAAvI,OAAA,IAAA5rD,EAA8B,CAAC,EAAG,EAAG,GAAEA,EAAA,GAAtCw/C,EAAE2U,EAAA,GAAE34B,EAAE24B,EAAA,GAAErF,EAAMqF,EAAA,QACf,IAAAgE,IAAAA,GAAiB,QAEjB,IAAAC,IAAAA,GAAiC,QACjC,IAAA1xB,IAAAA,EAAA,CAA0B,EAAG,IAE7B,IAAM2xB,EAAQvM,EAAAA,EAAA,CAAA,EACT+C,GAAqBT,EAAM,CAAC5O,EAAIhkB,EAAIszB,KAAQ,CAC/Ch1C,MAAOs0C,EAAKt0C,MAAQg1C,EACpB/0C,OAAQq0C,EAAKr0C,OAAS+0C,IAGlBwJ,EAA6C,OAEnD,IAAuB,IAAAC,EAAA7M,EAAAthD,GAAKouD,EAAAD,EAAA5uC,0BAAE,CAAnB,IAAGlf,EAAHmhD,EAAA4M,EAAAn5E,MAAA,GAAO,GACR4mD,EAAgDx7B,EAAIw7B,SAA1CwyB,EAAsChuD,EAArBiuD,WAAjBA,OAAU,IAAAD,GAAOA,EAAE3iE,EAAmB2U,EAAIkuD,OAAvBA,OAAM,IAAA7iE,GAAQA,EAC7CgkB,EAAyD,QAAjD7qB,EAAgC,UAAlB,QAAd0V,EAAAshC,EAASnsB,aAAK,IAAAnV,EAAAA,EAAI8F,EAAKqP,aAAS,IAAAgI,EAAAA,EAAArX,EAAKy7B,oBAAY,IAAAj3C,EAAAA,EAAI,KAC7D8qB,EAA6D,QAApD+D,EAAkC,UAAnB,QAAf9P,EAAAi4B,EAASlsB,cAAM,IAAA/L,EAAAA,EAAIvD,EAAKsP,cAAU,IAAAue,EAAAA,EAAA7tB,EAAK07B,qBAAa,IAAAroB,EAAAA,EAAI,KAEvE,KAAKs6C,IAA8BM,GAAeC,GAAlD,CAIA,IAAMC,EAAkBnJ,GACtB4I,EACAnK,GAAWzjD,EAAMi8B,KAEc,OAAV5sB,GAA6B,OAAXC,GAEhBo+C,GAAaS,EAAkB,GAGhBA,IAF1B9+C,QAAAA,EAAS,IAAMC,QAAAA,EAAU,IAItBtP,EAAK+qD,WACpB8C,EAAan6E,KAAKssB,EAdnB,CAgBF,mGAED,OAAO6tD,CACT,EAQaO,GAAoB,SAI/BzuD,EACAuB,GAEA,IAAMmtD,EAAU,IAAIp4E,IAKpB,OAJA0pB,EAAMnpB,SAAQ,SAACwpB,GACbquD,EAAQt3E,IAAIipB,EAAK0V,GACnB,IAEOxU,EAAM3D,QACX,SAACwD,GAAS,OAAAstD,EAAQzvE,IAAImiB,EAAKrI,SAAW21D,EAAQzvE,IAAImiB,EAAKy4B,OAAO,GAElE,EAEgB,SAAA80B,GAId/4D,EASAqM,aARE86B,EAAUnnC,EAAAmnC,WACVrtB,EAAK9Z,EAAA8Z,MACLC,EAAM/Z,EAAA+Z,OACNs6C,EAAOr0D,EAAAq0D,QACP5N,EAAOzmD,EAAAymD,QACPC,EAAO1mD,EAAA0mD,QACPz3D,EAAA+Q,EAAA0mC,WAAAA,OAAa,IAAAz3C,EAAA,CAAC,EAAG,GAAEA,EAIf+pE,EAAoC,GACpCC,GAAgB5sD,aAAO,EAAPA,EAASjC,OAC3B,IAAI1pB,IAAI2rB,EAAQjC,MAAM3f,KAAI,SAACggB,GAAS,OAAAA,EAAK0V,EAAL,KACpC,KAaJ,GAXAgnB,EAAWlmD,SAAQ,SAAChF,KAEhBA,EAAEgqD,SAASnsB,OACX79B,EAAEgqD,SAASlsB,UACV1N,eAAAA,EAAS6sD,sBAAuBj9E,EAAE08E,UAElBM,IAAiBA,EAAc5vE,IAAIpN,EAAEkkC,KACtD64C,EAAc76E,KAAKlC,EAEvB,IAEI+8E,EAAch7E,OAAS,EAAG,CAC5B,IAAM+xE,EAAS4H,GAAeqB,EAAe,CAAEtyB,WAAUA,IAEnDkgB,EAAWkJ,GACfC,EACAj2C,EACAC,UACAkiC,EAAA5vC,aAAO,EAAPA,EAASo6C,uBAAWA,EACJ,UAAhBp6C,aAAA,EAAAA,EAASq6C,eAAO,IAAA/hD,EAAAA,EAAI+hD,EACA,QAApB5kC,EAAAzV,eAAAA,EAAS2jD,eAAW,IAAAluC,EAAAA,EAAA,IAKtB,OAFAuyC,EAAQjK,YAAYxD,EAAU,CAAE1H,SAAU7yC,aAAA,EAAAA,EAAS6yC,YAE5C,CACR,CAED,OAAO,CACT,CAgCM,SAAUia,GAAiDn5D,OAC/DinC,EAAMjnC,EAAAinC,OACNC,EAAYlnC,EAAAknC,aACZC,EAAUnnC,EAAAmnC,WACV8U,EAAAj8C,EAAA0mC,WAAAA,aAAa,CAAC,EAAG,GAAEuV,EACnB7U,EAAUpnC,EAAAonC,WACVC,EAAOrnC,EAAAqnC,QASD58B,EAAO08B,EAAW/9C,IAAI69C,GACtBvI,EAAaj0B,EAAK68B,SAAWH,EAAW/9C,IAAIqhB,EAAK68B,eAAY+oB,EAC7D1rD,EAA6B+5B,EAC/B2tB,GAA0B3tB,EAAYA,EAAW8H,QAAUE,GACxDJ,iBACH,CAAEzjD,EAAG,EAAGD,EAAG,GAHJw2E,EAAOz0D,EAAA9hB,EAAKw2E,MAKnBC,EA5CN,SACE7uD,EACA88B,eAEA,OAAKA,GAAqB,WAAXA,EAGR,CACLA,EAAO,GACP,CACEA,EAAO,GAAG,IAA0B,QAApB0U,UAAAj8C,EAAAyK,EAAKw7B,+BAAUnsB,aAAK,IAAAmiC,EAAAA,EAAI,GACxC1U,EAAO,GAAG,IAA2B,QAArBzlB,UAAAnd,EAAA8F,EAAKw7B,+BAAUlsB,cAAM,IAAA+H,EAAAA,EAAI,KANpCylB,CASX,CA8BsBgyB,CAAgB9uD,EAAMA,EAAK88B,QAAUH,GAEzD,GAAoB,WAAhB38B,EAAK88B,QAAwB98B,EAAK+8B,aAuB3B9I,GAAc0xB,GAAmB3lD,EAAK88B,UAC/C+xB,EAAgB,CACd,CAAC7uD,EAAK88B,OAAO,GAAG,GAAK6xB,EAAS3uD,EAAK88B,OAAO,GAAG,GAAK8xB,GAClD,CAAC5uD,EAAK88B,OAAO,GAAG,GAAK6xB,EAAS3uD,EAAK88B,OAAO,GAAG,GAAK8xB,UAzBpD,GAAK36B,EAEE,CACL,IAAM86B,EAAY/uD,EAAKw7B,SAASnsB,MAC1B2/C,EAAahvD,EAAKw7B,SAASlsB,OAC3B2/C,EAAch7B,EAAWuH,SAASnsB,MAClC6/C,EAAej7B,EAAWuH,SAASlsB,OAEzC,GAAIy/C,GAAaC,GAAcC,GAAeC,EAAc,CAC1D,IAAMC,EAAiBnvD,EAAK+7B,QAAUE,EAChCmzB,EAAUT,EAAUI,EAAYI,EAAe,GAC/CE,EAAUT,EAAUI,EAAaG,EAAe,GAEtDN,EAAgB,CACd,CAACO,EAASC,GACV,CACED,EAAUH,EAAcF,EACxBM,EAAUH,EAAeF,GAG9B,CACF,MApBCpyB,SAAAA,EAAU,MAAO2jB,GAAwB,YA4B7C,IAAM1kB,EAAmB8pB,GAAmBkJ,GACxC3K,GAAcznB,EAAcoyB,GAC5BpyB,EAEJ,MAAO,CACLX,SAAU,CACR1jD,EAAGyjD,EAAiBzjD,EAAIu2E,EACxBx2E,EAAG0jD,EAAiB1jD,EAAIy2E,GAE1B/yB,iBAAgBA,EAEpB,UAYsByzB,GAAmB/5D,4CAGvCi8C,6CACAhtD,EAAkBgtD,EAAA+d,cAAlBA,OAAgB,IAAA/qE,EAAA,KAChB+e,EAAAiuC,EAAAge,cAAAA,OAAa,IAAAjsD,EAAG,GAAEA,EAClB5D,EAAK6xC,EAAA7xC,MACLuB,EAAKswC,EAAAtwC,MACLuuD,EAAcje,EAAAie,iEAWRpB,EAAU,IAAIp4E,IAAIs5E,EAAcvvE,KAAI,SAACggB,GAAS,OAAAA,EAAK0V,OACnDg6C,EAA4B,cAEvB1vD,GACT,IAAuB,IAAnBA,EAAK2vD,2BAIT,IAAMC,EAAavB,EAAQzvE,IAAIohB,EAAK0V,IAC9Bm6C,GACHD,GACD5vD,EAAK68B,UACL6yB,EAAchkD,MAAK,SAACl6B,GAAM,OAAAA,EAAEkkC,KAAO1V,EAAK68B,QAAd,KAExB+yB,GAAcC,IAChBH,EAAch8E,KAAKssB,QAZvB,IAAmB8vD,EAAA7O,EAAAthD,GAAKowD,EAAAD,EAAA5wC,QAAA6wC,EAAA5wC,KAAA4wC,EAAAD,EAAA5wC,OAAblf,EAAI+vD,EAAAn7E,QAAJorB,oGAgBLgwD,EAAU,IAAI/5E,IAAIu5E,EAAcxvE,KAAI,SAAC+gB,GAAS,OAAAA,EAAK2U,OACnDu6C,EAAiB/uD,EAAM3D,QAAO,SAACwD,GAAS,OAAmB,IAAnBA,EAAK4uD,SAAL,IACxCO,EAAiB9B,GAAkBsB,EAAeO,GAClDE,EAA4BD,aAEvBnvD,GACUivD,EAAQpxE,IAAImiB,EAAK2U,MAEjBy6C,EAAczkD,MAAK,SAACp5B,GAAM,OAAAA,EAAEojC,KAAO3U,EAAK2U,EAAE,KAC3Dy6C,EAAcz8E,KAAKqtB,QAJvB,IAAmBqvD,EAAAnP,EAAAgP,GAAcI,EAAAD,EAAAlxC,QAAAmxC,EAAAlxC,KAAAkxC,EAAAD,EAAAlxC,OAAtBne,EAAIsvD,EAAAz7E,QAAJmsB,oGAQX,OAAK0uD,EAOwB,CAAA,EAAMA,EAAe,CAChD9vD,MAAO+vD,EACPxuD,MAAOivD,KARA,CAAA,EAAA,CACLjvD,MAAOivD,EACPxwD,MAAO+vD,WASX,MAAoC,kBAL9BY,EAAuBziC,EAG3B0iC,QAGA,CAAA,EAAOD,EACH,CAAEpvD,MAAOivD,EAAexwD,MAAO+vD,GAC/B,CAAExuD,MAAO,GAAIvB,MAAO,KAG1B,CAAA,EAAO2wD,SACR,CC1fD,IAAM74E,GAAW,SAACS,GAAoB,MAAC,CACrCwmE,oBAAqBxmE,EAAEwmE,oBACvB8R,kBAAmBt4E,EAAEs4E,6BAGPC,KACR,IAAAl7D,EAA6CirD,GACjD/oE,GACAkyE,IAFMjL,EAAmBnpD,EAAAmpD,oBAAE8R,sBAM7B,OAFiB9R,GAAuB8R,EAOtC7F,EACE33E,IAAA,MAAA,CAAA43E,UAAU,0CACVjwC,MAAO,CACLtL,MAAOmhD,EAAkBnhD,MACzBC,OAAQkhD,EAAkBlhD,OAC1B1R,UAAW,oBAAa4yD,EAAkBp4E,EAAQ,QAAAqpB,OAAA+uD,EAAkBr4E,EAAM,UATvE,IAaX,CCSA,IAAMu4E,GAAc,SAClBC,EACAC,GAEA,OAAO,SAAC5T,GACFA,EAAMxjB,SAAWo3B,EAAa99E,UAGlC69E,SAAAA,EAAU3T,GACZ,CACF,EAEMvlE,GAAW,SAACS,GAAoB,MAAC,CACrCwmE,oBAAqBxmE,EAAEwmE,oBACvBmS,mBAAoB34E,EAAE24E,mBACtB9F,SAAU7yE,EAAEkyE,eAGR,SAAU0G,GAAKv7D,GACnB,IAAAw7D,EAAWx7D,EAAAw7D,YACEx7D,EAAAy7D,kBACbpS,EAASrpD,EAAAqpD,UACTqS,EAAgB17D,EAAA07D,iBAChBC,EAAc37D,EAAA27D,eACdC,EAAW57D,EAAA47D,YACX1S,EAAiBlpD,EAAAkpD,kBACjB2S,EAAY77D,EAAA67D,aACZC,EAAgB97D,EAAA87D,iBAChBC,oBACAC,EAAgBh8D,EAAAg8D,iBAChBlxD,EAAQ9K,EAAA8K,SAEF+iC,EAAY9tD,SAA8B,MAC1CmrE,EAAQG,KACR4Q,EAAyBl8E,SAAe,GACxCm8E,EAAyBn8E,SAAe,GACxCo8E,EAAkBp8E,EAAAA,SAClBq8E,EAAer8E,EAAAA,OAAiC,IAAI0nC,KAEpDw0B,EAAwDgP,GAC5D/oE,GACAkyE,IAFMjL,EAAmBlN,EAAAkN,oBAAEmS,EAAkBrf,EAAAqf,mBAAE9F,aAK3C6G,EAAqB,WACzBnR,EAAMvqE,SAAS,CAAEwoE,qBAAqB,EAAO8R,kBAAmB,OAEhEgB,EAAuB1+E,QAAU,EACjC2+E,EAAuB3+E,QAAU,CACnC,EAEM++E,EAAU,SAAC7U,GACfmU,SAAAA,EAAcnU,GACdyD,EAAM/pE,WAAWo7E,wBACjBrR,EAAMvqE,SAAS,CAAE67E,sBAAsB,GACzC,EAWMC,EAAUZ,EACZ,SAACpU,GAA4B,OAAAoU,EAAapU,EAAM,OAChD4I,EAoKEqM,EACJpB,IAAuBE,GAAerS,GAExC,OACEwT,OAAA,MAAA,CACEtH,UAAWryD,EAAG,CACZ,iBACA,CAAEyqC,UAAW4b,EAAWmM,WAAUrzB,UAAWq5B,KAE/Cc,QAASI,OAAqBrM,EAAY8K,GAAYmB,EAASzuB,GAC/D+uB,cAAezB,IAzLG,SAAC1T,GACjBrpE,MAAMC,QAAQgrE,KAAcA,aAAA,EAAAA,EAAWp8B,SAAS,IAClDw6B,EAAMhkB,iBAIRylB,SAAAA,EAAoBzB,EACtB,GAkL8C5Z,GAC1C4uB,QAAStB,GAAYsB,EAAS5uB,GAC9BgvB,aAAcH,OAAqBrM,EAAYyL,EAC/CgB,YAAaJ,EA/KG,SAACjV,eACb3lC,EAAiDopC,EAAM/pE,WAArDo7E,EAAqBz6C,EAAAy6C,sBAAE1vB,EAAO/qB,EAAA+qB,QAAE8f,eAGxC,GAFAwP,EAAgB5+E,QAAUsvD,aAAO,EAAPA,EAASxL,wBAGhCi6B,GACAE,GACgB,IAAjB/T,EAAMjjB,QACNijB,EAAMxjB,SAAW4J,EAAUtwD,SAC1B4+E,EAAgB5+E,QALnB,CAUA6+E,EAAa7+E,QAAU,IAAIkqC,QAE3B,IAAyB,IAAAs1C,EAAArR,EAAAiB,GAAUqQ,EAAAD,EAAApzC,0BAAE,CAA1B,IAAA16B,EAAA28D,EAAUoR,EAAA39E,MAAA,GAAT8gC,EAAElxB,EAAA,GAAEuc,EAAIvc,EAAA,GAClBmtE,EAAa7+E,QAAQ4L,IACnBqiB,EAAKrI,QACgC,QAArC84C,EAAAmgB,EAAa7+E,QAAQ6L,IAAIoiB,EAAKrI,eAAO,IAAA84C,OAAA,EAAAA,EAAEz6D,IAAI2+B,KAAO,IAAIz/B,IAAI,CAACy/B,KAE7Di8C,EAAa7+E,QAAQ4L,IACnBqiB,EAAKy4B,QACgC,QAArCt/B,EAAAy3D,EAAa7+E,QAAQ6L,IAAIoiB,EAAKy4B,eAAO,IAAAt/B,OAAA,EAAAA,EAAEnjB,IAAI2+B,KAAO,IAAIz/B,IAAI,CAACy/B,IAE9D,mGAEK,IAAAnS,EAAWojD,GACf3J,EAAMwV,YACNd,EAAgB5+E,SAFVsF,MAAGD,MAKX25E,IAEArR,EAAMvqE,SAAS,CACbs6E,kBAAmB,CACjBnhD,MAAO,EACPC,OAAQ,EACRmjD,OAAQr6E,EACR01C,OAAQ31C,EACRC,EAACA,EACDD,EAACA,KAIL84E,SAAAA,EAAmBjU,EAjClB,CAkCH,OAiIoD4I,EAChD8M,YAAaT,EAhIG,SAACjV,eACb9iD,EAQFumD,EAAM/pE,WAPR85E,EAAiBt2D,EAAAs2D,kBACjBtO,EAAUhoD,EAAAgoD,WACVtkD,cACAq+B,EAAU/hC,EAAA+hC,WACVS,EAAUxiC,EAAAwiC,WACVi2B,EAAkBz4D,EAAAy4D,mBAClBC,EAAkB14D,EAAA04D,mBAGpB,GAAK7B,GAAgBW,EAAgB5+E,SAAY09E,EAAjD,CAIM,IAAAn5C,EAA2BsvC,GAC/B3J,EAAMwV,YACNd,EAAgB5+E,SAFP+/E,MAAWC,MAIdL,EAAmBjC,EAAiBiC,OAA5B3kC,EAAW0iC,EAAiB1iC,OAEtCilC,EAAqB,CACzBN,OAAMA,EACN3kC,OAAMA,EACN11C,EAAGy6E,EAASJ,EAASI,EAASJ,EAC9Bt6E,EAAG26E,EAAShlC,EAASglC,EAAShlC,EAC9Bze,MAAO/S,KAAKiT,IAAIsjD,EAASJ,GACzBnjD,OAAQhT,KAAKiT,IAAIujD,EAAShlC,IAGtBklC,EAAgBvF,GACpB/wB,EACAq2B,EACAn1D,GACA,GACA,EACAq+B,GAGIg3B,EAAkB,IAAIh9E,IACtBi9E,EAAkB,IAAIj9E,QAE5B,IAA2B,IAAAk9E,EAAAlS,EAAA+R,GAAaI,EAAAD,EAAAj0C,0BAAE,CAArC,IAAMm0C,EAAYD,EAAAx+E,MACrBs+E,EAAgBn8E,IAAIs8E,EAAa39C,IAEjC,IAAMs6C,EAAU2B,EAAa7+E,QAAQ6L,IAAI00E,EAAa39C,IAEtD,GAAIs6C,MACF,IAAqB,IAAAsD,YAAArS,EAAA+O,IAAOuD,EAAAD,EAAAp0C,0BAAE,CAAzB,IAAMujC,EAAM8Q,EAAA3+E,MACfq+E,EAAgBl8E,IAAI0rE,EACrB,mGAEJ,mGAED,GAAI+O,EAAuB1+E,UAAYogF,EAAgB30E,KACrDizE,EAAuB1+E,QAAUogF,EAAgB30E,KAMjDo0E,EALgB1G,GACdvvB,EACAw2B,GACA,IAKJ,GAAIzB,EAAuB3+E,UAAYmgF,EAAgB10E,KACrDkzE,EAAuB3+E,QAAUmgF,EAAgB10E,KAKjDq0E,EAJgB3G,GACd/J,EACA+Q,IAKJxS,EAAMvqE,SAAS,CACbs6E,kBAAmBuC,EACnBrU,qBAAqB,EACrBqT,sBAAsB,GA/DvB,CAiEH,EAkDoDT,EAChDkC,UAAWvB,EAjDG,SAACjV,GACjB,GAAqB,IAAjBA,EAAMjjB,OAAV,CAGQ,IAAAy2B,EAAsB/P,EAAM/pE,8BAIjCgoE,GACD8R,GACAxT,EAAMxjB,SAAW4J,EAAUtwD,UAE3B++E,SAAAA,EAAU7U,IAGZyD,EAAMvqE,SAAS,CACb67E,qBAAsBP,EAAuB1+E,QAAU,IAGzD8+E,IACAV,SAAAA,EAAiBlU,EAjBhB,CAkBH,OA4BgD4I,EAC5C6N,aAAcxB,EA3BG,SAACjV,GAChB0B,IACF+B,EAAMvqE,SAAS,CACb67E,qBAAsBP,EAAuB1+E,QAAU,IAEzDo+E,SAAAA,EAAiBlU,IAGnB4U,GACF,EAkBsDL,EAClD1/E,IAAKuxD,EACLzoB,MAAOuuC,GAEN7oD,SAAA,CAAAA,EACDsqD,EAAAA,IAAC8F,GAAa,MAGpB,CC3QA,IAAMh5E,GAAW,SAACS,GAChB,MAAO,CACL65E,qBAAsB75E,EAAE65E,qBACxBrT,oBAAqBxmE,EAAEwmE,oBAE3B,EAEA,SAASgV,GAAoDn+D,OAC3D8K,EAAQ9K,EAAA8K,SACR8wD,EAAW57D,EAAA47D,YACXE,EAAgB97D,EAAA87D,iBAChBC,EAAe/7D,EAAA+7D,gBACfC,EAAgBh8D,EAAAg8D,iBAChB9S,EAAiBlpD,EAAAkpD,kBACjB2S,EAAY77D,EAAA67D,aACZuC,EAAap+D,EAAAo+D,cACbC,qBACAC,oBACA7C,kBACAC,EAAgB17D,EAAA07D,iBAChBC,EAAc37D,EAAA27D,eACd4C,EAAqBv+D,EAAAu+D,sBACrBC,EAAoBx+D,EAAAw+D,qBACpB1K,EAAqB9zD,EAAA8zD,sBACrBwH,EAAkBt7D,EAAAs7D,mBAClB5R,iBACAD,gBACagV,gBACblV,EAAgBvpD,EAAAupD,iBAChBD,EAAetpD,EAAAspD,gBACfK,EAAiB3pD,EAAA2pD,kBACN+U,EAAU1+D,EAAAqpD,UACrBwK,EAAe7zD,EAAA6zD,gBACflN,EAAe3mD,EAAA2mD,gBACfF,EAAOzmD,EAAAymD,QACPC,EAAO1mD,EAAA0mD,QACP8C,EAAgBxpD,EAAAwpD,iBACMxpD,EAAA2+D,uBACtB,IAAA3V,qBACAC,EAAcjpD,EAAAipD,eACKjpD,EAAA4+D,oBACnB,IAAA5K,EAAgBh0D,EAAAg0D,iBAChBC,EAAoBj0D,EAAAi0D,qBAEdhY,EAAgDgP,GAAS/oE,IAAnC+5D,EAAAugB,qBAAA,IAAErT,EAAmBlN,EAAAkN,oBAC3C0V,EAAsB9M,GAAYsM,GAClCS,EAA0B/M,GAAYyM,GAEtCnV,EAAYyV,GAA2BJ,EACvCtV,EAAc0V,GAA2BL,EACzCjD,EACJqD,GACA1V,GACCmV,IAAiC,IAAdjV,EAItB,OLpEI,SAA8BrpD,OAClCo+D,EAAap+D,EAAAo+D,cACbG,EAAqBv+D,EAAAu+D,sBAKfrT,EAAQG,KAGR0T,EAAmBhN,GAAYqM,EAAe9I,IAC9C0J,EAA2BjN,GAAYwM,GAE7Cv/E,EAAAA,WAAU,WACR,GAAI+/E,EAAkB,CACd,IAAA/+D,EAAmBkrD,EAAM/pE,WAAlB6e,EAAA2L,MAAO3L,EAAAoK,MAKpB8gD,EAAMvqE,SAAS,CAAE67E,sBAAsB,GACxC,CACH,GAAG,CAACuC,IAEJ//E,EAAAA,WAAU,WACRksE,EAAMvqE,SAAS,CAAEwsD,qBAAsB6xB,GACzC,GAAG,CAACA,GACN,CKuCEC,CAAoB,CAAEb,cAAaA,EAAEG,sBAAqBA,IAGxDnJ,EAAAA,IAACxB,GAAQ,CACP1K,kBAAmBA,EACnBoS,mBAAoBA,EACpB5R,aAAcA,EACdD,YAAaA,EACbL,YAAaA,EACbG,iBAAkBA,EAClBD,gBAAiBA,EACjBK,kBAAmBA,EACnBN,WAAYwV,GAAuBxV,EACnCwK,gBAAiBA,EACjBlN,gBAAiBA,EACjBF,QAASA,EACTC,QAASA,EACToN,sBAAuBA,EACvBtK,iBAAkBA,EAClBR,iBAAkBA,EAClBC,eAAgBA,EAChB+K,iBAAkBA,EAClBC,qBAAsBA,WAEtBmB,MAACmG,GACC,CAAAG,iBAAkBA,EAClBC,eAAgBA,EAChBC,YAAaA,EACbE,iBAAkBA,EAClBC,gBAAiBA,EACjBC,iBAAkBA,EAClB9S,kBAAmBA,EACnB2S,aAAcA,EACdxS,UAAWA,EACXmS,cAAeA,EACfC,cAAeA,EAEd3wD,SAAAA,KAWT,CAEAqzD,GAAsBe,YAAc,eAE7B,IAAMC,GAAeC,EAAIA,KAC9BjB,ICtIK,IAAMkB,GACO,oBAAXzgF,OAAyBK,EAAeA,gBAAGD,EAASA,UCSvD,SAAUsgF,GAAYC,GAIpB,IAAAv/D,EAAA4rD,EAAgC7sE,EAAQA,UAAC,GAAM,GAA9CygF,EAAWx/D,EAAA,GAAEy/D,OAKdxjB,EAAA2P,EAAU7sE,EAAQA,UAAC,WAAM,OA+BjC,SAAwB0yD,GACtB,IAAIiuB,EAAwB,GAE5B,MAAO,CACLt2E,IAAK,WAAM,OAAAs2E,CAAK,EAChBC,MAAO,WACLD,EAAQ,EACT,EACDvhF,KAAM,SAACq0E,GACLkN,EAAMvhF,KAAKq0E,GACX/gB,GACD,EAEL,CA5CiCmuB,EAAe,WAAM,OAAAH,GAAe,EAAK,GAAzC,IAA2C,GAAnEC,EAAKzjB,EAAA,GA4BZ,OAvBAojB,IAA0B,WAKxB,GAAKG,EAAL,CAKA,IAAMK,EAAaH,EAAMt2E,MAErBy2E,EAAW7hF,SACbuhF,EAASM,GAETH,EAAMC,SAKRF,GAAe,EAZd,MAFCC,EAAMC,OAeV,GAAG,CAACH,IAEGE,CACT,CCpCA,IAAMI,GAAe33E,EAAAA,cAKX,MAQJ,SAAU43E,GAGd//D,GAAE,IAAA8K,EAAQ9K,EAAA8K,SACJogD,EAAQG,KAER2U,EAAmBC,eAAY,SAACJ,WAC9B5jB,EAMFiP,EAAM/pE,WALRwjB,EAAUs3C,EAAA7xC,MAAVA,OAAK,IAAAzF,EAAG,GAAEA,EACV4F,EAAQ0xC,EAAA1xC,SACR21D,EAAejkB,EAAAikB,gBACfC,EAAalkB,EAAAkkB,cACbh5B,EAAU8U,EAAA9U,WAMRxd,EAAOvf,MACX,IAAsB,IAAAg2D,EAAA1U,EAAAmU,GAAUQ,EAAAD,EAAAz2C,0BAAE,CAA7B,IAAM22C,EAAOD,EAAAhhF,MAChBsqC,EAA0B,mBAAZ22C,EAAyBA,EAAQ32C,GAAQ22C,CACxD,mGAEGJ,EACF31D,EAASof,GACAw2C,GACTA,EACElJ,GAAuB,CACrBN,MAAOhtC,EACPutC,OAAQ/vB,IAIf,GAAE,IACGo5B,EAAYjB,GAAmBU,GAE/BQ,EAAmBP,eAAY,SAACJ,WAC9B5jB,EAMFiP,EAAM/pE,WALRwjB,EAAUs3C,EAAAtwC,MAAVA,OAAK,IAAAhH,EAAG,GAAEA,EACV87D,EAAQxkB,EAAAwkB,SACRC,EAAezkB,EAAAykB,gBACfC,EAAa1kB,EAAA0kB,cACbhU,EAAU1Q,EAAA0Q,WAGRhjC,EAAOhe,MACX,IAAsB,IAAAi1D,EAAAlV,EAAAmU,GAAUgB,EAAAD,EAAAj3C,0BAAE,CAA7B,IAAM22C,EAAOO,EAAAxhF,MAChBsqC,EAA0B,mBAAZ22C,EAAyBA,EAAQ32C,GAAQ22C,CACxD,mGAEGI,EACFD,EAAS92C,GACAg3C,GACTA,EACE1J,GAAuB,CACrBN,MAAOhtC,EACPutC,OAAQvK,IAIf,GAAE,IACGmU,EAAYxB,GAAmBkB,GAE/BnhF,EAAQY,EAAAA,SAAQ,WAAM,MAAC,CAAEsgF,UAASA,EAAEO,UAASA,EAAG,GAAE,IAExD,OACE1L,EAAA33E,IAACqiF,GAAa13E,SAAQ,CAAC/I,MAAOA,EAAKyrB,SAAGA,GAE1C,CC9EA,IAAMi2D,GAAoB,WACxB,IAAM7V,EAAQG,KAEd,OAAOprE,EAAOA,SAA0B,WACtC,MAAO,CACL+gF,OAAQ,SAAC30D,GAAO,IAAArM,EACd,eAAAA,EAAAkrD,EAAM/pE,WAAWkzE,8BAAShM,QAAQ,IAAK,CAAEnJ,SAAU7yC,aAAA,EAAAA,EAAS6yC,UAAW,EACzE+hB,QAAS,SAAC50D,SACR,iBAAA6+C,EACG/pE,WACAkzE,8BAAShM,QAAQ,EAAI,IAAK,CAAEnJ,SAAU7yC,aAAA,EAAAA,EAAS6yC,UAAW,EAC/DgiB,OAAQ,SAACC,EAAW90D,SAClB,iBAAA6+C,EACG/pE,WACAkzE,8BAAS/L,QAAQ6Y,EAAW,CAAEjiB,SAAU7yC,aAAA,EAAAA,EAAS6yC,UAAW,EACjEkiB,QAAS,WAAM,OAAAlW,EAAM/pE,WAAWknB,UAAU,EAAE,EAC5C+hD,YAAa,SAACxD,EAAUv6C,aAChByV,EAGFopC,EAAM/pE,WAFR8N,EAAA28D,iBAAYyV,OAAIC,OAAIC,OACpBlN,YAGFA,SAAAA,EAASjK,YACP,CACEvnE,UAAGmd,EAAA4mD,EAAS/jE,iBAAKw+E,EACjBz+E,UAAGq5D,EAAA2K,EAAShkE,iBAAK0+E,EACjBtb,aAAMrhD,EAAAiiD,EAASZ,oBAAQub,GAEzB,CAAEriB,SAAU7yC,aAAA,EAAAA,EAAS6yC,UAExB,EACDoL,YAAa,WACL,IAAAtqD,EAAA4rD,EAAeV,EAAM/pE,WAAWknB,UAAS,GAC/C,MAAO,CAAExlB,OAAGD,OAAGojE,UAChB,EACD+S,QAAS,SAAC1sD,GACF,IAAArM,EAQFkrD,EAAM/pE,WAPRgmD,EAAUnnC,EAAAmnC,WACVrtB,EAAK9Z,EAAA8Z,MACLC,WACA2sB,EAAU1mC,EAAA0mC,WACV+f,EAAOzmD,EAAAymD,QACPC,EAAO1mD,EAAA0mD,QACP2N,EAAOr0D,EAAAq0D,QAGT,QAAOA,GACH0E,GACE,CACE5xB,WAAUA,EACVrtB,MAAKA,EACLC,OAAMA,EACN2sB,WAAUA,EACV+f,QAAOA,EACPC,QAAOA,EACP2N,QAAOA,GAEThoD,EAGP,EACDm1D,UAAW,SAAC3+E,EAAGD,EAAGypB,GACV,IAAArM,EAAsCkrD,EAAM/pE,WAA1C24B,EAAK9Z,EAAA8Z,MAAEC,WAAQ2sC,YAAS2N,YAC1BoN,OACqB,KAAlBp1D,aAAO,EAAPA,EAAS25C,MAAuB35C,EAAQ25C,KAAOU,EAClDgb,EAAU5nD,EAAQ,EAAIj3B,EAAI4+E,EAC1BE,EAAU5nD,EAAS,EAAIn3B,EAAI6+E,EAEjCpN,SAAAA,EAASjK,YACP,CACEvnE,EAAG6+E,EACH9+E,EAAG++E,EACH3b,KAAMyb,GAER,CAAEviB,SAAU7yC,aAAA,EAAAA,EAAS6yC,UAExB,EACD0iB,UAAW,SAAC7R,EAAQ1jD,SACZ4vC,EAA+CiP,EAAM/pE,WAAnD24B,UAAOC,WAAQ0sC,YAASC,YAAS2N,YACnCzN,EAAWkJ,GACfC,EACAj2C,EACAC,EACA0sC,EACAC,EACgB,QAAhB1mD,EAAAqM,aAAO,EAAPA,EAAS2jD,eAAO,IAAAhwD,EAAAA,EAAI,IAGtBq0D,SAAAA,EAASjK,YAAYxD,EAAU,CAAE1H,SAAU7yC,aAAO,EAAPA,EAAS6yC,UACrD,EACD2iB,qBAAsB,SACpBC,EACAz1D,QAAA,IAAAA,IAAAA,EAAA,CAAqCi8B,YAAY,IAE3C,IAAAtoC,EAAmCkrD,EAAM/pE,WAAvCknB,EAASrI,EAAAqI,UAAEggC,EAAQroC,EAAAqoC,SAAEwE,YAE7B,IAAKA,EACH,OAAOi1B,EAGH,IAAA7lB,EAAuBpP,EAAQxL,wBAA1B0gC,EAAI9lB,EAAAp5D,EAAKm/E,EAAI/lB,EAAAr5D,EAElBq/E,EAAoB,CACxBp/E,EAAGi/E,EAAej/E,EAAIk/E,EACtBn/E,EAAGk/E,EAAel/E,EAAIo/E,GAGxB,OAAOnT,GACLoT,EACA55D,EACAgE,EAAQi8B,WACRD,EAEH,EACD65B,qBAAsB,SAACC,GACf,IAAAniE,EAAyBkrD,EAAM/pE,WAA7BknB,EAASrI,EAAAqI,UAAEwkC,EAAO7sC,EAAA6sC,QAE1B,IAAKA,EACH,OAAOs1B,EAGH,IAAAlmB,EAAuBpP,EAAQxL,wBAA1B0gC,EAAI9lB,EAAAp5D,EAAKm/E,EAAI/lB,EAAAr5D,EAClBw/E,EhByFsB,SAClCpiE,EACAi8C,OADEp5D,EAACmd,EAAAnd,EAAED,EAACod,EAAApd,EACN+hB,EAAAinD,EAAA3P,EAAA,GAACuD,EAAE76C,EAAA,GAAE62B,EAAE72B,EAAA,GAAEmqD,EAAMnqD,EAAA,GAEf,MAAO,CACL9hB,EAAGA,EAAIisE,EAAStP,EAChB58D,EAAGA,EAAIksE,EAAStzB,EAEpB,CgBjGiC6mC,CAAqBF,EAAc95D,GAE5D,MAAO,CACLxlB,EAAGu/E,EAAiBv/E,EAAIk/E,EACxBn/E,EAAGw/E,EAAiBx/E,EAAIo/E,EAE3B,EAEJ,GAAE,GACL,ECnIM9/E,GAAW,SAACS,GAAoB,QAAEA,EAAE0xE,kBAQ1BiO,KAAhB,IAkOCC,EAAAz5E,KA9NO05E,EAAiBzB,KACjB7V,EAAQG,KACRoX,aFmEN,IAAMA,EAAetX,aAAW2U,IAEhC,IAAK2C,EACH,MAAM,IAAIz3D,MAAM,uDAGlB,OAAOy3D,CACT,CE1EuBC,GACfC,EAAsB1X,GAAS/oE,IAE/B0gF,EAAgB3iF,EAAAA,SAA4C,WAChE,IAAM4iF,EAGiB,SAAC1iD,GACtB,OAAA+qC,EAAM/pE,WAAWgmD,WAAW/9C,IAAI+2B,EAAhC,EAEI5V,EAA2D,SAC/D+1D,GAEAmC,EAAalC,UAAUpiF,KAAKmiF,EAC9B,EAEMwC,EAAc,SAACr4D,eACbxb,EAA6Bi8D,EAAM/pE,WAAjCgmD,EAAUl4C,EAAAk4C,WAAET,EAAUz3C,EAAAy3C,WAExBq8B,EAAYxS,GAAiB9lD,GAC/BA,EACA08B,EAAW/9C,IAAIqhB,EAAK0V,IAClBomB,EAAWw8B,EAAUz7B,SjBkN3B,SACJf,EACAe,EACAH,EACAT,gBAAA,IAAAA,IAAAA,EAAA,CAA0B,EAAG,IAK7B,IAHA,IAAIs8B,EAAmC17B,EACjChB,EAAgBwlB,EAAA,CAAA,EAAQvlB,GAEvBy8B,GAAc,CACnB,IAAMjV,EAAS5mB,EAAW/9C,IAAIk+C,GAG9B,GAFA07B,EAAejV,eAAAA,EAAQzmB,SAEnBymB,EAAQ,CACV,IAAMkV,EAASlV,EAAOvnB,QAAUE,EAC1Bw8B,GAAgC,QAArBljE,EAAA+tD,EAAO9nB,SAASnsB,aAAK,IAAA9Z,EAAAA,EAAI,GAAKijE,EAAO,GAChDE,GAAiC,QAAtBlnB,EAAA8R,EAAO9nB,SAASlsB,cAAM,IAAAkiC,EAAAA,EAAI,GAAKgnB,EAAO,GACvD38B,EAAiBzjD,GAAKkrE,EAAOxnB,SAAS1jD,EAAIqgF,EAC1C58B,EAAiB1jD,GAAKmrE,EAAOxnB,SAAS3jD,EAAIugF,CAC3C,CACF,CAED,OAAO78B,CACT,CiBxOU88B,CACEL,EAAUx8B,SACVw8B,EAAUz7B,SACVH,EACAT,GAEFq8B,EAAUx8B,SAER88B,EAAmB,CACvBljD,GAAI4iD,EAAU5iD,GACdomB,SAAQA,EACRzsB,MAAgC,QAAzBmiC,EAAkB,QAAlBj8C,EAAA+iE,EAAU98B,gBAAQ,IAAAjmC,OAAA,EAAAA,EAAE8Z,aAAK,IAAAmiC,EAAAA,EAAI8mB,EAAUjpD,MAC9CC,OAAkC,QAA1B+H,EAAkB,QAAlBnd,EAAAo+D,EAAU98B,gBAAQ,IAAAthC,OAAA,EAAAA,EAAEoV,cAAM,IAAA+H,EAAAA,EAAIihD,EAAUhpD,OAChD2Y,KAAMqwC,EAAUrwC,MAGlB,OAAOw7B,GAAWmV,EACpB,EAEMC,EAA+D,SACnEnjD,EACAojD,EACAl3D,QAAA,IAAAA,IAAAA,EAAA,CAAYxrB,SAAS,IAErB0pB,GAAS,SAACi5D,GACR,OAAAA,EAAU/4E,KAAI,SAACggB,GACb,GAAIA,EAAK0V,KAAOA,EAAI,CAClB,IAAMsjD,EACkB,mBAAfF,EACHA,EAAW94D,GACX84D,EACN,OAAOl3D,EAAQxrB,SAAW0vE,GAAOkT,GAC5BA,EACI3X,EAAAA,EAAA,CAAA,EAAArhD,GAASg5D,EACnB,CAED,OAAOh5D,CACT,GAZA,GAcJ,EAEA,MAAO,CACLi5D,SAAU,WACR,OAAAxY,EAAM/pE,WAAWipB,MAAM3f,KAAI,SAACxO,GAAM,OAAA6vE,EAAA,CAAA,EAAM7vE,EAAI,GAAe,EAC7D0nF,QAAS,SAACxjD,GAAE,IAAAngB,EAAK,OAAqB,QAArBA,EAAA6iE,EAAgB1iD,UAAK,IAAAngB,OAAA,EAAAA,EAAAqmC,UAAU8F,QAAoB,EACpE02B,gBAAeA,EACfe,SAAU,WACA,IAAA5jE,EAAekrD,EAAM/pE,WAAXwqB,MAClB,YADa,IAAA3L,EAAG,GAAEA,GACLvV,KAAI,SAAC1N,GAAM,OAAA+uE,EAAA,GAAM/uE,EAAN,GACzB,EACD8mF,QAAS,SAAC1jD,GAAO,OAAA+qC,EAAM/pE,WAAWwrE,WAAWvjE,IAAI+2B,EAAe,EAChE5V,SAAQA,EACRk2D,SAAU,SAACH,GACTmC,EAAa3B,UAAU3iF,KAAKmiF,EAC7B,EACDwD,SAAU,SAACxD,GACT,IAAMyD,EAAW3lF,MAAMC,QAAQiiF,GAAWA,EAAU,CAACA,GACrDmC,EAAalC,UAAUpiF,MAAK,SAACisB,GAAU,OAAAqoD,EAAAA,EAAA,GAAA7G,EAAIxhD,IAAU,GAAAwhD,EAAAmY,IAAd,EAAA,GACxC,EACDC,SAAU,SAAC1D,GACT,IAAM2D,EAAW7lF,MAAMC,QAAQiiF,GAAWA,EAAU,CAACA,GACrDmC,EAAa3B,UAAU3iF,MAAK,SAACwtB,GAAU,OAAA8mD,EAAAA,EAAA,GAAA7G,EAAIjgD,IAAU,GAAAigD,EAAAqY,IAAd,EAAA,GACxC,EACDC,SAAU,WACF,IAAAlkE,EAAwCkrD,EAAM/pE,WAA5C86D,EAAAj8C,EAAAoK,MAAAA,OAAQ,IAAA6xC,EAAA,KAAIt3C,EAAA3E,EAAA2L,MAAAA,OAAK,IAAAhH,EAAG,GAAEA,EACxBmd,EAAA8pC,EADmC5rD,EAAAqI,UACX,GAAvBxlB,EAACi/B,EAAA,GAAEl/B,EAACk/B,EAAA,GAAEkkC,OACb,MAAO,CACL57C,MAAOA,EAAM3f,KAAI,SAACxO,GAAM,OAAM6vE,EAAA,CAAA,EAAA7vE,MAC9B0vB,MAAOA,EAAMlhB,KAAI,SAAC1N,GAAM,OAAM+uE,EAAA,CAAA,EAAA/uE,MAC9B6pE,SAAU,CACR/jE,EAACA,EACDD,EAACA,EACDojE,KAAIA,GAGT,EACDme,eAAgB,4CAAOloB,uCACrBhtD,EAAyBgtD,EAAA7xC,MAAlB4vD,OAAa,IAAA/qE,EAAG,GAAEA,EACzB+e,EAAAiuC,EAAAtwC,MAAOsuD,OAAgB,IAAAjsD,EAAA,GAAEA,oDAavB,OAXIrJ,EASFumD,EAAM/pE,WARRipB,EAAKzF,EAAAyF,MACLuB,EAAKhH,EAAAgH,MACLy4D,EAAaz/D,EAAAy/D,cACbC,EAAa1/D,EAAA0/D,cACbjH,EAAkBz4D,EAAAy4D,mBAClBC,EAAkB14D,EAAA04D,mBAClBiH,EAAQ3/D,EAAA2/D,SACRpK,EAAcv1D,EAAAu1D,eAGd,CAAA,EAAMH,GAAoB,CACxBC,cAAaA,EACbC,cAAaA,EACb7vD,MAAKA,EACLuB,MAAKA,EACLuuD,eAAcA,YA4BlB,OAlCMp4C,EACJwW,SADa6hC,EAAar4C,EAAA1X,MAASwwD,EAAa94C,EAAAnW,MAS5C44D,EAAmB3J,EAAc58E,OAAS,EAC1CwmF,EAAmBrK,EAAcn8E,OAAS,EAE5CumF,IACIE,EAAkC7J,EAAcnwE,IACpDitE,IAGF2M,SAAAA,EAAgBzJ,GAChByC,EAAmBoH,IAGjBD,IACIE,EAAkCvK,EAAc1vE,IACpDitE,IAGF0M,SAAAA,EAAgBjK,GAChBiD,EAAmBsH,KAGjBF,GAAoBD,KACtBD,SAAAA,EAAW,CAAEl6D,MAAO+vD,EAAexuD,MAAOivD,KAGrC,CAAA,EAAA,CAAE+J,aAAcxK,EAAeyK,aAAchK,OACrD,GAAA,EACDiK,qBAAsB,SAACC,EAAY3M,EAAkB/tD,QAAlB,IAAA+tD,IAAAA,GAAgB,GACjD,IAAM4M,EAASrU,GAAaoU,GACtBE,EAAWD,EAASD,EAAahC,EAAYgC,GAC7CG,OAA2B5U,IAAVjmD,EAEvB,OAAK46D,GAIG56D,GAAS8gD,EAAM/pE,WAAWipB,OAAOpC,QAAO,SAAC/rB,GAC/C,IAAMsxE,EAAerC,EAAM/pE,WAAWgmD,WAAW/9C,IAAInN,EAAEkkC,IAEvD,GACEotC,IACCwX,IACA9oF,EAAEkkC,KAAO2kD,EAAY3kD,KACnBotC,EAAalnB,UAAUC,kBAE1B,OAAO,EAGT,IAAM4+B,EAAehX,GAAW+W,EAAiBhpF,EAAIsxE,GAC/CqL,EAAkBnJ,GAAmByV,EAAcF,GAGzD,OAFyB7M,GAAaS,EAAkB,GAItDA,GAAmBoM,EAASlrD,MAAQkrD,EAASjrD,MAEjD,IAvBS,EAwBV,EACDorD,mBAAoB,SAACL,EAAYM,EAAMjN,QAAA,IAAAA,IAAAA,GAAgB,GACrD,IACM6M,EADStU,GAAaoU,GACFA,EAAahC,EAAYgC,GAEnD,IAAKE,EACH,OAAO,EAGT,IAAMpM,EAAkBnJ,GAAmBuV,EAAUI,GAGrD,OAFyBjN,GAAaS,EAAkB,GAItDA,GAAmBoM,EAASlrD,MAAQkrD,EAASjrD,MAEhD,EACDupD,WAAUA,EACV+B,eAAgB,SAACllD,EAAImlD,EAAYj5D,QAAA,IAAAA,IAAAA,EAAA,CAAYxrB,SAAS,IACpDyiF,EACEnjD,GACA,SAAC1V,GACC,IAAM86D,EACkB,mBAAfD,EAA4BA,EAAW76D,GAAQ66D,EACxD,OAAOj5D,EAAQxrB,eACN4pB,GAAI,CAAEioB,KAAM6yC,IAClBzZ,EAAAA,EAAA,CAAA,EAAMrhD,GAAM,CAAAioB,YAAWjoB,EAAKioB,MAAS6yC,IACzC,GACDl5D,EAEH,EAEJ,GAAE,IAEH,OAAOpsB,EAAOA,SAAC,WACb,OAAA6rE,EAAAA,EAAAA,EAAA,GACK8W,GACAJ,GACH,CAAAG,uBAEJ,GAAG,CAACA,GACN,CCtPA,IAAMzgF,GAAW,SAACS,GAAoB,OAAAA,EAAE6iF,mBAAF,ECCtC,IAAMtjF,GAAW,SAACujF,GAA+B,OAAA,SAAC9iF,GAChD,OAAO8iF,EACHvN,GACEv1E,EAAEwkD,WACF,CAAEtkD,EAAG,EAAGD,EAAG,EAAGk3B,MAAOn3B,EAAEm3B,MAAOC,OAAQp3B,EAAEo3B,QACxCp3B,EAAE0lB,WACF,GACA5d,KAAI,SAACggB,GAAS,OAAAA,EAAK0V,EAAL,IAChB/hC,MAAMi9C,KAAK14C,EAAEwkD,WAAWl9C,OAC9B,GCdO,IAAMy7E,GAAgBv9E,EAAAA,cAA6B,MAC7CC,GAAWs9E,GAAct9E,SACds9E,GAAcC,SAE/B,ICYMC,GAAqB,sBACrBC,GAAqB,sBCE5B,SAAUC,GAAoB9lE,OAClCqpC,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACPC,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACPC,EAAczpC,EAAAypC,eACdC,EAAc1pC,EAAA0pC,eAeRg4B,EACM,KAAVr4B,EACiB,KAAjBI,EACiB,KAjBLzpC,EAAA2pC,eAkBF,KAAVJ,EACIo4B,EACM,KAAVr4B,EACiB,KAAjBI,EACiB,KArBL1pC,EAAA4pC,eAsBF,KAAVJ,EAIF,MAAO,CAACk4B,EAASC,EAHD56D,KAAKiT,IAAI0nD,EAAUr4B,GACnBtiC,KAAKiT,IAAI2nD,EAAUr4B,GAGrC,CAEA,SAASy8B,GAAuB54D,EAAkB64D,GAChD,OAAI74D,GAAY,EACP,GAAMA,EAGI,GAAZ64D,EAAiBj/D,KAAK+iC,MAAM38B,EACrC,CAEA,SAAS84D,GAAwBjmE,GAC/B,IAAA2f,EAAG3f,EAAA2f,IACHqqB,EAAEhqC,EAAAgqC,GACFC,EAAEjqC,EAAAiqC,GACFtD,OACAC,EAAE5mC,EAAA4mC,GACFlqD,EAACsjB,EAAAtjB,EAED,OAAQijC,GACN,KAAKwqB,QAAQA,SAACD,KACZ,MAAO,CAACF,EAAK+7B,GAAuB/7B,EAAKrD,EAAIjqD,GAAIutD,GACnD,KAAKE,QAAQA,SAACC,MACZ,MAAO,CAACJ,EAAK+7B,GAAuBp/B,EAAKqD,EAAIttD,GAAIutD,GACnD,KAAKE,QAAQA,SAACE,IACZ,MAAO,CAACL,EAAIC,EAAK87B,GAAuB97B,EAAKrD,EAAIlqD,IACnD,KAAKytD,QAAQA,SAACG,OACZ,MAAO,CAACN,EAAIC,EAAK87B,GAAuBn/B,EAAKqD,EAAIvtD,IAEvD,CCnEM,SAAUwpF,GAAclmE,OAC5BqpC,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACPC,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QAOD05B,EAAUn8D,KAAKiT,IAAIuvB,EAAUF,GAAW,EACxCq4B,EAAUn4B,EAAUF,EAAUE,EAAU25B,EAAU35B,EAAU25B,EAE5DC,EAAUp8D,KAAKiT,IAAIwvB,EAAUF,GAAW,EAG9C,MAAO,CAACo4B,EAFQl4B,EAAUF,EAAUE,EAAU25B,EAAU35B,EAAU25B,EAExCD,EAASC,EACrC,CAsEA,OAAMgD,GAAY,SAACnmE,OACjBmD,EAAMnD,EAAAmD,OACNqiC,EAAYxlC,EAAAwlC,aACZvB,EAAMjkC,EAAAikC,OACNwB,EAAYzlC,EAAAylC,aAEZ,MAAA,YAAYv5B,OAAA/I,GAAS+I,OAAAs5B,GAAgB,GAAM,KAAAt5B,OAAA+3B,GAAS/3B,OAAAu5B,GAAgB,GAApE,EC/FF,IAAM2gC,KAAgBpmE,GAAA,CAAA,GACnBmqC,QAAAA,SAASD,MAAO,CAAErnD,GAAI,EAAGD,EAAG,GAC7Bod,GAACmqC,QAAQA,SAACC,OAAQ,CAAEvnD,EAAG,EAAGD,EAAG,GAC7Bod,GAACmqC,QAAAA,SAASE,KAAM,CAAExnD,EAAG,EAAGD,GAAI,GAC5Bod,GAACmqC,QAAQA,SAACG,QAAS,CAAEznD,EAAG,EAAGD,EAAG,OAG1ByjF,GAAe,SAACrmE,GACpB,IAAAmD,EAAMnD,EAAAmD,OACN84C,EAAgCj8C,EAAAsmE,eAAhCA,OAAc,IAAArqB,EAAG9R,QAAAA,SAASG,OAAM2R,EAChChY,EAAMjkC,EAAAikC,OAMN,OAAIqiC,IAAmBn8B,QAAAA,SAASD,MAAQo8B,IAAmBn8B,QAAAA,SAASC,MAC3DjnC,EAAOtgB,EAAIohD,EAAOphD,EAAI,CAAEA,EAAG,EAAGD,EAAG,GAAM,CAAEC,GAAI,EAAGD,EAAG,GAErDugB,EAAOvgB,EAAIqhD,EAAOrhD,EAAI,CAAEC,EAAG,EAAGD,EAAG,GAAM,CAAEC,EAAG,EAAGD,GAAI,EAC5D,EAEMuqB,GAAW,SAACxwB,EAAeE,GAC/B,OAAAkqB,KAAK+iC,KAAK/iC,KAAK6kC,IAAI/uD,EAAEgG,EAAIlG,EAAEkG,EAAG,GAAKkkB,KAAK6kC,IAAI/uD,EAAE+F,EAAIjG,EAAEiG,EAAG,GAAvD,EA+NI,SAAU2jF,GAAkBvmE,OAChCqpC,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACP2S,EAAgCj8C,EAAAsmE,eAAhCA,OAAiB,IAAArqB,EAAA9R,iBAASG,OAAM2R,EAChC1S,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACP7kC,EAAA3E,EAAAwmE,eAAAA,aAAiBr8B,QAAQA,SAACE,IAAG1lC,EAC7Bmd,iBAAA2kD,OAAe,IAAA3kD,EAAA,EAACA,EAChB4/C,EAAO1hE,EAAA0hE,QACPC,EAAO3hE,EAAA2hE,QACP1yE,WAQM+e,EAAA49C,EA7OR,SAAmB5rD,WAkCb0hE,EAASC,EAjCbx+D,EAAMnD,EAAAmD,OACN2e,EAAA9hB,EAAAsmE,eAAAA,OAAiB,IAAAxkD,EAAAqoB,QAAQA,SAACG,OAAMxoB,EAChCmiB,EAAMjkC,EAAAikC,OACNh1C,EAAA+Q,EAAAwmE,eAAAA,OAAiB,IAAAv3E,EAAAk7C,QAAQA,SAACE,IAAGp7C,EAC7By3E,EAAM1mE,EAAA0mE,OACNC,EAAM3mE,EAAA2mE,OASAC,EAAYR,GAAiBE,GAC7BO,EAAYT,GAAiBI,GAC7BM,EAA2B,CAC/BjkF,EAAGsgB,EAAOtgB,EAAI+jF,EAAU/jF,EAAI8jF,EAC5B/jF,EAAGugB,EAAOvgB,EAAIgkF,EAAUhkF,EAAI+jF,GAExBI,EAA2B,CAC/BlkF,EAAGohD,EAAOphD,EAAIgkF,EAAUhkF,EAAI8jF,EAC5B/jF,EAAGqhD,EAAOrhD,EAAIikF,EAAUjkF,EAAI+jF,GAExBK,EAAMX,GAAa,CACvBljE,OAAQ2jE,EACRR,eAAcA,EACdriC,OAAQ8iC,IAEJE,EAAwB,IAAVD,EAAInkF,EAAU,IAAM,IAClCqkF,EAAUF,EAAIC,GAEhB3rD,EAAuB,GAErB6rD,EAAkB,CAAEtkF,EAAG,EAAGD,EAAG,GAC7BwkF,EAAkB,CAAEvkF,EAAG,EAAGD,EAAG,GAE7BorB,EAAA49C,EACJsa,GAAc,CACZ78B,QAASlmC,EAAOtgB,EAChBymD,QAASnmC,EAAOvgB,EAChB2mD,QAAStF,EAAOphD,EAChB2mD,QAASvF,EAAOrhD,IAChB,GANGykF,EAAcr5D,EAAA,GAAEs5D,EAAct5D,EAAA,GAAEu5D,EAAcv5D,EAAA,GAAEw5D,OASvD,GAAIZ,EAAUK,GAAeJ,EAAUI,KAAkB,EAAG,CAC1DvF,EAAkB,QAARzlB,EAAAyqB,EAAO7jF,SAAC,IAAAo5D,EAAAA,EAAIorB,EACtB1F,EAAkB,QAARh9D,EAAA+hE,EAAO9jF,SAAC,IAAA+hB,EAAAA,EAAI2iE,EAItB,IAAMG,EAA8B,CAClC,CAAE5kF,EAAG6+E,EAAS9+E,EAAGkkF,EAAalkF,GAC9B,CAAEC,EAAG6+E,EAAS9+E,EAAGmkF,EAAankF,IAK1B8kF,EAAgC,CACpC,CAAE7kF,EAAGikF,EAAajkF,EAAGD,EAAG++E,GACxB,CAAE9+E,EAAGkkF,EAAalkF,EAAGD,EAAG++E,IAIxBrmD,EADEsrD,EAAUK,KAAiBC,EACJ,MAAhBD,EAAsBQ,EAAgBC,EAEtB,MAAhBT,EAAsBS,EAAkBD,CAEpD,KAAM,CAEL,IAAME,EAA6B,CACjC,CAAE9kF,EAAGikF,EAAajkF,EAAGD,EAAGmkF,EAAankF,IAEjCglF,EAA6B,CACjC,CAAE/kF,EAAGkkF,EAAalkF,EAAGD,EAAGkkF,EAAalkF,IASvC,GALE04B,EADkB,MAAhB2rD,EACOL,EAAU/jF,IAAMqkF,EAAUU,EAAeD,EAEzCf,EAAUhkF,IAAMskF,EAAUS,EAAeC,EAGhDtB,IAAmBE,EAAgB,CACrC,IAAMqB,EAAO9gE,KAAKiT,IAAI7W,EAAO8jE,GAAehjC,EAAOgjC,IAGnD,GAAIY,GAAQlB,EAAQ,CAClB,IAAMmB,EAAY/gE,KAAK6F,IAAI+5D,EAAS,EAAGA,EAASkB,GAC5CjB,EAAUK,KAAiBC,EAC7BC,EAAgBF,IACbH,EAAaG,GAAe9jE,EAAO8jE,IAAgB,EAAI,GACxDa,EAEFV,EAAgBH,IACbF,EAAaE,GAAehjC,EAAOgjC,IAAgB,EAAI,GACxDa,CAEL,CACF,CAGD,GAAIxB,IAAmBE,EAAgB,CACrC,IAAMuB,EAAsC,MAAhBd,EAAsB,IAAM,IAClDe,EACJpB,EAAUK,KAAiBJ,EAAUkB,GACjCE,EACJnB,EAAaiB,GAAuBhB,EAAagB,GAC7CG,EACJpB,EAAaiB,GAAuBhB,EAAagB,IAErB,IAA3BnB,EAAUK,MACNe,GAAaC,GACbD,GAAaE,IACU,IAA3BtB,EAAUK,MACNe,GAAaE,GACbF,GAAaC,MAGlB3sD,EAAyB,MAAhB2rD,EAAsBU,EAAeC,EAEjD,CAED,IAAMO,EAAiB,CACrBtlF,EAAGikF,EAAajkF,EAAIskF,EAAgBtkF,EACpCD,EAAGkkF,EAAalkF,EAAIukF,EAAgBvkF,GAEhCwlF,EAAiB,CACrBvlF,EAAGkkF,EAAalkF,EAAIukF,EAAgBvkF,EACpCD,EAAGmkF,EAAankF,EAAIwkF,EAAgBxkF,GAEjBmkB,KAAKC,IACxBD,KAAKiT,IAAImuD,EAAetlF,EAAIy4B,EAAO,GAAGz4B,GACtCkkB,KAAKiT,IAAIouD,EAAevlF,EAAIy4B,EAAO,GAAGz4B,KAEnBkkB,KAAKC,IACxBD,KAAKiT,IAAImuD,EAAevlF,EAAI04B,EAAO,GAAG14B,GACtCmkB,KAAKiT,IAAIouD,EAAexlF,EAAI04B,EAAO,GAAG14B,KAKtC8+E,GAAWyG,EAAetlF,EAAIulF,EAAevlF,GAAK,EAClD8+E,EAAUrmD,EAAO,GAAG14B,IAEpB8+E,EAAUpmD,EAAO,GAAGz4B,EACpB8+E,GAAWwG,EAAevlF,EAAIwlF,EAAexlF,GAAK,EAErD,CAgBD,MAAO,CAdS6vE,EAAAA,EAAA,CACdtvD,EACA,CACEtgB,EAAGikF,EAAajkF,EAAIskF,EAAgBtkF,EACpCD,EAAGkkF,EAAalkF,EAAIukF,EAAgBvkF,MAEnC04B,IAAM,GAAA,CACT,CACEz4B,EAAGkkF,EAAalkF,EAAIukF,EAAgBvkF,EACpCD,EAAGmkF,EAAankF,EAAIwkF,EAAgBxkF,GAEtCqhD,OAGkBy9B,EAASC,EAAS4F,EAAgBC,EACxD,CAsEqDa,CAAU,CAC3DllE,OAAQ,CAAEtgB,EAAGwmD,EAASzmD,EAAG0mD,GACzBg9B,eAAcA,EACdriC,OAAQ,CAAEphD,EAAG0mD,EAAS3mD,EAAG4mD,GACzBg9B,eAAcA,EACdE,OAAQ,CAAE7jF,EAAG6+E,EAAS9+E,EAAG++E,GACzBgF,YAdO,IAAA13E,EAAA,GAAEA,OAQJqsB,EAAMtN,EAAA,GAAEs6D,EAAMt6D,EAAA,GAAEu6D,EAAMv6D,EAAA,GAAEu+C,EAAOv+C,EAAA,GAAEw+C,OASlChpC,EAAOlI,EAAOlT,QAAe,SAACmqD,EAAKn2E,EAAG0B,GAC1C,IAAI0qF,EAAU,GAUd,OAPEA,EADE1qF,EAAI,GAAKA,EAAIw9B,EAAOt9B,OAAS,EAhFrC,SACErB,EACAE,EACAH,EACAsM,GAEA,IAAMy/E,EAAW1hE,KAAK6F,IAAIO,GAASxwB,EAAGE,GAAK,EAAGswB,GAAStwB,EAAGH,GAAK,EAAGsM,GAC1DnG,EAAShG,EAACgG,EAAPD,EAAM/F,EAAC+F,EAGlB,GAAKjG,EAAEkG,IAAMA,GAAKA,IAAMnG,EAAEmG,GAAOlG,EAAEiG,IAAMA,GAAKA,IAAMlG,EAAEkG,EACpD,MAAO,IAAIspB,OAAArpB,EAAK,KAAAqpB,OAAAtpB,GAIlB,GAAIjG,EAAEiG,IAAMA,EAAG,CACb,IAAM8lF,EAAO/rF,EAAEkG,EAAInG,EAAEmG,GAAK,EAAI,EACxB8lF,EAAOhsF,EAAEiG,EAAIlG,EAAEkG,EAAI,GAAK,EAC9B,MAAO,KAAAspB,OAAKrpB,EAAI4lF,EAAWC,EAAI,KAAAx8D,OAAItpB,EAAM,MAAAspB,OAAArpB,cAAKD,EAAC,KAAAspB,OAAIrpB,EACjD,KAAAqpB,OAAAtpB,EAAI6lF,EAAWE,EAElB,CAED,IAAMC,EAAOjsF,EAAEkG,EAAInG,EAAEmG,EAAI,GAAK,EACxBgmF,EAAOlsF,EAAEiG,EAAIlG,EAAEkG,GAAK,EAAI,EAC9B,MAAO,KAAAspB,OAAKrpB,EAAK,KAAAqpB,OAAAtpB,EAAI6lF,EAAWI,EAAS,MAAA38D,OAAArpB,cAAKD,EAAC,KAAAspB,OAAIrpB,EAAI4lF,EAAWG,EAAI,KAAA18D,OAAItpB,EAC5E,CAuDgBkmF,CAAQxtD,EAAOx9B,EAAI,GAAI1B,EAAGk/B,EAAOx9B,EAAI,GAAI2oF,GAEzC,UAAS,IAAN3oF,EAAU,IAAM,KAAGouB,OAAG9vB,EAAEyG,cAAKzG,EAAEwG,GAG9C2vE,GAAOiW,CAGR,GAAE,IAEH,MAAO,CAAChlD,EAAM8kD,EAAQC,EAAQhc,EAASC,EACzC,CC9QA,IAAMtqE,GAAW,SAACS,GAAoB,MAAC,CACrComF,eAAgBpmF,EAAEomF,eAClB9f,eAAgBtmE,EAAEsmE,eAClB+f,KAAMrmF,EAAEqmF,OAiPG,IAAAre,GAASyU,EAAAA,KAAK9P,IA1M3B,SACEtvD,EAeA1jB,WAdEwlC,EAAe9hB,EAAA5iB,KAAfA,OAAI,IAAA0kC,EAAG,SAAQA,EACf7yB,EAAA+Q,EAAAumC,SAAAA,OAAW,IAAAt3C,EAAAk7C,QAAQA,SAACE,IAAGp7C,EACvBigD,EAAiBlvC,EAAAkvC,kBACjBlhC,EAAAhO,EAAAipE,cAAAA,OAAgB,IAAAj7D,GAAIA,EACpBsqB,EAAyBt4B,EAAAkpE,mBAAzBA,OAAkB,IAAA5wC,GAAOA,EACzBxa,EAAA9d,EAAAmpE,iBAAAA,OAAmB,IAAArrD,GAAIA,EACvBqC,EAAEngB,EAAAmgB,GACF8vB,EAASjwC,EAAAiwC,UACTnlC,EAAQ9K,EAAA8K,SACRuqD,EAASr1D,EAAAq1D,UACTyH,EAAW98D,EAAA88D,YACXsM,EAAYppE,EAAAopE,aACTC,EAAIC,EAAAtpE,EAbT,sKAiBMwvC,EAAWrvB,GAAM,KACjB0vB,EAAoB,WAATzyD,EACX8tE,EAAQG,KACRpkB,EL1FSkkB,aAAWua,IK2FpB3R,EAA2C9I,GAAS/oE,GAAUkyE,IAA5D2U,EAAchV,EAAAgV,eAAE9f,EAAc8K,EAAA9K,eAAE+f,SAClC7U,EAOFlJ,GAjEJ,SAAChkB,EAAuBuI,EAAyBpyD,GACjD,OAAA,SAACoD,GAEG,IAAuB+oF,EAKrB/oF,EALgCqwD,sBACbtB,EAInB/uD,EAJ4BswD,oBACF04B,EAG1BhpF,EAHqCipF,2BACvC96B,EAEEnuD,EAAKmuD,eADPiC,EACEpwD,EAAKowD,iBAEH84B,GACJn6B,aAAS,EAATA,EAAWtI,UAAWA,IACtBsI,aAAS,EAATA,EAAWC,YAAaA,IACxBD,aAAS,EAATA,EAAWnyD,QAASA,EAEtB,MAAO,CACLusF,gBACEJ,eAAAA,EAAatiC,UAAWA,IACxBsiC,aAAW,EAAXA,EAAa/5B,YAAaA,IAC1B+5B,aAAW,EAAXA,EAAansF,QAASA,EACxBssF,aAAYA,EACZE,iBACEJ,eAAAA,EAAaviC,UAAWA,IACxBuiC,aAAW,EAAXA,EAAah6B,YAAaA,IAC1Bg6B,aAAW,EAAXA,EAAapsF,QAASA,EACxBysF,oBACEl7B,IAAmBhG,QAAAA,eAAe6B,QAC9B++B,eAAAA,EAAansF,QAASA,EACtB6pD,KAAWsiC,aAAA,EAAAA,EAAatiC,SACxBuI,KAAa+5B,eAAAA,EAAa/5B,UAChCs6B,sBAAuBP,EACvBQ,MAAOL,GAAqC,UAArB94B,GA9B3B,CAgEao5B,CAAmB/iC,EAAQuI,EAAUpyD,GAAOg3E,IANvDuV,EAAcxV,EAAAwV,eACdD,EAAYvV,EAAAuV,aACZE,oBACAC,EAAmB1V,EAAA0V,oBACnBC,EAAmB3V,EAAA2V,oBACnBC,UAGG9iC,GACqB,QAAxBtiC,KAAAumD,EAAM/pE,YAAWkmD,eAAO,IAAA1iC,GAAAA,EAAA1nB,KAAAg/D,EAAG,MAAO+O,GAAwB,YAG5D,IAAMif,EAAoB,SAACrS,GACnB,IAAA53D,EAIFkrD,EAAM/pE,WAHR+oF,EAAkBlqE,EAAAkqE,mBACPC,EAAenqE,EAAAiwC,UAC1BywB,oBAGI0J,EACDte,EAAAA,EAAA,CAAA,EAAAoe,GACAtS,GAEL,GAAI8I,EAAiB,CACb,IAAAzkB,EAAsBiP,EAAM/pE,WAA1BwqB,EAAKswC,EAAAtwC,OACb80D,EADuBxkB,EAAAwkB,UFSN,SACrB2J,EACAz+D,GAEA,OAAKy+D,EAAWjnE,QAAWinE,EAAWnmC,OAxBf,SAACz4B,EAAgBG,GACxC,OAAOA,EAAMykB,MACX,SAAC5b,GACC,QAAAA,EAAGrR,SAAWqI,EAAKrI,QACnBqR,EAAGyvB,SAAWz4B,EAAKy4B,QAClBzvB,EAAGgxB,eAAiBh6B,EAAKg6B,eACtBhxB,EAAGgxB,cAAiBh6B,EAAKg6B,eAC5BhxB,EAAGixB,eAAiBj6B,EAAKi6B,eACtBjxB,EAAGixB,cAAiBj6B,EAAKi6B,cAL7B,GAON,CA8BM4kC,CARF7+D,EdxGF,OAFAglD,EcyGe4Z,IdvGI,WAAY5Z,GAAW,WAAYA,EcwGhD1E,EAAA,GAAQse,GAELte,EACFA,EAAA,CAAA,EAAAse,GACH,CAAAjqD,GAAIgmD,GAAUiE,KAISz+D,GAClBA,GAGiB,OAAtBH,EAAKg6B,qBACAh6B,EAAKg6B,aAGY,OAAtBh6B,EAAKi6B,qBACAj6B,EAAKi6B,aAGP95B,EAAMO,OAAOV,IAzBXG,EAGT,IAAIH,EdxGJglD,Cc+HF,CEzCe8Z,CAAQF,EAAYz+D,GAC9B,CAEDw+D,SAAAA,EAAkBC,GAClBn6B,SAAAA,EAAYm6B,EACd,EAEM16B,EAAgB,SACpB+X,GAEA,GAAKxgB,EAAL,CAIA,IAAMsjC,EAAmBpZ,GAAa1J,EAAMwV,aAE5C,GACEiM,IACEqB,GACsD,IAArD9iB,EAA0CjjB,SAC1C+lC,GACH,CACA,IAAMC,EAAetf,EAAM/pE,WAE3BspF,GAAS/6B,cAAc+X,EAAMwV,YAAa,CACxCntB,iBAAkB06B,EAAa16B,iBAC/BnB,eAAgB67B,EAAa77B,eAC7BgB,iBAAkB66B,EAAa76B,iBAC/B9C,QAAS29B,EAAa39B,QACtB1F,WAAYqjC,EAAarjC,WACzB6H,IAAKw7B,EAAax7B,IAClBa,SAAQA,EACRL,SAAQA,EACRvI,OAAMA,EACNgI,OAAQu7B,EAAaxB,KACrB97B,MAAOs9B,EAAat9B,MACpB6C,iBAAkBy6B,EAAaz6B,iBAC/BC,eAAgBw6B,EAAax6B,eAC7BE,aAAcs6B,EAAat6B,aAC3BE,iBAAkBo6B,EAAap6B,iBAC/BH,UAAWg6B,EACX/6B,kBAAmBA,GAAqBs7B,EAAat7B,kBACrDmB,aAAc,WAAM,OAAA6a,EAAM/pE,WAAWknB,SAAS,EAC9CioC,yBAA0B,WAAM,OAAA4a,EAAM/pE,WAAW0vD,qBAAqB,GAEzE,CAEG05B,EACFzN,SAAAA,EAAcrV,GAEd2hB,SAAAA,EAAe3hB,EAtChB,CAwCH,EAyDA,OACE2N,+BACiB5lB,EAAQ,cACVvI,EACG,iBAAAV,YACP,GAAGr6B,OAAA88D,cAAQ/hC,EAAM,KAAA/6B,OAAIsjC,EAAY,KAAAtjC,OAAA9uB,GAC1Ci4E,UAAWryD,EAAG,CACZ,mBACA,oBAAAkJ,OAAoBq6B,GACpB,SACA0iB,EACAoM,EACA,CACElyD,QAAS0sC,EACT5L,OAAQ4L,EACR66B,YAAazB,EACb0B,iBAAkBzB,EAClB0B,eAAgBzB,EAChB0B,gBAAiBjB,EACjBkB,eAAgBnB,EAChBoB,aAAcrB,EACdK,MAAKA,EAGLiB,oBACE/B,KACEa,GAAuBD,KACxBC,EAAsBX,EAAmBD,MAGhDpM,YAAaptB,EACb05B,aAAc15B,EACd4sB,QAASyM,EAvFG,SAACthB,GACT,IAAAznD,EAQFkrD,EAAM/pE,WAPR8pF,EAAmBjrE,EAAAirE,oBACnBC,EAAiBlrE,EAAAkrE,kBACjBzB,+BACA96B,EAAc3uC,EAAA2uC,eACKw8B,EAAsBnrE,EAAAkvC,kBACzCF,EAAGhvC,EAAAgvC,IACGC,EAAMjvC,EAAAgpE,KAGd,GAAK/hC,IAAYwiC,GAA+BP,GAAhD,CAIA,IAAKO,EASH,OARAwB,SAAAA,EAAsBxjB,EAAMwV,YAAa,CACvCh2B,OAAMA,EACNuI,SAAQA,EACRiB,WAAYrzD,SAEd8tE,EAAMvqE,SAAS,CACb8oF,2BAA4B,CAAExiC,OAAMA,EAAE7pD,KAAIA,EAAEoyD,SAAQA,KAKxD,IAAMT,ExBlKuB,SAC/ByhB,GAEA,IAAAxwD,EAAA,OAAkD,QAAjDA,EAAAwwD,EAAQjgB,mBAAyC,IAAAvwC,OAAA,EAAAA,EAAA/iB,KAAAuzE,MAAU,OAAN5xE,aAAM,IAANA,YAAM,EAANA,OAAQW,SAAQ,CwB+JxD6rF,CAAkB3jB,EAAMxjB,QAC9BonC,EACJn8B,GAAqBi8B,EACjBlvB,EAA0BwuB,GAASp7B,QAAQoY,EAAMwV,YAAa,CAClEvuB,OAAQ,CACNzH,OAAMA,EACN9mB,GAAIqvB,EACJpyD,KAAIA,GAENuxD,eAAcA,EACdC,WAAY66B,EAA2BxiC,OACvC4H,aAAc46B,EAA2Bj6B,UAAY,KACrDV,SAAU26B,EAA2BrsF,KACrC8xD,kBAAmBm8B,EACnBp8B,OAAMA,EACNF,IAAGA,EACHC,IAAGA,IAbGM,EAAU2M,EAAA3M,sBAgBHA,GACb26B,EAAkB36B,GAGpB47B,SAAAA,EAAoBzjB,GAEpByD,EAAMvqE,SAAS,CAAE8oF,2BAA4B,MAvC5C,CAwCH,OAkCwCpZ,EACpC/zE,IAAKA,GACD+sF,EAAI,CAAAv+D,SAEPA,IAGP,KC1QO,IAAMwgE,GAA4C,CACvDC,QAAS,CAAE1oF,EAAG,EAAGD,GAAI,GACrB4oF,UAAW,CAAE3oF,EAAG,EAAGD,EAAG,GACtB6oF,UAAW,CAAE5oF,GAAI,EAAGD,EAAG,GACvB8oF,WAAY,CAAE7oF,EAAG,EAAGD,EAAG,IAGZ+oF,GAA8B,CACzCzoE,MCXI,SAAoBlD,GACxB,IAAA0yB,EAAI1yB,EAAA0yB,KACJu2C,EAAajpE,EAAAipE,cACbhtB,EAAAj8C,EAAAsmE,eAAAA,OAAiB,IAAArqB,EAAA9R,QAAQA,SAACG,OAAM2R,EAEhC,OACE0gB,OACGiP,EAAAA,SAAA,CAAA9gE,SAAA,CAAA4nB,aAAA,EAAAA,EAAMvN,MACPiwC,EAAAA,IAACzK,GAAM,CACLvtE,KAAK,SACLmpD,SAAU+/B,EACV2C,cAAeA,MAIvB,EDHEtqF,QEZI,SAAsBqhB,OAC1B0yB,EAAI1yB,EAAA0yB,KACJu2C,EAAajpE,EAAAipE,cACbhtB,EAA6Bj8C,EAAAwmE,eAA7BA,OAAiB,IAAAvqB,EAAA9R,QAAQA,SAACE,IAAG4R,EAC7Bt3C,EAAgC3E,EAAAsmE,eAAhCA,OAAiB,IAAA3hE,EAAAwlC,iBAASG,OAAM3lC,EAEhC,OACEg4D,EAAAA,KACEiP,EAAAA,SAAA,CAAA9gE,SAAA,CAAAsqD,EAAAA,IAACzK,GACC,CAAAvtE,KAAK,SACLmpD,SAAUigC,EACVyC,cAAeA,IAEhBv2C,eAAAA,EAAMvN,MACPiwC,EAAA33E,IAACktE,GACC,CAAAvtE,KAAK,SACLmpD,SAAU+/B,EACV2C,cAAeA,MAIvB,EFRE4C,OGbI,SAAqB7rE,GACzB,IAAA0yB,EAAI1yB,EAAA0yB,KACJu2C,EAAajpE,EAAAipE,cACbhtB,EAAAj8C,EAAAwmE,eAAAA,OAAiB,IAAAvqB,EAAA9R,QAAQA,SAACE,IAAG4R,EAE7B,OACE0gB,OACEiP,EAAAA,SAAA,CAAA9gE,SAAA,CAAAsqD,EAAAA,IAACzK,GAAM,CACLvtE,KAAK,SACLmpD,SAAUigC,EACVyC,cAAeA,IAEhBv2C,aAAA,EAAAA,EAAMvN,QAGb,EHDEyH,iBIjBA,OAAO,IACT,GCOM,SAAUk/C,GAAgB9rE,GAC9B,IAAAmgB,EAAEngB,EAAAmgB,GACF+qC,EAAKlrD,EAAAkrD,MACLjP,EAAAj8C,EAAA+rE,SAAAA,OAAW,IAAA9vB,GAAKA,EAChB+vB,EAAOhsE,EAAAgsE,QAUDrnE,EAMFumD,EAAM/pE,WALR8qF,qBACAz+B,0BACAL,yBACAhG,eACAE,YAEI58B,EAAO08B,EAAW/9C,IAAI+2B,GAEvB1V,GAKLygD,EAAMvqE,SAAS,CAAE67E,sBAAsB,IAElC/xD,EAAKqhC,UAECigC,GAAathE,EAAKqhC,UAAYqB,KACvCK,EAAsB,CAAEpjC,MAAO,CAACK,GAAOkB,MAAO,KAE9CqkB,uBAAsB,WAAM,IAAAhwB,EAAA,OAAkB,QAAlBA,EAAAgsE,aAAO,EAAPA,EAASzuF,eAAS,IAAAyiB,OAAA,EAAAA,EAAAksE,MAAM,KAJpDD,EAAiB,CAAC9rD,KAPlBknB,SAAAA,EAAU,MAAO2jB,GAAwB,SAAE7qC,GAa/C,CCtCA,IAAMgsD,GAAuB,SAAC/+B,GAA4B,OAAA,SAACnxD,GACzD,OAAAA,EAAE6vD,WACD7vD,EAAEwxD,WAAcL,QAAyC,IAAhBnxD,EAAEwxD,UAD5C,GCiBI,SAAU2+B,GAAmCpsE,SACjDmgB,EAAEngB,EAAAmgB,GACFm8C,EAAOt8D,EAAAs8D,QACPO,EAAY78D,EAAA68D,aACZM,EAAWn9D,EAAAm9D,YACXe,EAAYl+D,EAAAk+D,aACZtB,EAAa58D,EAAA48D,cACbyP,EAAarsE,EAAAqsE,cACbj/B,EAAcptC,EAAAotC,eACdkuB,EAAkBt7D,EAAAs7D,mBAClBgR,EAAgBtsE,EAAAssE,iBAChBC,EAAcvsE,EAAAusE,eACdC,EAAcxsE,EAAAwsE,eACd7/B,EAAe3sC,EAAA2sC,gBACfsc,EAAcjpD,EAAAipD,eACd2V,EAAmB5+D,EAAA4+D,oBACnBoK,EAAIhpE,EAAAgpE,KACJyD,EAASzsE,EAAAysE,UACTrlC,EAAUpnC,EAAAonC,WACVV,EAAU1mC,EAAA0mC,WACVW,EAAOrnC,EAAAqnC,QAED1iC,EAAgCsmD,IAAS,SAACtoE,GAC9C,IAAM8nB,EAAO9nB,EAAEwkD,WAAW/9C,IAAI+2B,GACxBusD,EAAW/pF,EAAEyqE,aAAa/jE,IAAI82B,GAEpC,MAAO,CACL1V,KAAIA,EACJ47B,UAAW57B,EAAK47B,UAChBqmC,SAAQA,EAEX,GAAEtY,IATK3pD,EAAI9F,EAAA8F,KAAE47B,EAAS1hC,EAAA0hC,UAAEqmC,EAAQ/nE,EAAA+nE,SAW7BlgF,EAAWie,EAAKrtB,MAAQ,UACxBuvF,GAAgBF,aAAA,EAAAA,EAAYjgF,KAAam/E,GAAiBn/E,QAExC6jE,IAAlBsc,IACFtlC,SAAAA,EAAU,MAAO2jB,GAAwB,SAAEx+D,IAC3CA,EAAW,UACXmgF,EAAgBhB,GAAiBhtF,SAGnC,IAAMiuF,KACJniE,EAAKgjC,WACJL,QAA4C,IAAnB3iC,EAAKgjC,WAE3BX,KACJriC,EAAKiuD,YACJ4C,QAAiD,IAApB7wD,EAAKiuD,YAE/BuQ,KACJx+D,EAAKigE,aACJ4B,QAAgD,IAArB7hE,EAAKigE,aAE7BmC,KACJpiE,EAAKqiE,WACJP,QAA4C,IAAnB9hE,EAAKqiE,WAG3B5hB,EAAQG,KACR0hB,EjCmFF,SACJtiE,mBAEA,YACgE4lD,KAAvB,QAAtC1rD,UAAAs3C,EAAe,UAAfxxC,EAAKw7B,gBAAU,IAAAjmC,OAAA,EAAAA,EAAA8Z,qBAASrP,EAAKqP,aAAS,IAAAnV,EAAAA,EAAA8F,EAAKy7B,oBACqBmqB,KAA5B,QAApCriD,EAAyB,UAAZ,QAAb8T,EAAArX,EAAKw7B,gBAAQ,IAAAnkB,OAAA,EAAAA,EAAE/H,cAAU,IAAA9qB,EAAAA,EAAAwb,EAAKsP,cAAM,IAAA/L,EAAAA,EAAIvD,EAAK07B,cAElD,CiC1FwB6mC,CAAkBviE,GAClCuhE,EC5EF,SAA0BhsE,OAC9ByK,EAAIzK,EAAAyK,KACJje,EAAQwT,EAAAxT,SACRugF,EAAa/sE,EAAA+sE,cACbP,EAAcxsE,EAAAwsE,eAORthB,EAAQG,KACR2gB,EAAUjsF,SAA8B,MACxCktF,EAAeltF,SAA8B,MAC7CmtF,EAAqBntF,EAAAA,OAAO0qB,EAAK67D,gBACjC6G,EAAqBptF,EAAAA,OAAO0qB,EAAK+7D,gBACjC4G,EAAWrtF,SAAOyM,GAClB6gF,EAAgBN,KAAmBtiE,EAAK47B,UAAUqK,eAAiBjmC,EAAKkuD,OAyC9E,OAvCA35E,EAAAA,WAAU,YACJgtF,EAAQzuF,SAAa8vF,GAAiBJ,EAAa1vF,UAAYyuF,EAAQzuF,UACrE0vF,EAAa1vF,UACfivF,SAAAA,EAAgB9X,UAAUuY,EAAa1vF,UAEzCivF,SAAAA,EAAgB/X,QAAQuX,EAAQzuF,SAChC0vF,EAAa1vF,QAAUyuF,EAAQzuF,QAEnC,GAAG,CAAC8vF,IAEJruF,EAAAA,WAAU,WACR,OAAO,WACDiuF,EAAa1vF,UACfivF,SAAAA,EAAgB9X,UAAUuY,EAAa1vF,SACvC0vF,EAAa1vF,QAAU,KAE3B,CACD,GAAE,IAEHyB,EAAAA,WAAU,WACR,GAAIgtF,EAAQzuF,QAAS,CAGnB,IAAM+vF,EAAcF,EAAS7vF,UAAYiP,EACnC+gF,EAAmBL,EAAmB3vF,UAAYktB,EAAK67D,eACvDkH,EAAmBL,EAAmB5vF,UAAYktB,EAAK+7D,gBAEzD8G,GAAeC,GAAoBC,KACrCJ,EAAS7vF,QAAUiP,EACnB0gF,EAAmB3vF,QAAUktB,EAAK67D,eAClC6G,EAAmB5vF,QAAUktB,EAAK+7D,eAElCtb,EACG/pE,WACAqkF,oBAAoB,IAAI/9C,IAAI,CAAC,CAAChd,EAAK0V,GAAI,CAAEA,GAAI1V,EAAK0V,GAAIsxC,YAAaua,EAAQzuF,QAASkwF,OAAO,OAEjG,CACH,GAAG,CAAChjE,EAAK0V,GAAI3zB,EAAUie,EAAK67D,eAAgB77D,EAAK+7D,iBAE1CwF,CACT,CDiBkB0B,CAAgB,CAC9BjjE,KAAIA,EACJje,SAAQA,EACRugF,cAAaA,EACbP,eAAcA,IAEVhX,EE/EF,SAAkBx1D,GACtB,IAAAgsE,YACA/vB,EAAAj8C,EAAA2tE,SAAAA,OAAQ,IAAA1xB,GAAQA,EAChBtP,EAAe3sC,EAAA2sC,gBACfC,EAAc5sC,EAAA4sC,eACd3F,EAAMjnC,EAAAinC,OACN6F,EAAY9sC,EAAA8sC,aAENoe,EAAQG,KACR1mD,EAAAinD,EAA0B7sE,EAAQA,UAAU,GAAM,GAAjDy2E,EAAQ7wD,EAAA,GAAEipE,OACXC,EAAS9tF,EAAAA,SA6Cf,OA3CAf,EAAAA,WAAU,WACR6uF,EAAOtwF,QAAUuwF,GAAO,CACtBxhC,cAAe,WAAM,OAAA4e,EAAM/pE,UAAU,EACrCkrD,gBAAiB,SAAClsB,GAChB2rD,GAAgB,CACd3rD,GAAEA,EACF+qC,MAAKA,EACL8gB,QAAOA,GAEV,EACDz/B,YAAa,WACXqhC,GAAY,EACb,EACDnhC,WAAY,WACVmhC,GAAY,EACb,GAEJ,GAAE,IAEH5uF,EAAAA,WAAU,mBACR,GAAI2uF,EACc,QAAhB3tE,EAAA6tE,EAAOtwF,eAAS,IAAAyiB,GAAAA,EAAAte,eACX,GAAIsqF,EAAQzuF,QAQjB,OAPc,QAAd0+D,EAAA4xB,EAAOtwF,eAAO,IAAA0+D,GAAAA,EAAEvP,OAAO,CACrBC,gBAAeA,EACfC,eAAcA,EACdC,QAASm/B,EAAQzuF,QACjBuvD,aAAYA,EACZ7F,OAAMA,IAED,iBACW,QAAhBjnC,EAAA6tE,EAAOtwF,eAAS,IAAAyiB,GAAAA,EAAAte,SAClB,CAEJ,GAAG,CACDirD,EACAC,EACA+gC,EACA7gC,EACAk/B,EACA/kC,IAGKuuB,CACT,CFuBmBuY,CAAQ,CACvB/B,QAAOA,EACP2B,SAAUljE,EAAKkuD,SAAWiU,EAC1BjgC,gBAAeA,EACfC,eAAgBniC,EAAKujE,WACrB/mC,OAAQ9mB,EACR2sB,aAAYA,IAERmhC,aDlFN,IAAM/iB,EAAQG,KAER4iB,EAAoBhO,eACxB,SAACrI,WACO3b,EASFiP,EAAM/pE,WARRimD,EAAU6U,EAAA7U,WACVkB,EAAU2T,EAAA3T,WACVD,EAAQ4T,EAAA5T,SACR+E,EAAc6O,EAAA7O,eACd/F,EAAO4U,EAAA5U,QACP4F,EAAmBgP,EAAAhP,oBACnB9F,EAAU8U,EAAA9U,WACVT,eAEIwnC,EAAc,IAAIzmD,IAClB0mD,EAAahC,GAAqB/+B,GAIlCghC,EAAQ9lC,EAAaD,EAAS,GAAK,EACnCgmC,EAAQ/lC,EAAaD,EAAS,GAAK,EAEnCimC,EAAQ1W,EAAOviC,UAAUxyC,EAAIurF,EAAQxW,EAAO2W,OAC5CC,EAAQ5W,EAAOviC,UAAUzyC,EAAIyrF,EAAQzW,EAAO2W,WAElD,IAAuB,IAAA9iB,EAAAC,EAAAvkB,GAAUwkB,EAAAF,EAAA9hC,0BAAE,CAAxB,IAAGlf,EAAHmhD,EAAAD,EAAAtsE,MAAA,GAAO,GAChB,GAAK8uF,EAAW1jE,GAAhB,CAIA,IAAIy8B,EAAe,CACjBrkD,EAAG4nB,EAAK47B,UAAUC,iBAAiBzjD,EAAIyrF,EACvC1rF,EAAG6nB,EAAK47B,UAAUC,iBAAiB1jD,EAAI4rF,GAGrClmC,IACFpB,EAAe0nB,GAAa1nB,EAAcmB,IAGtC,IAAAvmB,EAAiCq3C,GAAsB,CAC3DlyB,OAAQx8B,EAAK0V,GACb+mB,aAAYA,EACZC,WAAUA,EACVC,WAAUA,EACVV,WAAUA,EACVW,QAAOA,IANDd,EAAQzkB,EAAAykB,SAAED,qBASlB77B,EAAK87B,SAAWA,EAChB97B,EAAK47B,UAAUC,iBAAmBA,EAElC4nC,EAAY/kF,IAAIshB,EAAK0V,GAAI1V,EAvBxB,CAwBF,mGAEDwiC,EAAoBihC,EACrB,GACD,IAGF,OAAOD,CACT,CCsB4BQ,GAE1B,GAAIhkE,EAAKkuD,OACP,OAAO,KAGT,IAAM+V,EAAiBpiB,GAAkB7hD,GACnCkkE,EPvFF,SACJlkE,2BAKA,YAAoC4lD,IAAhC5lD,EAAK47B,UAAUqK,aACV,CACL52B,cAAOmiC,EAAc,QAAdj8C,EAAAyK,EAAKqP,aAAS,IAAA9Z,EAAAA,EAAAyK,EAAKy7B,oCAAgBvhC,EAAA8F,EAAK2a,4BAAOtL,MACtDC,eAAQ9qB,EAAe,QAAf6yB,EAAArX,EAAKsP,cAAU,IAAA+H,EAAAA,EAAArX,EAAK07B,qCAAiBn4B,EAAAvD,EAAK2a,4BAAOrL,QAItD,CACLD,MAAqB,QAAdwe,EAAA7tB,EAAKqP,aAAS,IAAAwe,EAAAA,EAAU,QAAVxa,EAAArT,EAAK2a,aAAK,IAAAtH,OAAA,EAAAA,EAAEhE,MACjCC,OAAuB,QAAfg6C,EAAAtpD,EAAKsP,cAAU,IAAAg6C,EAAAA,EAAU,QAAVI,EAAA1pD,EAAK2a,aAAK,IAAA+uC,OAAA,EAAAA,EAAEp6C,OAEvC,COsE2B60D,CAA6BnkE,GAChDokE,EAAkBznC,EACpBunB,GAActoB,EAAUC,iBAAkBc,GAC1Cf,EAAUC,iBAERwoC,EAAqBxe,GACtBxE,EAAAA,EAAAA,EAAA,CAAA,EAAA+iB,GACAH,GAAc,CACjBloC,OAAQ/7B,EAAK+7B,QAAUE,KAEnBqoC,EACJjiC,GACA8/B,GACAtQ,GACAO,GACAM,GACAe,EAEI8Q,EAAsBnS,EACxB,SAACpV,GAAsB,OAAAoV,EAAapV,EAAKqE,EAAA,CAAA,EAAOzlB,EAAU8F,UAAW,OACrEkkB,EACE4e,EAAqB9R,EACvB,SAAC1V,GAAsB,OAAA0V,EAAY1V,EAAKqE,EAAA,CAAA,EAAOzlB,EAAU8F,UAAW,OACpEkkB,EACE6e,EAAsBhR,EACxB,SAACzW,GAAsB,OAAAyW,EAAazW,EAAKqE,EAAA,CAAA,EAAOzlB,EAAU8F,UAAW,OACrEkkB,EACE8e,EAAuBvS,EACzB,SAACnV,GAAsB,OAAAmV,EAAcnV,EAAKqE,EAAA,CAAA,EAAOzlB,EAAU8F,UAAW,OACtEkkB,EACE+e,EAAuB/C,EACzB,SAAC5kB,GAAsB,OAAA4kB,EAAc5kB,EAAKqE,EAAA,CAAA,EAAOzlB,EAAU8F,UAAW,OACtEkkB,EAuDJ,OACE+E,MAAA,MAAA,CACEC,UAAWryD,EAAG,CACZ,iBACA,kBAAAkJ,OAAkB1f,SAGhByvD,EAACgN,GAAiB2jB,KAEpBniE,EAAK4qD,UACL,CACEvpB,SAAUrhC,EAAKqhC,SACf4sB,WAAY5rB,EACZ7hC,OAAQyhE,EACRj/B,UAAWm/B,EACXpX,SAAQA,KAGZl5E,IAAK0vF,EACL5mD,MAAK0mC,EAAAA,EAAA,CACHE,OAAQ3lB,EAAU7iD,EAClB6kB,UAAW,aAAA6D,OAAa4iE,EAAmBjsF,EAAO,OAAAqpB,OAAA4iE,EAAmBlsF,EAAM,OAC3EysF,cAAeN,EAAmB,MAAQ,OAC1CO,WAAYvC,EAAgB,UAAY,UACrCtiE,EAAK2a,OACLupD,GAEI,UAAAxuD,EACI,cAAA,YAAAjU,OAAYiU,GACzB08C,aAAcmS,EACd7R,YAAa8R,EACb/Q,aAAcgR,EACdtS,cAAeuS,EACf7S,QAtFwB,SAAC7U,GACrB,IAAAznD,EAA2CkrD,EAAM/pE,WAA/CksD,EAAiBrtC,EAAAqtC,kBAAEY,EAAiBjuC,EAAAiuC,kBAG1CnB,KACEO,IAAsBu/B,GAAe3+B,EAAoB,IAI3D69B,GAAgB,CACd3rD,GAAEA,EACF+qC,MAAKA,EACL8gB,QAAOA,IAIP1P,GACFA,EAAQ7U,EAAKqE,EAAA,CAAA,EAAOzlB,EAAU8F,UAElC,EAoEIkgC,cAAe+C,EACfG,UAAW1C,EAnEG,SAACplB,GACjB,IAAIuJ,GAAevJ,EAAMwV,eAAgB2B,EAIzC,GAAI4Q,GAAqBviD,SAASw6B,EAAMprE,MAAQywD,EAAc,CAC5D,IAAMi/B,EAAyB,WAAdtkB,EAAMprE,IAEvByvF,GAAgB,CACd3rD,GAAEA,EACF+qC,MAAKA,EACL6gB,SAAQA,EACRC,QAAOA,GAEV,MACCY,GACAniE,EAAKqhC,UACLhwD,OAAOC,UAAUC,eAAeiB,KAAKquF,GAAe7jB,EAAMprE,OAE1D6uE,EAAMvqE,SAAS,CACb8uF,gBAAiB,uBAAAvjE,OAAuBu7C,EAAMprE,IAC3CwE,QAAQ,QAAS,IACjBs+B,cAAa,uBAAAjT,SAAwB2iE,EAAgBhsF,EAAC,SAAAqpB,SAAU2iE,EAAgBjsF,KAGrFqrF,EAAkB,CAChB54C,UAAWi2C,GAAc7jB,EAAMprE,KAC/BkyF,OAAQ9mB,EAAMQ,SAAW,EAAI,IAGnC,OAqCyCoI,EACrCqf,SAAU7C,EAAc,OAAIxc,EAC5Bsf,KAAM9C,EAAc,cAAWxc,EAE7B,mBAAAuO,OAAsBvO,EAAY,UAAGuV,GAAkB,KAAA15D,OAAI88D,GAEjD,aAAAv+D,EAAKmlE,UAAS9kE,SAE1BsqD,EAAAA,IAAChtE,GAAS,CAAA/I,MAAO8gC,EAAErV,SACjBsqD,EAAC33E,IAAAkvF,EACC7gB,EAAA,CAAA3rC,GAAIA,EACJuS,KAAMjoB,EAAKioB,KACXt1C,KAAMoP,EACNqjF,kBAAmBhB,EAAgBhsF,EACnCitF,kBAAmBjB,EAAgBjsF,EACnCkpD,SAAUrhC,EAAKqhC,SACfm9B,cAAeA,EACf3C,eAAgB77D,EAAK67D,eACrBE,eAAgB/7D,EAAK+7D,eACrBhR,SAAUA,EACVwY,WAAYvjE,EAAKujE,WACjBhiB,OAAQ3lB,EAAU7iD,GACdkrF,OAKd,CGpOA,IAAMxsF,GAAW,SAACS,GAAoB,MAAC,CACrCyqD,eAAgBzqD,EAAEyqD,eAClBk/B,iBAAkB3pF,EAAE2pF,iBACpBC,eAAgB5pF,EAAE4pF,eAClBjR,mBAAoB34E,EAAE24E,mBACtBj0B,QAAS1kD,EAAE0kD,UAGb,SAAS0oC,GACP1yF,GAEM,IjBf0BooF,EiBe1BzlE,EAMFirD,GAAS/oE,GAAUkyE,IALrBhnB,EAAcptC,EAAAotC,eACdk/B,EAAgBtsE,EAAAssE,iBAChBC,EAAcvsE,EAAAusE,eACdjR,EAAkBt7D,EAAAs7D,mBAClBj0B,EAAOrnC,EAAAqnC,QAGHyxB,GjBvB0B2M,GiBuBE,EjBtBlBxa,GACdgV,EAAAA,YAAY/9E,GAASujF,GAAoB,CAACA,IAC1CrR,KiBqBIoY,alBxCN,IAAMhH,EAAsBva,GAAS/oE,IAC/B8d,EAAA4rD,EAAmB7sE,EAAAA,UAAS,WAChC,MAA8B,oBAAnBy1E,eACF,KAGF,IAAIA,gBAAe,SAACwb,GACzB,IAAMC,EAAU,IAAIxoD,IACpBuoD,EAAQ/uF,SAAQ,SAACivF,GACf,IAAM/vD,EAAK+vD,EAAMjsC,OAAOvG,aAAa,WACrCuyC,EAAQ9mF,IAAIg3B,EAAI,CACdA,GAAEA,EACFsxC,YAAaye,EAAMjsC,QAEvB,IAEAuhC,EAAoByK,EACtB,GACD,IAAC,GAjBKzD,OAyBP,OANAxtF,EAAAA,WAAU,WACR,OAAO,WACLwtF,SAAAA,EAAgB2D,YAClB,CACF,GAAG,CAAC3D,IAEGA,CACT,CkBayB4D,GAEvB,OACEhb,MAAA,MAAA,CAAKC,UAAU,kBAAkBjwC,MAAOuuC,YACrCmF,EAAQruE,KAAI,SAACw8C,GACZ,OACEmuB,EAAAA,IAACgX,GAAW,CAEVjsD,GAAI8mB,EACJwlC,UAAWpvF,EAAMovF,UAEjB/lC,WAAYrpD,EAAMqpD,WAOlBiG,gBAAiBtvD,EAAMsvD,gBACvBsc,eAAgB5rE,EAAM4rE,eACtB+f,KAAM3rF,EAAM2rF,KACZpK,oBAAqBvhF,EAAMuhF,oBAC3B4N,eAAgBA,EAChBp/B,eAAgBA,EAChBk/B,iBAAkBA,EAClBC,eAAgBA,EAChBjR,mBAAoBA,EACpBj0B,QAASA,GApBJJ,EAuBV,KAGP,CAEA8oC,GAAsB7Q,YAAc,eAE7B,OAAMmR,GAAejR,EAAIA,KAC9B2Q,IChDWO,KAAatwE,GAAA,CAAA,GACvBgpC,QAAAA,WAAWsC,OAlCM,SAACtrC,OAAEi8C,EAAcj8C,EAAAuwE,MAAdA,OAAK,IAAAt0B,EAAG,OAAMA,EAAEt3C,EAAA3E,EAAAwwE,YAAAA,OAAc,IAAA7rE,EAAA,EAACA,EACpD,OACEywD,EACE33E,IAAA,WAAA,CAAA2nC,MAAO,CACLqrD,OAAQF,EACRC,YAAWA,GAEbE,cAAc,QACdC,eAAe,QACfC,KAAK,OACLt1D,OAAO,kBAGb,EAsBEtb,GAACgpC,QAAAA,WAAWuC,aApBY,SAACvrC,OACzBi8C,EAAcj8C,EAAAuwE,MAAdA,OAAK,IAAAt0B,EAAG,OAAMA,EACdt3C,EAAA3E,EAAAwwE,YAAAA,OAAc,IAAA7rE,EAAA,EAACA,EAEf,OACEywD,EACE33E,IAAA,WAAA,CAAA2nC,MAAO,CACLqrD,OAAQF,EACRK,KAAML,EACNC,YAAWA,GAEbE,cAAc,QACdC,eAAe,QACfr1D,OAAO,wBAGb,MC9BgB,SAAAu1D,GACdC,EACA3wD,GAEA,IAAK2wD,EACH,MAAO,GAGT,GAAsB,iBAAXA,EACT,OAAOA,EAGT,IAAMC,EAAW5wD,EAAK,GAAGjU,OAAAiU,EAAM,MAAG,GAElC,MAAO,GAAAjU,OAAG6kE,GAAW7kE,OAAApwB,OAAOmO,KAAK6mF,GAC9Bh7D,OACArrB,KAAI,SAACpO,GAAQ,MAAA,GAAG6vB,OAAA7vB,EAAO,KAAA6vB,OAAA4kE,EAAOz0F,GAA0B,IACxDoC,KAAK,KACV,CCbA,IAAMuyF,GAAS,SAAChxE,GACd,IAAAmgB,OACA/iC,EAAI4iB,EAAA5iB,KACJmzF,EAAKvwE,EAAAuwE,MACLt0B,EAAYj8C,EAAA8Z,MAAZA,OAAQ,IAAAmiC,EAAA,KAAIA,EACZt3C,WAAAoV,OAAS,IAAApV,EAAA,OACTmd,EAAA9hB,EAAAixE,YAAAA,aAAc,cAAanvD,EAC3B0uD,gBACAvhF,EAAA+Q,EAAAkxE,OAAAA,OAAM,IAAAjiF,EAAG,qBAAoBA,EAEvBvT,EFsBF,SAA0B0B,GAC9B,IAAM8tE,EAAQG,KAER8lB,EAASlxF,EAAAA,SAAQ,mBAMrB,OALqBnE,OAAOC,UAAUC,eAAeiB,KACnDqzF,GACAlzF,GASKkzF,GAAclzF,IALQ,QAA3B6+D,KAAAiP,EAAM/pE,YAAWkmD,eAAU,IAAA4U,GAAAA,EAAAh/D,KAAA+iB,EAAA,MAAOgrD,GAAwB,SAAE5tE,IAErD,KAIX,GAAG,CAACA,IAEJ,OAAO+zF,CACT,CEzCiBC,CAAgBh0F,GAE/B,OAAK1B,EAKH05E,EAAAA,IACE,SAAA,CAAAC,UAAU,sBACVl1C,GAAIA,EACJkxD,YAAa,UAAGv3D,GAChBw3D,aAAc,GAAAplE,OAAG6N,GACjBsrC,QAAQ,gBACR4rB,YAAaA,EACbC,OAAQA,EACRK,KAAK,IACLC,KAAK,IAAG1mE,SAERsqD,EAAAA,IAAC15E,EAAM,CAAC60F,MAAOA,EAAOC,YAAaA,MAf9B,IAkBX,EAKMiB,GAAoB,SAACzxE,OAAE0xE,EAAY1xE,EAAA0xE,aAAE1I,EAAIhpE,EAAAgpE,KACvCr9D,EAAQs/C,IAAS,SAACtoE,GAAM,OAAAA,EAAEgpB,KAAF,IACxBu+D,EAAqBjf,IAAS,SAACtoE,GAAM,OAAAA,EAAEunF,kBAAF,IAErCyH,EAAU1xF,EAAAA,SAAQ,WACtB,IAAM0xF,ED1BM,SACdhmE,EACA3L,OACEmgB,EAAEngB,EAAAmgB,GACFuxD,EAAY1xE,EAAA0xE,aACZE,EAAkB5xE,EAAA4xE,mBAClBC,EAAgB7xE,EAAA6xE,iBAQZC,EAAM,IAAIpxF,IAEhB,OAAOirB,EACJvD,QAAsB,SAACupE,EAASnmE,GAkB/B,MAjBA,CACEA,EAAKumE,aAAeH,EACpBpmE,EAAKwmE,WAAaH,GAClB5wF,SAAQ,SAAC6vF,GACT,GAAIA,GAA4B,iBAAXA,EAAqB,CACxC,IAAMmB,EAAWpB,GAAYC,EAAQ3wD,GAChC2xD,EAAIzoF,IAAI4oF,KACXN,EAAQxzF,KAAI2tE,EAAA,CACV3rC,GAAI8xD,EACJ1B,MAAOO,EAAOP,OAASmB,GACpBZ,IAELgB,EAAItwF,IAAIywF,GAEX,CACH,IAEON,CACR,GAAE,IACF77D,MAAK,SAACn5B,EAAGE,GAAM,OAAAF,EAAEwjC,GAAG+xD,cAAcr1F,EAAEsjC,GAAG,GAC5C,CCZoBgyD,CAAgBxmE,EAAO,CACrCwU,GAAI6oD,EACJ0I,aAAYA,EACZE,mBAAoB1H,aAAA,EAAAA,EAAoB6H,YACxCF,iBAAkB3H,aAAA,EAAAA,EAAoB8H,YAGxC,OAAOL,CACR,GAAE,CAAChmE,EAAOu+D,EAAoBlB,EAAM0I,IAErC,OAAKC,EAAQ3zF,OAKXo3E,MAAK,MAAA,CAAAC,UAAU,4BACbD,EAAAA,IACG,OAAA,CAAAtqD,SAAA6mE,EAAQlnF,KAAI,SAACqmF,GAAwB,OACpC1b,MAAC4b,GACC,CAAA7wD,GAAI2wD,EAAO3wD,GAEX/iC,KAAM0zF,EAAO1zF,KACbmzF,MAAOO,EAAOP,MACdz2D,MAAOg3D,EAAOh3D,MACdC,OAAQ+2D,EAAO/2D,OACfk3D,YAAaH,EAAOG,YACpBT,YAAaM,EAAON,YACpBU,OAAQJ,EAAOI,QAPVJ,EAAO3wD,GAHsB,QANnC,IAsBX,EAEAsxD,GAAkBvS,YAAc,oBAEhC,IAAeE,GAAAA,EAAAA,KAAKqS,ICrFpB,SAASW,GAAkBpyE,GACzB,IAAAnd,EAACmd,EAAAnd,EACDD,EAACod,EAAApd,EACDuiC,EAAKnlB,EAAAmlB,MACL82B,EAAej8C,EAAAqyE,WAAfA,OAAU,IAAAp2B,EAAG,CAAA,EAAEA,EACft3C,EAAkB3E,EAAAsyE,YAAlBA,OAAW,IAAA3tE,GAAOA,EAClBmd,EAAA9hB,EAAAuyE,aAAAA,OAAe,IAAAzwD,EAAA,KACf7yB,EAAA+Q,EAAAwyE,eAAAA,OAAiB,IAAAvjF,EAAA,CAAC,EAAG,GAAEA,EACvB+e,EAAuBhO,EAAAyyE,oBAAvBA,OAAmB,IAAAzkE,EAAG,EAACA,EACvBlD,EAAQ9K,EAAA8K,SACRuqD,EAASr1D,EAAAq1D,UACNgU,EAXsBC,EAAAtpE,EAAA,CAAA,IAAA,IAAA,QAAA,aAAA,cAAA,eAAA,iBAAA,sBAAA,WAAA,cAanBs4B,EAAAszB,EAAkC7sE,WAAe,CACrD8D,EAAG,EACHD,EAAG,EACHk3B,MAAO,EACPC,OAAQ,OAJH24D,OAAcC,OAMfC,EAAkB5vE,EAAG,CAAC,6BAA8BqyD,IAEpDwd,EAAsB5S,eAAY,SAAC6S,GACvC,GAAgB,OAAZA,EAAJ,CAEA,IAAMC,EAAWD,EAAQE,UAEzBL,EAAgB,CACd9vF,EAAGkwF,EAASlwF,EACZD,EAAGmwF,EAASnwF,EACZk3B,MAAOi5D,EAASj5D,MAChBC,OAAQg5D,EAASh5D,QARU,CAU9B,GAAE,IAEH,YAAqB,IAAVoL,GAA0BA,EAKnCw3C,EAAAj/E,KAAA,IAAAouE,EAAA,CACEzjD,UAAW,aAAa6D,OAAArpB,EAAI6vF,EAAa54D,MAAQ,cAC/Cl3B,EAAI8vF,EAAa34D,OAAS,EAAC,KAE7Bs7C,UAAWud,EACXtD,WAAYoD,EAAa54D,MAAQ,UAAY,UACzCuvD,EAEH,CAAAv+D,SAAA,CAAAwnE,GACCld,EACE33E,IAAA,OAAA,CAAAq8B,MAAO44D,EAAa54D,MAAQ,EAAI04D,EAAe,GAC/C3vF,GAAI2vF,EAAe,GACnB5vF,GAAI4vF,EAAe,GACnBz4D,OAAQ24D,EAAa34D,OAAS,EAAIy4D,EAAe,GACjDnd,UAAU,wBACVjwC,MAAOmtD,EACP5yB,GAAI8yB,EACJ92C,GAAI82C,IAGRrd,EAAAA,IAAA,OAAA,CACEC,UAAU,sBACVzyE,EAAG8vF,EAAa34D,OAAS,EACzB4iB,GAAG,QACHrgD,IAAKu2F,EACLztD,MAAOitD,EAENvnE,SAAAqa,IAEFra,MAjCI,IAoCX,CAEAsnE,GAAkBlT,YAAc,WAEzB,IAAM+T,GAAW7T,EAAIA,KAACgT,IC1EvB,SAAUc,GAASlzE,OACvBmgB,EAAEngB,EAAAmgB,GACFqD,EAAIxjB,EAAAwjB,KACJ8kD,EAAMtoE,EAAAsoE,OACNC,EAAMvoE,EAAAuoE,OACNpjD,EAAKnlB,EAAAmlB,MACLktD,EAAUryE,EAAAqyE,WACVC,EAAWtyE,EAAAsyE,YACXC,EAAYvyE,EAAAuyE,aACZC,EAAcxyE,EAAAwyE,eACdC,EAAmBzyE,EAAAyyE,oBACnBrtD,EAAKplB,EAAAolB,MACL4sD,EAAShyE,EAAAgyE,UACTD,EAAW/xE,EAAA+xE,YACX1c,EAASr1D,EAAAq1D,UACTpZ,qBAAAk3B,OAAmB,IAAAl3B,EAAA,GAAEA,EAErB,OACE0gB,EAAAA,KACEiP,EAAAA,SAAA,CAAA9gE,SAAA,CAAAsqD,EAAAA,IAAA,OAAA,CACEj1C,GAAIA,EACJiF,MAAOA,EACPtoC,EAAG0mC,EACHotD,KAAK,OACLvb,UAAWryD,EAAG,CAAC,sBAAuBqyD,IACtC2c,UAAWA,EACXD,YAAaA,IAEdoB,GACC/d,EAAAA,IAAA,OAAA,CACEt4E,EAAG0mC,EACHotD,KAAK,OACLwC,cAAe,EACf5C,YAAa2C,EACb9d,UAAU,+BAGblwC,GAAS4mC,GAAUuc,IAAWvc,GAAUwc,GACvCnT,EAAAA,IAAC6d,GACC,CAAApwF,EAAGylF,EACH1lF,EAAG2lF,EACHpjD,MAAOA,EACPktD,WAAYA,EACZC,YAAaA,EACbC,aAAcA,EACdC,eAAgBA,EAChBC,oBAAqBA,IAErB,OAGV,CCjCA,SAASY,GAAWrzE,GAClB,IAAA2f,EAAG3f,EAAA2f,IACHqqB,EAAEhqC,EAAAgqC,GACFC,EAAEjqC,EAAAiqC,GACFtD,EAAE3mC,EAAA2mC,GACFC,EAAE5mC,EAAA4mC,GAEF,OAAIjnB,IAAQwqB,QAAAA,SAASD,MAAQvqB,IAAQwqB,QAAAA,SAASC,MACrC,CAAC,IAAOJ,EAAKrD,GAAKsD,GAGpB,CAACD,EAAI,IAAOC,EAAKrD,GAC1B,CAkDA,SAAS0sC,GAAuB1b,GAE9B,OAAOwH,EAAAA,MACL,SAACp/D,GACC,IAAAmgB,EAAEngB,EAAAmgB,GACFkpB,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACPC,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACPyS,EAAgCj8C,EAAAsmE,eAAhCA,OAAc,IAAArqB,EAAG9R,QAAAA,SAASG,OAAM2R,EAChCt3C,EAAA3E,EAAAwmE,eAAAA,OAAiB,IAAA7hE,EAAAwlC,QAAAA,SAASE,IAAG1lC,EAC7BwgB,EAAKnlB,EAAAmlB,MACLktD,EAAUryE,EAAAqyE,WACVC,EAAWtyE,EAAAsyE,YACXC,EAAYvyE,EAAAuyE,aACZC,EAAcxyE,EAAAwyE,eACdC,EAAmBzyE,EAAAyyE,oBACnBrtD,EAAKplB,EAAAolB,MACL4sD,EAAShyE,EAAAgyE,UACTD,EAAW/xE,EAAA+xE,YACXoB,EAAgBnzE,EAAAmzE,iBAEVrxD,EAAA8pC,EAtEN,SAA8B5rD,OAClCqpC,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACP2S,EAAgCj8C,EAAAsmE,eAAhCA,OAAc,IAAArqB,EAAG9R,QAAQA,SAACG,OAAM2R,EAChC1S,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACP7kC,EAAA3E,EAAAwmE,eAAAA,OAAiB,IAAA7hE,EAAAwlC,QAAQA,SAACE,IAAG1lC,EAQvBmd,EAAA8pC,EAAmCynB,GAAW,CAClD1zD,IAAK2mD,EACLt8B,GAAIX,EACJY,GAAIX,EACJ3C,GAAI4C,EACJ3C,GAAI4C,OALCC,OAAgBC,OAOjBz6C,EAAA28D,EAAmCynB,GAAW,CAClD1zD,IAAK6mD,EACLx8B,GAAIT,EACJU,GAAIT,EACJ7C,GAAI0C,EACJzC,GAAI0C,OALCK,OAAgBC,OAOjB57B,EAAA49C,EAAqCka,GAAoB,CAC7Dz8B,QAAOA,EACPC,QAAOA,EACPC,QAAOA,EACPC,QAAOA,EACPC,eAAcA,EACdC,eAAcA,EACdC,eAAcA,EACdC,eAAcA,IACd,GATK0+B,EAAMt6D,EAAA,GAAEu6D,EAAMv6D,EAAA,GAAEu+C,EAAOv+C,EAAA,GAAEw+C,OAWhC,MAAO,CACL,IAAAtgD,OAAIm9B,EAAO,KAAAn9B,OAAIo9B,EAAO,MAAAp9B,OAAKu9B,EAAkB,KAAAv9B,OAAAw9B,EAAkB,KAAAx9B,OAAAy9B,cAAkBC,EAAc,KAAA19B,OAAIq9B,EAAO,KAAAr9B,OAAIs9B,GAC9G8+B,EACAC,EACAhc,EACAC,EAEJ,CAwBqC+mB,CAAoB,CACjDlqC,QAAOA,EACPC,QAAOA,EACPg9B,eAAcA,EACd/8B,QAAOA,EACPC,QAAOA,EACPg9B,eAAcA,IACd,GAPKhjD,EAAI1B,EAAA,GAAEwmD,EAAMxmD,EAAA,GAAEymD,EAAMzmD,EAAA,GASrBkgC,EAAM4V,EAAO4b,gBAAanjB,EAAYlwC,EAE5C,OACEi1C,EAAAA,IAAC8d,GAAQ,CACP/yD,GAAI6hC,EACJx+B,KAAMA,EACN8kD,OAAQA,EACRC,OAAQA,EACRpjD,MAAOA,EACPktD,WAAYA,EACZC,YAAaA,EACbC,aAAcA,EACdC,eAAgBA,EAChBC,oBAAqBA,EACrBrtD,MAAOA,EACP4sD,UAAWA,EACXD,YAAaA,EACboB,iBAAkBA,GAGxB,GAEJ,CAEA,IAAMM,GAAmBH,GAAuB,CAAEE,YAAY,IACxDE,GAA2BJ,GAAuB,CAAEE,YAAY,ICvItE,SAASG,GAAqB/b,GAE5B,OAAOwH,EAAAA,MACL,SAACp/D,GACC,IAAAmgB,EAAEngB,EAAAmgB,GACFkpB,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACPC,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACPrkB,EAAKnlB,EAAAmlB,MACLktD,EAAUryE,EAAAqyE,WACVC,EAAWtyE,EAAAsyE,YACXC,EAAYvyE,EAAAuyE,aACZC,EAAcxyE,EAAAwyE,eACdC,EAAmBzyE,EAAAyyE,oBACnBrtD,EAAKplB,EAAAolB,MACL62B,EAAgCj8C,EAAAsmE,eAAhCA,OAAc,IAAArqB,EAAG9R,QAAQA,SAACG,OAAM2R,EAChCt3C,EAAA3E,EAAAwmE,eAAAA,OAAc,IAAA7hE,EAAGwlC,QAAQA,SAACE,IAAG1lC,EAC7BqtE,EAAShyE,EAAAgyE,UACTD,EAAW/xE,EAAA+xE,YACX6B,EAAW5zE,EAAA4zE,YACXT,EAAgBnzE,EAAAmzE,iBAEVrxD,EAAA8pC,EAAyB2a,GAAkB,CAC/Cl9B,QAAOA,EACPC,QAAOA,EACPg9B,eAAcA,EACd/8B,QAAOA,EACPC,QAAOA,EACPg9B,eAAcA,EACdC,aAAcmN,aAAA,EAAAA,EAAanN,aAC3BE,OAAQiN,aAAA,EAAAA,EAAajN,SACrB,GATKnjD,EAAI1B,EAAA,GAAEwmD,EAAMxmD,EAAA,GAAEymD,EAAMzmD,EAAA,GAWrBkgC,EAAM4V,EAAO4b,gBAAanjB,EAAYlwC,EAE5C,OACEi1C,EAAAA,IAAC8d,GAAQ,CACP/yD,GAAI6hC,EACJx+B,KAAMA,EACN8kD,OAAQA,EACRC,OAAQA,EACRpjD,MAAOA,EACPktD,WAAYA,EACZC,YAAaA,EACbC,aAAcA,EACdC,eAAgBA,EAChBC,oBAAqBA,EACrBrtD,MAAOA,EACP4sD,UAAWA,EACXD,YAAaA,EACboB,iBAAkBA,GAGxB,GAEJ,CDiFAM,GAAiBvU,YAAc,mBAC/BwU,GAAyBxU,YAAc,2BChFvC,IAAM2U,GAAiBF,GAAqB,CAAEH,YAAY,IACpDM,GAAyBH,GAAqB,CAAEH,YAAY,IC7DlE,SAASO,GAAenc,GAEtB,OAAOwH,EAAAA,MAAK,SAACp/D,SAAEmgB,EAAEngB,EAAAmgB,GAAK9iC,EAAKisF,EAAAtpE,EAAd,QACLgiD,EAAM4V,EAAO4b,gBAAanjB,EAAYlwC,EAE5C,OACEi1C,MAACye,GAAc/nB,EAAA,CAAA,EACTzuE,EACJ,CAAA8iC,GAAI6hC,EACJ4xB,YAAa3zF,EAAOA,SAClB,WAAM,IAAA+f,EAAA,MAAC,CAAEymE,aAAc,EAAGE,OAAyB,QAAjB3mE,EAAA3iB,EAAMu2F,mBAAW,IAAA5zE,OAAA,EAAAA,EAAE2mE,OAAS,GAC9D,CAAkB,QAAjB1qB,EAAA5+D,EAAMu2F,mBAAW,IAAA33B,OAAA,EAAAA,EAAE0qB,WAI5B,GACF,CD+CAkN,GAAe3U,YAAc,iBAC7B4U,GAAuB5U,YAAc,yBC9CrC,IAAM8U,GAAWD,GAAe,CAAEP,YAAY,IACxCS,GAAmBF,GAAe,CAAEP,YAAY,IClBtD,SAASU,GAAmBtc,GAE1B,OAAOwH,EAAAA,MACL,SAACp/D,GACC,IAAAmgB,OACAkpB,YACAC,YACAC,YACAC,YACArkB,UACAktD,eACAC,EAAWtyE,EAAAsyE,YACXC,EAAYvyE,EAAAuyE,aACZC,EAAcxyE,EAAAwyE,eACdC,EAAmBzyE,EAAAyyE,oBACnBrtD,EAAKplB,EAAAolB,MACL4sD,EAAShyE,EAAAgyE,UACTD,EAAW/xE,EAAA+xE,YACXoB,EAAgBnzE,EAAAmzE,iBAEVl3B,EAAA2P,ECGN,SAA0B5rD,OAC9BqpC,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACPC,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QAEDyS,EAAA2P,EAAqCsa,GAAc,CACvD78B,QAAOA,EACPC,QAAOA,EACPC,QAAOA,EACPC,QAAOA,IACP,GALK8+B,EAAMrsB,EAAA,GAAEssB,EAAMtsB,EAAA,GAAEsQ,EAAOtQ,EAAA,GAAEuQ,OAOhC,MAAO,CAAC,KAAKtgD,OAAAm9B,cAAWC,EAAO,MAAAp9B,OAAKq9B,EAAW,KAAAr9B,OAAAs9B,GAAW8+B,EAAQC,EAAQhc,EAASC,EACrF,CDjBqC2nB,CAAgB,CAC7C9qC,QAAOA,EACPC,QAAOA,EACPC,QAAOA,EACPC,QAAOA,IACP,GALKhmB,EAAIy4B,EAAA,GAAEqsB,EAAMrsB,EAAA,GAAEssB,EAAMtsB,EAAA,GAOrB+F,EAAM4V,EAAO4b,gBAAanjB,EAAYlwC,EAE5C,OACEi1C,EAAAA,IAAC8d,GAAQ,CACP/yD,GAAI6hC,EACJx+B,KAAMA,EACN8kD,OAAQA,EACRC,OAAQA,EACRpjD,MAAOA,EACPktD,WAAYA,EACZC,YAAaA,EACbC,aAAcA,EACdC,eAAgBA,EAChBC,oBAAqBA,EACrBrtD,MAAOA,EACP4sD,UAAWA,EACXD,YAAaA,EACboB,iBAAkBA,GAGxB,GAEJ,CD7BAa,GAAS9U,YAAc,WACvB+U,GAAiB/U,YAAc,mBC8B/B,IAAMkV,GAAeF,GAAmB,CAAEV,YAAY,IAChDa,GAAuBH,GAAmB,CAAEV,YAAY,IEnD9D,SAASc,GAAiB1c,GAExB,OAAOwH,EAAAA,MACL,SAACp/D,GACC,IAAAmgB,EAAEngB,EAAAmgB,GACFkpB,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACPC,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACPyS,EAAgCj8C,EAAAsmE,eAAhCA,OAAc,IAAArqB,EAAG9R,QAAQA,SAACG,OAAM2R,EAChCt3C,EAAA3E,EAAAwmE,eAAAA,OAAiB,IAAA7hE,EAAAwlC,QAAAA,SAASE,IAAG1lC,EAC7BwgB,EAAKnlB,EAAAmlB,MACLktD,EAAUryE,EAAAqyE,WACVC,EAAWtyE,EAAAsyE,YACXC,EAAYvyE,EAAAuyE,aACZC,mBACAC,EAAmBzyE,EAAAyyE,oBACnBrtD,EAAKplB,EAAAolB,MACL4sD,EAAShyE,EAAAgyE,UACTD,EAAW/xE,EAAA+xE,YACX6B,EAAW5zE,EAAA4zE,YACXT,EAAgBnzE,EAAAmzE,iBAEVrxD,EAAA8pC,EzB+EN,SAAwB5rD,GAC5B,IAAAqpC,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACP2S,EAAgCj8C,EAAAsmE,eAAhCA,OAAc,IAAArqB,EAAG9R,QAAQA,SAACG,OAAM2R,EAChC1S,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACP7kC,EAAA3E,EAAAwmE,eAAAA,aAAiBr8B,iBAASE,IAAG1lC,EAC7Bmd,EAAgB9hB,EAAAgmE,UAAhBA,OAAS,IAAAlkD,EAAG,IAAIA,EAQV7yB,EAAA28D,EAAmCqa,GAAwB,CAC/DtmD,IAAK2mD,EACLt8B,GAAIX,EACJY,GAAIX,EACJ3C,GAAI4C,EACJ3C,GAAI4C,EACJ9sD,EAAGspF,OANEv8B,OAAgBC,OAQjB17B,EAAA49C,EAAmCqa,GAAwB,CAC/DtmD,IAAK6mD,EACLx8B,GAAIT,EACJU,GAAIT,EACJ7C,GAAI0C,EACJzC,GAAI0C,EACJ5sD,EAAGspF,OANEr8B,OAAgBC,OAQjBtR,EAAAszB,EAAqCka,GAAoB,CAC7Dz8B,QAAOA,EACPC,QAAOA,EACPC,QAAOA,EACPC,QAAOA,EACPC,eAAcA,EACdC,eAAcA,EACdC,eAAcA,EACdC,eAAcA,IACd,GATK0+B,EAAMhwC,EAAA,GAAEiwC,EAAMjwC,EAAA,GAAEi0B,EAAOj0B,EAAA,GAAEk0B,OAWhC,MAAO,CACL,IAAAtgD,OAAIm9B,EAAO,KAAAn9B,OAAIo9B,EAAO,MAAAp9B,OAAKu9B,EAAkB,KAAAv9B,OAAAw9B,EAAkB,KAAAx9B,OAAAy9B,cAAkBC,EAAc,KAAA19B,OAAIq9B,EAAO,KAAAr9B,OAAIs9B,GAC9G8+B,EACAC,EACAhc,EACAC,EAEJ,CyBhIqC+nB,CAAc,CAC3ClrC,QAAOA,EACPC,QAAOA,EACPg9B,eAAcA,EACd/8B,QAAOA,EACPC,QAAOA,EACPg9B,eAAcA,EACdR,UAAW4N,aAAA,EAAAA,EAAa5N,YACxB,GARKxiD,EAAI1B,EAAA,GAAEwmD,EAAMxmD,EAAA,GAAEymD,EAAMzmD,EAAA,GAUrBkgC,EAAM4V,EAAO4b,gBAAanjB,EAAYlwC,EAE5C,OACEi1C,EAAAA,IAAC8d,GAAQ,CACP/yD,GAAI6hC,EACJx+B,KAAMA,EACN8kD,OAAQA,EACRC,OAAQA,EACRpjD,MAAOA,EACPktD,WAAYA,EACZC,YAAaA,EACbC,aAAcA,EACdC,eAAgBA,EAChBC,oBAAqBA,EACrBrtD,MAAOA,EACP4sD,UAAWA,EACXD,YAAaA,EACboB,iBAAkBA,GAGxB,GAEJ,CFFAiB,GAAalV,YAAc,eAC3BmV,GAAqBnV,YAAc,uBEGnC,IAAMsV,GAAaF,GAAiB,CAAEd,YAAY,IAC5CiB,GAAqBH,GAAiB,CAAEd,YAAY,IAE1DgB,GAAWtV,YAAc,aACzBuV,GAAmBvV,YAAc,qBC3D1B,IAAMwV,GAA8B,CACzC/1F,QAAS81F,GACTE,SAAUN,GACVO,KAAMX,GACNY,WAAYf,GACZgB,aAAcpB,IAGHqB,GAAe,CAC1B1rC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,QAAS,KACT88B,eAAgB,KAChBE,eAAgB,MCnBZwO,GAAS,SAACnyF,EAAWkwC,EAAewT,GACxC,OAAIA,IAAa4D,QAAAA,SAASD,KAAarnD,EAAIkwC,EACvCwT,IAAa4D,QAAAA,SAASC,MAAcvnD,EAAIkwC,EACrClwC,CACT,EAEMoyF,GAAS,SAACryF,EAAWmwC,EAAewT,GACxC,OAAIA,IAAa4D,QAAAA,SAASE,IAAYznD,EAAImwC,EACtCwT,IAAa4D,QAAAA,SAASG,OAAe1nD,EAAImwC,EACtCnwC,CACT,EAaMsyF,GAAuB,wBAEvB,SAAUC,GAAWn1E,OACzBumC,EAAQvmC,EAAAumC,SACRm7B,EAAO1hE,EAAA0hE,QACPC,EAAO3hE,EAAA2hE,QACP1lB,EAAWj8C,EAAAo1E,OAAXA,OAAM,IAAAn5B,EAAG,GAAEA,EACX6gB,EAAW98D,EAAA88D,YACXD,EAAY78D,EAAA68D,aACZwY,EAAUr1E,EAAAq1E,WACVj4F,EAAI4iB,EAAA5iB,KAEJ,OACEg4E,EAAA33E,IAAA,SAAA,CACEq/E,YAAaA,EACbD,aAAcA,EACdwY,WAAYA,EACZhgB,UAAWryD,EAAG,CAACkyE,GAAsB,GAAGhpE,OAAAgpE,GAAwB,KAAAhpE,OAAA9uB,KAChE6iE,GAAI+0B,GAAOtT,EAAS0T,EAAQ7uC,GAC5BpK,GAAI84C,GAAOtT,EAASyT,EAAQ7uC,GAC5BpnD,EAAGi2F,EACH3E,OAAO,cACPG,KAAK,eAGX,CCjCM,SAAU0E,GAAgDt1E,OAC9Du1E,EAAWv1E,EAAAu1E,YACXC,EAAiBx1E,EAAAw1E,kBACjBhqE,EAAIxL,EAAAwL,KACJiqE,EAAcz1E,EAAAy1E,eACdC,EAAc11E,EAAA01E,eACdrsC,EAAOrpC,EAAAqpC,QACPC,EAAOtpC,EAAAspC,QACPC,EAAOvpC,EAAAupC,QACPC,EAAOxpC,EAAAwpC,QACP88B,EAActmE,EAAAsmE,eACdE,EAAcxmE,EAAAwmE,eACdmP,EAAY31E,EAAA21E,aACZC,EAAiB51E,EAAA41E,kBACjBzlC,EAAenwC,EAAAmwC,gBACf0lC,EAAW71E,EAAA61E,YACXC,EAAc91E,EAAA81E,eAER5qB,EAAQG,KAER0qB,EAAoB,SACxBtuB,EACAuuB,GAGA,GAAqB,IAAjBvuB,EAAMjjB,OAAV,CAIM,IAAAxkC,EAcFkrD,EAAM/pE,WAbR2uD,qBACAjD,YACAqC,sBACAP,mBACAgB,qBACAX,QACAgB,mBACAE,iBACAH,qBACA5I,eACM8H,SACN/B,UACAkD,qBAEInJ,EAAS+uC,EAAiBxqE,EAAKy4B,OAASz4B,EAAKrI,OAC7CqsC,GAAYwmC,EAAiBP,EAAiBC,IAAmB,KACjEjlC,EAAaulC,EAAiB,SAAW,SAEzCnmC,EAAWmmC,EAEjBH,GAAY,GACZD,SAAAA,EAAoBnuB,EAAOj8C,EAAMilC,GAUjCg6B,GAAS/6B,cAAc+X,EAAMwV,YAAa,CACxCntB,iBAAgBA,EAChBnB,eAAcA,EACdgB,iBAAgBA,EAChB9C,QAAOA,EACP2C,SAAQA,EACRvI,OAAMA,EACNE,WAAUA,EACV0I,SAAQA,EACRD,gBAAiBa,EACjBzB,IAAGA,EACHC,OAAMA,EACNc,iBAAgBA,EAChB7C,MAAKA,EACLgC,kBAAiBA,EACjBe,UAlBoB,SAACX,GACrB,OAAAqmC,aAAY,EAAZA,EAAenqE,EAAM8jC,EAArB,EAkBAU,eAAcA,EACdE,aAAYA,EACZC,gBA1BuB,SAAC8lC,GACxBJ,GAAY,GACZ1lC,SAAAA,EAAkB8lC,EAAKzqE,EAAMilC,EAC/B,EAwBEL,iBAAgBA,EAChBC,aAAc,WAAM,OAAA6a,EAAM/pE,WAAWknB,SAAS,EAC9CioC,yBAA0B,WAAM,OAAA4a,EAAM/pE,WAAW0vD,qBAAqB,GAvDvE,CAyDH,EAQMqlC,EAA0B,WAAM,OAAAJ,GAAe,EAAf,EAChCK,EAAwB,WAAM,OAAAL,GAAe,EAAf,EAEpC,OACEnZ,8BACoB,WAAhB4Y,IAA4C,IAAhBA,IAC5BngB,EAAAA,IAAC+f,GAAU,CACT5uC,SAAU+/B,EACV5E,QAASr4B,EACTs4B,QAASr4B,EACT8rC,OAAQI,EACR1Y,YAjB6B,SACnCrV,GACS,OAAAsuB,EAAkBtuB,GAAO,IAgB5BoV,aAAcqZ,EACdb,WAAYc,EACZ/4F,KAAK,YAGS,WAAhBm4F,IAA4C,IAAhBA,IAC5BngB,EAAAA,IAAC+f,GACC,CAAA5uC,SAAUigC,EACV9E,QAASn4B,EACTo4B,QAASn4B,EACT4rC,OAAQI,EACR1Y,YA1B6B,SACnCrV,GACS,OAAAsuB,EAAkBtuB,GAAO,IAyB5BoV,aAAcqZ,EACdb,WAAYc,EACZ/4F,KAAK,aAKf,CCxHA,SAASg5F,GAAkB3rE,SACzB,OACEA,MACGA,EAAK47B,UAAUqK,gBAA8B,QAAd1wC,EAAAyK,EAAKinD,eAAS,IAAA1xD,OAAA,EAAAA,EAAAhiB,aAC7CysB,EAAKw7B,SAASnsB,OAASrP,EAAKqP,OAASrP,EAAKy7B,aAEjD,CAkEA,SAASmwC,GAAe3kB,eACtB,IAAKA,EACH,OAAO,KAGT,IAAMvuD,EAAS,GACT8gC,EAAS,OAEf,IAAqB,IAAAqyC,EAAA5qB,EAAAgG,GAAO6kB,EAAAD,EAAA3sD,0BAAE,CAAzB,IAAM+kB,EAAM6nC,EAAAl3F,MACfqvD,EAAO50B,MAAwB,QAAhBmiC,EAAAvN,EAAO50B,aAAS,IAAAmiC,EAAAA,EAAA,EAC/BvN,EAAO30B,OAA0B,QAAjBpV,EAAA+pC,EAAO30B,cAAU,IAAApV,EAAAA,EAAA,EAEb,WAAhB+pC,EAAOtxD,KACT+lB,EAAOhlB,KAAKuwD,GACa,WAAhBA,EAAOtxD,MAChB6mD,EAAO9lD,KAAKuwD,EAEf,mGAED,MAAO,CACLvrC,OAAMA,EACN8gC,OAAMA,EAEV,CAEA,SAASuyC,GACPjwC,EACA97B,EACAikC,gBAAA,IAAAA,IAAAA,EAAmC,MAEnC,IAAM7rD,WAAKmd,EAAA0uC,aAAA,EAAAA,EAAQ7rD,iBAAK,GAAK4nB,EAAK47B,UAAUC,iBAAiBzjD,EACvDD,WAAKq5D,EAAAvN,aAAA,EAAAA,EAAQ9rD,iBAAK,GAAK6nB,EAAK47B,UAAUC,iBAAiB1jD,EACvD+hB,EAAoB+pC,QAAAA,EAAU4d,GAAkB7hD,GAA9CqP,UAAOC,WAEf,OAAQwsB,GACN,KAAK4D,QAAQA,SAACE,IACZ,MAAO,CAACxnD,EAAIi3B,EAAQ,EAAGl3B,GACzB,KAAKunD,QAAQA,SAACC,MACZ,MAAO,CAACvnD,EAAIi3B,EAAOl3B,EAAIm3B,EAAS,GAClC,KAAKowB,QAAQA,SAACG,OACZ,MAAO,CAACznD,EAAIi3B,EAAQ,EAAGl3B,EAAIm3B,GAC7B,KAAKowB,QAAQA,SAACD,KACZ,MAAO,CAACrnD,EAAGD,EAAIm3B,EAAS,GAE9B,CAEA,SAAS08D,GACP1mB,EACAvgB,GAEA,OAAKugB,IAMDvgB,EAAuBugB,EAAO55C,MAAK,SAACr5B,GAAM,OAAAA,EAAEqjC,KAAOqvB,CAAQ,IAAhDugB,EAAO,KALb,IAOX,CCpIM,SAAU2mB,GAA0C12E,OACxDmgB,EAAEngB,EAAAmgB,GACFw2D,EAAc32E,EAAA22E,eACdC,EAAc52E,EAAA42E,eACdtb,EAAkBt7D,EAAAs7D,mBAClBgB,YACA+P,EAAarsE,EAAAqsE,cACbzP,EAAa58D,EAAA48D,cACbC,EAAY78D,EAAA68D,aACZM,EAAWn9D,EAAAm9D,YACXe,iBACAsX,EAAiBx1E,EAAAw1E,kBACjBG,EAAY31E,EAAA21E,aACZC,EAAiB51E,EAAA41E,kBACjBzlC,EAAenwC,EAAAmwC,gBACf64B,EAAIhpE,EAAAgpE,KACJ6N,EAAS72E,EAAA62E,UACT5tB,EAAcjpD,EAAAipD,eACd5hB,EAAOrnC,EAAAqnC,QACPu3B,EAAmB5+D,EAAA4+D,oBAEfpzD,EAAOy/C,IAAS,SAACtoE,GAAM,OAAAA,EAAEgqE,WAAWvjE,IAAI+2B,EAAI,IAC1C+pD,EAAqBjf,IAAS,SAACtoE,GAAM,OAAAA,EAAEunF,kBAAF,IAGvC4M,GAFJtrE,EAAO0+D,EAA0Bpe,EAAAA,EAAA,CAAA,EAAAoe,GAAuB1+D,GAASA,GAE7CpuB,MAAQ,UACxB25F,GAAgBF,aAAA,EAAAA,EAAYC,KAAapC,GAAiBoC,QAExCzmB,IAAlB0mB,IACF1vC,SAAAA,EAAU,MAAO2jB,GAAwB,SAAE8rB,IAC3CA,EAAW,UACXC,EAAgBrC,GAAiB/1F,SAGnC,IAAMkuF,KACJrhE,EAAKshE,WACJ6J,QAA4C,IAAnBnrE,EAAKshE,WAE3ByI,OACoB,IAAjBI,IACNnqE,EAAKwrE,WACHJ,QAA4C,IAAnBprE,EAAKwrE,WAC7BlqC,KACJthC,EAAKktD,YACJ4C,QAAiD,IAApB9vD,EAAKktD,YAG/Boa,EAAU/yF,SAAoB,MAC9Bk8D,EAAA2P,EAAgC7sE,EAAQA,UAAU,GAAM,GAAvDk4F,EAAWh7B,EAAA,GAAE65B,OACdnxE,EAAAinD,EAA0B7sE,EAAQA,UAAU,GAAM,GAAjDm4F,EAAQvyE,EAAA,GAAEkxE,OACX3qB,EAAQG,KAERvpC,EAQFmpC,GACFgV,EAAWA,aACT,SAAC/U,GACC,IAAMisB,EAAajsB,EAAM/jB,WAAW/9C,IAAIoiB,EAAKrI,QACvCi0E,EAAalsB,EAAM/jB,WAAW/9C,IAAIoiB,EAAKy4B,QAE7C,IAAKkzC,IAAeC,EAClB,OAAAtrB,EAAA,CACEE,OAAQxgD,EAAKwgD,QACV+oB,IAIP,IAAMsC,ED/DR,SACJzf,iBAEQuf,EAA2Bvf,EAAMuf,WAArBC,EAAexf,EAAMwf,WAEzC,IAAKhB,GAAkBe,KAAgBf,GAAkBgB,GACvD,OAAO,KAGT,IAAME,EACJH,EAAW9wC,UAAUqK,cAAgB2lC,GAAec,EAAWzlB,SAC3D6lB,EACJH,EAAW/wC,UAAUqK,cAAgB2lC,GAAee,EAAW1lB,SAE3DlsB,EAAeixC,WACnBz2E,EAAAs3E,aAAkB,EAAlBA,EAAoBn0E,sBAAU,GAC9By0D,EAAOpyB,cAEHC,EAAegxC,GAEnB7e,EAAOjpB,iBAAmBhG,QAAAA,eAAe6B,OACX,QAA1ByR,EAAAs7B,eAAAA,EAAoBtzC,cAAM,IAAAgY,EAAAA,EAAI,IACH,QAA1Bt3C,EAAA4yE,aAAkB,EAAlBA,EAAoBtzC,cAAM,IAAAt/B,EAAAA,EAAI,IAAIuH,OACP,QAA1B4V,EAAAy1D,aAAA,EAAAA,EAAoBp0E,cAAM,IAAA2e,EAAAA,EAAI,IAEpC81C,EAAOnyB,cAEH6gC,GAAiB9gC,aAAY,EAAZA,EAAce,WAAY4D,QAAAA,SAASG,OACpDk8B,GAAiB/gC,aAAY,EAAZA,EAAcc,WAAY4D,QAAAA,SAASE,IAE1D,IAAK7E,IAAiBC,EAUpB,OATc,QAAdx2C,EAAA2oE,EAAOvwB,eAAO,IAAAp4C,GAAAA,EAAAhS,KAAA26E,EACZ,MACA5M,GAAwB,SAAGxlB,EAA0B,SAAX,SAAqB,CAC7DrlB,GAAIy3C,EAAOz3C,GACXqlB,aAAcoyB,EAAOpyB,aACrBC,aAAcmyB,EAAOnyB,gBAIlB,KAGH,IAAAz3B,EAAA49C,EAAqB4qB,GACzBlQ,EACA6Q,EACA3xC,MAHK6D,OAASC,OAKVhR,EAAAszB,EAAqB4qB,GACzBhQ,EACA4Q,EACA3xC,MAGF,MAAO,CACL4D,QAAOA,EACPC,QAAOA,EACPC,aACAC,aACA88B,eAAcA,EACdE,eAAcA,EAElB,CCC6BgR,CAAgB,CACnCr3D,GAAEA,EACFg3D,WAAUA,EACVC,WAAUA,EACV5xC,aAAch6B,EAAKg6B,cAAgB,KACnCC,aAAcj6B,EAAKi6B,cAAgB,KACnCkJ,eAAgBuc,EAAMvc,eACtBtH,QAAOA,IAGH2kB,E7B1DR,SAAgChsD,OACpCm3E,EAAUn3E,EAAAm3E,WACVC,EAAUp3E,EAAAo3E,WACVn7B,aAAAnQ,OAAW,IAAAmQ,GAAKA,EAChBt3C,WAAAqnD,OAAS,IAAArnD,EAAA,EAACA,EACVmd,oBAEA,QAFkB,IAAAA,IAAKA,EAGrB,OAAOkqC,EAGT,IAAMyrB,EACJ3rC,GAAYsrC,EAAWtrC,UAAYqrC,EAAWrrC,SAC1C4rC,EAAiB3wE,KAAKC,IAC1BmwE,EAAW9wC,UAAU7iD,GAAK,EAC1B4zF,EAAW/wC,UAAU7iD,GAAK,EAC1B,KAGF,OAAOwoE,GAAUyrB,EAA8BC,EAAiB,EAClE,C6BsCuBC,CAAsB,CACnC7rC,SAAUtgC,EAAKsgC,SACfkgB,OAAQxgD,EAAKwgD,OACbmrB,WAAUA,EACVC,WAAUA,EACVQ,gBAAiB1sB,EAAM2sB,uBAGzB,OACE/rB,EAAA,CAAAE,UACIqrB,GAAgBtC,GAExB,GACA,CACEvpE,EAAKrI,OACLqI,EAAKy4B,OACLz4B,EAAKg6B,aACLh6B,EAAKi6B,aACLj6B,EAAKsgC,SACLtgC,EAAKwgD,SAGToI,IApDApI,WACA3iB,EAAOvnB,EAAAunB,QACPC,EAAOxnB,EAAAwnB,QACPC,EAAOznB,EAAAynB,QACPC,EAAO1nB,EAAA0nB,QACP88B,EAAcxkD,EAAAwkD,eACdE,EAAc1kD,EAAA0kD,eAiDVsR,EAAiB73F,EAAAA,SACrB,WACE,OAAAurB,EAAKumE,YACD,SAAS7lE,OAAA2kE,GAAYrlE,EAAKumE,YAAa/I,GAAS,WAChD3Y,CAAS,GACf,CAAC7kD,EAAKumE,YAAa/I,IAGf+O,EAAe93F,EAAAA,SACnB,WACE,OAAAurB,EAAKwmE,UACD,SAAS9lE,OAAA2kE,GAAYrlE,EAAKwmE,UAAWhJ,GAAS,WAC9C3Y,CAAS,GACf,CAAC7kD,EAAKwmE,UAAWhJ,IAGnB,GACEx9D,EAAKmtD,QACO,OAAZtvB,GACY,OAAZC,GACY,OAAZC,GACY,OAAZC,EAEA,OAAO,KAGT,IAsBMwuC,EAAoB3L,EACtB,SAAC5kB,GACC4kB,EAAc5kB,EAAYqE,EAAA,CAAA,EAAAtgD,GAC3B,OACD6kD,EACE4nB,EAAoBrb,EACtB,SAACnV,GACCmV,EAAcnV,EAAYqE,EAAA,CAAA,EAAAtgD,GAC3B,OACD6kD,EACE6nB,EAAmBrb,EACrB,SAACpV,GACCoV,EAAapV,EAAYqE,EAAA,CAAA,EAAAtgD,GAC1B,OACD6kD,EACE8nB,EAAkBhb,EACpB,SAAC1V,GACC0V,EAAY1V,EAAYqE,EAAA,CAAA,EAAAtgD,GACzB,OACD6kD,EACE+nB,GAAmBla,EACrB,SAACzW,GACCyW,EAAazW,EAAYqE,EAAA,CAAA,EAAAtgD,GAC1B,OACD6kD,EAoBJ,OACE+E,EAAA33E,IAAA,MAAA,CAAK2nC,MAAO,CAAE4mC,OAAMA,GAClBlhD,SAAA6xD,EAAAA,KAAA,IAAA,CACEtH,UAAWryD,EAAG,CACZ,iBACA,kBAAAkJ,OAAkB4qE,GAClBtrE,EAAK6pD,UACLpM,EACA,CACEnd,SAAUtgC,EAAKsgC,SACfusC,SAAU7sE,EAAK6sE,SACfC,UAAWxrC,IAAiBwvB,EAC5B4a,SAAUD,EACVve,WAAY5rB,KAGhBwvB,QAlFc,SAClB7U,SAEMxL,EACJiP,EAAM/pE,WADAo3F,EAAgBt8B,EAAAs8B,iBAAE/qC,EAAqByO,EAAAzO,sBAAEL,yBAG7CL,IACFoe,EAAMvqE,SAAS,CAAE67E,sBAAsB,IAEnChxD,EAAKsgC,UAAYqB,GACnBK,EAAsB,CAAEpjC,MAAO,GAAIuB,MAAO,CAACH,KAC1B,QAAjBxL,EAAA8yE,EAAQv1F,eAAS,IAAAyiB,GAAAA,EAAAksE,QAEjBqM,EAAiB,CAACp4D,KAIlBm8C,GACFA,EAAQ7U,EAAOj8C,EAEnB,EA+DM6gE,cAAe2L,EACfpb,cAAeqb,EACfpb,aAAcqb,EACd/a,YAAagb,EACbja,aAAcka,GACd7I,UAAW1C,EAxCC,SAACplB,SACjB,IACGmX,GACD4Q,GAAqBviD,SAASw6B,EAAMprE,MACpCywD,EACA,CACM,IAAAmP,EAA8CiP,EAAM/pE,WAAlDqsD,EAAqByO,EAAAzO,sBAAE+qC,EAAgBt8B,EAAAs8B,iBAChB,WAAd9wB,EAAMprE,KAGJ,QAAjB2jB,EAAA8yE,EAAQv1F,eAAS,IAAAyiB,GAAAA,EAAAksE,OACjB1+B,EAAsB,CAAE7hC,MAAO,CAACH,MAEhC+sE,EAAiB,CAACp4D,GAErB,CACH,OAwB2CkwC,EACrCqf,SAAU7C,EAAc,OAAIxc,EAC5Bsf,KAAM9C,EAAc,SAAW,gBACtB1sD,EAAE,cACE,YAAYjU,OAAAiU,GAEvB,aAAmB,OAAnB3U,EAAKokE,eACDvf,EACA7kD,EAAKokE,WAAa,aAAA1jE,OAAaV,EAAKrI,OAAM,QAAA+I,OAAOV,EAAKy4B,QAAQ,mBAGlE4oC,EAAc,GAAG3gE,OAAA25D,GAAsB,KAAA35D,OAAA88D,QAAS3Y,EAElD/zE,IAAKw2F,EAEJhoE,SAAA,EAACosE,GACA9hB,EAAA33E,IAACs5F,EAAa,CACZ52D,GAAIA,EACJhd,OAAQqI,EAAKrI,OACb8gC,OAAQz4B,EAAKy4B,OACb7mD,KAAMouB,EAAKpuB,KACX0uD,SAAUtgC,EAAKsgC,SACfusC,SAAU7sE,EAAK6sE,SACflzD,MAAO3Z,EAAK2Z,MACZktD,WAAY7mE,EAAK6mE,WACjBC,YAAa9mE,EAAK8mE,YAClBC,aAAc/mE,EAAK+mE,aACnBC,eAAgBhnE,EAAKgnE,eACrBC,oBAAqBjnE,EAAKinE,oBAC1BppC,QAASA,EACTC,QAASA,EACTC,QAASA,EACTC,QAASA,EACT88B,eAAgBA,EAChBE,eAAgBA,EAChB9zC,KAAMlnB,EAAKknB,KACXtN,MAAO5Z,EAAK4Z,MACZswD,eAAgBlqE,EAAKg6B,aACrBiwC,eAAgBjqE,EAAKi6B,aACrBssC,YAAa+F,EACb9F,UAAW+F,EACXnE,YAAa,gBAAiBpoE,EAAOA,EAAKooE,iBAAcvjB,EACxD8iB,iBAAkB3nE,EAAK2nE,mBAG1BoC,GACCngB,EAAC33E,IAAA63F,GACC,CAAA9pE,KAAMA,EACN+pE,YAAaA,EACbC,kBAAmBA,EACnBG,aAAcA,EACdC,kBAAmBA,EACnBzlC,gBAAiBA,EACjB9G,QAASA,EACTC,QAASA,EACTC,QAASA,EACTC,QAASA,EACT88B,eAAgBA,EAChBE,eAAgBA,EAChBsP,eAAgBA,EAChBD,YAAaA,EACbH,eAAgBlqE,EAAKg6B,aACrBiwC,eAAgBjqE,EAAKi6B,mBAMjC,CCzRA,IAAMvjD,GAAW,SAACS,GAAoB,MAAC,CACrCm3B,MAAOn3B,EAAEm3B,MACTC,OAAQp3B,EAAEo3B,OACV48D,eAAgBh0F,EAAEg0F,eAClBC,eAAgBj0F,EAAEi0F,eAClBtb,mBAAoB34E,EAAE24E,mBACtB3sB,eAAgBhsD,EAAEgsD,eAClBtH,QAAS1kD,EAAE0kD,UAGb,SAASmxC,GAAoDx4E,OAG3DgpE,SACA/f,EAAcjpD,EAAAipD,eACd0sB,EAAY31E,EAAA21E,aAcN15B,EACJgP,GAAS/oE,GAAUkyE,IADbuiB,mBAAgBC,mBAAgBtb,uBAAoBj0B,YAEtDozB,EC9CF,SAA4BgL,GAChC,IAAMhL,EAAUxP,GACdgV,EAAWA,aACT,SAACt9E,GAEG,OAAOA,EAAEgpB,MAAMlhB,KAAI,SAAC+gB,GAAS,OAAAA,EAAK2U,EAAL,GA2BhC,GACD,CAACslD,IAEHrR,IAGF,OAAOqG,CACT,CDOkBge,EAAkB,GAElC,OACE9b,EAAAA,YAAKtH,UAAU,kBACbvqD,SAAA,CAAAsqD,EAAAA,IAACqc,GAAiB,CAACC,aAAc,GAAI1I,KAAMA,IAE1CvO,EAAQhwE,KAAI,SAAC01B,GACZ,OACEi1C,EAAAA,IAACshB,GAEC,CAAAv2D,GAAIA,EACJw2D,eAAgBA,EAChBC,eAAgBA,EAChBtb,mBAAoBA,EACpBrS,eAAgBA,EAChB0sB,aAAcA,EAUd3M,KAAMA,EACN3hC,QAASA,GAjBJlnB,QAyBjB,CAEAq4D,GAAsBtZ,YAAc,eAE7B,IAAMwZ,GAAetZ,EAAIA,KAC9BoZ,IE9FIt2F,GAAW,SAACS,GAGhB,MAAO,aAAAupB,OAAavpB,EAAE0lB,UAAU,GAAQ,OAAA6D,OAAAvpB,EAAE0lB,UAAU,wBAAe1lB,EAAE0lB,UAAU,GAAE,IACnF,EAMM,SAAUswE,GAAS34E,GAAE,IAAA8K,EAAQ9K,EAAA8K,SAC3BzC,EAAY4iD,GAAS/oE,IAE3B,OACEkzE,MACE,MAAA,CAAAC,UAAU,0DACVjwC,MAAO,CAAE/c,aAAWyC,SAEnBA,GAGP,CCSA,SAAS8tE,GAGP54E,GACA,IAAAgpE,SACAviB,EAAOzmD,EAAAymD,QACPC,EAAO1mD,EAAA0mD,QACPuC,EAAcjpD,EAAAipD,eACdtc,EAAe3sC,EAAA2sC,gBACfjG,EAAU1mC,EAAA0mC,WACVkgB,EAAQ5mD,EAAA4mD,SACRgY,wBACAjY,oBACAkN,oBACA4Y,EAASzsE,EAAAysE,UACTnR,EAAkBt7D,EAAAs7D,mBAClBM,EAAW57D,EAAA47D,YACX1S,EAAiBlpD,EAAAkpD,kBAEjB,OACEkM,EAAAA,IAAC+J,GAAY,CACX1Y,QAASA,EACTC,QAASA,EACTuC,eAAgBA,EAChBtc,gBAAiBA,EACjBsnB,uBAAwBrN,EACxBgY,oBAAqBA,EACrBjY,gBAAiBA,EACjBkN,gBAAiBA,EACjByH,mBAAoBA,EACpBM,YAAaA,EACb1S,kBAAmBA,EAEnBp+C,SAAA6xD,EAAAA,KAACgc,GAAQ,CAAA7tE,SAAA,CACPsqD,MAACsjB,GAAY,CAAW1P,KAAMA,EAAM/f,eAAgBA,IAEpDmM,EAAK33E,IAAA,MAAA,CAAA43E,UAAU,iCACfD,EAAA33E,IAAC4yF,GAAY,CACXrH,KAAMA,EACNyD,UAAWA,EACX/lC,WAAYA,EACZiG,gBAAiBA,EACjBsc,eAAgBA,EAChB2V,qBAAqB,IAEvBxJ,EAAAA,IAAA,MAAA,CAAKC,UAAU,kCAIvB,CAEAujB,GAAmB1Z,YAAc,YAE1B,IAAM2Z,GAAYzZ,EAAIA,KAACwZ,ICpFxBv3F,GAAkB,SAAC2e,WAAA8hB,OAgBrB,IAAA9hB,EAAA,CAAE,IAfJoK,UACAuB,EAAKmW,EAAAnW,MACLmtE,EAAYh3D,EAAAg3D,aACZC,EAAYj3D,EAAAi3D,aACPj3D,EAAAhI,MACCgI,EAAA/H,OACC+H,EAAAi3C,QAUP,IAAM5xB,EAAa,IAAI1f,IACjB2lC,EAAe,IAAI3lC,IACnBilC,EAAmB,IAAIjlC,IACvBklC,EAAa,IAAIllC,IACjBuxD,EAAsC,QAAzB/8B,EAAA88B,QAAAA,EAAgBptE,SAAS,IAAAswC,EAAAA,EAAA,GACtCg9B,EAAsC,QAAzBt0E,EAAAm0E,QAAAA,EAAgB1uE,SAAS,IAAAzF,EAAAA,EAAA,GAE5C8nD,GAAuBC,EAAkBC,EAAYqsB,GACrD7rB,GAAe8rB,EAAY9xC,EAAYimB,EAAc,CACnD1mB,WAAY,CAAC,EAAG,GAChB6kB,sBAAsB,IA0BxB,MAAO,CACLyd,KAAM,IACNlvD,MAAO,EACPC,OAAQ,EACR1R,UA3ByB,CAAC,EAAG,EAAG,GA4BhC+B,MAAO6uE,EACP9xC,WAAUA,EACVimB,aAAYA,EACZzhD,MAAOqtE,EACPrsB,WAAUA,EACVD,iBAAgBA,EAChByT,cAAe,KACfQ,cAAe,KACfT,qBAAkC7P,IAAjByoB,EACjBpY,qBAAkCrQ,IAAjB0oB,EACjB1kB,QAAS,KACT5N,QAAS,GACTC,QAAS,EACTC,gBAAiBuyB,GACjB9xC,WAAY8xC,GACZ1c,sBAAsB,EACtBrT,qBAAqB,EACrB8R,kBAAmB,KACnBtqB,mBAAoB,CAAE9tD,EAAG,EAAGD,EAAG,GAC/BguD,iBAAkB,KAClBjC,eAAgBhG,QAAcA,eAAC6B,OAC/BqC,QAAS,KACTgoB,cAAc,EACd5L,eAAgB,QAChBviB,WAAY,CAAC,EAAG,GAChBuH,kBAAmB,EAEnB5F,SAAU,CAAC,GAAI,IACfC,YAAY,EAEZ8E,gBAAgB,EAChBk/B,kBAAkB,EAClBC,gBAAgB,EAChBoK,gBAAgB,EAChBC,gBAAgB,EAChBtb,oBAAoB,EACpB/P,sBAAsB,EACtBssB,sBAAsB,EACtBsB,eAAe,EACfC,aAAa,EACbC,0BAAsBhpB,EACtBhjB,mBAAmB,EAEnBF,sBAAsB,EAEtB0D,sBAAuB,KACvBC,oBAAqB,KACrB24B,2BAA4B,KAC5BV,gBAAgB,EAEhB0G,gBAAiB,GACjB3/B,kBAAkB,EAClB5B,mBAAmB,EACnByB,iBAAkB,GAClBtI,aAASgpB,EACTnhB,uBAAmBmhB,EACnBipB,0BAA2B,GAE3BtqC,IAAK,QACLppB,OAAO,EAEX,EC1FMpjC,GAAc,SAACwd,GACnB,I/DV4Bzf,EAAagC,E+DUzC6nB,UACAuB,UACAmtE,iBACAC,EAAY/4E,EAAA+4E,aACZj/D,EAAK9Z,EAAA8Z,MACLC,EAAM/Z,EAAA+Z,OACNg/C,EAAO/4D,EAAA+4D,QAUP,O/D1B4Bx4E,E+D2B1B,SAAC4I,EAAKC,GAAQ,OACT0iE,EAAAA,EAAA,CAAA,EAAAzqE,GAAgB,CACjB+oB,MAAKA,EACLuB,MAAKA,EACLmO,MAAKA,EACLC,OAAMA,EACNg/C,QAAOA,EACP+f,aAAYA,EACZC,aAAYA,KAEd,CAAAxuE,SAAU,SAACH,GACH,IAAApK,EACJ5W,IAOF+jE,GAAe/iD,EARGpK,EAAAmnC,WAAcnnC,EAAAotD,aAQgB,CAC9C1mB,WAT0C1mC,EAAA0mC,WAU1C6kB,4CACA8B,eAAe,IAGjBlkE,EAAI,CAAEihB,MAAKA,GACb,EACAq2D,SAAU,SAAC90D,GACH,IAAA3L,EAAmC5W,IAEzCqjE,GAFwBzsD,EAAA0sD,iBAAY1sD,EAAA2sD,WAEiBhhD,GAErDxiB,EAAI,CAAEwiB,MAAKA,GACb,EACA4tE,wBAAyB,SAACnvE,EAAgBuB,GACpCvB,KAEFG,EADqBnhB,cACZghB,GACTjhB,EAAI,CAAE+2E,iBAAiB,KAErBv0D,KAEF80D,EADqBr3E,cACZuiB,GACTxiB,EAAI,CAAEu3E,iBAAiB,IAE1B,EAID8E,oBAAqB,SAACyK,GACd,IAAAjwE,EAWF5W,IAVFg0E,EAAkBp9D,EAAAo9D,mBAClBrE,EAAO/4D,EAAA+4D,QACP5xB,EAAUnnC,EAAAmnC,WACVimB,EAAYptD,EAAAotD,aACZ+rB,EAAan5E,EAAAm5E,cACbC,EAAWp5E,EAAAo5E,YACXC,EAAoBr5E,EAAAq5E,qBACpBxsC,EAAO7sC,EAAA6sC,QACPnG,EAAU1mC,EAAA0mC,WACV9gB,UAGIq2B,E3DhCR,SACJg0B,EACA9oC,EACAimB,EACAvgB,EACAnG,GAKA,IAAM8yC,EAAe3sC,aAAO,EAAPA,EAASpS,cAAc,qBACxCg/C,GAAmB,EAEvB,IAAKD,EACH,MAAO,CAAE9rB,QAAS,GAAI+rB,iBAAgBA,GAGxC,IAAM/rB,EAAwD,GACxDtoC,EAAQxmC,OAAOo+C,iBAAiBw8C,GACzBxzB,EAAS,IAAIpnE,OAAO86F,kBAAkBt0D,EAAM/c,WAAUsxE,IAE7DC,EAA4C,GAsElD,GApEA3J,EAAQhvF,SAAQ,SAACyrD,GACf,IAAMjiC,EAAO08B,EAAW/9C,IAAIsjD,EAAOvsB,IAEnC,GAAI1V,aAAI,EAAJA,EAAMkuD,OACRxxB,EAAWh+C,IAAIshB,EAAK0V,UACf1V,GAAI,CACP47B,UACKylB,EAAAA,EAAA,CAAA,EAAArhD,EAAK47B,WAAS,CACjBqK,kBAAc2f,OAGlBopB,GAAmB,OACd,GAAIhvE,EAAM,CACf,IAAM4jD,EAAauC,GAAclkB,EAAO+kB,aAClCooB,EACJpvE,EAAKw7B,SAASnsB,QAAUu0C,EAAWv0C,OACnCrP,EAAKw7B,SAASlsB,SAAWs0C,EAAWt0C,OAOtC,GALEs0C,EAAWv0C,OACXu0C,EAAWt0C,SACV8/D,IAAqBpvE,EAAK47B,UAAUqK,cAAgBhE,EAAO+gC,OAGhD,CACZ,IAAMqM,EAAOhuB,EAAAA,EAAA,CAAA,EACRrhD,GAAI,CACPw7B,SAAUooB,EACVhoB,iBACK57B,EAAK47B,WAAS,CACjBqK,aAAc,CACZvtC,OAAQquD,GACN,UACA9kB,EAAO+kB,YACPzL,EACAv7C,EAAK+7B,QAAUE,GAEjBzC,OAAQutB,GACN,UACA9kB,EAAO+kB,YACPzL,EACAv7C,EAAK+7B,QAAUE,QAMvBS,EAAWh+C,IAAIshB,EAAK0V,GAAI25D,GACxBL,GAAmB,EAEfI,IACFnsB,EAAQvvE,KAAK,CACXgiC,GAAI25D,EAAQ35D,GACZ/iC,KAAM,aACNixE,WAAUA,IAGRyrB,EAAQtyC,cAAgBsyC,EAAQxyC,UAClCsyC,EAAqBz7F,KAAK,CACxBgiC,GAAI25D,EAAQ35D,GACZmnB,SAAUwyC,EAAQxyC,SAClB8mB,KAAMF,GAAW4rB,EAASA,EAAQtzC,QAAUE,KAInD,CACF,CACH,IAEIkzC,EAAqB57F,OAAS,EAAG,CACnC,IAAM+7F,EAAsBtsB,GAC1BmsB,EACAzyC,EACAimB,EACA1mB,GAEFgnB,EAAQvvE,KAAII,MAAZmvE,EAAO+E,EAAA,GAAA7G,EAASmuB,IAAqB,GACtC,CAED,MAAO,CAAErsB,QAAOA,EAAE+rB,iBAAgBA,EACpC,C2DtE8CO,CACpC/J,EACA9oC,EACAimB,EACAvgB,EACAnG,GALMgnB,YAQR,sBAAA,CAIApC,GAAwBnkB,EAAY,CAAET,WAAUA,IAGhD,IAAIuzC,EAAkBb,GACjBA,GAAeD,IAClBc,EAAkBlhB,EACbjN,EAAAA,EAAA,CAAA,EAAAutB,IACHjvE,MAAOivE,aAAA,EAAAA,EAAsBjvE,UASjCjhB,EAAI,CAAEiwF,YAAaa,KAEfvsB,aAAO,EAAPA,EAAS1vE,QAAS,IAChB4nC,GACFjkC,QAAQm5B,IAAI,iCAAkC4yC,GAEhD0P,SAAAA,EAAqB1P,GAxBtB,CA0BH,EACAzgB,oBAAqB,SAACitC,EAAe1kB,gBAAA,IAAAA,IAAAA,GAAgB,GACnD,IAAMokB,EAA4C,GAC5ClsB,EAAU,OAEhB,IAA6B,IAAAysB,EAAAzuB,EAAAwuB,GAAaE,EAAAD,EAAAxwD,0BAAE,CAAjC,IAAAsyB,EAAA2P,EAAcwuB,EAAA/6F,MAAA,GAAb8gC,EAAE87B,EAAA,GAAEo+B,EAAQp+B,EAAA,GAEhB/nB,EAAqB,CACzB/T,GAAEA,EACF/iC,KAAM,WACNmpD,SAAU8zC,EAAS9zC,SACnBivB,SAAQA,IAGN6kB,eAAAA,EAAU7yC,gBAAgB6yC,aAAA,EAAAA,EAAU/yC,WAAYpT,EAAOqS,WACzDqzC,EAAqBz7F,KAAK,CACxBgiC,GAAEA,EACFmnB,SAAU+yC,EAAS/yC,SACnB8mB,KAAItC,EAAAA,EAAA,CAAA,EACCuuB,EAASh0C,UAAUC,kBAAgB,CACtCxsB,MAAOugE,EAASp0C,SAASnsB,MACzBC,OAAQsgE,EAASp0C,SAASlsB,WAI9Bma,EAAOqS,SAAS1jD,EAAIkkB,KAAKC,IAAI,EAAGktB,EAAOqS,SAAS1jD,GAChDqxC,EAAOqS,SAAS3jD,EAAImkB,KAAKC,IAAI,EAAGktB,EAAOqS,SAAS3jD,IAGlD8qE,EAAQvvE,KAAK+1C,EACd,mGAED,GAAI0lD,EAAqB57F,OAAS,EAAG,CAC7B,IAAA2mB,EAA+Bvb,IAC/B2wF,EAAsBtsB,GAC1BmsB,EAFgBj1E,EAAAwiC,WAAcxiC,EAAAyoD,cAMhCM,EAAQvvE,KAAII,MAAZmvE,EAAO+E,EAAA,GAAA7G,EAASmuB,IAAqB,GACtC,CAED3wF,IAAMg0E,mBAAmB1P,EAC3B,EACA0P,mBAAoB,SAAC1P,GACb,IAAA1tD,EACJ5W,IADM+2E,EAAangE,EAAAmgE,cAAE51D,EAAQvK,EAAAuK,SAAEH,UAAO81D,oBAAiBt6C,WAGrD8nC,aAAO,EAAPA,EAAS1vE,UACPkiF,GAEF31D,EADqBisD,GAAiB9I,EAAStjD,IAI7Cwb,GACFjkC,QAAQm5B,IAAI,iCAAkC4yC,GAGhDyS,SAAAA,EAAgBzS,GAEpB,EACA2P,mBAAoB,SAAC3P,GACb,IAAA1tD,EACJ5W,IADMu3E,EAAa3gE,EAAA2gE,cAAEF,EAAQzgE,EAAAygE,SAAE90D,UAAO+0D,oBAAiB96C,WAGrD8nC,aAAO,EAAPA,EAAS1vE,UACP0iF,GAEFD,EADqBlK,GAAiB7I,EAAS/hD,IAI7Cia,GACFjkC,QAAQm5B,IAAI,iCAAkC4yC,GAGhDiT,SAAAA,EAAgBjT,GAEpB,EACAue,iBAAkB,SAACtO,GACX,IAAA39D,EAMF5W,IALF+jD,EAAoBntC,EAAAmtC,qBACpBwf,EAAU3sD,EAAA2sD,WACVxlB,eACAi2B,uBACAC,uBAGElwB,EAIFiwB,EAHoBO,EAAgBlzE,KAAI,SAACw8C,GACvC,OAAAwvB,GAAsBxvB,GAAQ,EAA9B,MAMJm2B,EACE1G,GAAoBvvB,EAAY,IAAIzmD,IAAQ+xE,EAAA,GAAA7G,EAAA+R,IAAiB,KAAE,IAEjEN,EAAmB3G,GAAoB/J,IACzC,EACA4rB,iBAAkB,SAAC7a,GACX,IAAA19D,EAMF5W,IALF+jD,EAAoBntC,EAAAmtC,qBACpBwf,EAAU3sD,EAAA2sD,WACVxlB,eACAi2B,uBACAC,uBAGElwB,EAIFkwB,EAHqBK,EAAgBjzE,KAAI,SAACyiE,GACxC,OAAAuJ,GAAsBvJ,GAAQ,EAA9B,MAMJmQ,EACE3G,GAAoB/J,EAAY,IAAIjsE,IAAG+xE,EAAA,GAAA7G,EAAK8R,IAAe,MAE7DN,EAAmB1G,GAAoBvvB,EAAY,IAAIzmD,KAAO,IAChE,EACA8sD,sBAAuB,SAACxtC,GAAA,IAAAi8C,OAAA,IAAAj8C,EAGS,CAAA,EAAEA,EAFjCoK,EAAK6xC,EAAA7xC,MACLuB,EAAKswC,EAAAtwC,MAEChH,EAKFvb,IAJK4vF,EAAUr0E,EAAAgH,MACVstE,EAAUt0E,EAAAyF,MACjBgzD,EAAkBz4D,EAAAy4D,mBAClBC,uBAGIid,EAAkB3uE,GAAgBqtE,EAElCtU,GAHkBt6D,GAAgB6uE,GAGJxuF,KAAI,SAACxO,GAEvC,OADAA,EAAE6vD,UAAW,EACN2qB,GAAsBx6E,EAAEkkC,IAAI,EACrC,IACMskD,EAAc6V,EAAgB7vF,KAAI,SAAC+gB,GACvC,OAAAirD,GAAsBjrD,EAAK2U,IAAI,EAA/B,IAGFi9C,EAAmBsH,GACnBrH,EAAmBoH,EACrB,EACA8V,WAAY,SAAC9zB,GACL,IAAAzmD,EAAuB5W,IAArBirE,EAAOr0D,EAAAq0D,QAAE3N,EAAO1mD,EAAA0mD,QACxB2N,SAAAA,EAAS9J,eAAe,CAAC9D,EAASC,IAElCv9D,EAAI,CAAEs9D,QAAOA,GACf,EACA+zB,WAAY,SAAC9zB,GACL,IAAA1mD,EAAuB5W,IAArBirE,EAAOr0D,EAAAq0D,QAAE5N,EAAOzmD,EAAAymD,QACxB4N,SAAAA,EAAS9J,eAAe,CAAC9D,EAASC,IAElCv9D,EAAI,CAAEu9D,QAAOA,GACf,EACA8D,mBAAoB,SAAC7D,iBACnB3mD,EAAA5W,IAAMirE,wBAAS7J,mBAAmB7D,GAElCx9D,EAAI,CAAEw9D,gBAAeA,GACtB,EACD4V,sBAAuB,WACf,IAAAv8D,EAA2D5W,IAAzDuiB,EAAK3L,EAAA2L,MAAEvB,EAAKpK,EAAAoK,MAAEgzD,EAAkBp9D,EAAAo9D,mBAAEC,uBAEpCqH,EAAct6D,EAAMhC,QACxB,SAACmqD,EAAK9nD,GACJ,OAAAA,EAAKqhC,kBAEIymB,IAAG,GAAA,CACNkE,GAAsBhsD,EAAK0V,IAAI,KAEnC,GAAEoyC,CAAG,GACT,IAEIkS,EAAc94D,EAAMvD,QACxB,SAACmqD,EAAK/mD,GACJ,OAAAA,EAAKsgC,kBAEIymB,IAAG,GAAA,CACNkE,GAAsBjrD,EAAK2U,IAAI,KAEnC,GAAEoyC,CAAG,GACT,IAGF6K,EAAmBsH,GACnBrH,EAAmBoH,EACrB,EACAgW,cAAe,SAACrzC,WACND,EAAe/9C,mBAEvB,IAAuB,IAAAqiE,EAAAC,EAAAvkB,GAAUwkB,EAAAF,EAAA9hC,0BAAE,CAAxB,IAAGlf,EAAHmhD,EAAAD,EAAAtsE,MAAA,GAAO,GACVinD,EAAmBqoB,GAAclkD,EAAK87B,SAAUa,GAEtDD,EAAWh+C,IAAIshB,EAAK0V,UACf1V,GAAI,CACP47B,UAASylB,EAAAA,EAAA,CAAA,EACJrhD,EAAK47B,YACRC,iBAAgBA,MAGrB,mGAEDn9C,EAAI,CACFi+C,WAAUA,GAEd,EACA8F,MAAO,SAACwtC,GACA,IAAA16E,EAAyD5W,IAAvDif,EAASrI,EAAAqI,UAAEyR,EAAK9Z,EAAA8Z,MAAEC,WAC1B,O3DgEF,SAAgB/Z,GACpB,IAAA06E,EAAK16E,EAAA06E,MACLrmB,EAAOr0D,EAAAq0D,QACPhsD,EAASrI,EAAAqI,UACTs+C,oBACA7sC,EAAK9Z,EAAA8Z,MACLC,EAAM/Z,EAAA+Z,OASN,IAAKs6C,IAAaqmB,EAAM73F,IAAM63F,EAAM93F,EAClC,OAAO,EAGT,IAAM+3F,EAAetmB,EAAQhK,uBAC3B,CACExnE,EAAGwlB,EAAU,GAAKqyE,EAAM73F,EACxBD,EAAGylB,EAAU,GAAKqyE,EAAM93F,EACxBojE,KAAM39C,EAAU,IAElB,CACE,CAAC,EAAG,GACJ,CAACyR,EAAOC,IAEV4sC,GASF,QALIg0B,IACDA,EAAa93F,IAAMwlB,EAAU,IAC5BsyE,EAAa/3F,IAAMylB,EAAU,IAC7BsyE,EAAal/F,IAAM4sB,EAAU,GAGnC,C2DvGeuyE,CAAY,CACjBF,MAAKA,EACLrmB,kBACAhsD,UAASA,EACTs+C,kCACA7sC,MAAKA,EACLC,OAAMA,GAEV,EACAg/C,QAAS,SAAC1sD,GACF,IAAArM,EAQF5W,IAPFirE,YACAv6C,EAAK9Z,EAAA8Z,MACLC,EAAM/Z,EAAA+Z,OACN0sC,EAAOzmD,EAAAymD,QACPC,EAAO1mD,EAAA0mD,QACPhgB,EAAU1mC,EAAA0mC,WACVS,EAAUnnC,EAAAmnC,WAGZ,QAAKktB,GAIEwmB,GACL,CACE1zC,WAAUA,EACVrtB,MAAKA,EACLC,OAAMA,EACNs6C,QAAOA,EACP5N,QAAOA,EACPC,QAAOA,EACPhgB,WAAUA,GAEZr6B,EAEH,EACD0jC,iBAAkB,WAChB,OAAA5mD,EAAI,CACFynD,iBAAkB,KAClBC,sBAAuB,KACvBC,oBAAqB,MAHvB,EAKFV,iBAAkB,SAACwnB,SACTjnB,EAAuBvnD,uBAEzB0xF,EAAiBhvB,EAAAA,EAAA,CAAA,EAClB8L,GAAM,CACTjnB,mBAAiD,QAA7B3wC,EAAA43D,EAAOjnB,0BAAsB,IAAA3wC,EAAAA,EAAA2wC,IAGnDxnD,EAAI2xF,EACL,EAEDnb,MAAO,WAAM,OAAAx2E,OAAS9H,MAAoB,GAC1C,E/DxYqCkB,E+DyYvCzG,OAAOgD,G/DzYsDyB,EAAc+B,EAAyB/B,EAAagC,GAAqBD,C+D0BxI,EChCI,SAAUy4F,GAAgB/6E,OAChBoK,EAAKpK,EAAAg7E,aACLrvE,EAAK3L,EAAAi7E,aACnBnC,EAAY94E,EAAA84E,aACZC,EAAY/4E,EAAA+4E,aACEj/D,EAAK9Z,EAAAkmC,aACJnsB,EAAM/Z,EAAAmmC,cACrB4yB,EAAO/4D,EAAA+4D,QACPjuD,EAAQ9K,EAAA8K,SAEDogD,EAADU,EAAU7sE,EAAAA,UAAS,WACvB,OAAAyD,GAAY,CACV4nB,MAAKA,EACLuB,MAAKA,EACLmtE,aAAYA,EACZC,aAAYA,EACZj/D,MAAKA,EACLC,OAAMA,EACNg/C,QAAOA,GACP,IACH,MAED,OACE3D,EAAA33E,IAAC2K,GAAQ,CAAC/I,MAAO6rE,EACfpgD,SAAAsqD,MAAC2K,GAAe,CAAAj1D,SAAAA,KAGtB,CCvCM,SAAUowE,GAAQl7E,OACtB8K,EAAQ9K,EAAA8K,SACRV,EAAKpK,EAAAoK,MACLuB,EAAK3L,EAAA2L,MACLmtE,EAAY94E,EAAA84E,aACZC,EAAY/4E,EAAA+4E,aACZj/D,EAAK9Z,EAAA8Z,MACLC,EAAM/Z,EAAA+Z,OACNg/C,EAAO/4D,EAAA+4D,QAaP,OAFkB5N,aAAWjjE,IAGpBktE,EAAA33E,IAAAmuF,EAAAuP,SAAA,CAAArwE,SAAGA,IAIVsqD,EAAA33E,IAACs9F,GAAe,CACdC,aAAc5wE,EACd6wE,aAActvE,EACdmtE,aAAcA,EACdC,aAAcA,EACd7yC,aAAcpsB,EACdqsB,cAAepsB,EACfg/C,QAASA,EAAOjuD,SAEfA,GAGP,CC1CO,IACM+oD,GAA4B,CAAEhxE,EAAG,EAAGD,EAAG,EAAGojE,KAAM,GCkFvDo1B,GAAgB3oB,EAAAA,EAAA,GAAA7G,EAjEO,CAC3B,QACA,QACA,eACA,eAMA,iBAOA,UACA,UACA,aACA,gBACA,gBACA,qBAIA,kBAEA,qBACA,UACA,oBAmC8C,GAAA,CAAA,YAE1C1pE,GAAW,SAACS,GAAoB,MAAC,CACrC4nB,SAAU5nB,EAAE4nB,SACZk2D,SAAU99E,EAAE89E,SACZ8Z,WAAY53F,EAAE43F,WACdC,WAAY73F,EAAE63F,WACdhwB,mBAAoB7nE,EAAE6nE,mBACtBiwB,cAAe93F,EAAE83F,cACjB9a,MAAOh9E,EAAEg9E,MACT4Z,wBAAyB52F,EAAE42F,0BAGvB8B,GAAiB,CAIrB10B,gBAAiBuyB,GACjBxyC,WDrG2C,CAAC,EAAG,GCsG/C+f,QAAS,GACTC,QAAS,EACT4U,oBAAoB,EACpBrS,eAAgB,QAChB+f,KAAM,KAGF,SAAUsS,GAGdj+F,GACM,IAAA2iB,EASFirD,GAAS/oE,GAAUkyE,IARrB7pD,EAAQvK,EAAAuK,SACRk2D,aACA8Z,EAAUv6E,EAAAu6E,WACVC,EAAUx6E,EAAAw6E,WACVhwB,uBACAiwB,EAAaz6E,EAAAy6E,cACb9a,EAAK3/D,EAAA2/D,MACL4Z,4BAEIruB,EAAQG,KAEdrsE,EAAAA,WAAU,WAGR,OAFAu6F,EAAwBl8F,EAAMy7F,aAAcz7F,EAAM07F,cAE3C,WAELwC,EAAeh+F,QAAU89F,GACzB1b,GACF,CACD,GAAE,IAEH,IAAM4b,EACJx7F,SAAuDs7F,IAoCzD,OAlCAr8F,EAAAA,WACE,yBACE,IAAwB,IAAAw8F,EAAA9vB,EAAA0vB,IAAaK,EAAAD,EAAA7xD,0BAAE,CAAlC,IAAM+xD,EAASD,EAAAp8F,MACZs8F,EAAat+F,EAAMq+F,GAGrBC,IAFuBJ,EAAeh+F,QAAQm+F,UAGlB,IAArBr+F,EAAMq+F,KAEC,UAAdA,EAAuBnxE,EAASoxE,GACb,UAAdD,EAAuBjb,EAASkb,GAClB,YAAdD,EAAyBnB,EAAWoB,GACtB,YAAdD,EAAyBlB,EAAWmB,GACtB,oBAAdD,EACPlxB,EAAmBmxB,GACE,eAAdD,EACPjB,EAAckB,GAEO,YAAdD,EACPxwB,EAAMvqE,SAAS,CAAEw4F,cAAewC,IACX,mBAAdD,EACPxwB,EAAMvqE,SAAS,CACb04F,qBAAsBsC,IAGrBzwB,EAAMvqE,WAAWs7D,EAAA,CAAA,GAACy/B,GAAYC,OACpC,mGAEDJ,EAAeh+F,QAAUF,CAC1B,GAED+9F,GAAc3wF,KAAI,SAACixF,GAAc,OAAAr+F,EAAMq+F,EAAU,KAG5C,IACT,CCrKA,IAAME,GAA8B,CAClC9hE,MAAO,OACPC,OAAQ,OACR8hE,SAAU,SACVt1C,SAAU,WACVylB,OAAQ,GAmFV,IAAe/oD,GAAAqsD,IAhFf,SACEtvD,EA2BA1jB,GA1BE,IAAA8tB,UACAuB,UACAswC,EAAAj8C,EAAA2mD,gBAAAA,OAAe,IAAA1K,EAAGi9B,GAAcj9B,EAChCt3C,oBAAAkvD,aAAkBioB,GAAYn3E,EAC9Bmd,EAAa9hB,EAAAymD,QAAbA,OAAU,IAAA3kC,EAAA,KACV7yB,EAAA+Q,EAAA0mD,QAAAA,OAAO,IAAAz3D,EAAG,EAACA,EACXy3C,EAAU1mC,EAAA0mC,WACViG,EAAe3sC,EAAA2sC,gBACfsc,EAAcjpD,EAAAipD,eACd2V,EAAmB5+D,EAAA4+D,oBACnB6N,cACAtM,kBACAQ,kBACA5H,YACAgjB,mBACA30C,eACAgG,mBACAtiC,EAAQ9K,EAAA8K,SACRqV,EAAEngB,EAAAmgB,GACFrG,EAAK9Z,EAAA8Z,MACLC,EAAM/Z,EAAA+Z,OACN6hD,EAAW57D,EAAA47D,YACX1S,EAAiBlpD,EAAAkpD,kBACjBl7C,EAAyBhO,EAAAs7D,mBAAzBA,OAAqB,IAAAttD,KAClBq7D,EAzBLC,EAAAtpE,EAAA,CAAA,QAAA,QAAA,kBAAA,kBAAA,UAAA,UAAA,aAAA,kBAAA,iBAAA,sBAAA,YAAA,gBAAA,gBAAA,UAAA,iBAAA,aAAA,iBAAA,WAAA,KAAA,QAAA,SAAA,cAAA,oBAAA,uBA6BMgpE,EAAO7oD,GAAM,IAEnB,OACEi1C,EAAA33E,IAAA,MAAAquE,EAAA,CAAA,EACMud,EAAI,CACR/sF,IAAKA,EACL8oC,WAAYw2D,IACZvmB,UAAW2mB,EAAI,CAAC,aAAY,cAChB,cACZ77D,GAAIA,EAEJrV,SAAA6xD,EAAAj/E,KAACw9F,GACC,CAAA9wE,MAAOA,EACPuB,MAAOA,EACPmO,MAAOA,EACPC,OAAQA,EACRg/C,QAASA,EAAOjuD,SAAA,CAEhBsqD,MAACyjB,IACC7P,KAAMA,EACNyD,UAAWA,EACXhmB,QAASA,EACTC,QAASA,EACThgB,WAAYA,EACZiG,gBAAiBA,EACjBsc,eAAgBA,EAChB2V,oBAAqBA,EACrBjY,gBAAiBA,EACjBkN,gBAAiBA,EACjB+H,YAAaA,EACb1S,kBAAmBA,IAErBkM,MAACkmB,GAAY,CACXlxE,MAAOA,EACPuB,MAAOA,EACPq9D,KAAMA,EACN7I,cAAeA,EACfQ,cAAeA,EACf5H,QAASA,EACTgjB,eAAgBA,EAChB30C,WAAYA,EACZgG,eAAgBA,EAChBkuB,mBAAoBA,IAErBxwD,OAIT,aChGgBmxE,KACd,OACE7mB,EACE33E,IAAA,MAAA,CAAAq8B,MAAM,KACNC,OAAO,KACPsrC,QAAQ,YACRurB,KAAK,OACLh3C,MAAM,6BAA4B9uB,SAElCsqD,EAAAA,YACE8mB,SAAS,UACTC,SAAS,UACTr/F,EAAE,mWACF8zF,KAAK,aAIb,UCjBgBwL,KACd,OACEhnB,EACE33E,IAAA,MAAA,CAAAq8B,MAAM,KACNC,OAAO,KACPsrC,QAAQ,YACRurB,KAAK,OACLh3C,MAAM,6BAA4B9uB,SAElCsqD,EAAAA,YACE8mB,SAAS,UACTC,SAAS,UACTr/F,EAAE,2KACF8zF,KAAK,aAIb,UCjBgByL,KACd,OACEjnB,EACE33E,IAAA,MAAA,CAAAq8B,MAAM,KACNC,OAAO,KACPsrC,QAAQ,YACRurB,KAAK,OACLh3C,MAAM,6BAA4B9uB,SAElCsqD,EAAAA,YACE8mB,SAAS,UACTC,SAAS,UACTr/F,EAAE,mpCACF8zF,KAAK,aAIb,UCjBgB0L,KACd,OACElnB,EAAAA,IAAK,MAAA,CAAAx7B,MAAM,6BAA6ByrB,QAAQ,YAAWv6C,SACzDsqD,cAAMt4E,EAAE,ocAGd,UCNgBy/F,KACd,OACEnnB,EAAAA,IAAK,MAAA,CAAAx7B,MAAM,6BAA6ByrB,QAAQ,YAAWv6C,SACzDsqD,cAAMt4E,EAAE,0YAGd,CCFM,SAAU0/F,GAAcx8E,GAC5B,IAAA8K,aACAuqD,cACGgU,EAHyBC,EAAAtpE,EAAA,CAAA,WAAA,cAK5B,OACEo1D,EAAAA,gBACEh4E,KAAK,SACLi4E,UAAWryD,EAAG,CAAC,4BAA6BqyD,KACxCgU,EAEH,CAAAv+D,SAAAA,IAGP,CCHA,IAAM5oB,GAAW,SAACS,GAAoB,OAACA,EAAEwmE,oBAAsB,OAAS,OAElE,SAAUszB,GAAMz8E,GACpB,IAAAi8C,aAAA1V,aAAW,WAAU0V,EACrBnxC,EAAQ9K,EAAA8K,SACRuqD,EAASr1D,EAAAq1D,UACTjwC,EAAKplB,EAAAolB,MACFikD,EAAIC,EAAAtpE,EALa,6CAOdqvE,EAAgBpkB,GAAS/oE,IACzBw6F,EAAkB,GAAAxwE,OAAGq6B,GAAW1e,MAAM,KAE5C,OACEutC,EACE33E,IAAA,MAAAquE,EAAA,CAAAuJ,UAAWryD,KAAI,kBAAmBqyD,GAASzJ,EAAK8wB,IAAe,IAC/Dt3D,MAAK0mC,EAAAA,EAAA,CAAA,EAAO1mC,GAAK,CAAEiqD,cAAaA,KAC5BhG,EAEH,CAAAv+D,SAAAA,IAGP,CCnBA,IAAM5oB,GAAW,SAACS,GAAoB,MAAC,CACrCg6F,cAAeh6F,EAAEyqD,gBAAkBzqD,EAAE2pF,kBAAoB3pF,EAAE24E,mBAC3DshB,eAAgBj6F,EAAE0lB,UAAU,IAAM1lB,EAAE8jE,QACpCo2B,eAAgBl6F,EAAE0lB,UAAU,IAAM1lB,EAAE+jE,UAGtC,SAASo2B,GAAkB98E,GACzB,IAAAolB,EAAKplB,EAAAolB,MACL62B,EAAej8C,EAAA+8E,SAAfA,OAAQ,IAAA9gC,GAAOA,EACft3C,EAAA3E,EAAAg9E,YAAAA,OAAc,IAAAr4E,GAAIA,EAClBmd,EAAsB9hB,EAAAi9E,gBAAtBA,OAAe,IAAAn7D,GAAOA,EACtBi6D,EAAc/7E,EAAA+7E,eACdmB,EAAQl9E,EAAAk9E,SACRC,EAASn9E,EAAAm9E,UACTC,EAASp9E,EAAAo9E,UACTC,EAAmBr9E,EAAAq9E,oBACnBhoB,EAASr1D,EAAAq1D,UACTvqD,EAAQ9K,EAAA8K,SACR7b,EAAA+Q,EAAAumC,SAAAA,OAAQ,IAAAt3C,EAAG,cAAaA,EACxB+e,EAAAhO,EAAAs9E,YAAAA,OAAc,IAAAtvE,EAAA,WAAUA,EACxBsqB,EAA6Ct4B,EAAA,cAA/B4vE,OAAS,IAAAt3C,EAAG,oBAAmBA,EAEvC4yB,EAAQG,KACRvtC,EAAoDmtC,GACxD/oE,GACAkyE,IAFMuoB,EAAa7+D,EAAA6+D,cAAEC,EAAc9+D,EAAA8+D,eAAEC,mBAIjC9oB,EAA+BuO,KAA7BtB,EAAMjN,EAAAiN,OAAEC,EAAOlN,EAAAkN,QAAElI,EAAOhF,EAAAgF,QA2B1BwkB,EACY,eAAhBD,EAA+B,aAAe,WAEhD,OACE3gB,OAAC8f,GACC,CAAApnB,UAAWryD,EAAG,CAAC,qBAAsBu6E,EAAkBloB,IACvD9uB,SAAUA,EACVnhB,MAAOA,EAAK,cACA,eACA,aAAAwqD,EAEX9kE,SAAA,CAAAkyE,GACC5nB,EAAA33E,IAAC++F,GAAa,CACZnnB,UAAU,6BACViH,QA7BiB,WACvBvD,EAAQgjB,GACRqB,SAAAA,GACF,EA2BQI,MAAM,WACK,aAAA,WAEX1yE,SAAAsqD,EAAAA,IAACinB,GAAc,CAAA,KAIlBU,GACCpgB,EAAAA,KAAK,MAAA,CAAAtH,UAAU,0BAAyBvqD,SAAA,CACtCsqD,EAAC33E,IAAA++F,IACClgB,QAlDc,WACtB0E,IACAkc,SAAAA,GACF,EAgDU7nB,UAAU,4BACVmoB,MAAM,UAAS,aACJ,UACX7P,SAAUkP,EAEV/xE,SAAAsqD,EAAA33E,IAACw+F,GAAW,MAEd7mB,EAAA33E,IAAC++F,GACC,CAAAlgB,QAtDe,WACvB2E,IACAkc,SAAAA,GACF,EAoDU9nB,UAAU,6BACVmoB,MAAM,WACK,aAAA,WACX7P,SAAUiP,EAAc9xE,SAExBsqD,MAACgnB,GAAS,CAAA,QAKfa,GACC7nB,MAAConB,GAAa,CACZnnB,UAAU,iCACViH,QA1DsB,WAC5BpR,EAAMvqE,SAAS,CACbysD,gBAAiBuvC,EACjBrQ,kBAAmBqQ,EACnBrhB,oBAAqBqhB,IAGvBU,SAAAA,GAAuBV,EACzB,EAmDQa,MAAM,uBAAsB,aACjB,uBAEV1yE,SAAA6xE,EAAgBvnB,EAAC33E,IAAA8+F,GAAa,CAAA,GAAGnnB,EAAA33E,IAAC6+F,GAAQ,CAAA,KAG9CxxE,IAGP,CAEAgyE,GAAkB5d,YAAc,eAEnBue,GAAWre,EAAIA,KAAC0d,8G1ErIkq7I,SAASh9F,EAAE7D,GAAG,OAAO6D,EAAEqjB,QAAQrjB,EAAEmkD,OAAO,SAASnkD,EAAE7D,GAAG,OAAOA,EAAEm0C,eAAen0C,GAAG,QAAQA,EAAEknB,SAASrjB,EAAEqjB,QAAQlnB,EAAEgoD,SAASnkD,EAAEmkD,QAAQhoD,EAAEupD,eAAe1lD,EAAE0lD,eAAevpD,EAAEupD,cAAc1lD,EAAE0lD,eAAevpD,EAAEwpD,eAAe3lD,EAAE2lD,eAAexpD,EAAEwpD,cAAc3lD,EAAE2lD,cAAe,GAAE,CAAnO,CAAqO1oD,EAAxuY,SAAS+C,GAAG,MAAM,OAAOA,GAAG,WAAWA,GAAG,WAAWA,CAAC,CAAorY49F,CAAG59F,GAAG0pC,GAAG,CAAE,EAAC1pC,GAAG0pC,GAAGA,GAAG,CAAA,EAAG1pC,GAAG,CAACqgC,GAAGsrB,GAAG3rD,KAAK7D,GAAGA,GAAG,OAAOc,EAAEyoD,qBAAqBzoD,EAAEyoD,aAAa,OAAOzoD,EAAE0oD,qBAAqB1oD,EAAE0oD,aAAaxpD,EAAEiwB,OAAOnvB,IAAG,EAAmB,IAAIA,CAAC,sBAApu2D,SAAY+C,EAAE7D,EAAEc,QAAG,IAASA,IAAIA,EAAE,CAACmiC,QAAQ,OAAO,IAAI//B,EAAEpC,EAAEmiC,QAAQx8B,EAAE,IAAI2iC,GAAGjW,SAASf,MAAM,OAAO3rB,EAAE+oB,gCAAgC,MAAM,CAAE,CAAC,IAAG/oB,EAAEsnB,SAAS,CAACkV,QAAQ//B,IAAIW,EAAEmB,kBAAkBnB,GAAG,IAAI7D,EAAEc,EAAE,IAAI+C,EAAEqgC,GAAG,MAAM,IAAInV,MAAM,4BAA4B,IAAI7rB,GAAG,QAAQlD,EAAE6D,EAAE4yC,YAAO,IAASz2C,OAAE,EAAOA,EAAE69B,QAAQ,IAAIh8B,GAAG,QAAQf,EAAE+C,EAAE4yC,YAAO,IAAS31C,OAAE,EAAOA,EAAEg9B,SAAS,GAAGr3B,EAAE8nB,QAAQ1qB,EAAEqgC,GAAG,CAACrG,MAAM36B,EAAE46B,OAAOj8B,GAAI,IAAG7B,EAAEgF,SAAO,SAAWnB,GAAG4C,EAAE6oB,QAAQzrB,EAAEqjB,OAAOrjB,EAAEmkD,OAAQ,IAAG5e,GAAGC,OAAO5iC,GAAG5C,EAAEmB,SAAO,SAAWnB,GAAG,IAAI7D,EAAEyG,EAAE+nB,KAAK3qB,EAAEqgC,IAAIpjC,EAAE,SAASe,EAAE,MAAM,OAAOqB,GAAG,IAAI,KAAKpC,EAAE,SAASe,EAAE,MAAM,MAAM,IAAI,KAAKf,EAAE,MAAMe,EAAE,SAAS,MAAM,IAAI,KAAK,IAAI,KAAKf,EAAE,QAAQe,EAAE,OAAOgC,EAAE0mF,eAAe1oF,EAAEgC,EAAEwmF,eAAevpF,EAAE+C,EAAEymD,SAAS,CAAC1jD,EAAE5G,EAAE4G,EAAE5G,EAAE69B,MAAM,EAAEl3B,EAAE3G,EAAE2G,EAAE3G,EAAE89B,OAAO,EAAG,IAAG,CAAC3P,MAAMtqB,EAAE6rB,MAAM1vB,EAAE,0EAAsvwD,SAAY6D,GAAG,IAAI7D,EAAE6D,EAAEupD,QAAQtsD,EAAE+C,EAAEwpD,QAAQnqD,EAAEW,EAAEwmF,eAAe5jF,OAAE,IAASvD,EAAE8pD,QAAAA,SAAGqB,OAAOnrD,EAAErB,EAAEgC,EAAEypD,QAAQjqD,EAAEQ,EAAE0pD,QAAQ7sD,EAAEmD,EAAE0mF,eAAe9pF,OAAE,IAASC,EAAEssD,QAAEkB,SAACE,IAAI1tD,EAAEpB,EAAEuE,EAAEkmF,UAAUrjF,OAAE,IAASpH,EAAE,IAAIA,EAAEK,EAAEiuC,GAAGkgB,GAAG,CAACpqB,IAAIj9B,EAAEsnD,GAAG/tD,EAAEguD,GAAGltD,EAAE4pD,GAAG7oD,EAAE8oD,GAAGtnD,EAAE5C,EAAEiG,IAAI,GAAG3F,EAAEpB,EAAE,GAAGkB,EAAElB,EAAE,GAAGoE,EAAE6pC,GAAGkgB,GAAG,CAACpqB,IAAIjjC,EAAEstD,GAAGlsD,EAAEmsD,GAAG3qD,EAAEqnD,GAAG1qD,EAAE2qD,GAAG7pD,EAAEL,EAAEiG,IAAI,GAAGvG,EAAE4D,EAAE,GAAGpD,EAAEoD,EAAE,GAAG4C,EAAEinC,GAAGuf,GAAG,CAACC,QAAQptD,EAAEqtD,QAAQvsD,EAAEwsD,QAAQzrD,EAAE0rD,QAAQlqD,EAAEmqD,eAAezsD,EAAE0sD,eAAe5sD,EAAE6sD,eAAevtD,EAAEwtD,eAAehtD,IAAI,GAAGf,EAAE+G,EAAE,GAAG1C,EAAE0C,EAAE,GAAG/F,EAAE+F,EAAE,GAAGC,EAAED,EAAE,GAAG,MAAM,CAAC,IAAIspB,OAAOjwB,EAAE,KAAKiwB,OAAOnvB,EAAE,MAAMmvB,OAAOlvB,EAAE,KAAKkvB,OAAOpvB,EAAE,KAAKovB,OAAO9vB,EAAE,KAAK8vB,OAAOtvB,EAAE,KAAKsvB,OAAOpuB,EAAE,KAAKouB,OAAO5sB,GAAGzD,EAAEqE,EAAErD,EAAEgG,EAAE,4BAA/qR,SAAS/C,EAAE7D,GAAG,IAAIc,EAAE,IAAI2D,IAAI,OAAOZ,EAAEmB,SAAS,SAASnB,GAAG/C,EAAEyE,IAAI1B,EAAEqgC,GAAI,IAAGlkC,EAAE+rB,QAAQ,SAASloB,GAAG,OAAO/C,EAAEsM,IAAIvJ,EAAEqjB,SAASpmB,EAAEsM,IAAIvJ,EAAEmkD,OAAQ,GAAE,+CAAjzD,SAASnkD,EAAE7D,EAAEc,GAAG,IAAI+C,EAAEqgC,GAAG,MAAM,GAAG,IAAIhhC,EAAE,IAAIuB,IAAI,OAAO3D,EAAEkE,SAAO,SAAWhF,GAAGA,EAAEgoD,SAASnkD,EAAEqgC,IAAIhhC,EAAEqC,IAAIvF,EAAEknB,OAAQ,IAAGlnB,EAAE+rB,QAAQ,SAASloB,GAAG,OAAOX,EAAEkK,IAAIvJ,EAAEqgC,GAAI,GAAE,yBAAgQ,SAASrgC,EAAE7D,GAAG,QAAG,IAASA,IAAIA,EAAE,CAACyqD,WAAW,CAAC,EAAE,KAAK,IAAI5mD,EAAE9B,OAAO,MAAM,CAAC6E,EAAE,EAAED,EAAE,EAAEk3B,MAAM,EAAEC,OAAO,GAAG,IAAIh9B,EAAE+C,EAAEsoB,QAAM,SAAWtoB,EAAE/C,GAAG,IAAIoC,EAAE0nD,GAAG9pD,EAAEd,EAAEyqD,YAAY,OAAOI,GAAGhnD,EAAEX,EAAG,GAAE,CAAC0D,EAAE,IAAID,EAAE,IAAI+jD,IAAG,IAAKC,IAAG,MAAO,OAAOG,GAAGhqD,EAAE,sBAApxB,SAAS+C,EAAE7D,EAAEc,GAAG,IAAI+C,EAAEqgC,GAAG,MAAM,GAAG,IAAIhhC,EAAE,IAAIuB,IAAI,OAAO3D,EAAEkE,SAAO,SAAWhF,GAAGA,EAAEknB,SAASrjB,EAAEqgC,IAAIhhC,EAAEqC,IAAIvF,EAAEgoD,OAAQ,IAAGhoD,EAAE+rB,QAAQ,SAASloB,GAAG,OAAOX,EAAEkK,IAAIvJ,EAAEqgC,GAAI,GAAE,4BAA0za,SAAYrgC,GAAG,IAAI7D,EAAE6D,EAAEupD,QAAQtsD,EAAE+C,EAAEwpD,QAAQnqD,EAAEW,EAAEwmF,eAAe5jF,OAAE,IAASvD,EAAE8pD,iBAAGqB,OAAOnrD,EAAErB,EAAEgC,EAAEypD,QAAQjqD,EAAEQ,EAAE0pD,QAAQ7sD,EAAEmD,EAAE0mF,eAAe9pF,OAAE,IAASC,EAAEssD,QAAEkB,SAACE,IAAI1tD,EAAEpB,EAAEuE,EAAE2mF,aAAa9jF,OAAE,IAASpH,EAAE,EAAEA,EAAEK,EAAEkE,EAAE4hF,QAAQ1kF,EAAE8C,EAAE6hF,QAAQ7kF,EAAEgD,EAAE6mF,OAAO3mF,EAAE6pC,GAAG,SAAS/pC,GAAG,IAAI7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,EAAEgC,EAAEqjB,OAAO7jB,EAAEQ,EAAEwmF,eAAe3pF,OAAE,IAAS2C,EAAE2pD,QAAAA,SAAGqB,OAAOhrD,EAAE5C,EAAEoD,EAAEmkD,OAAO1oD,EAAEuE,EAAE0mF,eAAe7jF,OAAE,IAASpH,EAAE0tD,QAAAA,SAAGoB,IAAI9uD,EAAEK,EAAEkE,EAAE4mF,OAAO1pF,EAAE8C,EAAE6mF,OAAO7pF,EAAE4uD,GAAG/uD,GAAGqD,EAAE0rD,GAAG/oD,GAAGvG,EAAE,CAACyG,EAAE/E,EAAE+E,EAAE/F,EAAE+F,EAAE7F,EAAE4F,EAAE9E,EAAE8E,EAAE9F,EAAE8F,EAAE5F,GAAGJ,EAAE,CAACiG,EAAEnG,EAAEmG,EAAE7C,EAAE6C,EAAE7F,EAAE4F,EAAElG,EAAEkG,EAAE5C,EAAE4C,EAAE5F,GAAG4F,EAA7rB,SAAS9C,GAAG,IAAI7D,EAAE6D,EAAEqjB,OAAOpmB,EAAE+C,EAAEwmF,eAAennF,OAAE,IAASpC,EAAEksD,QAAEkB,SAACG,OAAOvtD,EAAE2F,EAAE5C,EAAEmkD,OAAO,OAAO9kD,IAAI8pD,QAAAA,SAAGiB,MAAM/qD,IAAI8pD,iBAAGmB,MAAMnuD,EAAE4G,EAAEH,EAAEG,EAAE,CAACA,EAAE,EAAED,EAAE,GAAG,CAACC,GAAG,EAAED,EAAE,GAAG3G,EAAE2G,EAAEF,EAAEE,EAAE,CAACC,EAAE,EAAED,EAAE,GAAG,CAACC,EAAE,EAAED,GAAG,EAAE,CAAmhB+6F,CAAG,CAACx6E,OAAO/mB,EAAEkqF,eAAe3pF,EAAEsnD,OAAOrnD,IAAIf,EAAE,IAAI+G,EAAEC,EAAE,IAAI,IAAI3C,EAAE0C,EAAE/G,GAAGgB,EAAE,GAAGgG,EAAE,CAACA,EAAE,EAAED,EAAE,GAAGE,EAAE,CAACD,EAAE,EAAED,EAAE,GAAGG,EAAE8mC,GAAG0gB,GAAG,CAAClB,QAAQvrD,EAAE+E,EAAEymD,QAAQxrD,EAAE8E,EAAE2mD,QAAQ7sD,EAAEmG,EAAE2mD,QAAQ9sD,EAAEkG,IAAI,GAAGnH,EAAEsH,EAAE,GAAGC,EAAED,EAAE,GAAGE,EAAEF,EAAE,GAAGG,EAAEH,EAAE,GAAG,GAAGjG,EAAEjB,GAAGmE,EAAEnE,KAAK,EAAE,CAACsD,EAAE,QAAQlD,EAAEL,EAAEiH,SAAI,IAAS5G,EAAEA,EAAER,EAAEiH,EAAE,QAAQ3F,EAAEnB,EAAEgH,SAAI,IAAS7F,EAAEA,EAAEiG,EAAE,IAAIG,EAAE,CAAC,CAACN,EAAE1D,EAAEyD,EAAExG,EAAEwG,GAAG,CAACC,EAAE1D,EAAEyD,EAAEhG,EAAEgG,IAAIQ,EAAE,CAAC,CAACP,EAAEzG,EAAEyG,EAAED,EAAEF,GAAG,CAACG,EAAEjG,EAAEiG,EAAED,EAAEF,IAAI7F,EAAEC,EAAEjB,KAAKqE,EAAE,MAAMrE,EAAEsH,EAAEC,EAAE,MAAMvH,EAAEuH,EAAED,CAAC,KAAK,CAAC,IAAIE,EAAE,CAAC,CAACR,EAAEzG,EAAEyG,EAAED,EAAEhG,EAAEgG,IAAIU,EAAE,CAAC,CAACT,EAAEjG,EAAEiG,EAAED,EAAExG,EAAEwG,IAAI,GAAG/F,EAAE,MAAMhB,EAAEiB,EAAE+F,IAAI3C,EAAEoD,EAAED,EAAEvG,EAAE8F,IAAI1C,EAAEmD,EAAEC,EAAE3G,IAAIgG,EAAE,CAAC,IAAIY,EAAEwjB,KAAKiT,IAAIl8B,EAAEjC,GAAGa,EAAEb,IAAI,GAAG0H,GAAGvG,EAAE,CAAC,IAAIwG,EAAEujB,KAAK6F,IAAI5vB,EAAE,EAAEA,EAAEuG,GAAGzG,EAAEjB,KAAKqE,EAAE2C,EAAEhH,IAAIO,EAAEP,GAAGiC,EAAEjC,IAAI,EAAE,GAAG2H,EAAEV,EAAEjH,IAAIe,EAAEf,GAAGa,EAAEb,IAAI,EAAE,GAAG2H,CAAC,CAAC,CAAC,GAAG7G,IAAIgG,EAAE,CAAC,IAAIc,EAAE,MAAM5H,EAAE,IAAI,IAAI6H,EAAE5G,EAAEjB,KAAKmE,EAAEyD,GAAGE,EAAEvH,EAAEqH,GAAG7G,EAAE6G,GAAGG,EAAExH,EAAEqH,GAAG7G,EAAE6G,IAAI,IAAI3G,EAAEjB,MAAM6H,GAAGC,GAAGD,GAAGE,IAAI,IAAI9G,EAAEjB,MAAM6H,GAAGE,GAAGF,GAAGC,MAAM9G,EAAE,MAAMhB,EAAEwH,EAAEC,EAAE,CAAC,IAAIO,EAAE,CAAChB,EAAEzG,EAAEyG,EAAEA,EAAEA,EAAED,EAAExG,EAAEwG,EAAEC,EAAED,GAAGkB,EAAE,CAACjB,EAAEjG,EAAEiG,EAAEC,EAAED,EAAED,EAAEhG,EAAEgG,EAAEE,EAAEF,GAAGmkB,KAAKC,IAAID,KAAKiT,IAAIn2B,EAAEhB,EAAEhG,EAAE,GAAGgG,GAAGkkB,KAAKiT,IAAIl2B,EAAEjB,EAAEhG,EAAE,GAAGgG,KAAKkkB,KAAKC,IAAID,KAAKiT,IAAIn2B,EAAEjB,EAAE/F,EAAE,GAAG+F,GAAGmkB,KAAKiT,IAAIl2B,EAAElB,EAAE/F,EAAE,GAAG+F,KAAKzD,GAAG0E,EAAEhB,EAAEiB,EAAEjB,GAAG,EAAEH,EAAE7F,EAAE,GAAG+F,IAAIzD,EAAEtC,EAAE,GAAGgG,EAAEH,GAAGmB,EAAEjB,EAAEkB,EAAElB,GAAG,EAAE,CAAC,MAAM,CAAConC,GAAGA,GAAG,CAAClsC,EAAE,CAAC+E,EAAEzG,EAAEyG,EAAEA,EAAEA,EAAED,EAAExG,EAAEwG,EAAEC,EAAED,IAAIinC,GAAGhtC,IAAG,GAAI,CAAC,CAACgG,EAAEjG,EAAEiG,EAAEC,EAAED,EAAED,EAAEhG,EAAEgG,EAAEE,EAAEF,GAAGlG,IAAG,GAAIyC,EAAEuD,EAAEO,EAAEC,EAAE,CAA7sC,CAA+sC,CAACigB,OAAO,CAACtgB,EAAE5G,EAAE2G,EAAE7F,GAAGupF,eAAe5jF,EAAEuhD,OAAO,CAACphD,EAAE/E,EAAE8E,EAAEtD,GAAGknF,eAAe9pF,EAAEgqF,OAAO,CAAC7jF,EAAEjH,EAAEgH,EAAE5F,GAAG2pF,YAAO,IAAS7pF,EAAE,GAAGA,IAAI,GAAGV,EAAE4D,EAAE,GAAGpD,EAAEoD,EAAE,GAAG4C,EAAE5C,EAAE,GAAGnE,EAAEmE,EAAE,GAAGE,EAAEF,EAAE,GAAGnD,EAAET,EAAEgsB,QAAM,SAAWtoB,EAAE7D,EAAEc,GAAG,IAAIoC,EAAK,OAAOA,EAAEpC,EAAE,GAAGA,EAAEX,EAAE4B,OAAO,EAAE,SAAS8B,EAAE7D,EAAEc,EAAEoC,GAAG,IAAIuD,EAAEqkB,KAAK6F,IAAI++B,GAAG7rD,EAAE7D,GAAG,EAAE0vD,GAAG1vD,EAAEc,GAAG,EAAEoC,GAAGrB,EAAE7B,EAAE4G,EAAEvD,EAAErD,EAAE2G,EAAE,GAAG9C,EAAE+C,IAAI/E,GAAGA,IAAIf,EAAE8F,GAAG/C,EAAE8C,IAAItD,GAAGA,IAAIvC,EAAE6F,EAAE,MAAM,IAAIspB,OAAOpuB,EAAE,KAAKouB,OAAO5sB,GAAG,GAAGQ,EAAE8C,IAAItD,EAAE,CAAC,IAAI3C,EAAEmD,EAAE+C,EAAE9F,EAAE8F,GAAG,EAAE,EAAEnG,EAAEoD,EAAE8C,EAAE7F,EAAE6F,EAAE,GAAG,EAAE,MAAM,KAAKspB,OAAOpuB,EAAE4E,EAAE/F,EAAE,KAAKuvB,OAAO5sB,EAAE,MAAM4sB,OAAOpuB,EAAE,KAAKouB,OAAO5sB,EAAE,KAAK4sB,OAAOpuB,EAAE,KAAKouB,OAAO5sB,EAAEoD,EAAEhG,EAAE,CAAC,IAAInB,EAAEuE,EAAE+C,EAAE9F,EAAE8F,EAAE,GAAG,EAAEF,EAAE7C,EAAE8C,EAAE7F,EAAE6F,GAAG,EAAE,EAAE,MAAM,KAAKspB,OAAOpuB,EAAE,KAAKouB,OAAO5sB,EAAEoD,EAAEC,EAAE,MAAMupB,OAAOpuB,EAAE,KAAKouB,OAAO5sB,EAAE,KAAK4sB,OAAOpuB,EAAE4E,EAAEnH,EAAE,KAAK2wB,OAAO5sB,EAAE,CAAna,CAAqalD,EAAEW,EAAE,GAAGd,EAAEG,EAAEW,EAAE,GAAG4F,GAAG,GAAGupB,OAAO,IAAInvB,EAAE,IAAI,KAAKmvB,OAAOjwB,EAAE4G,EAAE,KAAKqpB,OAAOjwB,EAAE2G,GAAG9C,EAAGX,CAAE,GAAE,IAAI,MAAM,CAACtC,EAAED,EAAEgG,EAAE/G,EAAEqE,EAAE,0BAAxtF,SAAYJ,GAAG,IAAI7D,EAAE6D,EAAEupD,QAAQtsD,EAAE+C,EAAEwpD,QAAQnqD,EAAEW,EAAEypD,QAAQ7mD,EAAE5C,EAAE0pD,QAAQ1rD,EAAE+rC,GAAG0gB,GAAG,CAAClB,QAAQptD,EAAEqtD,QAAQvsD,EAAEwsD,QAAQpqD,EAAEqqD,QAAQ9mD,IAAI,GAAGpD,EAAExB,EAAE,GAAGnB,EAAEmB,EAAE,GAAGpB,EAAEoB,EAAE,GAAGvC,EAAEuC,EAAE,GAAG,MAAM,CAAC,KAAKouB,OAAOjwB,EAAE,KAAKiwB,OAAOnvB,EAAE,MAAMmvB,OAAO/sB,EAAE,KAAK+sB,OAAOxpB,GAAGpD,EAAE3C,EAAED,EAAEnB,EAAE,+BAA54M,SAASuE,EAAE7D,EAAEc,EAAEoC,EAAEuD,EAAE5E,GAAG,IAAIwB,EAAErD,GAAG6D,EAAEg6B,OAAO,EAAEh8B,IAAInB,EAAEI,GAAG+C,EAAEi6B,QAAQ,EAAEj8B,IAAIpB,EAAEqqB,KAAK6F,IAAIttB,EAAE3C,GAAGpB,EAAEosD,GAAGjrD,EAAEyC,EAAEuD,GAAG,MAAM,CAACG,EAAE5G,EAAE,GAAG6D,EAAE+C,EAAE/C,EAAEg6B,MAAM,GAAGv+B,EAAEqH,EAAE7F,EAAE,GAAG+C,EAAE8C,EAAE9C,EAAEi6B,OAAO,GAAGx+B,EAAEyqE,KAAKzqE,EAAE,qBAA8zK,SAASuE,EAAE7D,EAAEc,EAAEoC,QAAG,IAASA,IAAIA,EAAE,CAACy+F,iBAAgB,IAAK,IAAIl7F,EAAE5C,EAAEqgC,GAAGriC,EAAE,SAASgC,EAAE7D,GAAG,IAAIc,EAAE,CAAA,EAAG,IAAI,IAAIoC,KAAKW,EAAEhE,OAAOC,UAAUC,eAAeiB,KAAK6C,EAAEX,IAAIlD,EAAEgqC,QAAQ9mC,GAAG,IAAIpC,EAAEoC,GAAGW,EAAEX,IAAI,GAAG,MAAMW,GAAG,mBAAmBhE,OAAO6lB,sBAAsB,CAAC,IAAIjf,EAAE,EAAE,IAAIvD,EAAErD,OAAO6lB,sBAAsB7hB,GAAG4C,EAAEvD,EAAEnB,OAAO0E,IAAIzG,EAAEgqC,QAAQ9mC,EAAEuD,IAAI,GAAG5G,OAAOC,UAAU0P,qBAAqBxO,KAAK6C,EAAEX,EAAEuD,MAAM3F,EAAEoC,EAAEuD,IAAI5C,EAAEX,EAAEuD,IAAI,CAAC,OAAO3F,CAAC,CAAxU,CAA0U+C,EAAE,CAAC,OAAO,IAAI7D,EAAEknB,SAASlnB,EAAEgoD,OAAO,OAAqBlnD,EAAE,IAAIA,EAAEo5B,MAAI,SAAWl6B,GAAG,OAAOA,EAAEkkC,KAAKrgC,EAAEqgC,EAAG,IAAG,OAAsBpjC,EAAE,IAAIuC,EAAEkqC,GAAGA,GAAG,CAAE,EAAC1rC,GAAG,CAACqiC,GAAGhhC,EAAEy+F,gBAAgBnyC,GAAGxvD,GAAGyG,EAAEygB,OAAOlnB,EAAEknB,OAAO8gC,OAAOhoD,EAAEgoD,OAAOuB,aAAavpD,EAAEupD,aAAaC,aAAaxpD,EAAEwpD,eAAe,OAAO1oD,EAAEirB,iBAAiBloB,GAAG,OAAOA,EAAEqgC,KAAKz9B,CAAE,IAAGwpB,OAAO5sB,EAAE,wB2ESx09I,SACJ27F,GAEM,IAAAj7E,EAAA4rD,EAAoB7sE,EAAQA,SAACk8F,GAAa,GAAzCtvE,EAAK3L,EAAA,GAAEygE,OACRE,EAAyCV,EAAAA,aAC7C,SAACvS,GAAY,OAAA+S,GAAS,SAACod,GAAQ,OAAAtnB,GAAiB7I,EAASmwB,EAAI,GAAC,GAC9D,IAGF,MAAO,CAAClyE,EAAO80D,EAAUE,EAC3B,8CCVM,SACJqa,GAEM,IAAAh7E,EAAA4rD,EAAoB7sE,EAAQA,SAACi8F,GAAa,GAAzC5wE,EAAKpK,EAAA,GAAEuK,OACR41D,EAAyCF,EAAAA,aAC7C,SAACvS,GAAY,OAAAnjD,GAAS,SAACuzE,GAAQ,OAAAtnB,GAAiB9I,EAASowB,EAAI,GAAC,GAC9D,IAGF,MAAO,CAAC1zE,EAAOG,EAAU41D,EAC3B","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,16]}