@wbiokr/arrow 0.0.1
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.
- package/LICENSE +22 -0
- package/dist/bundle.cjs.js +1418 -0
- package/dist/bundle.cjs.js.map +1 -0
- package/dist/bundle.esm.js +1416 -0
- package/dist/bundle.esm.js.map +1 -0
- package/package.json +40 -0
|
@@ -0,0 +1,1416 @@
|
|
|
1
|
+
|
|
2
|
+
(function(l, r) { if (!l || l.getElementById('livereloadscript')) return; r = l.createElement('script'); r.async = 1; r.src = '//' + (self.location.host || 'localhost').split(':')[0] + ':35730/livereload.js?snipver=1'; r.id = 'livereloadscript'; l.getElementsByTagName('head')[0].appendChild(r) })(self.document);
|
|
3
|
+
function _arrayLikeToArray(r, a) {
|
|
4
|
+
(null == a || a > r.length) && (a = r.length);
|
|
5
|
+
for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
|
|
6
|
+
return n;
|
|
7
|
+
}
|
|
8
|
+
function _classCallCheck(a, n) {
|
|
9
|
+
if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function");
|
|
10
|
+
}
|
|
11
|
+
function _defineProperties(e, r) {
|
|
12
|
+
for (var t = 0; t < r.length; t++) {
|
|
13
|
+
var o = r[t];
|
|
14
|
+
o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function _createClass(e, r, t) {
|
|
18
|
+
return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
|
|
19
|
+
writable: !1
|
|
20
|
+
}), e;
|
|
21
|
+
}
|
|
22
|
+
function _createForOfIteratorHelper(r, e) {
|
|
23
|
+
var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
24
|
+
if (!t) {
|
|
25
|
+
if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
|
|
26
|
+
t && (r = t);
|
|
27
|
+
var n = 0,
|
|
28
|
+
F = function () {};
|
|
29
|
+
return {
|
|
30
|
+
s: F,
|
|
31
|
+
n: function () {
|
|
32
|
+
return n >= r.length ? {
|
|
33
|
+
done: !0
|
|
34
|
+
} : {
|
|
35
|
+
done: !1,
|
|
36
|
+
value: r[n++]
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
e: function (r) {
|
|
40
|
+
throw r;
|
|
41
|
+
},
|
|
42
|
+
f: F
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
46
|
+
}
|
|
47
|
+
var o,
|
|
48
|
+
a = !0,
|
|
49
|
+
u = !1;
|
|
50
|
+
return {
|
|
51
|
+
s: function () {
|
|
52
|
+
t = t.call(r);
|
|
53
|
+
},
|
|
54
|
+
n: function () {
|
|
55
|
+
var r = t.next();
|
|
56
|
+
return a = r.done, r;
|
|
57
|
+
},
|
|
58
|
+
e: function (r) {
|
|
59
|
+
u = !0, o = r;
|
|
60
|
+
},
|
|
61
|
+
f: function () {
|
|
62
|
+
try {
|
|
63
|
+
a || null == t.return || t.return();
|
|
64
|
+
} finally {
|
|
65
|
+
if (u) throw o;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function _toPrimitive(t, r) {
|
|
71
|
+
if ("object" != typeof t || !t) return t;
|
|
72
|
+
var e = t[Symbol.toPrimitive];
|
|
73
|
+
if (void 0 !== e) {
|
|
74
|
+
var i = e.call(t, r || "default");
|
|
75
|
+
if ("object" != typeof i) return i;
|
|
76
|
+
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
77
|
+
}
|
|
78
|
+
return ("string" === r ? String : Number)(t);
|
|
79
|
+
}
|
|
80
|
+
function _toPropertyKey(t) {
|
|
81
|
+
var i = _toPrimitive(t, "string");
|
|
82
|
+
return "symbol" == typeof i ? i : i + "";
|
|
83
|
+
}
|
|
84
|
+
function _unsupportedIterableToArray(r, a) {
|
|
85
|
+
if (r) {
|
|
86
|
+
if ("string" == typeof r) return _arrayLikeToArray(r, a);
|
|
87
|
+
var t = {}.toString.call(r).slice(8, -1);
|
|
88
|
+
return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
var xhtml = "http://www.w3.org/1999/xhtml";
|
|
93
|
+
|
|
94
|
+
var namespaces = {
|
|
95
|
+
svg: "http://www.w3.org/2000/svg",
|
|
96
|
+
xhtml: xhtml,
|
|
97
|
+
xlink: "http://www.w3.org/1999/xlink",
|
|
98
|
+
xml: "http://www.w3.org/XML/1998/namespace",
|
|
99
|
+
xmlns: "http://www.w3.org/2000/xmlns/"
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
function namespace(name) {
|
|
103
|
+
var prefix = name += "", i = prefix.indexOf(":");
|
|
104
|
+
if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1);
|
|
105
|
+
return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function creatorInherit(name) {
|
|
109
|
+
return function() {
|
|
110
|
+
var document = this.ownerDocument,
|
|
111
|
+
uri = this.namespaceURI;
|
|
112
|
+
return uri === xhtml && document.documentElement.namespaceURI === xhtml
|
|
113
|
+
? document.createElement(name)
|
|
114
|
+
: document.createElementNS(uri, name);
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function creatorFixed(fullname) {
|
|
119
|
+
return function() {
|
|
120
|
+
return this.ownerDocument.createElementNS(fullname.space, fullname.local);
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function creator(name) {
|
|
125
|
+
var fullname = namespace(name);
|
|
126
|
+
return (fullname.local
|
|
127
|
+
? creatorFixed
|
|
128
|
+
: creatorInherit)(fullname);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function none() {}
|
|
132
|
+
|
|
133
|
+
function selector(selector) {
|
|
134
|
+
return selector == null ? none : function() {
|
|
135
|
+
return this.querySelector(selector);
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function selection_select(select) {
|
|
140
|
+
if (typeof select !== "function") select = selector(select);
|
|
141
|
+
|
|
142
|
+
for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
|
|
143
|
+
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {
|
|
144
|
+
if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {
|
|
145
|
+
if ("__data__" in node) subnode.__data__ = node.__data__;
|
|
146
|
+
subgroup[i] = subnode;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return new Selection(subgroups, this._parents);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// Given something array like (or null), returns something that is strictly an
|
|
155
|
+
// array. This is used to ensure that array-like objects passed to d3.selectAll
|
|
156
|
+
// or selection.selectAll are converted into proper arrays when creating a
|
|
157
|
+
// selection; we don’t ever want to create a selection backed by a live
|
|
158
|
+
// HTMLCollection or NodeList. However, note that selection.selectAll will use a
|
|
159
|
+
// static NodeList as a group, since it safely derived from querySelectorAll.
|
|
160
|
+
function array(x) {
|
|
161
|
+
return x == null ? [] : Array.isArray(x) ? x : Array.from(x);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
function empty() {
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function selectorAll(selector) {
|
|
169
|
+
return selector == null ? empty : function() {
|
|
170
|
+
return this.querySelectorAll(selector);
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function arrayAll(select) {
|
|
175
|
+
return function() {
|
|
176
|
+
return array(select.apply(this, arguments));
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function selection_selectAll(select) {
|
|
181
|
+
if (typeof select === "function") select = arrayAll(select);
|
|
182
|
+
else select = selectorAll(select);
|
|
183
|
+
|
|
184
|
+
for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {
|
|
185
|
+
for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {
|
|
186
|
+
if (node = group[i]) {
|
|
187
|
+
subgroups.push(select.call(node, node.__data__, i, group));
|
|
188
|
+
parents.push(node);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return new Selection(subgroups, parents);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function matcher(selector) {
|
|
197
|
+
return function() {
|
|
198
|
+
return this.matches(selector);
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
function childMatcher(selector) {
|
|
203
|
+
return function(node) {
|
|
204
|
+
return node.matches(selector);
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
var find = Array.prototype.find;
|
|
209
|
+
|
|
210
|
+
function childFind(match) {
|
|
211
|
+
return function() {
|
|
212
|
+
return find.call(this.children, match);
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
function childFirst() {
|
|
217
|
+
return this.firstElementChild;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
function selection_selectChild(match) {
|
|
221
|
+
return this.select(match == null ? childFirst
|
|
222
|
+
: childFind(typeof match === "function" ? match : childMatcher(match)));
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
var filter = Array.prototype.filter;
|
|
226
|
+
|
|
227
|
+
function children() {
|
|
228
|
+
return Array.from(this.children);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function childrenFilter(match) {
|
|
232
|
+
return function() {
|
|
233
|
+
return filter.call(this.children, match);
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
function selection_selectChildren(match) {
|
|
238
|
+
return this.selectAll(match == null ? children
|
|
239
|
+
: childrenFilter(typeof match === "function" ? match : childMatcher(match)));
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
function selection_filter(match) {
|
|
243
|
+
if (typeof match !== "function") match = matcher(match);
|
|
244
|
+
|
|
245
|
+
for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {
|
|
246
|
+
for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {
|
|
247
|
+
if ((node = group[i]) && match.call(node, node.__data__, i, group)) {
|
|
248
|
+
subgroup.push(node);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return new Selection(subgroups, this._parents);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
function sparse(update) {
|
|
257
|
+
return new Array(update.length);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
function selection_enter() {
|
|
261
|
+
return new Selection(this._enter || this._groups.map(sparse), this._parents);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
function EnterNode(parent, datum) {
|
|
265
|
+
this.ownerDocument = parent.ownerDocument;
|
|
266
|
+
this.namespaceURI = parent.namespaceURI;
|
|
267
|
+
this._next = null;
|
|
268
|
+
this._parent = parent;
|
|
269
|
+
this.__data__ = datum;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
EnterNode.prototype = {
|
|
273
|
+
constructor: EnterNode,
|
|
274
|
+
appendChild: function(child) { return this._parent.insertBefore(child, this._next); },
|
|
275
|
+
insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },
|
|
276
|
+
querySelector: function(selector) { return this._parent.querySelector(selector); },
|
|
277
|
+
querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }
|
|
278
|
+
};
|
|
279
|
+
|
|
280
|
+
function constant(x) {
|
|
281
|
+
return function() {
|
|
282
|
+
return x;
|
|
283
|
+
};
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
function bindIndex(parent, group, enter, update, exit, data) {
|
|
287
|
+
var i = 0,
|
|
288
|
+
node,
|
|
289
|
+
groupLength = group.length,
|
|
290
|
+
dataLength = data.length;
|
|
291
|
+
|
|
292
|
+
// Put any non-null nodes that fit into update.
|
|
293
|
+
// Put any null nodes into enter.
|
|
294
|
+
// Put any remaining data into enter.
|
|
295
|
+
for (; i < dataLength; ++i) {
|
|
296
|
+
if (node = group[i]) {
|
|
297
|
+
node.__data__ = data[i];
|
|
298
|
+
update[i] = node;
|
|
299
|
+
} else {
|
|
300
|
+
enter[i] = new EnterNode(parent, data[i]);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
// Put any non-null nodes that don’t fit into exit.
|
|
305
|
+
for (; i < groupLength; ++i) {
|
|
306
|
+
if (node = group[i]) {
|
|
307
|
+
exit[i] = node;
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
function bindKey(parent, group, enter, update, exit, data, key) {
|
|
313
|
+
var i,
|
|
314
|
+
node,
|
|
315
|
+
nodeByKeyValue = new Map,
|
|
316
|
+
groupLength = group.length,
|
|
317
|
+
dataLength = data.length,
|
|
318
|
+
keyValues = new Array(groupLength),
|
|
319
|
+
keyValue;
|
|
320
|
+
|
|
321
|
+
// Compute the key for each node.
|
|
322
|
+
// If multiple nodes have the same key, the duplicates are added to exit.
|
|
323
|
+
for (i = 0; i < groupLength; ++i) {
|
|
324
|
+
if (node = group[i]) {
|
|
325
|
+
keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + "";
|
|
326
|
+
if (nodeByKeyValue.has(keyValue)) {
|
|
327
|
+
exit[i] = node;
|
|
328
|
+
} else {
|
|
329
|
+
nodeByKeyValue.set(keyValue, node);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// Compute the key for each datum.
|
|
335
|
+
// If there a node associated with this key, join and add it to update.
|
|
336
|
+
// If there is not (or the key is a duplicate), add it to enter.
|
|
337
|
+
for (i = 0; i < dataLength; ++i) {
|
|
338
|
+
keyValue = key.call(parent, data[i], i, data) + "";
|
|
339
|
+
if (node = nodeByKeyValue.get(keyValue)) {
|
|
340
|
+
update[i] = node;
|
|
341
|
+
node.__data__ = data[i];
|
|
342
|
+
nodeByKeyValue.delete(keyValue);
|
|
343
|
+
} else {
|
|
344
|
+
enter[i] = new EnterNode(parent, data[i]);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
// Add any remaining nodes that were not bound to data to exit.
|
|
349
|
+
for (i = 0; i < groupLength; ++i) {
|
|
350
|
+
if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {
|
|
351
|
+
exit[i] = node;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
function datum(node) {
|
|
357
|
+
return node.__data__;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
function selection_data(value, key) {
|
|
361
|
+
if (!arguments.length) return Array.from(this, datum);
|
|
362
|
+
|
|
363
|
+
var bind = key ? bindKey : bindIndex,
|
|
364
|
+
parents = this._parents,
|
|
365
|
+
groups = this._groups;
|
|
366
|
+
|
|
367
|
+
if (typeof value !== "function") value = constant(value);
|
|
368
|
+
|
|
369
|
+
for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {
|
|
370
|
+
var parent = parents[j],
|
|
371
|
+
group = groups[j],
|
|
372
|
+
groupLength = group.length,
|
|
373
|
+
data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),
|
|
374
|
+
dataLength = data.length,
|
|
375
|
+
enterGroup = enter[j] = new Array(dataLength),
|
|
376
|
+
updateGroup = update[j] = new Array(dataLength),
|
|
377
|
+
exitGroup = exit[j] = new Array(groupLength);
|
|
378
|
+
|
|
379
|
+
bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);
|
|
380
|
+
|
|
381
|
+
// Now connect the enter nodes to their following update node, such that
|
|
382
|
+
// appendChild can insert the materialized enter node before this node,
|
|
383
|
+
// rather than at the end of the parent node.
|
|
384
|
+
for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {
|
|
385
|
+
if (previous = enterGroup[i0]) {
|
|
386
|
+
if (i0 >= i1) i1 = i0 + 1;
|
|
387
|
+
while (!(next = updateGroup[i1]) && ++i1 < dataLength);
|
|
388
|
+
previous._next = next || null;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
update = new Selection(update, parents);
|
|
394
|
+
update._enter = enter;
|
|
395
|
+
update._exit = exit;
|
|
396
|
+
return update;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// Given some data, this returns an array-like view of it: an object that
|
|
400
|
+
// exposes a length property and allows numeric indexing. Note that unlike
|
|
401
|
+
// selectAll, this isn’t worried about “live” collections because the resulting
|
|
402
|
+
// array will only be used briefly while data is being bound. (It is possible to
|
|
403
|
+
// cause the data to change while iterating by using a key function, but please
|
|
404
|
+
// don’t; we’d rather avoid a gratuitous copy.)
|
|
405
|
+
function arraylike(data) {
|
|
406
|
+
return typeof data === "object" && "length" in data
|
|
407
|
+
? data // Array, TypedArray, NodeList, array-like
|
|
408
|
+
: Array.from(data); // Map, Set, iterable, string, or anything else
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
function selection_exit() {
|
|
412
|
+
return new Selection(this._exit || this._groups.map(sparse), this._parents);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
function selection_join(onenter, onupdate, onexit) {
|
|
416
|
+
var enter = this.enter(), update = this, exit = this.exit();
|
|
417
|
+
if (typeof onenter === "function") {
|
|
418
|
+
enter = onenter(enter);
|
|
419
|
+
if (enter) enter = enter.selection();
|
|
420
|
+
} else {
|
|
421
|
+
enter = enter.append(onenter + "");
|
|
422
|
+
}
|
|
423
|
+
if (onupdate != null) {
|
|
424
|
+
update = onupdate(update);
|
|
425
|
+
if (update) update = update.selection();
|
|
426
|
+
}
|
|
427
|
+
if (onexit == null) exit.remove(); else onexit(exit);
|
|
428
|
+
return enter && update ? enter.merge(update).order() : update;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
function selection_merge(context) {
|
|
432
|
+
var selection = context.selection ? context.selection() : context;
|
|
433
|
+
|
|
434
|
+
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) {
|
|
435
|
+
for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {
|
|
436
|
+
if (node = group0[i] || group1[i]) {
|
|
437
|
+
merge[i] = node;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
for (; j < m0; ++j) {
|
|
443
|
+
merges[j] = groups0[j];
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
return new Selection(merges, this._parents);
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
function selection_order() {
|
|
450
|
+
|
|
451
|
+
for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {
|
|
452
|
+
for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {
|
|
453
|
+
if (node = group[i]) {
|
|
454
|
+
if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);
|
|
455
|
+
next = node;
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
return this;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
function selection_sort(compare) {
|
|
464
|
+
if (!compare) compare = ascending;
|
|
465
|
+
|
|
466
|
+
function compareNode(a, b) {
|
|
467
|
+
return a && b ? compare(a.__data__, b.__data__) : !a - !b;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {
|
|
471
|
+
for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {
|
|
472
|
+
if (node = group[i]) {
|
|
473
|
+
sortgroup[i] = node;
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
sortgroup.sort(compareNode);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
return new Selection(sortgroups, this._parents).order();
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
function ascending(a, b) {
|
|
483
|
+
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
function selection_call() {
|
|
487
|
+
var callback = arguments[0];
|
|
488
|
+
arguments[0] = this;
|
|
489
|
+
callback.apply(null, arguments);
|
|
490
|
+
return this;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
function selection_nodes() {
|
|
494
|
+
return Array.from(this);
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
function selection_node() {
|
|
498
|
+
|
|
499
|
+
for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
|
|
500
|
+
for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {
|
|
501
|
+
var node = group[i];
|
|
502
|
+
if (node) return node;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
return null;
|
|
507
|
+
}
|
|
508
|
+
|
|
509
|
+
function selection_size() {
|
|
510
|
+
let size = 0;
|
|
511
|
+
for (const node of this) ++size; // eslint-disable-line no-unused-vars
|
|
512
|
+
return size;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
function selection_empty() {
|
|
516
|
+
return !this.node();
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
function selection_each(callback) {
|
|
520
|
+
|
|
521
|
+
for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
|
|
522
|
+
for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
|
|
523
|
+
if (node = group[i]) callback.call(node, node.__data__, i, group);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
return this;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
function attrRemove(name) {
|
|
531
|
+
return function() {
|
|
532
|
+
this.removeAttribute(name);
|
|
533
|
+
};
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
function attrRemoveNS(fullname) {
|
|
537
|
+
return function() {
|
|
538
|
+
this.removeAttributeNS(fullname.space, fullname.local);
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
function attrConstant(name, value) {
|
|
543
|
+
return function() {
|
|
544
|
+
this.setAttribute(name, value);
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
function attrConstantNS(fullname, value) {
|
|
549
|
+
return function() {
|
|
550
|
+
this.setAttributeNS(fullname.space, fullname.local, value);
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
function attrFunction(name, value) {
|
|
555
|
+
return function() {
|
|
556
|
+
var v = value.apply(this, arguments);
|
|
557
|
+
if (v == null) this.removeAttribute(name);
|
|
558
|
+
else this.setAttribute(name, v);
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
function attrFunctionNS(fullname, value) {
|
|
563
|
+
return function() {
|
|
564
|
+
var v = value.apply(this, arguments);
|
|
565
|
+
if (v == null) this.removeAttributeNS(fullname.space, fullname.local);
|
|
566
|
+
else this.setAttributeNS(fullname.space, fullname.local, v);
|
|
567
|
+
};
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
function selection_attr(name, value) {
|
|
571
|
+
var fullname = namespace(name);
|
|
572
|
+
|
|
573
|
+
if (arguments.length < 2) {
|
|
574
|
+
var node = this.node();
|
|
575
|
+
return fullname.local
|
|
576
|
+
? node.getAttributeNS(fullname.space, fullname.local)
|
|
577
|
+
: node.getAttribute(fullname);
|
|
578
|
+
}
|
|
579
|
+
|
|
580
|
+
return this.each((value == null
|
|
581
|
+
? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === "function"
|
|
582
|
+
? (fullname.local ? attrFunctionNS : attrFunction)
|
|
583
|
+
: (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));
|
|
584
|
+
}
|
|
585
|
+
|
|
586
|
+
function defaultView(node) {
|
|
587
|
+
return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node
|
|
588
|
+
|| (node.document && node) // node is a Window
|
|
589
|
+
|| node.defaultView; // node is a Document
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
function styleRemove(name) {
|
|
593
|
+
return function() {
|
|
594
|
+
this.style.removeProperty(name);
|
|
595
|
+
};
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
function styleConstant(name, value, priority) {
|
|
599
|
+
return function() {
|
|
600
|
+
this.style.setProperty(name, value, priority);
|
|
601
|
+
};
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
function styleFunction(name, value, priority) {
|
|
605
|
+
return function() {
|
|
606
|
+
var v = value.apply(this, arguments);
|
|
607
|
+
if (v == null) this.style.removeProperty(name);
|
|
608
|
+
else this.style.setProperty(name, v, priority);
|
|
609
|
+
};
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
function selection_style(name, value, priority) {
|
|
613
|
+
return arguments.length > 1
|
|
614
|
+
? this.each((value == null
|
|
615
|
+
? styleRemove : typeof value === "function"
|
|
616
|
+
? styleFunction
|
|
617
|
+
: styleConstant)(name, value, priority == null ? "" : priority))
|
|
618
|
+
: styleValue(this.node(), name);
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
function styleValue(node, name) {
|
|
622
|
+
return node.style.getPropertyValue(name)
|
|
623
|
+
|| defaultView(node).getComputedStyle(node, null).getPropertyValue(name);
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
function propertyRemove(name) {
|
|
627
|
+
return function() {
|
|
628
|
+
delete this[name];
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
function propertyConstant(name, value) {
|
|
633
|
+
return function() {
|
|
634
|
+
this[name] = value;
|
|
635
|
+
};
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
function propertyFunction(name, value) {
|
|
639
|
+
return function() {
|
|
640
|
+
var v = value.apply(this, arguments);
|
|
641
|
+
if (v == null) delete this[name];
|
|
642
|
+
else this[name] = v;
|
|
643
|
+
};
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
function selection_property(name, value) {
|
|
647
|
+
return arguments.length > 1
|
|
648
|
+
? this.each((value == null
|
|
649
|
+
? propertyRemove : typeof value === "function"
|
|
650
|
+
? propertyFunction
|
|
651
|
+
: propertyConstant)(name, value))
|
|
652
|
+
: this.node()[name];
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
function classArray(string) {
|
|
656
|
+
return string.trim().split(/^|\s+/);
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
function classList(node) {
|
|
660
|
+
return node.classList || new ClassList(node);
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
function ClassList(node) {
|
|
664
|
+
this._node = node;
|
|
665
|
+
this._names = classArray(node.getAttribute("class") || "");
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
ClassList.prototype = {
|
|
669
|
+
add: function(name) {
|
|
670
|
+
var i = this._names.indexOf(name);
|
|
671
|
+
if (i < 0) {
|
|
672
|
+
this._names.push(name);
|
|
673
|
+
this._node.setAttribute("class", this._names.join(" "));
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
remove: function(name) {
|
|
677
|
+
var i = this._names.indexOf(name);
|
|
678
|
+
if (i >= 0) {
|
|
679
|
+
this._names.splice(i, 1);
|
|
680
|
+
this._node.setAttribute("class", this._names.join(" "));
|
|
681
|
+
}
|
|
682
|
+
},
|
|
683
|
+
contains: function(name) {
|
|
684
|
+
return this._names.indexOf(name) >= 0;
|
|
685
|
+
}
|
|
686
|
+
};
|
|
687
|
+
|
|
688
|
+
function classedAdd(node, names) {
|
|
689
|
+
var list = classList(node), i = -1, n = names.length;
|
|
690
|
+
while (++i < n) list.add(names[i]);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
function classedRemove(node, names) {
|
|
694
|
+
var list = classList(node), i = -1, n = names.length;
|
|
695
|
+
while (++i < n) list.remove(names[i]);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
function classedTrue(names) {
|
|
699
|
+
return function() {
|
|
700
|
+
classedAdd(this, names);
|
|
701
|
+
};
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
function classedFalse(names) {
|
|
705
|
+
return function() {
|
|
706
|
+
classedRemove(this, names);
|
|
707
|
+
};
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
function classedFunction(names, value) {
|
|
711
|
+
return function() {
|
|
712
|
+
(value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);
|
|
713
|
+
};
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
function selection_classed(name, value) {
|
|
717
|
+
var names = classArray(name + "");
|
|
718
|
+
|
|
719
|
+
if (arguments.length < 2) {
|
|
720
|
+
var list = classList(this.node()), i = -1, n = names.length;
|
|
721
|
+
while (++i < n) if (!list.contains(names[i])) return false;
|
|
722
|
+
return true;
|
|
723
|
+
}
|
|
724
|
+
|
|
725
|
+
return this.each((typeof value === "function"
|
|
726
|
+
? classedFunction : value
|
|
727
|
+
? classedTrue
|
|
728
|
+
: classedFalse)(names, value));
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
function textRemove() {
|
|
732
|
+
this.textContent = "";
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
function textConstant(value) {
|
|
736
|
+
return function() {
|
|
737
|
+
this.textContent = value;
|
|
738
|
+
};
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
function textFunction(value) {
|
|
742
|
+
return function() {
|
|
743
|
+
var v = value.apply(this, arguments);
|
|
744
|
+
this.textContent = v == null ? "" : v;
|
|
745
|
+
};
|
|
746
|
+
}
|
|
747
|
+
|
|
748
|
+
function selection_text(value) {
|
|
749
|
+
return arguments.length
|
|
750
|
+
? this.each(value == null
|
|
751
|
+
? textRemove : (typeof value === "function"
|
|
752
|
+
? textFunction
|
|
753
|
+
: textConstant)(value))
|
|
754
|
+
: this.node().textContent;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
function htmlRemove() {
|
|
758
|
+
this.innerHTML = "";
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
function htmlConstant(value) {
|
|
762
|
+
return function() {
|
|
763
|
+
this.innerHTML = value;
|
|
764
|
+
};
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
function htmlFunction(value) {
|
|
768
|
+
return function() {
|
|
769
|
+
var v = value.apply(this, arguments);
|
|
770
|
+
this.innerHTML = v == null ? "" : v;
|
|
771
|
+
};
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
function selection_html(value) {
|
|
775
|
+
return arguments.length
|
|
776
|
+
? this.each(value == null
|
|
777
|
+
? htmlRemove : (typeof value === "function"
|
|
778
|
+
? htmlFunction
|
|
779
|
+
: htmlConstant)(value))
|
|
780
|
+
: this.node().innerHTML;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
function raise() {
|
|
784
|
+
if (this.nextSibling) this.parentNode.appendChild(this);
|
|
785
|
+
}
|
|
786
|
+
|
|
787
|
+
function selection_raise() {
|
|
788
|
+
return this.each(raise);
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
function lower() {
|
|
792
|
+
if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
function selection_lower() {
|
|
796
|
+
return this.each(lower);
|
|
797
|
+
}
|
|
798
|
+
|
|
799
|
+
function selection_append(name) {
|
|
800
|
+
var create = typeof name === "function" ? name : creator(name);
|
|
801
|
+
return this.select(function() {
|
|
802
|
+
return this.appendChild(create.apply(this, arguments));
|
|
803
|
+
});
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
function constantNull() {
|
|
807
|
+
return null;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
function selection_insert(name, before) {
|
|
811
|
+
var create = typeof name === "function" ? name : creator(name),
|
|
812
|
+
select = before == null ? constantNull : typeof before === "function" ? before : selector(before);
|
|
813
|
+
return this.select(function() {
|
|
814
|
+
return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);
|
|
815
|
+
});
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
function remove() {
|
|
819
|
+
var parent = this.parentNode;
|
|
820
|
+
if (parent) parent.removeChild(this);
|
|
821
|
+
}
|
|
822
|
+
|
|
823
|
+
function selection_remove() {
|
|
824
|
+
return this.each(remove);
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
function selection_cloneShallow() {
|
|
828
|
+
var clone = this.cloneNode(false), parent = this.parentNode;
|
|
829
|
+
return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
|
|
830
|
+
}
|
|
831
|
+
|
|
832
|
+
function selection_cloneDeep() {
|
|
833
|
+
var clone = this.cloneNode(true), parent = this.parentNode;
|
|
834
|
+
return parent ? parent.insertBefore(clone, this.nextSibling) : clone;
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
function selection_clone(deep) {
|
|
838
|
+
return this.select(deep ? selection_cloneDeep : selection_cloneShallow);
|
|
839
|
+
}
|
|
840
|
+
|
|
841
|
+
function selection_datum(value) {
|
|
842
|
+
return arguments.length
|
|
843
|
+
? this.property("__data__", value)
|
|
844
|
+
: this.node().__data__;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
function contextListener(listener) {
|
|
848
|
+
return function(event) {
|
|
849
|
+
listener.call(this, event, this.__data__);
|
|
850
|
+
};
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
function parseTypenames(typenames) {
|
|
854
|
+
return typenames.trim().split(/^|\s+/).map(function(t) {
|
|
855
|
+
var name = "", i = t.indexOf(".");
|
|
856
|
+
if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);
|
|
857
|
+
return {type: t, name: name};
|
|
858
|
+
});
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
function onRemove(typename) {
|
|
862
|
+
return function() {
|
|
863
|
+
var on = this.__on;
|
|
864
|
+
if (!on) return;
|
|
865
|
+
for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {
|
|
866
|
+
if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {
|
|
867
|
+
this.removeEventListener(o.type, o.listener, o.options);
|
|
868
|
+
} else {
|
|
869
|
+
on[++i] = o;
|
|
870
|
+
}
|
|
871
|
+
}
|
|
872
|
+
if (++i) on.length = i;
|
|
873
|
+
else delete this.__on;
|
|
874
|
+
};
|
|
875
|
+
}
|
|
876
|
+
|
|
877
|
+
function onAdd(typename, value, options) {
|
|
878
|
+
return function() {
|
|
879
|
+
var on = this.__on, o, listener = contextListener(value);
|
|
880
|
+
if (on) for (var j = 0, m = on.length; j < m; ++j) {
|
|
881
|
+
if ((o = on[j]).type === typename.type && o.name === typename.name) {
|
|
882
|
+
this.removeEventListener(o.type, o.listener, o.options);
|
|
883
|
+
this.addEventListener(o.type, o.listener = listener, o.options = options);
|
|
884
|
+
o.value = value;
|
|
885
|
+
return;
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
this.addEventListener(typename.type, listener, options);
|
|
889
|
+
o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};
|
|
890
|
+
if (!on) this.__on = [o];
|
|
891
|
+
else on.push(o);
|
|
892
|
+
};
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
function selection_on(typename, value, options) {
|
|
896
|
+
var typenames = parseTypenames(typename + ""), i, n = typenames.length, t;
|
|
897
|
+
|
|
898
|
+
if (arguments.length < 2) {
|
|
899
|
+
var on = this.node().__on;
|
|
900
|
+
if (on) for (var j = 0, m = on.length, o; j < m; ++j) {
|
|
901
|
+
for (i = 0, o = on[j]; i < n; ++i) {
|
|
902
|
+
if ((t = typenames[i]).type === o.type && t.name === o.name) {
|
|
903
|
+
return o.value;
|
|
904
|
+
}
|
|
905
|
+
}
|
|
906
|
+
}
|
|
907
|
+
return;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
on = value ? onAdd : onRemove;
|
|
911
|
+
for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));
|
|
912
|
+
return this;
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
function dispatchEvent(node, type, params) {
|
|
916
|
+
var window = defaultView(node),
|
|
917
|
+
event = window.CustomEvent;
|
|
918
|
+
|
|
919
|
+
if (typeof event === "function") {
|
|
920
|
+
event = new event(type, params);
|
|
921
|
+
} else {
|
|
922
|
+
event = window.document.createEvent("Event");
|
|
923
|
+
if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;
|
|
924
|
+
else event.initEvent(type, false, false);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
node.dispatchEvent(event);
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
function dispatchConstant(type, params) {
|
|
931
|
+
return function() {
|
|
932
|
+
return dispatchEvent(this, type, params);
|
|
933
|
+
};
|
|
934
|
+
}
|
|
935
|
+
|
|
936
|
+
function dispatchFunction(type, params) {
|
|
937
|
+
return function() {
|
|
938
|
+
return dispatchEvent(this, type, params.apply(this, arguments));
|
|
939
|
+
};
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
function selection_dispatch(type, params) {
|
|
943
|
+
return this.each((typeof params === "function"
|
|
944
|
+
? dispatchFunction
|
|
945
|
+
: dispatchConstant)(type, params));
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
function* selection_iterator() {
|
|
949
|
+
for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {
|
|
950
|
+
for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {
|
|
951
|
+
if (node = group[i]) yield node;
|
|
952
|
+
}
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
var root = [null];
|
|
957
|
+
|
|
958
|
+
function Selection(groups, parents) {
|
|
959
|
+
this._groups = groups;
|
|
960
|
+
this._parents = parents;
|
|
961
|
+
}
|
|
962
|
+
|
|
963
|
+
function selection_selection() {
|
|
964
|
+
return this;
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
Selection.prototype = {
|
|
968
|
+
constructor: Selection,
|
|
969
|
+
select: selection_select,
|
|
970
|
+
selectAll: selection_selectAll,
|
|
971
|
+
selectChild: selection_selectChild,
|
|
972
|
+
selectChildren: selection_selectChildren,
|
|
973
|
+
filter: selection_filter,
|
|
974
|
+
data: selection_data,
|
|
975
|
+
enter: selection_enter,
|
|
976
|
+
exit: selection_exit,
|
|
977
|
+
join: selection_join,
|
|
978
|
+
merge: selection_merge,
|
|
979
|
+
selection: selection_selection,
|
|
980
|
+
order: selection_order,
|
|
981
|
+
sort: selection_sort,
|
|
982
|
+
call: selection_call,
|
|
983
|
+
nodes: selection_nodes,
|
|
984
|
+
node: selection_node,
|
|
985
|
+
size: selection_size,
|
|
986
|
+
empty: selection_empty,
|
|
987
|
+
each: selection_each,
|
|
988
|
+
attr: selection_attr,
|
|
989
|
+
style: selection_style,
|
|
990
|
+
property: selection_property,
|
|
991
|
+
classed: selection_classed,
|
|
992
|
+
text: selection_text,
|
|
993
|
+
html: selection_html,
|
|
994
|
+
raise: selection_raise,
|
|
995
|
+
lower: selection_lower,
|
|
996
|
+
append: selection_append,
|
|
997
|
+
insert: selection_insert,
|
|
998
|
+
remove: selection_remove,
|
|
999
|
+
clone: selection_clone,
|
|
1000
|
+
datum: selection_datum,
|
|
1001
|
+
on: selection_on,
|
|
1002
|
+
dispatch: selection_dispatch,
|
|
1003
|
+
[Symbol.iterator]: selection_iterator
|
|
1004
|
+
};
|
|
1005
|
+
|
|
1006
|
+
function n(selector) {
|
|
1007
|
+
return typeof selector === "string"
|
|
1008
|
+
? new Selection([[document.querySelector(selector)]], [document.documentElement])
|
|
1009
|
+
: new Selection([[selector]], root);
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
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}
|
|
1013
|
+
${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,AGFzbQEAAAABwAEcYAAAYAABf2AAAW9gAX8AYAF/AX9gAn9/AGACf38Bf2ACf38Cf39gAn9/AW9gA39/fwBgA39/fwF/YAR/f39/AGAEf39/fwF/YAV/f39/fwBgBX9/f39/AX9gBn9/f39/fwBgBn9/f39/fwF/YAd/f39/f39/AGAHf39/f39/fwF/YAV/f35/fwBgBX9/fX9/AGAFf398f38AYAR/fn9/AGAEf31/fwBgBH98f38AYAJ/bwBgA29/bwBgA29vbwACtQIIA3diZxpfX3diZ19zZXRfM2YxZDBiOTg0ZWQyNzJlZAAbA3diZxpfX3diZ19uZXdfZTE3ZDlmNDMxMDViMDhiZQACA3diZxpfX3diZ19uZXdfMWFjYzBiNmVlYTg5ZDA0MAACA3diZxpfX3diZ19zZXRfYzIxM2M4NzE4NTlkNjUwMAAaA3diZy5fX3diZ19fX3diaW5kZ2VuX2RlYnVnX3N0cmluZ19kZjQ3ZmZiNWUzNWU2NzYzABkDd2JnJ19fd2JnX19fd2JpbmRnZW5fdGhyb3dfYjg1NTQ0NWZmNmE5NDI5NQAFA3diZx9fX3diaW5kZ2VuX2luaXRfZXh0ZXJucmVmX3RhYmxlAAADd2JnIF9fd2JpbmRnZW5fY2FzdF8yMjQxYjZhZjRjNGIyOTQxAAgDjwGNAQkEDQ0GDAYQCQMKBgoKCQUFBgYBBQQEEgsEBgUGBQ0OBg0JBAUPBgMLCwsGBg0DCQkJBQkKAwoJBQYEBgUJDgMGBgYDBQwHEA0UDQ4NDhMVAwsLCgkDBQYJCQUGAwYMEQsJBQoJBg0BAQgGDQYFBQUGBgQJCQkJCQMGBQUGBQUGBgoFBgUFAwAGAAEBAAQJAnABKytvAIABBQMBABEGCQF/AUGAgMAACwejAQkGbWVtb3J5AgARZ2V0X21vZGlmaWVyX2NvZGUATgxnZXRfa2V5X2NvZGUAKA1nZXRfa2V5X3ZhbHVlAHERX193YmluZGdlbl9tYWxsb2MAShJfX3diaW5kZ2VuX3JlYWxsb2MATRVfX3diaW5kZ2VuX2V4dGVybnJlZnMBAQ9fX3diaW5kZ2VuX2ZyZWUAaRBfX3diaW5kZ2VuX3N0YXJ0AAYJNgEAQQELKoEBZElTLVRVT1taUlBRV1YHdEM6XTwkhAF1dnhEd4UBWDQlLI0BhwFteUgzFUGIAQqq9gGNAfseARd/IwBBIGsiAyQAQQAhBAJAAkACQCACQQBIDQACQAJAAkACQCACDQBBACEFQQEhBgwBCxCRAUEBIQQgAkEBEHIiBkUNAyABIQcgAiEIIAYhBEEAIQUCQCACQRBJDQAgAkHw////B3EhBUEAIQkgAiEIA0AgBiAJaiEEAkAgASAJaiIHQQFqLAAAIgpBf3NBgAFxQQd2IAcsAAAiC0F/c0GAAXFBB3ZqIAdBAmosAAAiDEF/c0GAAXFBB3ZqIAdBA2osAAAiDUF/c0GAAXFBB3ZqIAdBBGosAAAiDkF/c0GAAXFBB3ZqIAdBBWosAAAiD0F/c0GAAXFBB3ZqIAdBBmosAAAiEEF/c0GAAXFBB3ZqIAdBB2osAAAiEUF/c0GAAXFBB3ZqIAdBCGosAAAiEkF/c0GAAXFBB3ZqIAdBCWosAAAiE0F/c0GAAXFBB3ZqIAdBCmosAAAiFEF/c0GAAXFBB3ZqIAdBC2osAAAiFUF/c0GAAXFBB3ZqIAdBDGosAAAiFkF/c0GAAXFBB3ZqIAdBDWosAAAiF0F/c0GAAXFBB3ZqIAdBDmosAAAiGEF/c0GAAXFBB3ZqIAdBD2osAAAiGUF/c0GAAXFBB3ZqQf8BcUEQRg0AIAkhBQwCCyAEQQ9qIBlBv39qQf8BcUEaSUEFdCAZcjoAACAEQQ5qIBhBv39qQf8BcUEaSUEFdCAYcjoAACAEQQ1qIBdBv39qQf8BcUEaSUEFdCAXcjoAACAEQQxqIBZBv39qQf8BcUEaSUEFdCAWcjoAACAEQQtqIBVBv39qQf8BcUEaSUEFdCAVcjoAACAEQQpqIBRBv39qQf8BcUEaSUEFdCAUcjoAACAEQQlqIBNBv39qQf8BcUEaSUEFdCATcjoAACAEQQhqIBJBv39qQf8BcUEaSUEFdCAScjoAACAEQQdqIBFBv39qQf8BcUEaSUEFdCARcjoAACAEQQZqIBBBv39qQf8BcUEaSUEFdCAQcjoAACAEQQVqIA9Bv39qQf8BcUEaSUEFdCAPcjoAACAEQQRqIA5Bv39qQf8BcUEaSUEFdCAOcjoAACAEQQNqIA1Bv39qQf8BcUEaSUEFdCANcjoAACAEQQJqIAxBv39qQf8BcUEaSUEFdCAMcjoAACAEQQFqIApBv39qQf8BcUEaSUEFdCAKcjoAACAEIAtBv39qQf8BcUEaSUEFdCALcjoAACAJQRBqIQkgCEFwaiIIQQ9LDQALIAIgCUYNASAGIAlqIQQgASAJaiEHCyAFIAhqIQxBACEKA0AgByAKaiIJLAAAIgtBAEgNAiAEIApqIAtBv39qQf8BcUEaSUEFdCALcjoAACAIIApBAWoiCkcNAAsgDCEFCyADIAU2AhAgAyAGNgIMIAMgAjYCCAwBCyADIAY2AgwgAyAFIApqIhU2AhAgCSAIIApraiEPIBUgAWohFCAFQQJqIgQgCmohFyADIAI2AgggASACaiESIAUgAmsgCmohFiAEIAJrIApqIRhBACEMIBUhCwNAAkACQAJAIAksAAAiBEF/Sg0AIAktAAFBP3EhByAEQR9xIQoCQAJAIARBX0sNACAKQQZ0IAdyIQQgCUECaiEODAELIAdBBnQgCS0AAkE/cXIhBwJAIARBcE8NACAHIApBDHRyIQQgCUEDaiEODAELIAdBBnQgCS0AA0E/cXIgCkESdEGAgPAAcXIhBCAJQQRqIQ4LIAwgCWsgDmohEAJAIARBowdGDQAgECEMIA4hCQwCCwJAIBUgDGoiE0UNAAJAIBMgAkkNACAWIAxqRQ0BDAkLIBQgDGosAABBQEgNCAsgFCAMaiEEQQAhCgJAA0BBgwEhCCABIARGDQECQCAEQX9qIgksAAAiB0F/Sg0AAkACQCAEQX5qIgktAAAiBsAiDUFASA0AIAZBH3EhBAwBCwJAAkAgBEF9aiIJLQAAIgbAIhFBv39MDQAgBkEPcSEEDAELIARBfGoiCS0AAEEHcUEGdCARQT9xciEECyAEQQZ0IA1BP3FyIQQLIARBBnQgB0E/cXIiB0GAgMQARg0CCwJAAkAgCkEBcQ0AIAcQHkUNAEGAgMQAIQdBACEKDAELQQEhCgsgCSEEIAdBgIDEAEYNAAsgBxAhRQ0AAkAgFyAMakUNAAJAIBNBAmogAkkNACAYIAxqRQ0BDAkLIBQgDGpBAmosAABBQEgNCAsgFCAMakECaiEEQQAhCQNAQYIBIQggBCASRg0BAkACQCAELAAAIgdBf0wNACAEQQFqIQQgB0H/AXEhBwwBCyAELQABQT9xIQogB0EfcSEGAkAgB0FfSw0AIAZBBnQgCnIhByAEQQJqIQQMAQsgCkEGdCAELQACQT9xciEKAkAgB0FwTw0AIAogBkEMdHIhByAEQQNqIQQMAQsgCkEGdCAELQADQT9xciAGQRJ0QYCA8ABxciIHQYCAxABGDQIgBEEEaiEECwJAAkAgCUEBcQ0AIAcQHkUNAEGAgMQAIQdBACEJDAELQQEhCQsgB0GAgMQARg0AC0GDf0GCfyAHECEbIQgLIAshBAJAIAMoAgggC2tBAUsNACADQQhqIAtBAhAqIAMoAhAhBAsgAygCDCIGIARqIgQgCDoAASAEQc8BOgAAIAMgC0ECaiILNgIQIBAhDCAOIQkMAgsgBEH/AXEhBCAMIAlrIAlBAWoiB2ohDCAHIQkLIANBFGogBBAXAkACQCADKAIYIgQNAAJAAkAgAygCFCIEQYABSSIIRQ0AQQEhBwwBCwJAIARBgBBPDQBBAiEHDAELQQNBBCAEQYCABEkbIQcLIAshCgJAIAcgAygCCCALa00NACADQQhqIAsgBxAqIAMoAgwhBiADKAIQIQoLIAYgCmohCgJAAkACQCAIDQAgBEGAEEkNASAEQYCABEkNAiAKIARBP3FBgAFyOgADIAogBEESdkHwAXI6AAAgCiAEQQZ2QT9xQYABcjoAAiAKIARBDHZBP3FBgAFyOgABDAQLIAogBDoAAAwDCyAKIARBP3FBgAFyOgABIAogBEEGdkHAAXI6AAAMAgsgCiAEQT9xQYABcjoAAiAKIARBDHZB4AFyOgAAIAogBEEGdkE/cUGAAXI6AAEMAQsgAygCFCEHAkACQAJAAkACQAJAAkAgAygCHCIKDQACQAJAIAdBgAFJIg1FDQBBASEKDAELAkAgB0GAEE8NAEECIQoMAQtBA0EEIAdBgIAESRshCgsgCyEIAkAgCiADKAIIIAtrTQ0AIANBCGogCyAKECogAygCDCEGIAMoAhAhCAsgBiAIaiEIIA0NASAHQYAQSQ0CAkAgB0GAgARJDQAgCCAHQT9xQYABcjoAAyAIIAdBEnZB8AFyOgAAIAggB0EGdkE/cUGAAXI6AAIgCCAHQQx2QT9xQYABcjoAAQwHCyAIIAdBP3FBgAFyOgACIAggB0EMdkHgAXI6AAAgCCAHQQZ2QT9xQYABcjoAAQwGCwJAAkAgB0GAAUkiDkUNAEEBIQgMAQsCQCAHQYAQTw0AQQIhCAwBC0EDQQQgB0GAgARJGyEICyALIQ0CQCAIIAMoAgggC2tNDQAgA0EIaiALIAgQKiADKAIMIQYgAygCECENCyAGIA1qIQYgDg0CIAdBgBBJDQMCQCAHQYCABEkNACAGIAdBP3FBgAFyOgADIAYgB0ESdkHwAXI6AAAgBiAHQQZ2QT9xQYABcjoAAiAGIAdBDHZBP3FBgAFyOgABDAULIAYgB0E/cUGAAXI6AAIgBiAHQQx2QeABcjoAACAGIAdBBnZBP3FBgAFyOgABDAQLIAggBzoAAAwECyAIIAdBP3FBgAFyOgABIAggB0EGdkHAAXI6AAAMAwsgBiAHOgAADAELIAYgB0E/cUGAAXI6AAEgBiAHQQZ2QcABcjoAAAsgAyAIIAtqIgc2AhACQAJAIARBgAFJIg1FDQBBASELDAELAkAgBEGAEE8NAEECIQsMAQtBA0EEIARBgIAESRshCwsgByEIAkAgCyADKAIIIAdrTQ0AIANBCGogByALECogAygCECEICyADKAIMIgYgCGohCAJAAkACQCANDQAgBEGAEEkNAQJAIARBgIAESQ0AIAggBEE/cUGAAXI6AAMgCCAEQRJ2QfABcjoAACAIIARBBnZBP3FBgAFyOgACIAggBEEMdkE/cUGAAXI6AAEMAwsgCCAEQT9xQYABcjoAAiAIIARBDHZB4AFyOgAAIAggBEEGdkE/cUGAAXI6AAEMAgsgCCAEOgAADAELIAggBEE/cUGAAXI6AAEgCCAEQQZ2QcABcjoAAAsgAyALIAdqIgQ2AhACQAJAIApBgAFJIghFDQBBASEHDAELAkAgCkGAEE8NAEECIQcMAQtBA0EEIApBgIAESRshBwsgBCELAkAgByADKAIIIARrTQ0AIANBCGogBCAHECogAygCDCEGIAMoAhAhCwsgBiALaiELAkACQAJAIAgNACAKQYAQSQ0BAkAgCkGAgARJDQAgCyAKQT9xQYABcjoAAyALIApBEnZB8AFyOgAAIAsgCkEGdkE/cUGAAXI6AAIgCyAKQQx2QT9xQYABcjoAAQwDCyALIApBP3FBgAFyOgACIAsgCkEMdkHgAXI6AAAgCyAKQQZ2QT9xQYABcjoAAQwCCyALIAo6AAAMAQsgCyAKQT9xQYABcjoAASALIApBBnZBwAFyOgAACyADIAcgBGoiCzYCEAwCCyADIAogC2oiBzYCEAJAAkAgBEGAAUkiCEUNAEEBIQoMAQsCQCAEQYAQTw0AQQIhCgwBC0EDQQQgBEGAgARJGyEKCyAHIQsCQCAKIAMoAgggB2tNDQAgA0EIaiAHIAoQKiADKAIQIQsLIAMoAgwiBiALaiELAkACQAJAIAgNACAEQYAQSQ0BAkAgBEGAgARJDQAgCyAEQT9xQYABcjoAAyALIARBEnZB8AFyOgAAIAsgBEEGdkE/cUGAAXI6AAIgCyAEQQx2QT9xQYABcjoAAQwDCyALIARBP3FBgAFyOgACIAsgBEEMdkHgAXI6AAAgCyAEQQZ2QT9xQYABcjoAAQwCCyALIAQ6AAAMAQsgCyAEQT9xQYABcjoAASALIARBBnZBwAFyOgAACyADIAogB2oiCzYCEAwBCyADIAcgC2oiCzYCEAsgCSAPRw0ACwsgACADKQIINwIAIABBCGogA0EIakEIaigCADYCACADQSBqJAAPCyAEIAJB3LLAABBgAAsgASACIBNBAmogAkHMssAAEG4ACyABIAJBACATQbyywAAQbgAL5yMCCX8BfiMAQRBrIgEkAAJAAkACQAJAAkACQAJAAkAgAEH1AUkNAAJAIABBzP97TQ0AQQAhAAwICyAAQQtqIgJBeHEhA0EAKAK4tEEiBEUNBEEfIQUCQCAAQfT//wdLDQAgA0EGIAJBCHZnIgBrdkEBcSAAQQF0a0E+aiEFC0EAIANrIQICQCAFQQJ0QZyxwQBqKAIAIgYNAEEAIQBBACEHDAILQQAhACADQQBBGSAFQQF2ayAFQR9GG3QhCEEAIQcDQAJAIAYiBigCBEF4cSIJIANJDQAgCSADayIJIAJPDQAgCSECIAYhByAJDQBBACECIAYhByAGIQAMBAsgBigCFCIJIAAgCSAGIAhBHXZBBHFqKAIQIgZHGyAAIAkbIQAgCEEBdCEIIAZFDQIMAAsLAkBBACgCtLRBIgZBECAAQQtqQfgDcSAAQQtJGyIDQQN2IgJ2IgBBA3FFDQACQAJAIABBf3NBAXEgAmoiCEEDdCIDQayywQBqIgAgA0G0ssEAaigCACICKAIIIgdGDQAgByAANgIMIAAgBzYCCAwBC0EAIAZBfiAId3E2ArS0QQsgAkEIaiEAIAIgA0EDcjYCBCACIANqIgMgAygCBEEBcjYCBAwHCyADQQAoAry0QU0NAwJAAkACQCAADQBBACgCuLRBIgBFDQYgAGhBAnRBnLHBAGooAgAiBygCBEF4cSADayECIAchBgNAAkAgBygCECIADQAgBygCFCIADQAgBigCGCEFAkACQAJAIAYoAgwiACAGRw0AIAZBFEEQIAYoAhQiABtqKAIAIgcNAUEAIQAMAgsgBigCCCIHIAA2AgwgACAHNgIIDAELIAZBFGogBkEQaiAAGyEIA0AgCCEJIAciAEEUaiAAQRBqIAAoAhQiBxshCCAAQRRBECAHG2ooAgAiBw0ACyAJQQA2AgALIAVFDQQCQAJAIAYgBigCHEECdEGcscEAaiIHKAIARg0AAkAgBSgCECAGRg0AIAUgADYCFCAADQIMBwsgBSAANgIQIAANAQwGCyAHIAA2AgAgAEUNBAsgACAFNgIYAkAgBigCECIHRQ0AIAAgBzYCECAHIAA2AhgLIAYoAhQiB0UNBCAAIAc2AhQgByAANgIYDAQLIAAoAgRBeHEgA2siByACIAcgAkkiBxshAiAAIAYgBxshBiAAIQcMAAsLAkACQCAAIAJ0QQIgAnQiAEEAIABrcnFoIglBA3QiAkGsssEAaiIHIAJBtLLBAGooAgAiACgCCCIIRg0AIAggBzYCDCAHIAg2AggMAQtBACAGQX4gCXdxNgK0tEELIAAgA0EDcjYCBCAAIANqIgggAiADayIHQQFyNgIEIAAgAmogBzYCAAJAQQAoAry0QSIGRQ0AIAZBeHFBrLLBAGohAkEAKALEtEEhAwJAAkBBACgCtLRBIglBASAGQQN2dCIGcQ0AQQAgCSAGcjYCtLRBIAIhBgwBCyACKAIIIQYLIAIgAzYCCCAGIAM2AgwgAyACNgIMIAMgBjYCCAsgAEEIaiEAQQAgCDYCxLRBQQAgBzYCvLRBDAgLQQBBACgCuLRBQX4gBigCHHdxNgK4tEELAkACQAJAIAJBEEkNACAGIANBA3I2AgQgBiADaiIDIAJBAXI2AgQgAyACaiACNgIAQQAoAry0QSIIRQ0BIAhBeHFBrLLBAGohB0EAKALEtEEhAAJAAkBBACgCtLRBIglBASAIQQN2dCIIcQ0AQQAgCSAIcjYCtLRBIAchCAwBCyAHKAIIIQgLIAcgADYCCCAIIAA2AgwgACAHNgIMIAAgCDYCCAwBCyAGIAIgA2oiAEEDcjYCBCAGIABqIgAgACgCBEEBcjYCBAwBC0EAIAM2AsS0QUEAIAI2Ary0QQsgBkEIaiEADAYLAkAgACAHcg0AQQAhB0ECIAV0IgBBACAAa3IgBHEiAEUNAyAAaEECdEGcscEAaigCACEACyAARQ0BCwNAIAAgByAAKAIEQXhxIgYgA2siCSACSSIFGyEEIAYgA0khCCAJIAIgBRshCQJAIAAoAhAiBg0AIAAoAhQhBgsgByAEIAgbIQcgAiAJIAgbIQIgBiEAIAYNAAsLIAdFDQACQEEAKAK8tEEiACADSQ0AIAIgACADa08NAQsgBygCGCEFAkACQAJAIAcoAgwiACAHRw0AIAdBFEEQIAcoAhQiABtqKAIAIgYNAUEAIQAMAgsgBygCCCIGIAA2AgwgACAGNgIIDAELIAdBFGogB0EQaiAAGyEIA0AgCCEJIAYiAEEUaiAAQRBqIAAoAhQiBhshCCAAQRRBECAGG2ooAgAiBg0ACyAJQQA2AgALIAVFDQICQAJAIAcgBygCHEECdEGcscEAaiIGKAIARg0AAkAgBSgCECAHRg0AIAUgADYCFCAADQIMBQsgBSAANgIQIAANAQwECyAGIAA2AgAgAEUNAgsgACAFNgIYAkAgBygCECIGRQ0AIAAgBjYCECAGIAA2AhgLIAcoAhQiBkUNAiAAIAY2AhQgBiAANgIYDAILAkACQAJAAkACQAJAQQAoAry0QSIAIANPDQACQEEAKALAtEEiACADSw0AIAFBBGpB4LTBACADQa+ABGpBgIB8cRA/AkAgASgCBCIGDQBBACEADAoLIAEoAgwhBUEAQQAoAsy0QSABKAIIIglqIgA2Asy0QUEAIABBACgC0LRBIgIgACACSxs2AtC0QQJAAkACQEEAKALItEEiAkUNAEGcssEAIQADQCAGIAAoAgAiByAAKAIEIghqRg0CIAAoAggiAA0ADAMLCwJAAkBBACgC2LRBIgBFDQAgBiAATw0BC0EAIAY2Ati0QQtBAEH/HzYC3LRBQQAgBTYCqLJBQQAgCTYCoLJBQQAgBjYCnLJBQQBBrLLBADYCuLJBQQBBtLLBADYCwLJBQQBBrLLBADYCtLJBQQBBvLLBADYCyLJBQQBBtLLBADYCvLJBQQBBxLLBADYC0LJBQQBBvLLBADYCxLJBQQBBzLLBADYC2LJBQQBBxLLBADYCzLJBQQBB1LLBADYC4LJBQQBBzLLBADYC1LJBQQBB3LLBADYC6LJBQQBB1LLBADYC3LJBQQBB5LLBADYC8LJBQQBB3LLBADYC5LJBQQBB7LLBADYC+LJBQQBB5LLBADYC7LJBQQBB7LLBADYC9LJBQQBB9LLBADYCgLNBQQBB9LLBADYC/LJBQQBB/LLBADYCiLNBQQBB/LLBADYChLNBQQBBhLPBADYCkLNBQQBBhLPBADYCjLNBQQBBjLPBADYCmLNBQQBBjLPBADYClLNBQQBBlLPBADYCoLNBQQBBlLPBADYCnLNBQQBBnLPBADYCqLNBQQBBnLPBADYCpLNBQQBBpLPBADYCsLNBQQBBpLPBADYCrLNBQQBBrLPBADYCuLNBQQBBtLPBADYCwLNBQQBBrLPBADYCtLNBQQBBvLPBADYCyLNBQQBBtLPBADYCvLNBQQBBxLPBADYC0LNBQQBBvLPBADYCxLNBQQBBzLPBADYC2LNBQQBBxLPBADYCzLNBQQBB1LPBADYC4LNBQQBBzLPBADYC1LNBQQBB3LPBADYC6LNBQQBB1LPBADYC3LNBQQBB5LPBADYC8LNBQQBB3LPBADYC5LNBQQBB7LPBADYC+LNBQQBB5LPBADYC7LNBQQBB9LPBADYCgLRBQQBB7LPBADYC9LNBQQBB/LPBADYCiLRBQQBB9LPBADYC/LNBQQBBhLTBADYCkLRBQQBB/LPBADYChLRBQQBBjLTBADYCmLRBQQBBhLTBADYCjLRBQQBBlLTBADYCoLRBQQBBjLTBADYClLRBQQBBnLTBADYCqLRBQQBBlLTBADYCnLRBQQBBpLTBADYCsLRBQQBBnLTBADYCpLRBQQAgBkEPakF4cSIAQXhqIgI2Asi0QUEAQaS0wQA2Aqy0QUEAIAYgAGsgCUFYaiIAakEIaiIHNgLAtEEgAiAHQQFyNgIEIAYgAGpBKDYCBEEAQYCAgAE2AtS0QQwICyACIAZPDQAgByACSw0AIAAoAgwiB0EBcQ0AIAdBAXYgBUYNAwtBAEEAKALYtEEiACAGIAAgBkkbNgLYtEEgBiAJaiEHQZyywQAhAAJAAkACQANAIAAoAgAiCCAHRg0BIAAoAggiAA0ADAILCyAAKAIMIgdBAXENACAHQQF2IAVGDQELQZyywQAhAAJAA0ACQCAAKAIAIgcgAksNACACIAcgACgCBGoiB0kNAgsgACgCCCEADAALC0EAIAZBD2pBeHEiAEF4aiIINgLItEFBACAGIABrIAlBWGoiAGpBCGoiBDYCwLRBIAggBEEBcjYCBCAGIABqQSg2AgRBAEGAgIABNgLUtEEgAiAHQWBqQXhxQXhqIgAgACACQRBqSRsiCEEbNgIEQQApApyyQSEKIAhBEGpBACkCpLJBNwIAIAggCjcCCEEAIAU2AqiyQUEAIAk2AqCyQUEAIAY2ApyyQUEAIAhBCGo2AqSyQSAIQRxqIQADQCAAQQc2AgAgAEEEaiIAIAdJDQALIAggAkYNByAIIAgoAgRBfnE2AgQgAiAIIAJrIgBBAXI2AgQgCCAANgIAAkAgAEGAAkkNACACIAAQIwwICyAAQfgBcUGsssEAaiEHAkACQEEAKAK0tEEiBkEBIABBA3Z0IgBxDQBBACAGIAByNgK0tEEgByEADAELIAcoAgghAAsgByACNgIIIAAgAjYCDCACIAc2AgwgAiAANgIIDAcLIAAgBjYCACAAIAAoAgQgCWo2AgQgBkEPakF4cUF4aiIHIANBA3I2AgQgCEEPakF4cUF4aiICIAcgA2oiAGshAyACQQAoAsi0QUYNAyACQQAoAsS0QUYNBAJAIAIoAgQiBkEDcUEBRw0AIAIgBkF4cSIGEBwgBiADaiEDIAIgBmoiAigCBCEGCyACIAZBfnE2AgQgACADQQFyNgIEIAAgA2ogAzYCAAJAIANBgAJJDQAgACADECMMBgsgA0H4AXFBrLLBAGohAgJAAkBBACgCtLRBIgZBASADQQN2dCIDcQ0AQQAgBiADcjYCtLRBIAIhAwwBCyACKAIIIQMLIAIgADYCCCADIAA2AgwgACACNgIMIAAgAzYCCAwFC0EAIAAgA2siAjYCwLRBQQBBACgCyLRBIgAgA2oiBzYCyLRBIAcgAkEBcjYCBCAAIANBA3I2AgQgAEEIaiEADAgLQQAoAsS0QSECAkACQCAAIANrIgdBD0sNAEEAQQA2AsS0QUEAQQA2Ary0QSACIABBA3I2AgQgAiAAaiIAIAAoAgRBAXI2AgQMAQtBACAHNgK8tEFBACACIANqIgY2AsS0QSAGIAdBAXI2AgQgAiAAaiAHNgIAIAIgA0EDcjYCBAsgAkEIaiEADAcLIAAgCCAJajYCBEEAQQAoAsi0QSIAQQ9qQXhxIgJBeGoiBzYCyLRBQQAgACACa0EAKALAtEEgCWoiAmpBCGoiBjYCwLRBIAcgBkEBcjYCBCAAIAJqQSg2AgRBAEGAgIABNgLUtEEMAwtBACAANgLItEFBAEEAKALAtEEgA2oiAzYCwLRBIAAgA0EBcjYCBAwBC0EAIAA2AsS0QUEAQQAoAry0QSADaiIDNgK8tEEgACADQQFyNgIEIAAgA2ogAzYCAAsgB0EIaiEADAMLQQAhAEEAKALAtEEiAiADTQ0CQQAgAiADayICNgLAtEFBAEEAKALItEEiACADaiIHNgLItEEgByACQQFyNgIEIAAgA0EDcjYCBCAAQQhqIQAMAgtBAEEAKAK4tEFBfiAHKAIcd3E2Ari0QQsCQAJAIAJBEEkNACAHIANBA3I2AgQgByADaiIAIAJBAXI2AgQgACACaiACNgIAAkAgAkGAAkkNACAAIAIQIwwCCyACQfgBcUGsssEAaiEDAkACQEEAKAK0tEEiBkEBIAJBA3Z0IgJxDQBBACAGIAJyNgK0tEEgAyECDAELIAMoAgghAgsgAyAANgIIIAIgADYCDCAAIAM2AgwgACACNgIIDAELIAcgAiADaiIAQQNyNgIEIAcgAGoiACAAKAIEQQFyNgIECyAHQQhqIQALIAFBEGokACAAC7YNAg9/A34jAEEgayIFJAACQAJAIAEoAgwiBiACaiICIAZJDQACQAJAIAIgASgCBCIHIAdBAWoiCEEDdiIJQQdsIAdBCEkbIgpBAXZNDQACQAJAAkACQAJAAkACQCAKQQFqIgkgAiAJIAJLGyICQQ9JDQAgAkH/////AUsNAkF/IAJBA3RBB25Bf2pndkEBaiECDAELQQRBCEEQIAJBCEkbIAJBBEkbIQILIAKtQgx+IhRCIIinDQIgFKciCUF4Sw0CIAlBB2pBeHEiCyACQQhqIgxqIgkgC0kNAiAJQfj///8HSw0CEJEBIAlBCBByIg0NASAFQRBqIARBCCAJEFkgBSgCFCECIAUoAhAhCQwICyAFQRhqIAQQQCAFKAIcIQIgBSgCGCEJDAcLIA0gC2ohCwJAIAxFDQAgC0H/ASAM/AsACyACQX9qIgwgAkEDdkEHbCAMQQhJGyEKIAYNASABKAIAIQ4MAgsgBUEIaiAEEEAgBSgCDCECIAUoAgghCQwFCyALQXRqIQ8gC0EIaiEQIAEoAgAiDkF0aiENIA4pAwBCf4VCgIGChIiQoMCAf4MhFEEAIQIgBiEIIA4hCQNAAkAgFEIAUg0AA0AgAkEIaiECIAlBCGoiCSkDAEKAgYKEiJCgwIB/gyIUQoCBgoSIkKDAgH9RDQALIBRCgIGChIiQoMCAf4UhFAsCQCALIA1BACAUeqdBA3YgAmoiEWtBDGxqIgQoAgAiEiAEKAIEIBIbIhIgDHEiBGopAABCgIGChIiQoMCAf4MiFUIAUg0AQQghEwNAIAQgE2ohBCATQQhqIRMgCyAEIAxxIgRqKQAAQoCBgoSIkKDAgH+DIhVQDQALCyAUQn98IRYCQCALIBV6p0EDdiAEaiAMcSIEaiwAAEEASA0AIAspAwBCgIGChIiQoMCAf4N6p0EDdiEECyAWIBSDIRQgCyAEaiASQRl2IhI6AAAgECAEQXhqIAxxaiASOgAAIA8gBEF0bGoiBEEIaiANIBFBdGxqIhFBCGooAAA2AAAgBCARKQAANwAAIAhBf2oiCA0ACwsgASAMNgIEIAEgCzYCACABIAogBms2AghBgYCAgHghCSAHRQ0BIAcgB0EMbEETakF4cSICakEJaiIERQ0BIA4gAmsgBEEIEHsMAQtBACECIAEoAgAhBAJAIAkgCEEHcUEAR2oiCUUNACAJQQFxIQwCQCAJQQFGDQAgCUH+////A3EhC0EAIQIDQCAEIAJqIgkgCSkDACIUQn+FQgeIQoGChIiQoMCAAYMgFEL//v379+/fv/8AhHw3AwAgCUEIaiIJIAkpAwAiFEJ/hUIHiEKBgoSIkKDAgAGDIBRC//79+/fv37//AIR8NwMAIAJBEGohAiALQX5qIgsNAAsLIAxFDQAgBCACaiICIAIpAwAiFEJ/hUIHiEKBgoSIkKDAgAGDIBRC//79+/fv37//AIR8NwMACwJAAkACQCAIQQhJDQAgBCAIaiAEKQAANwAADAELAkAgCEUNACAEQQhqIAQgCPwKAAALIAhFDQELIARBCGohECAEQXRqIRFBASELQQAhAgNAIAIhCSALIQICQCAEIAlqIg0tAABBgAFHDQAgESAJQXRsaiEOIBFBACAJa0EMbGohDAJAA0AgDCgCACILIAwoAgQgCxsiDyAHcSILIRICQCAEIAtqKQAAQoCBgoSIkKDAgH+DIhRCAFINAEEIIRMgCyESA0AgEiATaiESIBNBCGohEyAEIBIgB3EiEmopAABCgIGChIiQoMCAf4MiFFANAAsLAkAgBCAUeqdBA3YgEmogB3EiEmosAABBAEgNACAEKQMAQoCBgoSIkKDAgH+DeqdBA3YhEgsCQCASIAtrIAkgC2tzIAdxQQhJDQAgBCASaiILLQAAIRMgCyAPQRl2Ig86AAAgECASQXhqIAdxaiAPOgAAIBEgEkF0bGohCyATQf8BRg0CIA4oAAAhEiAOIAsoAAA2AAAgCyASNgAAIAsoAAQhEiALIA4oAAQ2AAQgDiASNgAEIA4oAAghEiAOIAsoAAg2AAggCyASNgAIDAELCyANIA9BGXYiCzoAACAQIAlBeGogB3FqIAs6AAAMAQsgDUH/AToAACAQIAlBeGogB3FqQf8BOgAAIAtBCGogDkEIaigAADYAACALIA4pAAA3AAALIAIgAiAISSIJaiELIAkNAAsLIAEgCiAGazYCCEGBgICAeCEJCwwBCyAFIAQQQCAFKAIEIQIgBSgCACEJCyAAIAk2AgAgACACNgIEIAVBIGokAAvSCAIEfwF+IwBB8ABrIgUkACAFIAM2AgwgBSACNgIIAkACQCABQYECSQ0AAkACQCAALACAAkG/f0wNAEGAAiEGDAELAkAgACwA/wFBv39MDQBB/wEhBgwBC0H+AUH9ASAALAD+AUG/f0obIQYLAkAgACAGaiwAAEG/f0wNAEEFIQdByMXAACEIDAILIAAgAUEAIAYgBBBuAAtBACEHQQEhCCABIQYLIAUgBjYCFCAFIAA2AhAgBSAHNgIcIAUgCDYCGAJAAkAgAiABSw0AIAMgAU0NASADIQILIAUgAjYCKCAFQQM2AjQgBUGQx8AANgIwIAVCAzcCPCAFQSWtQiCGIgkgBUEYaq2ENwNYIAUgCSAFQRBqrYQ3A1AgBUESrUIghiAFQShqrYQ3A0ggBSAFQcgAajYCOCAFQTBqIAQQTAALAkACQAJAIAIgA0sNAAJAIAJFDQAgAiABTw0AIAVBDGogBUEIaiAAIAJqLAAAQb9/ShsoAgAhAwsgBSADNgIgIAEhAgJAIAMgAU8NACADQQFqIgZBACADQX1qIgIgAiADSxsiAkkNAiAGIAJrIQcCQAJAIAAgA2osAABBv39MDQAgB0F/aiEDDAELAkAgACAGaiIDQX5qLAAAQb9/TA0AIAdBfmohAwwBCwJAIANBfWosAABBv39MDQAgB0F9aiEDDAELIAdBfEF7IANBfGosAABBv39KG2ohAwsgAyACaiECCwJAIAJFDQACQCACIAFJDQAgAiABRg0BDAQLIAAgAmosAABBv39MDQMLAkACQAJAIAIgAUYNAAJAAkACQCAAIAJqIgAsAAAiAUF/Sg0AIAAtAAFBP3EhAyABQR9xIQYgAUFfSw0BIAZBBnQgA3IhAQwCCyAFIAFB/wFxNgIkQQEhAQwECyADQQZ0IAAtAAJBP3FyIQMCQCABQXBPDQAgAyAGQQx0ciEBDAELIANBBnQgAC0AA0E/cXIgBkESdEGAgPAAcXIiAUGAgMQARg0BCyAFIAE2AiQgAUGAAU8NAUEBIQEMAgsgBBCAAQALAkAgAUGAEE8NAEECIQEMAQtBA0EEIAFBgIAESRshAQsgBSACNgIoIAUgASACajYCLCAFQQU2AjQgBUHQxsAANgIwIAVCBTcCPCAFQSWtQiCGIgkgBUEYaq2ENwNoIAUgCSAFQRBqrYQ3A2AgBUEmrUIghiAFQShqrYQ3A1ggBUEnrUIghiAFQSRqrYQ3A1AgBUESrUIghiAFQSBqrYQ3A0ggBSAFQcgAajYCOCAFQTBqIAQQTAALIAVBBDYCNCAFQfDFwAA2AjAgBUIENwI8IAVBJa1CIIYiCSAFQRhqrYQ3A2AgBSAJIAVBEGqthDcDWCAFQRKtQiCGIgkgBUEMaq2ENwNQIAUgCSAFQQhqrYQ3A0ggBSAFQcgAajYCOCAFQTBqIAQQTAALIAIgBkGox8AAEH8ACyAAIAEgAiABIAQQbgAL8gYBCH8CQAJAIAEgAEEDakF8cSICIABrIgNJDQAgASADayIEQQRJDQAgBEEDcSEFQQAhBkEAIQECQCACIABGIgcNAEEAIQECQAJAIAAgAmsiCEF8TQ0AQQAhCQwBC0EAIQkDQCABIAAgCWoiAiwAAEG/f0pqIAJBAWosAABBv39KaiACQQJqLAAAQb9/SmogAkEDaiwAAEG/f0pqIQEgCUEEaiIJDQALCyAHDQAgACAJaiECA0AgASACLAAAQb9/SmohASACQQFqIQIgCEEBaiIIDQALCyAAIANqIQACQCAFRQ0AIAAgBEF8cWoiAiwAAEG/f0ohBiAFQQFGDQAgBiACLAABQb9/SmohBiAFQQJGDQAgBiACLAACQb9/SmohBgsgBEECdiEIIAYgAWohAwNAIAAhBCAIRQ0CIAhBwAEgCEHAAUkbIgZBA3EhByAGQQJ0IQVBACECAkAgCEEESQ0AIAQgBUHwB3FqIQlBACECIAQhAQNAIAFBDGooAgAiAEF/c0EHdiAAQQZ2ckGBgoQIcSABQQhqKAIAIgBBf3NBB3YgAEEGdnJBgYKECHEgAUEEaigCACIAQX9zQQd2IABBBnZyQYGChAhxIAEoAgAiAEF/c0EHdiAAQQZ2ckGBgoQIcSACampqaiECIAFBEGoiASAJRw0ACwsgCCAGayEIIAQgBWohACACQQh2Qf+B/AdxIAJB/4H8B3FqQYGABGxBEHYgA2ohAyAHRQ0ACyAEIAZB/AFxQQJ0aiICKAIAIgFBf3NBB3YgAUEGdnJBgYKECHEhAQJAIAdBAUYNACACKAIEIgBBf3NBB3YgAEEGdnJBgYKECHEgAWohASAHQQJGDQAgAigCCCICQX9zQQd2IAJBBnZyQYGChAhxIAFqIQELIAFBCHZB/4EccSABQf+B/AdxakGBgARsQRB2IANqDwsCQCABDQBBAA8LIAFBA3EhCQJAAkAgAUEETw0AQQAhA0EAIQIMAQsgAUF8cSEIQQAhA0EAIQIDQCADIAAgAmoiASwAAEG/f0pqIAFBAWosAABBv39KaiABQQJqLAAAQb9/SmogAUEDaiwAAEG/f0pqIQMgCCACQQRqIgJHDQALCyAJRQ0AIAAgAmohAQNAIAMgASwAAEG/f0pqIQMgAUEBaiEBIAlBf2oiCQ0ACwsgAwv3BgEGfwJAAkACQAJAAkAgAEF8aiIEKAIAIgVBeHEiBkEEQQggBUEDcSIHGyABakkNACABQSdqIQgCQCAHRQ0AIAYgCEsNAgsCQAJAAkAgAkEJSQ0AIAIgAxAaIgINAUEADwtBACECIANBzP97Sw0BQRAgA0ELakF4cSADQQtJGyEBAkACQCAHDQAgAUGAAkkNASAGIAFBBHJJDQEgBiABa0GBgAhPDQEgAA8LIABBeGoiCCAGaiEHAkACQAJAAkACQCAGIAFPDQAgB0EAKALItEFGDQQgB0EAKALEtEFGDQIgBygCBCIFQQJxDQUgBUF4cSIJIAZqIgUgAUkNBSAHIAkQHCAFIAFrIgNBEEkNASAEIAEgBCgCAEEBcXJBAnI2AgAgCCABaiIBIANBA3I2AgQgCCAFaiICIAIoAgRBAXI2AgQgASADEBggAA8LIAYgAWsiA0EPSw0CIAAPCyAEIAUgBCgCAEEBcXJBAnI2AgAgCCAFaiIBIAEoAgRBAXI2AgQgAA8LQQAoAry0QSAGaiIHIAFJDQICQAJAIAcgAWsiA0EPSw0AIAQgBUEBcSAHckECcjYCACAIIAdqIgEgASgCBEEBcjYCBEEAIQNBACEBDAELIAQgASAFQQFxckECcjYCACAIIAFqIgEgA0EBcjYCBCAIIAdqIgIgAzYCACACIAIoAgRBfnE2AgQLQQAgATYCxLRBQQAgAzYCvLRBIAAPCyAEIAEgBUEBcXJBAnI2AgAgCCABaiIBIANBA3I2AgQgByAHKAIEQQFyNgIEIAEgAxAYIAAPC0EAKALAtEEgBmoiByABSw0HCyADEAkiAUUNAQJAIANBfEF4IAQoAgAiAkEDcRsgAkF4cWoiAiADIAJJGyIDRQ0AIAEgACAD/AoAAAsgABARIAEPCwJAIAMgASADIAFJGyIDRQ0AIAIgACAD/AoAAAsgBCgCACIDQXhxIgdBBEEIIANBA3EiAxsgAWpJDQMCQCADRQ0AIAcgCEsNBQsgABARCyACDwtBwK/AAEEuQfCvwAAQRQALQYCwwABBLkGwsMAAEEUAC0HAr8AAQS5B8K/AABBFAAtBgLDAAEEuQbCwwAAQRQALIAQgASAFQQFxckECcjYCACAIIAFqIgMgByABayIBQQFyNgIEQQAgATYCwLRBQQAgAzYCyLRBIAALmQcBCH8jAEHQAGsiAiQAQQAhAwJAAkADQCACQThqIANBzJnAAGooAgAgA0HQmcAAaigCABAIIAJBxABqIAAgARAIIAIoAkghBCACKAI8IQUCQCACKAJAIgYgAigCTEcNACAFIAQgBhA+RQ0CCwJAIAIoAkQiBkUNACAEIAZBARB7CwJAIAIoAjgiBEUNACAFIARBARB7CyADQRhqIgNB2BNHDQALQYEBIQMMAQsCQCACKAJEIgZFDQAgBCAGQQEQewsCQCACKAI4IgRFDQAgBSAEQQEQewsgAkEANgIsAkACQAJAAkACQCADQdSZwABqKAIAIgdFDQAgAkHEAGogAkEsakGkhsAAQQhBAhBzIAIoAkghBiACKAJEIgUNASAGIQQMAgsgAkHEAGogAkEsakGkhsAAQQhBAhBzIAIoAkghBgJAIAIoAkQiBQ0AIAYhBAwCCyACIAY2AjwgAiAFNgI4IAJBCGogBUGkhsAAQQhBAEGwhsAAQQMQZyACKAIMIQQCQCACKAIIQQFxDQAgAkE4akEEaiIGQayGwABBBBATIAQQfCACIAUgA0HYmcAAaigCACADQdyZwABqKAIAEGggAigCBCEEIAIoAgBBAXFFDQMgAigCPCEGCyAGQYQBSQ0BIAYQNgwBCyACIAY2AjQgAiAFNgIwIAJBIGogBUGkhsAAQQhBAUG4hsAAQQMQZyACKAIkIQQCQCACKAIgQQFxDQAgAkEwakEEaiIIQayGwABBBBATIAQQfCACQcQAaiAFQQIQXCACKAJIIQQCQCACKAJEIgVFDQAgAiACKAJMIgY2AkAgAiAENgI8IAIgBTYCOCACQRhqIAUgByADQdiZwABqKAIAEGggAigCHCEHAkACQCACKAIYQQFxRQ0AIAQhAyAHIQQMAQsgAkE8aiIJIAYgBxB9IAIgBkEBaiIGNgJAIAJBEGogBSADQdyZwABqKAIAIANB4JnAAGooAgAQaCACKAIUIQQgAigCEEEBcUUNBSACKAI8IQMLIANBhAFJDQAgAxA2CyACKAI0IQYLIAZBhAFJDQAgBhA2CyACIAQ2AkRBtK3AAEErIAJBxABqQaStwABB4K3AABA1AAsgBkGzhsAAQQUQEyAEEHwgAigCPCEDDAELIAkgBiAEEH0gAigCPCEDIAhBs4bAAEEFEBMgAxB8IAIoAjQhAwsCQCABRQ0AIAAgAUEBEHsLIAJB0ABqJAAgAwvxBQIIfwF+AkACQCABDQAgBUEBaiEGIAAoAgghB0EtIQgMAQtBK0GAgMQAIAAoAggiB0GAgIABcSIBGyEIIAFBFXYgBWohBgsCQAJAIAdBgICABHENAEEAIQIMAQsCQAJAIANBEEkNACACIAMQDCEBDAELAkAgAw0AQQAhAQwBCyADQQNxIQkCQAJAIANBBE8NAEEAIQFBACEKDAELIANBDHEhC0EAIQFBACEKA0AgASACIApqIgwsAABBv39KaiAMQQFqLAAAQb9/SmogDEECaiwAAEG/f0pqIAxBA2osAABBv39KaiEBIAsgCkEEaiIKRw0ACwsgCUUNACACIApqIQwDQCABIAwsAABBv39KaiEBIAxBAWohDCAJQX9qIgkNAAsLIAEgBmohBgsCQAJAIAYgAC8BDCILTw0AAkACQAJAIAdBgICACHENACALIAZrIQ1BACEBQQAhCwJAAkACQCAHQR12QQNxDgQCAAEAAgsgDSELDAELIA1B/v8DcUEBdiELCyAHQf///wBxIQYgACgCBCEJIAAoAgAhCgNAIAFB//8DcSALQf//A3FPDQJBASEMIAFBAWohASAKIAYgCSgCEBEGAEUNAAwFCwsgACAAKQIIIg6nQYCAgP95cUGwgICAAnI2AghBASEMIAAoAgAiCiAAKAIEIgkgCCACIAMQRg0DQQAhASALIAZrQf//A3EhAgNAIAFB//8DcSACTw0CQQEhDCABQQFqIQEgCkEwIAkoAhARBgBFDQAMBAsLQQEhDCAKIAkgCCACIAMQRg0CIAogBCAFIAkoAgwRCgANAkEAIQEgDSALa0H//wNxIQADQCABQf//A3EiAiAASSEMIAIgAE8NAyABQQFqIQEgCiAGIAkoAhARBgBFDQAMAwsLQQEhDCAKIAQgBSAJKAIMEQoADQEgACAONwIIQQAPC0EBIQwgACgCACIBIAAoAgQiCiAIIAIgAxBGDQAgASAEIAUgCigCDBEKACEMCyAMC7gGAQJ/IwBBIGsiAyQAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEOKAIBAQEBAQEBAQMFAQEEAQEBAQEBAQEBAQEBAQEBAQEBAQEIAQEBAQcACyABQdwARg0FCyACQQFxRQ0HIAFB/wVNDQcgARAdRQ0HIANBDGpBAmpBADoAACADQQA7AQwgAyABQRR2QabCwABqLQAAOgAPIAMgAUEEdkEPcUGmwsAAai0AADoAEyADIAFBCHZBD3FBpsLAAGotAAA6ABIgAyABQQx2QQ9xQabCwABqLQAAOgARIAMgAUEQdkEPcUGmwsAAai0AADoAECADQQxqIAFBAXJnQQJ2IgJqIgRB+wA6AAAgBEF/akH1ADoAACADQQxqIAJBfmoiAmpB3AA6AAAgA0EMakEIaiIEIAFBD3FBpsLAAGotAAA6AAAgACADKQEMNwAAIANB/QA6ABUgAEEIaiAELwEAOwAADAgLIABCADcBAiAAQdzgADsBAAwKCyAAQgA3AQIgAEHc6AE7AQAMCQsgAEIANwECIABB3OQBOwEADAgLIABCADcBAiAAQdzcATsBAAwHCyAAQgA3AQIgAEHcuAE7AQAMBgsgAkGAAnFFDQEgAEIANwECIABB3M4AOwEADAULIAJB////B3FBgIAETw0DCyABECsNASADQRZqQQJqQQA6AAAgA0EAOwEWIAMgAUEUdkGmwsAAai0AADoAGSADIAFBBHZBD3FBpsLAAGotAAA6AB0gAyABQQh2QQ9xQabCwABqLQAAOgAcIAMgAUEMdkEPcUGmwsAAai0AADoAGyADIAFBEHZBD3FBpsLAAGotAAA6ABogA0EWaiABQQFyZ0ECdiICaiIEQfsAOgAAIARBf2pB9QA6AAAgA0EWaiACQX5qIgJqQdwAOgAAIANBFmpBCGoiBCABQQ9xQabCwABqLQAAOgAAIAAgAykBFjcAACADQf0AOgAfIABBCGogBC8BADsAAAtBCiEBDAMLIAAgATYCAEGBASEBQYABIQIMAgsgAEIANwECIABB3MQAOwEAC0ECIQFBACECCyAAIAE6AA0gACACOgAMIANBIGokAAv6BQEFfyAAQXhqIgEgAEF8aigCACICQXhxIgBqIQMCQAJAIAJBAXENACACQQJxRQ0BIAEoAgAiAiAAaiEAAkAgASACayIBQQAoAsS0QUcNACADKAIEQQNxQQNHDQFBACAANgK8tEEgAyADKAIEQX5xNgIEIAEgAEEBcjYCBCADIAA2AgAPCyABIAIQHAsCQAJAAkACQAJAAkAgAygCBCICQQJxDQAgA0EAKALItEFGDQIgA0EAKALEtEFGDQMgAyACQXhxIgIQHCABIAIgAGoiAEEBcjYCBCABIABqIAA2AgAgAUEAKALEtEFHDQFBACAANgK8tEEPCyADIAJBfnE2AgQgASAAQQFyNgIEIAEgAGogADYCAAsgAEGAAkkNAiABIAAQI0EAIQFBAEEAKALctEFBf2oiADYC3LRBIAANBAJAQQAoAqSyQSIARQ0AQQAhAQNAIAFBAWohASAAKAIIIgANAAsLQQAgAUH/HyABQf8fSxs2Aty0QQ8LQQAgATYCyLRBQQBBACgCwLRBIABqIgA2AsC0QSABIABBAXI2AgQCQCABQQAoAsS0QUcNAEEAQQA2Ary0QUEAQQA2AsS0QQsgAEEAKALUtEEiBE0NA0EAKALItEEiAEUNA0EAIQJBACgCwLRBIgVBKUkNAkGcssEAIQEDQAJAIAEoAgAiAyAASw0AIAAgAyABKAIEakkNBAsgASgCCCEBDAALC0EAIAE2AsS0QUEAQQAoAry0QSAAaiIANgK8tEEgASAAQQFyNgIEIAEgAGogADYCAA8LIABB+AFxQayywQBqIQMCQAJAQQAoArS0QSICQQEgAEEDdnQiAHENAEEAIAIgAHI2ArS0QSADIQAMAQsgAygCCCEACyADIAE2AgggACABNgIMIAEgAzYCDCABIAA2AggPCwJAQQAoAqSyQSIBRQ0AQQAhAgNAIAJBAWohAiABKAIIIgENAAsLQQAgAkH/HyACQf8fSxs2Aty0QSAFIARNDQBBAEF/NgLUtEELC44FAQd/AkACQCAAKAIIIgNBgICAwAFxRQ0AAkACQAJAAkACQCADQYCAgIABcUUNACAALwEOIgQNAUEAIQIMAgsCQCACQRBJDQAgASACEAwhBQwECwJAIAINAEEAIQJBACEFDAQLIAJBA3EhBgJAAkAgAkEETw0AQQAhBUEAIQcMAQsgAkEMcSEEQQAhBUEAIQcDQCAFIAEgB2oiCCwAAEG/f0pqIAhBAWosAABBv39KaiAIQQJqLAAAQb9/SmogCEEDaiwAAEG/f0pqIQUgBCAHQQRqIgdHDQALCyAGRQ0DIAEgB2ohCANAIAUgCCwAAEG/f0pqIQUgCEEBaiEIIAZBf2oiBg0ADAQLCyABIAJqIQZBACECIAEhCCAEIQcDQCAIIgUgBkYNAgJAAkAgBSwAACIIQX9MDQAgBUEBaiEIDAELAkAgCEFgTw0AIAVBAmohCAwBCwJAIAhBcE8NACAFQQNqIQgMAQsgBUEEaiEICyAIIAVrIAJqIQIgB0F/aiIHDQALC0EAIQcLIAQgB2shBQsgBSAALwEMIghPDQAgCCAFayEJQQAhBUEAIQQCQAJAAkAgA0EddkEDcQ4EAgABAgILIAkhBAwBCyAJQf7/A3FBAXYhBAsgA0H///8AcSEGIAAoAgQhByAAKAIAIQACQANAIAVB//8DcSAEQf//A3FPDQFBASEIIAVBAWohBSAAIAYgBygCEBEGAA0DDAALC0EBIQggACABIAIgBygCDBEKAA0BQQAhBSAJIARrQf//A3EhAgNAIAVB//8DcSIEIAJJIQggBCACTw0CIAVBAWohBSAAIAYgBygCEBEGAA0CDAALCyAAKAIAIAEgAiAAKAIEKAIMEQoAIQgLIAgL6AQCCH8DfiMAQRBrIgIkAEHssMEAIQMCQEEAKALosEENAEHosMEAQQAQGSEDCwJAAkACQCADKAIADQAgA0F/NgIAIAMoAggiBCAAcSEFIABBGXYiBq1CgYKEiJCgwIABfiEKIAMoAgQhB0EAIQgDQAJAIAcgBWopAAAiCyAKhSIMQn+FIAxC//379+/fv/9+fINCgIGChIiQoMCAf4MiDFANAANAAkAgB0EAIAx6p0EDdiAFaiAEcWtBDGxqIglBdGooAgAgAEcNACAJQXhqKAIAIAFGDQYLIAxCf3wgDIMiDFBFDQALCyALIAtCAYaDQoCBgoSIkKDAgH+DUEUNAiAFIAhBCGoiCGogBHEhBQwACwtBiK7AABA9AAsCQCADKAIMDQAgAkEIaiADQQRqQQEgA0EUakEBEAoLIAAgARCLASEIAkAgAygCBCIJIAMoAggiByAAcSIFaikAAEKAgYKEiJCgwIB/gyIMQgBSDQBBCCEEA0AgBSAEaiEFIARBCGohBCAJIAUgB3EiBWopAABCgIGChIiQoMCAf4MiDFANAAsLAkAgCSAMeqdBA3YgBWogB3EiBWosAAAiBEEASA0AIAkgCSkDAEKAgYKEiJCgwIB/g3qnQQN2IgVqLQAAIQQLIAkgBWogBjoAACAJIAVBeGogB3FqQQhqIAY6AAAgAyADKAIMIARBAXFrNgIMIAMgAygCEEEBajYCECAJQQAgBWtBDGxqIglBfGogCDYCACAJQXhqIAE2AgAgCUF0aiAANgIACyAJQXxqKAIAEHohACADIAMoAgBBAWo2AgAgAkEQaiQAIAAL2QQBCH8jAEEQayIDJAAgAyABNgIEIAMgADYCACADQqCAgIAONwIIAkACQAJAAkACQCACKAIQIgRFDQAgAigCFCIBDQEMAgsgAigCDCIARQ0BIAIoAggiASAAQQN0aiEFIABBf2pB/////wFxQQFqIQYgAigCACEAA0ACQCAAQQRqKAIAIgdFDQAgAygCACAAKAIAIAcgAygCBCgCDBEKAEUNAEEBIQEMBQsCQCABKAIAIAMgAUEEaigCABEGAEUNAEEBIQEMBQsgAEEIaiEAIAFBCGoiASAFRg0DDAALCyABQRhsIQggAUF/akH/////AXFBAWohBiACKAIIIQkgAigCACEAQQAhBwNAAkAgAEEEaigCACIBRQ0AIAMoAgAgACgCACABIAMoAgQoAgwRCgBFDQBBASEBDAQLQQAhBUEAIQoCQAJAAkAgBCAHaiIBQQhqLwEADgMAAQIACyABQQpqLwEAIQoMAQsgCSABQQxqKAIAQQN0ai8BBCEKCwJAAkACQCABLwEADgMAAQIACyABQQJqLwEAIQUMAQsgCSABQQRqKAIAQQN0ai8BBCEFCyADIAU7AQ4gAyAKOwEMIAMgAUEUaigCADYCCAJAIAkgAUEQaigCAEEDdGoiASgCACADIAEoAgQRBgBFDQBBASEBDAQLIABBCGohACAIIAdBGGoiB0YNAgwACwtBACEGCwJAIAYgAigCBE8NACADKAIAIAIoAgAgBkEDdGoiASgCACABKAIEIAMoAgQoAgwRCgBFDQBBASEBDAELQQAhAQsgA0EQaiQAIAELuAQBDH8gAUF/aiEDIAAoAgQhBCAAKAIAIQUgACgCCCEGQQAhB0EAIQhBACEJQQAhCgJAA0AgCkEBcQ0BAkACQCACIAlJDQADQCABIAlqIQoCQAJAAkACQCACIAlrIgtBB0sNACACIAlHDQEgAiEJDAULAkACQCAKQQNqQXxxIgwgCmsiDUUNAEEAIQADQCAKIABqLQAAQQpGDQUgDSAAQQFqIgBHDQALIA0gC0F4aiIOTQ0BDAMLIAtBeGohDgsDQEGAgoQIIAwoAgAiAEGKlKjQAHNrIAByQYCChAggDEEEaigCACIAQYqUqNAAc2sgAHJxQYCBgoR4cUGAgYKEeEcNAiAMQQhqIQwgDUEIaiINIA5NDQAMAgsLQQAhAANAIAogAGotAABBCkYNAiALIABBAWoiAEcNAAsgAiEJDAMLAkAgCyANRw0AIAIhCQwDCwNAAkAgCiANai0AAEEKRw0AIA0hAAwCCyALIA1BAWoiDUcNAAsgAiEJDAILIAAgCWoiDUEBaiEJAkAgDSACTw0AIAogAGotAABBCkcNAEEAIQogCSEMIAkhAAwDCyAJIAJNDQALCyACIAhGDQJBASEKIAghDCACIQALAkACQCAGLQAARQ0AIAVB9MPAAEEEIAQoAgwRCgANAQsgACAIayELQQAhDQJAIAAgCEYNACADIABqLQAAQQpGIQ0LIAEgCGohACAGIA06AAAgDCEIIAUgACALIAQoAgwRCgBFDQELC0EBIQcLIAcLqQUBAn8gAiEDAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAIOCBAJCQIBAAMHCQsgAUG7hsAAQQUQPkUNDSABQcCGwABBBRA+DQMMDQsgASgAAEHj6MnjBkYNCyABKAAAQcPoyeMGRw0EDAsLIAFBxYbAAEEDED5FDQsgAUHIhsAAQQMQPkUNCiABQcuGwABBAxA+RQ0JIAFBzobAAEEDED4NAgwJCyABQdGGwABBBhA+RQ0IIAFB14bAAEEGED5FDQgMBAsgAUHghsAAQQUQPkUNBiABQeWGwABBBRA+DQMMBgsgAUHdhsAAQQMQPkUNBiABQeqGwABBAxA+RQ0FIAFB7YbAAEEDED5FDQUgAUHwhsAAQQMQPkUNBSABQfOGwABBAxA+RQ0FIAFB9obAAEEDED5FDQUMAgsgASgAAEHtytGLBkYNBCABKAAAQc3K0YsGRg0EDAELIAFB+YbAAEEHED5FDQMgAUGAh8AAQQcQPkUNAwsgASACQQEQewwBCyABIAJBARB7C0EAIQJBACEDDAULEJEBQQchBAJAQQdBARByIgNFDQAgA0EDakEAKACKh0A2AAAgA0EAKACHh0A2AAAMBAtBAUEHQZSGwAAQYAALEJEBQQYhBAJAQQZBARByIgNFDQAgA0EEakEALwCSh0A7AAAgA0EAKACOh0A2AAAMAwtBAUEGQZSGwAAQYAALEJEBQQchBAJAQQdBARByIgNFDQAgA0EDakEAKACXh0A2AAAgA0EAKACUh0A2AAAMAgtBAUEHQZSGwAAQYAALEJEBQQghBEEIQQEQciIDRQ0CIANC89Cls8bu0rL5ADcAAAsgASACQQEQeyAEIQILIAAgAjYCBCAAIAM2AgAPC0EBQQhBlIbAABBgAAvKAwEDfwJAAkAgAUGAAUkNAEEAIQJBAEHNBSABQdI9SRsiAyADQeYCaiIDIANBA3RB/NbAAGooAgAgAUsbIgMgA0GzAWoiAyADQQN0QfzWwABqKAIAIAFLGyIDIANB2gBqIgMgA0EDdEH81sAAaigCACABSxsiAyADQS1qIgMgA0EDdEH81sAAaigCACABSxsiAyADQRZqIgMgA0EDdEH81sAAaigCACABSxsiAyADQQtqIgMgA0EDdEH81sAAaigCACABSxsiAyADQQZqIgMgA0EDdEH81sAAaigCACABSxsiAyADQQNqIgMgA0EDdEH81sAAaigCACABSxsiAyADQQFqIgMgA0EDdEH81sAAaigCACABSxsiAyADQQFqIgMgA0EDdEH81sAAaigCACABSxsiA0EDdEH81sAAaigCACIEIAFHDQECQCADIAQgAUlqIgFBmQtLDQBB6QAgAUEDdEGA18AAaigCACIBIAFBgLADc0GAgLx/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/EBsiASAAJQEmASABCwsAIAAgASACEDsPCw0AIAAoAgAgASACEGELDQAgACgCACABIAIQbAsLACAAIAEgAhA4AAsLACAAIAEgAhA5AAsOAEHYwsAAQSsgABBFAAsLACAAKAIAIAEQLgsJACAAIAEQYg8LCgAgACABEIwBAAsNACAAQaivwAAgARAUCwwAIAAgASkCADcDAAsKACABIAAQggEACw0AIAFBwMLAAEEYEBILDQAgAEHcw8AAIAEQFAsKACACIAAgARASCwoAIAAgASUBEAQLCAAgACABEGULCAAgACABEAULCQAgAEEANgIACwcAIAAQLwALBgAQlAEACwYAEJQBAAsDAA8LBAAQbwsEABBwCwMAAAsL97ABAgBBgIDAAAvMsAEAAAAABAAAAAQAAAABAAAARXJyb3JDOlxVc2Vyc1wwMTM5NDI2OVwuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHdhc20tYmluZGdlbi0wLjIuMTA1XHNyY1xjb252ZXJ0XHNsaWNlcy5ycwBsaWJyYXJ5L2FsbG9jL3NyYy9zdHIucnMAQzpcVXNlcnNcMDEzOTQyNjlcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zlx3YXNtLWJpbmRnZW4tMC4yLjEwNVxzcmNcZXh0ZXJucmVmLnJzAGxpYnJhcnkvY29yZS9zcmMvdW5pY29kZS9wcmludGFibGUucnMAQzpcVXNlcnNcMDEzOTQyNjlcLnJ1c3R1cFx0b29sY2hhaW5zXHN0YWJsZS14ODZfNjQtcGMtd2luZG93cy1nbnVcbGliL3J1c3RsaWIvc3JjL3J1c3RcbGlicmFyeS9hbGxvYy9zcmMvc2xpY2UucnMAL3J1c3QvZGVwcy9oYXNoYnJvd24tMC4xNS40L3NyYy9yYXcvbW9kLnJzAGxpYnJhcnkvY29yZS9zcmMvc3RyL21vZC5ycwAvcnVzdGMvMjk0ODM4ODNlZWQ2OWQ1ZmI0ZGIwMTk2NGNkZjJhZjRkODZlOWNiMi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjL21vZC5ycwAvcnVzdC9kZXBzL2RsbWFsbG9jLTAuMi45L3NyYy9kbG1hbGxvYy5ycwBsaWJyYXJ5L3N0ZC9zcmMvYWxsb2MucnMAQzpcVXNlcnNcMDEzOTQyNjlcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3ZlxzZXJkZS13YXNtLWJpbmRnZW4tMC42LjVcc3JjXGxpYi5ycwBsaWJyYXJ5L2NvcmUvc3JjL3VuaWNvZGUvdW5pY29kZV9kYXRhLnJzADMBEAByAAAAwQEAAB0AAABLZXlWYWx1ZXR5cGVTdHJ2YWx1ZUFycnNoaWZ0U2hpZnTih6fijINhbHRBbHRvcHRpb25PcHRpb27ijKVzdXBlclN1cGVyd2luV2lu4oyYY21kQ21kY29tbWFuZENvbW1hbmRtZXRhS2V5YWx0S2V5Y3RybEtleeKMq2JhY2tzcGFjZeKHpeKHhnRhYuKGqeKGteKPjnJldHVybmVudGVy4oyFcGF1c2Xih6pjYXBzY2Fwcy1sb2Nr4o6LZXNjYXBlZXNjc3BhY2VwZ3VwcGFnZS11cHBnZG93bnBhZ2UtZG93buKHn2VuZOKHnmhvbWVpbnNpbnNlcnTijKZkZWxkZWxldGXihpBsZWZ0YXJyb3ctbGVmdOKGkXVwYXJyb3ctdXDihpJyaWdodGFycm93LXJpZ2h04oaTZG93bmFycm93LWRvd25mZmVxdWFscypzdGFyYXN0ZXJpc2ttdWx0aXBseStwbHVzLXN1YnRyYWN0fGZmcGx1c2ZmbWludXM7c2VtaWNvbG9uPWVxdWFscyxjb21tYWRhc2gucGVyaW9kZnVsbC1zdG9wL3NsYXNoZm9yd2FyZC1zbGFzaGB0aWNrYmFjay1xdW90ZVtvcGVuLWJyYWNrZXRcYmFjay1zbGFzaF1jbG9zZS1icmFja2V0J3F1b3RlYXBvc3Ryb3BoZWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSAhQCMkJV4mKCkAAACbAxAAAwAAAAgAAACeAxAACQAAAAgAAACnAxAAAwAAAAkAAACqAxAAAwAAAAkAAACtAxAAAwAAAAkAAACwAxAAAwAAAA0AAACzAxAAAwAAAA0AAAC2AxAAAwAAAA0AAAC5AxAABgAAAA0AAAC/AxAABQAAAA0AAADEAxAAAwAAAA0AAADHAxAABQAAABMAAADMAxAAAwAAABQAAADPAxAABAAAABQAAADTAxAACQAAABQAAADcAxAAAwAAABsAAADfAxAABgAAABsAAADlAxAAAwAAABsAAADoAxAABQAAACAAAAABAAAAAAAAACEAAADtAxAABAAAACEAAADxAxAABwAAACEAAAABAAAAAAAAACIAAAD4AxAABgAAACIAAAD+AxAACQAAACIAAAAHBBAAAwAAACMAAAAKBBAAAwAAACMAAAANBBAAAwAAACQAAAAQBBAABAAAACQAAAAUBBAAAwAAAC0AAAAXBBAABgAAAC0AAAAdBBAAAwAAAC4AAAAgBBAAAwAAAC4AAAAjBBAABgAAAC4AAAApBBAAAwAAACUAAAAsBBAABAAAACUAAAAwBBAACgAAACUAAAA6BBAAAwAAACYAAAA9BBAAAgAAACYAAAA/BBAACAAAACYAAABHBBAAAwAAACcAAABKBBAABQAAACcAAABPBBAACwAAACcAAABaBBAAAwAAACgAAABdBBAABAAAACgAAABhBBAACgAAACgAAABrBBAACAAAAD0AAABzBBAAAQAAAGoAAAB0BBAABAAAAGoAAAB4BBAACAAAAGoAAACABBAACAAAAGoAAACIBBAAAQAAAGsAAACJBBAABAAAAGsAAACNBBAAAQAAAG0AAACOBBAACAAAAG0AAACWBBAAAQAAAHwAAACXBBAABgAAAKsAAACdBBAABwAAAK0AAACkBBAAAQAAALoAAAClBBAACQAAALoAAACuBBAAAQAAALsAAACvBBAABgAAALsAAAC1BBAAAQAAALwAAAC2BBAABQAAALwAAAC7BBAABAAAAL0AAAC/BBAAAQAAAL4AAADABBAABgAAAL4AAADGBBAACQAAAL4AAADPBBAAAQAAAL8AAADQBBAABQAAAL8AAADVBBAADQAAAL8AAADiBBAAAQAAAMAAAADjBBAABAAAAMAAAADnBBAACgAAAMAAAADxBBAAAQAAANsAAADyBBAADAAAANsAAAD+BBAAAQAAANwAAAD/BBAACgAAANwAAAAJBRAAAQAAAN0AAAAKBRAADQAAAN0AAAAXBRAAAQAAAN4AAAAYBRAABQAAAN4AAAAdBRAACgAAAN4AAAAnBRAAAQAAAEEAAAAoBRAAAQAAAEIAAAApBRAAAQAAAEMAAAAqBRAAAQAAAEQAAAArBRAAAQAAAEUAAAAsBRAAAQAAAEYAAAAtBRAAAQAAAEcAAAAuBRAAAQAAAEgAAAAvBRAAAQAAAEkAAAAwBRAAAQAAAEoAAAAxBRAAAQAAAEsAAAAyBRAAAQAAAEwAAAAzBRAAAQAAAE0AAAA0BRAAAQAAAE4AAAA1BRAAAQAAAE8AAAA2BRAAAQAAAFAAAAA3BRAAAQAAAFEAAAA4BRAAAQAAAFIAAAA5BRAAAQAAAFMAAAA6BRAAAQAAAFQAAAA7BRAAAQAAAFUAAAA8BRAAAQAAAFYAAAA9BRAAAQAAAFcAAAA+BRAAAQAAAFgAAAA/BRAAAQAAAFkAAABABRAAAQAAAFoAAABBBRAAAQAAADAAAABCBRAAAQAAADEAAABDBRAAAQAAADIAAABEBRAAAQAAADMAAABFBRAAAQAAADQAAABGBRAAAQAAADUAAABHBRAAAQAAADYAAABIBRAAAQAAADcAAABJBRAAAQAAADgAAABKBRAAAQAAADkAAABLBRAAAQAAACAAAABMBRAAAQAAADEAAABNBRAAAQAAADIAAABOBRAAAQAAADMAAABPBRAAAQAAADQAAABQBRAAAQAAADUAAABRBRAAAQAAADYAAABSBRAAAQAAADcAAABzBBAAAQAAADgAAABTBRAAAQAAADkAAABUBRAAAQAAADAAAABCYWNrc3BhY2VUYWJFbnRlclBhdXNlcGF1c2UtYnJlYWtDYXBzTG9ja0VzY2FwZUVzY1NwYWNlYmFyUGFnZVVwUGFnZURvd25FbmRIb21lSW5zZXJ0RGVsZXRlRGVsQXJyb3dMZWZ0TGVmdEFycm93VXBVcEFycm93UmlnaHRSaWdodEFycm93RG93bkRvd25NdWx0aXBseUFkZFN1YnRyYWN0bnVtLTBudW0tMW51bS0ybnVtLTNudW0tNG51bS01bnVtLTZudW0tN251bS04bnVtLTlmMUYxZjJGMmYzRjNmNEY0ZjVGNWY2RjZmN0Y3ZjhGOGY5RjlmMTBGMTBmMTFGMTFmMTJGMTJmMTNGMTNmMTRGMTRmMTVGMTVmMTZGMTZmMTdGMTdmMThGMThmMTlGMTlmMjBGMjBmMjFGMjFmMjJGMjJmMjNGMjNmMjRGMjRmMjVGMjUAAACbAxAAAwAAAAAAAABwCxAACQAAAAAAAACeAxAACQAAAAAAAABwCxAACQAAAAAAAACnAxAAAwAAAAAAAAB5CxAAAwAAAAAAAACqAxAAAwAAAAAAAAB5CxAAAwAAAAAAAACtAxAAAwAAAAAAAAB5CxAAAwAAAAAAAACwAxAAAwAAAAAAAAB8CxAABQAAAAAAAACzAxAAAwAAAAAAAAB8CxAABQAAAAAAAAC2AxAAAwAAAAAAAAB8CxAABQAAAAAAAAC5AxAABgAAAAAAAAB8CxAABQAAAAAAAAC/AxAABQAAAAAAAAB8CxAABQAAAAAAAADEAxAAAwAAAAAAAAB8CxAABQAAAAAAAADHAxAABQAAAAAAAACBCxAABQAAAAAAAACGCxAACwAAAAAAAACBCxAABQAAAAAAAADMAxAAAwAAAAAAAACRCxAACAAAAAAAAADPAxAABAAAAAAAAACRCxAACAAAAAAAAADTAxAACQAAAAAAAACRCxAACAAAAAAAAADcAxAAAwAAAJkLEAAGAAAAnwsQAAMAAADfAxAABgAAAJkLEAAGAAAAnwsQAAMAAADlAxAAAwAAAJkLEAAGAAAAnwsQAAMAAADoAxAABQAAAEsFEAABAAAAogsQAAgAAAABAAAAAAAAAAAAAACqCxAABgAAAAAAAADtAxAABAAAAAAAAACqCxAABgAAAAAAAADxAxAABwAAAAAAAACqCxAABgAAAAAAAAABAAAAAAAAAAAAAACwCxAACAAAAAAAAAD4AxAABgAAAAAAAACwCxAACAAAAAAAAAD+AxAACQAAAAAAAACwCxAACAAAAAAAAAAHBBAAAwAAAAAAAAC4CxAAAwAAAAAAAAAKBBAAAwAAAAAAAAC4CxAAAwAAAAAAAAANBBAAAwAAAAAAAAC7CxAABAAAAAAAAAAQBBAABAAAAAAAAAC7CxAABAAAAAAAAAAUBBAAAwAAAAAAAAC/CxAABgAAAAAAAAAXBBAABgAAAAAAAAC/CxAABgAAAAAAAAAdBBAAAwAAAMULEAAGAAAAywsQAAMAAAAgBBAAAwAAAMULEAAGAAAAywsQAAMAAAAjBBAABgAAAMULEAAGAAAAywsQAAMAAAApBBAAAwAAAM4LEAAJAAAA1wsQAAQAAAAsBBAABAAAAM4LEAAJAAAA1wsQAAQAAAAwBBAACgAAAM4LEAAJAAAA1wsQAAQAAAA6BBAAAwAAANsLEAAHAAAA4gsQAAIAAAA9BBAAAgAAANsLEAAHAAAA4gsQAAIAAAA/BBAACAAAANsLEAAHAAAA4gsQAAIAAABHBBAAAwAAAOQLEAAKAAAA7gsQAAUAAABKBBAABQAAAOQLEAAKAAAA7gsQAAUAAABPBBAACwAAAOQLEAAKAAAA7gsQAAUAAABaBBAAAwAAAPMLEAAJAAAA/AsQAAQAAABdBBAABAAAAPMLEAAJAAAA/AsQAAQAAABhBBAACgAAAPMLEAAJAAAA/AsQAAQAAABzBBAAAQAAAHMEEAABAAAAAAwQAAgAAAB0BBAABAAAAHMEEAABAAAAAAwQAAgAAAB4BBAACAAAAHMEEAABAAAAAAwQAAgAAACABBAACAAAAHMEEAABAAAAAAwQAAgAAACIBBAAAQAAAIgEEAABAAAACAwQAAMAAACJBBAABAAAAIgEEAABAAAACAwQAAMAAACNBBAAAQAAAI0EEAABAAAACwwQAAgAAACOBBAACAAAAI0EEAABAAAACwwQAAgAAAC7BBAABAAAAI0EEAABAAAACwwQAAgAAAClBBAACQAAAAAAAACkBBAAAQAAAAAAAACvBBAABgAAAAAAAACuBBAAAQAAAAAAAAC2BBAABQAAAAAAAAC1BBAAAQAAAAAAAADABBAABgAAAAAAAAC/BBAAAQAAAAAAAADGBBAACQAAAAAAAAC/BBAAAQAAAAAAAADQBBAABQAAAAAAAADPBBAAAQAAAAAAAADVBBAADQAAAAAAAADPBBAAAQAAAAAAAADjBBAABAAAAAAAAADiBBAAAQAAAAAAAADnBBAACgAAAAAAAADiBBAAAQAAAAAAAADyBBAADAAAAAAAAADxBBAAAQAAAAAAAAD/BBAACgAAAAAAAAD+BBAAAQAAAAAAAAAKBRAADQAAAAAAAAAJBRAAAQAAAAAAAAAYBRAABQAAAAAAAAAXBRAAAQAAAAAAAAAdBRAACgAAAAAAAAAXBRAAAQAAAAAAAAATDBAABQAAAAAAAABBBRAAAQAAAAAAAAAYDBAABQAAAAAAAABCBRAAAQAAAAAAAAAdDBAABQAAAAAAAABDBRAAAQAAAAAAAAAiDBAABQAAAAAAAABEBRAAAQAAAAAAAAAnDBAABQAAAAAAAABFBRAAAQAAAAAAAAAsDBAABQAAAAAAAABGBRAAAQAAAAAAAAAxDBAABQAAAAAAAABHBRAAAQAAAAAAAAA2DBAABQAAAAAAAABIBRAAAQAAAAAAAAA7DBAABQAAAAAAAABJBRAAAQAAAAAAAABADBAABQAAAAAAAABKBRAAAQAAAAAAAABFDBAAAgAAAAAAAABHDBAAAgAAAAAAAABJDBAAAgAAAAAAAABLDBAAAgAAAAAAAABNDBAAAgAAAAAAAABPDBAAAgAAAAAAAABRDBAAAgAAAAAAAABTDBAAAgAAAAAAAABVDBAAAgAAAAAAAABXDBAAAgAAAAAAAABZDBAAAgAAAAAAAABbDBAAAgAAAAAAAABdDBAAAgAAAAAAAABfDBAAAgAAAAAAAABhDBAAAgAAAAAAAABjDBAAAgAAAAAAAABlDBAAAgAAAAAAAABnDBAAAgAAAAAAAABpDBAAAwAAAAAAAABsDBAAAwAAAAAAAABvDBAAAwAAAAAAAAByDBAAAwAAAAAAAAB1DBAAAwAAAAAAAAB4DBAAAwAAAAAAAAB7DBAAAwAAAAAAAAB+DBAAAwAAAAAAAACBDBAAAwAAAAAAAACEDBAAAwAAAAAAAACHDBAAAwAAAAAAAACKDBAAAwAAAAAAAACNDBAAAwAAAAAAAACQDBAAAwAAAAAAAACTDBAAAwAAAAAAAACWDBAAAwAAAAAAAACZDBAAAwAAAAAAAACcDBAAAwAAAAAAAACfDBAAAwAAAAAAAACiDBAAAwAAAAAAAAClDBAAAwAAAAAAAACoDBAAAwAAAAAAAACrDBAAAwAAAAAAAACuDBAAAwAAAAAAAACxDBAAAwAAAAAAAAC0DBAAAwAAAAAAAAC3DBAAAwAAAAAAAAC6DBAAAwAAAAAAAAC9DBAAAwAAAAAAAADADBAAAwAAAAAAAADDDBAAAwAAAAAAAADGDBAAAwAAAAAAAAACAAAABAAAAAQAAAADAAAAY2FsbGVkIGBSZXN1bHQ6OnVud3JhcCgpYCBvbiBhbiBgRXJyYCB2YWx1ZQDgAhAACwAAAD0BAAA0AAAA///////////wFhAAAAAAAAAAAAAAAAAAgAIQAGsAAAA1AAAADgAAABUAEAByAAAAIwEAAA4AAABjbG9zdXJlIGludm9rZWQgcmVjdXJzaXZlbHkgb3IgYWZ0ZXIgYmVpbmcgZHJvcHBlZAAAoAAQAG0AAAB/AAAAEQAAAKAAEABtAAAAjAAAABEAAABKc1ZhbHVlKCkAAAB8FxAACAAAAIQXEAABAAAA7AEQAFEAAAAuAgAAEQAAABQAAAAMAAAABAAAABUAAAAWAAAAFwAAAGFzc2VydGlvbiBmYWlsZWQ6IHBzaXplID49IHNpemUgKyBtaW5fb3ZlcmhlYWQAAD0CEAAqAAAAsAQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAAA9AhAAKgAAALYEAAANAAAAbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAAAQBgQABUAAABVGBAADQAAAGcCEAAZAAAAZAEAAAkAAAAUAAAADAAAAAQAAAAYAAAAAAAAAAgAAAAEAAAAGQAAAAAAAAAIAAAABAAAABoAAAAbAAAAHAAAAB0AAAAeAAAAEAAAAAQAAAAfAAAAIAAAACEAAAAiAAAASGFzaCB0YWJsZSBjYXBhY2l0eSBvdmVyZmxvd9wYEAAcAAAApQEQACsAAAAlAAAAKAAAAGNhcGFjaXR5IG92ZXJmbG93AAAAEBkQABEAAAAcAhAAIQAAAC4CAAARAAAAhwAQABkAAACfAQAAPwAAAIcAEAAZAAAAoAEAADMAAACHABAAGQAAAIMCAAATAAAAJwEGAQsBIwEBAUcBBAEBAQQBAgIAwAQCBAEJAgEB+wfPAQUBMS0BAQECAQIBASwBCwYKCwEBIwEKFRABZQgBCgEEIQEBAR4bWws6CwQBAgEYGCsDLAEHAgUJKTo3AQEBBAgEAQMHCgINAQ8BOgEEBAgBFAIaAQICOQEEAgQCAgMDAR4CAwELAjkBBAUBAgQBFAIWBgEBOgECAQEECAEHAgsCHgE9AQwBMgEDATcBAQMFAwEEBwILAh0BOgECAQYBBQIUAhwCOQIEBAgBFAIdAUgBBwMBAVoBAgcLCWIBAgkJAQEHSQIbAQEBAQE3DgEFAQIFCwEkCQFmBAEGAQICAhkCBAMQBA0BAgIGAQ8BXgEAAwADHQIeAh4CQAIBBwgBAgsDAQUBLQUzAUECIgF2AwQCCQEGA9sCAgE6AQEHAQEBAQIIBgoCAScBCB8xBDABAQUBAQUBKAkMAiAEAgIBAzgBAQIDAQEDOggCAkAGUgMBDQEHBAEGAQMCMj8NASJlAAEBAwsDDQMNAw0CDAUIAgoBAgECBTEFAQoBAQ0BEA0zIQACcQN9AQ8BYCAvAQABJAQDBQUBXQZdAwABAAYAAWIEAQoBARwEUAIOIk4BFwNnAwMCCAEDAQQBGQIFAZcCGhINASYIGQsuAzABAgQCAhEBFQJCBgICAgIMAQgBIwELATMBAQMCAgUCAQEbAQ4CBQIBAWQFCQN5AQIBBAEAAZMRABADAQwQIgECAakBBwEGAQsBIwEBAS8BLQJDARUDAAHiAZUFAAYBKgEJAAMBAgUEKAMEAaUCAAQmARoFAQEAAk8ERgsxBHsBNg8pAQICCgMxBAICAgEEAQoBMgMkBQEIPgEMAjQJCgQCAV8DAgEBAgYBAgGdAQMIFQI5AgMBJQcDBUYGDQEBAQEBDgJVCAIDAQEXAVQGAQEEAgEC7gQGAgECGwJVCAIBAQJqAQEBAgYBAWUBAQECBAEFAAkBAgACAQEEAZAEAgIEASAKKAYCBAgBCQYCAy4NAQIABwEGAQFSFgIHAQIBAnoGAwEBAgEHAQFIAgMBAQEAAgsCNAUFAQEBFwEAEQYPAAwDAwAFOwcJBAADKAIAAT8RQAIBAgAEAQcBAgACAQQALgIXAAMJEAIHHgSUAwA3BDIIAQ4BFgUBDwAHARECBwECAQUFPiEBoA4AAT0EAAX+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}}new Z("global",document,"keydown");new Z("global",document,"keyup");
|
|
1014
|
+
|
|
1015
|
+
// 样式注入
|
|
1016
|
+
var 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";
|
|
1017
|
+
|
|
1018
|
+
// 注入样式
|
|
1019
|
+
if (typeof document !== 'undefined') {
|
|
1020
|
+
var styleEl = document.createElement('style');
|
|
1021
|
+
styleEl.textContent = STYLES;
|
|
1022
|
+
document.head.appendChild(styleEl);
|
|
1023
|
+
}
|
|
1024
|
+
var ArrowEditor2 = /*#__PURE__*/function () {
|
|
1025
|
+
function ArrowEditor2(container) {
|
|
1026
|
+
_classCallCheck(this, ArrowEditor2);
|
|
1027
|
+
this.container = typeof container === 'string' ? document.querySelector(container) : container;
|
|
1028
|
+
this.svg = null;
|
|
1029
|
+
this.arrows = [];
|
|
1030
|
+
this.drawing = false;
|
|
1031
|
+
this.current = null;
|
|
1032
|
+
this.selected = null;
|
|
1033
|
+
this.mode = null;
|
|
1034
|
+
this.lastClickTime = 0;
|
|
1035
|
+
this.lastClickPos = null;
|
|
1036
|
+
this.isCurveMode = false;
|
|
1037
|
+
this._shouldBlockClick = false;
|
|
1038
|
+
this._defaultColor = '#2b8cff';
|
|
1039
|
+
this._createSVG();
|
|
1040
|
+
this._initKeybindings();
|
|
1041
|
+
this._initEvents();
|
|
1042
|
+
}
|
|
1043
|
+
return _createClass(ArrowEditor2, [{
|
|
1044
|
+
key: "_createSVG",
|
|
1045
|
+
value: function _createSVG() {
|
|
1046
|
+
// 创建 SVG 元素
|
|
1047
|
+
this.svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
1048
|
+
this.svg.setAttribute('class', 'ae-d2-svg');
|
|
1049
|
+
this.container.appendChild(this.svg);
|
|
1050
|
+
|
|
1051
|
+
// 创建 defs 和 marker
|
|
1052
|
+
var defs = document.createElementNS('http://www.w3.org/2000/svg', 'defs');
|
|
1053
|
+
this.svg.appendChild(defs);
|
|
1054
|
+
var marker = document.createElementNS('http://www.w3.org/2000/svg', 'marker');
|
|
1055
|
+
marker.setAttribute('id', 'ae-arrowhead');
|
|
1056
|
+
marker.setAttribute('markerWidth', '10');
|
|
1057
|
+
marker.setAttribute('markerHeight', '10');
|
|
1058
|
+
marker.setAttribute('refX', '9');
|
|
1059
|
+
marker.setAttribute('refY', '5');
|
|
1060
|
+
marker.setAttribute('orient', 'auto');
|
|
1061
|
+
var polygon = document.createElementNS('http://www.w3.org/2000/svg', 'polygon');
|
|
1062
|
+
polygon.setAttribute('points', '0,0 10,5 0,10 2,5');
|
|
1063
|
+
polygon.setAttribute('fill', this._defaultColor);
|
|
1064
|
+
marker.appendChild(polygon);
|
|
1065
|
+
defs.appendChild(marker);
|
|
1066
|
+
}
|
|
1067
|
+
}, {
|
|
1068
|
+
key: "_initKeybindings",
|
|
1069
|
+
value: function _initKeybindings() {
|
|
1070
|
+
var _this = this;
|
|
1071
|
+
// 创建快捷键实例,绑定到 container 上
|
|
1072
|
+
this._kb = new Z('arrow-editor');
|
|
1073
|
+
|
|
1074
|
+
// Enter: 完成绘制
|
|
1075
|
+
this._kb.on('enter', function () {
|
|
1076
|
+
_this._handleEnter();
|
|
1077
|
+
});
|
|
1078
|
+
|
|
1079
|
+
// Esc: 结束绘制、取消选中
|
|
1080
|
+
this._kb.on('esc', function () {
|
|
1081
|
+
_this._handleEsc();
|
|
1082
|
+
});
|
|
1083
|
+
}
|
|
1084
|
+
}, {
|
|
1085
|
+
key: "_initEvents",
|
|
1086
|
+
value: function _initEvents() {
|
|
1087
|
+
var _this2 = this;
|
|
1088
|
+
// 曲线模式快捷键(Ctrl/Shift)
|
|
1089
|
+
document.addEventListener('keydown', function (e) {
|
|
1090
|
+
if (e.key === 'Control' || e.key === 'Shift') {
|
|
1091
|
+
_this2.isCurveMode = true;
|
|
1092
|
+
}
|
|
1093
|
+
});
|
|
1094
|
+
document.addEventListener('keyup', function (e) {
|
|
1095
|
+
if (e.key === 'Control' || e.key === 'Shift') {
|
|
1096
|
+
_this2.isCurveMode = false;
|
|
1097
|
+
}
|
|
1098
|
+
});
|
|
1099
|
+
this.container.onclick = function (e) {
|
|
1100
|
+
var p = _this2._mousePos(e);
|
|
1101
|
+
_this2._handleClick(p);
|
|
1102
|
+
};
|
|
1103
|
+
this.container.onmousemove = function (e) {
|
|
1104
|
+
var p = _this2._mousePos(e);
|
|
1105
|
+
_this2._handleMouseMove(e, p);
|
|
1106
|
+
};
|
|
1107
|
+
this.container.onmousedown = function () {
|
|
1108
|
+
if (_this2.selected) {
|
|
1109
|
+
_this2.mode = 'move';
|
|
1110
|
+
}
|
|
1111
|
+
};
|
|
1112
|
+
this.container.onmouseup = function () {
|
|
1113
|
+
_this2.mode = null;
|
|
1114
|
+
};
|
|
1115
|
+
}
|
|
1116
|
+
}, {
|
|
1117
|
+
key: "_mousePos",
|
|
1118
|
+
value: function _mousePos(e) {
|
|
1119
|
+
var r = this.container.getBoundingClientRect();
|
|
1120
|
+
return {
|
|
1121
|
+
x: e.clientX - r.left,
|
|
1122
|
+
y: e.clientY - r.top
|
|
1123
|
+
};
|
|
1124
|
+
}
|
|
1125
|
+
}, {
|
|
1126
|
+
key: "_generatePath",
|
|
1127
|
+
value: function _generatePath(pts, isCurve) {
|
|
1128
|
+
if (pts.length < 2) return '';
|
|
1129
|
+
if (!isCurve) {
|
|
1130
|
+
var _d = "M ".concat(pts[0].x, " ").concat(pts[0].y);
|
|
1131
|
+
for (var i = 1; i < pts.length; i++) {
|
|
1132
|
+
_d += " L ".concat(pts[i].x, " ").concat(pts[i].y);
|
|
1133
|
+
}
|
|
1134
|
+
return _d;
|
|
1135
|
+
}
|
|
1136
|
+
var d = "M ".concat(pts[0].x, " ").concat(pts[0].y);
|
|
1137
|
+
for (var _i = 1; _i < pts.length - 1; _i++) {
|
|
1138
|
+
var prev = pts[_i - 1];
|
|
1139
|
+
var curr = pts[_i];
|
|
1140
|
+
var next = pts[_i + 1];
|
|
1141
|
+
var midPrevX = (prev.x + curr.x) / 2;
|
|
1142
|
+
var midPrevY = (prev.y + curr.y) / 2;
|
|
1143
|
+
var midNextX = (curr.x + next.x) / 2;
|
|
1144
|
+
var midNextY = (curr.y + next.y) / 2;
|
|
1145
|
+
d += " L ".concat(midPrevX, " ").concat(midPrevY);
|
|
1146
|
+
d += " Q ".concat(curr.x, " ").concat(curr.y, " ").concat(midNextX, " ").concat(midNextY);
|
|
1147
|
+
}
|
|
1148
|
+
var last = pts[pts.length - 1];
|
|
1149
|
+
d += " L ".concat(last.x, " ").concat(last.y);
|
|
1150
|
+
return d;
|
|
1151
|
+
}
|
|
1152
|
+
}, {
|
|
1153
|
+
key: "_generateArrowHead",
|
|
1154
|
+
value: function _generateArrowHead(pts) {
|
|
1155
|
+
if (pts.length < 2) return '';
|
|
1156
|
+
var last = pts[pts.length - 1];
|
|
1157
|
+
var prev = pts[pts.length - 2];
|
|
1158
|
+
if (pts.length >= 3) {
|
|
1159
|
+
var dist = Math.hypot(last.x - prev.x, last.y - prev.y);
|
|
1160
|
+
if (dist < 5) {
|
|
1161
|
+
prev = pts[pts.length - 3];
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
var dx = last.x - prev.x;
|
|
1165
|
+
var dy = last.y - prev.y;
|
|
1166
|
+
var len = Math.hypot(dx, dy);
|
|
1167
|
+
if (len < 1) return '';
|
|
1168
|
+
var ux = dx / len;
|
|
1169
|
+
var uy = dy / len;
|
|
1170
|
+
var notchX = last.x;
|
|
1171
|
+
var notchY = last.y;
|
|
1172
|
+
var baseLen = 40;
|
|
1173
|
+
var baseWidth = 20;
|
|
1174
|
+
var notchLen = 20;
|
|
1175
|
+
var tipX = last.x + ux * notchLen;
|
|
1176
|
+
var tipY = last.y + uy * notchLen;
|
|
1177
|
+
var baseX = last.x - ux * (baseLen - notchLen);
|
|
1178
|
+
var baseY = last.y - uy * (baseLen - notchLen);
|
|
1179
|
+
var px = -uy;
|
|
1180
|
+
var py = ux;
|
|
1181
|
+
var leftX = baseX + px * baseWidth;
|
|
1182
|
+
var leftY = baseY + py * baseWidth;
|
|
1183
|
+
var rightX = baseX - px * baseWidth;
|
|
1184
|
+
var rightY = baseY - py * baseWidth;
|
|
1185
|
+
return "M ".concat(tipX, " ").concat(tipY, " L ").concat(leftX, " ").concat(leftY, " L ").concat(notchX, " ").concat(notchY, " L ").concat(rightX, " ").concat(rightY, " Z");
|
|
1186
|
+
}
|
|
1187
|
+
}, {
|
|
1188
|
+
key: "_createArrowGroup",
|
|
1189
|
+
value: function _createArrowGroup(arrow, index) {
|
|
1190
|
+
var g = document.createElementNS('http://www.w3.org/2000/svg', 'g');
|
|
1191
|
+
g.setAttribute('data-index', index);
|
|
1192
|
+
var color = arrow.color || this._defaultColor;
|
|
1193
|
+
var path = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
1194
|
+
path.setAttribute('class', 'ae-arrow-path');
|
|
1195
|
+
path.setAttribute('stroke', color);
|
|
1196
|
+
path.setAttribute('d', this._generatePath(arrow.points, arrow.isCurve || false));
|
|
1197
|
+
g.appendChild(path);
|
|
1198
|
+
var arrowHead = document.createElementNS('http://www.w3.org/2000/svg', 'path');
|
|
1199
|
+
arrowHead.setAttribute('fill', color);
|
|
1200
|
+
arrowHead.setAttribute('d', this._generateArrowHead(arrow.points));
|
|
1201
|
+
g.appendChild(arrowHead);
|
|
1202
|
+
if (arrow === this.selected) {
|
|
1203
|
+
var p = arrow.points[0];
|
|
1204
|
+
var rect = document.createElementNS('http://www.w3.org/2000/svg', 'rect');
|
|
1205
|
+
rect.setAttribute('class', 'ae-transform-box');
|
|
1206
|
+
rect.setAttribute('x', p.x - 40);
|
|
1207
|
+
rect.setAttribute('y', p.y - 40);
|
|
1208
|
+
rect.setAttribute('width', 80);
|
|
1209
|
+
rect.setAttribute('height', 80);
|
|
1210
|
+
g.appendChild(rect);
|
|
1211
|
+
}
|
|
1212
|
+
return g;
|
|
1213
|
+
}
|
|
1214
|
+
}, {
|
|
1215
|
+
key: "render",
|
|
1216
|
+
value: function render() {
|
|
1217
|
+
var _this3 = this;
|
|
1218
|
+
this.svg.querySelectorAll('g').forEach(function (g) {
|
|
1219
|
+
return g.remove();
|
|
1220
|
+
});
|
|
1221
|
+
this.arrows.forEach(function (arrow, index) {
|
|
1222
|
+
var g = _this3._createArrowGroup(arrow, index);
|
|
1223
|
+
_this3.svg.appendChild(g);
|
|
1224
|
+
});
|
|
1225
|
+
if (this.current) {
|
|
1226
|
+
var g = this._createArrowGroup(this.current, this.arrows.length);
|
|
1227
|
+
this.svg.appendChild(g);
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
}, {
|
|
1231
|
+
key: "_isDoubleClick",
|
|
1232
|
+
value: function _isDoubleClick(p) {
|
|
1233
|
+
var now = Date.now();
|
|
1234
|
+
var dt = now - this.lastClickTime;
|
|
1235
|
+
this.lastClickTime = now;
|
|
1236
|
+
if (dt < 300 && this.lastClickPos && Math.hypot(p.x - this.lastClickPos.x, p.y - this.lastClickPos.y) < 10) {
|
|
1237
|
+
this.lastClickPos = null;
|
|
1238
|
+
return true;
|
|
1239
|
+
}
|
|
1240
|
+
this.lastClickPos = p;
|
|
1241
|
+
return false;
|
|
1242
|
+
}
|
|
1243
|
+
}, {
|
|
1244
|
+
key: "_handleClick",
|
|
1245
|
+
value: function _handleClick(p) {
|
|
1246
|
+
// 如果刚才有拖拽,阻止点击事件
|
|
1247
|
+
if (this._shouldBlockClick) {
|
|
1248
|
+
this._shouldBlockClick = false;
|
|
1249
|
+
return;
|
|
1250
|
+
}
|
|
1251
|
+
if (this._isDoubleClick(p)) {
|
|
1252
|
+
if (this.drawing && this.current && this.current.points.length >= 2) {
|
|
1253
|
+
this.drawing = false;
|
|
1254
|
+
this.current.isCurve = this.isCurveMode;
|
|
1255
|
+
this.arrows.push(this.current);
|
|
1256
|
+
this.current = null;
|
|
1257
|
+
this.render();
|
|
1258
|
+
}
|
|
1259
|
+
return;
|
|
1260
|
+
}
|
|
1261
|
+
if (!this.drawing) {
|
|
1262
|
+
var _iterator = _createForOfIteratorHelper(this.arrows),
|
|
1263
|
+
_step;
|
|
1264
|
+
try {
|
|
1265
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1266
|
+
var a = _step.value;
|
|
1267
|
+
if (this._hitArrow(a, p)) {
|
|
1268
|
+
this.selected = a;
|
|
1269
|
+
this.render();
|
|
1270
|
+
return;
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
|
|
1274
|
+
// 点击空白处,取消选中
|
|
1275
|
+
} catch (err) {
|
|
1276
|
+
_iterator.e(err);
|
|
1277
|
+
} finally {
|
|
1278
|
+
_iterator.f();
|
|
1279
|
+
}
|
|
1280
|
+
this.selected = null;
|
|
1281
|
+
this.drawing = true;
|
|
1282
|
+
this.current = {
|
|
1283
|
+
points: [p, p],
|
|
1284
|
+
isCurve: false,
|
|
1285
|
+
color: this._defaultColor
|
|
1286
|
+
};
|
|
1287
|
+
} else {
|
|
1288
|
+
this.current.points.push(p);
|
|
1289
|
+
}
|
|
1290
|
+
this.render();
|
|
1291
|
+
}
|
|
1292
|
+
}, {
|
|
1293
|
+
key: "_handleEnter",
|
|
1294
|
+
value: function _handleEnter() {
|
|
1295
|
+
// 正在绘制时,按 Enter 完成绘制
|
|
1296
|
+
if (this.drawing && this.current && this.current.points.length >= 2) {
|
|
1297
|
+
this.drawing = false;
|
|
1298
|
+
this.current.isCurve = this.isCurveMode;
|
|
1299
|
+
this.arrows.push(this.current);
|
|
1300
|
+
this.current = null;
|
|
1301
|
+
this.render();
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
}, {
|
|
1305
|
+
key: "_handleEsc",
|
|
1306
|
+
value: function _handleEsc() {
|
|
1307
|
+
// 按 Esc: 结束绘制、取消选中
|
|
1308
|
+
if (this.drawing) {
|
|
1309
|
+
this.drawing = false;
|
|
1310
|
+
this.current = null;
|
|
1311
|
+
}
|
|
1312
|
+
if (this.selected) {
|
|
1313
|
+
this.selected = null;
|
|
1314
|
+
}
|
|
1315
|
+
this._hideToolbar();
|
|
1316
|
+
this.render();
|
|
1317
|
+
}
|
|
1318
|
+
|
|
1319
|
+
// 删除选中的箭头
|
|
1320
|
+
}, {
|
|
1321
|
+
key: "deleteSelected",
|
|
1322
|
+
value:
|
|
1323
|
+
// 删除选中的箭头
|
|
1324
|
+
function deleteSelected() {
|
|
1325
|
+
var _this4 = this;
|
|
1326
|
+
if (this.selected) {
|
|
1327
|
+
this.arrows = this.arrows.filter(function (a) {
|
|
1328
|
+
return a !== _this4.selected;
|
|
1329
|
+
});
|
|
1330
|
+
this.selected = null;
|
|
1331
|
+
this.render();
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
}, {
|
|
1335
|
+
key: "_handleMouseMove",
|
|
1336
|
+
value: function _handleMouseMove(e, p) {
|
|
1337
|
+
if (this.drawing) {
|
|
1338
|
+
this.current.points[this.current.points.length - 1] = p;
|
|
1339
|
+
this.render();
|
|
1340
|
+
}
|
|
1341
|
+
if (this.selected && this.mode === 'move') {
|
|
1342
|
+
var dx = e.movementX;
|
|
1343
|
+
var dy = e.movementY;
|
|
1344
|
+
|
|
1345
|
+
// 如果有移动,标记需要阻止点击
|
|
1346
|
+
if (dx !== 0 || dy !== 0) {
|
|
1347
|
+
this._shouldBlockClick = true;
|
|
1348
|
+
}
|
|
1349
|
+
this.selected.points.forEach(function (pt) {
|
|
1350
|
+
pt.x += dx;
|
|
1351
|
+
pt.y += dy;
|
|
1352
|
+
});
|
|
1353
|
+
this.render();
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1356
|
+
}, {
|
|
1357
|
+
key: "_hitArrow",
|
|
1358
|
+
value: function _hitArrow(a, p) {
|
|
1359
|
+
for (var i = 0; i < a.points.length - 1; i++) {
|
|
1360
|
+
if (this._dist(p, a.points[i], a.points[i + 1]) < 15) return true;
|
|
1361
|
+
}
|
|
1362
|
+
return false;
|
|
1363
|
+
}
|
|
1364
|
+
}, {
|
|
1365
|
+
key: "_dist",
|
|
1366
|
+
value: function _dist(p, a, b) {
|
|
1367
|
+
var dx = b.x - a.x;
|
|
1368
|
+
var dy = b.y - a.y;
|
|
1369
|
+
var t = ((p.x - a.x) * dx + (p.y - a.y) * dy) / (dx * dx + dy * dy);
|
|
1370
|
+
var tt = Math.max(0, Math.min(1, t));
|
|
1371
|
+
var px = a.x + tt * dx;
|
|
1372
|
+
var py = a.y + tt * dy;
|
|
1373
|
+
return Math.hypot(p.x - px, p.y - py);
|
|
1374
|
+
}
|
|
1375
|
+
|
|
1376
|
+
// 获取所有箭头数据
|
|
1377
|
+
}, {
|
|
1378
|
+
key: "getData",
|
|
1379
|
+
value: function getData() {
|
|
1380
|
+
return this.arrows.map(function (arrow) {
|
|
1381
|
+
return {
|
|
1382
|
+
points: arrow.points,
|
|
1383
|
+
isCurve: arrow.isCurve
|
|
1384
|
+
};
|
|
1385
|
+
});
|
|
1386
|
+
}
|
|
1387
|
+
|
|
1388
|
+
// 设置箭头数据
|
|
1389
|
+
}, {
|
|
1390
|
+
key: "setData",
|
|
1391
|
+
value: function setData(data) {
|
|
1392
|
+
this.arrows = data.map(function (item) {
|
|
1393
|
+
return {
|
|
1394
|
+
points: item.points,
|
|
1395
|
+
isCurve: item.isCurve || false
|
|
1396
|
+
};
|
|
1397
|
+
});
|
|
1398
|
+
this.render();
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
// 清空所有箭头
|
|
1402
|
+
}, {
|
|
1403
|
+
key: "clear",
|
|
1404
|
+
value: function clear() {
|
|
1405
|
+
this.arrows = [];
|
|
1406
|
+
this.drawing = false;
|
|
1407
|
+
this.current = null;
|
|
1408
|
+
this.selected = null;
|
|
1409
|
+
this._hideToolbar();
|
|
1410
|
+
this.render();
|
|
1411
|
+
}
|
|
1412
|
+
}]);
|
|
1413
|
+
}();
|
|
1414
|
+
|
|
1415
|
+
export { ArrowEditor2 };
|
|
1416
|
+
//# sourceMappingURL=bundle.esm.js.map
|