@wbiokr/arrow 0.0.2 → 0.0.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.cjs.js","sources":["../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/selection/select.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.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/filter.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.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/sort.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/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/append.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/datum.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/select.js","../node_modules/@wbiokr/keybinding/dist/ui.js","../src/editor.js"],"sourcesContent":["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","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","// 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","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","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","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(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","export default function(x) {\n return function() {\n return x;\n };\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 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","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","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 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\";\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","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","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\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","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","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{select as n}from\"d3-selection\";let D;function L(A){const B=typeof A;if(B==\"number\"||B==\"boolean\"||A==null)return`${A}`;if(B==\"string\")return`\"${A}\"`;if(B==\"symbol\"){const C=A.description;return C==null?\"Symbol\":`Symbol(${C})`}if(B==\"function\"){const C=A.name;return typeof C==\"string\"&&C.length>0?`Function(${C})`:\"Function\"}if(Array.isArray(A)){const C=A.length;let E=\"[\";C>0&&(E+=L(A[0]));for(let I=1;I<C;I++)E+=\", \"+L(A[I]);return E+=\"]\",E}const Q=/\\[object ([^\\]]+)\\]/.exec(toString.call(A));let g;if(Q&&Q.length>1)g=Q[1];else return toString.call(A);if(g==\"Object\")try{return\"Object(\"+JSON.stringify(A)+\")\"}catch{return\"Object\"}return A instanceof Error?`${A.name}: ${A.message}\n${A.stack}`:g}let o=0,F=null;function y(){return(F===null||F.byteLength===0)&&(F=new Uint8Array(D.memory.buffer)),F}const s=new TextEncoder;\"encodeInto\"in s||(s.encodeInto=function(A,B){const Q=s.encode(A);return B.set(Q),{read:A.length,written:Q.length}});function k(A,B,Q){if(Q===void 0){const i=s.encode(A),N=B(i.length,1)>>>0;return y().subarray(N,N+i.length).set(i),o=i.length,N}let g=A.length,C=B(g,1)>>>0;const E=y();let I=0;for(;I<g;I++){const i=A.charCodeAt(I);if(i>127)break;E[C+I]=i}if(I!==g){I!==0&&(A=A.slice(I)),C=Q(C,g,g=I+A.length*3,1)>>>0;const i=y().subarray(C+I,C+g),N=s.encodeInto(A,i);I+=N.written,C=Q(C,g,I,1)>>>0}return o=I,C}let M=null;function j(){return(M===null||M.buffer.detached===!0||M.buffer.detached===void 0&&M.buffer!==D.memory.buffer)&&(M=new DataView(D.memory.buffer)),M}let J=new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0});J.decode();const l=2146435072;let h=0;function X(A,B){return h+=B,h>=l&&(J=new TextDecoder(\"utf-8\",{ignoreBOM:!0,fatal:!0}),J.decode(),h=B),J.decode(y().subarray(A,A+B))}function a(A,B){return A=A>>>0,X(A,B)}function d(A){const B=k(A,D.__wbindgen_malloc,D.__wbindgen_realloc),Q=o,g=D.get_modifier_code(B,Q);let C;return g[0]!==0&&(C=a(g[0],g[1]).slice(),D.__wbindgen_free(g[0],g[1]*1,1)),C}function p(A){const B=k(A,D.__wbindgen_malloc,D.__wbindgen_realloc),Q=o,g=D.get_key_code(B,Q);return g===16777215?void 0:g}function S(A){const B=k(A,D.__wbindgen_malloc,D.__wbindgen_realloc),Q=o;return D.get_key_value(B,Q)}const f=new Set([\"basic\",\"cors\",\"default\"]);async function W(A,B){if(typeof Response==\"function\"&&A instanceof Response){if(typeof WebAssembly.instantiateStreaming==\"function\")try{return await WebAssembly.instantiateStreaming(A,B)}catch(g){if(A.ok&&f.has(A.type)&&A.headers.get(\"Content-Type\")!==\"application/wasm\")console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\",g);else throw g}const Q=await A.arrayBuffer();return await WebAssembly.instantiate(Q,B)}else{const Q=await WebAssembly.instantiate(A,B);return Q instanceof WebAssembly.Instance?{instance:Q,module:A}:Q}}function x(){const A={};return A.wbg={},A.wbg.__wbg___wbindgen_debug_string_df47ffb5e35e6763=function(B,Q){const g=L(Q),C=k(g,D.__wbindgen_malloc,D.__wbindgen_realloc),E=o;j().setInt32(B+4*1,E,!0),j().setInt32(B+4*0,C,!0)},A.wbg.__wbg___wbindgen_throw_b855445ff6a94295=function(B,Q){throw new Error(a(B,Q))},A.wbg.__wbg_new_1acc0b6eea89d040=function(){return new Object},A.wbg.__wbg_new_e17d9f43105b08be=function(){return new Array},A.wbg.__wbg_set_3f1d0b984ed272ed=function(B,Q,g){B[Q]=g},A.wbg.__wbg_set_c213c871859d6500=function(B,Q,g){B[Q>>>0]=g},A.wbg.__wbindgen_cast_2241b6af4c4b2941=function(B,Q){return a(B,Q)},A.wbg.__wbindgen_init_externref_table=function(){const B=D.__wbindgen_externrefs,Q=B.grow(4);B.set(0,void 0),B.set(Q+0,void 0),B.set(Q+1,null),B.set(Q+2,!0),B.set(Q+3,!1)},A}function K(A,B){return D=A.exports,m.__wbindgen_wasm_module=B,M=null,F=null,D.__wbindgen_start(),D}async function m(A){if(D!==void 0)return D;typeof A<\"u\"&&(Object.getPrototypeOf(A)===Object.prototype?{module_or_path:A}=A:console.warn(\"using deprecated parameters for the initialization function; pass a single object instead\")),typeof A>\"u\"&&(A=new URL(\"data:application/wasm;base64,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A0EDdEH81sAAaigCACABSxsiAyADQQFqIgMgA0EDdEH81sAAaigCACABSxsiAyADQQFqIgMgA0EDdEH81sAAaigCACABSxsiA0EDdEH81sAAaigCACIEIAFHDQECQCADIAQgAUlqIgFBmQtLDQBB6QAgAUEDdEGA18AAaigCACIBIAFBgLADc0GAgLx/akGAkLx/SSICGyEBQYcGQQAgAhshAgwCC0GaC0GaC0Hs1sAAEDcACyABQb9/akEaSUEFdCABciEBQQAhAgsgAEEANgIIIAAgAjYCBCAAIAE2AgAL8QMBAn8gACABaiECAkACQCAAKAIEIgNBAXENACADQQJxRQ0BIAAoAgAiAyABaiEBAkAgACADayIAQQAoAsS0QUcNACACKAIEQQNxQQNHDQFBACABNgK8tEEgAiACKAIEQX5xNgIEIAAgAUEBcjYCBCACIAE2AgAMAgsgACADEBwLAkACQAJAAkAgAigCBCIDQQJxDQAgAkEAKALItEFGDQIgAkEAKALEtEFGDQMgAiADQXhxIgMQHCAAIAMgAWoiAUEBcjYCBCAAIAFqIAE2AgAgAEEAKALEtEFHDQFBACABNgK8tEEPCyACIANBfnE2AgQgACABQQFyNgIEIAAgAWogATYCAAsCQCABQYACSQ0AIAAgARAjDwsgAUH4AXFBrLLBAGohAgJAAkBBACgCtLRBIgNBASABQQN2dCIBcQ0AQQAgAyABcjYCtLRBIAIhAQwBCyACKAIIIQELIAIgADYCCCABIAA2AgwgACACNgIMIAAgATYCCA8LQQAgADYCyLRBQQBBACgCwLRBIAFqIgE2AsC0QSAAIAFBAXI2AgQgAEEAKALEtEFHDQFBAEEANgK8tEFBAEEANgLEtEEPC0EAIAA2AsS0QUEAQQAoAry0QSABaiIBNgK8tEEgACABQQFyNgIEIAAgAWogATYCAA8LC64DAgd/An4jAEEQayICJAACQAJAIAENAEEAIQFB+K3AACEDDAELIAEoAgAhAyABQQA2AgAgAUEIakH4rcAAIANBAXEiBBshAyABKAIEQQAgBBshAQsgAkEIaiADQQhqKQIAIgk3AwAgACgCACEFIAMpAgAhCiAAQQE2AgAgACgCCCEGIAAoAgwhByAAIAo3AgggACgCFCEEIABBEGogCTcCACAAIAE2AgQgAiAKNwMA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AEGBAhAQAkACQCACLQANIgNBgQFJDQAgBCACKAIAIAERBgBFDQFBASEDDAILIAQgAiACLQAMIgBqIAMgAGsgBSgCDBEKAEUNAEEBIQMMAQsgBEEnIAERBgAhAwsgAkEQaiQAIAMLhwEBAX8jAEEgayICJAACQAJAIAAoAgBBgICAgHhGDQAgASAAKAIEIAAoAggQayEADAELIAJBCGpBCGogACgCDCgCACIAQQhqKQIANwMAIAJBCGpBEGogAEEQaikCADcDACACIAApAgA3AwggASgCACABKAIEIAJBCGoQFCEACyACQSBqJAAgAAt6AQF/IwBBwABrIgUkACAFIAE2AgwgBSAANgIIIAUgAzYCFCAFIAI2AhAgBUECNgIcIAVBzMPAADYCGCAFQgI3AiQgBUEkrUIghiAFQRBqrYQ3AzggBUElrUIghiAFQQhqrYQ3AzAgBSAFQTBqNgIgIAVBGGogBBBMAAuKAQEBfwJAAkACQCAAQYQBSQ0AIADQbyYBQQAoAsywQQ0CQQBBfzYCzLBBIABBACgC4LBBIgFJDQEgACABayIAQQAoAtiwQU8NAUEAKALUsEEgAEECdGpBACgC3LBBNgIAQQAgADYC3LBBQQBBACgCzLBBQQFqNgLMsEELDwsQlAEAC0HsrsAAED0AC2gCAX8BfiMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQbjDwAA2AgggA0ICNwIUIANBEq1CIIYiBCADrYQ3AyggAyAEIANBBGqthDcDICADIANBIGo2AhAgA0EIaiACEEwAC2gCAX8BfiMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQbTTwAA2AgggA0ICNwIUIANBEq1CIIYiBCADQQRqrYQ3AyggAyAEIAOthDcDICADIANBIGo2AhAgA0EIaiACEEwAC2gCAX8BfiMAQTBrIgMkACADIAE2AgQgAyAANgIAIANBAjYCDCADQejTwAA2AgggA0ICNwIUIANBEq1CIIYiBCADQQRqrYQ3AyggAyAEIAOthDcDICADIANBIGo2AhAgA0EIaiACEEwAC2kBAX8jAEEwayICJAACQEEALQDksEENACACQTBqJAAPCyACQQI2AgwgAkHksMAANgIIIAJCATcCFCACIAE2AiwgAkESrUIghiACQSxqrYQ3AyAgAiACQSBqNgIQIAJBCGpB9LDAABBMAAtgAQJ/AkACQCAAQXxqKAIAIgNBeHEiBEEEQQggA0EDcSIDGyABakkNAAJAIANFDQAgBCABQSdqSw0CCyAAEBEPC0HAr8AAQS5B8K/AABBFAAtBgLDAAEEuQbCwwAAQRQALUAEBfwJAIAIgACgCACAAKAIIIgNrTQ0AIAAgAyACQQFBARAmIAAoAgghAwsCQCACRQ0AIAAoAgQgA2ogASAC/AoAAAsgACADIAJqNgIIQQALSwEBfyMAQTBrIgEkACABQQE2AgwgAUG4wsAANgIIIAFCATcCFCABQSOtQiCGIAFBL2qthDcDICABIAFBIGo2AhAgAUEIaiAAEEwAC0oBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASAAQQFqIQAgAUEBaiEBIAJBf2oiAkUNAgwACwsgBCAFayEDCyADC0QBAX8gAkEQdiACQf//A3FBAEdqIgNAACECIABBADYCCCAAQQAgA0EQdCACQX9GIgMbNgIEIABBACACQRB0IAMbNgIAC08BAX8jAEEgayICJAACQCABRQ0AIAJBADYCGCACQQE2AgwgAkH4scAANgIIIAJCBDcCECACQQhqQYCywAAQTAALIABBADYCACACQSBqJAALTwECfyAAKAIEIQIgACgCACEDAkAgACgCCCIALQAARQ0AIANB9MPAAEEEIAIoAgwRCgBFDQBBAQ8LIAAgAUEKRjoAACADIAEgAigCEBEGAAtSAQJ/QQAhAUEAQQAoApixQSICQQFqNgKYsUECQCACQQBIDQBBASEBQQAtAOS0QQ0AQQAgADoA5LRBQQBBACgC4LRBQQFqNgLgtEFBAiEBCyABCz8BAX8jAEEgayICJAAgAkEIaiAAKAIAIAJBFmpBChAgIAFBAUEBQQAgAigCCCACKAIMEA8hACACQSBqJAAgAAtJAQJ/IAEoAgQhAiABKAIAIQMQkQECQEEIQQQQciIBDQBBBEEIEIYBAAsgASACNgIEIAEgAzYCACAAQZSxwAA2AgQgACABNgIAC0EBAX8jAEEgayIDJAAgA0EANgIQIANBATYCBCADQgQ3AgggAyABNgIcIAMgADYCGCADIANBGGo2AgAgAyACEEwACzkAAkAgAkGAgMQARg0AIAAgAiABKAIQEQYARQ0AQQEPCwJAIAMNAEEADwsgACADIAQgASgCDBEKAAs2AQF/IwBBIGsiASQAIAFBADYCGCABQQE2AgwgAUGkssAANgIIIAFCBDcCECABQQhqIAAQTAALOQEBf0EBIQICQCAAIAEQIg0AIAEoAgBBpMLAAEECIAEoAgQoAgwRCgANACAAQQRqIAEQIiECCyACCzQBAX8jAEEQayICJAAgAiAANgIMIAFBkIDAAEEFIAJBDGpBgIDAABAnIQAgAkEQaiQAIAALKwACQCAAIAEQY0UNAAJAIABFDQAQkQEgACABEHIiAUUNAQsgAQ8LEI8BAAstAgF/AX4jAEEQayIBJAAgACkCACECIAEgADYCDCABIAI3AgQgAUEEahCOAQALKgEBfyMAQRBrIgIkACACQQE7AQwgAiABNgIIIAIgADYCBCACQQRqEEsACyUAAkACQCABIAMQY0UNACAAIAEgAyACEGYiAw0BCxCPAQALIAMLJgEBfyMAQRBrIgIkACACIAAgARAWIAIoAgAgAigCBCACQRBqJAALJgACQCAADQBBqK7AAEEyEIMBAAsgACACIAMgBCAFIAEoAhARDgALJAACQCAADQBBqK7AAEEyEIMBAAsgACACIAMgBCABKAIQEQsACyQAAkAgAA0AQaiuwABBMhCDAQALIAAgAiADIAQgASgCEBEXAAskAAJAIAANAEGorsAAQTIQgwEACyAAIAIgAyAEIAEoAhARCwALJAACQCAADQBBqK7AAEEyEIMBAAsgACACIAMgBCABKAIQEQwACyQAAkAgAA0AQaiuwABBMhCDAQALIAAgAiADIAQgASgCEBELAAskAAJAIAANAEGorsAAQTIQgwEACyAAIAIgAyAEIAEoAhARDAALJAACQCAADQBBqK7AAEEyEIMBAAsgACACIAMgBCABKAIQERYACyQAAkAgAA0AQaiuwABBMhCDAQALIAAgAiADIAQgASgCEBEYAAspAQF/AkAgACgCACIBQYCAgIB4ckGAgICAeEYNACAAKAIEIAFBARB7CwsgAAJAIAFFDQAgAiADEIYBAAsgACADNgIEIAAgAjYCAAsiAAJAIAANAEGorsAAQTIQgwEACyAAIAIgAyABKAIQEQkACyAAAkAgAA0AQaiuwABBMhCDAQALIAAgAiABKAIQEQYACx4BAX8QkgEhAyAAQQA2AgggACADNgIEIAAgATYCAAscAQF/AkAgACgCACIBRQ0AIAAoAgQgAUEBEHsLCx8AAkAgAEGAgICAeHJBgICAgHhGDQAgASAAQQEQewsLFwACQCABQQlJDQAgASAAEBoPCyAAEAkLFwACQCAARQ0AIAAgARCGAQALIAIQRwALGAAgACUBIAElASABEDYgAiUBIAIQNhAACxoBAX8gASAAQQAoAoixQSICQRMgAhsRBQAACxUAIAFpQQFGIABBgICAgHggAWtNcQsWAAJAIAAoAgAiAEGEAUkNACAAEDYLCxgCAX8BbyAAIAEQByEDEBsiAiADJgEgAgsTAQF/IAAgASACIAMQDSEEIAQPCxQAIAAgBSAGEBM2AgQgAEEANgIACxQAIAAgAiADEGU2AgQgAEEANgIACxIAAkAgAUUNACAAIAEgAhB7CwsVACAAIAEQkAEaQYCAgIB4IAEQXgALFgAgACgCACABIAIgACgCBCgCDBEKAAsSACAAJQEgASACJQEgAhA2EAMLFAAgACgCACABIAAoAgQoAgwRBgALDwAgACABIAIgAyAEEAsACxQCAX8BbxABIQEQGyIAIAEmASAACxQCAX8BbxACIQEQGyIAIAEmASAACxIBAX8gACABEA4iAiUBIAIQNgsPAQF/IAAgARBfIQIgAg8LEQAgABCTATYCBCAAIAE2AgALEQAgACgCBCAAKAIIIAEQiQELIAAgAELfnp2YnLeWuAI3AwggAEKh7ayM+fScuAc3AwALIgAgAELtuq22zYXU9eMANwMIIABC+IKZvZXuxsW5fzcDAAsTACAAQZSxwAA2AgQgACABNgIACxAAIAEgACgCACAAKAIEEGsLEAAgASAAKAIAIAAoAgQQEgsQAQF/EBsiASAAJQEmASABCwsAIAAgASACEDsPCw0AIAAoAgAgASACEGELDQAgACgCACABIAIQbAsLACAAIAEgAhA4AAsLACAAIAEgAhA5AAsOAEHYwsAAQSsgABBFAAsLACAAKAIAIAEQLgsJACAAIAEQYg8LCgAgACABEIwBAAsNACAAQaivwAAgARAUCwwAIAAgASkCADcDAAsKACABIAAQggEACw0AIAFBwMLAAEEYEBILDQAgAEHcw8AAIAEQFAsKACACIAAgARASCwoAIAAgASUBEAQLCAAgACABEGULCAAgACABEAULCQAgAEEANgIACwcAIAAQLwALBgAQlAEACwYAEJQBAAsDAA8LBAAQbwsEABBwCwMAAAsL97ABAgBBgIDAAAvMsAEAAAAABAAAAAQAAAABAAAARXJyb3JDOlxVc2Vyc1wwMTM5NDI2OVwuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHdhc20tYmluZGdlbi0wLjIuMTA1XHNyY1xjb252ZXJ0XHNsaWNlcy5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAQzpcVXNlcnNcMDEzOTQyNjlcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zlx3YXNtLWJpbmRnZW4tMC4yLjEwNVxzcmNcZXh0ZXJucmVmLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAQzpcVXNlcnNcMDEzOTQyNjlcLnJ1c3R1cFx0b29sY2hhaW5zXHN0YWJsZS14ODZfNjQtcGMtd2luZG93cy1nbnVcbGliL3J1c3RsaWIvc3JjL3J1c3RcbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS40L3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL21vZC5ycwAvcnVzdGMvMjk0ODM4ODNlZWQ2OWQ1ZmI0ZGIwMTk2NGNkZjJhZjRkODZlOWNiMi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi45L3NyYy9kbG1hbGxvYy5ycwBsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnMAQzpcVXNlcnNcMDEzOTQyNjlcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxzZXJkZS13YXNtLWJpbmRnZW4tMC42LjVcc3JjXGxpYi5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzADMBEAByAAAAwQEAAB0AAABLZXlWYWx1ZXR5cGVTdHJ2YWx1ZUFycnNoaWZ0U2hpZnTih6fi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AQoBMgMkBQEIPgEMAjQJCgQCAV8DAgEBAgYBAgGdAQMIFQI5AgMBJQcDBUYGDQEBAQEBDgJVCAIDAQEXAVQGAQEEAgEC7gQGAgECGwJVCAIBAQJqAQEBAgYBAWUBAQECBAEFAAkBAgACAQEEAZAEAgIEASAKKAYCBAgBCQYCAy4NAQIABwEGAQFSFgIHAQIBAnoGAwEBAgEHAQFIAgMBAQEAAgsCNAUFAQEBFwEAEQYPAAwDAwAFOwcJBAADKAIAAT8RQAIBAgAEAQcBAgACAQQALgIXAAMJEAIHHgSUAwA3BDIIAQ4BFgUBDwAHARECBwECAQUFPiEBoA4AAT0EAAX+AgAHbQgABQABHmCA8ABBGgYaLwEKAQQBBRcBHwHDAQQE0AEkBwIeBWABKgQCAgIEAQEGAQEDAQEBFAFTAYsIpgEmCSkAJgEBBQECKwEEAFYCBgALBSsCA0DAQAACBgImAgYCCAEBAQEBAQEfAjUBBwEBAwMBBwMEAgYEDQUDAQd0AQ0BEA1lAQQBAgoBAQMFBgEBAQEBAQQBBgQBAgQFBQQBESADAgA0AOUGBAMCDCYBAQUBAC4SHoRmAwQBPgICAQEBCBUFAQMAKwEOBlAABwwFABoGGgBQYCQEJHQLAQ8BBwECAQsBDwEHAQIAAQIDASoBCQAzDTNdFgoWAEAAQABVAUcBAgIBAgICBAEMAQEBBwFBAQQCCAEHARwBBAEFAQEDBwEAAhkBGQEfARkBHwEZAR8BGQEfARkBCAAKARQGBgA+AEQAGgYaBhoAAHAABwAtAQEBAgECAQFICzAVEAFlBwIGAgIBBCMBHhtbCzoJCQEYBAEJAQMBBSsDOwkqGAEgNwEBAQQIBAEDBwoCHQE6AQEBAgQIAQkBCgIaAQICOQEEAgQCAgMDAR4CAwELAjkBBAUBAgQBFAIWBgEBOgEBAgEECAEHAwoCHgE7AQEBDAEJASgBAwE3AQEDBQMBBAcCCwIdAToBAgIBAQMDAQQHAgsCHAI5AgEBAgQIAQkBCgIdAUgBBAECAwEBCAFRAQIHDAhiAQIJCwdJAhsBAQEBATcOAQUBAgULASQJAWYEAQYBAgICGQIEAxAEDQECAgYBDwEAAwAEHAMdAh4CQAIBBwgBAgsJAS0DAQF1AiIBdgMEAgkBBgPbAgIBOgEBBwEBAQECCAYKAgEwHzEEMAoE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AQAARQEAAEYBAABHAQAASAEAAEoBAABLAQAATAEAAE0BAABOAQAATwEAAFABAABRAQAAUgEAAFMBAABUAQAAVQEAAFYBAABXAQAAWAEAAFkBAABaAQAAWwEAAFwBAABdAQAAXgEAAF8BAABgAQAAYQEAAGIBAABjAQAAZAEAAGUBAABmAQAAZwEAAGgBAABpAQAAagEAAGsBAABsAQAAbQEAAG4BAABvAQAAcAEAAHEBAAByAQAAcwEAAHQBAAB1AQAAdgEAAHcBAAB4AQAA/wAAAHkBAAB6AQAAewEAAHwBAAB9AQAAfgEAAIEBAABTAgAAggEAAIMBAACEAQAAhQEAAIYBAABUAgAAhwEAAIgBAACJAQAAVgIAAIoBAABXAgAAiwEAAIwBAACOAQAA3QEAAI8BAABZAgAAkAEAAFsCAACRAQAAkgEAAJMBAABgAgAAlAEAAGMCAACWAQAAaQIAAJcBAABoAgAAmAEAAJkBAACcAQAAbwIAAJ0BAAByAgAAnwEAAHUCAACgAQAAoQEAAKIBAACjAQAApAEAAKUBAACmAQAAgAIAAKcBAACoAQAAqQEAAIMCAACsAQAArQEAAK4BAACIAgAArwEAALABAACxAQAAigIAALIBAACLAgAAswEAALQBAAC1AQAAtgEAALcBAACSAgAAuAEAALkBAAC8AQAAvQEAAMQBAADGAQAAxQEAAMYBAADHAQAAyQEAAMgBAADJAQAAygEAAMwBAADLAQAAzAEAAM0BAADOAQAAzwEAANABAADRAQAA0gEAANMBAADUAQAA1QEAANYBAADXAQAA2AEAANkBAADaAQAA2wEAANwBAADeAQAA3wEAAOABAADhAQAA4gEAAOMBAADkAQAA5QEAAOYBAADnAQAA6AEAAOkBAADqAQAA6wEAAOwBAADtAQAA7gEAAO8BAADxAQAA8wEAAPIBAADzAQAA9AEAAPUBAAD2AQAAlQEAAPcBAAC/AQAA+AEAAPkBAAD6AQAA+wEAAPwBAAD9AQAA/gEAAP8BAAAAAgAAAQIAAAICAAADAgAABAIAAAUCAAAGAgAABwIAAAgCAAAJAgAACgIAAAsCAAAMAgAADQIAAA4CAAAPAgAAEAIAABECAAASAgAAEwIAABQCAAAVAgAAFgIAABcCAAAYAgAAGQIAABoCAAAbAgAAHAIAAB0CAAAeAgAAHwIAACACAACeAQAAIgIAACMCAAAkAgAAJQIAACYCAAAnAgAAKAIAACkCAAAqAgAAKwIAACwCAAAtAgAALgIAAC8CAAAwAgAAMQIAADICAAAzAgAAOgIAAGUsAAA7AgAAPAIAAD0CAACaAQAAPgIAAGYsAABBAgAAQgIAAEMCAACAAQAARAIAAIkCAABFAgAAjAIAAEYCAABHAgAASAIAAEkCAABKAgAASwIAAEwCAABNAgAATgIAAE8CAABwAwAAcQMAAHIDAABzAwAAdgMAAHcDAAB/AwAA8wMAAIYDAACsAwAAiAMAAK0DAACJAwAArgMAAIoDAACvAwAAjAMAAMwDAACOAwAAzQMAAI8DAADOAwAAkQMAALEDAACSAwAAsgMAAJMDAACzAwAAlAMAALQDAACVAwAAtQMAAJYDAAC2AwAAlwMAALcDAACYAwAAuAMAAJkDAAC5AwAAmgMAALoDAACbAwAAuwMAAJwDAAC8AwAAnQMAAL0DAACeAwAAvgMAAJ8DAAC/AwAAoAMAAMADAAChAwAAwQMAAKMDAADDAwAApAMAAMQDAAClAwAAxQMAAKYDAADGAwAApwMAAMcDAACoAwAAyAMAAKkDAADJAwAAqgMAAMoDAACrAwAAywMAAM8DAADXAwAA2AMAANkDAADaAwAA2wMAANwDAADdAwAA3gMAAN8DAADgAwAA4QMAAOIDAADjAwAA5AMAAOUDAADmAwAA5wMAAOgDAADpAwAA6gMAAOsDAADsAwAA7QMAAO4DAADvAwAA9AMAALgDAAD3AwAA+AMAAPkDAADyAwAA+gMAAPsDAAD9AwAAewMAAP4DAAB8AwAA/wMAAH0DAAAABAAAUAQAAAEEAABRBAAAAgQAAFIEAAADBAAAUwQAAAQEAABUBAAABQQAAFUEAAAGBAAAVgQAAAcEAABXBAAACAQAAFgEAAAJBAAAWQQAAAoEAABaBAAACwQAAFsEAAAMBAAAXAQAAA0EAABdBAAADgQAAF4EAAAPBAAAXwQAABAEAAAwBAAAEQQAADEEAAASBAAAMgQAABMEAAAzBAAAFAQAADQEAAAVBAAANQQAABYEAAA2BAAAFwQAADcEAAAYBAAAOAQAABkEAAA5BAAAGgQAADoEAAAbBAAAOwQAABwEAAA8BAAAHQQAAD0EAAAeBAAAPgQAAB8EAAA/BAAAIAQAAEAEAAAhBAAAQQQAACIEAABCBAAAIwQAAEMEAAAkBAAARAQAACUEAABFBAAAJgQAAEYEAAAnBAAARwQAACgEAABIBAAAKQQAAEkEAAAqBAAASgQAACsEAABLBAAALAQAAEwEAAAtBAAATQQAAC4EAABOBAAALwQAAE8EAABgBAAAYQQAAGIEAABjBAAAZAQAAGUEAABmBAAAZwQAAGgEAABpBAAAagQAAGsEAABsBAAAbQQAAG4EAABvBAAAcAQAAHEEAAByBAAAcwQAAHQEAAB1BAAAdgQAAHcEAAB4BAAAeQQAAHoEAAB7BAAAfAQAAH0EAAB+BAAAfwQAAIAEAACBBAAAigQAAIsEAACMBAAAjQQAAI4EAACPBAAAkAQAAJEEAACSBAAAkwQAAJQEAACVBAAAlgQAAJcEAACYBAAAmQQAAJoEAACbBAAAnAQAAJ0EAACeBAAAnwQAAKAEAAChBAAAogQAAKMEAACkBAAApQQAAKYEAACnBAAAqAQAAKkEAACqBAAAqwQAAKwEAACtBAAArgQAAK8EAACwBAAAsQQAALIEAACzBAAAtAQAALUEAAC2BAAAtwQAALgEAAC5BAAAugQAALsEAAC8BAAAvQQAAL4EAAC/BAAAwAQAAM8EAADBBAAAwgQAAMMEAADEBAAAxQQAAMYEAADHBAAAyAQAAMkEAADKBAAAywQAAMwEAADNBAAAzgQAANAEAADRBAAA0gQAANMEAADUBAAA1QQAANYEAADXBAAA2AQAANkEAADaBAAA2wQAANwEAADdBAAA3gQAAN8EAADgBAAA4QQAAOIEAADjBAAA5AQAAOUEAADmBAAA5wQAAOgEAADpBAAA6gQAAOsEAADsBAAA7QQAAO4EAADvBAAA8AQAAPEEAADyBAAA8wQAAPQEAAD1BAAA9gQAAPcEAAD4BAAA+QQAAPoEAAD7BAAA/AQAAP0EAAD+BAAA/wQAAAAFAAABBQAAAgUAAAMFAAAEBQAABQUAAAYFAAAHBQAACAUAAAkFAAAKBQAACwUAAAwFAAANBQAADgUAAA8FAAAQBQAAEQUAABIFAAATBQAAFAUAABUFAAAWBQAAFwUAABgFAAAZBQAAGgUAABsFAAAcBQAAHQUAAB4FAAAfBQAAIAUAACEFAAAiBQAAIwUAACQFAAAlBQAAJgUAACcFAAAoBQAAKQUAACoFAAArBQAALAUAAC0FAAAuBQAALwUAADEFAABhBQAAMgUAAGIFAAAzBQAAYwUAADQFAABkBQAANQUAAGUFAAA2BQAAZgUAADcFAABnBQAAOAUAAGgFAAA5BQAAaQUAADoFAABqBQAAOwUAAGsFAAA8BQAAbAUAAD0FAABtBQAAPgUAAG4FAAA/BQAAbwUAAEAFAABwBQAAQQUAAHEFAABCBQAAcgUAAEMFAABzBQAARAUAAHQFAABFBQAAdQUAAEYFAAB2BQAARwUAAHcFAABIBQAAeAUAAEkFAAB5BQAASgUAAHoFAABLBQAAewUAAEwFAAB8BQAATQUAAH0FAABOBQAAfgUAAE8FAAB/BQAAUAUAAIAFAABRBQAAgQUAAFIFAACCBQAAUwUAAIMFAABUBQAAhAUAAFUFAACFBQAAVgUAAIYFAACgEAAAAC0AAKEQAAABLQAAohAAAAItAACjEAAAAy0AAKQQAAAELQAApRAAAAUtAACmEAAABi0AAKcQAAAHLQAAqBAAAAgtAACpEAAACS0AAKoQAAAKLQAAqxAAAAstAACsEAAADC0AAK0QAAANLQAArhAAAA4tAACvEAAADy0AALAQAAAQLQAAsRAAABEtAACyEAAAEi0AALMQAAATLQAAtBAAABQtAAC1EAAAFS0AALYQAAAWLQAAtxAAABctAAC4EAAAGC0AALkQAAAZLQAAuhAAABotAAC7EAAAGy0AALwQAAAcLQAAvRAAAB0tAAC+EAAAHi0AAL8QAAAfLQAAwBAAACAtAADBEAAAIS0AAMIQAAAiLQAAwxAAACMtAADEEAAAJC0AAMUQAAAlLQAAxxAAACctAADNEAAALS0AAKATAABwqwAAoRMAAHGrAACiEwAAcqsAAKMTAABzqwAApBMAAHSrAAClEwAAdasAAKYTAAB2qwAApxMAAHerAACoEwAAeKsAAKkTAAB5qwAAqhMAAHqrAACrEwAAe6sAAKwTAAB8qwAArRMAAH2rAACuEwAAfqsAAK8TAAB/qwAAsBMAAICrAACxEwAAgasAALITAACCqwAAsxMAAIOrAAC0EwAAhKsAALUTAACFqwAAthMAAIarAAC3EwAAh6sAALgTAACIqwAAuRMAAImrAAC6EwAAiqsAALsTAACLqwAAvBMAAIyrAAC9EwAAjasAAL4TAACOqwAAvxMAAI+rAADAEwAAkKsAAMETAACRqwAAwhMAAJKrAADDEwAAk6sAAMQTAACUqwAAxRMAAJWrAADGEwAAlqsAAMcTAACXqwAAyBMAAJirAADJEwAAmasAAMoTAACaqwAAyxMAAJurAADMEwAAnKsAAM0TAACdqwAAzhMAAJ6rAADPEwAAn6sAANATAACgqwAA0RMAAKGrAADSEwAAoqsAANMTAACjqwAA1BMAAKSrAADVEwAApasAANYTAACmqwAA1xMAAKerAADYEwAAqKsAANkTAACpqwAA2hMAAKqrAADbEwAAq6sAANwTAACsqwAA3RMAAK2rAADeEwAArqsAAN8TAACvqwAA4BMAALCrAADhEwAAsasAAOITAACyqwAA4xMAALOrAADkEwAAtKsAAOUTAAC1qwAA5hMAALarAADnEwAAt6sAAOgTAAC4qwAA6RMAALmrAADqEwAAuqsAAOsTAAC7qwAA7BMAALyrAADtEwAAvasAAO4TAAC+qwAA7xMAAL+rAADwEwAA+BMAAPETAAD5EwAA8hMAAPoTAADzEwAA+xMAAPQTAAD8EwAA9RMAAP0TAACJHAAAihwAAJAcAADQEAAAkRwAANEQAACSHAAA0hAAAJMcAADTEAAAlBwAANQQAACVHAAA1RAAAJYcAADWEAAAlxwAANcQAACYHAAA2BAAAJkcAADZEAAAmhwAANoQAACbHAAA2xAAAJwcAADcEAAAnRwAAN0QAACeHAAA3hAAAJ8cAADfEAAAoBwAAOAQAAChHAAA4RAAAKIcAADiEAAAoxwAAOMQAACkHAAA5BAAAKUcAADlEAAAphwAAOYQAACnHAAA5xAAAKgcAADoEAAAqRwAAOkQAACqHAAA6hAAAKscAADrEAAArBwAAOwQAACtHAAA7RAAAK4cAADuEAAArxwAAO8QAACwHAAA8BAAALEcAADxEAAAshwAAPIQAACzHAAA8xAAALQcAAD0EAAAtRwAAPUQAAC2HAAA9hAAALccAAD3EAAAuBwAAPgQAAC5HAAA+RAAALocAAD6EAAAvRwAAP0QAAC+HAAA/hAAAL8cAAD/EAAAAB4AAAEeAAACHgAAAx4AAAQeAAAFHgAABh4AAAceAAAIHgAACR4AAAoeAAALHgAADB4AAA0eAAAOHgAADx4AABAeAAARHgAAEh4AABMeAAAUHgAAFR4AABYeAAAXHgAAGB4AABkeAAAaHgAAGx4AABweAAAdHgAAHh4AAB8eAAAgHgAAIR4AACIeAAAjHgAAJB4AACUeAAAmHgAAJx4AACgeAAApHgAAKh4AACseAAAsHgAALR4AAC4eAAAvHgAAMB4AADEeAAAyHgAAMx4AADQeAAA1HgAANh4AADceAAA4HgAAOR4AADoeAAA7HgAAPB4AAD0eAAA+HgAAPx4AAEAeAABBHgAAQh4AAEMeAABEHgAARR4AAEYeAABHHgAASB4AAEkeAABKHgAASx4AAEweAABNHgAATh4AAE8eAABQHgAAUR4AAFIeAABTHgAAVB4AAFUeAABWHgAAVx4AAFgeAABZHgAAWh4AAFseAABcHgAAXR4AAF4eAABfHgAAYB4AAGEeAABiHgAAYx4AAGQeAABlHgAAZh4AAGceAABoHgAAaR4AAGoeAABrHgAAbB4AAG0eAABuHgAAbx4AAHAeAABxHgAAch4AAHMeAAB0HgAAdR4AAHYeAAB3HgAAeB4AAHkeAAB6HgAAex4AAHweAAB9HgAAfh4AAH8eAACAHgAAgR4AAIIeAACDHgAAhB4AAIUeAACGHgAAhx4AAIgeAACJHgAAih4AAIseAACMHgAAjR4AAI4eAACPHgAAkB4AAJEeAACSHgAAkx4AAJQeAACVHgAAnh4AAN8AAACgHgAAoR4AAKIeAACjHgAApB4AAKUeAACmHgAApx4AAKgeAACpHgAAqh4AAKseAACsHgAArR4AAK4eAACvHgAAsB4AALEeAACyHgAAsx4AALQeAAC1HgAAth4AALceAAC4HgAAuR4AALoeAAC7HgAAvB4AAL0eAAC+HgAAvx4AAMAeAADBHgAAwh4AAMMeAADEHgAAxR4AAMYeAADHHgAAyB4AAMkeAADKHgAAyx4AAMweAADNHgAAzh4AAM8eAADQHgAA0R4AANIeAADTHgAA1B4AANUeAADWHgAA1x4AANgeAADZHgAA2h4AANseAADcHgAA3R4AAN4eAADfHgAA4B4AAOEeAADiHgAA4x4AAOQeAADlHgAA5h4AAOceAADoHgAA6R4AAOoeAADrHgAA7B4AAO0eAADuHgAA7x4AAPAeAADxHgAA8h4AAPMeAAD0HgAA9R4AAPYeAAD3HgAA+B4AAPkeAAD6HgAA+x4AAPweAAD9HgAA/h4AAP8eAAAIHwAAAB8AAAkfAAABHwAACh8AAAIfAAALHwAAAx8AAAwfAAAEHwAADR8AAAUfAAAOHwAABh8AAA8fAAAHHwAAGB8AABAfAAAZHwAAER8AABofAAASHwAAGx8AABMfAAAcHwAAFB8AAB0fAAAVHwAAKB8AACAfAAApHwAAIR8AACofAAAiHwAAKx8AACMfAAAsHwAAJB8AAC0fAAAlHwAALh8AACYfAAAvHwAAJx8AADgfAAAwHwAAOR8AADEfAAA6HwAAMh8AADsfAAAzHwAAPB8AADQfAAA9HwAANR8AAD4fAAA2HwAAPx8AADcfAABIHwAAQB8AAEkfAABBHwAASh8AAEIfAABLHwAAQx8AAEwfAABEHwAATR8AAEUfAABZHwAAUR8AAFsfAABTHwAAXR8AAFUfAABfHwAAVx8AAGgfAABgHwAAaR8AAGEfAABqHwAAYh8AAGsfAABjHwAAbB8AAGQfAABtHwAAZR8AAG4fAABmHwAAbx8AAGcfAACIHwAAgB8AAIkfAACBHwAAih8AAIIfAACLHwAAgx8AAIwfAACEHwAAjR8AAIUfAACOHwAAhh8AAI8fAACHHwAAmB8AAJAfAACZHwAAkR8AAJofAACSHwAAmx8AAJMfAACcHwAAlB8AAJ0fAACVHwAAnh8AAJYfAACfHwAAlx8AAKgfAACgHwAAqR8AAKEfAACqHwAAoh8AAKsfAACjHwAArB8AAKQfAACtHwAApR8AAK4fAACmHwAArx8AAKcfAAC4HwAAsB8AALkfAACxHwAAuh8AAHAfAAC7HwAAcR8AALwfAACzHwAAyB8AAHIfAADJHwAAcx8AAMofAAB0HwAAyx8AAHUfAADMHwAAwx8AANgfAADQHwAA2R8AANEfAADaHwAAdh8AANsfAAB3HwAA6B8AAOAfAADpHwAA4R8AAOofAAB6HwAA6x8AAHsfAADsHwAA5R8AAPgfAAB4HwAA+R8AAHkfAAD6HwAAfB8AAPsfAAB9HwAA/B8AAPMfAAAmIQAAyQMAACohAABrAAAAKyEAAOUAAAAyIQAATiEAAGAhAABwIQAAYSEAAHEhAABiIQAAciEAAGMhAABzIQAAZCEAAHQhAABlIQAAdSEAAGYhAAB2IQAAZyEAAHchAABoIQAAeCEAAGkhAAB5IQAAaiEAAHohAABrIQAAeyEAAGwhAAB8IQAAbSEAAH0hAABuIQAAfiEAAG8hAAB/IQAAgyEAAIQhAAC2JAAA0CQAALckAADRJAAAuCQAANIkAAC5JAAA0yQAALokAADUJAAAuyQAANUkAAC8JAAA1iQAAL0kAADXJAAAviQAANgkAAC/JAAA2SQAAMAkAADaJAAAwSQAANskAADCJAAA3CQAAMMkAADdJAAAxCQAAN4kAADFJAAA3yQAAMYkAADgJAAAxyQAAOEkAADIJAAA4iQAAMkkAADjJAAAyiQAAOQkAADLJAAA5SQAAMwkAADmJAAAzSQAAOckAADOJAAA6CQAAM8kAADpJAAAACwAADAsAAABLAAAMSwAAAIsAAAyLAAAAywAADMsAAAELAAANCwAAAUsAAA1LAAABiwAADYsAAAHLAAANywAAAgsAAA4LAAACSwAADksAAAKLAAAOiwAAAssAAA7LAAADCwAADwsAAANLAAAPSwAAA4sAAA+LAAADywAAD8sAAAQLAAAQCwAABEsAABBLAAAEiwAAEIsAAATLAAAQywAABQsAABELAAAFSwAAEUsAAAWLAAARiwAABcsAABHLAAAGCwAAEgsAAAZLAAASSwAABosAABKLAAAGywAAEssAAAcLAAATCwAAB0sAABNLAAAHiwAAE4sAAAfLAAATywAACAsAABQLAAAISwAAFEsAAAiLAAAUiwAACMsAABTLAAAJCwAAFQsAAAlLAAAVSwAACYsAABWLAAAJywAAFcsAAAoLAAAWCwAACksAABZLAAAKiwAAFosAAArLAAAWywAACwsAABcLAAALSwAAF0sAAAuLAAAXiwAAC8sAABfLAAAYCwAAGEsAABiLAAAawIAAGMsAAB9HQAAZCwAAH0CAABnLAAAaCwAAGksAABqLAAAaywAAGwsAABtLAAAUQIAAG4sAABxAgAAbywAAFACAABwLAAAUgIAAHIsAABzLAAAdSwAAHYsAAB+LAAAPwIAAH8sAABAAgAAgCwAAIEsAACCLAAAgywAAIQsAACFLAAAhiwAAIcsAACILAAAiSwAAIosAACLLAAAjCwAAI0sAACOLAAAjywAAJAsAACRLAAAkiwAAJMsAACULAAAlSwAAJYsAACXLAAAmCwAAJksAACaLAAAmywAAJwsAACdLAAAniwAAJ8sAACgLAAAoSwAAKIsAACjLAAApCwAAKUsAACmLAAApywAAKgsAACpLAAAqiwAAKssAACsLAAArSwAAK4sAACvLAAAsCwAALEsAACyLAAAsywAALQsAAC1LAAAtiwAALcsAAC4LAAAuSwAALosAAC7LAAAvCwAAL0sAAC+LAAAvywAAMAsAADBLAAAwiwAAMMsAADELAAAxSwAAMYsAADHLAAAyCwAAMksAADKLAAAyywAAMwsAADNLAAAziwAAM8sAADQLAAA0SwAANIsAADTLAAA1CwAANUsAADWLAAA1ywAANgsAADZLAAA2iwAANssAADcLAAA3SwAAN4sAADfLAAA4CwAAOEsAADiLAAA4ywAAOssAADsLAAA7SwAAO4sAADyLAAA8ywAAECmAABBpgAAQqYAAEOmAABEpgAARaYAAEamAABHpgAASKYAAEmmAABKpgAAS6YAAEymAABNpgAATqYAAE+mAABQpgAAUaYAAFKmAABTpgAAVKYAAFWmAABWpgAAV6YAAFimAABZpgAAWqYAAFumAABcpgAAXaYAAF6mAABfpgAAYKYAAGGmAABipgAAY6YAAGSmAABlpgAAZqYAAGemAABopgAAaaYAAGqmAABrpgAAbKYAAG2mAACApgAAgaYAAIKmAACDpgAAhKYAAIWmAACGpgAAh6YAAIimAACJpgAAiqYAAIumAACMpgAAjaYAAI6mAACPpgAAkKYAAJGmAACSpgAAk6YAAJSmAACVpgAAlqYAAJemAACYpgAAmaYAAJqmAACbpgAAIqcAACOnAAAkpwAAJacAACanAAAnpwAAKKcAACmnAAAqpwAAK6cAACynAAAtpwAALqcAAC+nAAAypwAAM6cAADSnAAA1pwAANqcAADenAAA4pwAAOacAADqnAAA7pwAAPKcAAD2nAAA+pwAAP6cAAECnAABBpwAAQqcAAEOnAABEpwAARacAAEanAABHpwAASKcAAEmnAABKpwAAS6cAAEynAABNpwAATqcAAE+nAABQpwAAUacAAFKnAABTpwAAVKcAAFWnAABWpwAAV6cAAFinAABZpwAAWqcAAFunAABcpwAAXacAAF6nAABfpwAAYKcAAGGnAABipwAAY6cAAGSnAABlpwAAZqcAAGenAABopwAAaacAAGqnAABrpwAAbKcAAG2nAABupwAAb6cAAHmnAAB6pwAAe6cAAHynAAB9pwAAeR0AAH6nAAB/pwAAgKcAAIGnAACCpwAAg6cAAISnAACFpwAAhqcAAIenAACLpwAAjKcAAI2nAABlAgAAkKcAAJGnAACSpwAAk6cAAJanAACXpwAAmKcAAJmnAACapwAAm6cAAJynAACdpwAAnqcAAJ+nAACgpwAAoacAAKKnAACjpwAApKcAAKWnAACmpwAAp6cAAKinAACppwAAqqcAAGYCAACrpwAAXAIAAKynAABhAgAAracAAGwCAACupwAAagIAALCnAACeAgAAsacAAIcCAACypwAAnQIAALOnAABTqwAAtKcAALWnAAC2pwAAt6cAALinAAC5pwAAuqcAALunAAC8pwAAvacAAL6nAAC/pwAAwKcAAMGnAADCpwAAw6cAAMSnAACUpwAAxacAAIICAADGpwAAjh0AAMenAADIpwAAyacAAMqnAADLpwAAZAIAAMynAADNpwAA0KcAANGnAADWpwAA16cAANinAADZpwAA2qcAANunAADcpwAAmwEAAPWnAAD2pwAAIf8AAEH/AAAi/wAAQv8AACP/AABD/wAAJP8AAET/AAAl/wAARf8AACb/AABG/wAAJ/8AAEf/AAAo/wAASP8AACn/AABJ/wAAKv8AAEr/AAAr/wAAS/8AACz/AABM/wAALf8AAE3/AAAu/wAATv8AAC//AABP/wAAMP8AAFD/AAAx/wAAUf8AADL/AABS/wAAM/8AAFP/AAA0/wAAVP8AADX/AABV/wAANv8AAFb/AAA3/wAAV/8AADj/AABY/wAAOf8AAFn/AAA6/wAAWv8AAAAEAQAoBAEAAQQBACkEAQACBAEAKgQBAAMEAQArBAEABAQBACwEAQAFBAEALQQBAAYEAQAuBAEABwQBAC8EAQAIBAEAMAQBAAkEAQAxBAEACgQBADIEAQALBAEAMwQBAAwEAQA0BAEADQQBADUEAQAOBAEANgQBAA8EAQA3BAEAEAQBADgEAQARBAEAOQQBABIEAQA6BAEAEwQBADsEAQAUBAEAPAQBABUEAQA9BAEAFgQBAD4EAQAXBAEAPwQBABgEAQBABAEAGQQBAEEEAQAaBAEAQgQBABsEAQBDBAEAHAQBAEQEAQAdBAEARQQBAB4EAQBGBAEAHwQBAEcEAQAgBAEASAQBACEEAQBJBAEAIgQBAEoEAQAjBAEASwQBACQEAQBMBAEAJQQBAE0EAQAmBAEATgQBACcEAQBPBAEAsAQBANgEAQCxBAEA2QQBALIEAQDaBAEAswQBANsEAQC0BAEA3AQBALUEAQDdBAEAtgQBAN4EAQC3BAEA3wQBALgEAQDgBAEAuQQBAOEEAQC6BAEA4gQBALsEAQDjBAEAvAQBAOQEAQC9BAEA5QQBAL4EAQDmBAEAvwQBAOcEAQDABAEA6AQBAMEEAQDpBAEAwgQBAOoEAQDDBAEA6wQBAMQEAQDsBAEAxQQBAO0EAQDGBAEA7gQBAMcEAQDvBAEAyAQBAPAEAQDJBAEA8QQBAMoEAQDyBAEAywQBAPMEAQDMBAEA9AQBAM0EAQD1BAEAzgQBAPYEAQDPBAEA9wQBANAEAQD4BAEA0QQBAPkEAQDSBAEA+gQBANMEAQD7BAEAcAUBAJcFAQBxBQEAmAUBAHIFAQCZBQEAcwUBAJoFAQB0BQEAmwUBAHUFAQCcBQEAdgUBAJ0FAQB3BQEAngUBAHgFAQCfBQEAeQUBAKAFAQB6BQEAoQUBAHwFAQCjBQEAfQUBAKQFAQB+BQEApQUBAH8FAQCmBQEAgAUBAKcFAQCBBQEAqAUBAIIFAQCpBQEAgwUBAKoFAQCEBQEAqwUBAIUFAQCsBQEAhgUBAK0FAQCHBQEArgUBAIgFAQCvBQEAiQUBALAFAQCKBQEAsQUBAIwFAQCzBQEAjQUBALQFAQCOBQEAtQUBAI8FAQC2BQEAkAUBALcFAQCRBQEAuAUBAJIFAQC5BQEAlAUBALsFAQCVBQEAvAUBAIAMAQDADAEAgQwBAMEMAQCCDAEAwgwBAIMMAQDDDAEAhAwBAMQMAQCFDAEAxQwBAIYMAQDGDAEAhwwBAMcMAQCIDAEAyAwBAIkMAQDJDAEAigwBAMoMAQCLDAEAywwBAIwMAQDMDAEAjQwBAM0MAQCODAEAzgwBAI8MAQDPDAEAkAwBANAMAQCRDAEA0QwBAJIMAQDSDAEAkwwBANMMAQCUDAEA1AwBAJUMAQDVDAEAlgwBANYMAQCXDAEA1wwBAJgMAQDYDAEAmQwBANkMAQCaDAEA2gwBAJsMAQDbDAEAnAwBANwMAQCdDAEA3QwBAJ4MAQDeDAEAnwwBAN8MAQCgDAEA4AwBAKEMAQDhDAEAogwBAOIMAQCjDAEA4wwBAKQMAQDkDAEApQwBAOUMAQCmDAEA5gwBAKcMAQDnDAEAqAwBAOgMAQCpDAEA6QwBAKoMAQDqDAEAqwwBAOsMAQCsDAEA7AwBAK0MAQDtDAEArgwBAO4MAQCvDAEA7wwBALAMAQDwDAEAsQwBAPEMAQCyDAEA8gwBAFANAQBwDQEAUQ0BAHENAQBSDQEAcg0BAFMNAQBzDQEAVA0BAHQNAQBVDQEAdQ0BAFYNAQB2DQEAVw0BAHcNAQBYDQEAeA0BAFkNAQB5DQEAWg0BAHoNAQBbDQEAew0BAFwNAQB8DQEAXQ0BAH0NAQBeDQEAfg0BAF8NAQB/DQEAYA0BAIANAQBhDQEAgQ0BAGINAQCCDQEAYw0BAIMNAQBkDQEAhA0BAGUNAQCFDQEAoBgBAMAYAQChGAEAwRgBAKIYAQDCGAEAoxgBAMMYAQCkGAEAxBgBAKUYAQDFGAEAphgBAMYYAQCnGAEAxxgBAKgYAQDIGAEAqRgBAMkYAQCqGAEAyhgBAKsYAQDLGAEArBgBAMwYAQCtGAEAzRgBAK4YAQDOGAEArxgBAM8YAQCwGAEA0BgBALEYAQDRGAEAshgBANIYAQCzGAEA0xgBALQYAQDUGAEAtRgBANUYAQC2GAEA1hgBALcYAQDXGAEAuBgBANgYAQC5GAEA2RgBALoYAQDaGAEAuxgBANsYAQC8GAEA3BgBAL0YAQDdGAEAvhgBAN4YAQC/GAEA3xgBAEBuAQBgbgEAQW4BAGFuAQBCbgEAYm4BAENuAQBjbgEARG4BAGRuAQBFbgEAZW4BAEZuAQBmbgEAR24BAGduAQBIbgEAaG4BAEluAQBpbgEASm4BAGpuAQBLbgEAa24BAExuAQBsbgEATW4BAG1uAQBObgEAbm4BAE9uAQBvbgEAUG4BAHBuAQBRbgEAcW4BAFJuAQBybgEAU24BAHNuAQBUbgEAdG4BAFVuAQB1bgEAVm4BAHZuAQBXbgEAd24BAFhuAQB4bgEAWW4BAHluAQBabgEAem4BAFtuAQB7bgEAXG4BAHxuAQBdbgEAfW4BAF5uAQB+bgEAX24BAH9uAQAA6QEAIukBAAHpAQAj6QEAAukBACTpAQAD6QEAJekBAATpAQAm6QEABekBACfpAQAG6QEAKOkBAAfpAQAp6QEACOkBACrpAQAJ6QEAK+kBAArpAQAs6QEAC+kBAC3pAQAM6QEALukBAA3pAQAv6QEADukBADDpAQAP6QEAMekBABDpAQAy6QEAEekBADPpAQAS6QEANOkBABPpAQA16QEAFOkBADbpAQAV6QEAN+kBABbpAQA46QEAF+kBADnpAQAY6QEAOukBABnpAQA76QEAGukBADzpAQAb6QEAPekBABzpAQA+6QEAHekBAD/pAQAe6QEAQOkBAB/pAQBB6QEAIOkBAELpAQAh6QEAQ+kBAABBzLDBAAsYAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAOBIBG5hbWUACglydXN0Lndhc20Bi0iUAQBRc2VyZGVfd2FzbV9iaW5kZ2VuOjpPYmplY3RFeHQ6OnNldDo6X193Ymdfc2V0XzNmMWQwYjk4NGVkMjcyZWQ6OmhmMmYxMWU5MjY1NGM5YzQ5AUFqc19zeXM6OkFycmF5OjpuZXc6Ol9fd2JnX25ld19lMTdkOWY0MzEwNWIwOGJlOjpoYjg0N2I5OWI5ZTQzN2RjZQJCanNfc3lzOjpPYmplY3Q6Om5ldzo6X193YmdfbmV3XzFhY2MwYjZlZWE4OWQwNDA6Omg2NWQ3YWI5NDFhMzRmYTEwA0Fqc19zeXM6OkFycmF5OjpzZXQ6Ol9fd2JnX3NldF9jMjEzYzg3MTg1OWQ2NTAwOjpoNzNkZWFjMjY5MDE1Y2NkMQRod2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2RlYnVnX3N0cmluZzo6X193YmdfX193YmluZGdlbl9kZWJ1Z19zdHJpbmdfZGY0N2ZmYjVlMzVlNjc2Mzo6aGQwYWRmYTk3OGY3ZWI1MTEFWndhc21fYmluZGdlbjo6X193YmluZGdlbl90aHJvdzo6X193YmdfX193YmluZGdlbl90aHJvd19iODU1NDQ1ZmY2YTk0Mjk1OjpoNjdmNDg3MDEzYzAxYjg3MAcYUmVmKFN0cmluZykgLT4gRXh0ZXJucmVmCDdhbGxvYzo6c3RyOjo8aW1wbCBzdHI+Ojp0b19sb3dlcmNhc2U6OmgyZTBiYzAyMzI1MDg0NTNjCTpkbG1hbGxvYzo6ZGxtYWxsb2M6OkRsbWFsbG9jPEE+OjptYWxsb2M6OmhmZjk1OGY1M2JhZTYzM2UzCkBoYXNoYnJvd246OnJhdzo6UmF3VGFibGU8VCxBPjo6cmVzZXJ2ZV9yZWhhc2g6Omg1YTM2ZjdhM2Y4ZGRkMzk4CzFjb3JlOjpzdHI6OnNsaWNlX2Vycm9yX2ZhaWxfcnQ6OmhiYTI5NjFmNTRiNzUzYWU3DDNjb3JlOjpzdHI6OmNvdW50Ojpkb19jb3VudF9jaGFyczo6aGI2NzE3NGJiMzY1ZjQ0OGINKF9fcnVzdGNbNTIyNGU2YjgxY2Q4MmE4Zl06Ol9fcmRsX3JlYWxsb2MODWdldF9rZXlfdmFsdWUPNWNvcmU6OmZtdDo6Rm9ybWF0dGVyOjpwYWRfaW50ZWdyYWw6OmgzNmJlMTNjMDdhNjNmZTVjEEVjb3JlOjpjaGFyOjptZXRob2RzOjo8aW1wbCBjaGFyPjo6ZXNjYXBlX2RlYnVnX2V4dDo6aDU5NThmOGUyYTdjMmYwZDgROGRsbWFsbG9jOjpkbG1hbGxvYzo6RGxtYWxsb2M8QT46OmZyZWU6OmgzY2RkNjViNGE1NjgxNTAyEixjb3JlOjpmbXQ6OkZvcm1hdHRlcjo6cGFkOjpoN2YxNThkMTM1NjgwOTM0NBM3c2VyZGVfd2FzbV9iaW5kZ2VuOjpzdGF0aWNfc3RyX3RvX2pzOjpoOTYzZmM2NmJmMTI5NTQ1ZRQjY29yZTo6Zm10Ojp3cml0ZTo6aDM5ZmVmMGM1NTQ2NTFmNzIVUzxjb3JlOjpmbXQ6OmJ1aWxkZXJzOjpQYWRBZGFwdGVyIGFzIGNvcmU6OmZtdDo6V3JpdGU+Ojp3cml0ZV9zdHI6OmhkYTAxMjY1NGFhMGIzMmI1FhFnZXRfbW9kaWZpZXJfY29kZRdFY29yZTo6dW5pY29kZTo6dW5pY29kZV9kYXRhOjpjb252ZXJzaW9uczo6dG9fbG93ZXI6OmgwY2Y0MjRiMTE3ZjM0ZDA0GEFkbG1hbGxvYzo6ZGxtYWxsb2M6OkRsbWFsbG9jPEE+OjpkaXNwb3NlX2NodW5rOjpoODFhOWVkZDIxOGEwZjA4ZhlRc3RkOjpzeXM6OnRocmVhZF9sb2NhbDo6bm9fdGhyZWFkczo6TGF6eVN0b3JhZ2U8VD46OmluaXRpYWxpemU6Omg1ODk5NDdjN2YyZjcwN2E2GjxkbG1hbGxvYzo6ZGxtYWxsb2M6OkRsbWFsbG9jPEE+OjptZW1hbGlnbjo6aDFkODhiMDY4YWIyMWI0N2UbF19fZXh0ZXJucmVmX3RhYmxlX2FsbG9jHEBkbG1hbGxvYzo6ZGxtYWxsb2M6OkRsbWFsbG9jPEE+Ojp1bmxpbmtfY2h1bms6OmhiZTBlNmY1ZjgzY2RhZWIxHUxjb3JlOjp1bmljb2RlOjp1bmljb2RlX2RhdGE6OmdyYXBoZW1lX2V4dGVuZDo6bG9va3VwX3Nsb3c6Omg2OGFjMDllOTYwYTBjZmU1HkZjb3JlOjp1bmljb2RlOjp1bmljb2RlX2RhdGE6OmNhc2VfaWdub3JhYmxlOjpsb29rdXA6Omg0YjA0M2JkZWI5Y2Q5MTQwHzJjb3JlOjp1bmljb2RlOjpwcmludGFibGU6OmNoZWNrOjpoNmYyZmRmYTEzMWM4ZGNiZCA4Y29yZTo6Zm10OjpudW06OmltcDo6PGltcGwgdTMyPjo6X2ZtdDo6aDI4NWI3YzhlN2ViNWM2ZTIhPWNvcmU6OnVuaWNvZGU6OnVuaWNvZGVfZGF0YTo6Y2FzZWQ6Omxvb2t1cDo6aGEwNDcyYjVlOTc0YzY3ZWMiR2NvcmU6OmZtdDo6bnVtOjo8aW1wbCBjb3JlOjpmbXQ6OkRlYnVnIGZvciB1MzI+OjpmbXQ6OmgyOGE2ZTU1OTMzY2FmZDliI0ZkbG1hbGxvYzo6ZGxtYWxsb2M6OkRsbWFsbG9jPEE+OjppbnNlcnRfbGFyZ2VfY2h1bms6OmhiZDM4NmZlZjIzOThmZDQ1JEo8YWxsb2M6OnN0cmluZzo6U3RyaW5nIGFzIGNvcmU6OmZtdDo6V3JpdGU+Ojp3cml0ZV9jaGFyOjpoOGMwMjQyOTBhYjNmYWY3MSV0PHN0ZDo6cGFuaWNraW5nOjpiZWdpbl9wYW5pY19oYW5kbGVyOjpGb3JtYXRTdHJpbmdQYXlsb2FkIGFzIGNvcmU6OnBhbmljOjpQYW5pY1BheWxvYWQ+Ojp0YWtlX2JveDo6aGQzYzlhODRlOWU1MDFjODkmUWFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6cmVzZXJ2ZTo6ZG9fcmVzZXJ2ZV9hbmRfaGFuZGxlOjpoZGZlMWMwZThkZDIwZjQxZSdCY29yZTo6Zm10OjpGb3JtYXR0ZXI6OmRlYnVnX3R1cGxlX2ZpZWxkMV9maW5pc2g6OmhkY2MyNWUwNWUyY2M1NjNkKAxnZXRfa2V5X2NvZGUpN3N0ZDo6cGFuaWNraW5nOjpydXN0X3BhbmljX3dpdGhfaG9vazo6aDRmYTNkYWVhZDljNGUwYTcqUWFsbG9jOjpyYXdfdmVjOjpSYXdWZWNJbm5lcjxBPjo6cmVzZXJ2ZTo6ZG9fcmVzZXJ2ZV9hbmRfaGFuZGxlOjpoYmMwMWRiMWI3OWIzZDkxYys5Y29yZTo6dW5pY29kZTo6cHJpbnRhYmxlOjppc19wcmludGFibGU6Omg5YmMyNTFkNzZlOGI3NTBhLG88c3RkOjpwYW5pY2tpbmc6OmJlZ2luX3BhbmljX2hhbmRsZXI6OkZvcm1hdFN0cmluZ1BheWxvYWQgYXMgY29yZTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OmdldDo6aDA1NDM2MjRjNzk2OTAzMWYtPXdhc21fYmluZGdlbjo6Y29udmVydDo6Y2xvc3VyZXM6Ol86Omludm9rZTo6aDQwNmYxNTBkMjg4NWI5MTUuQzx3YXNtX2JpbmRnZW46OkpzVmFsdWUgYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aDcxYzU4YzFmZTU5NjkyYTUvQ3N0ZDo6cGFuaWNraW5nOjpiZWdpbl9wYW5pY19oYW5kbGVyOjp7e2Nsb3N1cmV9fTo6aGQ2YzFiMmQ5MzkyMjMxYWMwLmFsbG9jOjpyYXdfdmVjOjpmaW5pc2hfZ3Jvdzo6aDAxM2I4ZWRiZmYwZTBjZDIxLmFsbG9jOjpyYXdfdmVjOjpmaW5pc2hfZ3Jvdzo6aGMyMGIzMmU5NThjZTg1NDMyLmFsbG9jOjpyYXdfdmVjOjpmaW5pc2hfZ3Jvdzo6aDYzM2YxYTI4ODgxYjAwZjgzMjxjaGFyIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6Omg0MjcxYTZmNDFkYWY1MmU2NGg8c3RkOjpwYW5pY2tpbmc6OmJlZ2luX3BhbmljX2hhbmRsZXI6OkZvcm1hdFN0cmluZ1BheWxvYWQgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoMjRkMDU4ZjViNDZiMTJjYzUuY29yZTo6cmVzdWx0Ojp1bndyYXBfZmFpbGVkOjpoYzlmMGNkNWYyY2IwNjE4NTYZX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYzc2Y29yZTo6cGFuaWNraW5nOjpwYW5pY19ib3VuZHNfY2hlY2s6OmgwZGI0OGEyMjM5ZjdhYTRjOFJjb3JlOjpzbGljZTo6aW5kZXg6OnNsaWNlX2VuZF9pbmRleF9sZW5fZmFpbDo6ZG9fcGFuaWM6OnJ1bnRpbWU6Omg3YjIzYWNmN2U0ZmMzOTg5OVBjb3JlOjpzbGljZTo6aW5kZXg6OnNsaWNlX2luZGV4X29yZGVyX2ZhaWw6OmRvX3BhbmljOjpydW50aW1lOjpoMmI4N2FkM2VlNzNkN2ViZTo3c3RkOjphbGxvYzo6ZGVmYXVsdF9hbGxvY19lcnJvcl9ob29rOjpoMjRiMzAwNzU3MzU1ZDU1NzsoX19ydXN0Y1s1MjI0ZTZiODFjZDgyYThmXTo6X19yZGxfZGVhbGxvYzxJPGFsbG9jOjpzdHJpbmc6OlN0cmluZyBhcyBjb3JlOjpmbXQ6OldyaXRlPjo6d3JpdGVfc3RyOjpoOTAxMzk3NTkwODM2YjdkNz01Y29yZTo6Y2VsbDo6cGFuaWNfYWxyZWFkeV9ib3Jyb3dlZDo6aDBlNzc1MjA4ZDcxMWMyYmI+Bm1lbWNtcD9IPGRsbWFsbG9jOjpzeXM6OlN5c3RlbSBhcyBkbG1hbGxvYzo6QWxsb2NhdG9yPjo6YWxsb2M6Omg3ZTkzMTkzYmI4MDRjZDdhQEFoYXNoYnJvd246OnJhdzo6RmFsbGliaWxpdHk6OmNhcGFjaXR5X292ZXJmbG93OjpoMDYyZjA1M2NlZjg5NDg5NkFUPGNvcmU6OmZtdDo6YnVpbGRlcnM6OlBhZEFkYXB0ZXIgYXMgY29yZTo6Zm10OjpXcml0ZT46OndyaXRlX2NoYXI6OmhjMTBhMzYyYTQ5NjNiOTNiQjhzdGQ6OnBhbmlja2luZzo6cGFuaWNfY291bnQ6OmluY3JlYXNlOjpoNzU0ZDgxOTQ3MGEzOTUyMUNOY29yZTo6Zm10OjpudW06OmltcDo6PGltcGwgY29yZTo6Zm10OjpEaXNwbGF5IGZvciB1MzI+OjpmbXQ6OmhlZDQ0ZWQzMmI3MmY5NGU1RHE8c3RkOjpwYW5pY2tpbmc6OmJlZ2luX3BhbmljX2hhbmRsZXI6OlN0YXRpY1N0clBheWxvYWQgYXMgY29yZTo6cGFuaWM6OlBhbmljUGF5bG9hZD46OnRha2VfYm94OjpoMmFiMDRiM2NiMzhmYTQ2ZUUpY29yZTo6cGFuaWNraW5nOjpwYW5pYzo6aGFhMmRkYmRmMWVhNTY0MTdGQ2NvcmU6OmZtdDo6Rm9ybWF0dGVyOjpwYWRfaW50ZWdyYWw6OndyaXRlX3ByZWZpeDo6aDdlMTM0NGQ4MzZiNTg2YzVHNGFsbG9jOjpyYXdfdmVjOjpjYXBhY2l0eV9vdmVyZmxvdzo6aDgxZWExZGJlN2M3NGQ3NjVISjxjb3JlOjpvcHM6OnJhbmdlOjpSYW5nZTxJZHg+IGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6Omg4MzRjYzVlNDJkMjY1MzA4SU48c2VyZGVfd2FzbV9iaW5kZ2VuOjplcnJvcjo6RXJyb3IgYXMgY29yZTo6Zm10OjpEZWJ1Zz46OmZtdDo6aDNiZDVmMGZlMTg5MzdmZDZKEV9fd2JpbmRnZW5fbWFsbG9jSyxfX3J1c3RjWzUyMjRlNmI4MWNkODJhOGZdOjpydXN0X2JlZ2luX3Vud2luZEwtY29yZTo6cGFuaWNraW5nOjpwYW5pY19mbXQ6OmhkMzA1MmEzNjYyZDUwYzk1TRJfX3diaW5kZ2VuX3JlYWxsb2NOIWdldF9tb2RpZmllcl9jb2RlIG11bHRpdmFsdWUgc2hpbU89d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoMjM0MzliMTI0NWYxNDlhMlA9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoNDRiMjU3MzdhM2NjZWY3NlE9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoNGQyZWRlZTFiNTc0NjJkYlI9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoNGU2ZTM5ZjNiNDdhYmYxNFM9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoNzY5Yzc2OTM3ZDA1YzllOFQ9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoN2Y4NGJjN2RkNDVjMzZjYlU9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoODBjYjQ5NTUyZDljNjVhOVY9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoOGI5NTQwODA2ZDYwMzZmOVc9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoZDlmMTQyNGM4MWI5YjdiM1hlY29yZTo6cHRyOjpkcm9wX2luX3BsYWNlPHN0ZDo6cGFuaWNraW5nOjpiZWdpbl9wYW5pY19oYW5kbGVyOjpGb3JtYXRTdHJpbmdQYXlsb2FkPjo6aGQ5MDQ5NDI0NmUwODAzYWFZOWhhc2hicm93bjo6cmF3OjpGYWxsaWJpbGl0eTo6YWxsb2NfZXJyOjpoYWRkOTZlZWNiOTg1YjczOFo9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoODMxMGYwZmNjMDEyNzdmNFs9d2FzbV9iaW5kZ2VuOjpjb252ZXJ0OjpjbG9zdXJlczo6Xzo6aW52b2tlOjpoYzY2MGRiYTgxZDIwMmZjNlxpPCZzZXJkZV93YXNtX2JpbmRnZW46OnNlcjo6U2VyaWFsaXplciBhcyBzZXJkZV9jb3JlOjpzZXI6OlNlcmlhbGl6ZXI+OjpzZXJpYWxpemVfdHVwbGU6OmgzMTZmYzBiYjBmOGI0MDI5XUJjb3JlOjpwdHI6OmRyb3BfaW5fcGxhY2U8YWxsb2M6OnN0cmluZzo6U3RyaW5nPjo6aGExZDBjODVhOWU5YTM3MWFeVmNvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxjb3JlOjpvcHRpb246Ok9wdGlvbjxhbGxvYzo6dmVjOjpWZWM8dTg+Pj46OmgxNWYyMDcyYmU5MGViOTJkXyZfX3J1c3RjWzUyMjRlNmI4MWNkODJhOGZdOjpfX3JkbF9hbGxvY2AvYWxsb2M6OnJhd192ZWM6OmhhbmRsZV9lcnJvcjo6aDI4YTE0YTAzZDE4ZTQyZTNhYHNlcmRlX3dhc21fYmluZGdlbjo6T2JqZWN0RXh0OjpzZXQ6Ol9fd2JnX3NldF8zZjFkMGI5ODRlZDI3MmVkOjpoZjJmMTFlOTI2NTRjOWM0OSBleHRlcm5yZWYgc2hpbWIjX19ydXN0Y1s1MjI0ZTZiODFjZDgyYThmXTo6X19yZ19vb21jQ2NvcmU6OmFsbG9jOjpsYXlvdXQ6OkxheW91dDo6aXNfc2l6ZV9hbGlnbl92YWxpZDo6aGJlYTY5ZjA4NWJiMDFiY2VkTWNvcmU6OnB0cjo6ZHJvcF9pbl9wbGFjZTxzZXJkZV93YXNtX2JpbmRnZW46OmVycm9yOjpFcnJvcj46OmhmMzkzNDdlNjU3NDFjZTViZSdSZWYoU3RyaW5nKSAtPiBFeHRlcm5yZWYgZXh0ZXJucmVmIHNoaW1mKV9fcnVzdGNbNTIyNGU2YjgxY2Q4MmE4Zl06Ol9fcnVzdF9yZWFsbG9jZ3A8JnNlcmRlX3dhc21fYmluZGdlbjo6c2VyOjpTZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OnNlcjo6U2VyaWFsaXplcj46OnNlcmlhbGl6ZV91bml0X3ZhcmlhbnQ6Omg5ZmZhMGUwNWM1ZjRhMTEwaGc8JnNlcmRlX3dhc21fYmluZGdlbjo6c2VyOjpTZXJpYWxpemVyIGFzIHNlcmRlX2NvcmU6OnNlcjo6U2VyaWFsaXplcj46OnNlcmlhbGl6ZV9zdHI6OmhiYzFhM2MyMjJiMjI4ODM5aQ9fX3diaW5kZ2VuX2ZyZWVqJV9fcnVzdGNbNTIyNGU2YjgxY2Q4MmE4Zl06OnJ1c3RfcGFuaWNrMmNvcmU6OmZtdDo6Rm9ybWF0dGVyOjp3cml0ZV9zdHI6OmgyOTgxNmQ2MTBmNDY3M2VmbFBqc19zeXM6OkFycmF5OjpzZXQ6Ol9fd2JnX3NldF9jMjEzYzg3MTg1OWQ2NTAwOjpoNzNkZWFjMjY5MDE1Y2NkMSBleHRlcm5yZWYgc2hpbW0wPCZUIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6OmhiOTliZWY2OTA3ODE4YTU1bi5jb3JlOjpzdHI6OnNsaWNlX2Vycm9yX2ZhaWw6Omg3ZWYyZmM1YmY4ODU0NTBlb1Bqc19zeXM6OkFycmF5OjpuZXc6Ol9fd2JnX25ld19lMTdkOWY0MzEwNWIwOGJlOjpoYjg0N2I5OWI5ZTQzN2RjZSBleHRlcm5yZWYgc2hpbXBRanNfc3lzOjpPYmplY3Q6Om5ldzo6X193YmdfbmV3XzFhY2MwYjZlZWE4OWQwNDA6Omg2NWQ3YWI5NDFhMzRmYTEwIGV4dGVybnJlZiBzaGltcRxnZXRfa2V5X3ZhbHVlIGV4dGVybnJlZiBzaGltcidfX3J1c3RjWzUyMjRlNmI4MWNkODJhOGZdOjpfX3J1c3RfYWxsb2Nzajwmc2VyZGVfd2FzbV9iaW5kZ2VuOjpzZXI6OlNlcmlhbGl6ZXIgYXMgc2VyZGVfY29yZTo6c2VyOjpTZXJpYWxpemVyPjo6c2VyaWFsaXplX3N0cnVjdDo6aDE5OTc1MDUwZTY0MzViNDB0RTxhbGxvYzo6c3RyaW5nOjpTdHJpbmcgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoOTg1ZTFiOGRmMTcyNzg0NXUxPFQgYXMgY29yZTo6YW55OjpBbnk+Ojp0eXBlX2lkOjpoMTUyZGEyNTFiOTRkZTRmMHYxPFQgYXMgY29yZTo6YW55OjpBbnk+Ojp0eXBlX2lkOjpoZmNiMTkxZTZmMjA1NmU2ZHdsPHN0ZDo6cGFuaWNraW5nOjpiZWdpbl9wYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmU6OnBhbmljOjpQYW5pY1BheWxvYWQ+OjpnZXQ6OmgzYmM3MWNiZjhhZmNhYjgweGU8c3RkOjpwYW5pY2tpbmc6OmJlZ2luX3BhbmljX2hhbmRsZXI6OlN0YXRpY1N0clBheWxvYWQgYXMgY29yZTo6Zm10OjpEaXNwbGF5Pjo6Zm10OjpoM2FkNTM1YjYzMDJkYjhhMHkyPCZUIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aDk4ZjIxZTVlY2UwNzMyNTl6G19fd2JpbmRnZW5fb2JqZWN0X2Nsb25lX3JlZnspX19ydXN0Y1s1MjI0ZTZiODFjZDgyYThmXTo6X19ydXN0X2RlYWxsb2N8NXNlcmRlX3dhc21fYmluZGdlbjo6T2JqZWN0RXh0OjpzZXQ6Omg4NmY5OTdlMDI1MTZiMjUwfSVqc19zeXM6OkFycmF5OjpzZXQ6OmhlMTI1ZTMyMDc1OGZkMjk3fj9jb3JlOjpzbGljZTo6aW5kZXg6OnNsaWNlX2VuZF9pbmRleF9sZW5fZmFpbDo6aDQ3YzczZjc4OGMyZTcxMWZ/PWNvcmU6OnNsaWNlOjppbmRleDo6c2xpY2VfaW5kZXhfb3JkZXJfZmFpbDo6aDVmNGM1MjE4ZGY5ODRkM2OAAS5jb3JlOjpvcHRpb246OnVud3JhcF9mYWlsZWQ6Omg3ZjA0Y2QxNTE1OTVkMGU5gQEwPCZUIGFzIGNvcmU6OmZtdDo6RGVidWc+OjpmbXQ6OmgzZGNiOGM5NmUwMTY1ZTg0ggE1X19ydXN0Y1s1MjI0ZTZiODFjZDgyYThmXTo6X19ydXN0X2FsbG9jX2Vycm9yX2hhbmRsZXKDASp3YXNtX2JpbmRnZW46OnRocm93X3N0cjo6aDJlOGQ5MWVlOTUwMGM2M2KEAS5jb3JlOjpmbXQ6OldyaXRlOjp3cml0ZV9mbXQ6Omg5OGJlMzA2Y2ZjNzQ2ZjQ3hQFvPHN0ZDo6cGFuaWNraW5nOjpiZWdpbl9wYW5pY19oYW5kbGVyOjpTdGF0aWNTdHJQYXlsb2FkIGFzIGNvcmU6OnBhbmljOjpQYW5pY1BheWxvYWQ+Ojphc19zdHI6Omg0NTgzMjhmNzRmMDZhOWVhhgEzYWxsb2M6OmFsbG9jOjpoYW5kbGVfYWxsb2NfZXJyb3I6OmhiYzcyMWU4ZGQzYjZmZmNlhwFKPGNvcmU6OmNlbGw6OkJvcnJvd011dEVycm9yIGFzIGNvcmU6OmZtdDo6RGlzcGxheT46OmZtdDo6aGZiOGVjMDcyN2JhM2MwMTKIAS5jb3JlOjpmbXQ6OldyaXRlOjp3cml0ZV9mbXQ6OmhiZWY1ZTdkNDY1ZmU2Y2NliQEzPHN0ciBhcyBjb3JlOjpmbXQ6OkRpc3BsYXk+OjpmbXQ6OmgzZTYxYzJjMjUzNGQ0ZGU5igF3d2FzbV9iaW5kZ2VuOjpfX3diaW5kZ2VuX2RlYnVnX3N0cmluZzo6X193YmdfX193YmluZGdlbl9kZWJ1Z19zdHJpbmdfZGY0N2ZmYjVlMzVlNjc2Mzo6aGQwYWRmYTk3OGY3ZWI1MTEgZXh0ZXJucmVmIHNoaW2LAU08anNfc3lzOjpKc1N0cmluZyBhcyBjb3JlOjpzdHI6OnRyYWl0czo6RnJvbVN0cj46OmZyb21fc3RyOjpoMWI1ZmY3ZjE5M2M0M2NkNowBMXdhc21fYmluZGdlbjo6X193YmluZGdlbl90aHJvdzo6aDcwYzRiZGMwOGIzZjQwZmaNATRjb3JlOjpwYW5pYzo6UGFuaWNQYXlsb2FkOjphc19zdHI6OmgwNjg0NzFmODU2NTllOGQ0jgFCc3RkOjpzeXM6OmJhY2t0cmFjZTo6X19ydXN0X2VuZF9zaG9ydF9iYWNrdHJhY2U6Omg1OWQ2YzQwMmU0MGExNjg1jwE1d2FzbV9iaW5kZ2VuOjpfX3J0OjptYWxsb2NfZmFpbHVyZTo6aDQ5MjUxMTcyZWRhN2FlODCQAS1fX3J1c3RjWzUyMjRlNmI4MWNkODJhOGZdOjpfX3J1c3Rfc3RhcnRfcGFuaWORAT5fX3J1c3RjWzUyMjRlNmI4MWNkODJhOGZdOjpfX3J1c3Rfbm9fYWxsb2Nfc2hpbV9pc191bnN0YWJsZV92MpIBJWpzX3N5czo6QXJyYXk6Om5ldzo6aDhlYzE2YmVkZWZiZTU3YjOTASZqc19zeXM6Ok9iamVjdDo6bmV3OjpoZGQ2ODk0YjI1ZTEzOTVkNpQBJ19fcnVzdGNbNTIyNGU2YjgxY2Q4MmE4Zl06Ol9fcnVzdF9hYm9ydAUYAQEVX193YmluZGdlbl9leHRlcm5yZWZzBxIBAA9fX3N0YWNrX3BvaW50ZXIJEQIABy5yb2RhdGEBBS5kYXRhAHAJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjg5LjAgKDI5NDgzODgzZSAyMDI1LTA4LTA0KQZ3YWxydXMGMC4yNC40DHdhc20tYmluZGdlbgcwLjIuMTA1AJQBD3RhcmdldF9mZWF0dXJlcwgrC2J1bGstbWVtb3J5Kw9idWxrLW1lbW9yeS1vcHQrFmNhbGwtaW5kaXJlY3Qtb3ZlcmxvbmcrCm11bHRpdmFsdWUrD211dGFibGUtZ2xvYmFscysTbm9udHJhcHBpbmctZnB0b2ludCsPcmVmZXJlbmNlLXR5cGVzKwhzaWduLWV4dA==\",self.location));const B=x();(typeof A==\"string\"||typeof Request==\"function\"&&A instanceof Request||typeof URL==\"function\"&&A instanceof URL)&&(A=fetch(A));const{instance:Q,module:g}=await W(await A,B);return K(Q,g)}let U=null,R=!1;async function r(){try{return R||(U=await m(),R=!0),U}catch(A){return console.error(\"Error initializing WASM:\",A),null}}function H(){return R}function b(A){return Array.from(new Set(A))}async function e(){try{await r()}catch(A){console.warn(\"Failed to initialize WASM, falling back to JS implementation:\",A)}}class Z{constructor(B=\"global\",Q=document,g=\"keydown\"){if(g!==\"keydown\"&&g!==\"keyup\")throw new Error(g,\"\\u4E8B\\u4EF6\\u7C7B\\u578B\\u4EC5\\u652F\\u6301keydown\\u3001keyup\");this.eventType=g,this.namespace=B,this.selection=n(Q),this.bindedKeys=[],this.bindings=this.bindings.bind(this),this.capture=this.capture.bind(this),this.bubble=this.bubble.bind(this),this.init()}init(){try{e()}catch(B){console.warn(\"Failed to initialize WASM, falling back to JS implementation:\",B)}return this.selection.on(`${this.eventType}.capture.${this.namespace}`,this.capture,!0),this.selection.on(`${this.eventType}.bubble.${this.namespace}`,this.bubble,!1),this}bindings(B,Q){var g=!1,C=Object.keys(this.bindedKeys).map((function(N){return this.bindedKeys[N]}).bind(this)),E,I;for(E=0;E<C.length;E++)if(I=C[E],!!I.event.modifiers.shiftKey&&!!I.capture===Q&&i(B,I,!0)){I.callback(B),g=!0,B.preventDefault();break}if(g)return;for(E=0;E<C.length;E++)if(I=C[E],!I.event.modifiers.shiftKey&&!!I.capture===Q&&i(B,I,!1)){I.callback(B),B.preventDefault();break}function i(N,w,G){var c=N,Y=!1,t=!0;return c.key!==void 0&&(t=c.key.charCodeAt(0)>255,Y=!0,w.event.key===void 0?Y=!1:Array.isArray(w.event.key)?w.event.key.map(function(O){return O.toLowerCase()}).indexOf(c.key.toLowerCase())===-1&&(Y=!1):c.key.toLowerCase()!==w.event.key.toLowerCase()&&(Y=!1)),!Y&&(t||w.event.modifiers.shiftKey)&&(Y=c.keyCode===w.event.keyCode),!(!Y||!(c.ctrlKey&&c.altKey)&&(c.ctrlKey!==w.event.modifiers.ctrlKey||c.altKey!==w.event.modifiers.altKey)||c.metaKey!==w.event.modifiers.metaKey||G&&c.shiftKey!==w.event.modifiers.shiftKey)}}async capture(B){await e(),this.bindings(B,!0)}async bubble(B){await e();var Q=n(B.target).node().tagName;Q===\"INPUT\"||Q===\"SELECT\"||Q===\"TEXTAREA\"||String(B.target.getAttribute(\"contenteditable\"))!==\"true\"&&this.bindings(B,!1)}on(B,Q,g){if(typeof Q!=\"function\")return this.off(B,g);const C=()=>{var Y;for(var E=b([].concat(B)),I=0;I<E.length;I++){var i=E[I]+(g?\"-capture\":\"-bubble\"),N={id:i,capture:g,callback:Q,event:{key:void 0,keyCode:0,modifiers:{shiftKey:!1,ctrlKey:!1,altKey:!1,metaKey:!1}}};this.bindedKeys[i]&&console.warn('warning: duplicate keybinding for \"'+i+'\"'),this.bindedKeys[i]=N;for(var w=E[I].toLowerCase().match(/(?:(?:[^+⇧⌃⌥⌘])+|[⇧⌃⌥⌘]|\\+\\+|^\\+$)/g),G=0;G<w.length;G++)if(w[G]===\"++\"&&(w[G]=\"+\"),d(w[G])){var c=d(w[G]);N.event.modifiers[c]=!0}else N.event.key=((Y=S(w[G]))==null?void 0:Y.value)||w[G],N.event.keyCode=p(w[G])||0}};if(H())C();else{const E=setInterval(()=>{H()&&(clearInterval(E),C())},200)}return this}unbind(){return this.selection.on(`${this.eventType}.capture.${this.namespace}`,null),this.selection.on(`${this.eventType}.bubble.${this.namespace}`,null),this}clear(){return this.bindedKeys={},this}off(B,Q){for(var g=b([].concat(B)),C=0;C<g.length;C++){var E=g[C]+(Q===!0?\"-capture\":\"-bubble\");delete this.bindedKeys[E]}return this}}const T=new Z(\"global\",document,\"keydown\"),z=new Z(\"global\",document,\"keyup\");export{Z as Keybinding,T as keydowns,z as keyups};\n","import { Keybinding } from '@wbiokr/keybinding'\n\n// 样式注入\nconst STYLES = `\n.ae-d2-container {\n position: relative;\n width: 1000px;\n height: 600px;\n background: #fff;\n margin: auto;\n}\n\n.ae-d2-svg {\n width: 100%;\n height: 100%;\n}\n\n.ae-arrow-path {\n fill: none;\n stroke: #2b8cff;\n stroke-width: 8;\n stroke-linecap: round;\n stroke-linejoin: round;\n cursor: pointer;\n}\n\n.ae-arrow-path:hover {\n stroke: #00aaff;\n}\n\n.ae-transform-box {\n fill: none;\n stroke: #00aaff;\n stroke-width: 2;\n}\n`\n\n// 注入样式\nif (typeof document !== 'undefined') {\n const styleEl = document.createElement('style')\n styleEl.textContent = STYLES\n document.head.appendChild(styleEl)\n}\n\nexport class ArrowEditor2 {\n\n constructor(container) {\n this.container = typeof container === 'string' ? document.querySelector(container) : container\n this.svg = null\n\n this.arrows = []\n this.drawing = false\n this.current = null\n this.selected = null\n this.mode = null\n this.lastClickTime = 0\n this.lastClickPos = null\n this.isCurveMode = false\n this._shouldBlockClick = false\n this._defaultColor = '#2b8cff'\n\n this._createSVG()\n this._initKeybindings()\n this._initEvents()\n }\n\n _createSVG() {\n // 创建 SVG 元素\n this.svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n this.svg.setAttribute('class', 'ae-d2-svg')\n this.container.appendChild(this.svg)\n\n // 创建 defs 和 marker\n const defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs')\n this.svg.appendChild(defs)\n\n const marker = document.createElementNS('http://www.w3.org/2000/svg', 'marker')\n marker.setAttribute('id', 'ae-arrowhead')\n marker.setAttribute('markerWidth', '10')\n marker.setAttribute('markerHeight', '10')\n marker.setAttribute('refX', '9')\n marker.setAttribute('refY', '5')\n marker.setAttribute('orient', 'auto')\n\n const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon')\n polygon.setAttribute('points', '0,0 10,5 0,10 2,5')\n polygon.setAttribute('fill', this._defaultColor)\n\n marker.appendChild(polygon)\n defs.appendChild(marker)\n }\n\n _initKeybindings() {\n // 创建快捷键实例,绑定到 container 上\n this._kb = new Keybinding('arrow-editor')\n\n // Enter: 完成绘制\n this._kb.on('enter', () => {\n this._handleEnter()\n })\n\n // Esc: 结束绘制、取消选中\n this._kb.on('esc', () => {\n this._handleEsc()\n })\n }\n\n _initEvents() {\n // 曲线模式快捷键(Ctrl/Shift)\n document.addEventListener('keydown', e => {\n if (e.key === 'Control' || e.key === 'Shift') {\n this.isCurveMode = true\n }\n })\n\n document.addEventListener('keyup', e => {\n if (e.key === 'Control' || e.key === 'Shift') {\n this.isCurveMode = false\n }\n })\n\n this.container.onclick = e => {\n const p = this._mousePos(e)\n this._handleClick(p)\n }\n\n this.container.onmousemove = e => {\n const p = this._mousePos(e)\n this._handleMouseMove(e, p)\n }\n\n this.container.onmousedown = () => {\n if (this.selected) {\n this.mode = 'move'\n }\n }\n\n this.container.onmouseup = () => {\n this.mode = null\n }\n }\n\n _mousePos(e) {\n const r = this.container.getBoundingClientRect()\n return {\n x: e.clientX - r.left,\n y: e.clientY - r.top\n }\n }\n\n _generatePath(pts, isCurve) {\n if (pts.length < 2) return ''\n\n if (!isCurve) {\n let d = `M ${pts[0].x} ${pts[0].y}`\n for (let i = 1; i < pts.length; i++) {\n d += ` L ${pts[i].x} ${pts[i].y}`\n }\n return d\n }\n\n let d = `M ${pts[0].x} ${pts[0].y}`\n for (let i = 1; i < pts.length - 1; i++) {\n const prev = pts[i - 1]\n const curr = pts[i]\n const next = pts[i + 1]\n\n const midPrevX = (prev.x + curr.x) / 2\n const midPrevY = (prev.y + curr.y) / 2\n const midNextX = (curr.x + next.x) / 2\n const midNextY = (curr.y + next.y) / 2\n\n d += ` L ${midPrevX} ${midPrevY}`\n d += ` Q ${curr.x} ${curr.y} ${midNextX} ${midNextY}`\n }\n\n const last = pts[pts.length - 1]\n d += ` L ${last.x} ${last.y}`\n\n return d\n }\n\n _generateArrowHead(pts) {\n if (pts.length < 2) return ''\n\n const last = pts[pts.length - 1]\n let prev = pts[pts.length - 2]\n\n if (pts.length >= 3) {\n const dist = Math.hypot(last.x - prev.x, last.y - prev.y)\n if (dist < 5) {\n prev = pts[pts.length - 3]\n }\n }\n\n const dx = last.x - prev.x\n const dy = last.y - prev.y\n const len = Math.hypot(dx, dy)\n\n if (len < 1) return ''\n\n const ux = dx / len\n const uy = dy / len\n\n const notchX = last.x\n const notchY = last.y\n\n const baseLen = 40\n const baseWidth = 20\n const notchLen = 20\n\n const tipX = last.x + ux * notchLen\n const tipY = last.y + uy * notchLen\n const baseX = last.x - ux * (baseLen - notchLen)\n const baseY = last.y - uy * (baseLen - notchLen)\n\n const px = -uy\n const py = ux\n\n const leftX = baseX + px * baseWidth\n const leftY = baseY + py * baseWidth\n const rightX = baseX - px * baseWidth\n const rightY = baseY - py * baseWidth\n\n return `M ${tipX} ${tipY} L ${leftX} ${leftY} L ${notchX} ${notchY} L ${rightX} ${rightY} Z`\n }\n\n _createArrowGroup(arrow, index) {\n const g = document.createElementNS('http://www.w3.org/2000/svg', 'g')\n g.setAttribute('data-index', index)\n\n const color = arrow.color || this._defaultColor\n\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n path.setAttribute('class', 'ae-arrow-path')\n path.setAttribute('stroke', color)\n path.setAttribute('d', this._generatePath(arrow.points, arrow.isCurve || false))\n g.appendChild(path)\n\n const arrowHead = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n arrowHead.setAttribute('fill', color)\n arrowHead.setAttribute('d', this._generateArrowHead(arrow.points))\n g.appendChild(arrowHead)\n\n if (arrow === this.selected) {\n const p = arrow.points[0]\n const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect')\n rect.setAttribute('class', 'ae-transform-box')\n rect.setAttribute('x', p.x - 40)\n rect.setAttribute('y', p.y - 40)\n rect.setAttribute('width', 80)\n rect.setAttribute('height', 80)\n g.appendChild(rect)\n }\n\n return g\n }\n\n render() {\n this.svg.querySelectorAll('g').forEach(g => g.remove())\n\n this.arrows.forEach((arrow, index) => {\n const g = this._createArrowGroup(arrow, index)\n this.svg.appendChild(g)\n })\n\n if (this.current) {\n const g = this._createArrowGroup(this.current, this.arrows.length)\n this.svg.appendChild(g)\n }\n }\n\n _isDoubleClick(p) {\n const now = Date.now()\n const dt = now - this.lastClickTime\n this.lastClickTime = now\n\n if (dt < 300 && this.lastClickPos && Math.hypot(p.x - this.lastClickPos.x, p.y - this.lastClickPos.y) < 10) {\n this.lastClickPos = null\n return true\n }\n\n this.lastClickPos = p\n return false\n }\n\n _handleClick(p) {\n // 如果刚才有拖拽,阻止点击事件\n if (this._shouldBlockClick) {\n this._shouldBlockClick = false\n return\n }\n\n if (this._isDoubleClick(p)) {\n if (this.drawing && this.current && this.current.points.length >= 2) {\n this.drawing = false\n this.current.isCurve = this.isCurveMode\n this.arrows.push(this.current)\n this.current = null\n this.render()\n }\n return\n }\n\n if (!this.drawing) {\n for (const a of this.arrows) {\n if (this._hitArrow(a, p)) {\n this.selected = a\n this.render()\n return\n }\n }\n\n // 点击空白处,取消选中\n this.selected = null\n this.drawing = true\n this.current = {\n points: [p, p],\n isCurve: false,\n color: this._defaultColor\n }\n } else {\n this.current.points.push(p)\n }\n\n this.render()\n }\n\n _handleEnter() {\n // 正在绘制时,按 Enter 完成绘制\n if (this.drawing && this.current && this.current.points.length >= 2) {\n this.drawing = false\n this.current.isCurve = this.isCurveMode\n this.arrows.push(this.current)\n this.current = null\n this.render()\n }\n }\n\n _handleEsc() {\n // 按 Esc: 结束绘制、取消选中\n if (this.drawing) {\n this.drawing = false\n this.current = null\n }\n if (this.selected) {\n this.selected = null\n }\n this.render()\n }\n\n // 删除选中的箭头\n deleteSelected() {\n if (this.selected) {\n this.arrows = this.arrows.filter(a => a !== this.selected)\n this.selected = null\n this._hideToolbar()\n this.render()\n }\n }\n\n _handleMouseMove(e, p) {\n if (this.drawing) {\n this.current.points[this.current.points.length - 1] = p\n this.render()\n }\n\n if (this.selected && this.mode === 'move') {\n const dx = e.movementX\n const dy = e.movementY\n\n // 如果有移动,标记需要阻止点击\n if (dx !== 0 || dy !== 0) {\n this._shouldBlockClick = true\n }\n\n this.selected.points.forEach(pt => {\n pt.x += dx\n pt.y += dy\n })\n\n this.render()\n }\n }\n\n _hitArrow(a, p) {\n for (let i = 0; i < a.points.length - 1; i++) {\n if (this._dist(p, a.points[i], a.points[i + 1]) < 15)\n return true\n }\n return false\n }\n\n _dist(p, a, b) {\n const dx = b.x - a.x\n const dy = b.y - a.y\n const t = ((p.x - a.x) * dx + (p.y - a.y) * dy) / (dx * dx + dy * dy)\n const tt = Math.max(0, Math.min(1, t))\n const px = a.x + tt * dx\n const py = a.y + tt * dy\n return Math.hypot(p.x - px, p.y - py)\n }\n\n // 获取所有箭头数据\n getData() {\n return this.arrows.map(arrow => ({\n points: arrow.points,\n isCurve: arrow.isCurve\n }))\n }\n\n // 设置箭头数据\n setData(data) {\n this.arrows = data.map(item => ({\n points: item.points,\n isCurve: item.isCurve || false\n }))\n this.render()\n }\n\n // 清空所有箭头\n clear() {\n this.arrows = []\n this.drawing = false\n this.current = null\n this.selected = null\n this.render()\n }\n}\n"],"names":["STYLES","document","styleEl","createElement","textContent","head","appendChild","ArrowEditor2","container","_classCallCheck","querySelector","svg","arrows","drawing","current","selected","mode","lastClickTime","lastClickPos","isCurveMode","_shouldBlockClick","_defaultColor","_createSVG","_initKeybindings","_initEvents","_createClass","key","value","createElementNS","setAttribute","defs","marker","polygon","_this","_kb","Keybinding","on","_handleEnter","_handleEsc","_this2","addEventListener","e","onclick","p","_mousePos","_handleClick","onmousemove","_handleMouseMove","onmousedown","onmouseup","r","getBoundingClientRect","x","clientX","left","y","clientY","top","_generatePath","pts","isCurve","length","d","concat","i","prev","curr","next","midPrevX","midPrevY","midNextX","midNextY","last","_generateArrowHead","dist","Math","hypot","dx","dy","len","ux","uy","notchX","notchY","baseLen","baseWidth","notchLen","tipX","tipY","baseX","baseY","px","py","leftX","leftY","rightX","rightY","_createArrowGroup","arrow","index","g","color","path","points","arrowHead","rect","render","_this3","querySelectorAll","forEach","remove","_isDoubleClick","now","Date","dt","push","_iterator","_createForOfIteratorHelper","_step","s","n","done","a","_hitArrow","err","f","deleteSelected","_this4","filter","_hideToolbar","movementX","movementY","pt","_dist","b","t","tt","max","min","getData","map","setData","data","item","clear"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,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]}
1
+ {"version":3,"file":"bundle.cjs.js","sources":["../src/editor.js"],"sourcesContent":["import { Keybinding } from '@wbiokr/keybinding'\n\n// 样式注入\nconst STYLES = `\n.ae-d2-container {\n position: relative;\n width: 1000px;\n height: 600px;\n background: #fff;\n margin: auto;\n}\n\n.ae-d2-svg {\n width: 100%;\n height: 100%;\n}\n\n.ae-arrow-path {\n fill: none;\n stroke-linecap: round;\n stroke-linejoin: round;\n cursor: pointer;\n}\n\n.ae-arrow-path:hover {\n stroke: #00aaff;\n}\n\n.ae-transform-box {\n fill: none;\n stroke: #00aaff;\n stroke-width: 2;\n stroke-dasharray: 4;\n}\n\n.ae-transform-handle {\n fill: #fff;\n stroke: #00aaff;\n stroke-width: 2;\n cursor: pointer;\n}\n\n.ae-transform-handle:hover {\n fill: #00aaff;\n}\n\n.ae-rotate-handle {\n fill: #fff;\n stroke: #ff6600;\n stroke-width: 2;\n cursor: grab;\n}\n\n.ae-rotate-handle:hover {\n fill: #ff6600;\n}\n\n.ae-rotate-line {\n stroke: #ff6600;\n stroke-width: 1;\n stroke-dasharray: 4;\n}\n\n/* 工具条样式 */\n.ae-toolbar {\n position: absolute;\n display: none;\n flex-direction: column;\n gap: 10px;\n padding: 12px;\n background: #fff;\n border: 1px solid #ddd;\n border-radius: 8px;\n box-shadow: 0 2px 12px rgba(0,0,0,0.15);\n z-index: 1000;\n pointer-events: auto;\n min-width: 140px;\n}\n\n.ae-toolbar-drag-handle {\n cursor: grab;\n text-align: center;\n padding: 4px;\n color: #999;\n font-size: 14px;\n line-height: 1;\n user-select: none;\n border-bottom: 1px solid #eee;\n margin: -12px -12px 8px -12px;\n padding-top: 8px;\n padding-bottom: 8px;\n border-radius: 8px 8px 0 0;\n}\n\n.ae-toolbar-drag-handle:active {\n cursor: grabbing;\n}\n\n.ae-toolbar-item {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.ae-toolbar-label {\n font-size: 11px;\n color: #666;\n}\n\n.ae-toolbar input[type=\"color\"] {\n width: 40px;\n height: 30px;\n border: 1px solid #ddd;\n border-radius: 4px;\n cursor: pointer;\n padding: 0;\n background: none;\n}\n\n.ae-toolbar input[type=\"range\"] {\n width: 120px;\n cursor: pointer;\n}\n\n.ae-toolbar-value {\n font-size: 10px;\n color: #999;\n text-align: right;\n}\n`\n\n// 注入样式\nif (typeof document !== 'undefined') {\n const styleEl = document.createElement('style')\n styleEl.textContent = STYLES\n document.head.appendChild(styleEl)\n}\n\nexport class ArrowEditor {\n\n constructor(container) {\n this.container = typeof container === 'string' ? document.querySelector(container) : container\n this.svg = null\n\n this.arrows = []\n this.drawing = false\n this.current = null\n this.selected = null\n this.mode = null\n this.lastClickTime = 0\n this.lastClickPos = null\n this._shouldBlockClick = false\n this._defaultColor = '#2b8cff'\n\n // 变换相关\n this._transformMode = null // 'rotate' | 'scale'\n this._transformHandle = null\n this._transformStartPos = null\n this._transformStartPoints = null\n this._transformCenter = null\n this._transformStartAngle = null\n this._rotationOffset = 0\n\n // 工具条相关\n this._toolbar = null\n this._strokeWidth = 8\n this._curveRate = 0\n\n this._createSVG()\n this._initKeybindings()\n this._initEvents()\n }\n\n _createSVG() {\n // 创建 SVG 元素\n this.svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg')\n this.svg.setAttribute('class', 'ae-d2-svg')\n this.container.appendChild(this.svg)\n\n // 创建 defs 和 marker\n const defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs')\n this.svg.appendChild(defs)\n\n const marker = document.createElementNS('http://www.w3.org/2000/svg', 'marker')\n marker.setAttribute('id', 'ae-arrowhead')\n marker.setAttribute('markerWidth', '10')\n marker.setAttribute('markerHeight', '10')\n marker.setAttribute('refX', '9')\n marker.setAttribute('refY', '5')\n marker.setAttribute('orient', 'auto')\n\n const polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon')\n polygon.setAttribute('points', '0,0 10,5 0,10 2,5')\n polygon.setAttribute('fill', this._defaultColor)\n\n marker.appendChild(polygon)\n defs.appendChild(marker)\n }\n\n _createToolbar() {\n if (this._toolbar) {\n this._toolbar.remove()\n }\n\n this._toolbar = document.createElement('div')\n this._toolbar.className = 'ae-toolbar'\n\n const color = this.selected.color || this._defaultColor\n const strokeWidth = this.selected.strokeWidth || this._strokeWidth\n const curveRate = this.selected.curveRate ?? this.selected.cornerRoundness ?? 0\n\n this._toolbar.innerHTML = `\n <div class=\"ae-toolbar-drag-handle\">:::</div>\n <div class=\"ae-toolbar-item\">\n <span class=\"ae-toolbar-label\">颜色</span>\n <input type=\"color\" class=\"ae-color-input\" value=\"${color}\" />\n </div>\n <div class=\"ae-toolbar-item\">\n <span class=\"ae-toolbar-label\">粗细</span>\n <input type=\"range\" class=\"ae-stroke-input\" min=\"1\" max=\"60\" value=\"${strokeWidth}\" />\n <span class=\"ae-toolbar-value\">${strokeWidth}px</span>\n </div>\n <div class=\"ae-toolbar-item\">\n <span class=\"ae-toolbar-label\">曲线率</span>\n <input type=\"range\" class=\"ae-round-input\" min=\"0\" max=\"1\" step=\"0.1\" value=\"${curveRate}\" />\n </div>\n `\n\n // 颜色选择\n const colorInput = this._toolbar.querySelector('.ae-color-input')\n colorInput.addEventListener('input', (e) => {\n if (!this.selected) return\n this.selected.color = e.target.value\n this._defaultColor = e.target.value\n this._updateMarkerColor(e.target.value)\n this.render()\n })\n\n // 粗细调整\n const strokeInput = this._toolbar.querySelector('.ae-stroke-input')\n const strokeValue = this._toolbar.querySelector('.ae-stroke-input + .ae-toolbar-value')\n strokeInput.addEventListener('input', (e) => {\n if (!this.selected) return\n this.selected.strokeWidth = parseInt(e.target.value)\n strokeValue.textContent = e.target.value + 'px'\n this.render()\n })\n\n // 曲线率调整\n const roundInput = this._toolbar.querySelector('.ae-round-input')\n roundInput.addEventListener('input', (e) => {\n if (!this.selected) return\n this.selected.curveRate = parseFloat(e.target.value)\n this.render()\n })\n\n // 拖拽功能 - 使用类实例绑定\n const dragHandle = this._toolbar.querySelector('.ae-toolbar-drag-handle')\n this._setupToolbarDrag(dragHandle)\n\n // 阻止工具条上的事件触发到容器\n this._toolbar.addEventListener('mousedown', (e) => {\n e.stopPropagation()\n })\n this._toolbar.addEventListener('mouseup', (e) => {\n e.stopPropagation()\n })\n\n this.container.appendChild(this._toolbar)\n }\n\n // 工具条拖拽设置\n _setupToolbarDrag(dragHandle) {\n let isDragging = false\n let dragOffset = { x: 0, y: 0 }\n\n dragHandle.addEventListener('mousedown', (e) => {\n isDragging = true\n this._toolbarDragging = true\n const rect = this._toolbar.getBoundingClientRect()\n dragOffset.x = e.clientX - rect.left\n dragOffset.y = e.clientY - rect.top\n e.preventDefault()\n e.stopPropagation()\n\n const onMove = (moveEvent) => {\n if (!isDragging) return\n const containerRect = this.container.getBoundingClientRect()\n let newLeft = moveEvent.clientX - containerRect.left - dragOffset.x\n let newTop = moveEvent.clientY - containerRect.top - dragOffset.y\n const toolbarWidth = this._toolbar.offsetWidth\n const toolbarHeight = this._toolbar.offsetHeight\n newLeft = Math.max(0, Math.min(newLeft, containerRect.width - toolbarWidth))\n newTop = Math.max(0, Math.min(newTop, containerRect.height - toolbarHeight))\n this._toolbar.style.left = newLeft + 'px'\n this._toolbar.style.top = newTop + 'px'\n }\n\n const onUp = (e) => {\n isDragging = false\n this._toolbarDragging = false\n document.removeEventListener('mousemove', onMove)\n document.removeEventListener('mouseup', onUp)\n this._toolbar.removeEventListener('mouseup', onUp)\n \n e.preventDefault()\n e.stopPropagation()\n }\n\n document.addEventListener('mousemove', onMove)\n document.addEventListener('mouseup', onUp)\n\n this._toolbar.addEventListener('mouseup', onUp)\n })\n }\n\n _showToolbar() {\n if (this.selected) {\n if (!this._toolbar) {\n this._createToolbar()\n }\n this._toolbar.style.display = 'flex'\n\n // 更新工具条值\n const color = this.selected.color || this._defaultColor\n const strokeWidth = this.selected.strokeWidth || this._strokeWidth\n const curveRate = this.selected.curveRate ?? this.selected.cornerRoundness ?? 0\n\n const colorInput = this._toolbar.querySelector('.ae-color-input')\n const strokeInput = this._toolbar.querySelector('.ae-stroke-input')\n const strokeValue = this._toolbar.querySelector('.ae-stroke-input + .ae-toolbar-value')\n const roundInput = this._toolbar.querySelector('.ae-round-input')\n\n if (colorInput) colorInput.value = color\n if (strokeInput) {\n strokeInput.value = strokeWidth\n strokeValue.textContent = strokeWidth + 'px'\n }\n if (roundInput) roundInput.value = curveRate\n\n // 定位到所选箭头旁边\n const bbox = this._getArrowBBox(this.selected)\n const toolbarWidth = this._toolbar.offsetWidth || 150\n const toolbarHeight = this._toolbar.offsetHeight || 120\n\n // 计算位置:放在箭头右侧,如果空间不够则放左侧\n let left = bbox.maxX + 20\n if (left + toolbarWidth > this.container.offsetWidth) {\n left = bbox.minX - toolbarWidth - 20\n }\n\n // 垂直居中于箭头\n let top = bbox.centerY - toolbarHeight / 2\n if (top < 0) top = 0\n if (top + toolbarHeight > this.container.offsetHeight) {\n top = this.container.offsetHeight - toolbarHeight\n }\n\n this._toolbar.style.left = left + 'px'\n this._toolbar.style.top = top + 'px'\n }\n }\n\n _hideToolbar() {\n if (this._toolbar) {\n this._toolbar.style.display = 'none'\n }\n }\n\n _updateMarkerColor(color) {\n const marker = this.svg.querySelector('#ae-arrowhead polygon')\n if (marker) {\n marker.setAttribute('fill', color)\n }\n }\n\n _initKeybindings() {\n // 创建快捷键实例,绑定到 container 上\n this._kb = new Keybinding('arrow-editor')\n\n // Enter: 完成绘制\n this._kb.on('enter', () => {\n this._handleEnter()\n })\n\n // Esc: 结束绘制、取消选中\n this._kb.on('esc', () => {\n this._handleEsc()\n })\n }\n\n _initEvents() {\n this.container.onclick = e => {\n // 点击工具条时不处理\n if (this._toolbar && (e.target === this._toolbar || this._toolbar.contains(e.target))) {\n return\n }\n const p = this._mousePos(e)\n this._handleClick(p)\n }\n\n this.container.onmousemove = e => {\n const p = this._mousePos(e)\n this._handleMouseMove(e, p)\n }\n\n this.container.onmousedown = e => {\n // 点击工具条不触发移动\n if (this._toolbar && (e.target === this._toolbar || this._toolbar.contains(e.target))) {\n return\n }\n\n if (this.selected) {\n const handle = e.target.getAttribute('data-handle')\n if (handle) {\n this._transformMode = handle\n this._transformHandle = handle\n const p = this._mousePos(e)\n this._transformStartPos = p\n this._transformStartPoints = this.selected.points.map(pt => ({ x: pt.x, y: pt.y }))\n this._transformCenter = this._getArrowBBox(this.selected)\n\n if (handle === 'rotate') {\n const center = this._transformCenter\n const dx = p.x - center.centerX\n const dy = p.y - center.centerY\n this._transformStartAngle = Math.atan2(dy, dx)\n this._rotationOffset = 0\n }\n\n e.stopPropagation()\n return\n }\n\n this.mode = 'move'\n }\n }\n\n this.container.onmouseup = () => {\n this.mode = null\n this._transformMode = null\n this._transformHandle = null\n }\n }\n\n _mousePos(e) {\n const r = this.container.getBoundingClientRect()\n return {\n x: e.clientX - r.left,\n y: e.clientY - r.top\n }\n }\n\n _generatePath(pts, curveRate = 0) {\n if (pts.length < 2) return ''\n\n // curveRate 为 0 时画直线\n if (curveRate === 0) {\n let d = `M ${pts[0].x} ${pts[0].y}`\n for (let i = 1; i < pts.length; i++) {\n d += ` L ${pts[i].x} ${pts[i].y}`\n }\n return d\n }\n\n // 根据曲线率计算控制点位置\n // curveRate: 0 - 直线,1 - 最弯曲\n let d = `M ${pts[0].x} ${pts[0].y}`\n\n for (let i = 0; i < pts.length - 1; i++) {\n const curr = pts[i]\n const next = pts[i + 1]\n\n // 计算当前线段的向量\n const dx = next.x - curr.x\n const dy = next.y - curr.y\n const len = Math.hypot(dx, dy)\n\n if (len === 0) continue\n\n // 计算进入当前点的切线向量(前一段线段)\n let inDx = dx\n let inDy = dy\n\n if (i > 0) {\n const prev = pts[i - 1]\n inDx = curr.x - prev.x\n inDy = curr.y - prev.y\n }\n\n // 计算出当前点的切线向量(下一段线段)\n let outDx = dx\n let outDy = dy\n\n if (i < pts.length - 2) {\n const after = pts[i + 2]\n outDx = after.x - next.x\n outDy = after.y - next.y\n }\n\n // 单位向量\n const inLen = Math.hypot(inDx, inDy) || 1\n const outLen = Math.hypot(outDx, outDy) || 1\n const uxIn = inDx / inLen\n const uyIn = inDy / inLen\n const uxOut = outDx / outLen\n const uyOut = outDy / outLen\n\n // 控制点距离:曲线率 * 线段长度 * 系数\n const controlDist = len * curveRate * 0.3\n\n // 第一个控制点:从当前点沿进入方向的切线\n const cp1X = curr.x + uxIn * controlDist\n const cp1Y = curr.y + uyIn * controlDist\n\n // 第二个控制点:从下一个点沿出去方向的切线反方向\n const cp2X = next.x - uxOut * controlDist\n const cp2Y = next.y - uyOut * controlDist\n\n d += ` C ${cp1X} ${cp1Y} ${cp2X} ${cp2Y} ${next.x} ${next.y}`\n }\n\n return d\n }\n\n _generateArrowHead(pts, strokeWidth = 8) {\n if (pts.length < 2) return ''\n\n const last = pts[pts.length - 1]\n let prev = pts[pts.length - 2]\n\n if (pts.length >= 3) {\n const dist = Math.hypot(last.x - prev.x, last.y - prev.y)\n if (dist < 5) {\n prev = pts[pts.length - 3]\n }\n }\n\n const dx = last.x - prev.x\n const dy = last.y - prev.y\n const len = Math.hypot(dx, dy)\n\n if (len < 1) return ''\n\n const ux = dx / len\n const uy = dy / len\n\n const notchX = last.x\n const notchY = last.y\n\n // 根据粗细调整箭头大小\n const scale = strokeWidth / 8\n const baseLen = 40 * scale\n const baseWidth = 20 * scale\n const notchLen = 20 * scale\n\n const tipX = last.x + ux * notchLen\n const tipY = last.y + uy * notchLen\n const baseX = last.x - ux * (baseLen - notchLen)\n const baseY = last.y - uy * (baseLen - notchLen)\n\n const px = -uy\n const py = ux\n\n const leftX = baseX + px * baseWidth\n const leftY = baseY + py * baseWidth\n const rightX = baseX - px * baseWidth\n const rightY = baseY - py * baseWidth\n\n return `M ${tipX} ${tipY} L ${leftX} ${leftY} L ${notchX} ${notchY} L ${rightX} ${rightY} Z`\n }\n\n _createArrowGroup(arrow, index) {\n const g = document.createElementNS('http://www.w3.org/2000/svg', 'g')\n g.setAttribute('data-index', index)\n\n const color = arrow.color || this._defaultColor\n const strokeWidth = arrow.strokeWidth || this._strokeWidth\n const curveRate = arrow.curveRate ?? arrow.cornerRoundness ?? 0\n\n const path = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n path.setAttribute('class', 'ae-arrow-path')\n path.style.stroke = color\n path.style.strokeWidth = strokeWidth + 'px'\n path.setAttribute('d', this._generatePath(arrow.points, curveRate))\n g.appendChild(path)\n\n const arrowHead = document.createElementNS('http://www.w3.org/2000/svg', 'path')\n arrowHead.setAttribute('fill', color)\n arrowHead.setAttribute('d', this._generateArrowHead(arrow.points, strokeWidth))\n g.appendChild(arrowHead)\n\n if (arrow === this.selected) {\n const bbox = this._getArrowBBox(arrow)\n\n // 变换框\n const rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect')\n rect.setAttribute('class', 'ae-transform-box')\n rect.setAttribute('x', bbox.minX - 10)\n rect.setAttribute('y', bbox.minY - 10)\n rect.setAttribute('width', bbox.width + 20)\n rect.setAttribute('height', bbox.height + 20)\n g.appendChild(rect)\n\n // 缩放手柄(右下角)\n const scaleHandle = document.createElementNS('http://www.w3.org/2000/svg', 'circle')\n scaleHandle.setAttribute('class', 'ae-transform-handle')\n scaleHandle.setAttribute('cx', bbox.maxX + 10)\n scaleHandle.setAttribute('cy', bbox.maxY + 10)\n scaleHandle.setAttribute('r', 6)\n scaleHandle.setAttribute('data-handle', 'scale')\n g.appendChild(scaleHandle)\n\n // 旋转手柄(顶部中间)\n const rotateY = bbox.minY - 30\n const rotateX = bbox.centerX\n const rotateLine = document.createElementNS('http://www.w3.org/2000/svg', 'line')\n rotateLine.setAttribute('class', 'ae-rotate-line')\n rotateLine.setAttribute('x1', bbox.centerX)\n rotateLine.setAttribute('y1', bbox.minY - 10)\n rotateLine.setAttribute('x2', rotateX)\n rotateLine.setAttribute('y2', rotateY)\n g.appendChild(rotateLine)\n\n const rotateHandle = document.createElementNS('http://www.w3.org/2000/svg', 'circle')\n rotateHandle.setAttribute('class', 'ae-rotate-handle')\n rotateHandle.setAttribute('cx', rotateX)\n rotateHandle.setAttribute('cy', rotateY)\n rotateHandle.setAttribute('r', 8)\n rotateHandle.setAttribute('data-handle', 'rotate')\n g.appendChild(rotateHandle)\n }\n\n return g\n }\n\n render() {\n this.svg.querySelectorAll('g').forEach(g => g.remove())\n\n this.arrows.forEach((arrow, index) => {\n const g = this._createArrowGroup(arrow, index)\n this.svg.appendChild(g)\n })\n\n if (this.current) {\n const g = this._createArrowGroup(this.current, this.arrows.length)\n this.svg.appendChild(g)\n }\n }\n\n _isDoubleClick(p) {\n const now = Date.now()\n const dt = now - this.lastClickTime\n this.lastClickTime = now\n\n if (dt < 300 && this.lastClickPos && Math.hypot(p.x - this.lastClickPos.x, p.y - this.lastClickPos.y) < 10) {\n this.lastClickPos = null\n return true\n }\n\n this.lastClickPos = p\n return false\n }\n\n _handleClick(p) {\n // 如果刚才有拖拽,阻止点击事件\n if (this._shouldBlockClick) {\n this._shouldBlockClick = false\n return\n }\n\n if (this._isDoubleClick(p)) {\n if (this.drawing && this.current && this.current.points.length >= 2) {\n this.drawing = false\n this.arrows.push(this.current)\n this.current = null\n this.render()\n }\n return\n }\n\n // 有选中的箭头时,点击空白处取消选中\n if (this.selected) {\n for (const a of this.arrows) {\n if (this._hitArrow(a, p)) {\n this.render()\n return\n }\n }\n // 点击空白处,取消选中\n this.selected = null\n this._hideToolbar()\n this.render()\n return\n }\n\n // 没有选中时,检查是否点击到箭头\n for (const a of this.arrows) {\n if (this._hitArrow(a, p)) {\n this.selected = a\n this._showToolbar()\n this.render()\n return\n }\n }\n\n // 点击空白处\n if (this.drawing) {\n // 正在绘制中,添加点\n this.current.points.push(p)\n } else {\n // 开始绘制\n this.drawing = true\n this.current = {\n points: [p, p],\n color: this._defaultColor\n }\n }\n\n this.render()\n }\n\n _handleEnter() {\n // 正在绘制时,按 Enter 完成绘制\n if (this.drawing && this.current && this.current.points.length >= 2) {\n this.drawing = false\n this.arrows.push(this.current)\n this.current = null\n this.render()\n }\n }\n\n _handleEsc() {\n // 按 Esc: 结束绘制、取消选中\n if (this.drawing) {\n this.drawing = false\n this.current = null\n }\n if (this.selected) {\n this.selected = null\n }\n this._hideColorPicker()\n this._hideToolbar()\n this.render()\n }\n\n _showColorPicker(e) {\n if (this._showingColorPicker) {\n this._hideColorPicker()\n return\n }\n\n this._showingColorPicker = true\n\n // 创建颜色选择器浮窗\n const popup = document.createElement('div')\n popup.className = 'ae-color-picker-popup'\n\n const label = document.createElement('span')\n label.textContent = '选择颜色'\n label.style.cssText = 'font-size: 12px; color: #666;'\n\n const colorInput = document.createElement('input')\n colorInput.type = 'color'\n colorInput.value = this.selected.color || this._defaultColor\n // 自动打开颜色选择器\n colorInput.showPicker()\n\n popup.appendChild(label)\n popup.appendChild(colorInput)\n\n // 定位到颜色手柄位置\n const rect = this.container.getBoundingClientRect()\n const bbox = this._getArrowBBox(this.selected)\n const x = rect.left + bbox.minX - 50\n const y = rect.top + bbox.maxY + 15\n\n popup.style.left = x + 'px'\n popup.style.top = y + 'px'\n\n // 颜色改变时实时更新\n colorInput.addEventListener('input', (ev) => {\n this.selected.color = ev.target.value\n this._defaultColor = ev.target.value\n this.render()\n })\n\n // 点击外部关闭\n const closeHandler = (ev) => {\n if (!popup.contains(ev.target)) {\n this._hideColorPicker()\n document.removeEventListener('click', closeHandler)\n }\n }\n\n document.body.appendChild(popup)\n this._colorPickerPopup = popup\n\n document.addEventListener('click', closeHandler)\n }\n\n _hideColorPicker() {\n if (this._colorPickerPopup) {\n this._colorPickerPopup.remove()\n this._colorPickerPopup = null\n }\n this._showingColorPicker = false\n }\n\n // 删除选中的箭头\n deleteSelected() {\n if (this.selected) {\n this.arrows = this.arrows.filter(a => a !== this.selected)\n this.selected = null\n this.render()\n }\n }\n\n _handleMouseMove(e, p) {\n // 如果正在拖拽工具条,不处理\n if (this._toolbarDragging) {\n return\n }\n\n // 如果鼠标在工具条上,不处理\n if (this._toolbar && (e.target === this._toolbar || this._toolbar.contains(e.target))) {\n return\n }\n\n if (this.drawing) {\n this.current.points[this.current.points.length - 1] = p\n this.render()\n }\n\n // 变换处理(旋转/缩放)\n if (this._transformMode && this.selected) {\n if (this._transformMode === 'rotate') {\n this._handleRotate(p)\n } else if (this._transformMode === 'scale') {\n this._handleScale(p)\n }\n this.render()\n return\n }\n\n if (this.selected && this.mode === 'move') {\n const dx = e.movementX\n const dy = e.movementY\n\n // 如果有移动,标记需要阻止点击\n if (dx !== 0 || dy !== 0) {\n this._shouldBlockClick = true\n }\n\n this.selected.points.forEach(pt => {\n pt.x += dx\n pt.y += dy\n })\n\n this.render()\n }\n }\n\n _getArrowBBox(arrow) {\n const points = arrow.points\n let minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity\n\n for (const pt of points) {\n minX = Math.min(minX, pt.x)\n minY = Math.min(minY, pt.y)\n maxX = Math.max(maxX, pt.x)\n maxY = Math.max(maxY, pt.y)\n }\n\n return {\n minX,\n minY,\n maxX,\n maxY,\n width: maxX - minX,\n height: maxY - minY,\n centerX: (minX + maxX) / 2,\n centerY: (minY + maxY) / 2\n }\n }\n\n _handleRotate(p) {\n const center = this._transformCenter\n const centerX = center.centerX\n const centerY = center.centerY\n\n // 计算当前角度和起始角度\n const currentAngle = Math.atan2(p.y - centerY, p.x - centerX)\n const startAngle = Math.atan2(this._transformStartPos.y - centerY, this._transformStartPos.x - centerX)\n const angleDiff = currentAngle - startAngle\n\n // 旋转点\n const cos = Math.cos(angleDiff)\n const sin = Math.sin(angleDiff)\n\n this.selected.points.forEach((pt, i) => {\n const relX = this._transformStartPoints[i].x - centerX\n const relY = this._transformStartPoints[i].y - centerY\n pt.x = centerX + relX * cos - relY * sin\n pt.y = centerY + relX * sin + relY * cos\n })\n }\n\n _handleScale(p) {\n const center = this._transformCenter\n const centerX = center.centerX\n const centerY = center.centerY\n const startPoints = this._transformStartPoints\n const startPos = this._transformStartPos\n\n // 计算缩放比例\n const dx = p.x - centerX\n const dy = p.y - centerY\n const startDx = startPos.x - centerX\n const startDy = startPos.y - centerY\n\n const currentDist = Math.hypot(dx, dy)\n const startDist = Math.hypot(startDx, startDy)\n const scale = currentDist / startDist\n\n // 应用缩放\n this.selected.points.forEach((pt, i) => {\n pt.x = centerX + (startPoints[i].x - centerX) * scale\n pt.y = centerY + (startPoints[i].y - centerY) * scale\n })\n }\n\n _hitArrow(a, p) {\n for (let i = 0; i < a.points.length - 1; i++) {\n if (this._dist(p, a.points[i], a.points[i + 1]) < 15)\n return true\n }\n return false\n }\n\n _dist(p, a, b) {\n const dx = b.x - a.x\n const dy = b.y - a.y\n const t = ((p.x - a.x) * dx + (p.y - a.y) * dy) / (dx * dx + dy * dy)\n const tt = Math.max(0, Math.min(1, t))\n const px = a.x + tt * dx\n const py = a.y + tt * dy\n return Math.hypot(p.x - px, p.y - py)\n }\n\n // 获取所有箭头数据\n getData() {\n return this.arrows.map(arrow => ({\n points: arrow.points,\n curveRate: arrow.curveRate ?? arrow.cornerRoundness ?? 0,\n strokeWidth: arrow.strokeWidth,\n color: arrow.color\n }))\n }\n\n // 设置箭头数据\n setData(data) {\n this.arrows = data.map(item => ({\n points: item.points,\n curveRate: item.curveRate ?? 0,\n strokeWidth: item.strokeWidth ?? 8,\n color: item.color\n }))\n this.render()\n }\n\n // 清空所有箭头\n clear() {\n this.arrows = []\n this.drawing = false\n this.current = null\n this.selected = null\n this.render()\n }\n}\n"],"names":["STYLES","styleEl","ArrowEditor","container","defs","marker","polygon","color","strokeWidth","curveRate","e","strokeInput","strokeValue","dragHandle","isDragging","dragOffset","rect","onMove","moveEvent","containerRect","newLeft","newTop","toolbarWidth","toolbarHeight","onUp","colorInput","roundInput","bbox","left","top","Keybinding","p","handle","pt","center","dx","dy","r","pts","d","i","curr","next","len","inDx","inDy","prev","outDx","outDy","after","inLen","outLen","uxIn","uyIn","uxOut","uyOut","controlDist","cp1X","cp1Y","cp2X","cp2Y","last","ux","uy","notchX","notchY","scale","baseLen","baseWidth","notchLen","tipX","tipY","baseX","baseY","px","py","leftX","leftY","rightX","rightY","arrow","index","g","path","arrowHead","scaleHandle","rotateY","rotateX","rotateLine","rotateHandle","now","dt","a","popup","label","x","y","ev","closeHandler","points","minX","minY","maxX","maxY","centerX","centerY","currentAngle","startAngle","angleDiff","cos","sin","relX","relY","startPoints","startPos","startDx","startDy","currentDist","startDist","b","t","tt","data","item"],"mappings":"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"}