@spiffcommerce/core 22.3.0 → 22.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
- import { createHttpLink as NA, InMemoryCache as vA, ApolloClient as RA, from as HA, gql as f } from "@apollo/client/core";
2
- import { fetch as ot, getAttributesFromArrayBuffer as Tt, AssetType as _e, StepType as F, getFrameData as rt, frameDataCache as UA, modifySVGColors as kA, svgToDataUrl as GA, GroupCommand as k, UpdateFramePattern as Ot, UpdateFrameThresholdSettingsCommand as bA, calculateOffsets as ct, LayoutElementType as G, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Oe, svgObjectURL as ve, fetchAsString as $, DeleteElementCommand as te, generateDefaultRectangleFrameSvg as ft, GetSVGDimensions as JA, patternImageDataCache as Ft, fetchAsArrayBuffer as TA, findElement as Re, modifySVGWithElementProperties as OA, IllustrationColorCommand as et, IllustrationCacheCommand as LA, getFontMetrics as zA, getPatternImageData as tt, FontAlignmentCommand as KA, FontColorCommand as jA, FontImageFillCommand as Ve, applyTextTransformations as At, determineCorrectFontSizeAndLines as xe, FontSourceCommand as yt, loadFont as gt, TextChangeCommand as VA, FontSizeCommand as WA, createElementNS as XA, createElement as Ie, _loadFontExternalDataURL as lt, UpdateWorkflowStateCommand as Mt, CommandContext as qA, createCanvas as He, getSvgElement as Lt, LayoutRenderingPurpose as zt, renderPapyrusComponentAsString as Kt, loadImage as jt, getDomParser as Vt, toBase64 as St, getVariant as ZA, generateFrameSVG as $A, getDefaultVariant as Le, domParser as Wt, sanitizeSvgTree as Xt, traverse as _A, xmlSerializer as qt, CreateLayoutCommand as ea, AspectType as oe, rehydrateSerializedLayout as ae } from "@spiffcommerce/papyrus";
3
- import { AspectType as ys, AssetType as Ms, BringForwardCommand as Ss, BringToBackCommand as Ys, BringToFrontCommand as Ps, CanvasCommand as xs, CommandContext as Ns, CreateElementCommand as vs, CreateLayoutCommand as Rs, DeleteElementCommand as Hs, FontAlignmentCommand as Us, FontColorCommand as ks, FontSizeCommand as Gs, FontSourceCommand as bs, GroupCommand as Js, LayoutElementFactory as Ts, LayoutElementType as Os, MoveCommand as Ls, ResizeCommand as zs, RotateCommand as Ks, SendBackwardsCommand as js, StepAspectType as Vs, StepType as Ws, TextChangeCommand as Xs, UnitOfMeasurement as qs, UpdateImageSourceCommand as Zs, dataUrlFromExternalUrl as $s, determineCorrectFontSizeAndLines as _s, findElement as eo, frameDataCache as to, generate as Ao, generateSVGWithUnknownColors as ao, getAttributesFromArrayBuffer as no, getAxisAlignedBoundingBox as io, getFrameData as so, getSvgElement as oo, loadFont as ro, patternImageDataCache as co, registerFetchImplementation as go, registerWindowImplementation as lo, rehydrateSerializedLayout as Bo, setCanvasModule as Co, svgToDataUrl as wo } from "@spiffcommerce/papyrus";
4
- import { setContext as ta } from "@apollo/client/link/context";
5
- import { onError as Aa } from "@apollo/client/link/error";
1
+ import { createHttpLink as vA, InMemoryCache as HA, ApolloClient as UA, from as kA, gql as f } from "@apollo/client/core";
2
+ import { fetch as ot, getAttributesFromArrayBuffer as Tt, AssetType as _e, StepType as F, getFrameData as rt, frameDataCache as GA, modifySVGColors as bA, svgToDataUrl as JA, GroupCommand as k, UpdateFramePattern as Ot, UpdateFrameThresholdSettingsCommand as TA, calculateOffsets as ct, LayoutElementType as G, generate as J, CreateElementCommand as O, generateSVGWithUnknownColors as Oe, svgObjectURL as ve, fetchAsString as $, DeleteElementCommand as te, generateDefaultRectangleFrameSvg as ft, GetSVGDimensions as OA, patternImageDataCache as Ft, fetchAsArrayBuffer as LA, findElement as He, modifySVGWithElementProperties as zA, IllustrationColorCommand as et, IllustrationCacheCommand as KA, getFontMetrics as jA, getPatternImageData as tt, FontAlignmentCommand as VA, FontColorCommand as WA, FontImageFillCommand as Ve, applyTextTransformations as At, determineCorrectFontSizeAndLines as Ne, FontSourceCommand as yt, loadFont as gt, TextChangeCommand as XA, FontSizeCommand as qA, createElementNS as ZA, createElement as fe, _loadFontExternalDataURL as lt, UpdateWorkflowStateCommand as Mt, CommandContext as $A, createCanvas as Ue, getSvgElement as Lt, LayoutRenderingPurpose as zt, renderPapyrusComponentAsString as Kt, loadImage as jt, getDomParser as Vt, toBase64 as St, getVariant as _A, generateFrameSVG as ea, getDefaultVariant as Le, domParser as Wt, sanitizeSvgTree as Xt, traverse as ta, xmlSerializer as qt, CreateLayoutCommand as Aa, AspectType as oe, rehydrateSerializedLayout as ae } from "@spiffcommerce/papyrus";
3
+ import { AspectType as ys, AssetType as Ms, BringForwardCommand as Ss, BringToBackCommand as Ys, BringToFrontCommand as Ps, CanvasCommand as xs, CommandContext as Ns, CreateElementCommand as Rs, CreateLayoutCommand as vs, DeleteElementCommand as Hs, FontAlignmentCommand as Us, FontColorCommand as ks, FontSizeCommand as Gs, FontSourceCommand as bs, GroupCommand as Js, LayoutElementFactory as Ts, LayoutElementType as Os, MoveCommand as Ls, ResizeCommand as zs, RotateCommand as Ks, SendBackwardsCommand as js, StepAspectType as Vs, StepType as Ws, TextChangeCommand as Xs, UnitOfMeasurement as qs, UpdateImageSourceCommand as Zs, dataUrlFromExternalUrl as $s, determineCorrectFontSizeAndLines as _s, findElement as eo, frameDataCache as to, generate as Ao, generateSVGWithUnknownColors as ao, getAttributesFromArrayBuffer as no, getAxisAlignedBoundingBox as io, getFrameData as so, getSvgElement as oo, loadFont as ro, patternImageDataCache as co, registerFetchImplementation as go, registerWindowImplementation as lo, rehydrateSerializedLayout as Bo, setCanvasModule as Co, svgToDataUrl as wo } from "@spiffcommerce/papyrus";
4
+ import { setContext as aa } from "@apollo/client/link/context";
5
+ import { onError as na } from "@apollo/client/link/error";
6
6
  import { Pith as Zt } from "pith";
7
7
  import $t from "lodash.debounce";
8
8
  import _t from "lodash.isequal";
9
9
  import he from "lodash.clonedeep";
10
10
  import { toString as eA } from "qrcode";
11
- import aa from "fuse.js";
11
+ import ia from "fuse.js";
12
12
  import { split as at } from "unicode-default-word-boundary";
13
13
  import Bt from "svg-path-bbox";
14
14
  import Yt from "lodash.chunk";
@@ -17,32 +17,32 @@ class tA extends Error {
17
17
  super(e), this.name = this.constructor.name;
18
18
  }
19
19
  }
20
- class pe extends tA {
20
+ class De extends tA {
21
21
  constructor(e) {
22
22
  super(`ConfigurationError - ${e}`);
23
23
  }
24
24
  }
25
- class Ue extends pe {
25
+ class ke extends De {
26
26
  constructor(e) {
27
27
  super(`Option not Configured: ${e.stepTitle}`), this.optionId = (e == null ? void 0 : e.optionId) || "N/A";
28
28
  }
29
29
  }
30
- class z extends pe {
30
+ class z extends De {
31
31
  constructor(e) {
32
32
  super(`Panel not Found: ${e.panelId}`), this.panelId = (e == null ? void 0 : e.panelId) || "N/A";
33
33
  }
34
34
  }
35
- class Ae extends pe {
35
+ class Ae extends De {
36
36
  constructor(e) {
37
37
  super(`Asset not found for variant: ${e.name}`), this.variant = e;
38
38
  }
39
39
  }
40
- class ue extends pe {
40
+ class ue extends De {
41
41
  constructor(e) {
42
42
  super(`Resource not found for asset: ${e.name}`), this.asset = e;
43
43
  }
44
44
  }
45
- class ke extends pe {
45
+ class Ge extends De {
46
46
  constructor(e, t) {
47
47
  super(`Workflow Misconfiguration: ${e.stepName} - ${t}`), this.step = e;
48
48
  }
@@ -57,7 +57,7 @@ class b extends ze {
57
57
  super(`Unhandled Behavior Encountered: ${e}`);
58
58
  }
59
59
  }
60
- class de extends ze {
60
+ class Ce extends ze {
61
61
  constructor(e) {
62
62
  super(`Parsing Error: ${e}`);
63
63
  }
@@ -72,7 +72,7 @@ class Ke extends ze {
72
72
  super(`Resource Generation Failed: ${e}`);
73
73
  }
74
74
  }
75
- class na {
75
+ class sa {
76
76
  get(e) {
77
77
  return localStorage.getItem(e) || void 0;
78
78
  }
@@ -115,14 +115,14 @@ class Pt {
115
115
  this.set(e, A);
116
116
  }
117
117
  }
118
- const ia = () => {
118
+ const oa = () => {
119
119
  try {
120
- return localStorage ? new na() : new Pt();
120
+ return localStorage ? new sa() : new Pt();
121
121
  } catch {
122
122
  return console.warn("Local storage was unavilable due to browser security settings. Using in-memory storage instead."), new Pt();
123
123
  }
124
- }, Y = ia();
125
- class sa {
124
+ }, Y = oa();
125
+ class ra {
126
126
  constructor() {
127
127
  this.defaultServerUrl = "https://api.spiff.com.au", this.defaultServicesApiUrl = "https://services.spiff.com.au", this.defaultHubUrl = "https://hub.spiff.com.au", this.serverUrl = this.defaultServerUrl, this.servicesApiUrl = this.defaultServicesApiUrl, this.hubUrl = this.defaultHubUrl, this.serverUrlCallbacks = [];
128
128
  }
@@ -148,32 +148,32 @@ class sa {
148
148
  this.serverUrlCallbacks.push(e);
149
149
  }
150
150
  }
151
- const q = new sa();
151
+ const q = new ra();
152
152
  let AA;
153
153
  const xt = (c) => {
154
154
  AA = c;
155
155
  };
156
- let Ct;
157
- const oa = (c) => {
158
- Ct = c;
159
- }, ra = () => Ct;
160
- let aA;
156
+ let dt;
161
157
  const ca = (c) => {
158
+ dt = c;
159
+ }, ga = () => dt;
160
+ let aA;
161
+ const la = (c) => {
162
162
  aA = c;
163
- }, ga = () => new Promise((c) => {
163
+ }, Ba = () => new Promise((c) => {
164
164
  const e = q.getHubUrl(), t = (A) => {
165
165
  A.origin === e && (window.removeEventListener("message", t), c(A.data));
166
166
  };
167
167
  window.parent !== window && (window.addEventListener("message", t, !1), window.parent.postMessage("ready", e));
168
- }), la = async () => {
168
+ }), da = async () => {
169
169
  const c = {
170
- applicationKey: Ct,
170
+ applicationKey: dt,
171
171
  customerToken: AA,
172
172
  bearer: aA
173
173
  };
174
- return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await ga(), ...c } : c;
174
+ return typeof window < "u" && (window.location.href.includes("/workflows/product/") || window.location.href.includes("hub=true")) ? { ...await Ba(), ...c } : c;
175
175
  };
176
- class Ba {
176
+ class Ca {
177
177
  constructor() {
178
178
  this.shadowGraphqlClient = this.constructShadowGraphqlClient(), q.addServerUrlCallback(() => {
179
179
  this.shadowGraphqlClient = this.constructShadowGraphqlClient();
@@ -183,27 +183,27 @@ class Ba {
183
183
  return this.shadowGraphqlClient;
184
184
  }
185
185
  constructShadowGraphqlClient() {
186
- const e = NA({
186
+ const e = vA({
187
187
  uri: `${q.getServerUrl()}/graphql`,
188
188
  fetch: ot
189
- }), t = ta(async (i, s) => {
190
- const { headers: o } = s, r = o || {}, g = await la(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, C = s.activeIntegration ?? g.activeIntegration, d = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, w = s.applicationKey ?? g.applicationKey, u = s.bundleOwnerId;
189
+ }), t = aa(async (i, s) => {
190
+ const { headers: o } = s, r = o || {}, g = await da(), B = s.bearer ?? g.bearer, l = s.partnerId ?? g.partnerId, d = s.activeIntegration ?? g.activeIntegration, C = s.transactionOwnerId, E = s.customerToken ?? g.customerToken, w = s.applicationKey ?? g.applicationKey, u = s.bundleOwnerId;
191
191
  try {
192
192
  if (window && window.__SENTRY__) {
193
193
  const h = window.__SENTRY__.hub;
194
194
  if (h) {
195
195
  const I = h.traceHeaders();
196
- Object.entries(I).forEach(([Q, p]) => {
197
- r[Q] = p;
196
+ Object.entries(I).forEach(([D, m]) => {
197
+ r[D] = m;
198
198
  });
199
199
  }
200
200
  }
201
201
  } catch {
202
202
  }
203
- return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), C && (r.activeIntegration = C), d && (r.transactionOwnerId = d), E && (r.customerToken = E), w && (r["X-Application-Key"] = w), u && (r.bundleOwnerId = u), {
203
+ return B && (r.Authorization = `Bearer ${B}`), l && (r.partnerId = l), d && (r.activeIntegration = d), C && (r.transactionOwnerId = C), E && (r.customerToken = E), w && (r["X-Application-Key"] = w), u && (r.bundleOwnerId = u), {
204
204
  headers: r
205
205
  };
206
- }), A = Aa(({ operation: i, graphQLErrors: s, networkError: o }) => {
206
+ }), A = na(({ operation: i, graphQLErrors: s, networkError: o }) => {
207
207
  const r = s || [];
208
208
  o && console.log("GraphQL Network error"), r.forEach(() => console.log("GraphQL Error: " + i.operationName));
209
209
  });
@@ -217,7 +217,7 @@ class Ba {
217
217
  }
218
218
  };
219
219
  }
220
- const n = new vA({
220
+ const n = new HA({
221
221
  addTypename: !1,
222
222
  typePolicies: {
223
223
  Transaction: {
@@ -251,22 +251,22 @@ class Ba {
251
251
  }
252
252
  }
253
253
  });
254
- return new RA({
255
- link: HA([A, t, e]),
254
+ return new UA({
255
+ link: kA([A, t, e]),
256
256
  cache: n,
257
257
  name: "Core"
258
258
  });
259
259
  }
260
260
  }
261
- const P = new Ba(), Ca = f`
261
+ const P = new Ca(), wa = f`
262
262
  fragment AssetMetadataFields on Asset {
263
263
  metadata {
264
264
  key
265
265
  value
266
266
  }
267
267
  }
268
- `, De = (c) => f`
269
- ${c && Ca || ""}
268
+ `, Ie = (c) => f`
269
+ ${c && wa || ""}
270
270
  fragment AssetFields on Asset {
271
271
  name
272
272
  key
@@ -280,14 +280,14 @@ const P = new Ba(), Ca = f`
280
280
  }
281
281
  ${c && "...AssetMetadataFields" || ""}
282
282
  }
283
- `, da = f`
284
- ${De(!1)}
283
+ `, Ea = f`
284
+ ${Ie(!1)}
285
285
  query GetAssets($keys: [String]!) {
286
286
  assets(keys: $keys) {
287
287
  ...AssetFields
288
288
  }
289
289
  }
290
- `, dt = f`
290
+ `, Ct = f`
291
291
  fragment MaterialFields on Material {
292
292
  id
293
293
  name
@@ -334,14 +334,14 @@ const P = new Ba(), Ca = f`
334
334
  fileLink
335
335
  }
336
336
  }
337
- `, wa = f`
338
- ${dt}
337
+ `, ha = f`
338
+ ${Ct}
339
339
  query GetMaterials($ids: [String]) {
340
340
  materials(id: $ids) {
341
341
  ...MaterialFields
342
342
  }
343
343
  }
344
- `, Ea = f`
344
+ `, ua = f`
345
345
  mutation CreateAsset($name: String!, $type: String!, $mimeType: String!, $anonymous: Boolean, $temporary: Boolean) {
346
346
  assetCreate(name: $name, type: $type, mimeType: $mimeType, anonymous: $anonymous, temporary: $temporary) {
347
347
  uploadUrl
@@ -355,31 +355,31 @@ const P = new Ba(), Ca = f`
355
355
  }
356
356
  }
357
357
  }
358
- `, ha = f`
359
- ${De(!1)}
358
+ `, Qa = f`
359
+ ${Ie(!1)}
360
360
  mutation RemoveBackgroundFromAsset($key: String!) {
361
361
  assetRemoveBackground(key: $key) {
362
362
  ...AssetFields
363
363
  }
364
364
  }
365
365
  `, nt = async (c) => (await P.getShadowGraphqlClient().query({
366
- query: da,
366
+ query: Ea,
367
367
  errorPolicy: "all",
368
368
  fetchPolicy: "no-cache",
369
369
  variables: {
370
370
  keys: c
371
371
  }
372
- })).data.assets, ua = async (c) => (await P.getShadowGraphqlClient().query({
373
- query: wa,
372
+ })).data.assets, ma = async (c) => (await P.getShadowGraphqlClient().query({
373
+ query: ha,
374
374
  errorPolicy: "all",
375
375
  fetchPolicy: "no-cache",
376
376
  variables: {
377
377
  ids: c
378
378
  }
379
- })).data.materials, Qa = async (c, e, t, A, a) => {
379
+ })).data.materials, pa = async (c, e, t, A, a) => {
380
380
  var i;
381
381
  return (i = (await P.getShadowGraphqlClient().mutate({
382
- mutation: Ea,
382
+ mutation: ua,
383
383
  errorPolicy: "all",
384
384
  fetchPolicy: "no-cache",
385
385
  variables: {
@@ -391,7 +391,7 @@ const P = new Ba(), Ca = f`
391
391
  }
392
392
  })).data) == null ? void 0 : i.assetCreate;
393
393
  };
394
- class ma {
394
+ class Da {
395
395
  constructor() {
396
396
  this.cache = /* @__PURE__ */ new Map(), this.bgrmProcessCache = /* @__PURE__ */ new Map(), this.materialCache = /* @__PURE__ */ new Map(), this.loadImageAsFileInfo = async (e) => {
397
397
  const t = await e.arrayBuffer(), A = await Tt(t), a = (n, i) => {
@@ -458,7 +458,7 @@ class ma {
458
458
  async getMaterialLocalOrFromServer(e) {
459
459
  if (this.materialCache.has(e))
460
460
  return this.materialCache.get(e);
461
- const A = (async () => (await ua([e]))[0])();
461
+ const A = (async () => (await ma([e]))[0])();
462
462
  return this.materialCache.set(e, A), A;
463
463
  }
464
464
  /**
@@ -507,7 +507,7 @@ class ma {
507
507
  const a = (async () => {
508
508
  var i, s;
509
509
  const n = await P.getShadowGraphqlClient().mutate({
510
- mutation: ha,
510
+ mutation: Qa,
511
511
  fetchPolicy: "no-cache",
512
512
  errorPolicy: "all",
513
513
  variables: {
@@ -541,7 +541,7 @@ class ma {
541
541
  * @param assetType The type of asset we're expecting to upload
542
542
  */
543
543
  async dispatchCreateAssetRequest(e, t, A, a) {
544
- const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await Qa(e.name, t, n, A, a);
544
+ const n = e.blob.type ? e.blob.type : this.guessMIME(e.name), i = await pa(e.name, t, n, A, a);
545
545
  if (i)
546
546
  return {
547
547
  assetResponse: i,
@@ -648,8 +648,8 @@ class K {
648
648
  Y.setMap(Nt, e);
649
649
  }
650
650
  }
651
- const U = new ma();
652
- class pa {
651
+ const U = new Da();
652
+ class Ia {
653
653
  constructor() {
654
654
  this.cache = {}, this.disabled = !1;
655
655
  }
@@ -680,7 +680,7 @@ class pa {
680
680
  this.disabled = e;
681
681
  }
682
682
  }
683
- const Qe = new pa(), iA = f`
683
+ const Qe = new Ia(), iA = f`
684
684
  fragment OptionFields on Option {
685
685
  id
686
686
  name
@@ -720,18 +720,18 @@ const Qe = new pa(), iA = f`
720
720
  ...AssetFields
721
721
  }
722
722
  }
723
- `, Da = f`
724
- ${De(!1)}
725
- ${dt}
723
+ `, fa = f`
724
+ ${Ie(!1)}
725
+ ${Ct}
726
726
  ${iA}
727
727
  query GetOptions($ids: [String]!) {
728
728
  options(ids: $ids) {
729
729
  ...OptionFields
730
730
  }
731
731
  }
732
- `, Ia = async (c) => {
732
+ `, Fa = async (c) => {
733
733
  const e = await P.getShadowGraphqlClient().query({
734
- query: Da,
734
+ query: fa,
735
735
  errorPolicy: "all",
736
736
  fetchPolicy: "no-cache",
737
737
  variables: {
@@ -744,16 +744,16 @@ const Qe = new pa(), iA = f`
744
744
  n.asset && U.cacheAsset(n.asset), n.displayImage && U.cacheAsset(n.displayImage), n.thumbnail && U.cacheAsset(n.thumbnail), n.material && U.cacheMaterial(n.material);
745
745
  });
746
746
  }), e.data.options;
747
- }, fa = async (c, e) => (await e).find((A) => A.id === c), Fa = async (c) => {
747
+ }, ya = async (c, e) => (await e).find((A) => A.id === c), Ma = async (c) => {
748
748
  const e = c.map((i) => Qe.get({ id: i })), t = c.filter((i, s) => e[s] === void 0);
749
749
  if (t.length === 0)
750
750
  return Promise.all(e);
751
- const A = Ia(t), a = t.map(
752
- (i) => Qe.set({ id: i }, fa(i, A))
751
+ const A = Fa(t), a = t.map(
752
+ (i) => Qe.set({ id: i }, ya(i, A))
753
753
  ), n = e.filter((i) => i !== void 0);
754
754
  return await Promise.all(n.concat(a));
755
755
  };
756
- class ya {
756
+ class Sa {
757
757
  constructor() {
758
758
  this.getDisplayImageSource = (e) => {
759
759
  var t;
@@ -774,7 +774,7 @@ class ya {
774
774
  */
775
775
  async getOption(e) {
776
776
  return (async () => {
777
- const a = (await Fa([e]))[0];
777
+ const a = (await Ma([e]))[0];
778
778
  if (a)
779
779
  return a;
780
780
  })();
@@ -806,8 +806,8 @@ class ya {
806
806
  }
807
807
  }
808
808
  }
809
- const j = new ya();
810
- var Ma = /* @__PURE__ */ ((c) => (c.Hyperlink = "Hyperlink", c.Edit = "Edit", c.Approve = "Approve", c))(Ma || {}), Sa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(Sa || {}), wt = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(wt || {}), Ya = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(Ya || {}), Pa = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(Pa || {}), xa = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(xa || {}), Ge = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(Ge || {});
809
+ const j = new Sa();
810
+ var Ya = /* @__PURE__ */ ((c) => (c.Hyperlink = "Hyperlink", c.Edit = "Edit", c.Approve = "Approve", c))(Ya || {}), Pa = /* @__PURE__ */ ((c) => (c.Hub = "Hub", c.Shopify = "Shopify", c))(Pa || {}), wt = /* @__PURE__ */ ((c) => (c.BackgroundRemover = "BackgroundRemover", c.ConversionAccelerator = "Conversion Accelerator", c.ProcessBuilder = "ProcessBuilder", c))(wt || {}), xa = /* @__PURE__ */ ((c) => (c[c.Orbit = 0] = "Orbit", c[c.Pan = 1] = "Pan", c))(xa || {}), Na = /* @__PURE__ */ ((c) => (c.Manual = "Manual", c.OnStart = "OnStart", c.OnQuit = "OnQuit", c.OnEnd = "OnEnd", c))(Na || {}), Ra = /* @__PURE__ */ ((c) => (c.Email = "Email", c.FirstName = "FirstName", c.LastName = "LastName", c.Phone = "Phone", c))(Ra || {}), be = /* @__PURE__ */ ((c) => (c.Owner = "Owner", c.Approver = "Approver", c.Editor = "Editor", c.Viewer = "Viewer", c))(be || {});
811
811
  const sA = f`
812
812
  fragment ActiveIntegrationFields on Integration {
813
813
  id
@@ -825,7 +825,7 @@ const sA = f`
825
825
  activeAddons
826
826
  }
827
827
  }
828
- `, Na = f`
828
+ `, va = f`
829
829
  ${sA}
830
830
  query GetCurrentIntegration {
831
831
  currentIntegration {
@@ -850,7 +850,7 @@ const sA = f`
850
850
  preloadImageUrl
851
851
  }
852
852
  }
853
- `, vt = f`
853
+ `, Rt = f`
854
854
  ${ge}
855
855
  mutation CreateTransaction(
856
856
  $integrationProductId: String
@@ -946,7 +946,7 @@ const sA = f`
946
946
  }
947
947
  }
948
948
  }
949
- `, va = f`
949
+ `, Ha = f`
950
950
  ${ge}
951
951
  mutation CreateTransactions(
952
952
  $inputs: [TransactionCreateInput]!
@@ -1032,7 +1032,7 @@ const sA = f`
1032
1032
  }
1033
1033
  }
1034
1034
  }
1035
- `, Ra = f`
1035
+ `, Ua = f`
1036
1036
  ${ge}
1037
1037
  mutation ClaimTransaction($id: String!) {
1038
1038
  transactionClaim(id: $id) {
@@ -1127,7 +1127,7 @@ const sA = f`
1127
1127
  precedence
1128
1128
  url
1129
1129
  }
1130
- `, fe = f`
1130
+ `, Fe = f`
1131
1131
  ${ge}
1132
1132
  ${oA}
1133
1133
  ${rA}
@@ -1267,19 +1267,19 @@ const sA = f`
1267
1267
  }
1268
1268
  }
1269
1269
  }
1270
- `, Ha = f`
1270
+ `, ka = f`
1271
1271
  mutation UpdateTransactionWorkflowState($id: String!, $workflowState: String!) {
1272
1272
  transactionUpdate(id: $id, workflowState: $workflowState) {
1273
1273
  id
1274
1274
  }
1275
1275
  }
1276
- `, Ua = f`
1276
+ `, Ga = f`
1277
1277
  mutation UpdateTransactionWorkflowId($id: String!, $workflowId: String!) {
1278
1278
  transactionUpdate(id: $id, workflowId: $workflowId) {
1279
1279
  id
1280
1280
  }
1281
1281
  }
1282
- `, ka = f`
1282
+ `, ba = f`
1283
1283
  mutation UpdateTransactionQuantity($id: String!, $quantity: Int) {
1284
1284
  transactionUpdate(id: $id, quantity: $quantity) {
1285
1285
  id
@@ -1332,7 +1332,7 @@ f`
1332
1332
  }
1333
1333
  }
1334
1334
  `;
1335
- const Ga = f`
1335
+ const Ja = f`
1336
1336
  ${rA}
1337
1337
  query ReadTransactionForShareActions($id: String!) {
1338
1338
  transactions(ids: [$id]) {
@@ -1412,14 +1412,14 @@ const Ga = f`
1412
1412
  }
1413
1413
  }
1414
1414
  }
1415
- `, ba = f`
1415
+ `, Ta = f`
1416
1416
  ${gA}
1417
1417
  query GetIntegrationProducts($ids: [String!]!) {
1418
1418
  integrationProducts(ids: $ids) {
1419
1419
  ...IntegrationProductFields
1420
1420
  }
1421
1421
  }
1422
- `, Ja = f`
1422
+ `, Oa = f`
1423
1423
  ${gA}
1424
1424
  query GetIntegrationProductFromExternalIds($externalIntegrationId: String!, $externalProductId: String!) {
1425
1425
  integrationProductFromExternalIds(
@@ -1429,7 +1429,7 @@ const Ga = f`
1429
1429
  ...IntegrationProductFields
1430
1430
  }
1431
1431
  }
1432
- `, Ta = f`
1432
+ `, La = f`
1433
1433
  ${oA}
1434
1434
  query ReadTransactionForStakeholders($id: String!) {
1435
1435
  transactions(ids: [$id]) {
@@ -1441,7 +1441,7 @@ const Ga = f`
1441
1441
  }
1442
1442
  }
1443
1443
  }
1444
- `, Be = [F.SilentIllustration, F.ProductOverlay], Oa = async (c) => {
1444
+ `, Be = [F.SilentIllustration, F.ProductOverlay], za = async (c) => {
1445
1445
  const e = [];
1446
1446
  c.introduction && e.push({
1447
1447
  name: "Introduction",
@@ -1459,7 +1459,7 @@ const Ga = f`
1459
1459
  silentSteps: []
1460
1460
  });
1461
1461
  for (const A of c.steps) {
1462
- const a = La(A.stepName, c.stepGroups);
1462
+ const a = Ka(A.stepName, c.stepGroups);
1463
1463
  if (!a)
1464
1464
  e.push({
1465
1465
  name: A.stepName,
@@ -1496,7 +1496,7 @@ const Ga = f`
1496
1496
  ],
1497
1497
  silentSteps: []
1498
1498
  }), e;
1499
- }, La = (c, e) => e.find((t) => t.stepNames.includes(c)), re = (c, e) => (c.conditions || []).every((t) => {
1499
+ }, Ka = (c, e) => e.find((t) => t.stepNames.includes(c)), re = (c, e) => (c.conditions || []).every((t) => {
1500
1500
  const A = e[t.targetStepName];
1501
1501
  if (A && A.selectedVariants) {
1502
1502
  const a = A.selectedVariants;
@@ -1505,7 +1505,7 @@ const Ga = f`
1505
1505
  );
1506
1506
  }
1507
1507
  return !1;
1508
- }), za = (c, e) => {
1508
+ }), ja = (c, e) => {
1509
1509
  const t = {
1510
1510
  name: c.name,
1511
1511
  title: c.title,
@@ -1513,7 +1513,7 @@ const Ga = f`
1513
1513
  silentSteps: c.silentSteps.filter((A) => re(A, e))
1514
1514
  };
1515
1515
  return t.silentSteps.length === 0 && t.renderableSteps.length === 0 ? null : t;
1516
- }, se = (c, e) => c.map((t) => za(t, e)).filter((t) => t !== null), Ka = async (c, e, t = !1) => {
1516
+ }, se = (c, e) => c.map((t) => ja(t, e)).filter((t) => t !== null), Va = async (c, e, t = !1) => {
1517
1517
  var i;
1518
1518
  const A = se(c, e), a = [];
1519
1519
  for (const s of A)
@@ -1605,21 +1605,21 @@ class BA {
1605
1605
  }
1606
1606
  }
1607
1607
  }
1608
- function ja(c, e, t, A) {
1608
+ function Wa(c, e, t, A) {
1609
1609
  const a = t.width * c.zoom, n = t.height * c.zoom;
1610
1610
  if (A) {
1611
1611
  const s = c, o = Math.max(e.width / t.width, e.height / t.height);
1612
1612
  s.zoom = Math.max(o, c.zoom);
1613
1613
  const r = t.width * s.zoom, g = t.height * s.zoom;
1614
- return s.x = Fe(c.x, e.width - r, 0), s.y = Fe(c.y, e.height - g, 0), s;
1614
+ return s.x = ye(c.x, e.width - r, 0), s.y = ye(c.y, e.height - g, 0), s;
1615
1615
  }
1616
1616
  const i = c;
1617
- return i.x = Fe(i.x, -a, e.width), i.y = Fe(i.y, -n, e.height), i;
1617
+ return i.x = ye(i.x, -a, e.width), i.y = ye(i.y, -n, e.height), i;
1618
1618
  }
1619
- function Fe(c, e, t) {
1619
+ function ye(c, e, t) {
1620
1620
  return Math.min(Math.max(c, e), t);
1621
1621
  }
1622
- class Va {
1622
+ class Xa {
1623
1623
  constructor(e) {
1624
1624
  this.minZoomScale = [0.03], this.maxZoomScale = [20], this._debouncedUpdateFrameOffsets = $t(this.updateFrameOffsets, 200), this.targetElements = [], this.onFrameDataChangeListeners = [], this.onZoomChangeListeners = [], this.forceImageCover = e, this.thresholdSettings = {
1625
1625
  useThreshold: !1,
@@ -1676,7 +1676,7 @@ class Va {
1676
1676
  return;
1677
1677
  }
1678
1678
  e.forEach((t, A) => {
1679
- const a = UA.get(t);
1679
+ const a = GA.get(t);
1680
1680
  a && (this.frameData || (this.frameData = new Array(e.length)), this.frameData[A] = a);
1681
1681
  });
1682
1682
  }
@@ -1694,8 +1694,8 @@ class Va {
1694
1694
  getImageSrc() {
1695
1695
  if (this.imageData) {
1696
1696
  if (this.imageData.svg) {
1697
- const e = kA(this.imageData.svg, this.imageData.colors || {}, !1);
1698
- return GA(e);
1697
+ const e = bA(this.imageData.svg, this.imageData.colors || {}, !1);
1698
+ return JA(e);
1699
1699
  }
1700
1700
  return this.imageData.src;
1701
1701
  }
@@ -1762,7 +1762,7 @@ class Va {
1762
1762
  return;
1763
1763
  }
1764
1764
  (!this.offsets || this.offsets.length !== this.frameData.length) && (this.offsets = new Array(this.frameData.length)), this.frameData.forEach((i, s) => {
1765
- this.offsets[s] = ja(e[s], i, this.imageData, this.forceImageCover);
1765
+ this.offsets[s] = Wa(e[s], i, this.imageData, this.forceImageCover);
1766
1766
  }), this._debouncedUpdateFrameOffsets(
1767
1767
  this.offsets,
1768
1768
  a,
@@ -1806,7 +1806,7 @@ class Va {
1806
1806
  i(
1807
1807
  new k([
1808
1808
  new Ot(s, t, e[o]),
1809
- new bA(
1809
+ new TA(
1810
1810
  s,
1811
1811
  a.useThreshold,
1812
1812
  a.invertThreshold,
@@ -1836,7 +1836,7 @@ class Va {
1836
1836
  }), this._debouncedUpdateFrameOffsets(this.offsets, e, this.frameData, this.thresholdSettings));
1837
1837
  }
1838
1838
  }
1839
- class Rt {
1839
+ class vt {
1840
1840
  constructor(e, t, A) {
1841
1841
  this.processRegion = async (a) => {
1842
1842
  var o, r, g, B;
@@ -1847,14 +1847,14 @@ class Rt {
1847
1847
  if (this.configuration.type === F.ProductOverlay) {
1848
1848
  let l = "";
1849
1849
  if ((o = this.product) != null && o.overlayImageUrl && (l = this.product.overlayImageUrl), i = l, !l)
1850
- throw new ke(this.configuration, "Couldn't find an asset for product overlay step");
1850
+ throw new Ge(this.configuration, "Couldn't find an asset for product overlay step");
1851
1851
  }
1852
1852
  const s = this.evaluateAssetType();
1853
1853
  if (s === G.Image) {
1854
1854
  const l = this.configuration.type === F.SilentIllustration ? (r = this.configuration.data.asset) == null ? void 0 : r.fileLink : (g = this.product) == null ? void 0 : g.overlayImageUrl;
1855
1855
  if (!l)
1856
1856
  throw new Error("Undefined raster silent step source");
1857
- const C = {
1857
+ const d = {
1858
1858
  stepName: this.configuration.stepName,
1859
1859
  id: J(),
1860
1860
  src: l,
@@ -1873,13 +1873,13 @@ class Rt {
1873
1873
  };
1874
1874
  return {
1875
1875
  regionElement: {
1876
- id: C.id,
1876
+ id: d.id,
1877
1877
  region: a
1878
1878
  },
1879
- command: new O(C, n)
1879
+ command: new O(d, n)
1880
1880
  };
1881
1881
  } else {
1882
- const l = this.configuration.type === F.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, d = await Oe(await (async () => new Promise((w, u) => {
1882
+ const l = this.configuration.type === F.SilentIllustration ? (B = this.configuration.data.asset) == null ? void 0 : B.fileLink : i, C = await Oe(await (async () => new Promise((w, u) => {
1883
1883
  if (!l) {
1884
1884
  u("Undefined vector silent step source");
1885
1885
  return;
@@ -1890,10 +1890,10 @@ class Rt {
1890
1890
  }))()), E = {
1891
1891
  stepName: this.configuration.stepName,
1892
1892
  id: J(),
1893
- cachedObjectURL: await ve(d.svg),
1893
+ cachedObjectURL: await ve(C.svg),
1894
1894
  src: l,
1895
- svg: d.svg,
1896
- colors: d.colors,
1895
+ svg: C.svg,
1896
+ colors: C.colors,
1897
1897
  type: s,
1898
1898
  y: a.top,
1899
1899
  x: a.left,
@@ -1918,7 +1918,7 @@ class Rt {
1918
1918
  }
1919
1919
  async trigger() {
1920
1920
  if (!this.configuration.data.regions)
1921
- throw new ke(this.configuration, "Missing regions.");
1921
+ throw new Ge(this.configuration, "Missing regions.");
1922
1922
  if (this.configuration.type === F.SilentIllustration) {
1923
1923
  const e = this.configuration.data.regions.map(this.processRegion);
1924
1924
  return Promise.all(e);
@@ -1937,7 +1937,7 @@ class Rt {
1937
1937
  return e != null && e.startsWith("data:image/png") || e != null && e.endsWith(".jpeg") || e != null && e.endsWith(".jpg") || e != null && e.endsWith(".png") ? G.Image : e != null && e.endsWith(".svg") || e != null && e.startsWith("image/svg+xml") ? G.Illustration : G.Illustration;
1938
1938
  }
1939
1939
  }
1940
- const Wa = async (c) => {
1940
+ const qa = async (c) => {
1941
1941
  const e = `${q.getServicesApiUrl()}/shortener`;
1942
1942
  try {
1943
1943
  return (await (await fetch(e, {
@@ -1951,7 +1951,7 @@ const Wa = async (c) => {
1951
1951
  throw console.error(t), new Ke("Failed to shorten URL, see console.");
1952
1952
  }
1953
1953
  };
1954
- class CA {
1954
+ class dA {
1955
1955
  async poll() {
1956
1956
  try {
1957
1957
  if (await this.predicate()) {
@@ -1974,7 +1974,7 @@ class CA {
1974
1974
  this.onSuccess = t, this.onFailure = A, this.predicate = e, this.attempts = 0, this.pollingId = -1, this.interval = a, this.maxAttempts = n, this.poll();
1975
1975
  }
1976
1976
  }
1977
- class Xa {
1977
+ class Za {
1978
1978
  async init(e, t, A) {
1979
1979
  return A && await this.reload(e, t, A), null;
1980
1980
  }
@@ -1992,49 +1992,46 @@ class Xa {
1992
1992
  });
1993
1993
  });
1994
1994
  }
1995
- async regenerateQRCode(e, t, A, a, n, i, s, o, r) {
1996
- if (!t && A !== "" && a === "") {
1997
- const g = async () => {
1998
- var Q, p;
1999
- const h = (await nt([A]))[0], I = (p = (Q = h == null ? void 0 : h.versions) == null ? void 0 : Q.find((m) => m.name === "mpeg4")) == null ? void 0 : p.link;
2000
- return { asset: h, link: I };
2001
- }, B = await new Promise((h, I) => {
2002
- new CA(
2003
- async () => !!(await g()).link,
2004
- async () => {
2005
- const Q = await g();
2006
- if (!Q.link || !Q.link)
2007
- throw new ue(Q.asset);
2008
- h({
2009
- rel: "mpeg4",
2010
- href: Q.link
2011
- });
2012
- },
2013
- () => {
2014
- I("Poller timed out with 40 attempts @ 3 second interval");
2015
- },
2016
- 3e3,
2017
- 40
2018
- );
2019
- });
2020
- e.forEach((h) => o(new te(h.id)));
2021
- const l = i.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", C = new URL(l + i.data.baseUrl);
2022
- C.searchParams.append("video", btoa(JSON.stringify([B]))), C.pathname = C.pathname + (C.pathname.slice(-1) === "/" ? "" : "/");
2023
- const d = C.toString();
2024
- if (d.length >= 2e3)
2025
- throw new Ke("Cannot create QR code, URL too long.");
2026
- const E = await Wa(d);
2027
- if (s(E), !i.data || !i.data.regions)
2028
- throw new ke(i, "Missing regions.");
2029
- const w = await this.regionElements(i), u = await this.command(E, w, n, i.stepName);
2030
- u && (u.command && n.getCommandDispatcher()(u.command), u.followup && await u.followup()), await n.setSelectionsAndElements(i.stepName, [], w, async () => {
2031
- n.updateStorage(i.stepName, {
2032
- videoShortUrl: E,
2033
- videoUrl: a
2034
- }), r(!1);
1995
+ async regenerateQRCode(e, t, A, a) {
1996
+ const n = async () => {
1997
+ var E, w;
1998
+ const d = (await nt([t]))[0], C = (w = (E = d == null ? void 0 : d.versions) == null ? void 0 : E.find((u) => u.name === "mpeg4")) == null ? void 0 : w.link;
1999
+ return { asset: d, link: C };
2000
+ }, i = await new Promise((d, C) => {
2001
+ new dA(
2002
+ async () => !!(await n()).link,
2003
+ async () => {
2004
+ const E = await n();
2005
+ if (!E.link || !E.link)
2006
+ throw new ue(E.asset);
2007
+ d({
2008
+ rel: "mpeg4",
2009
+ href: E.link
2010
+ });
2011
+ },
2012
+ () => {
2013
+ C("Poller timed out with 40 attempts @ 3 second interval");
2014
+ },
2015
+ 3e3,
2016
+ 40
2017
+ );
2018
+ });
2019
+ e.forEach((d) => A.getCommandDispatcher()(new te(d.id)));
2020
+ const s = a.data.baseUrl.slice(0, 4) === "http" ? "" : "https://", o = new URL(s + a.data.baseUrl);
2021
+ o.searchParams.append("video", btoa(JSON.stringify([i]))), o.pathname = o.pathname + (o.pathname.slice(-1) === "/" ? "" : "/");
2022
+ const r = o.toString();
2023
+ if (r.length >= 2e3)
2024
+ throw new Ke("Cannot create QR code, URL too long.");
2025
+ const g = await qa(r);
2026
+ if (!a.data || !a.data.regions)
2027
+ throw new Ge(a, "Missing regions.");
2028
+ const B = await this.regionElements(a), l = await this.command(g, B, A, a.stepName);
2029
+ return l && (l.command && A.getCommandDispatcher()(l.command), l.followup && await l.followup()), await A.setSelectionsAndElements(a.stepName, [], B, async () => {
2030
+ A.updateStorage(a.stepName, {
2031
+ videoShortUrl: g,
2032
+ videoUrl: i.href
2035
2033
  });
2036
- } else
2037
- r(!1);
2034
+ }), g;
2038
2035
  }
2039
2036
  async regionElements(e) {
2040
2037
  const t = (A) => ({ id: J(), region: A });
@@ -2069,7 +2066,7 @@ class Xa {
2069
2066
  } };
2070
2067
  }
2071
2068
  }
2072
- const qa = new Xa(), me = [
2069
+ const CA = new Za(), me = [
2073
2070
  "Yellow C",
2074
2071
  "Yellow 012 C",
2075
2072
  "Orange 021 C",
@@ -4762,12 +4759,12 @@ function Es(c) {
4762
4759
  const e = me.indexOf(c);
4763
4760
  return e >= 0 ? ce[e] : "";
4764
4761
  }
4765
- function Za(c) {
4762
+ function $a(c) {
4766
4763
  const e = ce.indexOf(c);
4767
4764
  return e >= 0 ? me[e] : "";
4768
4765
  }
4769
4766
  function hs(c, e = 64) {
4770
- const t = [], A = [], a = Za(c);
4767
+ const t = [], A = [], a = $a(c);
4771
4768
  a && t.push({
4772
4769
  pms: a,
4773
4770
  hex: c,
@@ -4784,27 +4781,27 @@ function hs(c, e = 64) {
4784
4781
  A[B] <= e && !t.some((l) => l.pms === me[B]) && t.push({ pms: me[B], hex: ce[B], distance: A[B] });
4785
4782
  return t.sort((B, l) => B.distance - l.distance);
4786
4783
  }
4787
- const $a = me.map((c, e) => ({ pms: c, hex: ce[e] })), _a = new aa($a, { keys: ["pms"] });
4784
+ const _a = me.map((c, e) => ({ pms: c, hex: ce[e] })), en = new ia(_a, { keys: ["pms"] });
4788
4785
  function us(c, e) {
4789
- return _a.search(c, e ? { limit: e } : void 0);
4786
+ return en.search(c, e ? { limit: e } : void 0);
4790
4787
  }
4791
- let Ce = null;
4792
- function en(c) {
4788
+ let de = null;
4789
+ function tn(c) {
4793
4790
  if (c.startsWith("#"))
4794
4791
  return Ht(c);
4795
4792
  if (!document)
4796
4793
  throw new Error("browserColorToHex is only supported on browsers");
4797
- if (Ce || (Ce = document.createElement("canvas").getContext("2d")), !Ce)
4794
+ if (de || (de = document.createElement("canvas").getContext("2d")), !de)
4798
4795
  throw new Error("Failed to create canvas context required to convert colors");
4799
- Ce.fillStyle = c;
4800
- const e = Ht(Ce.fillStyle);
4796
+ de.fillStyle = c;
4797
+ const e = Ht(de.fillStyle);
4801
4798
  return e || console.error(`Unknown browser color ${c}`), e;
4802
4799
  }
4803
4800
  function Ht(c) {
4804
4801
  const e = c.substring(1).toUpperCase();
4805
4802
  return e.length === 6 ? e : e.length === 3 ? `${e[0]}${e[0]}${e[1]}${e[1]}${e[2]}${e[2]}` : "";
4806
4803
  }
4807
- class tn {
4804
+ class An {
4808
4805
  constructor() {
4809
4806
  this.frameSourceSvg = async (e, t) => {
4810
4807
  if (!e)
@@ -4862,10 +4859,10 @@ class tn {
4862
4859
  }
4863
4860
  if (a) {
4864
4861
  const g = async () => {
4865
- var d, E, w, u, h;
4866
- const B = (d = a.storage) == null ? void 0 : d.colors, l = (E = a.storage) == null ? void 0 : E.framePatternSrc, C = (w = a.storage) == null ? void 0 : w.frameOffsetsList;
4862
+ var C, E, w, u, h;
4863
+ const B = (C = a.storage) == null ? void 0 : C.colors, l = (E = a.storage) == null ? void 0 : E.framePatternSrc, d = (w = a.storage) == null ? void 0 : w.frameOffsetsList;
4867
4864
  if (t.updateMetadata(e.stepName, {
4868
- frameOffsetsList: C,
4865
+ frameOffsetsList: d,
4869
4866
  framePatternSrc: l
4870
4867
  }), l) {
4871
4868
  const I = (u = t.getStepSpecificServices(e.stepName)) == null ? void 0 : u.frameService;
@@ -4875,27 +4872,27 @@ class tn {
4875
4872
  framePatternSrc: l
4876
4873
  }), this.validateColorCount(e, t);
4877
4874
  }
4878
- if (C != null && C.some((I) => I.zoom)) {
4875
+ if (d != null && d.some((I) => I.zoom)) {
4879
4876
  const I = (h = t.getStepSpecificServices(e.stepName)) == null ? void 0 : h.frameService;
4880
4877
  if (!I)
4881
4878
  throw new Error("Frame service unavailable, cannot load pattern!");
4882
- I.updateOffsets(C);
4879
+ I.updateOffsets(d);
4883
4880
  }
4884
4881
  t.setMandatoryFulfilled(e.stepName, !0);
4885
4882
  };
4886
4883
  if (a.selectedVariants && a.selectedVariants.length > 0) {
4887
4884
  const B = a.selectedVariants[0].id;
4888
4885
  if (e.option && B) {
4889
- const l = (r = e.option.variants) == null ? void 0 : r.find((C) => C.id === B);
4886
+ const l = (r = e.option.variants) == null ? void 0 : r.find((d) => d.id === B);
4890
4887
  l && await t.setSelectionsAndElements(
4891
4888
  e.stepName,
4892
4889
  [l],
4893
4890
  o,
4894
4891
  async () => {
4895
- const C = await Promise.all(
4896
- e.data.regions.map((d) => this.frameSourceSvg(l, d))
4892
+ const d = await Promise.all(
4893
+ e.data.regions.map((C) => this.frameSourceSvg(l, C))
4897
4894
  );
4898
- t.updateStorage(e.stepName, { currentFrameSources: C }), await g();
4895
+ t.updateStorage(e.stepName, { currentFrameSources: d }), await g();
4899
4896
  }
4900
4897
  );
4901
4898
  }
@@ -4922,10 +4919,10 @@ class tn {
4922
4919
  const s = t.fileLink || "";
4923
4920
  return s.endsWith(".pdf") || s.endsWith(".eps") || s.endsWith(".ai") ? new Promise((r) => {
4924
4921
  A.addPoller(
4925
- new CA(
4922
+ new dA(
4926
4923
  async () => {
4927
- var C;
4928
- const B = (C = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : C.find((d) => d.name === "svg");
4924
+ var d;
4925
+ const B = (d = (await U.getFromServer(t.key || "")).versions) == null ? void 0 : d.find((C) => C.name === "svg");
4929
4926
  return B ? (await fetch(B.link)).status === 200 : !1;
4930
4927
  },
4931
4928
  () => {
@@ -4983,7 +4980,7 @@ class tn {
4983
4980
  }
4984
4981
  async loadPatternFromString(e, t, A = !0, a = void 0, n) {
4985
4982
  if (e.endsWith("svg")) {
4986
- const i = await JA(e), s = i.width, o = i.height, r = await $(e);
4983
+ const i = await OA(e), s = i.width, o = i.height, r = await $(e);
4987
4984
  if (n) {
4988
4985
  const l = r.match(/<(image|linearGradient|radialGradient)(\s|>|\/>)/gim);
4989
4986
  if (l && l.length > 0)
@@ -5001,7 +4998,7 @@ class tn {
5001
4998
  };
5002
4999
  Ft.set(e, B), t.setPatternData(B, A);
5003
5000
  } else {
5004
- const i = await TA(e, !0), s = await Tt(i), o = {
5001
+ const i = await LA(e, !0), s = await Tt(i), o = {
5005
5002
  src: e,
5006
5003
  width: s.width,
5007
5004
  height: s.height,
@@ -5042,7 +5039,7 @@ class tn {
5042
5039
  const g = r.pmsValue.trim().toLocaleLowerCase();
5043
5040
  n.includes(g) || n.push(g);
5044
5041
  } else if (r.browserValue) {
5045
- const g = en(r.browserValue);
5042
+ const g = tn(r.browserValue);
5046
5043
  n.includes(g) || n.push(g);
5047
5044
  }
5048
5045
  }
@@ -5090,12 +5087,12 @@ class tn {
5090
5087
  if (!s)
5091
5088
  throw new Error("Frame service unavailable, cannot load pattern!");
5092
5089
  const o = await Promise.all(
5093
- e.data.regions.map((C) => this.frameSourceSvg(t, C))
5090
+ e.data.regions.map((d) => this.frameSourceSvg(t, d))
5094
5091
  );
5095
5092
  n && n(!0);
5096
5093
  const r = await Promise.all(
5097
- e.data.regions.map(async (C, d) => {
5098
- const E = await rt(o[d]), w = s.getImageData(), u = A.map((D) => new te(D.id)), h = w ? ct(w, E) : void 0, I = w ? {
5094
+ e.data.regions.map(async (d, C) => {
5095
+ const E = await rt(o[C]), w = s.getImageData(), u = A.map((p) => new te(p.id)), h = w ? ct(w, E) : void 0, I = w ? {
5099
5096
  id: J(),
5100
5097
  src: w.src,
5101
5098
  x: (h == null ? void 0 : h.x) || 0,
@@ -5105,11 +5102,11 @@ class tn {
5105
5102
  scaleX: (h == null ? void 0 : h.zoom) || 1,
5106
5103
  scaleY: (h == null ? void 0 : h.zoom) || 1,
5107
5104
  rotation: 0
5108
- } : void 0, Q = J(), m = a.getLayouts().find((D) => D.panelId === C.panelId);
5109
- if (!m)
5110
- throw new z(C);
5105
+ } : void 0, D = J(), Q = a.getLayouts().find((p) => p.panelId === d.panelId);
5106
+ if (!Q)
5107
+ throw new z(d);
5111
5108
  return {
5112
- command: this.getCreateElementCommand(Q, C, m, {
5109
+ command: this.getCreateElementCommand(D, d, Q, {
5113
5110
  frameData: E,
5114
5111
  pattern: I,
5115
5112
  disablePlaceholder: e.data.disablePlaceholder,
@@ -5119,29 +5116,29 @@ class tn {
5119
5116
  stepName: e.stepName
5120
5117
  }),
5121
5118
  regionEl: {
5122
- id: Q,
5123
- region: C
5119
+ id: D,
5120
+ region: d
5124
5121
  },
5125
5122
  removeExistingCommands: u
5126
5123
  };
5127
5124
  })
5128
- ), g = r.map((C) => C.command), B = r.map((C) => C.removeExistingCommands).flat();
5125
+ ), g = r.map((d) => d.command), B = r.map((d) => d.removeExistingCommands).flat();
5129
5126
  return {
5130
5127
  command: new k([...g, ...B]),
5131
5128
  followup: async () => {
5132
5129
  n && n(!1), await a.setSelectionsAndElements(
5133
5130
  e.stepName,
5134
5131
  t ? [t] : [],
5135
- [...r.map((C) => C.regionEl)],
5132
+ [...r.map((d) => d.regionEl)],
5136
5133
  async () => {
5137
- var C;
5134
+ var d;
5138
5135
  if (a.updateStorage(e.stepName, { currentFrameSources: o }), i) {
5139
- const d = (C = a.getStepSpecificServices(
5136
+ const C = (d = a.getStepSpecificServices(
5140
5137
  e.stepName
5141
- )) == null ? void 0 : C.frameService;
5142
- if (!d)
5138
+ )) == null ? void 0 : d.frameService;
5139
+ if (!C)
5143
5140
  throw new Error("Frame service unavailable, cannot load pattern!");
5144
- await this.loadPatternFromString(i, d, !0);
5141
+ await this.loadPatternFromString(i, C, !0);
5145
5142
  }
5146
5143
  }
5147
5144
  );
@@ -5190,8 +5187,8 @@ class tn {
5190
5187
  ), this.validateColorCount(t, A);
5191
5188
  }
5192
5189
  }
5193
- const ee = new tn();
5194
- class An {
5190
+ const ee = new An();
5191
+ class an {
5195
5192
  async getIllustrationBody(e) {
5196
5193
  return new Promise((t) => {
5197
5194
  $(e, !0).then((A) => {
@@ -5227,7 +5224,7 @@ class An {
5227
5224
  if (A.length === 0)
5228
5225
  return [];
5229
5226
  try {
5230
- return Re(
5227
+ return He(
5231
5228
  A[0].id,
5232
5229
  t.getAllLayoutData()
5233
5230
  ).colors;
@@ -5260,15 +5257,15 @@ class An {
5260
5257
  if (o && g) {
5261
5258
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5262
5259
  if (B) {
5263
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5260
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5264
5261
  await t.setSelectionsAndElements(
5265
5262
  e.stepName,
5266
5263
  [B],
5267
5264
  l,
5268
5265
  async () => {
5269
- var C;
5266
+ var d;
5270
5267
  t.updateMetadata(e.stepName, {
5271
- colors: (C = a.storage) == null ? void 0 : C.colors
5268
+ colors: (d = a.storage) == null ? void 0 : d.colors
5272
5269
  }), t.setMandatoryFulfilled(e.stepName, !0);
5273
5270
  }
5274
5271
  );
@@ -5292,19 +5289,19 @@ class An {
5292
5289
  const i = {};
5293
5290
  for (const [B, l] of n.entries())
5294
5291
  i[B] = { browserValue: l, spotColor: (g = i[B]) == null ? void 0 : g.spotColor };
5295
- const s = OA(e, t, A, i), o = await ve(s), r = [];
5292
+ const s = zA(e, t, A, i), o = await ve(s), r = [];
5296
5293
  for (const B of a) {
5297
- for (const [l, C] of n.entries())
5298
- r.push(new et(B, l, C));
5299
- r.push(new LA(B, s, o));
5294
+ for (const [l, d] of n.entries())
5295
+ r.push(new et(B, l, d));
5296
+ r.push(new KA(B, s, o));
5300
5297
  }
5301
5298
  return new k(r);
5302
5299
  }
5303
5300
  async changeColors(e, t, A, a, n) {
5304
- var C, d;
5301
+ var d, C;
5305
5302
  if (t.length === 0)
5306
5303
  return;
5307
- const i = Re(
5304
+ const i = He(
5308
5305
  t[0].id,
5309
5306
  a().map((E) => E.layoutState)
5310
5307
  ), s = { ...i.colors }, o = {};
@@ -5313,10 +5310,10 @@ class An {
5313
5310
  h && (u.spotColor = { profileName: h.profileName, namedColor: h.namedColor }), o[E] = u;
5314
5311
  });
5315
5312
  for (const [E, w] of n.entries())
5316
- s[E] = { browserValue: w, spotColor: (C = s[E]) == null ? void 0 : C.spotColor }, o[E] = { browserValue: w };
5313
+ s[E] = { browserValue: w, spotColor: (d = s[E]) == null ? void 0 : d.spotColor }, o[E] = { browserValue: w };
5317
5314
  let r = Array.from(Object.values(s)).map((E) => E.browserValue);
5318
5315
  const g = e.data.colorOption;
5319
- g && ((d = g.variants) == null || d.forEach((E) => {
5316
+ g && ((C = g.variants) == null || C.forEach((E) => {
5320
5317
  r = r.map((w) => {
5321
5318
  var u;
5322
5319
  return w.toLowerCase() === ((u = E.color) == null ? void 0 : u.toLowerCase()) ? E.name : w;
@@ -5345,7 +5342,7 @@ class An {
5345
5342
  async selectVariantCommand(e, t, A, a, n) {
5346
5343
  var u;
5347
5344
  if (!e.data || !e.data.regions)
5348
- throw new ke(e, "Missing regions.");
5345
+ throw new Ge(e, "Missing regions.");
5349
5346
  a(!0);
5350
5347
  const i = A.map((h) => new te(h.id));
5351
5348
  e.mandatory && n.setMandatoryFulfilled(e.stepName, !1);
@@ -5356,29 +5353,29 @@ class An {
5356
5353
  if (!o)
5357
5354
  throw new ue(s);
5358
5355
  const r = await Oe(await this.getIllustrationBody(o)), g = await ve(r.svg), B = (h) => {
5359
- const I = n.getLayouts().find((p) => p.panelId === h.panelId);
5356
+ const I = n.getLayouts().find((m) => m.panelId === h.panelId);
5360
5357
  if (!I)
5361
5358
  throw new z(h);
5362
- const Q = J();
5359
+ const D = J();
5363
5360
  return {
5364
- regionElement: { id: Q, region: h },
5365
- command: this.getCreateElementCommand(Q, h, I, {
5361
+ regionElement: { id: D, region: h },
5362
+ command: this.getCreateElementCommand(D, h, I, {
5366
5363
  stepName: e.stepName,
5367
5364
  src: o,
5368
5365
  objectURL: g,
5369
5366
  svg: r
5370
5367
  })
5371
5368
  };
5372
- }, l = e.data.regions.map(B), d = [...l.map((h) => h.command), ...i];
5369
+ }, l = e.data.regions.map(B), C = [...l.map((h) => h.command), ...i];
5373
5370
  let E = Array.from(Object.values(r.colors)).map((h) => h.browserValue);
5374
5371
  const w = e.data.colorOption;
5375
5372
  return w && ((u = w.variants) == null || u.forEach((h) => {
5376
5373
  E = E.map((I) => {
5377
- var Q;
5378
- return I.toLowerCase() === ((Q = h.color) == null ? void 0 : Q.toLowerCase()) ? h.name : I;
5374
+ var D;
5375
+ return I.toLowerCase() === ((D = h.color) == null ? void 0 : D.toLowerCase()) ? h.name : I;
5379
5376
  });
5380
5377
  })), n.updateMetadata(e.stepName, { colors: E }), {
5381
- command: new k(d),
5378
+ command: new k(C),
5382
5379
  followup: async () => {
5383
5380
  await n.setSelectionsAndElements(
5384
5381
  e.stepName,
@@ -5398,12 +5395,12 @@ class An {
5398
5395
  };
5399
5396
  }
5400
5397
  }
5401
- const Ne = new An();
5402
- class an {
5398
+ const Re = new an();
5399
+ class nn {
5403
5400
  async init(e, t, A) {
5404
5401
  const a = e.option;
5405
5402
  if (!a)
5406
- throw new Ue(e);
5403
+ throw new ke(e);
5407
5404
  if (A)
5408
5405
  await this.reload(e, t, A);
5409
5406
  else {
@@ -5421,21 +5418,21 @@ class an {
5421
5418
  A.serializableWorkflow.steps
5422
5419
  ), s = Object.values(A.layouts).map((g) => g.elements).flat().filter((g) => g.stepName === e.stepName), o = e.option;
5423
5420
  if (!o)
5424
- throw new Ue(e);
5421
+ throw new ke(e);
5425
5422
  if (a != null && a.selectedVariants) {
5426
5423
  const g = a.selectedVariants[0].id;
5427
5424
  if (g) {
5428
5425
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5429
5426
  if (B) {
5430
- const l = B.material, C = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5427
+ const l = B.material, d = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5431
5428
  await t.setSelectionsAndElements(
5432
5429
  e.stepName,
5433
5430
  [B],
5434
- C,
5431
+ d,
5435
5432
  async () => {
5436
- const d = t.getModelContainer();
5437
- if (d) {
5438
- const E = e.data.targetMaterials.map((w) => d.applyMaterialVariant(
5433
+ const C = t.getModelContainer();
5434
+ if (C) {
5435
+ const E = e.data.targetMaterials.map((w) => C.applyMaterialVariant(
5439
5436
  w,
5440
5437
  o.id || "",
5441
5438
  l || {}
@@ -5476,12 +5473,12 @@ class an {
5476
5473
  };
5477
5474
  }
5478
5475
  }
5479
- const dA = new an();
5480
- class nn {
5476
+ const wA = new nn();
5477
+ class sn {
5481
5478
  async init(e, t, A) {
5482
5479
  const a = e.option;
5483
5480
  if (!a)
5484
- throw new Ue(e);
5481
+ throw new ke(e);
5485
5482
  if (A)
5486
5483
  await this.reload(e, t, A);
5487
5484
  else {
@@ -5503,19 +5500,19 @@ class nn {
5503
5500
  if (o && g) {
5504
5501
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5505
5502
  if (B) {
5506
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5503
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5507
5504
  await t.setSelectionsAndElements(
5508
5505
  e.stepName,
5509
5506
  [B],
5510
5507
  l,
5511
5508
  async () => {
5512
- var d;
5513
- const C = t.getModelContainer();
5514
- if (C && e.option) {
5515
- const E = (d = B.asset) == null ? void 0 : d.fileLink;
5509
+ var C;
5510
+ const d = t.getModelContainer();
5511
+ if (d && e.option) {
5512
+ const E = (C = B.asset) == null ? void 0 : C.fileLink;
5516
5513
  if (!E)
5517
5514
  throw new Ae(B);
5518
- await C.applyModelVariant(
5515
+ await d.applyModelVariant(
5519
5516
  e.stepName || "",
5520
5517
  {
5521
5518
  model: E,
@@ -5562,8 +5559,8 @@ class nn {
5562
5559
  };
5563
5560
  }
5564
5561
  }
5565
- const wA = new nn();
5566
- class sn {
5562
+ const EA = new sn();
5563
+ class on {
5567
5564
  async init(e, t, A) {
5568
5565
  if (A)
5569
5566
  await this.reload(e, t, A);
@@ -5596,19 +5593,19 @@ class sn {
5596
5593
  return A.setMandatoryFulfilled(e.stepName, !1), console.error(a), null;
5597
5594
  if (A.setMandatoryFulfilled(e.stepName, t !== ""), !e.data || !e.data.regions || e.data.regions.length <= 0)
5598
5595
  return console.error("Missing configuration."), null;
5599
- A.updateStorage(e.stepName, { text: t });
5600
- const r = (B, l, C) => {
5601
- const d = C || J(), w = A.getLayouts().find((h) => h.panelId === l.panelId);
5596
+ A.updateStorage(e.stepName, { text: t }), A.updateMetadata(e.stepName, { text: t });
5597
+ const r = (B, l, d) => {
5598
+ const C = d || J(), w = A.getLayouts().find((h) => h.panelId === l.panelId);
5602
5599
  if (!w)
5603
5600
  return console.error(`Can not find layout for region: ${l.panelId}`), null;
5604
5601
  const u = [];
5605
- return C && u.push(new te(d)), u.push(
5602
+ return d && u.push(new te(C)), u.push(
5606
5603
  new O(
5607
5604
  {
5608
5605
  stepRegion: l,
5609
5606
  stepName: e.stepName,
5610
5607
  colors: {},
5611
- id: d,
5608
+ id: C,
5612
5609
  svg: B,
5613
5610
  type: G.Illustration,
5614
5611
  y: l.top,
@@ -5623,18 +5620,18 @@ class sn {
5623
5620
  w
5624
5621
  )
5625
5622
  ), {
5626
- id: d,
5623
+ id: C,
5627
5624
  region: l,
5628
5625
  command: new k(u)
5629
5626
  };
5630
5627
  };
5631
5628
  if (i.length > 0) {
5632
- const l = i.map((C) => {
5633
- if (!C.region)
5629
+ const l = i.map((d) => {
5630
+ if (!d.region)
5634
5631
  return null;
5635
- const d = s.svgPrint(t, C.region);
5636
- return r(d, C.region, C.id);
5637
- }).filter((C) => !!C).filter((C) => !!C).map((C) => C && C.command);
5632
+ const C = s.svgPrint(t, d.region);
5633
+ return r(C, d.region, d.id);
5634
+ }).filter((d) => !!d).filter((d) => !!d).map((d) => d && d.command);
5638
5635
  return {
5639
5636
  command: new k(l),
5640
5637
  followup: async () => {
@@ -5642,16 +5639,16 @@ class sn {
5642
5639
  };
5643
5640
  } else {
5644
5641
  const B = e.data.regions.map(
5645
- (C) => r(s.svgPrint(t, C), C)
5646
- ), l = B.filter((C) => !!C).map((C) => C && C.command);
5642
+ (d) => r(s.svgPrint(t, d), d)
5643
+ ), l = B.filter((d) => !!d).map((d) => d && d.command);
5647
5644
  return {
5648
5645
  command: new k(l),
5649
5646
  followup: async () => {
5650
- const C = B.filter((d) => d).map((d) => d && { id: d.id, region: d.region });
5647
+ const d = B.filter((C) => C).map((C) => C && { id: C.id, region: C.region });
5651
5648
  await A.setSelectionsAndElements(
5652
5649
  e.stepName,
5653
5650
  [],
5654
- C
5651
+ d
5655
5652
  );
5656
5653
  }
5657
5654
  };
@@ -5675,7 +5672,7 @@ class sn {
5675
5672
  return a(""), !0;
5676
5673
  }
5677
5674
  }
5678
- const on = new sn();
5675
+ const hA = new on();
5679
5676
  class rn {
5680
5677
  async init(e, t, A) {
5681
5678
  const a = e.option;
@@ -5699,7 +5696,7 @@ class rn {
5699
5696
  if (o && g) {
5700
5697
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5701
5698
  if (B) {
5702
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5699
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5703
5700
  await t.setSelectionsAndElements(
5704
5701
  e.stepName,
5705
5702
  [B],
@@ -5725,17 +5722,17 @@ class rn {
5725
5722
  return console.error("No URL for picture!"), null;
5726
5723
  a(!0), e.mandatory && A.setMandatoryFulfilled(e.stepName, !1);
5727
5724
  const o = A.getRegionElements(e.stepName).map((B) => new te(B.id)), r = (B) => {
5728
- const C = A.getLayouts().find((E) => E.panelId === B.panelId);
5729
- if (!C)
5725
+ const d = A.getLayouts().find((E) => E.panelId === B.panelId);
5726
+ if (!d)
5730
5727
  throw new z(B);
5731
- const d = J();
5728
+ const C = J();
5732
5729
  return {
5733
- regionElement: { id: d, region: B },
5730
+ regionElement: { id: C, region: B },
5734
5731
  command: new O(
5735
5732
  {
5736
5733
  stepName: e.stepName,
5737
5734
  stepRegion: B,
5738
- id: d,
5735
+ id: C,
5739
5736
  src: i,
5740
5737
  type: G.Image,
5741
5738
  y: B.top,
@@ -5748,7 +5745,7 @@ class rn {
5748
5745
  immutable: B.immutable,
5749
5746
  preserveAspectRatio: "none"
5750
5747
  },
5751
- C
5748
+ d
5752
5749
  )
5753
5750
  };
5754
5751
  }, g = e.data.regions.map(r);
@@ -5767,7 +5764,7 @@ class rn {
5767
5764
  };
5768
5765
  }
5769
5766
  }
5770
- const EA = new rn();
5767
+ const uA = new rn();
5771
5768
  class cn {
5772
5769
  async init(e, t, A) {
5773
5770
  const a = e.option;
@@ -5826,7 +5823,7 @@ class cn {
5826
5823
  };
5827
5824
  }
5828
5825
  }
5829
- const hA = new cn();
5826
+ const QA = new cn();
5830
5827
  class gn {
5831
5828
  constructor() {
5832
5829
  this.shapeFillId = "spiff-fill-shape";
@@ -5853,7 +5850,7 @@ class gn {
5853
5850
  async init(e, t, A) {
5854
5851
  const a = e.option;
5855
5852
  if (!a)
5856
- throw new Ue(e);
5853
+ throw new ke(e);
5857
5854
  if (A)
5858
5855
  await this.reload(e, t, A);
5859
5856
  else {
@@ -5886,15 +5883,15 @@ class gn {
5886
5883
  if (o && g) {
5887
5884
  const B = (r = o.variants) == null ? void 0 : r.find((l) => l.id === g);
5888
5885
  if (B) {
5889
- const l = s.map((C) => ({ id: C.id, region: C.stepRegion }));
5886
+ const l = s.map((d) => ({ id: d.id, region: d.stepRegion }));
5890
5887
  await t.setSelectionsAndElements(
5891
5888
  e.stepName,
5892
5889
  [B],
5893
5890
  l,
5894
5891
  async () => {
5895
- var C;
5892
+ var d;
5896
5893
  t.updateStorage(e.stepName, {
5897
- colour: ((C = a == null ? void 0 : a.storage) == null ? void 0 : C.colour) || ""
5894
+ colour: ((d = a == null ? void 0 : a.storage) == null ? void 0 : d.colour) || ""
5898
5895
  }), t.setMandatoryFulfilled(e.stepName, !0);
5899
5896
  }
5900
5897
  );
@@ -5917,8 +5914,8 @@ class gn {
5917
5914
  const l = B.region;
5918
5915
  if (!n.find((E) => E.panelId === (l == null ? void 0 : l.panelId)))
5919
5916
  throw new z(l);
5920
- const d = s();
5921
- return new et(B.id, this.shapeFillId, d);
5917
+ const C = s();
5918
+ return new et(B.id, this.shapeFillId, C);
5922
5919
  }, g = A.map(r).filter((B) => !!B);
5923
5920
  return {
5924
5921
  command: new k(g),
@@ -5931,10 +5928,10 @@ class gn {
5931
5928
  }
5932
5929
  };
5933
5930
  } else {
5934
- const r = (C) => {
5935
- const d = n.find((I) => I.panelId === C.panelId);
5936
- if (!d)
5937
- throw new z(C);
5931
+ const r = (d) => {
5932
+ const C = n.find((I) => I.panelId === d.panelId);
5933
+ if (!C)
5934
+ throw new z(d);
5938
5935
  const E = s(), w = `
5939
5936
  <svg
5940
5937
  xmlns="http://www.w3.org/2000/svg"
@@ -5960,29 +5957,29 @@ class gn {
5960
5957
  const h = J();
5961
5958
  return {
5962
5959
  id: h,
5963
- region: C,
5960
+ region: d,
5964
5961
  command: new O(
5965
5962
  {
5966
- stepRegion: C,
5963
+ stepRegion: d,
5967
5964
  stepName: e.stepName,
5968
5965
  colors: u,
5969
5966
  id: h,
5970
5967
  svg: w,
5971
5968
  type: G.Illustration,
5972
- y: C.top,
5973
- x: C.left,
5974
- rotation: C.rotation,
5975
- width: C.width,
5976
- height: C.height,
5977
- layer: C.layer,
5978
- layerIndex: C.layerIndex,
5979
- immutable: C.immutable,
5969
+ y: d.top,
5970
+ x: d.left,
5971
+ rotation: d.rotation,
5972
+ width: d.width,
5973
+ height: d.height,
5974
+ layer: d.layer,
5975
+ layerIndex: d.layerIndex,
5976
+ immutable: d.immutable,
5980
5977
  excludeFromExport: e.data.excludeFromPrint
5981
5978
  },
5982
- d
5979
+ C
5983
5980
  )
5984
5981
  };
5985
- }, g = e.data.regions.map(r), B = g.filter((C) => !!C).map((C) => C == null ? void 0 : C.command), l = g.filter((C) => !!C).map((C) => ({ id: C.id, region: C.region }));
5982
+ }, g = e.data.regions.map(r), B = g.filter((d) => !!d).map((d) => d == null ? void 0 : d.command), l = g.filter((d) => !!d).map((d) => ({ id: d.id, region: d.region }));
5986
5983
  return {
5987
5984
  command: new k(B),
5988
5985
  followup: async () => {
@@ -6026,28 +6023,28 @@ class ln {
6026
6023
  }
6027
6024
  }
6028
6025
  const Bn = new ln(), Xe = 30;
6029
- class be extends Error {
6026
+ class Je extends Error {
6030
6027
  constructor(e) {
6031
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = be.name;
6028
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
6032
6029
  }
6033
6030
  }
6034
- const Cn = ["‘", "’", "“", "”", `
6031
+ const dn = ["‘", "’", "“", "”", `
6035
6032
  `];
6036
- class Je extends Error {
6033
+ class Te extends Error {
6037
6034
  constructor(e) {
6038
- super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Je.name;
6035
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = Te.name;
6039
6036
  }
6040
6037
  }
6041
- class dn {
6038
+ class Cn {
6042
6039
  constructor() {
6043
6040
  this.cachedColors = /* @__PURE__ */ new Map(), this.filterUnsupportedCharacters = (e, t) => {
6044
6041
  let A = e.replace(
6045
6042
  /(\r\n|\r|(\u2665|\u00a9|\u00ae|[\u2000-\u2017]|[\u201E-\u3300]]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff]))/gm,
6046
6043
  ""
6047
6044
  );
6048
- const a = [], n = t ? zA(t.assetUrl) : void 0;
6045
+ const a = [], n = t ? jA(t.assetUrl) : void 0;
6049
6046
  if (n) {
6050
- const i = A.split("").filter((o) => !Cn.includes(o)).join(""), s = i.split("").map((o) => n.getFont().charToGlyph(o));
6047
+ const i = A.split("").filter((o) => !dn.includes(o)).join(""), s = i.split("").map((o) => n.getFont().charToGlyph(o));
6051
6048
  for (let o = 0; o < s.length; o++)
6052
6049
  s[o].name === ".notdef" && a.push(String.fromCharCode(i.charCodeAt(o)));
6053
6050
  }
@@ -6112,7 +6109,7 @@ class dn {
6112
6109
  return null;
6113
6110
  }
6114
6111
  findLayoutElements(e, t) {
6115
- return e.getRegionElements(t.stepName).map((n) => Re(n.id, e.getAllLayoutData()));
6112
+ return e.getRegionElements(t.stepName).map((n) => He(n.id, e.getAllLayoutData()));
6116
6113
  }
6117
6114
  /**
6118
6115
  * Get the colors that can be used for a given text step.
@@ -6140,7 +6137,7 @@ class dn {
6140
6137
  return;
6141
6138
  const n = a.getCommandDispatcher();
6142
6139
  for (const i of A) {
6143
- const s = new KA(i.id, t);
6140
+ const s = new VA(i.id, t);
6144
6141
  n(s);
6145
6142
  }
6146
6143
  }
@@ -6160,7 +6157,7 @@ class dn {
6160
6157
  for (const r of A) {
6161
6158
  if (!t.fill)
6162
6159
  throw new Error("Fill not set on new color selection!");
6163
- const g = new jA(r.id, t.fill, s);
6160
+ const g = new WA(r.id, t.fill, s);
6164
6161
  n(g);
6165
6162
  }
6166
6163
  }
@@ -6223,19 +6220,19 @@ class dn {
6223
6220
  for (const l of t) {
6224
6221
  if (!l.fontData)
6225
6222
  throw new b("Failed to resolve font data for text.");
6226
- const [C, d] = xe(
6223
+ const [d, C] = Ne(
6227
6224
  l.fontSize,
6228
6225
  l.fontData,
6229
6226
  { left: l.x, top: l.y, width: l.width, height: l.height, rotation: l.rotation, panelId: "" },
6230
6227
  [i],
6231
6228
  { size: A.data.size, minSize: A.data.minSize, maxSize: A.data.maxSize }
6232
6229
  );
6233
- g.set(l.id, C), B.set(l.id, d);
6234
- const E = A.data.curved ? i : (d || []).join(`
6230
+ g.set(l.id, d), B.set(l.id, C);
6231
+ const E = A.data.curved ? i : (C || []).join(`
6235
6232
  `);
6236
- r.push(this.generateTextChangeCommandsForRegion(C, A.data, l.id, E));
6233
+ r.push(this.generateTextChangeCommandsForRegion(d, A.data, l.id, E));
6237
6234
  }
6238
- return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((C) => C) ? (s.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
6235
+ return !A.data.curved && t.length > 0 && !Array.from(B.values()).every((d) => d) ? (s.errors.push({ localizationKey: "workflow.steps.text.doesNotFit" }), s) : (a.updateStorage(A.stepName, { text: e }), a.updateMetadata(A.stepName, {
6239
6236
  text: i
6240
6237
  }), n.defaultCleared && a.setMandatoryFulfilled(A.stepName, !0), s.command = new k(r), s);
6241
6238
  }
@@ -6272,17 +6269,17 @@ class dn {
6272
6269
  if (a != null && a.selectedVariants) {
6273
6270
  const l = a.selectedVariants[0].id;
6274
6271
  if (o && l) {
6275
- const C = (r = o.variants) == null ? void 0 : r.find((d) => d.id === l);
6276
- if (C) {
6277
- const d = await this.fontDataFromVariant(C), E = s.map((I) => ({ id: I.id, region: I.stepRegion })), w = (g = a.storage) == null ? void 0 : g.color, u = (B = a.storage) == null ? void 0 : B.text;
6272
+ const d = (r = o.variants) == null ? void 0 : r.find((C) => C.id === l);
6273
+ if (d) {
6274
+ const C = await this.fontDataFromVariant(d), E = s.map((I) => ({ id: I.id, region: I.stepRegion })), w = (g = a.storage) == null ? void 0 : g.color, u = (B = a.storage) == null ? void 0 : B.text;
6278
6275
  await t.setSelectionsAndElements(
6279
6276
  e.stepName,
6280
- [C],
6277
+ [d],
6281
6278
  E,
6282
6279
  async () => {
6283
6280
  t.updateMetadata(e.stepName, { color: w, text: u }), t.updateStorage(e.stepName, { text: u, inputText: u });
6284
- const I = s.map((p) => new yt(p.id, d)), Q = new k(I);
6285
- t.getCommandDispatcher()(Q);
6281
+ const I = s.map((m) => new yt(m.id, C)), D = new k(I);
6282
+ t.getCommandDispatcher()(D);
6286
6283
  }
6287
6284
  );
6288
6285
  const { command: h } = V.updateInputText(
@@ -6335,7 +6332,7 @@ class dn {
6335
6332
  const E = a.map((w) => new Ve(w.id, o));
6336
6333
  l.push(...E);
6337
6334
  }
6338
- const C = await this.changeInputTextWithRegion(
6335
+ const d = await this.changeInputTextWithRegion(
6339
6336
  e,
6340
6337
  e.data.size || Xe,
6341
6338
  g,
@@ -6346,7 +6343,7 @@ class dn {
6346
6343
  i,
6347
6344
  s
6348
6345
  );
6349
- return C && l.push(C), {
6346
+ return d && l.push(d), {
6350
6347
  command: new k(l),
6351
6348
  followup: async () => {
6352
6349
  n.markUpdateCompleted(r), await n.setSelectionsAndElements(e.stepName, [t], a);
@@ -6360,7 +6357,7 @@ class dn {
6360
6357
  g,
6361
6358
  A,
6362
6359
  n
6363
- ), C = await this.changeInputTextWithRegion(
6360
+ ), d = await this.changeInputTextWithRegion(
6364
6361
  e,
6365
6362
  e.data.size || Xe,
6366
6363
  g,
@@ -6370,15 +6367,15 @@ class dn {
6370
6367
  !!A.customiseAllText,
6371
6368
  i,
6372
6369
  s
6373
- ), d = l.flatMap((w) => w.commands);
6370
+ ), C = l.flatMap((w) => w.commands);
6374
6371
  if (o) {
6375
6372
  const w = l.map(
6376
6373
  (u) => new Ve(u.regionElement.id, o)
6377
6374
  );
6378
- d.push(...w);
6375
+ C.push(...w);
6379
6376
  }
6380
- return C && d.push(C), {
6381
- command: new k(d),
6377
+ return d && C.push(d), {
6378
+ command: new k(C),
6382
6379
  followup: async () => {
6383
6380
  n.markUpdateCompleted(r);
6384
6381
  }
@@ -6398,29 +6395,29 @@ class dn {
6398
6395
  throw new Error("Step data not supplied");
6399
6396
  const s = n.text || A.defaultText || "", o = this.getProcessedInput(s, A, !1), r = async (B) => {
6400
6397
  var E;
6401
- const C = i.getLayouts().find((w) => w.panelId === B.panelId), d = J();
6398
+ const d = i.getLayouts().find((w) => w.panelId === B.panelId), C = J();
6402
6399
  try {
6403
- if (!C)
6404
- throw new Je("Failed to find layout for region: " + B.panelId);
6400
+ if (!d)
6401
+ throw new Te("Failed to find layout for region: " + B.panelId);
6405
6402
  const w = A.colorOption;
6406
6403
  let u;
6407
6404
  if (w && w.variants) {
6408
- const x = w.variants.find((v) => {
6405
+ const x = w.variants.find((R) => {
6409
6406
  var L;
6410
- return v.id === ((L = w.defaultVariant) == null ? void 0 : L.id);
6407
+ return R.id === ((L = w.defaultVariant) == null ? void 0 : L.id);
6411
6408
  }) || w.variants[0];
6412
6409
  u = this.createTextFillSpotColor(w, x), i.updateStorage(e, {
6413
6410
  colorProfileAssetKey: (E = w.colorProfile) == null ? void 0 : E.key
6414
6411
  });
6415
6412
  }
6416
- const h = await this.getDefaultColor(A), I = h || "#000000", Q = {
6413
+ const h = await this.getDefaultColor(A), I = h || "#000000", D = {
6417
6414
  stepRegion: B,
6418
6415
  stepName: e,
6419
6416
  align: this.textAlign(A),
6420
6417
  fill: n.color ? n.color : I,
6421
6418
  fontSize: A.size || Xe,
6422
6419
  fontData: a,
6423
- id: d,
6420
+ id: C,
6424
6421
  layer: B.layer,
6425
6422
  layerIndex: B.layerIndex,
6426
6423
  rotation: B.rotation,
@@ -6437,41 +6434,41 @@ class dn {
6437
6434
  curved: A.curved,
6438
6435
  paths: A.paths,
6439
6436
  fillSpotColorDefinition: u
6440
- }, p = [], m = /* @__PURE__ */ new Map(), D = /* @__PURE__ */ new Map();
6441
- if (!Q.fontData)
6437
+ }, m = [], Q = /* @__PURE__ */ new Map(), p = /* @__PURE__ */ new Map();
6438
+ if (!D.fontData)
6442
6439
  throw new b("Failed to resolve font data for text.");
6443
- const [y, M] = xe(
6444
- Q.fontSize,
6445
- Q.fontData,
6440
+ const [y, M] = Ne(
6441
+ D.fontSize,
6442
+ D.fontData,
6446
6443
  {
6447
- left: Q.x,
6448
- top: Q.y,
6449
- width: Q.width,
6450
- height: Q.height,
6451
- rotation: Q.rotation,
6444
+ left: D.x,
6445
+ top: D.y,
6446
+ width: D.width,
6447
+ height: D.height,
6448
+ rotation: D.rotation,
6452
6449
  panelId: ""
6453
6450
  },
6454
6451
  [o],
6455
6452
  { size: A.size, minSize: A.minSize, maxSize: A.maxSize }
6456
6453
  );
6457
- m.set(Q.id, y), D.set(Q.id, M);
6454
+ Q.set(D.id, y), p.set(D.id, M);
6458
6455
  const S = A.curved || A.vertical ? o : (M || []).join(`
6459
6456
  `);
6460
- p.push(
6461
- this.generateTextChangeCommandsForRegion(y, A, Q.id, S)
6457
+ m.push(
6458
+ this.generateTextChangeCommandsForRegion(y, A, D.id, S)
6462
6459
  );
6463
- const N = new O(Q, C);
6460
+ const N = new O(D, d);
6464
6461
  return {
6465
- regionElement: { id: d, region: B },
6466
- commands: [N, ...p],
6467
- newElement: Q,
6462
+ regionElement: { id: C, region: B },
6463
+ commands: [N, ...m],
6464
+ newElement: D,
6468
6465
  fontData: a
6469
6466
  };
6470
6467
  } catch (w) {
6471
- throw console.log(w), new be("Error adding font to region");
6468
+ throw console.log(w), new Je("Error adding font to region");
6472
6469
  }
6473
6470
  }, g = await Promise.all(A.regions.map(r)).catch((B) => {
6474
- throw B instanceof be ? (Bn.setLatestToast("Failed to load font.", Te.Error), B) : B instanceof Je ? B : new Error(B);
6471
+ throw B instanceof Je ? (Bn.setLatestToast("Failed to load font.", pe.Error), B) : B instanceof Te ? B : new Error(B);
6475
6472
  });
6476
6473
  return await i.setSelectionsAndElements(
6477
6474
  e,
@@ -6487,9 +6484,9 @@ class dn {
6487
6484
  ), g;
6488
6485
  }
6489
6486
  generateTextChangeCommandsForRegion(e, t, A, a) {
6490
- const n = [], i = new VA(A, a);
6487
+ const n = [], i = new XA(A, a);
6491
6488
  if (n.push(i), !t.size) {
6492
- const o = new WA(A, e);
6489
+ const o = new qA(A, e);
6493
6490
  n.push(o);
6494
6491
  }
6495
6492
  return new k(n);
@@ -6498,30 +6495,30 @@ class dn {
6498
6495
  * @deprecated
6499
6496
  */
6500
6497
  async changeInputTextWithRegion(e, t, A, a, n, i, s, o, r, g) {
6501
- const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), C = i.getRegionElements(e.stepName), d = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
6502
- for (const Q of C)
6503
- if (Q.region) {
6504
- const [p, m] = xe(
6498
+ const B = (a || "").replace(/^(?![\u000A\u000D])[\u0000-\u001F\u007F-\u009F]/g, ""), l = this.getProcessedInput(B, e.data, s), d = i.getRegionElements(e.stepName), C = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new Map();
6499
+ for (const D of d)
6500
+ if (D.region) {
6501
+ const [m, Q] = Ne(
6505
6502
  t,
6506
6503
  A,
6507
- Q.region,
6504
+ D.region,
6508
6505
  [l],
6509
6506
  { size: e.data.size, minSize: e.data.minSize, maxSize: e.data.maxSize }
6510
6507
  );
6511
- d.set(Q.id, p), E.set(Q.id, m);
6508
+ C.set(D.id, m), E.set(D.id, Q);
6512
6509
  }
6513
6510
  const u = (() => {
6514
6511
  if (e.data && e.data.maxLength && l.length > e.data.maxLength)
6515
6512
  return g && g(!0), { info: "0" };
6516
- const Q = i.getProfanities(), p = at(l.toLowerCase());
6517
- for (const m of p)
6518
- for (const D in Q) {
6519
- const y = Q[D].toLowerCase().replace(/\s/g, "");
6520
- if (m === y)
6513
+ const D = i.getProfanities(), m = at(l.toLowerCase());
6514
+ for (const Q of m)
6515
+ for (const p in D) {
6516
+ const y = D[p].toLowerCase().replace(/\s/g, "");
6517
+ if (Q === y)
6521
6518
  return o(!0), { error: "Blocked profanity." };
6522
6519
  }
6523
6520
  return !e.data.vertical && !e.data.allowNewlines && (l.includes(`
6524
- `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((D) => D) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
6521
+ `) || l.includes("\r")) ? (o(!0), { error: "Cannot span multiple lines." }) : !e.data.curved && !Array.from(E.values()).every((p) => p) ? (o(!0), { error: "Does not fit." }) : (o(!1), { info: (e.data.maxLength - l.length).toString() });
6525
6522
  })();
6526
6523
  if (u.error) {
6527
6524
  r(u.error);
@@ -6533,22 +6530,22 @@ class dn {
6533
6530
  text: this.injectReplaceableText(B, e.data)
6534
6531
  }), n.defaultCleared && i.setMandatoryFulfilled(e.stepName, !0);
6535
6532
  const h = [];
6536
- for (const Q of C) {
6537
- const p = e.data.curved ? l : (E.get(Q.id) || []).join(`
6533
+ for (const D of d) {
6534
+ const m = e.data.curved ? l : (E.get(D.id) || []).join(`
6538
6535
  `);
6539
6536
  h.push(
6540
6537
  this.generateTextChangeCommandsForRegion(
6541
- d.get(Q.id) || 1,
6538
+ C.get(D.id) || 1,
6542
6539
  e.data,
6543
- Q.id,
6544
- p
6540
+ D.id,
6541
+ m
6545
6542
  )
6546
6543
  );
6547
6544
  }
6548
6545
  return new k(h);
6549
6546
  }
6550
6547
  }
6551
- const V = new dn();
6548
+ const V = new Cn();
6552
6549
  class Et {
6553
6550
  }
6554
6551
  const wn = "data:application/font-woff;base64,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", En = `<?xml version="1.0" encoding="iso-8859-1"?>
@@ -7812,38 +7809,38 @@ IfnI8vaNAAAAAElFTkSuQmCC" transform="matrix(0.13 0.0141 -0.0141 0.1301 104.926 1
7812
7809
  </g>
7813
7810
  </svg>
7814
7811
 
7815
- `, R = (c) => XA("http://www.w3.org/2000/svg", c), ht = (c, e) => {
7816
- const t = R("rect");
7812
+ `, v = (c) => ZA("http://www.w3.org/2000/svg", c), ht = (c, e) => {
7813
+ const t = v("rect");
7817
7814
  return t.setAttribute("height", `${c}`), t.setAttribute("width", `${e}`), t;
7818
7815
  }, hn = () => {
7819
- const c = R("svg");
7816
+ const c = v("svg");
7820
7817
  return c.setAttribute("xmlns", "http://www.w3.org/2000/svg"), c.setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink"), c.setAttribute("version", "1.1"), c;
7821
7818
  }, un = (c) => {
7822
- const e = R("use");
7819
+ const e = v("use");
7823
7820
  return e.setAttribute("xlink:href", c), e.setAttribute("href", c), e;
7824
7821
  };
7825
- function uA(c) {
7822
+ function mA(c) {
7826
7823
  const e = hn(), t = /viewBox="0 0 (.+?) (.+?)"/.exec(c) || ["0", "0"], A = parseFloat(t[1]), a = parseFloat(t[2]);
7827
7824
  return e.setAttribute("height", `${a}`), e.setAttribute("width", `${A}`), [e, a, A];
7828
7825
  }
7829
7826
  const Qn = (c, e, t) => {
7830
- const A = R("g");
7827
+ const A = v("g");
7831
7828
  c.appendChild(A), A.setAttribute("id", t), A.innerHTML = e;
7832
7829
  };
7833
- function QA(c, e, t) {
7830
+ function pA(c, e, t) {
7834
7831
  const A = J();
7835
7832
  Qn(e, t, `bgdef-${A}`), c.appendChild(un(`#bgdef-${A}`));
7836
7833
  }
7837
- const mA = (c, e, t, A) => {
7838
- const a = Ie("filter");
7834
+ const DA = (c, e, t, A) => {
7835
+ const a = fe("filter");
7839
7836
  a.setAttribute("id", A), a.setAttribute("height", "200%"), a.setAttribute("width", "200%"), a.setAttribute("x", "-50%"), a.setAttribute("y", "-50%");
7840
- const n = Ie("feOffset");
7837
+ const n = fe("feOffset");
7841
7838
  a.appendChild(n), n.setAttribute("result", "offOut"), n.setAttribute("in", "SourceAlpha"), n.setAttribute("dx", `${c}`), n.setAttribute("dy", `${e}`);
7842
- const i = Ie("feGaussianBlur");
7839
+ const i = fe("feGaussianBlur");
7843
7840
  a.appendChild(i), i.setAttribute("result", "blurOut"), i.setAttribute("in", "offOut"), i.setAttribute("stdDeviation", `${t}`);
7844
- const s = Ie("feBlend");
7841
+ const s = fe("feBlend");
7845
7842
  return a.appendChild(s), s.setAttribute("in", "SourceGraphic"), s.setAttribute("in2", "blurOut"), s.setAttribute("mode", "normal"), a;
7846
- }, pA = (c) => {
7843
+ }, IA = (c) => {
7847
7844
  let e = c;
7848
7845
  return e = e.replace(/feoffset/gi, "feOffset"), e = e.replace(/fegaussianblur/gi, "feGaussianBlur"), e = e.replace(/feblend/gi, "feBlend"), e = e.replace(/lineargradient/gi, "linearGradient"), e = e.replace(/stddeviation/gi, "stdDeviation"), e;
7849
7846
  };
@@ -7906,7 +7903,7 @@ class Qt {
7906
7903
  l = (B * 100 | 0) / 100;
7907
7904
  break;
7908
7905
  default:
7909
- throw new de("Failed to encode path.");
7906
+ throw new Ce("Failed to encode path.");
7910
7907
  }
7911
7908
  o || i.push(" "), i.push(l), o = !1;
7912
7909
  }
@@ -7920,12 +7917,12 @@ class Qt {
7920
7917
  for (t.lastIndex = 0; n = t.exec(e); ) {
7921
7918
  const i = n[1].toLowerCase(), s = (n[2].match(A) || []).map(parseFloat), o = i === n[1], r = Ut[i];
7922
7919
  if (s.length < r.length)
7923
- throw new de(
7920
+ throw new Ce(
7924
7921
  `Path type "${i}" given ${s.length} arguments, expected ${r.length}.`
7925
7922
  );
7926
7923
  if (r.length > 0) {
7927
7924
  if (s.length % r.length !== 0)
7928
- throw new de(
7925
+ throw new Ce(
7929
7926
  `Path type "${i}" given ${s.length} arguments, not divisible by ${r.length}`
7930
7927
  );
7931
7928
  for (let g = 0; g < s.length / r.length; g++) {
@@ -7950,7 +7947,7 @@ class Qt {
7950
7947
  if (s in n && o in n) {
7951
7948
  const r = [n[s], n[o]], g = t(r);
7952
7949
  if (g.length < 2)
7953
- throw new de("Transformer must return at least 2 points.");
7950
+ throw new Ce("Transformer must return at least 2 points.");
7954
7951
  n[s] = g[0], n[o] = g[1];
7955
7952
  }
7956
7953
  }
@@ -7989,31 +7986,31 @@ class pn extends Et {
7989
7986
  }
7990
7987
  brandSvg(e, t) {
7991
7988
  const A = e.toSVG(2), a = e.getBoundingBox(), n = a.x2 - a.x1, i = e.toPathData(3), s = () => {
7992
- const p = R("g"), m = R("defs");
7993
- p.appendChild(m), m.appendChild(mA(3, 7, 4, "shadow"));
7994
- const D = R("g");
7995
- p.appendChild(D), D.setAttribute("filter", "url(#shadow)"), D.innerHTML = A;
7996
- const y = R("g");
7997
- p.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = A;
7998
- const M = R("g");
7999
- p.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
8000
- const S = R("g");
8001
- return p.appendChild(S), S.setAttribute("fill", "yellow"), S.innerHTML = A, new Qt(p).transform(([x, v]) => [x, v + (n / 2 - x) ** 2 / (n * 2.9)]), p;
8002
- }, [o, r, g] = uA(t);
7989
+ const m = v("g"), Q = v("defs");
7990
+ m.appendChild(Q), Q.appendChild(DA(3, 7, 4, "shadow"));
7991
+ const p = v("g");
7992
+ m.appendChild(p), p.setAttribute("filter", "url(#shadow)"), p.innerHTML = A;
7993
+ const y = v("g");
7994
+ m.appendChild(y), y.setAttribute("fill", "red"), y.setAttribute("stroke", "red"), y.setAttribute("stroke-width", "9"), y.innerHTML = A;
7995
+ const M = v("g");
7996
+ m.appendChild(M), M.setAttribute("fill", "#9d2621"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = A;
7997
+ const S = v("g");
7998
+ return m.appendChild(S), S.setAttribute("fill", "yellow"), S.innerHTML = A, new Qt(m).transform(([x, R]) => [x, R + (n / 2 - x) ** 2 / (n * 2.9)]), m;
7999
+ }, [o, r, g] = mA(t);
8003
8000
  if (!o)
8004
8001
  return "";
8005
- const B = R("defs");
8006
- o.appendChild(B), QA(o, B, t);
8007
- const l = r * 0.23, C = g * 0.94, d = g * 0.04, E = r * 0.53, w = R("g");
8008
- o.appendChild(w), w.setAttribute("transform", `translate(${d} ${E}) rotate(-21)`);
8009
- const u = ht(l, C);
8002
+ const B = v("defs");
8003
+ o.appendChild(B), pA(o, B, t);
8004
+ const l = r * 0.23, d = g * 0.94, C = g * 0.04, E = r * 0.53, w = v("g");
8005
+ o.appendChild(w), w.setAttribute("transform", `translate(${C} ${E}) rotate(-21)`);
8006
+ const u = ht(l, d);
8010
8007
  u.setAttribute("opacity", "0"), w.appendChild(u);
8011
- const h = R("g");
8008
+ const h = v("g");
8012
8009
  w.appendChild(h);
8013
8010
  const I = s();
8014
8011
  h.appendChild(I);
8015
- const Q = Bt(i);
8016
- return ut(h, Q, l, C), pA(o.outerHTML);
8012
+ const D = Bt(i);
8013
+ return ut(h, D, l, d), IA(o.outerHTML);
8017
8014
  }
8018
8015
  }
8019
8016
  const Dn = "data:application/octet-stream;base64,AAEAAAAPAIAAAwBwRkZUTYPq+1wAAOjIAAAAHEdERUYA4AB5AADfmAAAACRHUE9TS5tfuQAA5DwAAASKR1NVQiMzLFQAAN+8AAAEfk9TLzJp7a5lAAABeAAAAGBjbWFw0xjbSAAABIgAAAJwZ2FzcP//AAMAAN+QAAAACGdseWbwDKFSAAAIVAAAz+xoZWFkEhAn1wAAAPwAAAA2aGhlYQarAo0AAAE0AAAAJGhtdHht1RNRAAAB2AAAArBsb2Nh+CbEtgAABvgAAAFabWF4cADzANMAAAFYAAAAIG5hbWXa9+qFAADYQAAAAjFwb3N0jPH63wAA2nQAAAUZAAEAAAABAAARfaMVXw889QALA+gAAAAA1+lypQAAAADX6XKl/zH/FgPtApIAAAAIAAIAAAAAAAAAAQAAA4r/JgAAA7P/Mf8HA+0AAQAAAAAAAAAAAAAAAAAAAKwAAQAAAKwA0AAFAAAAAAACAAAAAQABAAAAQAAAAAAAAAAEAisBkAAFAAACigK7AAAAjAKKArsAAAHfADEBAgAAAAAAAAAAAAAAAAAAAANQAAAAAAAAAAAAAABYWFhYAEAACvsCA4r/JgAAAokA5QAAAAEAAAAAAaQCfwAAACAAAwH0AAAAAAAAAU0AAAAAAAAAAAAAAN4AAAH3ACIB4AAwAbYALwHsADABTwAwASsALQHZADEBpQAtATkAMAGCAC8B/gAvAdAALQJXAC0B2gAtAdUALwGWADIB5wAvAb4AMgG+ABsA5wAtAbcAMAFZADECQwAoAd8ALwELAC8CAAAoAUb/7AE1//kBKv/3ATL/9gFC//gA7AAeAVH/9QFC//sAm//7ALn/OgFo//sAsv//AeL//gE7//4BSv/4AWb/xwFG//gBAAACAUn/6ACxAAQBRP/9AUkABQHT//UBhAABAUz/1AFi//cA3gAAA2EAIgKfACICKwAwAigAMAIBADAC1gAwAhkAMAKuADACMAAtAr4ALQLiAC0CGwAtArkALQJtAC0CjwAtAhAAMAKyADACJAAwAfMAMAH1ADAClgAxAm8ALwJkAC8C4wAvAxcALwJUAC8C7AAvAr8ALwNxAC8DNwAvAoQALQMAAC0DiQAtAxAALQKSAC0CsQAtAq0ALwMQAC8C0wAyA3MAMgKTADICdAAyAtwAMgLaADICOQAyAp4AMgLsADICQwAyAyYAMgJZADIDAAAyAxwAMgLoADIC4wAyAtQAMgN1ADIDMAAyAp8AMgKDADICJgAtAhkALQKzAC0C1QAtAh8ALQKtAC0CeAAwAuYAMAKkADACLAAxAoIAMQI9ADECBgAxAv4AKAMiACgDQwAvAfUALwGyAC4CEwAvAnIALwHWAC8CmAAvAnEALwKMACIC9QAvAsUAMAK5ADEDJAAvAeQAAQIyAAgCDAAGAeEAAAKEAAUB///8AgkAAAH6ACgChwApAoAAJQK2AC4CNv/3AYD/MgIV/9ABoAAAAboAAgISAAQBdgAWAk4ACAGPAA8DEQAGAycAAQOz//4B+QAlAasAHQH2AC4AAAADAAAAAwAAABwAAQAAAAABagADAAEAAAAcAAQBTgAAADQAIAAEABQAAAAKAA0AIABaAHoAoADFAM8A1gDdAOUA7wD2AP0A//AB8AbwDfBV8FvwXfBm8Hb7Av//AAAAAAAKAA0AIABBAGEAoADAAMcA0QDYAN8A5wDxAPgA//AB8APwCPAP8FfwXfBf8Gn7AP//AAD/+f/3/+X/xf+//5oAAAAAAAAAAAAAAAAAAAAA/zkQOhA5EDgQNxA2EDUQNBAyBakAAQAAAAAAAAAAAAAAAAAAACYAMABAAEoAVABgAHAAegAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAGAAYABgAGAAYACAAKAAoACgAKAA4ADgAOAA4AEwAUABQAFAAUABQAFAAaABoAGgAaAB4AMgAgACAAIAAgACAAIAAiACQAJAAkACQAKAAoACgAKAAtAC4ALgAuAC4ALgAuADQANAA0ADQAOAAAAQYAAAEAAAAAAAAAAQIDAAAEAAAAAAAAAAAAAAAAAAAAAQAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8AAAAAAAAgISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OQAAAAAABgYIChMUGiAgICAgICIkJCQkKCgoKC0uLi4uLjQ0NDQAAAAAAAAAMgAAAAAAAAAUAAAAAAAAAAAAAAAAAAAALgAAAAAAAAAAAAA6BgYUAAAAAAAAAAAAADgAAAAAAKqrAAAAAAAGCgYKCg4ODg4UFAAUGhoaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAMwBMAF+Ad4CSALGA0oDngQOBI4E7gWaBhYGcAa6Bz4Hlgf6CEgIlgjuCXoJ3AoeCogK+gtmC7oMJgyEDPYNkg38DkAOjg76DzgP3hBGEJQQ/hFkEaASABJYEqoS9hNwE8QURhScFJwVXBYAFrQXfBgkGPIZhhpSGwgb0hyeHTYeCB7eH84geCEwIfIilCMgI9gkmCV2JkInFCe0KIwpXipCK0Ar9CzqLfIvBC/UMLoxfDIeMsozijQCNJw1WDXqNnI3JjfQOFo5BDmCOhg6rDs8O+o8kj2MPkY/Ej+6QFhBEkHEQnhDAEOyRFJE9kW0RmZHGEfgSHZJVkpOSxBLpkwiTNZNfE38Tq5PWFAgUPpRvlJ4UzhT/FSeVXpWPFb6V7hYhFlGWhpa9lvQXKxdWl4qXtZfmGBaYOxhqmI6Y05khmW8ZpxnUGf2AAAAAgAi//kB7QKFACgAOQAAJRQWBgcGJy4BJyY/AS4CBwYHBgcGJyY3Njc+Azc2HgIHBhUHBic2FzY3NgciBw4BBw4CHgEBugUBAw0cEBcDBwUDEzYsEB0LBw0aMToUDUMOPlNbHx0kCAMDARoZwk0vAw4ZGgUMElkdAQICAQhMBRsQBxoDAhMPHT0iBgcBAQMSCjFhAwRXPIocZnteBgYTIygQBQLCv2UCEDNLiQEKDos7AQMJBwYAAAMAMP//AeACgAAhADEARgAAAR4FBgcOBAcGBwYmJyY3Ejc2Nz4BHgEXFg4BBzYmJyYGDwEGBw4BFjMyNhM+AScmBwYHDgEPARYyNjI+BAF8AgcRDg4HBAkBBRkiPyYdJT5SAgEJRVwWIw8yOzQMDxIzRRkFHhY7GRoeDQMCEhcnVy4kAyYQDiASFB4GBQEFDg4VExYTEgFRAQQOEh8mNx8FDyoiIwcGAQEZMRgpATaDIhAHBAkoITFeRsgmVw8IAgYGTEkNFAoZASkfZw4GAwgcIEoVFAEBAgMFBwkAAAAAAQAv//8B7wKMAEYAADMiLgEnLgY3Njc2NzY3NhcWFQYHBiIuAicwLgMGBw4GBw4BHgI+Azc+AxceAhUOAQcOArYDECAKAgYUDhMHBQcLHTpxNytEJhgBEQsRCwcFAQYECwsUDAIHFxgjIScRFg4LGBoWDw4HCAYRCxcPDRQHAzUXEhoxAgkIAQURFiQqOiE0QopcLAoQKxwmHwoGCQoNAQkFBwMBBAEDEBQkLEImL04uIAsCBQsHCgYbDwsCAhMZDBpFDgsNCgACADD//QH7AogAHQAvAAABHgMHDgUHBi4DNSY2NzY3PgE3Njc2Ez4BLgEnJg4CDwEOARceATYBiyUyEQcFAhAcLThOLC9CJxYHAw4XBAIQRh4YMzgaHxkKHBYTIxYQBAQoQQcGRWACeQk0QEccFUJaWE82BggHDBcQCSpJUg8IO6g6Lw8Q/mZPd0UlBQUNGRsJCl7JHxwUQAAAAAABADD/+gHjAosAPAAAAS4BIgcGBxc2FxYHBgcGIwcGBwYXFjYWFx4BBxQOAwcGJyYnLgE2NzY3BgcGJyY+ATc2Fx4EBwYBtgY3MRdHFSwZDw8GBhcUEUEdBQk0DSEYCA8PBAEEBw0IPSk8HQwDCws5RhUGIQ8JAwoHM5wmOBwQBAEBAiYBAQNhPQEBDg4XFQUFBlYtRAUBAwEECBsOAQMICAkDFQcLMBRKTCK+ZQQBBhELFhAEJRAEDA0QCgYYAAABAC3//wHgAoYASQAAAR4CDgEHDgIiLgEjJgcUBxQOAQcyFx4BFxYGIwYHFDEGBxQOByMiLgEnJjY3NjcGJyIuBCcmNz4DPwE2FgHDDQ4CBQMBBA0NEw8WByEwARMgDTEKCxcDBRgaHzUuDAMBAwMFBwkNBwQLFQMFKB0gNRUPAwcGBgQEARgLAQcJBwMCNNQCYgcRCgwDAQQDAgEBAQMBAQEsTSABAQ8QExsBBgGEXwQVBxEGDQUGAgISEBy6Ulp/BAEBAgICAQEPGwQJBgUBARcOAAEAMf/9Ad4ChwBVAAABDgQHDgEeAhcWNzY3Jjc2ND4EMxYXMh4DBwYHFAcGBwYnKgEuAjc2NwYHDgInJicuAzY3Njc2NzY3NhcWBwYHDgEuAjU0JyYBawQOKio6GhgUBhIVCRgbBQkbBwEEBAoLEQphFAEDCQQEBAgYAQgFCR0BBg4KCAEBAhsWERcuFyESAwkVDAELEB9CaTQmPRwSBAQQCw0KBAQBCwIYAgYfK1EyLkoqHQsBAh8GDQkbAQQKCQsHBgUGAQQJDwwgBwkLXhMeAwYLGA8KDiENCQoJBQUUAgsnLk8sNEGIUCgGCi8fJh8IBAELCg4BAQEYAAEALf/+Af0CgwBdAAABHgMUDgIxDgIHBgcUDgQjKgEuAicmNjc2JyYHBgcGBw4HIyIuAScmNjc+AT8BND4DFx4DFA4CMQ4CBwYXFhcWNz4BPwE+BAHhCAsGAgIDAgEjMA4yCgMCBgkRCwEFDAoKAgQVEwMLRw4NBx0IAQIBAwQHCg0JBAsWAwUnHRIwEBAEDA4XDAgLBgICAwIBGCcOBAUmMgoEEi4PDgEEDA4WAn0DCQkNCgwHCAFWeiiYUgYfCxUIBwQHEAoVfEgKAQwEBBNmQAUWChIIDAUEAhMQHcBUM4EnJwIHEggJBgMJCQ0KDAcIATxfJg4BCQQBCjJ7JSQCBxIICQAAAAEAMP//Ab4CgAA5AAABFgYHIiMGBwYHFDEWFzAWMh4EBhUOAQciJyYnJjY3MjM2NzY3JiMwJiIuBDQ3PgE3FhcWAbwBHCMJCkYVMAkSBAUCBgMFAgMBBBoYaxAhAgEbIwgLDS0fMQoCBQIGAwUCAgEFGhhrECECYBMmAaw/lVABAQEBAgIEBQgJBhkTAgIEFRMnAnSHWoABAQIDAwYHCgUZEwIEAgUAAAEAL///AhoCfwBNAAABPgM/AQYHMCMGJyY+ATc+ARceBBcWFQYHBicmJw4EBw4GIy4ENzQ+ATc+AxYXFgcGBwYHBhcWNz4DASAHEg8OBARSEgM6CQUHEQsUmDAKGw8QCwUXASIHChUUBAsiHyUNAQEHCxYbKhoHFC4hGAQCEQ8BBA0NFAkYBAIICwINJSsNAQ8SFwGPFzElHgcIAQQMHhAbEgQHAQYBAgEDAwILGiYGAQEBBQYVTFuWVAIJGRcbFAwBAhAbOScGFTIQAQUJBgEFDh4NDhIKNggJKQVEUl8AAQAv//gCVgKLAFcAAAEOAQ8BMD4FNz4BHgIXFBYOAgcGBx4CFxYXHgEGBw4BLgYnLgEnDgQHDgIHBiY3PgE3PgE/AQ4EJy4BNjc+ARceAwYBLQsiCwwTISs0NDoZAwgYFBUGAQMHFBChXAMNOCUXDQcKDBYIEA8ODgsMBwkBDUwDAQYODQ8FBgkPEyAuAwMqGA4YBQQBBQ8OFgkQAhMQHmImAgUMBwECMhlbISETHycpJR0HAQEBBhIOAgQNDQ8GQFwMKHIyFwwHGSMNBQIEBw0KEAoOAROXEwIGFBYkEhZLJwsUHiQjqUssURISAQQNBQUGBh4iEiMzEAEDCw8aAAEALQAAAaEChABDAAAlFgcOAw8BDgEqASYjJiMiBwYHBisBIiMqAS4CJyY2Nz4FPwE+BBceAxQOAjEUDgEHBgc+ARcWAZoGAwEEBAQBAQQMDQoMATIMGFsOKAMEAQQBAgYQDQwCBS4fCRQUFBANBAMBBAwOFwwICwYCAwIDJTAOFxw0gh4aVg8SBgwIBgECBQcDBggBBAEEBxAKG71ZFzYwMCYeCAgCBhIJCAYDCQoMCgwIBwFWeSlDiAYBBwYAAAEALf/zAoYCiwByAAABDgMPAQ4EBxwBBgcGJy4BNzY3Njc2NzY1NAcGJyY2NzY3NhYHBgcGFjc+ATc2NzYWBw4DBwY3Mj4CNz4DNzYWBwIHBhcWIwYnJjY3Njc2JgYHDgIHBgcOAQcGJicmNz4DNzY3NiYBPwgTEA8EBQMMHhcVAQgHFikRFQYTQBMMBAIBDRwXDgERMzchKQcGIQUBCgc6GCkkGBgIAw0KCgIFBQIEIisLDQ0XFgwcFA1aCggHBjEzCAcaFh0CAQUPDA8nJwYSAwITER4wBAgmCREJCgUVBAQEAc0DDRAQBQYEETk+YDAJGjUKIQ4GMSyKojcgCwsGAgkIEBAKKBAvDAcrGhU+CAkHBj4VJgYEHxgKHxkYAw8BAyIrCgsLDwcBAycm/v9BOE9EASMexTtOHgcKBA4QP1AdOkQyMgYLFxcwdBo1HB4NMRgLGwAAAQAt//8CIwKCAFUAAAEeAQ4BBzAOAQcGBxQVDgQHKgEuAjUuAic0LgEnBgcGBw4BJyIuAScmNjc+BT8BPgQXNhcWFx4BFx4CFz4CNz4BPwE0PgMCBg4OAQMBJS8NKQ0CAwcJEQwDBxMPDAEIEAgDAwEZFhoPBBsgBAwWBAYlHAgTERIPCwQDAQIJCxEKHQ4GAQIOAgEHCwQCCQgCCysQEAMLDhgCdwIVHA4GVnkof2oCBBAPFwoJAQUJEw0Gebs5BQsLBD9EUpcoKwIDFREdwFMYNTAvJh0ICAEGDQoIAQIeDAkNaAsGPGAeCRoZCS19KCgCBxALCAACAC///wHoAn8AHwA7AAABHgEHDgIHDgYnLgM3PgQ3PgQXNiYHDgUPAQ4BBwYXFBcWFxY3Njc+AgFrNUgDAg1SQwEFEBEcHScTJjQXBwcCBhsjQigCCRweKyoEFhcGDQwLCgcCAjtCBwMBAQQHDx8YEyhBHQJ+AVBQHGXgRgEFDgsOBgMGCCw6RSMIHlZSaCkDCRcSD6wvHQoDCAkKCQcCAkunMhgKCwUQChYHBhImlHgAAAACADL//QHvAoIAGgAtAAABFgYHDgMjJw4BBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE6AT4EAbo1DTYZQjo0DxAVGAIENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKDA0ZEBgUGAJnJp1EHioRCAFDaho8AwIdDg5M6IM4HxMfB+4vVQwDAQgxGlIdHAMECA0SAAAAAgAv//kB6AKBAC8AVwAAAR4BBw4EBxYXFhcWBwYHBicmJwYHDgYnLgM3PgQ3PgQXNiYHDgMPAQ4BBwYXFBcWFxY3Njc2Ny4BLwEmNhcWFx4CFz4BAWs1SAMBAg0UKBoSFQgGCQsFBhIUGx8DAwEFEBEcHScTJjQXBwcCBhsjQigCCRweKyoEFhcIEw8NBAQ8QQcDAQEEBw8fGBMNDRMVAQIBFQwOFQIJCgQaIQKAAlFPCB5QT2grHB0LDBUSCAMKCQ4pBAICBQ4LDgUEBggsO0YiCR1YUmkpAwkYEg6tLx4LAw0NDQQES6gyGQoLBRALFQcGEg0SKEENDRcXAwMmBBIRCDyEAAAAAgAy//0B7wKDACUANQAAARYGBwYHFhcWFxYXFgYPAQYmLwEmJwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgEPATI+AgG6NQ02Nl0RIhMmCgUFBAQFEiYODjw4LQQENRMUAQZJNhkPGChwICkBHwYJNRYMIAsKFhgpJwJoJp5DQxYwPiMgCQsPFwcHEAIJCSrBjDk8AwIdDg5N54M5HxMfB+4vVA0DAQcxGVMcHQMKGQABABv//QHPAoIAPwAANxY3NicmJyYnJjc+ARYXFgcGBwYnLgQnJgcOAhceBBcWBgcGJicmNz4CFx4CBg8BDgEfAR4BF94bECscFRscCRc0E0VCFT8FAh4MDggLCAQFAQ4iDhYDEQYgDxcNBAsfLjJ8LUkhBx0rFxARAQQEEgYBAwIFGwtbAw8jVUQtLiJgShscAw4sQh4KAwUCCA0IDgIfDAUmOCAKPB4vJhEwahweBCA2axorGAgGFRcRBiAMGQcGDxABAAAAAAEALQAAAeQCgQAxAAABFgcGBwYmLwEmJwYHBgcUDgcjIi4BJyY2NzY3ByIOASMuATc+AT8BNhYXFgHeBgYLIQgeDAsdKEsVLwwDAQMDBgcJDQcECxYDBSkeHzJEBAsdCxISCQUYCgk97ikbAmANEB4FAQICAgMBsD6HYQMVCBEHDQUGAgISERy+VFd8BgIDASUWDRACAggDBgQAAAEAMP//AgUCgQAuAAABDgEHDgQeARceAT4CNz4BNz4BFx4BBwYCBwYHBgcGJicmJyY2Nz4BFx4BAQEKOgYCBQwKBwEODQMLIB8nEBNHChMfGRYNCgNWGjI2KT8jPBEVAQEyHhknIR8PAh8XpxEEDyooMSYfBQEBCBg+LTbzGCocBQU0Fgr+9UB/LSMGAxocIiw811tOQAEBPQAAAAEAMf/xAbYCggA4AAA3PgI3PgIXHgEPAQYHDgMHDgEHBicuAScuAT4BPwE+AzU+AT8BPgEfARYHFA4CBw4BB5IPX1sBBhAaDw4MAQEDIgEaFicTIikdOyYUCgcCAQECAQEBDg8OAQQDAgojDAwjCgYHCwYHDQSRFNjWAwsPCQYGGgsLIFEBQDVWJkM/IUYWDCA6FDMtJwwMFmJdTwMGDgUEEgwDAw8yAhsgOx8oijEAAQAo//oChgKBAGEAABMOAQcOAhUGNzY3PgE3ND4HNzYWFx4BDgIHBgcOBR4CMxY+ATc+Ajc+BjcyHgEXFgYHBgcOAwcGJyYnDgYnLgE3Njc+ARceAf0FGxAFER0CNB8XDj8JBgMGAwcFBgcEESEGAgEBBgYGQAcBBQIDAQEDBQkFESMWCQMsJQUBCAMJBwwPCQMJEwQFCRJILgYUIDEcMSIWAgIEDxAZGB8ONiEWMyIOHRUYHgIxEUEsEDWBLGE1IFo60BIBDgUNBgoHBwUCCQwRBhAOGBISwjMIGhEYEBIMDAYCMTUdCpd9CwMVBxEICwUBAQsKFzAyzZITJikdAwUiGB8DBhQQFQkIBhCEYe9WJRsBASsAAAEAL//sAfwCgQA+AAAlDgEHBicuAT4BPwE+AT8BJicmNzY3Nh4BHwE+ATc+ARceAgYHDgUPAR4EFx4BDgEHBiYnLgEnAQsDORc+LhAMBQkFBRFOHx8dEBgBAykOGQwEKQ9YCw8pCQcMCQoPBxYaHBoVBgYDCRgTEQIDAwEMCxUbCQkkDuoDYChzGAgcHBsICB56Li5qL0EUJwcCGBoOhhN+DREHCAQOFyMTCB4jJyQdCAkIHEo8NwgMGBwWBQcMDQ1pLwABAC///gGjAo8AKAAAEy4BJy4BNzYXHgEfAT4GFxYHBgcOAhUOAScuAT4BPwE+ATeSAjUUEgURKCYNIAoJDiQWHBQVFAkpFwSOHicaCTgSBwcBBAECDCgOASchmykkPQwWOxVfJiUXPSctGxgIAgc/C/gzb2oCGwYTBhYVFAYGKWIdAAABACgAAAH6AoEATAAANzYXHgcGFQ4GJiMmBwYnJicmNz4BPwEmJzAqAS4GNTQ+BDsBNh4CFx4BBxQOBgcGBw4BB7ByLwYWEBcOEwkMAgMMDBMNFgoVAncnMyAiDA4cFphCQRB3CwcNCQ4JCgYEBgwNDgsDBBhKSEAOGQ0DAwIGAwkEDAMGCU6GHGwEBAEBAQIDBQcKDQkMEgwIBAEBAQIBAgICGh1BMs9PTgIDAgEEBAcIDAcLEQsHAwICAQQGBQcaGwYMCAsFDAUPAwcKWbUuAAAAAAL/6//+AV0BtwAtAEkAAAEOAQcGFRQXFgcOAScuAicuAicmBwYHBicmJyY3PgE3PgI3NhcWNzYXHgEHPgInJgYPAQ4DDwEGFx4CNz4FNwFRDjELAwcDAgUjEAgKAwIBAgEBAgcWKCcgFQ4bDAYrIgQPMxs4KgUFEBgVCMAdLA0JDBkKChsqFg4CAgIEAwkKBgYOCwsIBgIBXxp+OxESGRsMCBAPBgMKBQcCBQYCBQoiBQUOCRQmQiVrJQYSLA4eIwUFDwgIIvUvakQLBQoICBpBODEODhcJBgcCAQIJCwwLCQIAAAL/+P/+AR4CfAAqAEIAAAEWBw4BBw4CJyIuAScmNQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYXFgc+AScuAQcOAQ8BDgEPARYGFjM+AzcBGAYFBjUkAgojFAMJFAUCAwUhGBYBAicdXgsWEh8GDA5HCQIcHwkGCQQGcBwXBAIKCgcOBAQaHgIDAQEKCgYNCwoCAV0mLjuPJgMKDgQDDwwFAQQiAQEeGiO5Te4cCwcLCRQkqwoDHhAFCAoMDvYvgxUMCgIBDQYGJ2cgIAEQEQEKDQ4FAAAAAAH/9gABATMBrQA2AAABFhcUBwYuAjEmBw4EBw4BHgI3Njc+AhceARUOAQcGByInIi4FNzY3Njc2NzYBHxIBDAkQBgcNHAMKHx0mEA4ICBMRCBgPAhIQDQ8QASUQJy8cEQEFDwwQBwUEBxInTSQmMQGSERkTBwcEBgwPDAEGFx85Ih8wGA8EAQERAxsKAQEXDBEvCRgCCwMLDRcbJRUiLFw9HQoMAAAAAAL/9f/9AZkCfAAxAEIAAAE2HgEHDgEHDgQfARYGJyYnJicmJyYiBhUGBwYuAScmPgE3PgE3NhYfATY3Njc2AzYnJgcGBw4BFxY3Njc+ATcBZg4cCQ8GLwsDLCQKAgEBBCgaAQELBAIBAQEFGyIUKx8CARMjFB1EIBAYBAQZBhsKHoMHCAoaHSAPIAMDFQkHHjMKAnYGDyMcCWsgCHRmLDMODyAeDwEBBxAKAwEHASIIBRErHR1XVyEuMgIBBQMDQQ47Ezj+yCEKDRgZRR9rFhINBQgiayQAAAL/9//9AUQBqQAkADgAAAEWBgcOAQ8BBgcGFjc2Nz4BFx4BFQcGBwYHBiYnJjY3PgE3NhYHNicmBg8BDgMPAQYWPwE+AgE7CBYtHlsfHgcCAxoYIxoHGg8KCgEBBw0VK2ocHgIeHm0sJz9SFw0HEQYGDBsWEwUGCw0ODhkrEAFzH1MoGyEDAwgbFBwBAScKDAcEEgcHCw4YDhsIHSBXTUlqBwceYi8KBgEDAwYZHBoJCBkOBAMLJhcAAAAAAQAe//8BtAKAAEgAAAEeAQcOASciLgMiDgEHBgcGBw4CBxcWFxYXFhcWBw4BDwEGJyYnBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWAYoYEgwMIggBCwcNCw4LDAUVEQMCAQQDAhQNCwkFAwEDBAMHAgEUJwUQJAwUCQwEGRoHEwYEFhAmFwcPAQkLGwkXDhEZGE8rFgJwCiASDwIFBAICAQMHBBcrBwQDCQsEAwEFBAYEBAoLCAwCAhcDAQJtI0wnPwERDwMGDy0iW0RpBAIGJA4XAwIDISkmJCYFAgAAAv/0/zoBTgGlAEgAagAAAR4FDgMxBgcOAQcOAgcOAycuAicmNjc2FxYXFjc2NzY3NiYHBgcGJicuATc2NzY3PgU/AT4FFgc2LgEjIiYOAgcOAw8BBhY7AT4BPwE+Az8BPgE3AR0KEQsHAwEBAgIDBB0JKAEBCg8GBxIeLBkhKgwFBg0SGB4FBRAOGBILCgECARIXFE8TEgQHBBMQFgcOCwoHBQECAgcWFyAfIhECBgUBBAoVFh4QDxkNCAECAw4ICQseCAkIFBEOBAMIDAMBmwUNDQ8NDwsNBgkOXB6PCQclLg8QHSYUAwMVEAwPJgsNEAMCBwYKLx4tAQEBFw0NEBsZQxwaLSYgCxINCgcFAQECBQ8NDgYDVgwOAgIKDyIXFzInIAkJFxYCGQwLCyEhHgkKESoMAAAAAf/6//0BNwJ7AEMAAAEGBwYfARYGJy4BNSY2PwE2NzQ2NzYuASMiBwYHDgEPAQ4BJyYnND4BNzY3Njc+Ajc2FhUWBwYHFDIxPgEXHgEfARYBLB8HCQYDAhMYGBMBDAYGBQIPAgEEBgITGBgWBSACCQMZEiEDAQYBBSkRUQkLFA0TIgEXES4BEjETCxIEAxMBNGkjLywkDxsCAyQmFUgZGRYGATgIBwgDFBQqCoEWPQ8QAwQmCBQlCi2KOMkZFhgCBRMRGDQldQETEwQCDgUGIAAAAAAC//oAAADGAgMAJAAsAAATHgMcAQ4BMTAOAQcGFRQWDgMjIicmNjc+Az8BPgMeAQ4BLgE2iAcLBgMCARYeBx0BAQMHDQocCgcPEQYRDw0DBAIGGykbCw4dHAoNAY4BBgYIBggEBTZMGV80AxMHDQUFGBF4NRQwKCIJCgQKDXELHR0NCh0dAAAAAv85/zkA2QIGACYALgAAExYHBgcOAQcOAQ8BBgcOAScmJyY3Njc2FxY2PwE2Nz4BNT4BNz4CHgEOAS4BNqURAwELAj0LCBoICREkG04kKQQBBw0bEh8SGwgIDhMFRgUiCAkeGBwLDB0cCwwBiwoXBycFwCYdTRgYLSUdDhEUIBAPGgMCEggKCwsSQRDeAg9fDA4FcgocHg4KHB4AAf/6//YBRwJ8AEsAACUUDgUxIjEGJyYnJicGBw4FIyIuAScmNjc+AT8BPgQXHgMOAzEUDgEHNjc2FxYHBgcWFx4BHwEeARceARUBRgIEBQUFAgEdHBsfETkTBAEDAgcJEAwECxYDBSkeEjMQEAEDDQ4XDAgMBQMBAgIDJTAOUgcoDg8dEVMMCAkYCAgHLwMICDEFCggHBQMCEhIRKBZjRSMFHwsVBwcCEhEcvVQyfycmAgcRCQgGAwkJDQoMBwcBU3cnPQUaIygcEDoWDhAkCgoIJgIHDgMAAf/+AAEBBQJ8ACgAABMeAxQOAgcUDgMHBgcOBSMiLgEnJjY3PgE/ATQ+A+oICwUCAgMCAQ8XGRsINAoBAwIGCRELBAsVAwUpHRIyEBAEDA4WAnYDCQoMCgwHBwEBIjc9RBqVUQUfCxUHBwISERy9UzJ/JyYCBhIICQAAAAH//f/yAd8BngBxAAABFgcOAgcOAR4BFRQGBwYnJjc+AT8BNjc2Jg8BDgEHDgEXFgcGBxQHMDEGBzAHIiMGIicmJyY3PgE/ATY3NiYPAQ4BBw4BFxYHDgEHIiYvAS4BJzU0Njc+AR8CPgUWFxYXPgM/AT4EAao0DQEOFggGBAECEBEoCwgMAhIHCAYIBAkHBxQaFBMkAwIEAwcCBAUBAQEECQUfCQgLAhIIBwYJBAoGBxQaFBMkAwIFAxEMCA4DBAcHAU8XCxgHBg4BAwwMExEWCicCAwkIBgICAgcXFSABkBRABS1FGhYyISICDhoBAykfQg9EGhsSHQ4MAQEGGyAejSAXEgkHAQEEAgECAQMjH0IPRBsaEh4NDAEBBhsgHo0gFxILDwEFAwIHGgoKOvUUCwIEBA4BBAoICAQCBRMsBQsIBgIBAgUOBQQAAf/9//0BMwGlAEIAAAEeAhQHDgIHDgEeARUWDgEHBicmNz4BPwE2NzYmDwEOAQcOARcWBw4BBwYmLwEuASc1JjY3PgEfAj4FFgEHEhUEAQEPFQgGBAEDAQYQDSkLCQoDEQgIBQkECgcHFRsUEyQEAgUCEgwIDwQDCAgBAU8XDBkHBg8BBAwMExIXAZ4IGRsRBwUuRRoWMiEjAggREAEDKh5DDkUbGxIdDgwBAQcbIR6OIBcSCw8BAQUDAgcaCgo69xULAwUEDQEDCgkIBAEAAAL/9wAAATcBpgAbADAAAAEUDgMHDgQnLgE3PgQ3PgI3NhYHNiYHDgEPAQ4CBwYfAR4BPwE+AQE2AQoTKx4CBhYZJxU4LQYBAxEXLRwFETMZJzpPAg4RCRMEBR0mCgIBAgEEFggJJzgBQgcYR0JRHwIGEAsGAgdLMgYTOTZHHAUQGwIBMj0fEQcEEgYHI141GAsJBREGBgYfnQAAAAL/xv8yAU0BqAAsAEUAABMyFgcUDgMHDgInJicGBw4FJyIuAScmNjc+AT8BPgQXFhc2FzYuAQcOAw8BDgMHBh8BHgE/AT4B9CQ1AQEMEyodBBE4Hx4VHgYBAwEHCRALAwsVAwUnHhEwEA8BBAsOFgwXAxckAwUNCgUMCAcCAhUgEAgBAQEBAxQICCU5AY8xLgsQRztNHAUOEwQFEGYzBR8KFQgHAQISEBy8UzF+JiYCBxEICQYIFwtnExUDBAIJCAgCAxk8OSMPCwkFDwYFBRyTAAAAAv/3/yIBVAG1ACwAQAAAATYWFRQHBgcGAgcyPgEzFhUWBwYHBicmNTQ2Nw4BLgInJjc2NzY3Nhc+Agc2BwYHDgEPARQVFhcWNzY3PgIBJxIbAggPGmEOAwgSBR0BIhseHBEPFA0FDyggHwYEAxBYFhpALgIGFEcDEhEiHyMDAgEDCxcIBh0qDQGkARMVBwgeIDn+6F0DBAIaGBQPCAgODBoWeisBAwILJBwWGYBlGQ0hLgMKEGwjAgIqJmEeHgUFBwYUEQUIIms/AAAAAQACAAABLwGqACMAAAEWDgIvASIGDwEOAQ8BDgEnLgEnNSYSNzYXMh4CFxU+ARYBLAINExIDHhgoCAkTGQMEAxYYEBEBAkgKEhwIDQYDARBBOAGDERUFAwIDIBARJW0kJB8fAgIYCwwoAQEaKwIICQoDAxcTEAAAAf/nAAIBPwGqADwAAAEeAQcGBwYnLgQ1JgcOARcWFxYGBwYmJyY3PgEXHgEGDwEOAR8BHgM3Mz4BPwE2JyYnJicmNz4BAQ0YGQQEGAsKBQkGBAQLGhIFFUUEAyAlJmUjOBMGMhoRDgMEDgUBAgIDCwsLBAQGDAMDIAwEJxQHEicVWgGaCyoUFAYDAgIFCAYJARQIBS8fWycgRBITARYkRBkmCAUVEAUVBxEEBAYIAgEBAQQCAhI1FDUaGT0xGxAAAQAE//0BJAJ7ADoAAAEeAQcOASciJwYHBgcUDgQjIi4BJyY2NzY3JicmNjc+AR8BFjM3PgQXHgMOAzEUBxYBBhAOAgMfJAkKIRAzCwQCBgkPCgQKEwIEKR0SGRcHDQEJBxwKCgQGFQEECw0VCwcKBQIBAgIDDRUCDQUNDRQhAwFUMJdRBR8LFQgHARIQHL5UM0QEAwggEAwKAQEBNwIGEgkJBgIJCQwKDAcIAR4DAAAB//z/9wFiAakANQAAARYHBgcOBAcGJyYxJgcwDgMHBiYnJjc2Nz4BFx4BBwYHDgIWNzI+Azc+Ajc2AUAiFU0JAQMDBQwKJhEBBQ0KCA0PCRcsCwkBBEQUHxcdCw0vEAMJDwYQAQUPDhUJCCofByABnQ0qoj0MKh8fEgIILgIHDQoHCQUBAhcUEiVLpjAlAgEmFVsrCR0+JwEBCA4fFhRoRw00AAEABf//AVQBqgAtAAABHgEHDgEHDgMHDgEuATc2NzY3PgEzNx4BBxUOAgcGFxY3Njc2Nz4BNz4BAUMNBAUFKhQPFyIoFBcvJhYCBz8FCQkVBgcSEQECChcMHgIBDQECHiAMSQIJKAGgBhUOFHEpHSo3Kg4PBRIwJFu1DgsKCgEBEwoKChg2IVQ/HwYBARZAGLwEFg0AAAAAAf/0//0B6QGmAFAAAAEWBwYHDgEHBicmJw4GJy4BNzY3PgEXMhYHDgEHBgcGNzY3PgI3Njc+Ajc2FhcWBgcGBwYHBhYXFj4BNz4DNz4GMzYB4AkcPScLOSsoGxIBAQQMDRUTGgssGRMsHQwYERMYCgUXDSoCAioaEwggHQQBAgYHEAgOGgUDBgs2BwEDCAERDR4SBwMZFxYDAQcDBwYKDAcVAY0TPIdhHDUEAxYPFQIEDQsOBgUECldAnTgZEgEdFwsrHF9BPyIWOxhURwgBAwoNDwQGCAsPFRuAIgULGy8BASAjEwhAPTgHAQ4FCwUHBAIAAAEAAf/4AXgBqgA0AAABHgIHDgEPARYXFgYHBi4BLwEGBwYnLgE+AT8BPgE/ASYnJjU0PgMeAh8BPgM3NgFYCBEHDws8GBhICQcFEAsVDQVJBUg0JAoKAgQDAw5AGhohEhkECA4TEg8FBTAJHRwZBRgBogMSIBQQQhoZfhIMJAwJBAkHhwNcQg0EERIQBgUUTh0eQx0pDQYMDAoCCBYIClcKHx8dBiEAAAH/0/9FAWwBqwBXAAABFgcOAQ8BBgcOCAcGJyYnJicmNhcWFxY+Ajc+ATcwJhUGBw4CJyoBLgInJjY3Njc+BBcWBwYHDgEHBhcWNz4CNz4CNz4DFgFGJRgFDQMEQxMBCggNDREUFxwQERI7EQEBCywdCQ8OFRMLBAoWAwEGDAUQIhACBxUQEQMGERorEwUIEAsTBxcMAw0MKgYXDgUIDi0pDgchEwYBAwgJDwGlEzAMIQoLsj4FIxcnHCQZGA4DAgIKJgMCHi8KAwoGAREOCBI+DgEBCAwFDA4CBgoWDxxrP2kXCAkOBAQGCzAKFxdbEUgVBgIEOEkgElUrCAECBwMBAAAAAf/2//wBXwGkADYAAAEeAQcGBw4BBw4BDwEWFx4CFRQOAScmBwYHBicmNDc+BT8BJiIGIyIuAjc+AT8BPgEBNxIWAQEgAgUCOFMNDj4fERYRDRUMYSMuHRoMCQsFHScuLCQLDBIoIgMIDxYMAQEOBgcenwGhARoRHh4CCAI4ZBYVAwUCCRQQEBcJAg0CAgcGDgsjFAYkLjYzKQ0NAgIDBhALDxQCAwYBAAAAAAQAIv8sA0oCiQAtAEQAbgB/AAABNh4BBxQOAwcOAicmJwYHDgUjIi4BJyY2Nz4BPwE+BBcWFzYXNiYHDgMPAQ4CBwYfAR4BPwE+ASUGFxQWBgcGJy4BJyY/AS4CBwYHBgcGJyY3Njc+BDc2HgIHBhUHNgciBw4BBw4CHgE3Nhc2AvEXKBoBAQwTKh0EETgfHhUeBgEDAQcIEAwDCxUDBSgdETEPDwEECw4WDBcDFyQEDRAFDAgHAgIbJgsCAQEBAxQICCU5/tUZBQUBAw0cEBcDBwUDEzYsEB0LBw0aMToUDUMKK0JCRxkdJAgDAwFoGRoFDBJZHQECAgEICU0vAwGJARQsHwkURTxNHAQPEwUEEGYzBR4LFQcHAhIRHLtTMn4mJgIGEggIBggWC2gdEQcCCAkHAwIhWDIWCgkFEAYFBR2TXsBCBRwQBxoEAhIPHjwiBggBAgMSCjFhAwRXPIsUS2NYQgQGEyMoEAUCrIoCCQ+KOwEECQcGAQEPMwAAAAQAIv8uAsYCkgApADEAVwBoAAABFgcGBw4BBw4DDwEGBw4BJyYnJjc2NzYXFjY/ATY3PgE1PgI3PgIOAS4BPgEWATcuAQcGBwYHBicmNzY3PgQ3NgcUDwEGFxQWBgcGJy4BJyYnNhc2NzYHBgcOAQcOAh4BApURAwELAj0LBQ4OCwQDESQbTiQpBAEHDRsSHxIbCAgOEwVGAhEXBQkePRUfFwEVHxf+oQMcUhcdCwcNGjE6FA1DCitCQkcZTAEDGhkFBQEDDRwQFwMHbk0vAw4ZGgUMElkdAQICAQgBgAoXBycFwCUTLSYiCgksJh0OERQgEQ8ZAwISCAsKCxJCD94DBjE6CQ0FPxkEEiAZBBP+mSIJBwIDEwoxYQQEVjyLFEtjWEIFDlcIH8HAQgUbEQcaBAISDx61AQ8zSooBAQkOizsBBAkHBQACADD/+gKtAosAPAB5AAABHgEHDgEnJicGBwYHDgUHIi4BJyY+Ajc2NyYnJjY3PgEfARYzNz4EFx4DFA4CMRQHFiciJgYHBgcXNhcWBwYHBiMHBgcGFxY2FhceAQcUDgMHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGAo4QDgEDICQICiERMgsBBAIGCBAKAwsTAgIJEhsOEhoXBw4BCQccCgoEBhYBAwsNFQsICgQCAwIDDBTSBjcxF0cVLBkPDwYGFxQRQR0FCDMNIRgIDw8EAQQHDQg9KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQECEwQNDRUgAgEBVDGWUQUfCxUIBwECEhANQ1NhKTREAwMJHxEMCgEBATYDBhIJCQYCCQkMCwsIBwEeAxICAQNhPQEBDg4XFQUFBlYtRAUBAwEECBsOAQMICAkDFQgKMBRKTCO9ZQQBBhELFhAEJRADDQ0PCwYYAAACADD//ALzAo4ARwCCAAABHgEHDgEnMC4CKgEOAQcGBwYHDgEHFxYXFhcWFxYHDgEPAQYnIicHDgMHDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFNhcWBwYHBiMHBgcGFxY2MhceAQcUDgEHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGJyImBgcGBwLIGBIMCyMICwcOCg4LDAUVEQMCAQcCFA4LCAUEAQIDAwcBAhQnBBEjDBMJCwEDGRoHEwUEFRAlFwcPAQgLGwoXDREZF08rFv5OGQ8PBgYXFBFBHQUIMw0hGAgPDwQDEQ09KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQErBjcxF0cVAnEJIBIQAgYDAgMDBwUXKggEBBIFAwEEBAYEBAoLCAwDAhYDAm0kSyc/AhAPAgYPLSFcRGkEAwUkDhcEAQMiKSYlJgQD8QEODhcVBQUGVi1EBQEDBQccDgIIEQUVCAowFEpMI71lBAEGEQsWEAQlEAMNDQ8LBhgBAgECYj0AAAAAAwAw/zQCJQKMACgAMABrAAABFgcGBw4BBw4BDwEGBw4BJy4BJyY3Njc2FxY2PwE2Nz4BNz4CNz4CHgEOAS4BNgMGJyYnLgE2NzY3BgcGJyY+ATc2Fx4EBwYjIiYiBwYHMzYXFgcGBwYjBwYHBhcWNhYXHgEHFA4BAewRAgEKATcKCBcICA8jGk4kFBgDAgcMGxIgEhoICA4RBD8BARAUBggeHhwLDR0cCw3iPSk8HQwDCws5RhUGIQ8JAwoHM5wmOBwQBAEBKwY3MRdHFSwZDw8GBhcUEUEdBQk0DSEYCA8PBAMRAY4KFwcnBcImHU4YGS0mHhERCRsOEQ8aBAIRCAwLCxJCEOACBzE7CQ4GcgocHg4KHB7+FhUHCzAUSkwivmUFAQURChcPBSUQBAwNEAoHFwIDYT4BDg8WFQUFBlcsRAUBAwEECBsOAggSAAAAAgAw//cCuAKLAFUAkAAAJRQOBTEGMQYnJicmJwYHDgUjIi4BJyY2Nz4FPwE+BBceAw4DMTAOAQc2NzYXFgcGBxYXHgcfAR4BFx4BFwEiJgYHBgcXNhcWBwYHBiMHBgcGFxY2FhceAQcUDgEHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGArcCBAUFBAMBHRwbHxE5EwQBAwIGChAMBAsWAwUpHgkUExMPDAQDAQQMDhcNCAsGAgECAgMkMQ5SBygODx0QUwsIAwgHBwcGBQQBAQcvAwgIAf7/BjcxF0cVLBkPDwYGFxQRQR0FCDMNIRgIDw8EAxENPSk8HQwDCws5RhUGIQ8JAwoHM5wmOBwQBAEBMgUKCAcFBAEBEhMRJxdjRSMGHwoVCAcCExAdvVQXNTAvJh0ICAIGEggJBgMJCgwKDAcIVHYoPgUaIygcEDoWDgYNCwsJCAcEAgEIJgMGDgQB8gIBA2E9AQEODhcVBQUGVi1EBQEDAQQIGw4CCBEFFQgKMBRKTCO9ZQQBBhELFhAEJRADDQ0PCwYYAAIAMP/8AnICjgAnAGQAAAEeAxQOAxUiDgEHBgcOBSMiLgEnJjY3PgE/ATQ+AwciJiIHBgczNhcWBwYHBiMHBgcGFxY2FhceAQcUDgMHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGAlcHCgYDAQICAgEkMQ00CgEDAgYJEQsECxUDBSkdEjIQEAQMDhaUBjcxF0cVLBkPDwYGFxQRQR0FCDMNIRgIDw8EAQQHDQg9KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQECdAMHCQoKCgkGBgFVeCiVUQUfCxQIBwISERy9UzJ/JyYCBhIICVECA2E+AQ4PFhUFBQZWLUQFAQMBBAgbDgEDCQcJAxUHCzAUSkwivmUFAQURChcQBCUQBAwNEAoHFwAAAwAw//sCmQKMADYATACHAAABFgcOAQcOBCciLgMnJiMHBhQOBCMGJjc+Az8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHBgcOAQ8BFgYWNzI+AjcDIiYiBwYHFzYXFgcGBwYjBwYHBhcWNhYXHgEHFA4BBwYnJicuATY3NjcGBwYnJj4BNzYXHgQHBgKSBgUGNCQBBA0OFwwBBAsJCgICAQIBAgMHBwwGGBcBAQoQHBBdDBYRHwYND0YIAxsfCQcIBQZxHRYEAgkLDg4aHwICAQIKCgYOCwkDZwY3MRdHFSwZDw8GBhcUEUEdBQgzDSEYCA8PBAMRDT0pPB0MAwsLOUYVBiEPCQMKBzOcJjgcEAQBAQFeJi47jiYCBAoGBQMBBAYMCAUEAwEJBQgFBAEfGQ49UmMp7hwMBgoKFCSrCgQdEAUICgsP9i+DFQ0JAgIYJ2cgIAEQEQEKDg0FAbMBA2E9AQEODhcVBQUGVi1EBQEDAQQIGw4CCBEFFQgKMBRKTCO9ZQQBBhELFhAEJRADDQ0QCgYYAAAAAgAt//8CqwKGADwAfwAAAR4BBw4BJyYnBgcGBw4HIyIuAScmNjc2NyYnJjY3PgEfATIzNz4EFx4DDgMxFAcWJw4BIiYjJgcUBxQOAQcyFx4BFxYGIwYHFDEGBxQOByMiLgEnJjY3NjcGJyImLwEmNz4DPwE2FhceAQcCjRAOAgMfJAkKIRAzCwECAQMEBwgMCAQKEwIEKR0SGRcHDQEJBxwKCgQGFQEECw0VCwcKBQIBAgIDDRWwBhcTJgchMAETIA0xCgsXAwUYGh81LgwDAQMDBQcJDQcECxUDBSgdIDUVDwcPBQQYCwEHCQcDAjTUJhUKBgIPBQwNFSACAQFUMZdQBhQLEQkLBgQCEREcvVQ0RAMDCR8QDAoBATYCBxIICgYCCQkNCgwHBwEfAh8FBAIBAwEBASxMIQEBDxASHAEGAYRfBBQIEQYNBQYCAhIQHLpSWn8EAQUCAg8cAwkGBQEBFw4WDBkHAAAAAAIALf/+ArECiABHAIoAAAEGBwYfARYGJy4CJzQ+Aj8BNjc0Njc2LgIjIgcGBw4BDwEOAScmJyY+Ajc2NzY3PgI3NhYVFAcGBxQzPgEXHgEfARYlBjEUDgEHMhceARcWBiMGBxQxBgcUDgcjIi4BJyY2NzY3BiciJi8BJjc+Az8BNhYXHgEPAQ4BIiYjJgKmHgcJBQQBEhgREwcBBQcHAgMFAg4CAQIEBAETGBkVBSADCAQYEiEDAQIBBAEGKRBRCgsUDBQiFhEvARMxEwsSAwQT/ngBEyANMQoLFwMFGBofNS4MAwEDAwUHCQ0HBAsVAwUoHSA1FQ8HDwUEGAsBBwkHAwI01CYVCgYFBhcTJgchATRoIy8sJQ4bAgITHxkNJyUiCgoWBgE4CAUIAwIUFSkKgRc8DxADBCUFFgwbCi2KOMkYFxgCBRQQGDQldQETEwQCDgUGINECASxNIAEBDxATGwEGAYRfBBUHEQYNBQYCAhIQHLpSWn8EAQUCAg8bBAkGBQEBFw4WDBkHBgUEAgEAAAAAAgAt//YCvAKGAEoAkAAAJRQOBTEGJyYnJicGBxQOBCMiLgEnJjY3PgE/AT4EFx4DFA4CMQ4CBzY3NhcWBwYHFhceAR8BHgIXHgEVAQYVFA4BBzIXHgEXFgYjBgcUMQYHFA4HIyIuAScmNjc2NwYnIi4EJyY3PgM/ATYWFx4BDwEOASImIyYCuwIEBQUFAx0dGx4RORMFAwIHCRELBAsWAwUpHhIzEBABAwwPFwwIDAUCAgMCASQxDlMHKA0QHhBTDAcJGQgIBRQZBwcJ/m8BEyANMQoLFwMFGBofNS4MAwEDAwUHCQ0HBAsVAwUoHSA1FQ8DBwYGBAQBGAsBBwkHAwI01CYVCgYFBhcTJgchMQUKCAYFBAISEhInFmRFJAUfCxUHBwITEBy+UzN/JiYDBhEJCAYCCQoMCwsIBwFTdig+BBojJx0POhYPECQKCQYRFQUHDgMB8gEBASxMIQEBDxASHAEGAYRfBBQIEQYNBQYCAhIQHLpSWn8EAQECAgIBAQ8cAwkGBQEBFw4WDBkHBgUEAgEAAAAAAgAt//8CcgKHACYAaQAAAR4DFA4CFSIOAQcGBw4FIyIuAScmNjc+AT8BPgQFFAcUDgEHMhceARcWBiMGBxQxBgcUDgcjIi4BJyY2NzY3BiciJi8BJjc+Az8BNhYXHgEPAQ4BIiYjJgJXCAsFAgIDAgEkMQ00CgEDAgYJEQsECxUDBSkdEjIQEAEDDA4X/t4BEyANMQoLFwMFGBofNS4MAwEDAwUHCQ0HBAsVAwUoHSA1FQ8HDwUEGAsBBwkHAwI01CYVCgYFBhcTJgchAnQDCQoMCgwHBwFVeCiVUQUfCxQIBwISERy9UzJ/JyYCBhIICVIBAQEsTCEBAQ8QEhwBBgGEXwQUBxIGDQUGAgISEBy6Ulp/BAEFAgIPHAMJBgUBARcOFgwZBwYFBAIBAAAAAAMALf//ApsChgA0AEoAjwAAARYHDgEHFA4FJyIuAycmNQcUDgMjBiY3PgE/ATY3NhYXFg8BNjc2FxYXFhcWBz4BJy4BBw4BDwEOAQ8BFgYWNz4BNwMGFRQOAQcyFx4BFxYGIwYHFDEGBxQOByMiLgEnJjY3NjcGJyImLwEmNz4DPwE2FhceAgYPAQ4BIiYjJgKVBgUGNSQCBwcMDBIJAQQKCQoDAgMBBQgOChgWAQInHV4LFhIfBgwORwgDHB8IBwkEBnAcFwQCCgoHDgQEGh4CAwEBCgoJFwbyARMgDTEKCxcDBRgaHzUuDAMBAwMFBwkNBwQLFQMFKB0gNRUPBw8FBBgLAQcJBwMCNNQmDQ4BAwMCBhcTJgchAWEnLjqPJgECBgUHAgICAQQGDAcFAQUDBAwIBwEeGiO5Te4cCwcLChMkqwoDHhEECAoMD/UvgxUMCgIBDQYGJ2cgIAIPEgEBFwwBtgEBASxMIQEBDxASHAEGAYRfBBQIEQYNBQYCAhIQHLpSWn8EAQUCAg8cAwkGBQEBFw4WBxAMCgMCBQQCAQAAAAIALf//AuAChAA6AJkAAAEeAQcOAScmJwYHBgcUDgQHIi4BJyY2NzY3JicmNjc+AR8BMjM3PgQXHgMOAzEUBxYnHgMUDgIxDgIHBgcUDgQjIi4BJyY2NzYnJgcGBwYHFA4FIyIuAScmNjc+BT8BND4DFx4DFA4CMQ4CBwYXFhcWNz4BPwE0PgMCwRAOAgIgJAgKIREyDAQCBggQCgMLEwIEKR0SGhcHDgEJBxwKCgQGFgEDCw0VCwcKBQIBAgIDDRXaCAsGAgIDAgEjMA4yCgMCBgkRCwQLFgMEFRMDC0cODQcdCAMCBAYKDwoECxYDBScdCBQSEg8MAwQEDA4XDAgLBgICAwIBGCcOBAUmMgoEEi4PDwQMDhYCDwQNDRUgAgEBVDGXUAYeCxUIBwECEhAcvVQ0RAMDCR8RDAkBATYCBxIJCQYCCQkMCwsIBwEfAm0DCQkNCgwHCAFWeiiZUQYfCxUIBwISERV8RwsBDAQEE2ZABRsJFQcLBAITEB3AVBg2MDAmHggIAgcSCAkGAwkJDQoMBwgBPF8mDgEJBAEKMnslJAIHEggJAAAAAgAt//8DUAKEAEkApwAAAR4BBw4BJyIuAyIOAgcGBwYHDgIHFxYXFhcWFxYHDgEPAQYnJicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYlHgMUDgIxDgIHBgcUDgQjKgEuAicmNjc2JyYHBgcGBw4HIyIuAScmNjc+AT8BND4DFx4DFA4CMQ4CBwYXFhcWNz4BPwE0PgMDJhgSDAsjCAEJBgsKDAoLCgQWEQMCAQMEAhQOCwgFAwEDBAMGAgIUJwQRJAwUCQwEGRoHEwYEFhAnGAcOAQgLGwoXDREZGE8rF/7PCAsGAgIDAgEjMA4yCgMCBgkRCwEFDAoKAgQVEwMLRw4NBx0IAQIBAwQHCg0JBAsWAwUnHRIwEBAEDA4XDAgLBgICAwIBGCcOBAUmMgoEEi4PDwQMDhYCcAkgEhABBQMCAgIBAwYFFisHBQMICwUCAgQEBgQECgsIDAIDFgMBAm0kSyc/AREPAwYPLSFcQ2kEAwYkDhcDAQMiKSYkJgUDBgMJCQ0KDAcIAVZ6KJhSBh8LFQgHBAcQChV8RwsBDAQEE2ZABRYKEggMBQQCExAdwFQzgScnAgcSCAkGAwkJDQoMBwgBPF8mDgEJBAEKMnslJAIHEggJAAAAAgAw//8CigKBADsAeQAAAR4BBw4BJyInBgcGBxQOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc+BBceAw4DMRQHFiciIwYHBgcwFDEWFzAyHgUGFQ4BByYnJicmNjc2MzY3NjcmIzAuBzQ3PgM3FhcWFxYGAmsQDgICICQICiIQMwsDAgQGCQ0JAwsTAgQpHRIaGAcNAQkHHAoKBAYWAQMLDRULBwoFAgECAgMNFecJCkYVMAkSBAUCBgMFAgMBBBoYaxAhAgEbIwgLDS0fMQoCBAMEAwUCAwEBAgoPEAxrECEBARwCEgUNDBUhAwFTMZdRBhgLEwkKBAESEBy+VDRDBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAhKrQJRQAgEBAQEDBAUHCQYaEwIBAQQVEygBAXSHWYABAQEBAgMDBgcJBQ0RCgQBAwMEFhMmAAAAAAMAMP8rApACfwAuAEcAgQAAATYWBxQOAwcOAicmJwYHDgUjIi4BJyY2Nz4DPwE+BBcWFzYXNiYHDgMPAQ4EBwYXFR4BPwE+AQUwFjIeBAYVDgEHIicmJyY2NzIzNjc2NyYjMC4GNDc+ATcWFxYXFgYHIiMGBwYHFDEWAjckNQEBDBMrHAQROB8eFR4GAQMCBgkQCwMLFQMFJx0LHRgVBgYBBAsOFgwXAxckBA0QBQwIBwICERwQDAQBAQEEFAgIJTn+rgUCBgMFAgMBBBoYaxAhAgEbIwgLDS0fMQoCBQIGAwUCAgEFGhhrECEBARwjCQtFFTAJEgGIATEuBxdDPU0cBA8TBQQQZjMFHgsVBwcCEhEcu1MfSz81Dw8CBhIICAYIFgtoHREHAggJBwMCFDIqLBkMCgkFEAYFBR2ToQECAgQFCAkGGRMCAgQVEycCdIdagAEBAQEDAwYHCgYYEwIEAgQWEyYBrD+VUAEBAAAAAgAw//4C4wKAAEkAhAAAAR4BBw4BJzAuAioBDgEHBgcGBw4BBxcWFxYXFhcWBw4DByMGJyYnBw4DBw4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWAQYHMBQxFhcwMh4FBhUOAQcmJyYnJjY3NjM2NzY3JiM0Ii4FNDc+ATcWFxYXFgYHIiMGArgYEgwLIwgLBw4KDgsMBRYQAwICBgITDgsIBgMBAgQBBAMDAQETJwURIwwVCAwBAxoZBxMFBRUQJxcIDgEIDBsJFw4RGRhOKxf+bDAJEgQFAgYDBQIDAQQaGGsQIQIBGyMICw0tHzEKAgUCBgMFAgIBBRoYaxAhAQEcIwkKRgJvCiASDwIFBAIDAwcEFysHBAQSBQMBBQQGAwUKCwUJBQQBFwMBAm0jTCc/AREOAgYPLSJbRGkEAwUkDhcDAgMhKSYkJgUC/sSUUAIBAQEBAwQFBwkGGRQCAQEEFRQnAQF0h1mAAQEBAgIEBQcKBhkSAgMDBBUUJgGrAAAAAAMAMP84AhECggApADEAbQAAARYHBgcOAQcOAQ8BBgcOAScuAScmNzY3NhcWMj4BPwE2Nz4BNT4BNz4CHgEOAS4BNgMOAQcmJyYnJjY3MjM2NzY3JicwIi4FNDc+AjcWFxYXFgYjBiMGBwYHMBQVFjMwHgYGAdsRAwEKAjoLCBgJCBAkG04jFBgCAgcNGxIfCxIPCwMDDhIERAQiBwkeGhwLDB0cCwzGBBoYaxAhAgEbIwgLDS0fMQoCBQIGAwUCAgEDEBQQaxAhAQEcIwkLRRUwCRIEBQIGAwUCAwEBjgoYByYGwSUdThgYLSYdDxAKHA4QDxoEAhIFCgsEBRJCD98DDmAMDgVwChweDgscHv44GRMDAQIDFhMnAnSHWYABAQECAgQGBwkGERQHAQMCBRUTJwGrP5VQAQEBAQEBAgQFCAkAAAIAMP//Ak8CgAAoAGMAAAEeAxQOAjEiDgEHBgcOBSMiLgEnJjY3PgM/AT4EAQYHMBQxFhcwMh4FBhUOAQcmJyYnJjY3NjM2NzY3JiMwLgY0Nz4BNxYXFhcWBgciIwYCNAgLBQICAwIBJDENNAoBAwIGCRELBAsVAwUpHQwcGRYGBwEDDA4X/ugwCRIEBQIGAwUCAwEEGhhrECECARsjCAsNLR8xCgIFAgYDBQICAQUaGGsQIQEBHCMJC0UCdQMJCgwKDAcIVXgolVEFHwsVBwcCEhEcvVMgSz81EA8CBhIICf7AlFACAQEBAQMEBQcJBhoTAgEBBBUTKAEBdIdZgAEBAQEDBAUHCgYZEgIDAwQWEyYBqwAAAAADADH//wJ4AoAAKwBBAH4AAAEWBw4CBw4CJyIuAScmNQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYXFgc+AScuAQcGBw4BDwEUBhY3PgM3JwYHMBQxFhcwMh4FBhUOAgcmJyYnJj4BNzYzNjc2NyYjMC4GNDc+ATcWFxYXFgYHIiMGAnIGBQQYKhkCCiMUAwkUBQICBiEYFgECJx1eDBYRHwYMDkcJAhwfCQYJBAdxHBcEAgoKDw4aHgICAQoKBg0LCgLsMAkSBAUCBgMFAgMBAw8UEGsQIQIBCB4YCAsNLR8xCgIFAgYDBQICAQUaGGsQIQEBHCMJCkYBXycuJFhZGgMKDgQDDwwFAQUhAQEeGiO5Te4cCwcLChMkqwoDHhEECAoMD/UvgxUMCgIDFydnICACDxIBAQoNDgTGlFACAQEBAQMEBQcJBhIUBwIBAQQVCxgYAQF0h1mAAQEBAQMEBQcKBhkSAgMDBBYTJgGrAAIAL///AvACgAA7AIcAAAEeAQcOAScmIwYHBgcUDgUjIi4BJyY2NzY3JicmNjc+AR8BMhc3PgQXHgMOAzEUBxYnBicmJw4EBw4EJy4ENzQ+ATcwPgUyFhcWBwYHBgcGFxY3PgM3PgE/AQYHMCMGJyY2Nz4BFx4DFxYVBgLREA4CAiAkCAohETIMAwIEBgkNCQMLEwIEKR0SGhgHDQEJBxwKCgQGFgEDCw0VCwcKBQIBAgIDDRXVBwoVFAQLIh8lDQEDERs2IwcULiEYBAIRDwEFBAgHCQoLBRgEAggLAg0lKw0BDxIXCQsfCgpSEgM6CQcTEhSYMAsjDxEGFwECDwUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDRDBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAgwBAQEFBhVMW5ZUBRAqHxkBAQIQGzknBhUyEAIEBAUDAwMDDh4NDhIKNggJKQVEUWAcJU0UFAEEDB4XJAYHAQYBAwIDAwsaJgAAAAIAL///Ay0CgABKAJkAAAEeAQcOASciLgMOAgcGBwYHDgEHFxYXFhcWFxYHDgMVBwYnIicHDgMVDgImJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFJicOBAcOBCciLgM3ND4BNz4DMhcWBwYHBgcGFxY3PgU3PgM/AQYHMCMGJyY2Nz4BFx4GFxYVBgcGAwMYEgwMIggBCwYOCw4LDAQWEQMCAQcCFA4LCAUDAQMEAgQDAwEUJwQRJAwUCQwDEBQSBRMGBBYQJhcHDwEJCxsJGA0RGRhPKxf+9hUUBAsiHyUNAQMRGzYjBxQuIRgEAhEPAQQNDRQJGAQCCAsCDSUrDQEICg0NDwYHEg8OBARSEgM6CQcTEhSYMAgTDQ4JCggDFwEiBwJwCSATDwIGAwIDAQEDBgUXKggEBBIFAwEFAwYEBAoLBQkGAwEBFgMCbCRLJz8CDA8DAwQQLCJcQ2kEAwUlDRgDAQMhKSYlJgUDXQIEBRVNWpdTBRAqHxkBAxAbOScGFTIQAQUJBQUOHg4NEgo2CAoqAyIvPDk5FBcxJB4ICAEEDB4XJAYHAQYBAQIBAQIDAQsbJQYBAAAAAAIAL//+At8CgQBEAIsAAAEGBwYfARYGJy4BJzQ2PwE2Nz4BNzYuAiMiBwYHDgEPAQ4CJyYnJj4BNzY3Njc+Ajc2FhUUBwYHFDM+ARceAR8BFicmJw4EBw4EJyIuAzc0PgE3PgMyFxYHBgcGBwYXFjc+Ajc+AT8BBgcwBwYnJjY3NjIXHgMXFhUGBwYC1B8GCQUEARIYGRIBDAYGBQEBDgIBAgQEARMZGBUFIQIIAg0TDCEDAQIFAQYpEFEKChUMFCIWES8BEzAUCxIDBBP6FRQECyIeJg0BAxEbNiMHFC4hGAQCEQ8BBA0NFAkYBAIICwINJSsNARcfCwsfCgpSEgM6CQcTEhSYMAsjDxEGFwEiBwE0aSIvLCUOGwIDJCYVRxoZFgYBOAgFCAMCFBUpCoEXPAoOBgIEJQkUJQotijjJGBcYAgUUEBg0JXUBExMEAg4FBiDFAgQFFU1al1MFESkgGAECEBs6JgcVMhABBAoFBg0eDg0TCjUICikFaoMkJU0VFAIDAQseFiQHBwUBAwIEAwobJQYCAAIAL//2AvECgABNAJQAACUUDgUxBicmJyYnBgcOBSMiLgEnJjY3PgU/AT4EFx4DDgMxDgIHNjc2FxYHBgcWFx4BHwEeARceARUBJicOBAcOBCciLgM3ND4BNz4DFhcWBwYHBgcGFxY3PgI3PgE/AQYHMAcGJyY2NzYyFx4DFxYVBgcGAvACBAUFBQMdHRseETkTBAEDAgcJEQsECxYDBSkeCBUSExAMBAMBAw0OFwwIDAUDAQICAwEkMA9TBygNEB0RUwwICBkICAcvAwgI/vYVFAQLIh8lDQEDERs2IwcULiEYBAIRDwEEDQ0UCRgEAggLAg0lKw0BFx8LCx8KClISAzoJBxMSFJgwCyMPEQYXASIHMQYJCAcFBAISEhInF2NFJAUfChUIBwITEB29VBc1LzAlHggIAgYSCAgGAgkKDAoMBwgBU3YoPgUaIygcEDoWDxAkCQoIJgMHDQQB6AEFBRVNWpdUBRApIBgBAhAbOiYHFTIPAgQKBQEFDR4ODhIKNQkJKQVphCQlTRQVAgMBCx4WJAcHBQIDAQQDCxolBwEAAAIAL///ArMCfwAoAHEAAAEeAw4DMTAOAQcGBxQOBCMiLgEnJjY3PgM/AT4EByYnDgQHDgYnIi4DNzQ+ATc+AzIXFgcGBwYHBhcWNz4CNz4BPwEGBzAjBicmNjc+ARceAxcWFQYHBgKYCAsGAgECAgMlMA4zCwMCBwkQCwQLFgMFKR4LHRkWBgYBAw0NF6cVFAQLIh8lDQEBBwsWGyoaBxQuIRgEAhEPAQQNDRQJGAQCCAsCDSUrDQEXHwsLHwoKUhIDOgkHExIUmDALIw8RBhcBIgcCdAIJCgwKDAcIVXgolVEFHwsVBwcCEhEcvVMgSz81EA8CBhIICF8CBAUVTVqXUwMIGhYcEw0BAxAbOScGFTIQAQUJBQUOHg4NEgo2CAoqBWmDJSVNFBQBBAweFyQGBwEGAQMCBAILGyUGAQAAAwAv//8C1AKBADQASgCSAAABFgcOAgciDgUnLgInJiMHBhQOAyMGJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHDgEPAQ4BDwEWBhY3MjY3AyYnDgQHDgQnLgQ3ND4BNz4DFhcWBwYHBgcGFxY3PgM3PgE/AQYHMCMGJyY2Nz4BFx4DFxYVBgcGAs0GBQMZKhgBAgYICw0RCQMKFAQCAQIBAwYIDQcZFgECJx5dDBYRHwYND0cJAxsfCQcIBQZxHRYEAgkLBw4EBBkfAgIBAgoKCRcHbxUUBAsiHyUNAQMRGzYjBxQuIRgEAhEPAQQNDRQJGAQCCAsCDSUrDQEPEhcJCx8KClISAzoJBxMSFJgwCyMPEQYXASIHAV4mLiVYWRoCBwUGAwICAQIPDQUEAwMJBwgFAR8ZI7lN7hwMBgoKFCSrCwMdEAUICgsP9i+DFQ0JAgENBgYnZyAgARARARgLAbABBQYVTFuWVAUQKh8ZAQECEBs5JwYVMhABBQkGAQUOHg0OEgo2CAkpBURRYBwlTRQUAQQMHhckBgcBBgEDAgMDCxomBgEAAAAAAgAv//gDPwKLADwAkgAAAR4BBw4BJyYnBgcGBw4GIyIuAScmPgE3NjcmJyY2Nz4BHwEyMzc+BBceAxQOAjEUBxYBFhceAQYHDgEuBicuAScOAgcOAgcGJjc+ATc+AT8BDgQnLgE2Nz4BFzIeAgYHDgEPATA+BTcyNh4CFxQWDgIHBgceAgMhEA4CAyAjCQohEDMLAQMBBAYJDgkDChMDAhAiExEaFwcOAQoHGwoLAwcVAQMMDRULBwoFAQMCAwwV/n0XDQcKDBYIEA8ODgsMBwkBDUwDBA0dCAYJDxMgLgMDKhgOGAUEAQUPDhYJEAITEB5iJgIFDAcBBwsiCwwTISs0NDoZAwgYFBUGAQMHFBChXAMNOAIPBQwNFSACAQFUMZdQBhgMEgkKBQIRERJkgDc0RAMDCR8QDAoBATYCBxIICgYCCQkNCgwHBwEfAv5pGAsIGCQNBAMEBw0LEAkOAhKXEwQQNh4VSycMEx4jI6lLLVATEgIEDAUFBQceIhIiNBEDDA4bEBlbICETHyYpJR4HAQEGEg4BBQ0MEAY/XQspcgAAAwAv/y8DVAKLAC4ARgCfAAABNhYHFA4DBw4CJyYnBgcOBSMiLgEnJjY3PgM/AT4EFxYXNhc2JgcOAw8BDgMHBh8BHgE/AT4BBRYXHgEGBw4BLgUnLgEnDgQHDgIHBiY3PgE3PgE/AQ4EJy4BNjc+ARcyHgIGBw4BDwEwPgU3PgEeAhccAg4DBwYHHgIC+iU1AQEMFCocBRE4Hh8UHgYBAwIGCRALBAsVAwUoHQscGRUGBgEDDA4WDBcCGCQDDBAGCwkHAQIWIBAHAgEBAQQUCAglOP6WFw0HCgwWCBMPEgwPCAsBDUwDAQYODQ8FBgkPEyAuAwMqGA4YBQQBBQ8OFgkQAhMQHmImAgUMBwEHCyILDBMhKzQ0OhkDCBgUFQYCBQoRC6FcAw04AYwBMS4JFEU8TRwEDxMFBBBmMwUeCxUHBwISERy7Ux9LPzUPDwIGEggIBggWC2gdEQcCCAkHAwIZPTgkDwoJBRAGBQUdk30YCwgYJA0FAQQNCxILEQESlxMBBhQWJBMVSycMEx4kIqlMLFESEgEFDAUFBQceIhIiNBEDDA4bEBhbISETHycpJB4HAQECBhIOAQIHCAoKCgU/XAwpcQAAAgAv/z8DXQKLAFgAsQAAARYHDgMPAQYHDggnJicmJyY2FxYXFj4CNz4BNzAmFQYHDgMnIi4DJyY2NzY3PgQXFgcGBw4BBwYXFjc+ATc+Azc+AxYBFhceAQYHDgEuBScuAScOAgcOAwcGJjc+ATc+Az8BDgQnLgE+ATc+ARcyHgIGBw4BDwEwPgU3PgEeAhcUFg4CBwYHHgIDOCUYBAgGBQEBQxMBDQgRDhgXICISOxEBAQsrHggQDhQUCwMKFwMCBQ0DCxMZDAIIFBERAwYRGisTBggPDBIHGA0DDA0qBRcNBQgWRxUIFw4QBQECCQkO/mgXDQcKDBYIEw8SDA8ICwENTAMEDR0IBQgFEA8gLgMDKhgJEAsIAQIBBQ8OFgkMBwgQDB5iJgIFDAcBBwsiCwwTISs0NDoZAwgYFBUGAQMHFBChXAMNOAGfEzAHExEPBASyPgQsFy8dJxgTBQIKJgMCHi8KAwoGAREOCBI+DgEBCAwECAwHAQEGChYPHGs/aRcICQ4EBAYLMAoXF1sRSBUGAgZrNBI8JCIGAQIHAwH+1xcMCBgkDQUBBA0LEgsRARKYEgQQNh4TNx8hCRMeJCOoTBw1JR0HBwEFDAUFBQUUGRoNIjQRAwsPGw8ZWyEhEx8nKSQeBwEBAQcSDgEFDQwQBj9cDClxAAAAAAMALf80AqUCfwAtADgAegAAARYHBgcOAgcOAw8BBgcOAScmJyY3Njc2FxY2PwE2Nz4BNz4ENz4BFzYeAQcOAicuATYBJiMiBwYHIisBBiMwIi4GJyY2Nz4BPwE+BBceAxQOAjEUDgEHBgc2MhcWFxYHDgEPAQ4CLgECchEEAQsCHSIIBQ8NDAMDESQcTiMpBAIIDRoTHxEbCAkOEwRGAQEHDAwLBAkeCw0cCwYFEBMKDgsN/vkyDBhbDigDBAEEAQIHBggICAYFAQUuHxI1EREBBAwOFwwICwYCAwIDJTAOFxw0gh4aCQYDAQgDAwQMDQoMAYYKFwcnB1ptHBMtJiIKCSwmHQ4RFCARDxkDAhIICwoLEkIP3gMDFiAgGwYNBQh6ChwPCg0EAwUdHf4TBQcBBQEBAQMEBQgKBhu8WTOBJycCBhIICQYDCQoMCwwHBwFWeihDiQcGBhYPEgoSAwQGBgEBAwAAAAMALf80AyICiwAtADgAoQAAARYHBgcOAgcOBQ8BBgcOAScmJyY3Njc2FxY2PwE2Nz4CNz4BNz4BFzYeAQcOAicuATYHNiYGBw4BBwYHBgcGJicmNz4CNzY3NiYHDgEPAQ4EBxYHBicuATc2NzY3Njc2NTQHBicmNjc2NzYWBwYHBhY3PgE3Njc2FgcOATEGPwE+Ajc+Ajc2FgcCBwYXFiMGJyY2NzYC7hEEAQoCHSMIBAoJCggHAQIRJBtOJCkEAggNGhMfERsJCA4TAyUiAQQjCAkeCw0cCwYEERMKDgsN5wEFDwwYQgkSAwQiHjAECCYLFQsHFQQEBBEMIQsLAwweFxUBARAWKREVBhNAEwwEAgENHBcOAREzNyEpBwYhBQEKBzoYKSQYGAgGIAUFBAIiKwsREiAQHBQNWgoIBwYxMwgHGhYdAYYKFwcnB1ptHA4fHR0YEgUFLCYdDhEUIBEPGQMCEggLCgsSQgt0bQQOXw0NBQh6ChwPCg0EAwUdHUgICgQOHHYqOkReDAsXFzB0IEIjETEYCxoFAx0NDQQROT5gMEwWIQ4GMSyKojcgCwsGAQkHEBAKKBAvDAcrGhU+CAkHBj4VJgYEHxgSSw8BAQIiKwoPDg8BAycm/v9BOE9EASMexTtOAAAAAAIALf/1A34CjQBFAK8AAAEGBwYfARYGJy4BNSY2PwE2NzQ+Ai4BIyIHBgcOAQ8BDgEnJicmPgE3Njc2Nz4CNzYWFRQHBgciFjM+ARceAx8BFiUCBwYXFgciJyY2NzY3NiYGBw4BBwYHBgcGJicmNz4CNzY3NiYHDgEPAQ4EBxYHBicuATc2NzY3Njc2NTQHBicmNjc2NzYWBwYHBhY3PgE3Njc2FgcOAgcGNzI+Ajc+Ajc2FgNyHgcJBgMBEhgZEgEMBgYFAggHAwUFAhMYGBYFIAMIAxkSIQMBAgUCBSkRUQkLFAwUIhYRLgEBARIxEwcMCAYBAhP+/FoKCAcGMTMIBxoWHQIBBQ8MGEIJEgMEIh4wBAgmCxULBxUEBAQRDCELCwMMHhcVAQEQFikRFQYTQBMMBAIBDRwXDgERMzchKQcGIQUBCgc6GCkkGBgIBBEPAgUFAgQiKwsREiAQHBQBNWoiLi0kDhwDAiUmFEgZGhUGAxseDAkCFBQqCoEWPBAQAwUlCBQmCS2KOMoYFhgDBBMRGDMmdQETFAQCBwcHAgMftf8AQTlPQwEiHsY6Th4HCgQNHHYqO0RdDQsXGDBzIEMjETAZChsFAx0NDQUROD5gMUsXIA4FMiuKojcgDAsFAgkIEBEJKRAuDAgrGhU/BwoIBT8VJQcEIBcOKSMEDgECIysJDw4PAgImAAAAAAIALf/4A98CjwBIALYAAAEeAQcOAScwLgMOAgcGBwYHDgIHFxYXFhcWFxYHDgEPAQYnIicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFAgcGFxYjBicmNjc2NzYmBgcOAQcGBwYHBiYnJjc+Ajc2NzYmBw4BDwEOBAccAQYHBicuATc2NzY3Njc2NTQHBicmNjc2NzYWBwYHBhY3PgE3Njc2FgcOAgcGNzI3PgM3PgI3NhYDtBgTDAsjCAsHDgoOCwwFFRADAQIDAwIUDgsIBQQBAwQDBgICEycEESEMEggLAxkaBxMEBBMPJBcIDgIICxsJFw0QGBhNLBb+2loKCAcGMTMIBxoWHQIBBQ8MGEIJEgMEIh4wBAgmCxULBxUEBAQRDCELCwMMHhcVAQgHFikRFQYTQBMMBAIBDRwXDgERMzchKQcGIQUBCgc6GCkkGBgIBBEPAgUFAgIBFxofCRESIBAcFAJ2CSASEAIFAwICAQEDBwUXKwcFAwkKBQIBBQMGBAQKCwgMAwIXAwJuJEsoPwERDwIFDy0iXERqAwMFJA4XBAIDIiknJScEAmz+/0E5T0MBIh/FO04dBwsEDhx2KjpFXQwLFxcwdCBCIxEwGQsaBQMdDQ0EETk+YDEIGjUKIQ4GMSuKojgfDAsFAgkIEBEKKBAvCwgrGhU+CAkHBj4VJgYEHxgNKiMDDwEBARcbHggODw8BAiYAAAAAAgAt//8DCwKEAD0AkgAAAR4BBw4BJyYjBgcGBw4GIyIuAScmPgI3NjcmJyY2Nz4BHwEyFzc+BBceAxQOAjEUBxYnHgEOAQcwDgEHBgcUFQ4EByoBLgI1LgInLgEnBgcGBw4BJy4CJyY2Nz4DPwE+BBc2FxYXHgEXHgMXPgE3PgM/ATQ+AwLtEA4CAyAjCQohETILAQMBBAYJDgkDChQCAgoSGg8RGhcHDgEKBxsKCwMHFQEDDA0VCwcKBQEDAgMMFeEODgEDASUvDSgOAgMHCREMAwcTDwwBCBAIAQUBGRYaDwQbIAQMFgQGJRwLGxgVBgYBAgkLEQodDgYBAg8BAQUFCQMCEQIHFxYVBgcDCw4YAg8FDQwVIQMBUzGXUQYYCxIJCwQCERENQ1NhKTNEBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAmcCFRwOBlZ5KH9pAwQQDxcKCQEFCRMNBnm7OQcWAj9DU5YpKwIBAhURHcBUH0w/Ng8PAgUNCggBAh0NCQ1oCwUqMkYZCTELHEk/NhAQAgcQCwgAAAACAC3//wN9AoMASQCdAAABHgEHDgEnIi4DIg4BBwYHBgcOAQcXFhcWFxYXFgcOAw8BBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFgUeAQ4BBzAOAQcGBxQVDgQHKgEuAjUuAic0LgMnBgcGBw4BJy4CJyY2Nz4BPwE+BBc2FxYXHgIXHgIXPgE3PgE/ATQ+AwNSGBIMCyMIAQoHDgoOCwwFFhEDAgEHAhQOCwgFAwEDBAIEAwIBARQnBBEkDBQJDAMaGQgTBgQWECcXCA4BCAsbChcNEhgYTysX/sgODgEDASUvDSgOAgMHCREMAwcTDwwBCBAIAQIBAgEZFhoPBBsgBAwWBAYlHBEvEA8BAgkLEQodDgYBAgcIAQEHCwQCEQILKxAQAwsOGAJyCSASEAEFBAEDAQMHBRcqBwUDEgYCAgQEBgQECgsFCQUEAQEWAwECbSRLJz8BEQ8DBg8tIVxDaQQDBiQOFwMBAyIpJiQmBQMDAhUcDgZWeSh/aQMEEA8XCgkBBQkTDQZ5uzkDBwYGBwI/Q1OWKSsCAQIVER3AVDJ/JyYCBQ0KCAECHQ0JCzc1CQY8YB4KMAstfSgoAgcQCwgAAwAv//4DdgKDAEcAaQCBAAABHgEHDgEnNC4DDgIHBgcGBw4BBxcWFxYXFhcWBw4BDwEGJyInBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWJR4BBw4EBw4GJy4DNz4ENz4EFzYmBw4BDwEOAQcGFxQXFhcWNzY3PgIDSxgTDAsjCAsHDgoODAsFFREDAQIGAhQOCwgFAwEDBAIHAQIUJwQRIgwTCAsEGRkIEwUEFA8mGAcPAQgLGwkXDREYGE4rF/40NUgDAQQUIEEqAQUQERwdJxMmNBcHBwIGGyNCKAIJHB4rKgQWFw0fCQo7QgcDAQEEBw8fGBMoQR0CcwkfEw8DBQEDAgIBAQMGBRgqCAQEEgUCAgQEBgMECgwIDAICFwMCbSRMJz8BEQ8CBg8sIlxEaQQDBSQOFwQBAiEpJyQoBQIHAVFPCilqZXksAgQPCg8FAwUJKzpGIgkdV1JoKQIKFxIOqy8cCgUZCglLpzIZCgoFEQoVBwYSJpR4AAAAAAMAL//8AyECfwAzAFUAbQAAAR4BBwYHDgIHDgMPARYXHgEVFAYnJgcGBwYnJjQ3PgE/ASYiBiMiLgI3PgE/ATYyJR4BBw4EBw4GJy4DNz4ENz4EFzYmBw4BDwEOAQcGFxQXFhcWNzY3PgIC+RIWAQEgAgMCAiM9IxkFBT4fGh4bE2EjLh0aDAkLCm4zMxIoIgMIDxYMAQEOBgYfn/6HNUgDAQQUIEEqAQUQERwdJxMmNBcHBwIGGyNCKAIJHB4rKgQWFw0fCQo7QgcDAQEEBw8fGBMoQR0BoQIaEB8eAgQEASRDLiMICAMEBRQXGBgCDQEDBwYPCiMUDoI6OgMCAgcPDA8TAwIH2wFQUAopamR6LAEFDgsOBgMGCCw6RSMIHlZSaCkDCRgRD6wvHQoGGQkKS6cyGAoLBRAKFgcGEiaUeAAAAAQAMv8WAuQCgAAvAEcAYwBzAAABMhYVFAcGBw4CBzI+AzMWFxQHBgcGJyYnNDY3DgEuAicmNzY3Njc2Fz4CBzYHBgcOBQcVFBcWFxY3Njc+AicOAycjDgEHBicuATUnPgM3Njc+ARcWBgc2JicmJyYHDgEPATI+AgK2ExoCCA8NMz8JAQMJCAkDHQEhHB4cEQ4BFA0FDyggHwYEBBBXFhpALwEGFEcDEhIhDhcOCwUDAQEBAgsYBwccKg23GUI6NA8QFRgCBDcTFAEFKTkmEQ8YKHArNQ1zKQEfBgk1FgwgCwoWGCknAZkTFAcJHiAch8pBAQMCAQEaGRMQCAcODBoVeysCAgEMJBwWGYBlGA4gLQMJEWwiAgMoEiglJB0XBgcEBgcFFBEFCCJrPkEfKhEIAUJrGjsDAR0ODjucl1wlHxMfBxsmnQ8uVQ0CAQgxGVMcHQMKGQAAAwAy//wDjgKEAFgAcgCDAAABFgcGBw4BBwYnJicOBicuATc2Nz4BMx4BBw4BBwYHBjc2Nz4CNz4JNzYWFxYGBwYHDgQUHgIXFjY3PgI3PgYzNiUWBgcOAycjBgcGJy4BNSc+Ajc2Nz4BBzYmJyYnJgcOAQ8BPgQDhQkcPScMOCsoGxIBAQQNDBUTGgwrGRMsHA0XEhMYCgUXDSoCAioaEwggHQQBBAIEAwUDBQQGAg4bBQMGCzcGAQQCAwECAwcFEyQNAyUgBAEHAggGCgwHFf48NQ02GUI6NA8QKgUENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKERMiGiIBjBM8h2AdNQQDFhAUAQUNCg4GBQQKVkCdORgSARwXDCodX0BAIxU7GFRHCAEIAwcEBgQFBAMBBggLDhYbgCEFEgsPCwwIBwQBAjcgB2NSCAEOBQsFBwQCzSaeQx4rEAkBh0A7AwEdDg5N6II5HxMfB+4vVA0DAQcwGlIdHQEBBgsXAAAAAwAy//0CyAKFACAAOgBKAAABFgYmIycmBg8BDgEPAQ4BJy4BJzUmEjc2Fx4BHwE+ARYFDgMjJwYHBicuATUnPgI3Njc+ARcWBgc2JicmJyYHDgEPATI+AgLFAhcZBh4XKQgJExsEAwQXGBAQAQFKCxMbDRABARBCN/7pGUI6NA8QKgUENxMUAQZJNhkPGChwKzUNcykBHwYJNRYMIAsKFhgpJwF9FRcBAwEgEBElbSMkHx8CAhkLCykBABorAgIRCAgXExExHioRCAGHQDwEAR0ODk3ngzgfEx8HGyadEC9VDAMBCDEZUx0cAgoaAAAAAwAy//8C5wKFADsAVQBnAAABHgEHDgEnJiMGBwYHDgYjIi4BJyY2NzY3JicmNjc+AR8BMhc3PgQXHgMUDgIxFAcWJRYGBw4DJyMGBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE2Mj4DAskQDgIDICMJCiEQMwsBAwEEBgkOCQMKEwMEKh0RGhcHDgEKBxsKCwMHFQEDDA0VCwcKBQEDAgMMFf73NQ02GUI6NA8QKgUENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKDg8dFRsaAg8FDQwVIQMBUzGXUQYYCxIJCwQCEREbvlQ0QwQDCCAQDAoBAQE3AgYSCQkFAwgKDAoMBwgBHgJZJ51DHisQCQGHQDsDAR0ODk3ngzkfEx4I7i9UDQICBzEZUh0dAQMIDBUAAAADADL/QwL/AoUAVgBsAH4AAAEWBw4BDwEGBw4IJyYnJicmNhcWFxY+Ajc+ATcwJgcGBw4CJyIuAycmNjc2Nz4EFxYHBgcOAwcGFxY3PgE3PgI3PgMWBQYjBgcGJy4BNSc+Ajc2Nz4BFxYGBzYmJyYnJgcOAQ8BMj4EAtolGAYMBANDEwENBxIOGBcgIhI7EQEBCywdCBAOFBQLBAkXAwEBBQ0FDyMPAggUERAEBhIaKxIGCA8MEgcYDQINBhISEAIXDQUIFkcVCCESBwECCQkP/tlOmioFBDcTFAEGSTYZDxgocCs1DXMpAR8GCTUWDCALCg4PHRUbGgGjEzAMIQoLsj4ELBcvHScYEwUCCiYDAh4vCgMKBgERDggSPg4BAQgMBQwOAQEGChYPHGs/aRcICQ4EBAYLMAoXCyQnJAlIFQcDBms0ElUrCAECBwMBRGGHQDsDAR0ODk3ngzgfEx8HGyadEC9VDQIBCDEZUxwdAQMIDBUAAAAAAwAy//oC/wKEADUATwBfAAABFgcGBw4EBwYnJgciFSIOAwcGJicmNzY3PgEXHgEHBgcOAhY3Mj4DNz4CNzYFDgMnIwYHBicuATUnPgI3Njc+ARcWBgc2JicmJyYHDgEPAT4DAt0hFE0JAgMCBgwJJhMDDQEBCQgNEAkXLAsJAgNFFB4YHQoNLw8DCQ8GDwIEDw8UCQkqHggg/u8ZQjo0DxAqBQQ3ExQBBkk2GQ8YKHArNQ1zKQEfBgk1FgwgCwoWGCknAZ8MK6I8DSofHxICBi8HDQEKBgkGAQEXExImSqYwJQECJhVbKwkdPSgBAQgPHxUUaEcNNEkeKxEIAYdAOwMBHQ4OTeeDOR8SHwgbJ50PL1QNAgIHMRlTHB0BAgoZAAAAAAQAMv/8AmUCggAiAC0ASABbAAABHgQOAjEwDgEHBgcUFhQOAiMiJyY2Nz4BPwE+Ax4BBw4CJy4BNicWBgcOAycjBgcGJy4BNSc+Azc2Nz4BBzYmJyYnJgcOAQ8BNjI+BAIoBwoGAwEBAQIWHQgcAQEEBw0KHAkIDxEKHQoKAQcaKRwKBwQREwoOCg5oNQ02GUI6NA8QKgUENxMUAQUpOSYRDxgocCApAR8GCTUWDCALCgwNGRAYFBgBjwEGBggGCAQFNkwaXzMDEwcNBQUXEng1IFAYGQMLDXAKHQ8JDQMDBR0dcSaeQx4rEAkBh0A7AwEdDg47nJdcJh8THwfuL1QNAwEHMRlSHR0BAgUIDBMAAwAy//4DZQKGAEkAYwB2AAABHgEHDgEnMC4CKgEOAQcGBwYHDgEHFxYXFhcWFxYHDgMHIwYnJicHDgMHDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFFgYHDgMnIwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgMPATI+AwM6GBIMCyMICwcOCg4LDAUWEQICAgYCEw4LCAUEAQIEAQQEAgEBEygEESMMFQgMAQMaGQcTBQUVECcXCA4BCAwbCRcOERkYTisX/pQ1DTYZQjo0DxAqBQQ3ExQBBkk2GQ8YKHAgKQEfBgk1FggSEQ4EBBETIhoiAm8KIBIPAgUEAgMDBwQXKwcEBBIFAwEFBAYDBQoLBQkFBAEXAwECbSNMJz8BEQ4CBg8tIltEaQQDBSQOFwMCAyEpJiQmBQINJp1DHyoRCAGHQDsDAR0ODk3ngzgfEx8H7S5VDQIBCDEQLiomCwwBBgwXAAAAAwAy//4C5gKDAEMAXgBuAAABBgcGHwEWBicuATUmNj8BNjc0Njc2LgEjIgcGBw4BDwEOAScmJzQ+ATc2NzY3PgI3NhYVFgcGBxQyMT4BFx4BHwEWARYGBw4DIycOAQcGJy4BNSc+Ajc2Nz4BBzYmJyYnJgcOAQ8BMj4CAtsfBwkGAwITGBgTAQwGBgUCDwIBBAYCExgYFgUgAgkDGRIhAwEGAQUpEVEJCxQNEyIBFxEuARIxEwsSBAMT/tU1DTYZQjo0DxAVGAIENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKFhgpJwE0aCMvLCUOGwIDJCYVRxoZFgYBOAgHCAMUFSkKgRc8DxADBCUJFCUKLYo4yRgXGAIFFBAYNCV1ARMTBAIOBQYgARAmnUQeKhEIAUNqGjwDAh0ODkzogzgfEx8H7i9VDAMBCDEZUx0cAgoaAAAAAAQAMv86AmYCgwAmAC4ARQBVAAABFgcGBw4BBw4BDwEGBw4BJyYnJjc2NzYXFjY/ATY3PgE3PgE3PgIeAQ4BLgE2BwYjBgcGJy4BNSc+Azc2Nz4BFxYGJw4BDwEyPgI3NiYnJicmAjIRAwELAT0LCRkJCRAkHE4jKgMCCAwbEx4SGwgIDxMERgEEIwgIHxgcCw0dHAsNdk6aKgUENxMUAQUpOSYRDxgocCs1DcQMIAsKFhgpJxQpAR8GCTUBjAoXBycFwCUdThgYLCYdDhEUIBEPGQMCEggLCgsSQg/eAw5fDQ0FcgocHg4KHR2XYYdAOwMBHQ4OO5yXXCUgEh8HGyadWxlTHB0DChkVLlUNAgEIAAAAAAMAMv/5AvcCggBHAGEAcwAAJRYHBicmJyYnBgcUDgQjIi4BJyY2Nz4DPwE+BBceAw4DMQ4CBzY3NhcWBwYHFhceAx8BHgEXHgEVARYGBw4DJyMGBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE2Mj4DAvUCGh0dGx4RORMFAwIHCRELBAsWAwUpHgseGRYGBwEDDQ4XDAgMBQMBAgMCASQxDlIIKA0QHhBTDAgFDg0KBAMHLgQHCf7GNQ02GUI6NA8QKgUENxMUAQZJNhkPGChwICkBHwYJNRYMIAsKDg8dFRsaNBkQEhISJxZkRSQFHwoVCAcCExAdvVMgTD81DxACBhIICAYCCQoMCgwHCAFTdig+BRkiKB0POhYPChYRDgQECCYDBw0EAjAmnkMeKxAJAYdAOwMBHQ4OTeeDOR8THwfuL1QNAwEHMRlSHR0BBAcMFQADADL//AKxAoIAKABCAFQAAAEeAxQOAjEOBAcGBw4FIyIuAScmNjc+AT8BPgQHFgYHDgMnIwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgEPATYyPgMClggLBQICAwIBDxcZGwg0CgEDAgYJEQsECxUDBSkdEjIQEAEDDA4WzzUNNhlCOjQPECoFBDcTFAEGSTYZDxgocCApAR8GCTUWDCALCg4PHRUbGgJ0AwkJDQoMBwcBIzc9RBmWUQUfChUIBwITEBy9UzN+JyYCBhIICRMmnkMeKxAJAYdAOwMBHQ4OTeeDOR8THwfuL1QNAwEHMRlSHR0BBAcMFQAAAAADADL//AMOAoIANgBQAGEAAAEeAhUGBw4BBw4DDwEWFx4CFxQOAScmBwYHBicmNDc+AT8BLgEOASMiLgI3PgE/AT4BJRYGBw4DJyMGBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwE+BALmDBIJAiACBAIkPCMaBAU+HhIWEAEOFA1gIy4dGg0ICwlvMzIOIBYXAwgPFg0BAQ4HBh6f/uo1DTYZQjo0DxAqBQQ3ExQBBkk2GQ8YKHAgKQEfBgk1FgwgCwoREyIaIgGkAQ0UCh4fAgcCJEMtIwgJAgUDCBUPEBcJAg0CAgcHDwokEw6DOjoBAQEBAgcQCw8UAgMGAcAmnkMeKxAJAYdAOwMBHQ4OTeeDOR8THwfuL1QNAwEHMRlSHR0BAQYLFwAAAAADADL/+AMiAogANABPAF8AAAEeAgcOAQ8BFhcWBgcGLgEvAQYHBicuAT4BPwE+Az8BJicmNTQ2NzYeAh8BPgI3NiUWBgcOAyMnDgEHBicuATUnPgI3Njc+AQc2JicmJyYHDgEPATI+AgMBCRAIDws8GBhICAgFEAsVDQVKBEkzJAoKAgQDAwghIyEKCiERGRETCRIPBAYvDSglBxj+zTUNNhlCOjQPEBUYAgQ3ExQBBkk2GQ8YKHAgKQEfBgk1FgwgCwoWGCknAaEDEiATEEMZGn4RDCUMCQQJB4cDXEIOBBASEQUFDSkpJgwMQx0pDg0ZAgIJFggKVw0sKgkgxCadRB4qEQgBQ2oaPAMCHQ4NTeiDOB8THwfuL1UMAwEIMRpSHRwCChoAAAMAMv/+AvwCgwAvAEkAXQAAAR4BBw4BBw4DBw4BLgE3Njc2Nz4DOwEeAQ8BDgIHBhcWNzY3Njc+ATc+ASUWBgcOAy8BBgcGJy4BNSc+Ajc2Nz4BBzYmJyYnJgcOBQ8BPgMC6wwFBQUqFA8XIycVFi8mFgIHPwUJBQ0KCQMCExEBAQEKGAweAwENAQIeIAxJAgko/t01DTYZQjo0DxAqBQQ3ExQBBkk2GQ8YKHAgKQEfBgk1FgYMDQwKCAICFhgpJwGfBhUOFHEpHSo2Kw4OBhIxI1u1DwoHCAQCARMKCQsYNiFUPx8GAQEWQBi8BRUNwCaeQx4qEQkBAYhAOwMBHQ4OTeiCOR8THwfuL1QNAwEHMAwfHiAbFQcGAQIKGQAAAAQAMv//As4ChQAuAEQAXwBwAAABFgcOAQcUDgUnLgInJiMHBgcGJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHBgcOAQ8BFgYWNzI+AjcDFgYHDgMjJw4BBwYnLgE1Jz4CNzY3PgEHNiYnJicmBw4BDwEyPgMCyAUEBjUkAgcHDA0RCQMJFQQCAQIGIBgWAQInHV4LFhIfBgwORwgDHB8IBwgFBnAcFwQDCQsODhoeAwIBAgoLBQ4LCQOYNQ02GUI6NA8QFRgCBDcTFAEGSTYZDxgocCApAR8GCTUWDCALChETIhoiAV4mLjuOJgECBwUGAwICAQIPDQUEIgEBHxkjuU3uHAwGCgoUJKsKBB0QBQgKCw/2L4MVDQkCAhgnZyAgARARAQoODQUB9SadRB4qEQgBQ2oaPAMBHg4NTeiDOB8THwfuL1UMAwEIMRpSHRwBBgwXAAAAAAMAMv/9AtACiABEAF4AbgAAARYHDgIHDgEeARcUBgcGJyY3PgM/ATY3NiYPAQ4BBw4BFxYHDgEHIi4CLwEuATUnJjY3PgEeAR8CPgUWBw4DJyMGBwYnLgE1Jz4CNzY3PgEXFgYHNiYnJicmBw4BDwE+AwKaNQsBDxUIBgQBAwERESkMCQsBCAoJBAMGCAQKBwcVGhUTJAQCBAMSDAUKBwYBAQgIAQFQFggQDAkDAg8BBAwMExIX5BlCOjQPECoFBDcTFAEGSTYZDxgocCs1DXMpAR8GCTUWDCALChYYKScBnhg8BS5FGhYyISMCDhoCAykfQgojJSILCxIdDgwBAQcbIR6OIBcSCxABAgMDAQEHGgoKOvcVBwYBAwICDgIDCggJBAE9HisRCAGHQDsDAR0ODk3ngzkfEh8IGyedDy9UDQICBzEZUxwdAQIKGQAAAAMAMv/zA3kCgwCCAJwArAAAARYHFA4CBw4BHgEVFA4DBwYnJjc+Bz8BNjc2Jg8BDgEHDgEXFgcGBwYHIxUGBzAHIiMOAScmJyY3PgM/ATY3NiYPAQ4CBw4BFxYHDgEHIi4CLwEuASc1NDY3PgEeAR8CPgUWFxYXPgM/AT4EBQ4DIycGBwYnLgE1Jz4CNzY3PgEXFgYHNiYnJicmBw4BDwEyPgIDRDQNCgwRBQYFAQICBQcMBygKCAsBAwUFBQYEBAEBBggECQcHFBoUEiUDAgQDBgEBAQQFAQEBBAkEIAkICwIICgkDBAUJBAoGBw4WEA4TJAMCBQMRDAUJBwUBAgcHAVAWBw8MCQMCDgEECwwTERYKKAEDCQgGAgICBxcVIP50GUI6NA8QKgUENxMUAQZJNhkPGChwKzUNcykBHwYJNRYMIAsKFhgpJwGSFEEEHyU0FRUyISMCBAsLCAYBAikeQgYQEhUUFBANAwQSHQ4MAQEGGyEdjSAYEQkHAQEBAwIBAgEBAyQfQgkjJCILCxIdDgwBAQQRFhYejSAYEQsPAQEEAwEBBxoKCjr1FAcGAgMBAg4BBAkICQQCBRMtBgoIBwECAgUNBgQ4HioRCAGHQDwDAh0ODkzogzgfEx8HGyadEC9VDAMBCDEZUx0cAgoaAAAABAAy/ygDFgKDAC8ARABqAHoAAAEUDgMHDgInJicGBw4FIyIuAScmNjc+Az8BPgQXFhc2NzYeAQc2JgcOAQ8BDgIHBh8BHgE/AT4BJQYHFhcWFxYXFgYPAQYmLwEmJwYHBicuATUnPgI3Njc+ARcWBgc2JicmJyYHDgEPATI+AgMVAQoTKRwEETcfHhUdBQECAgYIEAsECxUEBSUbCxsXFAYGAQMMDRYMFwMYFhcoG0sDDQ8JEgQFGyQKAgEBAQQUCAgkN/7mNl0RIhMmCgUFBAQFEiYODjw4LQQENRMUAQZJNhkPGChwKzUNcykBHwYJNRYMIAsKFhgpJwEsBxZEPU0dBQ4UBAQQZzMFHwoVCAcCEhAcvFMgSz81EA8CBhIICQYHFwsBARMsKRwRBwQQBgYhWDMWCgkFEAUFBR2UbUMWMD4jIAkLDxcHBxACCQkqwYw5PAMCHQ4OTeeDOR8THwcbJp4PL1QNAwEHMRlTHB0DChkAAwAy//4DZgKIAEkAcQCFAAABHgEHDgEnMC4CIg4CBwYHBgcOAQcXFhcWFxYXFgcOAw8BBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFgUWBgcGBxYXFhcWFxYGDwEOAS4BLwEmJwYHBicuATUnPgI3Njc+AQc2JicmJyYHDgUPATI+AgM6GRMMCyIJCwcOCg4LDAUVDwMCAQYCEw4LCQUDAgIDAgQDAgEBEycEESELEgcLAxkaBxMEAxMPIxcIDgIICxsJFw0QFxdOKxf+lDUNNjZdESITJgoFBQQEBQoYFRIGBTw4LQQENRMUAQZJNhkPGChwICkBHwYJNRYGDQwMCggCAhYYKScCdwggEhADBQQBAwEDBwUXKwcFBBIFAgEFAwYDBQoLBQkFBAEBFwIBAW0kTCdAAREPAgUPLSJcRGoDAwUkDhgEAQIhKiYlKQQCEiedQ0MWMD4jIAkMDhgHBwoGBQgEBCnCjTg8AwEdDg5N6IM4IBIfCO8vVQ0CAgcxCx8fIBsVBgYDChkAAAAABAAy/zQCpAKBACkAMQBYAGgAAAEWBwYHDgEHDgMPAQYHDgEnJicmNzY3NhcWNj8BNjc+ATc+ATc+ARc2HgEOAS4BNgEmJwYHBicuATUnPgM3Njc+ARcWBgcGBxYXFhcWFxYGDwEGJicDDgEPATI+Ajc2JicmJyYCcREEAQsBPQsGDg0MAwQQJBxOIyoDAggNGhMfERsICA8TBEYBBCMICR4LDRwLDR0cCw3+2Dw4LQQENRMUAQUpOSYRDxgocCs1DTY2XBAiEyYKBQUEBAUSJg4oDCALChYYKScUKQEfBgk1AYYKFwcnBcAlEy0mIgoJLCYdDhEUIBEPGQMCEggLCgsSQg/eAw5fDQ0FCHoKHB4OCh0d/h8qwYw5PAQBHQ4OO5yXXCYfEx8HGyaeQ0MWMD4jIAkLDxcHBxACCQH2GlIdHQMKGRUvVA0DAQcAAAAAAgAt//8CmwKBADgAbgAAAR4BBw4BJyYjBgcGBw4GIyIuAScmNjc2NyYnJjc2NzYXNz4EFx4DFA4CMRQHFicGIi4CMSYnBgcGBxQOByMiLgEnJjY3NjcHDgIjIiY3PgM3MzYWFxYXFgcGAn0PDgEDICMJCiERMgsBAwIDBgkOCQMKFAIEKR0SGhcHGhMMIAwMFgEDDAwVDAcKBQEDAgMMFcUGDxENCh0oSxUvDAMBAwMGBwkNBwQLFgMFKR4fMkQECx0LEhIJAw0NDAMEPe4pGwkGBgsCDwUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDRDBAMLIRQJAwE3AgYSCQkFAwgKDAoMBwgBHgIPAQICAQQBsD+HYAQVBxIGDQUHAgITERy+U1d8BQECAiYWCAwHBAEIAwUEFA4PHwAAAAIALf/+AugCggBLAH0AAAEeAQcOASciLgIqAQ4BBwYHBgcOAQcXFhcWFxYXFgcOBTEHBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFgcGLgExJicGBwYHFA4HIyIuAScmNjc2NwcOAiciJjc+AT8BNhYXFhcWBwYCvRgTDAwiCAELBw0LDgsMBBYRAgICBgIUDQsJBQMBAwQBAwIDAgEBEygEESIMFAgMAxoZCBMGBBUPJhcIDgEICxsJFw4RGBhOKxf3CB4XHShLFS8MAwEDAwYHCQ0HBAsWAwUpHh8yRAQLHQsSEgkFGAoJPe4pGwkGBgsCcQkgEhACBgMCAwMHBRcqCAQEEgUDAQUDBgQECgsEBgUEAwIBFgMCbSRLJz8CEA8CBg8tIVxEaQQDBSQOFwQBAyIpJiQnBQJYAgMDBAGwP4dgBBUHEgcMBQcCAhMQHb5TV3wFAQIDASYVDREBAggDBQQUDg8fAAAAAAIALf//AqwCgABHAHkAAAEGBwYfARYGJy4BNSY2PwE2NzQ+Ai4BIyIHBgcOAQ8BDgEnJic0PgE3Njc2Nz4ENzYWFRYHBgcUMDM+ARceAx8BFicGLgExJiMGBwYHFA4HIyIuAScmNjc2NwcOAiMuATc+AT8BNhYXFhcWBwYCoR8HCQYDAhMYGRIBDAYGBQIIBwMFBQITGBgWBSACCQMZEiEDAQYBBSkRUQYFDAkNCBMiARcRLgESMRMHDAgGAgET+QgeFx0oSxUvDAMBAwMGBwkNBwQLFgMFKR4fMkQECx0LEhIJBRgKCT3uKRsJBgYLATdoIy8sJQ4bAgMkJhVHGhkWBgIcHQ0IAxQVKQqBFzwPEAMEJQkUJQotijjJDw4WCgsBBRQQGDQldQESFAQBBwcHAwIgxAECBASwPodhAxUIEQcMBgYCAhMQHb1UV3wFAQIDASYVDRACAggDBgMUDg8fAAAAAgAt//YCswKDAEkAfQAAJRYHMCMGJyYnJicGBw4FIyIuAScmNjc+Az8BPgQXHgMUDgIxFA4BBzY3NhcWBwYHFhceAx8BHgEXHgEXAwYuAzEmJwYHBgcUDgcjIi4BJyY2NzY3ByIOASMiJjc+AT8BNhYXFhcWBwYCsAIZAR0cGx8RORMEAQMCBgkRDAMMFgMFKR8LHRoWBgYBBAwOFw0ICwYCAwIDJDEOUgcoDhAeEFMLCAYODAsDAwcvAwgIAf4GDxENCh0oSxUvDAMBAwMGBwkNBwQLFgMFKR0gMkQECx0LEhIJBRgKCT3uKRsJBgYLMRkQEhISJxdjRSQFHwoVCAcCExAdvVQfTD81EA8CBhIICAYCCQoMCgwHCAFTdig+BRojKBwQOhYPChYRDgQECCYDBw0EAe4BAQECAQQBsD6HYQMVCBEHDQUGAgISERy+VFd8BgIDJhYNEAICCAQFBBQNEB8AAAAAAgAt//8CbgKBACwAYAAAAR4DDgMxFA4BBwYHDgYjIi4BJyY+ATc+AT8BND4GMgcGLgExJiMGBwYHFA4HIyIuAScmNjc2NwcOAiMuATc+AzM3NhYXFhcWBwYCUwcMBQMBAgIDJC8NMgkBAgIDBgoOCgQLFgMDDx8TEjAPEAEEBAcHCgsOmggeFx0oSxUvDAMBAwMGBwkNBwQLFgMFKR0gMkQECx0LEhIJAw0NDAMEPe4pGwkGBgsCdgMJCQwLDAcHAVV4KJdQBhgMEgkKBAISEBNjgTcyfycmAQIHBgkGBgNZAQMDBK8/h2AEFQgRBwwFBwICExAdvVRXfAUBAgMBJhUIDQcEAQgDBgMUDg8fAAADAC3//wKTAoAAKgBDAHUAAAEWBw4BBw4CJy4CJyYjBwYHBiY3PgE/ATY3NhYXFg8BNjc2FxYXFhcWBz4CJy4BByIOAg8BDgEPARQGFjcyNjcDBi4BMSYjBgcGBxQOByMiLgEnJjY3NjcHDgIjLgE3PgE/ATYWFxYXFgcGAo0GBQY0JAMKIxMDChQEAgECBiEYFgECJx1eDBYRHwYND0cJAxsfCQcIBQZxFBgFAgIKCgQJBwYBAhkfAgIBCgoJFwdiCB4XHShLFS8MAwEDAwYHCQ0HBAsWAwUpHh8yRAQLHQsSEgkFGAoJPe4pGwkGBgsBXiYuO44mBAoNAwECEAwFBCIBAR8ZI7lN7hwMBwsKFCSrCwMdEAUICQwP9SBePQsNCQIGCAcCAydnICABEBEBGAsBsQECBASwPodhAxUIEQcMBgYCAhMQHb1UV3wFAQIDASYVDRACAggDBgMUDg8fAAAAAAIAMP//Au8CgQA7AGsAAAEeAQcOAScmIwYHBgcOBiMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc+BBceAxQOAjEUBxYnHgEHDgIHBgcGBwYmJyYnJjY3PgEXHgEHDgEHDgQeARceAT4CNz4BNz4BAtAQDgEDICQICiERMgsBAwIEBQkOCQMLEwIEKR0SGhcHDgEJBxwKCgQGFgEDCw0VCwgJBQIDAgMNFegWDQoIKS8TMjYpPyM8ERUBATIeGSchHw8PCjoGAgUMCgcBDg0DCyAfJxATRwoTHwIPBQ0MFSEDAVMxl1EGGAsSCQsEAhERG75UNEMEAwggEAwKAQEBNwIGEgkJBQMICgwKDAcIAR4CagUzFxWDjTB+LiMFAxobIyw81lxOQAEBPiAYphIEDisnMiYeBQECCRc+LjX0FyscAAAAAgAw//0C2wJ/ADoAaQAAAR4BBwYHBicuBDUmBw4BFxYXFgYHBiYnJjc+ARceAQYPAQ4BHwEeATM3PgE/ATYnJicmJyY3PgEnHgEHBgIHBgcGBwYmJyYnJjY3PgEXMhYHDgEHDgQeARceAT4CNz4BNz4BAqkYGQQEGAsKBQkGBAQLGhIFFUUEAyAlJmUjOBMGMhoRDgMEDgUBAgIEFgkJBgwDAyAMBCcUBxInFVqkFg0KA1YaMjYpPyM8ERUBATIeGSchHw8PCjoGAgUMCgcBDg0DCyAfJxATRwoTHwGXCyoUFAYDAgIFCAYJARQIBS8eXCcgRBEUARcjRBkmCAUVEAUVBxEEBAoHAQEEAgISNRQ1Ghk9MRsQ0gUzFwr+9UB/LSMFAxkcIiw811tOQAE+IRemEgQPKicyJh8EAQIIGD4uNfMYKxsAAAIAMP/+A2QCgABLAH8AAAEeAQcOAScwLgIqAQ4BBwYHBgcOAgcXFhcWFxYXFgcOAwcjBicmJwcOAxUOAiYnJjc2NzY3JicuATc2NzYXNzY3PgEXFiUeAQcOAgcGBwYHBiYnJicmNjc+ARcyFgcOAQcOBB4BFx4BPgI3PgU3PgEDORgSDAsjCAsHDgoOCwwFFhECAgIDBAIUDgsIBQQBAgQBBAQCAQETKAQRIwwVCA0CERMSBRMFBRUQJxcIDgEIDBsJFw4RGRhOKxf+vRYNCggpLxIzNik/IzwRFQEBMh4ZJyEfDw8KOgYCBQwKBwEODQQKIB8nEAkVERMPDwQTHwJvCiASDwIFBAIDAwcEFysHBAMJCwQDAQUEBgMFCgsFCQUEARcDAQJtI0wnPwENDwMEBA8tIltEaQQDBSQOFwMCAyEpJiQmBQIDBTMXFoOMMH8tIwUDGRwiLDzXW05AAT4hF6YSBA8qJzImHwQBAggYPi4ZQjxAMysLKxsAAgAx//ACogKCADwAewAAAR4BBw4BJyInBgcGBxQOBCMiLgEnJj4CNzY3JicmNDc+ARczFjM3PgQXHgMUDgIVBgcWJwYHDgMHDgEHBicuAScuAT4BPwE+BDU+AT8BPgEfARYHFA4CBw4FFQc+Ajc+AxceAQcCgxAOAQMfIwoJIBAwCgMCBggPCwMKFAMCCRAaDREZFwcOCQccCgoEBhUBAwsNFQsHCgUCAwICAQwVygMiARoWJxMiKR07JhQKBwIBAQIBAQEJDQwJAQQDAgojDAwjCgYHCwYDBgUFBAMBD19bAQQLEBQMDgwBAhIEDQ0UIgMBVDGYUQUfCxUICAESEA1DVGEqM0UDAwgfEQwKAQE3AgYSCQoGAggKDAoMBwcBAR4CKSBRAkA0VyVEPiJFFgsgOhQzLSgMCxJITkk0AwUPBAURDAMDDjICHCA6HxMyMzUuJAoLFNjWBAcNCwEEBRsLAAACADH/7gJ2AoAAOgBzAAABHgEHBgcGJy4EJyYHDgEXFhcWBgcGJicmNz4BFx4BBg8BDgEfAR4BNzM+AT8BNicmJyYnJjc+AScGBw4EBw4BBwYnLgEnLgE+AT8BPgI1PgE/AT4BHwEWBxQOAgcOAQ8BPgI3PgIXHgEHAkQYGQQEGAsKBggGBAQBChoSBRVFBAMgJSZlIzgSBzIaEQ0CBA4FAQICBBYJCQYMAwMgDAQnFAgSKBVabgMiAhESGR4PIikdOyYUCgcCAQECAQEBFRYBBAMCCiMMDCMKBgcLBgcNBAMPX1sBBhAaDw4MAQGXCyoUFAYDAwEGBwYJARQIBS8eXCcgRBEUARcjRBkmCAUVEAUVBxEEBAkIAQEFAQISNRQ1Gho8MRsQlCBRBCkrOkEfQz8iRRYLIDsTNC0nDAsdjH0CBQ8EBREMAgMPMgIbITofKIoxMBPZ1gMLDwkHBRsKAAAAAAIAMf/zAwwChQBHAIQAAAEeAQcOAScwLgMOAgcGBwYHDgEHFxYXFhcWFxYHDgEPAQYnIicHDgMHDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFBgcOAwcOAgcGJy4BJy4BPgE/AT4ENT4BPwE+AR8BFgcUDgIHDgMPAT4CNz4CFx4BBwLhGBMMCyMICwcOCg4LDAUVEAMCAgYCFA4LCAYDAQMEAwYCAhMnBBEiDBMHCwEDGRoHEwUDFQ4lFwgOAggLGwoXDRAYGE4rF/7mAyIBGhYnExgkGBQ7JhQKBwIBAQIBAQEJDQwJAQQDAgojDAwjCgYHCwYECQYFAgEPX1sBBhAaDw4MAQJ0CR8TDwMFBAEDAQEDBwUXKwcEBBIGAgEFAwYEBAoLCAwDAhYCAm0kTCc/AREPAgYPLCJcRGkEAwUkDhcEAQIhKiYlJwQCPCBRAUE0ViYvPiAXRRYLIToTNC0nDAsSSE5JNAMGDgUEEgsCAw8yAhshOh8ZTEdAFBMU2NYDCw8JBwUbCgAAAAACADH/7gJcAoAAKABoAAABHgMUDgIxMA4BBwYHFA4EIyIuAScmNjc+Az8BPgQHBgcOAwcOAQcGJy4BJy4BPgE/AT4ENT4BPwE+AR8BFgcUDgIHDgUVBz4DNz4DFx4BBwJACAsGAgMCAyQxDjMLAwIHCRALBAsWAgUoHgsdGRYGBgEEDA0XgQMiARoWJxMiKR07JhQKBwIBAQIBAQEJDQwJAQQDAgojDAwjCgYHCwYDBgUFBAMBC0JCOQIECxAUDA4MAQJ1AgkKDAoMBwhVeCiVUQUfCxUHBwISERy9UyBLPzUQDwIGEggIQCBRAUE0ViZDPyJFFgsgOxM0LScMCxJITkk0AwUPBAURDAIDDzICGyE6HxMyMzUuJAoKD5CahwUIDAsBBAUbCgAAAAACACj/+wNzAoIAOwCgAAABHgEHDgEnIicGBwYHDgYjIi4BJyY2NzY3JicmNjc+AR8BMhc3ND4DFx4DDgMxFAcWJxYGBwYHDgMHBicmJw4GJy4BNzY3PgEzHgEHDgEHDgIVBjc2Nz4BNzQ+Bzc2FhceAQ4BBwYHDgUeAhcWPgE3PgY3PgY3OgEWA1UQDgIDHyQICyEQMwsBAgIEBgkNCQQKEwIEKR0SGhgHDQEJBxwKCgQGFgQLDRULBwoFAgECAgMNFc8FCRJILgYUIDEcMSIWAgIEDxAZGB8ONiEWMyIOHRUYHgwFGxAFER0CNB8XDj8JBgMGAwcFBgcEESEGAwEGBwdABwEFAgMBAQMFCQURIxYJAgwOEREOCwIBCAMJBwwPCQMJEwIQBQ0MFSEDAVMxl1EGGAsSCgoEARIQHL5UNEMEAwggEAwKAQEBNwIGEgkJBQMICgwKDAcIAR4CSBYxMc6SEicpHAMGIxcfAgcUDxYJBwYPhGLuViUbASsjEkAsETWBK2I1IVk60BMBDgQNBgsGCAUCCQwRCBIaFhbCNAcbERcQEwwLBgECMTUdCSkxOTcwIQYCFQcSBwsFAQsAAgAo//sD6QKCAEcAqgAAAR4BBw4BJyIuAyIOAQcGBwYHDgEHFxYXFhcWFxYHDgEPAQYnJicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYFFgYHBgcOAwcGJyYnDgYnLgE3Njc+ATMeAQcOAQcOAhUGNzY3PgE3ND4HNzYWFx4BDgIHBgcOBR4CFxY+ATc+Ajc+Bzc6ARYDvxgSDAsjCAELBg4KDgwMBBYRAwIBBwIUDgsIBQMBAwQDBgICFCcEESQMFAkMBBkZCBMGBBYQJxgHDgEICxsKFw0RGRhPKxf+1QUJEkguBhQgMRwxIhYCAgQPEBkYHw42IRYzIg4dFRgeDAUbEAURHQI0HxcOPwkGAwYDBwUGBwQRIQYCAQEGBgZABwEFAgMBAQMFCQURIxYJAywlBQEGAwcGCgoNCAMJEwJvCSASDwIFBAEDAQMHBRYrBwUDEgYCAgQEBgQECgsIDAIDFgMBAm0kSyc/AREPAwYPLSFcQ2kEAwYkDhcDAQMiKSYkJgUDHRYxMc6SEicpHAMGIxcfAgcUDxYJBwYPhGLuViUbASsjEkAsETWBK2I1IVk60BMBDgQNBgsGCAUCCQwRBw8OGBMRwjQHGxEXEBMMCwYBAjE1HQqYfAwDEAgPCAoGBQELAAAAAAMAL/8vAyoCgwAsAEMAggAAATYWFRQOAwcOAicmJwYHFA4EIyIuAScmNjc+AT8BPgQXFhc2FzYmBw4DDwEOAgcGHwEeAT8BPgElFhceAQYHBiYnLgEvAQ4CBwYnLgE+AT8BPgU/ASYnJjc2NzYeAR8BPgE3PgEXHgIGBw4FBwLQJTQCCxQqHQQROB4fFB4HAwIGCRALBAsVAwUoHRExDxABAwwNFwwXAhclAw0PBgsJBwIBHCYLAgEBAQQTCQgkOf59QwcFAwsPFRsJCSQODgIdJQ8+LhAMBQkFBQgZHR8cFwYHHRAYAQMpDhkMBCkPWAsPKQkHDAkKDwcWGhwaFQYBjAExLgcXQz1NHAQPEwUEEGYzBR4LFQcHAhIRHLtTMn4mJgIGEggIBggWC2gdEQcCCAkHAwIhWDIWCgkFEAYFBR2TU80cESAjBwYLDQ1qLi8CLkEachcIHB0aCAkNKiwwKiIKCmovQRUmBwIYGg2HE34NEQcIBA4XIhMIHyMnJBwJAAACAC///QJyAo4AOgBlAAABHgEHDgEnIicGBwYHDgUjIi4BJyY2NzY3JicmNjc+AR8BMhc3PgQXHgMUDgIxFAcWJxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAR8BPggCVBANAQMgIwkKIREyCwEDAgcIDwsDChQCBCkeERoXBw4BCgcbCgsDBhYBAwwNFAwHCgUBAwIDDBXVKRcEjh4nGgk4EgcHAQQBAgwoDg8CNRQSBREoJg0gCgkMGxMXEBMQEA8CEAUNDBUhAwFTMZdRBR8KFQgIARIQHL5UNEMEAwggEAwKAQEBNwIGEgkJBQMICgwKDAcIAR4CYwc/C/g0bmoCGwYTBhUWFAYGKWIdHSGaKiQ9DBY7FV8mJRMuIiYbGxEOBQAAAAADAC7//AHhAo0AJAAsAFMAAAEeBA4CMTAOAQcGFRwCDgIjIicmNjc+Az8BPgMeAQ4BLgE2JxYHBgcOAhUOAScuAT8BPgE/AS4BJy4BNzYXHgEfAT4GAaAHCgYDAQEBAhYeCB0EBw0KHAkHDxEHEQ8NBAQBBxsrHAoNHhwKDiUpFASFGyQVCDgTCwUEBAklDQ4DPBYSCBAoKA4kCwsNIRUaEhUUAY8CBgYHBwcFBTZMGV8zAxQGDgQFGBJ3NRQwJyIKCQQKDnMLHB4NCxwehgY/C/41cGoCGwgRCigQDylkHh0hmCkkPA0XOhReJSUYPigvGxgKAAAAAAIAL///AuICkABJAHcAAAEeAQcOAScwLgIqAQ4BBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBicmJwcOBAcOAiYnJjc2NzY3JicuATc2NzYXNzY3PgEXFiEWBwYHDgIVDgEnLgE+AT8BPgE/AS4BJy4BNzYXHgMfAT4JArcYEgwLIwgLBw4KDgsMBRYRAwIBBwIUDgsIBQMBAwQDBgICFCcEESQJEQsHCAEDEBMSBhIFBBYQJxcIDgEICxsKFw0SGRdPKxf+1ikXBI4eJxoJOBIHBwEEAQIMKA4PAjUUEgURKCYIExAOAwQLGBIVDxIODw4OAm8KIBIPAgUEAgMDBwQXKwcEBBIFAwEFBAYDBQoLCAwCAhcDAQJtHTgyIigFDQ8DBAQPLSJbRGkEAwUkDhcDAgMhKSYkJgUCBz8L+DNvagIbBhMGFhUUBgYpYh0dIZspJD0MFjsNMTMwDw8RKh8jGhsTEAkFAAAAAAIAL//+AmcCkABFAG4AAAEGBwYfARYGJy4BJzQ2PwE2Nz4DLgEjIgcGBw4CDwEOAScmJyY+ATc2NzY3PgM3NhYXFAcGBxQyMT4BFx4BHwEWAxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAR8BPgYCXB8GCQUEARMYGBIBCwYGBgEBBwgCBAUCExkYFQQSEQEIBBgTIQIBAgUBBSkRUQcIDg8JFCEBFxAvARMwEwsSBAMU7ikXBI4eJxoJOBIHBwEEAQIMKA4PAjUUEgURKCYNIAoJDiQWHBQVFAE0aCMvLCUOGwIDJCYVRxoZFgYCHB0NCAMUFSkGQ0oPPA8QAwQlCRQlCi2KOMkTERgLAgUUEBg0JXUBExMEAg4FBiABHwg/Cvkzb2kCGwYSBxUVFAYHKGIdHSGbKSU9DBU7FGAlJhc+Jy0bFwgAAgAv//0CMgKOACsAWQAAAR4DFA4CMQ4CBwYHDgUjIi4BJyY+ATc+BT8BND4DBxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAx8BPgkCFwgLBQICAwIBJDENNAoBAwIGCRELBAsVAwMQIRMJExMTDwwDBAQMDhaRKRcEjh4nGgk4EgcHAQQBAgwoDg8CNRQSBREoJggTEA4DBAsYEhUPEg4PDg4CdAMICgwLCwcIAVV3KJZQBh4LFQgHAhMQE2OANxc1Ly8mHQgIAgcRCQgFBz8L+DRuagIbBhMGFRYUBgYpYh0dIZoqJD0MFjsNMTMwDw8RKh8jGhsTEAkEAAIAL//2AnUCjgBQAH4AACUWDgUxMCMGJyYnJicGBw4FIyIuAScmNjc+AT8BPgQXHgMUDgIxFA4BBzY3NhcWBwYHFhceAR8BHgIXHgUVAxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAx8BPgkCdAEDBAUFBAMBHRwbHxE5EwQBAwIGChAMAwwWAwUpHhMyEBABBAwOFw0ICwYCAwIDJDEOUgcoDhAeEFMLCAkYCAgFFBoGBAUEAgEB+ykXBI4eJxoJOBIHBwEEAQIMKA4PAjUUEgURKCYIExAOAwQLGBIVDxIODw4OMQUKBwcFBAISEhInFmRFJAUfCxUHBwITEBy+UzN/JiYDBhEJCAYCCQoMCwsIBwFTdig+BBojJx0POhYPECQKCQYRFQUDBwUFAwMBAkMHPwv4NG5qAhsGEwYVFhQGBiliHR0hmiokPQwWOw0xMzAPDxEqHyMaGxMQCQQAAwAv//0CVQKOACsAQwBuAAABFgcOAgcOAiciLgEnJicHBgcGJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYHPgEnLgEHDgEPAQ4BDwEWBhY3PgM3AxYHBgcOAhUOAScuAT4BPwE+AT8BLgEnLgE3NhceAR8BPggCTwUEBBkqGAMKIhQDChQEAgECBiAYFgEBJx5eCxYSHwYMDkcIAxwfCAcIBQZwHBcEAwkLBg4EBBoeAwIBAgoKBg4LCQNgKRcEjh4nGgk4EgcHAQQBAgwoDg8CNRQSBREoJg0gCgkMGxMXEBMQEA8BYCcuJFhZGgMKDgQDDwwFAQUhAQEeGiO5Te4cCwcLCRQkqwoDHhAFCAoMD/UvgxUMCgIBDQYGJ2cgIAEQEgEBCg0OBAH/Bz8L+DRuagIbBhMGFRYUBgYpYh0dIZoqJD0MFjsVXyYlEy4iJhsbEQ4FAAMAIv/9A28CiQBHAHEAggAAAR4BBw4BJyIuAw4CBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFiU2HgIHBhUHBhcUFgYHBicuAScmPwEuAgcGBwYHBicmNzY3PgQDNgciBw4BBw4CHgEzNhc2A0MYEwsLIwgBCwcNCw4LDAQVEAMBAgYCFA4LCAYDAQMEAgcBAhMoAxIgDBIHCwMZGgcTBAMUDiQYBw8CCAsbCRgMEBgXTisX/nEdJAgDAwEaGQUFAQMNHBAXAwcFAxM2LBAdCwcNGjE6FA1DCitCQkcHGRoFDBJZHQECAgEICU0vAwJ3CR8TDwMFAwICAQEDBwUXKwgEBBIFAgEFAwYEBAoLCA0CAhcCAQFtJEwnQAERDwIFDy0iXERqAwMFJA4YAwICISomJSgDAgQGEyMoEAUCwr9DBBwQBxoDAhMPHT0iBgcCAgMSCjFhAwRXPIoVS2NYQv7piQEKDos7AQMJBwYCEDMAAAACAC//PwMZAo0AVgCYAAABFgcOAQ8BBgcOCCcmJyY1JjYXFhcWPgI3PgE3MiYVBgcOAiciLgUnJjY3Njc+BBcWBwYHDgEHBhcWNz4BNz4CNzQ+AhYlDgQHDgEeAjc+Ajc+AxceAQcOAQcOAiMmJy4GNzY3Njc2NzYXFhUGBwYiLgInMC4DBgL0JRgGDQMEQhMCDAgRDxcYHyISOxIBDCwdCRANFRQKBAoWAwECBQ0FECIPAQULDA4MCgIGERorEwYIDwsTBxgNAwwNKgYWDQUIFkcVCCATBwMICg7+fAQOKik3GBYOCxgaCw4VCgoGEQsXDxQVAQM1FxIaMR0mFwIGFA4TBwUHCx06cTcrRCYYARELEQsHBQEGBAsLFAGfEzAMIQoLsj4ELBcvHScYEwUCCiYDAh4vCgMKBgERDggSPg4BAQgMBQwOAQECAwkKEgscaz9pFwgJDgQEBgswChcXWxFIFQYCBms0ElUrCAECBwMBgQEIIS1VNC9OLh8LAQEKCgwHGg8LAgIlExpFDgsMCwIRAQURFiQqOiE0Q4lcLQoPKxwmHgoHCQoNAQkFCAIBAAAAAgAw//wCsQKOAEUAggAAAQYHBh8BFgYnLgEnND4CPwE2NzQ2NzYuASMiBwYHDgEPAQ4BJyYnND4BNzY3Njc+Ajc2FhUWBwYHFDIxPgEXHgEfARYnIi4BIgYHBgczNhcWBwYHBiMHBgcGFxY2FhceAQcUDgEHBicmJy4BNjc2NwYHBicmPgE3NhceBAcGAqYfBwgFAwITGBgSAQQHBwMCBgEPAgEEBgISGRgVBiACCQMZEiEDAQYBBSkRUQoKFQwUIQEXEC8BEzATCxIEAxP6BxoZHSAORxUsGQ8PBgYXFBFBHQUIMw0hGAgPDwQDEQ09KTwdDAMLCzlGFQYhDwkDCgcznCY4HBAEAQEBNGgjLywlDhsCAyQmDSclIgoKFgYBOAgHCAMUFSkKgRc8DxADBCUJFCUKLYo4yRgXGAIFFBAYNCV1ARMTBAIOBQYg0QEBAQJhPgEODxYVBQUGVi1EBQEDAQQIGw4CCBIEFQcLMBRKTCK+ZQUBBREKFxAEJRAEDA0QCgcXAAACADH//QLtAocAWACAAAABDgQHDgEeAhcWNzY3Jjc+BDMWFzIeAwcGBxYHDgIHBiciLgM3NjcGBw4CJyYnLgM2NzY3Njc2NzYXFgcGBw4BLgU1MCcmBRYOAi8BIgYPAQ4BDwEOAScuBT0BJhI3NhcyHgIXFT4BFgFrBA4qKjoaGBQGEhUJGBsFCRsHAQEICxYOYRQBAwkEBAQIGQEBAQMHAgkdAQYOCggBAQIbFhEXLhchEgMJFQwBCxAfQmk0Jj0cEgQEEAYLCAYEAwICAQsBWwINExIDHhgoCAkTGQMEAxYYCAsHBQIBAkgLERwIDQYDARBBOAIXAQceK1EyLkoqHgoBAh8GDQgcAgYRDAsFBgEECQ8MIAgICwsgPggfAwEGCxcQCg4hDQoJCQUFEwMKJy9PLDRAiFEoBgovHyYfCQMCAwUHCAcGAQEZoxEVBQMCAyARECZtIyQfHwIBBggKCggDAikBARorAggKCQMEFxQQAAAEAC//LAMJAn8AMABHAG0AhQAAATYWBxQOAwcOAicmJwYHDgUjIi4BJyY2Nz4FPwE+BBcWFzYXNiYHDgMPAQ4CBwYfAR4BPwE+AQEyHgIHDgYHDgYnLgM3PgQ3PgQXNiYHDgEPAQ4BBwYXFBcWFxY3Njc+AgKwJDUBAQwTKh0EETgfHhUeBgEDAQcJEAsDCxUDBSceCBMSEg8MAwMBBAsOFgwXAxckBA0QBQwIBwICHCULAgEBAQMUCAglOf6zGSskEwEBAQkNGSEzHwEFEBEcHScTJjQXBwcCBhsjQigCCRweKyoEFhcNHwkKO0IHAwEBBAcPHxgTKEEdAYkBMS4HF0M9TRwEDxMFBBBmMwUeCxUHBwISERy7Uxc0MC4mHQgIAgYSCAgGCBYLaB0RBwIICQcDAiFYMhYKCQUQBgUFHZMBihMlQCkFFjw+VExSIAEFDgsOBgMGCCw6RSMIHlZSaCkDCRgRD6wvHQoGGQkKS6cyGAoLBRAKFgcGEiaUeAADAAH//wJXAn8AKgBHAIMAAAEWFxYHDgEHDgInIi4BJyY1BwYHBiY3PgE/ATY3NhYXFg8BNjc2FxYXFgM+AicuAQcOAw8BDgMPARYGFjc+AzcBHgEHDgEnJiMGBwYHFA4FIyIuAScmNjc2NyYnJjY3PgEfATIXNz4EFx4DDgMxFAcWARgGAwYFBjUkAgojFAMJFAUCAwUhGBYBAicdXgsWEh8GDA5HCQIcHwkGCWYUGAUCAgoKBAkHBgECEBkLBwEBAQEKCgYNCwoCAY0QDgICICQJCSIQMgwDAgQGCQ0JAwsTAgQpHRIaGAcNAQkHHAoKBAYWAQMLDRULBwoFAgECAgMNFQF/DxAnLTuPJgMKDgQDDwwFAQUhAQEeGiO5Te4cCwcLCRQkqwoDHhAFCAr+8CFdPgsMCgIBBgcHAwIZPDQsDA0BEBIBAQoNDgQBmQUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDRDBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAgAAAAMACP//AmgCfQAqAEIAaAAAARYXFgcOAQcOAicuAicmMQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYDPgEnLgEHIg4CDwEOAQ8BFgYWNzI2NwEWDgIvASIGDwEOAQ8BDgEnLgU9ASYSNzYXHgEfAT4BFgEfBgMGBQY1JAIKIxQDCRQFAgMFIRgWAQInHV4LFhIfBgwORwkCHB8JBglmHBcEAgoKBAkHBgECGh4CAwEBCgoJFwYBtwINExIDHhgoCAkTGQMEAxYYBwwHBQIBAkgLERwNEAEBEEE4AX4PESYuO44nAwoNAwECDw0FBCIBAR8ZI7lN7hwMBgoKFCSrCwMdEAUICv7wL4MVDQkCBggHAgMnZyAgARARARgLARcRFQUDAgMgEBElbSQkHx8CAQYJCgoIAgMoAQEaKwIBEAgIFxMQAAMABv//AtICgAAqAEQAkAAAARYXFgcOAQcOAicuAicmMQcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYDPgEnLgEHDgEPAQ4DDwEWBhY3Mj4CNwEeAQcOASciLgMOAgcGBwYHDgEHFxYXFhcWFxYHDgMVBwYnIicHDgMVDgMmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYBHQYDBgUGNSQCCiMUAwkUBQIDBSEYFgECJx1eCxYSHwYMDkcJAhwfCQYJZhwXBAIKCgcOBAQQGQsHAQEBAQoKBg0LCgIB+BgSDAsjCAELBg4KDgwMBBYRAwIBBwIUDgsIBQMBAwQCBAMDARQnBBEkDBQJDAIMDw8OBBMGBBYQJxgHDgEICxsKFw0SGBhPKxcBfg8RJi47jicDCg0DAQIPDQUEIgEBHxkjuU3uHAwGCgoUJKsLAx0QBQgK/vAvgxUNCQIBDQYGGD0zLQwNARARAQoODQUB+wkgEhACBgMCAwEBAwYFFyoIBAQSBQMBBQMGBAQKCwUJBQQBARYDAmwkSyc/AQsOBQEEAxAsIlxDaQQDBSUNGAMBAyEpJiUmBQMAAAAABAAA/zEB/AJ7ACoARgBzAH4AADciLgEnJjEHBgciJjc+AT8BNjc2FhcWDwE2NzYXFhcWFxYXFgcOAQcOAicWBhY3Mj4CPwE+AScuAQcOAw8BDgMHARYHBgcOAgcOAQ8BBgcOAScmJyY3Njc2Fx4BPgM/ATY3PgE3PgI3PgIeAQcOAicuATZ/AwkUBQIDBSEYFgECJx1eCxYSHwYMDkcJAhwfCQYJBAYDBgUGNSQCCiMnAQEKCgYNCwoCAxwXBAIKCgQJBwYBAhAZCwcBAVsRAwELAh0iCQgaCAkRJBtOJCkEAQcNGxIfBw4MCwgGAgEOEwVGAQERFwUJHhgdCgYEERIKDgsMAgIQDAUEIgEeGSO5Tu0cDAcLChQkqwsDHhEECAoMDxEmLjuOJgQKDWwBEBEBCg4NBQUvghUNCQEBBgcIAgMYPTMsDQEMChcHJwdabRwdThgYLCYdDhEUIBEPGQMCEgQCBAYIBwMCEkIP3gMGMToJDQVyChwPCg0EAwUdHQAAAAMABf//AooCfQAuAEoAfgAAARYHDgEHFA4FJy4CJyYxBwYHBiY3PgE/ATY3NhYXFg8BNjc2FxYXFhcWBz4BJy4BByIOAg8BDgMPARYGFjcyPgI3AR4BBwYHDgEHDgMPARYXHgIVFAYnJgcGBwYnJjQ3PgE/ASYiBiMiLgI3PgE/ATYyASUGBQY1JAIHBwwMEgkDCRQFAgMFIRgWAQInHV4LFhIfBgwORwkCHB8JBgkEBnAcFwQCCgoECQcGAQIQGQsHAQEBAQoKBg0LCgIBsxIWAQEgAgUCIzwkGQUFPh8RFhEbE2EjLR4aDAkMCW4zMxIoIgMIDxYMAQEOBgcenwFeJi47jiYBAgcFBgMCAgECDw0FBCIBAR8ZI7lN7hwMBgoKFCSrCgQdEAUICgsP9i+DFQ0JAgYIBwIDGD0zLQwNARARAQoODQUBMAIaEB4fAgcCJEMtIwkIAgUDCBUQFxkDDQICCAYPCiMUDoI6OgMCAgcQCw8UAgMGAAAAA//7//kCdAKCADAAQwB+AAABNh4BBw4BBw4CBw4BFBYfARYGJyYnJicmNSYHBgcGJicmNjc+ATc2Fh8BNjc2NzYDNicmBwYHDgEXFjc2Nz4DNyUeAQcOASciJwYHBgcUDgQjIi4BJyY2NzY3JicmNjc+AR8BMjM3PgQXHgMOAzEUBxYBYw0dCQ4GLQoDKiIEAwMBAQEFKBoCAQoFAwIFGyIfPwMDKh4cQyAQGAMEGAcZCh19BggKGhwfDx4FAxUJBhIiFhAEAYYQDgEDICMJCiARMQsEAgYIDwsDChQCBCgcEhkXBw4BCQccCgoEBhUBAwwNFQsHCgUCAQICAw0VAnsGDiMcCmsgCHVnFg4fGRUFBiAfDgEBBxAKAwEIIwgILyssjzIvMwMBBAMDQQ47FDj+xiIJDRgbRCBsFhENBQgWPTcxDuoFDQwVIQMBVDGXUQUfChYHCAESEBy+VDNFAwMIIBAMCgEBNgMGEgkJBgIICgwKDAcIAR4CAAAD/////gLbAoMAJwA7AIQAABM2FhcWBgcOAw8BBgcGFjc2Nz4BFx4BFQcGBwYHBiYnJjY3PgIXNicmBg8BDgEPAQYUFjY/AT4CAR4BBw4BJzAuAw4CBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBiciJwcOAwcOAiYnJjc2NzY3JicuATc2NzYXNzY3PgEXFtYnPwcIFi0TNC4pDAwHAgMaGCMaBxoPCgoBAQcNFStqHB4CHhRDRDAXDQcRBgYTLQ0OBwwNBgYZKxAByRgTDAsjCAsHDgoOCwwFFRADAgEHAhQOCwgGAwEDBAMGAgITJwQRIgsTCAsBAhATEwUTBQMVDiUXCA4CCAsbChcNEBgYTisXAaMGHhceVCgRGg0IAQEIGhUcAQEnCgwHBBIHBwoPGA4bCRwgWEwxVDF1LwoGAQMCCjMVFQ8QBQECAgomFwFRCR8TDwMFBAEDAQEDBwUXKwcEBBIGAgEFAwYEBAoLCAwDAhYCAm0kTCc/AQ0PBAMFDywiXERpBAMFJA4XBAECISomJScEAgAAAAACACj//gJmAoUARwCEAAATBgcOAQcXFhcWFxYXFgcOAQ8BBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOAScwLgMOAgcGBR4BBw4DJyInBgcGBw4FIyIuAScmNjc2NyYnLgE3Njc2Fzc+BhceAw4DMQYHFvQDAgEGAhQOCwgFBAEDBAIHAQITJwQSIAsSCAoDGRkIEwQDEw4kGAcPAggLGwkXDRAYFk4rFxQZEwwLIgkLBw4KDgsMBRUBRRAOAgEHDxwTCQohEDILAQMCBwgPCwMKEwMEKR0SGRcHDgEMDBkODhUBAQYHCwsQCAcKBQIBAgMCAQwVAeUHBQMTBQIBBAMGBAQKCwgNAgIXAgJuJEwnQAERDwIFDy0iXERqAwMFJA4YBAECISonJSgEAgcJHxMPAwUDAgIBAQMHBRgDBA0NCBERCgIBUzCWUQUfChUICAISEBy8VDNEAwMGIAsMCgUBNgEECwgLBAMDAwgKDAoMBwcBHgMAAgAp//4CeAKEAEsAjgAAARYXFgcOBSMVBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOAScwLgIqAQ4BBwYHBgcOAQcXFhcWBQYHBh8BFgYnLgEnNDY/ATY3MDY3Ni4BIyIHBgcOAQ8BDgEnJicmPgE3Njc2Nz4CNzYWFRQHBgcwFz4BFx4BHwEWASQDAQMEAQMCAgIBARMoBBEhCxMHCwMZGgcTBAQTDiUYBw8CCAsbChcMERgXTSwWFRgTDAsiCQsHDgoOCwwFFRACAgIGAhQOCwgBTx8GCQYDARIYGRIBDAYGBQIPAQEEBQITGBkVBSADCAQYEiEDAQIFAQYpEFEKCxQMFCIWES8BEzETCxIDBBMBrAMECgwDBwUEAwIBFgICbSRMJ0ABEQ8CBQ8tIlxEagMDBSQOGAMCAyIpJyUoBAIICR8TDwMFAwIDBAYFGCsHBAQSBgIBBAR8aiIuLSQOHAMCJSYUSBkaFQc4CQYJAhQUKQuBFjwQEAMFJQgUJgktijjKGBYYAwQTERgzJnUBExQEAw0GBh8AAAMAJf/+AmQCgwAvAEkAkQAAARYHDgEHDgInIi4BJyYjBwYUDgIjBiY3PgI/ATY3NhYXFg8BNjc2FxYXFhcWBz4BJy4BBw4BDwEOAxUHFgYWMz4DNwMWFxYHDgEPAQYnIicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYXHgEHDgEnIi4DDgIHBgcGBw4BBxcWFxYCXgUEBzQkAwoiFAMKFAQCAQIBBgcPCRgXAgEPIRVdDBYSHwYMDkcIAxsgCAcIBQZxHRYDAwkLBg8DBBEYDAcBAQIKCgYOCwkDxgMBAwQDBgICEycEESILEwgLAxkaBxQFBBQOJRcIDgIICxsKFwwRGBdOKxcVGBILCyMIAQsHDQsOCwwEFRECAgIGAhQOCwgBYiYuO48mAwoNAwMPDQUEBAQMCAcBHhoTWoc17hwLBwsJFCSrCgQdEAUICgwO9i+DFQ0JAgENBgYZPDMtDA0BEBEBCg0OBQEyAwQKDAgMAgMWAgJtJEwnPwERDwIFECwiXERpBAMFJA4XBAIDIikmJSgFAgcJIBIQAgUDAgIBAQMGBRgrBwQEEgUDAQQEAAAAAgAu//YCjAKAAEsAlQAAARYXFgcOAwcVBicmJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgIXFhceAQcOAScwLgIqAQ4BBwYHBgcOAgcXFhcWARQOBTEGJyYnJicGBxQOBCMiLgEnJjY3PgE/AT4EFx4DDgMxDgIHNjc2FxYHBgcWFx4BHwEeARceARUBLQMBAwQBBAMDARQnBBEiDBQICwMaGQgTBQQVDyUXBw8BCAsbCRcNERkPLjccFxUYEgwLIgkLBw4KDgsMBRURAgICAwMCFA4LCAFjAgQFBQUDHR0bHhE5EwUDAgcJEQsECxYDBSkeEjMQEAEDDQ4XDAgMBQMBAgMCASQxDlMHKA0QHhBTDAgIGQgIBy4EBwkBqgQECgsFCQUEAQEWAgEBbCRMJz8BEQ8CBg8sIlxEaQQDBSQOFwQBAiEpJhkiEAMDBwofEw8CBQMCAwMHBRcrBwQDCQsEAwEFA/6BBQoIBwUEAhISEicXY0UjBh8KFQgHAhMQHb1UMn8mJwIGEggJBwIJCgwKDAcIAVN2KD4FGiMoHBA6Fg4RJAkKCCYDBw0EAAAAAAT/9v8xAk8CCABCAF4AigCSAAAlDgIHDgIHBicuAicmNjc2FxYXFjc2NzY3NiIjBgcGJicuATc2NzY3PgE/AT4FFhceBQ4DMQYHPgI1PgE/ATYmLwEmDgEHDgEPAQYWNzM+ATcBFgcUBw4BBw4BDwEGBw4BJyYnJjc2NzYWMh4CFxY2PwE2Nz4BNz4BNz4CHgEOAS4BNgEnAx8WAQENEQYvSx0lCwUGDRIYHgUFEA4YEgsKAQIBEhcUTxMSBAcEExAWDx0GBwIHFhcgHyIPChELBwMBAQICAwSgDSITCAwDAwEFBAMHFzAZGCAEBAMOCAkLHggBgRICCQEwCAcUBwcOIRpGJCIGAwYMGAIKAwoFDQQOGgUGCw8DNwEDHAcIHhYdCwsdHAwMvQpfRwUGJy0PbQgDFRANDicKDhADAwcGCy8dLgEYDQ0RGxlDHBotJSEWIQUFAgYPDQ0GAgcFDQ0PDQ8LDQcIDqEQPy0BEioMDAwNAQICBSglJFEXFhcXAQEZDAEnCRcIJwXEJh1PGRktKB8TDw4hEg8bBQEBBAIFAgYOCgoPRw/jAg5iDQ4HbQkcHg8JHB4ABP8x/yEBkQH7AC8ANwBmAHEAABMOAQcOAQ8BBgcOAScuAicmNzY3NhceAT4DPwE2Nz4BNz4CNz4BFzAxFgcGLgI+AR4BBhcWBxQHDgEHDgEPAQYHDgEnJicmNzY3NjIeAxcWNj8BNjc+ATc+Ajc+ARcyNx4BDgEuATc+ApcBOgoIGAkIECMbTiQNFAsCAggMGxIfBw8LCwgGAQIOEgRCAQIPFgYIHgwRAwEEHAwNHB0LDKYSAggBLQgGEwYHDSEZRSUiBwMGCxkDBwUJBg0EDhkGBQoPAzMBAQ0RBQgdDAEWDg0MHB0MBgQPEwEpBsElHU4YGSwnHQ8QBhISChAPGgMDEgQCBAcIBwIDEkIP4AIHMTsIDgUHChcIUQocHg4KHB4mCRcIJwXFJh1QGRguKCAUDg0iERAbBQEBAwIFAgUOCgoPRw/kAgcyPAkOBwZvBBweDwkbDwoPBAAAA//P/zoCJQIVAFQAhACMAAABDgIHDggnJicmJyY2FxYXFj4CNz4BNzQmFQYHDgInIi4DJyY2NzY3PgQXFgcGBw4BBwYXFjc+ATc+Ajc+AhcWBw4BBzcWBwYHDgEHDgMPAQYHDgEnJicmNzY3MjYeAhcWNj8BNjc+Ajc+ATc+ARcwNh4BDgEuATYBNgcYLgkBDQcRDxcYHyMSOxEBAQssHQkPDhUTCwQKFgMBBgwFECIQAgcVEBEDBhEaKxMFCBALEwcXDAMNDCoGFw4FCBZHFQchEwYCBxcLJRgFDQO6EgEBCAEtBwQLCQkDAwwhGUYlIgYEBwsYBwIOAxEEDhkGBQsOAhsZAQMaBwgeDAgdDAwcHA0MASAUP4IcAywXMB0nFxMGAwknAgIeLwoDCQYBEQ4HEz0OAQEBCA0FDA4CAQUKFw8ba0BoGAcJDwQEBgwvCxcXWhFJFAYCBms0ElUrBwMFCQgTMAwhC3YIGAcnBsQmEy4nIwoJLiggFA4NIhEQGwUCBQEGAgUOCgoPRwt3cAMPYg0OBwZ0CRweDwgcHgAC/////wIZAn4APAB4AAABDgEnJicGBwYHFA4EIyIuAScmNjc2NyYnJjY3PgEfATIzNz4GFx4DDgMxFAcWFx4BNx4BBw4BJyYjBgcGBxQOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc0PgMXHgMOAzEUBxYBHQMfJAkKIRAzCwQCBgkPCgQKEwIEKR0SGRcHDQEJBxwKCgQGFQECBQcLCxAIBwoFAgECAgMNFQYQDtsQDgICICQICyEQMwsDAgQGCQ0JBAoTAgQpHRIaGAcNAQkHHAoKBAYWBAsNFQsHCgUCAQICAw0VAfMVIAIBAVQxl1AGHgsVCAgCEhAcvVQ0RAMDCR8QDAoBATYBBAsICwQEBAIJCQwLDAcHAR8CAgUMDwUNDBUhAwFTMZdRBhgLEgkLBAIRERu+VDNEBAMIIBAMCgEBATcCBhIJCQUDCAoMCgwHCAEeAgAAAAIAAv/+AoIChABIAIMAAAEeAQcOASciLgMiDgIHBgcGBw4BBxcWFxYXFhcWBw4BDwEGJyInBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWBQ4BJyYjBgcGBw4FIyIuAScmNjc2NyYnJjY3PgEzFxYzNz4EFx4DDgMxFAcWFx4BAlcYEwwLIggBCQYMCQwLCgoEFg8DAgEHARMOCwkFAwEDAwMGAgITJwQSIQsSCAsDGRoHEwQEEw8kFwgOAggKGwoXDRAYF04rF/7ZAiAjCQohDzIKAQMCBggPCwMKFAIFKBwSGRcHDgEJBxsKCwMHFQEDCw0VCwcKBQIBAgIDDBUGEA4CdgkfEw8DBQMBAwEBBAYFFysHBAQTBQIBBAQGAwQKDAgMAgMWAgJtJEwnQAERDwIFDy0iXERqAwMFJA4XBAIDIiknJSgEAooVIQIBUzGYUQUfChUICAESEBy+VDREAwMIIBAMCgEBNwIGEgkJBQIJCQwKDAcIAR8CAQUNAAACAAT//gIOAoAASgCFAAABBgcGHwEWBicuASc0PgI/ATY3MDY3Ni4CIyIHBgcOAw8BDgEnJicmPgE3Njc2Nz4CNzYWFxQHBgcwFjU+ARceAx8BFicOAScmIwYHBgcOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyMzc+BBceAw4DMRQHFhceAQIDHwYJBQQBEhgZEgEFBwcCAgYBDwIBAgQEARMZGBUDDA0LAQgEGBMgAwECBQEFKRFRCgoVDBQhARcQLwETMBMHDQgGAQEU8gIgIwkKIBAwCgEDAgYIDwsDChQCBSccERkXBw4BCQcbCgsDBhUBAwsNFQsICgUCAQICAwwVBhAOATVoIy8tJA4cAwIlJg0nJSEKCxUHOAkFBwQBFBQpBSwzMws8EA8CBSUJFCUJLYo5yRgWGAMEExEYMyZ1AQESFAQCBwcHAgMfmxUhAgFTMpdRBR8LFQgIARIQHL5UNEQEAwgfEQwKAQE3AgYSCQoGAggKDAoMBwgBHgICBQwAAAAAAwAW//4BnQKCADoAXQBlAAABDgEnJiMGBwYHDgUjIi4BJyY2NzY3JicmNDc+ATMXMhc3PgQXHgMUDgIxFAcWFx4BFx4EDgIxMA4BBwYXFBYUDgIjBicmNjc+AT8BPgMeAQ4BLgE2ASwDHyQJCSAPMAkBAwIGCA8KBAoUAgUmGxEZGAcNCQcbCgsDBxQBAwsNFQsHCgUCAgIDDBUGEA4lCAoGBAEBAQEUGwYZAgEDBg0KHAsICw4JGgkIAgYaNhsLDh0cCg0B9hQiAgFUMZhRBR8KFggIARIQHL5VNEQDAwggEAwKAQE3AgcSCQoGAggKDAoMBwgBHgICBA1xAgUGBwcHBQU3TRlgNAMTBw0GBQEXEHk2IFIYGQQKD24KHR0NCh0dAAIACP/2AigCfABJAIYAACUWBzAVBicmJyYnBgcOBSciLgEnJjY3PgM/ATQ+AxceAxQOAjEUDgMHNjc2FxYHBgcWFx4BHwEeARceARUDDgEnJiMGBwYHFA4EIyIuAScmNjc2NyYnJjY3PgEfATIXNz4GFx4DDgMxFAcWFx4BAiUDGh0dGx4SORIFAQMCBgkRCwQMFQQFKR8LHRoWBgcEDA4XDQgLBgIDAgMPFxkbCVIIJw4QHhBTCwgJGQgIBi8DCAn/Ax8kCQohEDMLBAIGCQ8KBAoTAgQpHRIZFwcNAQkHHAoKBAYVAQIFBwsLEAgHCgUCAQICAw0VBhAOMRkPARITESgWY0UjBh4LFQgHAQISERy9VCBLPzYPDwIGEggJBgMJCgwKDAcIASI1PUMaPgUaIygcEDoVDxEjCgoIJgIHDgQBvRUhAwFTMZdRBR8KFQgIAhERG75UNEMEAwggEAwKAQEBNwEECggMBAMDAwgKDAoMBwgBHgICBQ0AAgAP//8B2wKBACoAZQAAAR4DFA4DMQ4EBwYHDgUjIi4BJyY+ATc+AT8BPgQHDgEnJicGBwYHDgUjIi4BJyY2NzY3JicmNjc+ARczFjM3PgQXHgMOAzEUBxYXHgEBwAcKBgQBAgICAQ4WGRkJMQkBAgIGCRALBAsWAwQPHxMRMA8PAQMMDhaMAiAjCQogEDAKAQMCBggPCwMKFAIFJxwRGRcHDgEJBxsKCwMHFAEDDAwVCwgKBQIBAgIDDBUGEA4CdgIHCQoKCQoGBgIiNz5FGZZRBh4LFQgHAhIQEmSBNzKAJicCBhIICYcVIQIBAVQxmFEFHwsVCAgCERAcvlU0RAMDCCAQDAoBATcCBhIJCgYCCAoMCgwHCAEeAgIFDAAAAwAG//4DBgJ+AEcAhADBAAABBgcGHwEWBicuASc0Nj8BNjcwNjc2LgEjIgcGBw4CDwEOAScmJyY+Ajc2NzY3PgM3NhYXFAcGBxY1PgEXHgMfARYlDgEnJicGBwYHFA4EIyIuAScmNjc2NyYnJjY3PgEfATIzNz4GFx4DDgMxFAcWFx4BFw4BJyYjBgcGBxQOBSMiLgEnJjY3NjcmJyY2Nz4BHwEyFzc0PgMXHgMUDgMVFAcWFx4BAvsfBgkFBAESGBkSAQsGBwUBDwIBBAUCExkYFQQSEAIIBBgTIAMBAQIEAQYoEVEHCA4PCRQhARcQLwETMBQGDQgGAQEU/h4DHyQJCiEQMwsEAgYJDwoEChMCBCkdEhkXBw0BCQccCgoEBhUBAgUHCwsQCAcKBQIBAgIDDRUGEA73AiAkCAshEDMLAwIEBgkNCQQKEwIEKR0SGhgHDQEJBxwKCgQGFgQLDRULBwkFAwEDAgINFQYQDgE1aCMvLSQOHAMCJSYVRxoZFQc5CAYJAxUUKQdCSg88EA8CBSUEFg0bCiyKOckSERgMAgQTEBg0JnUBARIUBAIGCAcCAiCaFSACAQFUMZdQBh4LFQgIAhIQHL1UNEQDAwkfEAwKAQE2AQQLCAsEBAQCCQkMCwwHBwEfAgIFDA8VIQMBUzGXUQYYCxIJCwQCEREbvlQ0QwQDCCAQDAoBAQE3AgYSCQkFAgcJCgoKCQYGAQEeAgIFDQAABAAB//wD7QKMACcAPQCFAM8AABM2FhceAQ4BBw4BDwEGBwYWMzY3PgEXHgEVBwYHBgcGJicmNjc+Ahc2Jy4BDgEPAQ4BDwEGFBY2PwE+AiUWFxYHDgEPAQYnIicHDgMVDgEmJyY3Njc2NyYnLgE3Njc2Fzc2Nz4BFxYXHgEHDgEnIi4CIg4CBwYHBgcOAQcXMhcWJR4BBw4BJyIuAw4CBwYHBgcOAQcXFhcWFxYXFgcOAQ8BBicmJwcOAxUOAiYnJjc2NzY3JicuATc2NzYXNzY3PgIXFtgnPwcDAQkeGB5bHx4HAgMaGCMaBxoPCgoBAQcNFStqHB4CHhRDRDAXDQQKCQkCAhMtDQ4HDA0GBhkrEAFtBAEDAwIGAgISJwQSHQoQBwgDGBoHFAMCEQwhGAgOAwcKGwoXCw8XFkwrFxUYFAsKIwgBCwcOCg4LCwUUDwICAQYBEw4LCQFwGBQMCiMIAQsHDgoOCwwEFQ8CAgEGAhQOCwgGAwEDAwIGAgITJwQRHwsRBgoCEBMSBRQEAhINIhcIDwIIChsJFwwQFw8sNxwXAaAHHhgNHykvFhshAwMIGhUbASgKCwYFEgcGCw4ZDhsJHR9YTTBVMHUwCgMCAQMBAQozFRUPEAUBAgIKJheUBAQKCwgNAgIYAQFuJEwoQAEREAEGDi0iXEVrAgMEJQ4XBQICIionJioCAQcIHxMQBAUDAQMBBAcFGCwHBQMTBQIEA8UIHxMQAwUDAQIBAQQHBRgrBwUDEwUCAQQDBgMECgwIDAMCFwEBAW4kTCg/AQ0QBAMEDi0iXERrAwMEJQ0YBQECIionGSMSAgIABf/9//4DlgKGAC0AQwBuAIUAzQAAEzYeAhcWBgcOAQ8BBgcGFjc2Nz4DFx4FFQcGBwYHBiYnJjY3PgIXNicuAQ4BDwEOAQ8BBhQWNj8BPgIlFgcOAQcOAicuAicmIwcGBwYmNz4BPwE2NzYWFxYPATY3NhcWFxYXFgc+AicuAQcOAQ8BDgEPARYGFjcyNjcDBgcOAQcXFhcWFxYXFgcOAQ8BBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOASciLgIqAQ4BBwbUFCUdFAMIFi0eWx8eBwIDGhgjGgMJDA8JBAgEAgEBAQEHDRUrahweAh4UQ0QwFw0ECgkJAgITLQ0OBwwNBgYZKxACqwUEBjUkAwoiFAMKFAQCAQIGIBgWAQEoHV4LFhIfBgwORwgDHB8IBwgFBnATGAYCAwkLBg4EBBoeAwIBAgoKChYH8gMCAQYCFA4LCAUEAQMEAgYCAhMnBBEgCxIHCwMYGggTBAMTDiMXCA4DCAsbCRcNEBcXTSsXFRgTCwsjCAELBg4KDwsLBRUBogQFDhQLH1MoGyEDAwgbFBwBAScECAYBBAIGBwcGBQECCw4YDhsIHSBXTTFUMXUvCgQCAgIBAgk0FBUQEAQBAgELJhdBJi47jicDCg0DAQIPDQUEIgEBHxkjuU3uHAwGCgoUJKsKBB0QBQgKCw/2IV0+Cw0JAgENBgYnZyAgARARARgLAXIIBAQSBQIBBQMGAwUJDAgMAwIXAgJuJEwnQAEQEAIFDy0iXERqAwMFJA4YBAECIiknJSkEAgcJHxMPAwUDAgIEBwUXAAACACX//gK4AocASACVAAABFhcWBw4BDwEGJyInBw4DFQ4BJicmNzY3NjcmJy4BNzY3Nhc3Njc+ARcWFx4BBw4BJyIuAyIOAgcGBwYHDgEHFxYXFiUeAQcOAScwLgIqAQ4BBwYHBgcOAgcXFhcWFxYXFgcOAwcVBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgMXFgEbAwEDAwMGAgETJwQSHwsSBwoDGRkIEwQDEg4jGAcPAggKGwkYDBAXF00rFxQZEwsLIwgBCQYLCgwKCwoEFQ8DAgEGAhQOCwgBdxkSCwsjCAsHDgoPCwsFFRADAQIDAwIUDgsIBQQBAwQCAwMDARMoBBEhCxIICwMZGgcTBAQTDiUYBw8CCAsbCRgMEBgMHyUrFRcBrwQECgsIDQICFwIBbSVMJz8BERABBg8tIV1EagMDBSQOGAQBAiIqJiYoAwIHCR8SEAMFAgICAQIDBgUYKwcEBBMFAgEEA8MJHxMPAwUDAgMEBwUXKwcFAwgLBQIBBAQGAwQKDAUJBQQBARYCAm4kSyg/AREPAQYPLSJcRGkEAwUkDhcEAgMiKScSHRMJAgIAAAAAAwAd//4BxgKCAEkAbQB5AAABBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOASciLgIqAQ4BBwYHBgcOAQcXFhcWFxYXFgcOAyM3HgMcAQ4BMRQOAQcGFxQWFA4DIwYnJjY3PgE/AT4DHgEHDgMnLgE2ARIUJwQRIgwTCAsDGhkHFAUEFA8lFwcPAQgLGwkXDREYF08rFhUYEgsLIwgBCwcNCw4LDAQWEAMCAQYCEw4LCQUDAQMEAQQDAwF1BwoGBAECFRsHGwEBAgQHDAgcCggNDwobCQkCBhorGwsHAwsODwcOCg0BdRcDAm0kTCc/AREPAgYPLCJcRGkEAwUkDhcEAQIhKiYlJwUCBwofEw8CBQMCAwQGBRcrBwUDEwUCAQUDBwMECgsGCAYEHQIFBggGCAQFATZNGV80AxAHCwYHAgEXEHo1IFEYGQQKDnAKHQ8HCwYBAwUcHgAAAgAu//4CRgKFAEkAcAAAARYXFgcOAQ8BBiciJwcOAxUOASYnJjc2NzY3JicuATc2NzYXNzY3PgEXFhceAQcOASciLgMOAgcGBwYHDgMHFxYXFiUeAxQOAjEUDgEHBgcOBSMiLgEnJjY3PgE/ATQ+AwEnAwEDBAIGAgITJwQRIQsSBwsDGRkIEwQDEw4kFwgOAgcLGwkYDBAYF00rFxUYEwwLIggBCwcOCg4LDAQVEAMBAQMCAgIUDgsIAQoICwUCAgMDJDENNAoBAwIGCRELBAsVAwUpHRIyEBAEDA4WAa0DBAoMCAwCAxYCAW0kTCdAAREPAgUPLSJcRGoDAwUkDhgEAQIhKiYmKAQCBwkfExACBQMCAgEBBAYFGCsHBQIHBggEAgEEBMcDCQoMCgwHBwFVeCeWUQUfCxQIBwISERy9UzJ/JyYCBhIICQAAABAAxgABAAAAAAABAAkAFAABAAAAAAACAAcALgABAAAAAAADABYAZAABAAAAAAAEAAkAjwABAAAAAAAFACIA3wABAAAAAAAGABABJAABAAAAAAAQAAkBSQABAAAAAAARAAcBYwADAAEECQABABIAAAADAAEECQACAA4AHgADAAEECQADACwANgADAAEECQAEABIAewADAAEECQAFAEQAmQADAAEECQAGACABAgADAAEECQAQABIBNQADAAEECQARAA4BUwBNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAxAC4AMAAwADIAOwBNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAAAxLjAwMjtNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAAyADsARgBvAG4AdABzAGUAbABmACAATQBhAGsAZQByACAAMgAuADMALgA1AABWZXJzaW9uIDEuMDAyO0ZvbnRzZWxmIE1ha2VyIDIuMy41AABNAGEAbAB0AGUAcwBlAHIAcwBSAGUAZwB1AGwAYQByAABNYWx0ZXNlcnNSZWd1bGFyAABNAGEAbAB0AGUAcwBlAHIAcwAATWFsdGVzZXJzAABSAGUAZwB1AGwAYQByAABSZWd1bGFyAAAAAAACAAAAAAAA/4MAMgAAAAAAAAAAAAAAAAAAAAAAAAAAAKwAAAABAAIBAgEDAAMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AEQARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQCsAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8BIAEhASIBIwEkASUBJgEnASgBKQEqASsBLAEtAS4BLwEwATEBMgEzATQBNQE2ATcBOAE5AToBOwE8AT0BPgE/AUABQQFCAUMBRAFFAUYBRwFIAUkBSgFLAUwBTQFOAU8BUAFRAVIBUwFUAVUBVgFXAVgBWQFaAVsBXAFdAV4BXwFgAWEBYgFjAWQBZQFmAWcBaAFpAWoBawFsAW0BbgFvAXABcQFyAXMBdAljb250cm9sTEYJY29udHJvbENSB0FwLmxpZ2EHQWoubGlnYQdFdC5saWdhB0VmLmxpZ2EHRWoubGlnYQdFay5saWdhB0VsLmxpZ2EHRWIubGlnYQdGdC5saWdhB0ZoLmxpZ2EHRmsubGlnYQdGbC5saWdhB0ZiLmxpZ2EHSHQubGlnYQdIZi5saWdhB0l0LmxpZ2EHSXAubGlnYQdJZi5saWdhB0lqLmxpZ2EHSWwubGlnYQdJYi5saWdhB0p0LmxpZ2EHSmYubGlnYQdKaC5saWdhB0prLmxpZ2EHSmwubGlnYQdKYi5saWdhB0t0LmxpZ2EHS3AubGlnYQdLeS5saWdhB0xqLmxpZ2EHTWoubGlnYQdNaC5saWdhB01mLmxpZ2EHTnQubGlnYQdOZi5saWdhB09mLmxpZ2EHT3oubGlnYQdQcS5saWdhB1B3LmxpZ2EHUHIubGlnYQdQdC5saWdhB1B5LmxpZ2EHUHUubGlnYQdQaS5saWdhB1BmLmxpZ2EHUGgubGlnYQdQai5saWdhB1BrLmxpZ2EHUGwubGlnYQdQei5saWdhB1B4LmxpZ2EHUHYubGlnYQdQYi5saWdhB1BuLmxpZ2EHUG0ubGlnYQdScC5saWdhB1JmLmxpZ2EHUmoubGlnYQdUdC5saWdhB1RmLmxpZ2EHVGgubGlnYQdUay5saWdhB1RsLmxpZ2EHVGIubGlnYQdVdC5saWdhB1VzLmxpZ2EHVWYubGlnYQdWdC5saWdhB1ZzLmxpZ2EHVmYubGlnYQdWbC5saWdhB1d0LmxpZ2EHV2YubGlnYQdYcC5saWdhB1l0LmxpZ2EHWWkubGlnYQdZZi5saWdhB1loLmxpZ2EHWWwubGlnYQdZay5saWdhB1liLmxpZ2EHQWYubGlnYQdDeS5saWdhB0VoLmxpZ2EHR3IubGlnYQdPcC5saWdhB2J0LmxpZ2EHYnIubGlnYQdiZi5saWdhB2JqLmxpZ2EHYnoubGlnYQdkdC5saWdhB2VmLmxpZ2EHZnQubGlnYQdmaC5saWdhB2ZiLmxpZ2EHZmsubGlnYQdnai5saWdhB2pqLmxpZ2EHeWoubGlnYQd0dC5saWdhB3RmLmxpZ2EHdGgubGlnYQd0aS5saWdhB3RrLmxpZ2EHdGwubGlnYQh0dGgubGlnYQhlZmYubGlnYQhlZmIubGlnYQdmZi5saWdhB2ZpLmxpZ2EHZmwubGlnYQAAAAAAAAH//wACAAEAAAAMAAAAHAAAAAIAAgADADoAAQA7AKsAAgAEAAAAAgAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQQIAB0AQABaAGQAngDIANIA5AEWAUgBYgFsAYYBmAGyAkQCXgKQAqoCzALeAugDIgNMA1YDdAOuA7gDwgP+AAMACAAOABQAjQACACUAPAACACkAOwACAC8AAQAEAI4AAgA4AAcAEAAWABwAIgAoAC4ANACPAAIAJwBCAAIAIQBBAAIAKwBAAAIAKgA/AAIAKQA+AAIAJQA9AAIAMwAFAAwAEgAYAB4AJABHAAIAIQBGAAIAKwBFAAIAKgBEAAIAJwBDAAIAMwABAAQAkAACADEAAgAGAAwASQACACUASAACADMABgAOABQAGgAgACYALABPAAIAIQBOAAIAKwBNAAIAKQBMAAIAJQBLAAIALwBKAAIAMwAGAA4AFAAaACAAJgAsAFUAAgAhAFQAAgArAFMAAgAqAFIAAgAnAFEAAgAlAFAAAgAzAAMACAAOABQAWAACADgAVwACAC8AVgACADMAAQAEAFkAAgApAAMACAAOABQAXAACACUAWwACACcAWgACACkAAgAGAAwAXgACACUAXQACADMAAwAIAA4AFACRAAIALwBgAAIAOQBfAAIAJQASACYALAAyADgAPgBEAEoAUABWAFwAYgBoAG4AdAB6AIAAhgCMAHIAAgAsAHEAAgAtAHAAAgAhAG8AAgA1AG4AAgA3AG0AAgA5AGwAAgArAGsAAgAqAGoAAgApAGkAAgAnAGgAAgAlAGcAAgAoAGYAAgA0AGUAAgA4AGQAAgAzAGMAAgAxAGIAAgA2AGEAAgAwAAMACAAOABQAdQACACkAdAACACUAcwACAC8ABgAOABQAGgAgACYALAB7AAIAIQB6AAIAKwB5AAIAKgB4AAIAJwB3AAIAJQB2AAIAMwADAAgADgAUAH4AAgAlAH0AAgAyAHwAAgAzAAQACgAQABYAHACCAAIAKwCBAAIAJQCAAAIAMgB/AAIAMwACAAYADACEAAIAJQCDAAIAMwABAAQAhQACAC8ABwAQABYAHAAiACgALgA0AIwAAgAhAIsAAgAqAIoAAgArAIkAAgAnAIgAAgAlAIcAAgAoAIYAAgAzAAUADAASABgAHgAkAJYAAgA5AJUAAgApAJQAAgAlAJMAAgAxAJIAAgAzAAEABACXAAIAMwADAAgAEAAYAKgAAwAlACEApwADACUAJQCYAAIAJQAHABAAFgAcACIAKAAuADQAqwACACsAqgACACgAqQACACUAnAACACoAmwACACEAmgACACcAmQACADMAAQAEAJ0AAgApAAEABACeAAIAKQAHABAAGAAeACQAKgAwADYApgADADMAJwClAAIAKwCkAAIAKgCjAAIAKACiAAIAJwChAAIAJQCgAAIAMwABAAQAnwACACkAAQAdAAYACAAKAAsADAANAA4ADwAQABEAEgATABQAFQAXABkAGgAbABwAHQAeACEAIwAkACUAJgApADMAOAAAAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAA//8AAQAAAAFrZXJuAAgAAAABAAAAAQAEAAIAAAABAAgAAQPGAAQAAABEAJIAnADSAOABIgEoATYBPAFKAVABXgFkAW4BfAGKAawBsgHAAcYB1AHiAewB/gIIAhYCSAJiAnAChgKcAqoCvALKAtAC6gL0AvoDAAMKAxADGgMgAyYDLAMyAzgDOAMyAz4DRANOAz4DVANaA2ADIANmA2wDcgN4A34DiAOOA5gDngOkA7IDvAACAC7//AA3//IADQAl/+oAKP/8ACn/9AAq//AAK//6ACz//gAt//4AMf/qADP//AA0//wANf/+ADb/+AA5//QAAwAt//wALv/8ADb//AAQACT//AAl/+wAJv/6ACf//AAp/+wAKv/0ACv/+gAs//gALf/8AC//7gAx//gAMv/0ADT/9gA3/+oAOP/6ADn/5AABADf/+gADADX//AA3/+gAOf/6AAEALv/2AAMAKP/8ACn/6AAy/+QAAQAu//IAAwAo/+4AL//2ADX/5gABACT/8AACABgAAgAoAAQAAwAo//4ALv/wADL/+AADACf/9gAv/+4Ao//sAAgAKf/qACv/9AAu//wAL//uADH/7gAy//IAN//mAJX/9AABADYADgADACAABAAjAAQAM//4AAEAMv/8AAMAJv/+ACr/+AA3//4AAwAo//gALv/0AJn/7AACACMAAgAl/+wABAAk//wAL//8ADT/9AA4//4AAgAt//IAq//iAAMAJf/sACb/+AA3//wADAAk//wAJv/+ACj/+gAp/+AAK//+ACz/9gAt//wAL//qADH/7AAy//IAN//cAKP/4gAGACQAAgAl/9oAK//yAC//4gAx/+gAMv/8AAMAKQB+ADL/7ACeAIgABQAg//wAIv/4ACb//AAu//YANQAEAAUAKf/0ACr/+AAv//QAM//mAKP/3gADACEAHAAkAAIALv/4AAQAJf/0AC3//gAv//wAmf/8AAMAJP/wACf/+AAp/+4AAQAk//oABgAg//QAIf/wACj/9gAu/+wAL//0ADP/9AACACH//gA3//IAAQApAEIAAQAnACgAAgAzADQAqgAoAAEAMwA0AAIAMwAyAKEARgABADL/6gABADMALAABACkANAABAJoAGAABADMAMgABACkAOAABADMAMAACACUAEgAzAC4AAQApAHgAAQApADYAAQAzAC4AAQAzADgAAQAzAEIAAQAzAEwAAQAz//IAAQAnAEgAAgAl/+4Amv/oAAEAKQBiAAIAKQBaAJ4AUAABACkAVgABAKEARAADADMANgCaABIAogBKAAIAJwAsAKEARgACAC3/8gA3/+oAAQBEAAYABwAIAAkACgAMABEAFAAVABgAHQAgACEAIgAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOQA8AD0APgBIAEkASwBMAE0AUABRAFkAWgBcAF4AXwBhAGgAagB+AIEAhACIAI0AkQCYAJoAnQCeAJ8AoAChAKkAqgAAAAAAAQAAAADUGBYRAAAAANfpcqUAAAAA1+lypQ==";
@@ -8033,34 +8030,34 @@ class In extends Et {
8033
8030
  }
8034
8031
  brandSvg(e, t, A) {
8035
8032
  const a = e.toSVG(2), n = e.getBoundingBox(), i = n.y2 - n.y1, s = n.x2 - n.x1, o = e.toPathData(3), r = () => {
8036
- const D = R("g"), y = R("g");
8037
- D.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
8038
- const M = R("g");
8039
- D.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
8040
- const S = R("g");
8041
- D.appendChild(S), S.setAttribute("fill", "white"), S.innerHTML = a;
8042
- const N = new Qt(D);
8043
- return N.transform(([x, v]) => [x, v + ((s - x) * v) ** 2 / (s * 5e4)]), N.transform(([x, v]) => [
8033
+ const p = v("g"), y = v("g");
8034
+ p.appendChild(y), y.setAttribute("stroke", "#5C1A0D"), y.setAttribute("stroke-width", "4"), y.setAttribute("transform", "translate(1,1)"), y.innerHTML = a;
8035
+ const M = v("g");
8036
+ p.appendChild(M), M.setAttribute("fill", "#FFE386"), M.setAttribute("transform", "translate(1,1)"), M.innerHTML = a;
8037
+ const S = v("g");
8038
+ p.appendChild(S), S.setAttribute("fill", "white"), S.innerHTML = a;
8039
+ const N = new Qt(p);
8040
+ return N.transform(([x, R]) => [x, R + ((s - x) * R) ** 2 / (s * 5e4)]), N.transform(([x, R]) => [
8044
8041
  x,
8045
- v + (s / 3 - x) ** 2 / s * this.indicator(x < s / 3)
8046
- ]), N.transform(([x, v]) => [x - (i - v) * (s - x) / 800, v]), D;
8047
- }, [g, B, l] = uA(t);
8042
+ R + (s / 3 - x) ** 2 / s * this.indicator(x < s / 3)
8043
+ ]), N.transform(([x, R]) => [x - (i - R) * (s - x) / 800, R]), p;
8044
+ }, [g, B, l] = mA(t);
8048
8045
  if (!g)
8049
8046
  return "";
8050
- const C = R("defs");
8051
- g.appendChild(C), QA(g, C, t);
8052
- let d, E, w, u;
8053
- A ? (d = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), w = l * 0.22, u = B * 0.32) : (d = B * 0.22 * (1 + 0.1), E = l * 0.8, w = l * 0.067, u = B * 0.33);
8054
- const h = R("g");
8047
+ const d = v("defs");
8048
+ g.appendChild(d), pA(g, d, t);
8049
+ let C, E, w, u;
8050
+ A ? (C = B * 0.25 * (1 + 0.1), E = l / 2 * (1 + 0.1), w = l * 0.22, u = B * 0.32) : (C = B * 0.22 * (1 + 0.1), E = l * 0.8, w = l * 0.067, u = B * 0.33);
8051
+ const h = v("g");
8055
8052
  g.appendChild(h), h.setAttribute("transform", `translate(${w} ${u}) rotate(-10)`);
8056
- const I = ht(d, E);
8053
+ const I = ht(C, E);
8057
8054
  I.setAttribute("opacity", "0"), h.appendChild(I);
8058
- const Q = R("g");
8059
- h.appendChild(Q);
8060
- const p = r();
8061
- Q.appendChild(p);
8062
- const m = Bt(o);
8063
- return ut(Q, m, d, E), g.outerHTML;
8055
+ const D = v("g");
8056
+ h.appendChild(D);
8057
+ const m = r();
8058
+ D.appendChild(m);
8059
+ const Q = Bt(o);
8060
+ return ut(D, Q, C, E), g.outerHTML;
8064
8061
  }
8065
8062
  // 1 if true, 0 if false.
8066
8063
  }
@@ -8077,37 +8074,37 @@ class Fn extends Et {
8077
8074
  }
8078
8075
  svgElement(e, t) {
8079
8076
  const A = lt(fn), n = e !== "" ? ((I) => I.charAt(0).toUpperCase() + I.substr(1).toLowerCase())(e) : "", i = A.getPath(n, 0, 72, 72), s = i.toSVG(2), o = i.getBoundingBox(), r = o.x2 - o.x1, g = i.toPathData(3), B = () => {
8080
- const I = R("g");
8077
+ const I = v("g");
8081
8078
  I.classList.add("module-text-group");
8082
- const Q = R("defs");
8083
- I.appendChild(Q), Q.appendChild(mA(0, 2, 2, "shadow"));
8084
- const p = R("path");
8085
- p.setAttribute("d", g), p.setAttribute("stroke", "black"), p.setAttribute("stroke-width", "3"), Q.appendChild(p);
8086
- const m = R("g");
8087
- m.classList.add("module-layer0"), I.appendChild(m), m.setAttribute("filter", "url(#shadow)"), m.innerHTML = p.outerHTML;
8088
- const D = R("g");
8089
- D.classList.add("module-layer1"), I.appendChild(D), D.setAttribute("stroke-width", "3"), D.setAttribute("stroke", "rgb(45,41,38)"), D.setAttribute("fill", "rgb(45,41,38)"), D.setAttribute("transform", "translate(0.5,0)"), D.innerHTML = s;
8090
- const y = R("g");
8079
+ const D = v("defs");
8080
+ I.appendChild(D), D.appendChild(DA(0, 2, 2, "shadow"));
8081
+ const m = v("path");
8082
+ m.setAttribute("d", g), m.setAttribute("stroke", "black"), m.setAttribute("stroke-width", "3"), D.appendChild(m);
8083
+ const Q = v("g");
8084
+ Q.classList.add("module-layer0"), I.appendChild(Q), Q.setAttribute("filter", "url(#shadow)"), Q.innerHTML = m.outerHTML;
8085
+ const p = v("g");
8086
+ p.classList.add("module-layer1"), I.appendChild(p), p.setAttribute("stroke-width", "3"), p.setAttribute("stroke", "rgb(45,41,38)"), p.setAttribute("fill", "rgb(45,41,38)"), p.setAttribute("transform", "translate(0.5,0)"), p.innerHTML = s;
8087
+ const y = v("g");
8091
8088
  y.classList.add("module-layer2"), I.appendChild(y), y.setAttribute("fill", "rgb(255,209,0)"), y.setAttribute("transform", "translate(1,-0.1)"), y.innerHTML = s;
8092
- const M = R("g");
8089
+ const M = v("g");
8093
8090
  return M.classList.add("module-layer3"), I.appendChild(M), M.setAttribute("fill", "white"), M.innerHTML = s, new Qt(I).transform(([N, x]) => [N, x + (r / 2 - N) ** 2 / (r * 6)]), I;
8094
- }, l = R("g");
8091
+ }, l = v("g");
8095
8092
  l.classList.add("module-root");
8096
- const C = R("defs");
8097
- l.appendChild(C);
8098
- const d = R("g");
8099
- d.classList.add("module-bounds"), l.appendChild(d);
8093
+ const d = v("defs");
8094
+ l.appendChild(d);
8095
+ const C = v("g");
8096
+ C.classList.add("module-bounds"), l.appendChild(C);
8100
8097
  const E = ht(t.height, t.width);
8101
- E.setAttribute("opacity", "0"), d.appendChild(E);
8102
- const w = R("g");
8098
+ E.setAttribute("opacity", "0"), C.appendChild(E);
8099
+ const w = v("g");
8103
8100
  w.classList.add("module-text-enclosure"), l.appendChild(w);
8104
8101
  const u = B();
8105
8102
  w.appendChild(u);
8106
8103
  const h = Bt(g);
8107
- return ut(w, h, t.height, t.width, 0.35, 0.65), pA(l.outerHTML);
8104
+ return ut(w, h, t.height, t.width, 0.35, 0.65), IA(l.outerHTML);
8108
8105
  }
8109
8106
  }
8110
- async function DA(c) {
8107
+ async function fA(c) {
8111
8108
  if (c === "Favourites")
8112
8109
  return new pn();
8113
8110
  if (c === "Maltesers") {
@@ -8118,7 +8115,7 @@ async function DA(c) {
8118
8115
  return new Fn();
8119
8116
  throw new b(`Failed to resolve Module, Module ${c} not found`);
8120
8117
  }
8121
- var Te = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(Te || {});
8118
+ var pe = /* @__PURE__ */ ((c) => (c.Error = "Error", c.Warning = "Warning", c.Info = "Info", c))(pe || {});
8122
8119
  const yn = 1e3;
8123
8120
  class kt extends lA {
8124
8121
  constructor(e) {
@@ -8133,16 +8130,16 @@ class kt extends lA {
8133
8130
  }
8134
8131
  }
8135
8132
  class Mn {
8136
- constructor(e, t, A, a, n, i, s, o, r, g, B, l, C = !1, d, E = !1, w = !1, u = !1) {
8133
+ constructor(e, t, A, a, n, i, s, o, r, g, B, l, d = !1, C, E = !1, w = !1, u = !1) {
8137
8134
  this.workflowStatePromiseQueue = new BA(1), this.initialized = !1, this.readOnly = !1, this.isReloadedTransaction = !1, this.singleVariantsRenderable = !1, this.renderLayouts = () => {
8138
- var Q;
8135
+ var D;
8139
8136
  if (!this.previewService)
8140
8137
  return;
8141
- const h = this.getCommandContext().getAllLayouts(), I = (Q = this.getLayoutPreviewService()) == null ? void 0 : Q.getAll();
8138
+ const h = this.getCommandContext().getAllLayouts(), I = (D = this.getLayoutPreviewService()) == null ? void 0 : D.getAll();
8142
8139
  if (I)
8143
- for (const [, p] of I)
8144
- p.render(h);
8145
- }, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = l, this.transaction = o, this.readOnly = C, this.singleVariantsRenderable = w, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = g, this.modelContainer = d, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = B, this.isReloadedTransaction = E, u && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
8140
+ for (const [, m] of I)
8141
+ m.render(h);
8142
+ }, this.experience = e, this.client = t, this.updateTransaction = s, this.commandContext = i, this.reloadedState = l, this.transaction = o, this.readOnly = d, this.singleVariantsRenderable = w, this.confirmedDesign = !1, this.editedSteps = {}, this.informationResults = [], this.mandatorySteps = {}, this.pendingUpdates = [], this.selectionCost = 0, this.workflow = A, this.stepSpecificServices = {}, this.profanityFilter = a, this.pollers = [], this.allScenes = [], this.layouts = n, this.product = r, this.previewService = g, this.modelContainer = C, this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, this.validationErrors = { steps: /* @__PURE__ */ new Map() }, this.confirmCallbacks = [], this.editedCallbacks = [], this.elementsCallbacks = [], this.informationResultCallbacks = [], this.initCallbacks = [], this.mandatoryCallbacks = [], this.makingAdjustmentsCallback = [], this.metadataCallbacks = [], this.selectionCallbacks = [], this.stepSpecificStorageCallbacks = {}, this.storageCallbacks = [], this.validationCallbacks = [], this.currentAdjustingStepId = "", this.renderableContextService = B, this.isReloadedTransaction = E, u && (this.workflowStatePromiseQueue.enabled = !1), this.initializationPromise = this.initializeDefaultWorkflowState(A), this.initializationPromise.then(() => {
8146
8143
  this.initialized = !0;
8147
8144
  }), this.initializationPromise.catch((h) => {
8148
8145
  throw console.error(h), this.initialized = !1, new Error("Workflow initialization failed due to an error. See console.");
@@ -8163,7 +8160,7 @@ class Mn {
8163
8160
  };
8164
8161
  this.reloadedState && this.reloadedState.serializableWorkflow.steps.forEach((s) => {
8165
8162
  this.storage[s.stepName] = s.storage || {};
8166
- }), this.allScenes = await Oa(e);
8163
+ }), this.allScenes = await za(e);
8167
8164
  const a = se(this.allScenes, this.stepSelections).map((s) => s.silentSteps).flat(), { stepElements: n, commands: i } = await this.stepElementsForIntroducedSilentSteps(a, !!this.reloadedState);
8168
8165
  this.commandContext.apply(new k(i), !0), this.stepElements = { ...this.stepElements, ...n }, await this.ensureStepsAreLoaded(), !this.isReloadedTransaction && this.updateStateWithServer(), this.renderLayouts(), this.reloadedState && t();
8169
8166
  }
@@ -8381,14 +8378,14 @@ class Mn {
8381
8378
  console.error(`Failed to read model url from variant: ${o.id} for step: ${i.stepName}`);
8382
8379
  return;
8383
8380
  }
8384
- const C = i.data;
8381
+ const d = i.data;
8385
8382
  this.modelContainer.applyModelVariant(
8386
8383
  i.stepName,
8387
8384
  {
8388
8385
  model: l,
8389
8386
  contextService: this.getLayoutPreviewService()
8390
8387
  },
8391
- C.replaceProductModel || !1
8388
+ d.replaceProductModel || !1
8392
8389
  );
8393
8390
  } else {
8394
8391
  const l = o.material;
@@ -8396,12 +8393,12 @@ class Mn {
8396
8393
  console.error(`Failed to read material from variant: ${o.id} for step: ${i.stepName}`);
8397
8394
  return;
8398
8395
  }
8399
- i.data.targetMaterials.forEach((d) => {
8396
+ i.data.targetMaterials.forEach((C) => {
8400
8397
  if (!this.modelContainer)
8401
8398
  throw new b(
8402
8399
  "We should always have a model container when injecting a preview!"
8403
8400
  );
8404
- this.modelContainer.applyMaterialVariant(d, i.option.id, l);
8401
+ this.modelContainer.applyMaterialVariant(C, i.option.id, l);
8405
8402
  });
8406
8403
  }
8407
8404
  }), await A.getInitializationPromise(), this.renderLayouts();
@@ -8514,10 +8511,10 @@ class Mn {
8514
8511
  return Promise.resolve({ stepElements: {}, commands: [] });
8515
8512
  const a = async (r, g, B) => {
8516
8513
  if (r.type === F.SilentIllustration) {
8517
- const l = await new Rt(r, g).trigger();
8514
+ const l = await new vt(r, g).trigger();
8518
8515
  return { step: r, results: l };
8519
8516
  } else if (r.type === F.ProductOverlay) {
8520
- const l = await new Rt(
8517
+ const l = await new vt(
8521
8518
  r,
8522
8519
  g,
8523
8520
  B
@@ -8560,7 +8557,7 @@ class Mn {
8560
8557
  async updateTransactionStakeholders() {
8561
8558
  var t;
8562
8559
  const e = await P.getShadowGraphqlClient().query({
8563
- query: Ta,
8560
+ query: La,
8564
8561
  errorPolicy: "all",
8565
8562
  fetchPolicy: "no-cache",
8566
8563
  variables: {
@@ -8577,45 +8574,45 @@ class Mn {
8577
8574
  ), this.stepElements = {}, this.stepInitialised = {}, this.stepMetadata = {}, this.stepSelections = {}, this.storage = {}, await this.ensureStepsAreLoaded();
8578
8575
  }
8579
8576
  async setSelectionsAndElements(e, t, A, a) {
8580
- var p;
8577
+ var m;
8581
8578
  const n = this.stepSelections;
8582
8579
  this.stepSelections = {
8583
8580
  ...this.stepSelections,
8584
8581
  [e]: { selectedVariants: t }
8585
- }, this.selectionCost = Object.values(this.stepSelections).reduce((m, D) => m + D.selectedVariants.map((y) => y.priceModifier || 0).reduce((y, M) => y + M, 0), 0), this.workflow.steps.forEach((m) => {
8586
- re(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1, delete this.stepMetadata[m.stepName], delete this.stepSelections[m.stepName], delete this.storage[m.stepName]);
8582
+ }, this.selectionCost = Object.values(this.stepSelections).reduce((Q, p) => Q + p.selectedVariants.map((y) => y.priceModifier || 0).reduce((y, M) => y + M, 0), 0), this.workflow.steps.forEach((Q) => {
8583
+ re(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1, delete this.stepMetadata[Q.stepName], delete this.stepSelections[Q.stepName], delete this.storage[Q.stepName]);
8587
8584
  });
8588
- const i = this.allScenes, s = se(i, n), o = se(i, this.stepSelections), r = s.map((m) => m.silentSteps).flat(), B = o.map((m) => m.silentSteps).flat().filter(
8589
- (m) => !r.some((D) => D.stepName === m.stepName)
8585
+ const i = this.allScenes, s = se(i, n), o = se(i, this.stepSelections), r = s.map((Q) => Q.silentSteps).flat(), B = o.map((Q) => Q.silentSteps).flat().filter(
8586
+ (Q) => !r.some((p) => p.stepName === Q.stepName)
8590
8587
  );
8591
- r.forEach((m) => {
8592
- re(m, this.stepSelections) || (this.stepInitialised[m.stepName] = !1);
8588
+ r.forEach((Q) => {
8589
+ re(Q, this.stepSelections) || (this.stepInitialised[Q.stepName] = !1);
8593
8590
  });
8594
- const l = this.getInvalidCanvasRegions(), { stepElements: C, commands: d } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8591
+ const l = this.getInvalidCanvasRegions(), { stepElements: d, commands: C } = await this.stepElementsForIntroducedSilentSteps(B, !1);
8595
8592
  this.stepElements = {
8596
8593
  ...this.stepElements,
8597
- ...C,
8594
+ ...d,
8598
8595
  [e]: A
8599
8596
  }, this.removeElements(l);
8600
- const E = this.workflow.steps.find((m) => m.stepName === e);
8597
+ const E = this.workflow.steps.find((Q) => Q.stepName === e);
8601
8598
  if ((E == null ? void 0 : E.type) === F.Frame) {
8602
- const m = this.getStepSpecificServices(e);
8603
- (p = m == null ? void 0 : m.frameService) == null || p.setTargetElements(A.map((D) => D.id));
8599
+ const Q = this.getStepSpecificServices(e);
8600
+ (m = Q == null ? void 0 : Q.frameService) == null || m.setTargetElements(A.map((p) => p.id));
8604
8601
  }
8605
- const w = l.map((m) => new te(m.id)), u = new Mt(this.constructSerializableWorkflow()), h = [...d, ...w, u];
8602
+ const w = l.map((Q) => new te(Q.id)), u = new Mt(this.constructSerializableWorkflow()), h = [...C, ...w, u];
8606
8603
  h.length > 0 && this.commandContext.apply(new k(h), !0), await this.ensureStepsAreLoaded(), this.onElementsChange();
8607
- const I = this.getInvalidModelVariants(), Q = this.modelContainer;
8608
- if (Q) {
8609
- const m = I.map(
8610
- (D) => Q.applyModelVariant(
8611
- D,
8604
+ const I = this.getInvalidModelVariants(), D = this.modelContainer;
8605
+ if (D) {
8606
+ const Q = I.map(
8607
+ (p) => D.applyModelVariant(
8608
+ p,
8612
8609
  {
8613
8610
  contextService: this.getLayoutPreviewService()
8614
8611
  },
8615
8612
  !1
8616
8613
  )
8617
8614
  );
8618
- await Promise.all(m);
8615
+ await Promise.all(Q);
8619
8616
  }
8620
8617
  await this.onSelectionChange(), a && await a();
8621
8618
  }
@@ -8626,7 +8623,7 @@ class Mn {
8626
8623
  switch (this.stepInitialised[o.stepName] = !0, o.type) {
8627
8624
  case F.DigitalContent:
8628
8625
  A.push(
8629
- qa.init(
8626
+ CA.init(
8630
8627
  o,
8631
8628
  this,
8632
8629
  this.reloadedState
@@ -8635,7 +8632,7 @@ class Mn {
8635
8632
  break;
8636
8633
  case F.Frame:
8637
8634
  {
8638
- const r = new Va(o.data.forceImageCover);
8635
+ const r = new Xa(o.data.forceImageCover);
8639
8636
  r.connectWorkflowManager(this, o.stepName), this.stepSpecificServices[o.stepName] = {
8640
8637
  frameService: r
8641
8638
  }, A.push(
@@ -8645,32 +8642,32 @@ class Mn {
8645
8642
  break;
8646
8643
  case F.Illustration:
8647
8644
  A.push(
8648
- Ne.init(o, this, this.reloadedState)
8645
+ Re.init(o, this, this.reloadedState)
8649
8646
  );
8650
8647
  break;
8651
8648
  case F.Material:
8652
8649
  A.push(
8653
- dA.init(o, this, this.reloadedState)
8650
+ wA.init(o, this, this.reloadedState)
8654
8651
  );
8655
8652
  break;
8656
8653
  case F.Model:
8657
- A.push(wA.init(o, this, this.reloadedState));
8654
+ A.push(EA.init(o, this, this.reloadedState));
8658
8655
  break;
8659
8656
  case F.Module:
8660
8657
  this.stepSpecificServices[o.stepName] = {
8661
- module: await DA(o.data.module)
8658
+ module: await fA(o.data.module)
8662
8659
  }, A.push(
8663
- on.init(o, this, this.reloadedState)
8660
+ hA.init(o, this, this.reloadedState)
8664
8661
  );
8665
8662
  break;
8666
8663
  case F.Picture:
8667
8664
  A.push(
8668
- EA.init(o, this, this.reloadedState)
8665
+ uA.init(o, this, this.reloadedState)
8669
8666
  );
8670
8667
  break;
8671
8668
  case F.Question:
8672
8669
  A.push(
8673
- hA.init(o, this, this.reloadedState)
8670
+ QA.init(o, this, this.reloadedState)
8674
8671
  );
8675
8672
  break;
8676
8673
  case F.Shape:
@@ -8737,7 +8734,7 @@ class Mn {
8737
8734
  this.validationCallbacks.forEach((e) => e(this.validationErrors));
8738
8735
  }
8739
8736
  traversableScenes() {
8740
- return Ka(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
8737
+ return Va(this.allScenes, this.stepSelections, this.singleVariantsRenderable);
8741
8738
  }
8742
8739
  }
8743
8740
  class Z {
@@ -8831,7 +8828,7 @@ class Z {
8831
8828
  return this.variantData.enabled;
8832
8829
  }
8833
8830
  }
8834
- const IA = class it {
8831
+ const FA = class it {
8835
8832
  constructor(e, t) {
8836
8833
  this.manager = e, this.step = t;
8837
8834
  }
@@ -8950,8 +8947,8 @@ const IA = class it {
8950
8947
  e ? a && e.executeCameraAnimation(a) : console.warn("No preview service available, cannot execute camera animations."), t ? A && t.executeAnimation(A) : console.warn("No model container available, cannot execute model animations.");
8951
8948
  }
8952
8949
  };
8953
- IA.updateState = /* @__PURE__ */ new Map();
8954
- let X = IA;
8950
+ FA.updateState = /* @__PURE__ */ new Map();
8951
+ let X = FA;
8955
8952
  class Sn extends X {
8956
8953
  constructor(e, t) {
8957
8954
  super(e, t);
@@ -8963,7 +8960,7 @@ class Sn extends X {
8963
8960
  */
8964
8961
  async selectVariant(e) {
8965
8962
  if (!this.getUpdateState() && this.getCurrentVariant() !== e)
8966
- return Ne.selectVariant(
8963
+ return Re.selectVariant(
8967
8964
  this.step,
8968
8965
  e.getResource(),
8969
8966
  this.manager.getRegionElements(this.step.stepName) || [],
@@ -8979,7 +8976,7 @@ class Sn extends X {
8979
8976
  const e = this.manager.getRegionElements(this.step.stepName) || [];
8980
8977
  if (e.length !== 0)
8981
8978
  try {
8982
- return Re(e[0].id, this.manager.getAllLayoutData()).colors;
8979
+ return He(e[0].id, this.manager.getAllLayoutData()).colors;
8983
8980
  } catch (t) {
8984
8981
  console.error(t);
8985
8982
  }
@@ -8989,7 +8986,7 @@ class Sn extends X {
8989
8986
  */
8990
8987
  setColor(e, t) {
8991
8988
  const A = /* @__PURE__ */ new Map();
8992
- return A.set(e, t), Ne.changeColors(
8989
+ return A.set(e, t), Re.changeColors(
8993
8990
  this.step,
8994
8991
  this.manager.getRegionElements(this.step.stepName),
8995
8992
  this.manager,
@@ -9001,7 +8998,7 @@ class Sn extends X {
9001
8998
  return this.step.data.colorOption;
9002
8999
  }
9003
9000
  getAvailableColors() {
9004
- return this.step.data.colorPickerEnabled ? Ne.availableColors(this.step, this.manager) : Promise.resolve([]);
9001
+ return this.step.data.colorPickerEnabled ? Re.availableColors(this.step, this.manager) : Promise.resolve([]);
9005
9002
  }
9006
9003
  isColorPickerEnabled() {
9007
9004
  return this.step.data.colorPickerEnabled ?? !1;
@@ -9012,7 +9009,7 @@ class Yn extends X {
9012
9009
  super(e, t);
9013
9010
  }
9014
9011
  selectVariant(e) {
9015
- return dA.selectVariant(
9012
+ return wA.selectVariant(
9016
9013
  this.step,
9017
9014
  e.getResource(),
9018
9015
  this.manager,
@@ -9025,7 +9022,7 @@ class Pn extends X {
9025
9022
  super(e, t);
9026
9023
  }
9027
9024
  selectVariant(e) {
9028
- return wA.selectVariant(
9025
+ return EA.selectVariant(
9029
9026
  this.step,
9030
9027
  e.getResource(),
9031
9028
  this.manager,
@@ -9043,7 +9040,7 @@ class xn extends X {
9043
9040
  * @returns A promise that can be awaited to ensure the new image asset has been updated on the design.
9044
9041
  */
9045
9042
  selectVariant(e) {
9046
- return EA.selectVariant(
9043
+ return uA.selectVariant(
9047
9044
  this.step,
9048
9045
  e.getResource(),
9049
9046
  this.manager,
@@ -9058,7 +9055,7 @@ class Nn extends X {
9058
9055
  async selectVariant(e) {
9059
9056
  if (!e.getId())
9060
9057
  throw new Error("Unable to select variant with a null ID");
9061
- await hA.selectVariant(this.step, e.getId(), this.manager);
9058
+ await QA.selectVariant(this.step, e.getId(), this.manager);
9062
9059
  }
9063
9060
  /**
9064
9061
  * The way that this step expects to be rendered.
@@ -9068,7 +9065,7 @@ class Nn extends X {
9068
9065
  return this.step.data.displayType || ((e = this.step.option) == null ? void 0 : e.displayType);
9069
9066
  }
9070
9067
  }
9071
- class vn extends X {
9068
+ class Rn extends X {
9072
9069
  constructor(e, t) {
9073
9070
  super(e, t);
9074
9071
  }
@@ -9130,7 +9127,7 @@ class vn extends X {
9130
9127
  return e;
9131
9128
  }
9132
9129
  }
9133
- class Rn extends X {
9130
+ class vn extends X {
9134
9131
  constructor(e, t) {
9135
9132
  super(e, t);
9136
9133
  }
@@ -9149,7 +9146,7 @@ class Rn extends X {
9149
9146
  ...this.manager.getInformationResults(),
9150
9147
  {
9151
9148
  message: "An issue has occurred with text",
9152
- messageType: Te.Error,
9149
+ messageType: pe.Error,
9153
9150
  stepID: this.step.stepName
9154
9151
  }
9155
9152
  ]);
@@ -9221,10 +9218,10 @@ class Rn extends X {
9221
9218
  * @param userInput Input from the user.
9222
9219
  */
9223
9220
  setText(e) {
9224
- var C, d;
9221
+ var d, C;
9225
9222
  const t = {
9226
9223
  input: e
9227
- }, A = V.findLayoutElements(this.manager, this.step), a = V.filterUnsupportedCharacters(e, (C = A[0]) == null ? void 0 : C.fontData);
9224
+ }, A = V.findLayoutElements(this.manager, this.step), a = V.filterUnsupportedCharacters(e, (d = A[0]) == null ? void 0 : d.fontData);
9228
9225
  !!this.step.data && !!this.step.data.maxLength && a.length > this.step.data.maxLength || (t.input = a);
9229
9226
  const i = A.length <= 0, s = i ? { inputText: a, text: a } : { inputText: a };
9230
9227
  if (this.manager.updateStorage(this.step.stepName, s), this.manager.updateMetadata(this.step.stepName, {
@@ -9238,13 +9235,13 @@ class Rn extends X {
9238
9235
  this.manager
9239
9236
  );
9240
9237
  o && this.manager.getCommandDispatcher()(o);
9241
- const B = this.manager.getInformationResults(), l = (d = r[0]) == null ? void 0 : d.localizationKey;
9238
+ const B = this.manager.getInformationResults(), l = (C = r[0]) == null ? void 0 : C.localizationKey;
9242
9239
  if (l)
9243
9240
  this.manager.setInformationResults([
9244
9241
  ...B,
9245
9242
  {
9246
9243
  message: `${l} - ${this.step.stepTitle}`,
9247
- messageType: Te.Error,
9244
+ messageType: pe.Error,
9248
9245
  stepID: this.step.stepName
9249
9246
  }
9250
9247
  ]);
@@ -9327,15 +9324,75 @@ class Un extends X {
9327
9324
  }
9328
9325
  async selectVariant() {
9329
9326
  }
9327
+ /**
9328
+ * Returns a preview URL used to show the generated QR code in your UI.
9329
+ */
9330
+ getPreviewURL() {
9331
+ var e;
9332
+ return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.videoUrl) || "";
9333
+ }
9334
+ /**
9335
+ * Turns an asset into a QR code that can be used to access the content.
9336
+ * @param asset The asset to use for the QR code.
9337
+ * @returns The final URL string for the QR code.
9338
+ */
9339
+ async selectVideo(e) {
9340
+ return CA.regenerateQRCode(
9341
+ this.manager.getRegionElements(this.step.stepName),
9342
+ e.key,
9343
+ this.manager,
9344
+ this.step
9345
+ );
9346
+ }
9330
9347
  }
9331
9348
  class kn extends X {
9332
9349
  constructor(e, t) {
9333
9350
  super(e, t);
9334
9351
  }
9335
9352
  async selectVariant() {
9353
+ console.info("Text Modules don't support variants.");
9354
+ }
9355
+ /**
9356
+ * Return the remaining amount of characters that
9357
+ * the user is allowed to add, or undefined if there is no limit.
9358
+ */
9359
+ getCharactersRemaining() {
9360
+ const e = this.step.data.maxLength;
9361
+ if (e === void 0)
9362
+ return;
9363
+ const t = this.getText();
9364
+ return e - t.length;
9365
+ }
9366
+ /**
9367
+ * Return the maximum characters allowed for
9368
+ * this step, or undefined if there is no limit.
9369
+ */
9370
+ getCharacterLimit() {
9371
+ return this.step.data.maxLength;
9372
+ }
9373
+ getText() {
9374
+ var e;
9375
+ return ((e = this.manager.getStepStorage(this.step.stepName)) == null ? void 0 : e.text) || "";
9376
+ }
9377
+ setText(e) {
9378
+ hA.changeText(this.step, e, this.manager, "", (t) => {
9379
+ if (t)
9380
+ this.manager.setInformationResults([
9381
+ ...this.manager.getInformationResults(),
9382
+ {
9383
+ message: t,
9384
+ messageType: pe.Error,
9385
+ stepID: this.step.stepName
9386
+ }
9387
+ ]);
9388
+ else {
9389
+ const A = this.manager.getInformationResults().filter((a) => a.stepID !== this.step.stepName);
9390
+ this.manager.setInformationResults(A);
9391
+ }
9392
+ });
9336
9393
  }
9337
9394
  }
9338
- class ye {
9395
+ class Me {
9339
9396
  static get(e, t) {
9340
9397
  switch (t.type) {
9341
9398
  case F.DigitalContent:
@@ -9345,13 +9402,13 @@ class ye {
9345
9402
  case F.Question:
9346
9403
  return new Nn(e, t);
9347
9404
  case F.Text:
9348
- return new Rn(e, t);
9405
+ return new vn(e, t);
9349
9406
  case F.Illustration:
9350
9407
  return new Sn(e, t);
9351
9408
  case F.Picture:
9352
9409
  return new xn(e, t);
9353
9410
  case F.Shape:
9354
- return new vn(e, t);
9411
+ return new Rn(e, t);
9355
9412
  case F.Material:
9356
9413
  return new Yn(e, t);
9357
9414
  case F.Model:
@@ -9365,7 +9422,7 @@ class ye {
9365
9422
  }
9366
9423
  }
9367
9424
  }
9368
- const fA = f`
9425
+ const yA = f`
9369
9426
  fragment CreateDesignTransaction on Transaction {
9370
9427
  id
9371
9428
  designName
@@ -9391,7 +9448,7 @@ const fA = f`
9391
9448
  }
9392
9449
  }
9393
9450
  `, Gn = f`
9394
- ${fA}
9451
+ ${yA}
9395
9452
  mutation CreateDesign(
9396
9453
  $name: String!
9397
9454
  $layouts: [LayoutInput]!
@@ -9423,7 +9480,7 @@ const fA = f`
9423
9480
  }
9424
9481
  }
9425
9482
  `, bn = f`
9426
- ${fA}
9483
+ ${yA}
9427
9484
  mutation CreateDesigns($inputs: [DesignCreateInput]!) {
9428
9485
  designCreateMany(inputs: $inputs) {
9429
9486
  id
@@ -9541,10 +9598,10 @@ const Jn = async (c) => {
9541
9598
  });
9542
9599
  }
9543
9600
  return a;
9544
- }, FA = (c, e, t, A, a, n, i, s) => {
9545
- var d, E;
9546
- const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = On(A, t, void 0, n), l = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), C = {
9547
- additionalExternalProductId: (d = c.integrationProduct) == null ? void 0 : d.additionalExternalProductId,
9601
+ }, MA = (c, e, t, A, a, n, i, s) => {
9602
+ var C, E;
9603
+ const o = e.basePrice || 0, r = c.priceModifierTotal || 0, g = On(A, t, void 0, n), l = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(c.id), d = {
9604
+ additionalExternalProductId: (C = c.integrationProduct) == null ? void 0 : C.additionalExternalProductId,
9548
9605
  additionalExternalVariantId: (E = c.integrationProduct) == null ? void 0 : E.additionalExternalVariantId,
9549
9606
  baseCost: o,
9550
9607
  designExternalVariants: c.designExternalVariants,
@@ -9564,8 +9621,8 @@ const Jn = async (c) => {
9564
9621
  workflowViewerLink: c.workflowViewerLink || "",
9565
9622
  workflowViewerReadOnlyLink: c.workflowViewerReadOnlyLink || ""
9566
9623
  };
9567
- return n && (C.metadata = n), A && (C.selectedVariants = A), a && (C.sku = a), C;
9568
- }, yA = async (c, e, t, A, a, n, i, s, o, r) => {
9624
+ return n && (d.metadata = n), A && (d.selectedVariants = A), a && (d.sku = a), d;
9625
+ }, SA = async (c, e, t, A, a, n, i, s, o, r) => {
9569
9626
  var y;
9570
9627
  await (async () => {
9571
9628
  var L;
@@ -9580,19 +9637,19 @@ const Jn = async (c) => {
9580
9637
  context: {
9581
9638
  transactionOwnerId: S
9582
9639
  }
9583
- }), v = (L = x.data) == null ? void 0 : L.transactions[0].workflowState;
9640
+ }), R = (L = x.data) == null ? void 0 : L.transactions[0].workflowState;
9584
9641
  return x.errors ? (x.errors.forEach((T) => {
9585
9642
  x.errors && console.log("Server Error:", T.message);
9586
- }), null) : v ?? null;
9643
+ }), null) : R ?? null;
9587
9644
  })() || (console.warn("State mismatch detected. Uploading known state explicitly"), console.warn("State Object:", JSON.stringify(A())), await c.updateStateWithServerImmediate(A), console.log("Server state is undefined @ Workflow completion"));
9588
- const l = c.getPreviewService(), C = (y = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, d = l && e.showModelOnFinishStep && !!C, E = o && st(o, e, !0), w = o && st(o, e, !1), u = async (M) => {
9645
+ const l = c.getPreviewService(), d = (y = e == null ? void 0 : e.finalizeStepConfig) == null ? void 0 : y.lookAtAnimation, C = l && e.showModelOnFinishStep && !!d, E = o && st(o, e, !0), w = o && st(o, e, !1), u = async (M) => {
9589
9646
  const S = {};
9590
9647
  let N = 0;
9591
9648
  if (Object.keys(n).length > 0)
9592
9649
  for (const x of Object.keys(n)) {
9593
- const v = n[x], L = e.steps.find((T) => T.stepName === x);
9594
- for (let T = 0; T < v.selections.length; ++T) {
9595
- const W = v.selections[T];
9650
+ const R = n[x], L = e.steps.find((T) => T.stepName === x);
9651
+ for (let T = 0; T < R.selections.length; ++T) {
9652
+ const W = R.selections[T];
9596
9653
  if (L && (!M || L.option && (L.option.variants || []).length > 1 && !L.data.hideSelectionInCart && !L.data.hideSelectionsInCart)) {
9597
9654
  const je = L.stepTitle;
9598
9655
  S[je] ? S[je].push({
@@ -9613,16 +9670,16 @@ const Jn = async (c) => {
9613
9670
  return [S, N];
9614
9671
  }, [h] = await u(!0), I = Object.fromEntries(
9615
9672
  Object.keys(h).map((M) => [M, h[M].map((S) => S.id)])
9616
- ), [Q] = await u(!1), p = Object.fromEntries(
9617
- Object.keys(Q).map((M) => [
9673
+ ), [D] = await u(!1), m = Object.fromEntries(
9674
+ Object.keys(D).map((M) => [
9618
9675
  M,
9619
- Q[M].map((S) => S.id)
9676
+ D[M].map((S) => S.id)
9620
9677
  ])
9621
9678
  );
9622
- let m = await s(d, a.id);
9623
- if (m) {
9624
- const M = await (await fetch(m)).blob();
9625
- m = (await U.uploadAsset(
9679
+ let Q = await s(C, a.id);
9680
+ if (Q) {
9681
+ const M = await (await fetch(Q)).blob();
9682
+ Q = (await U.uploadAsset(
9626
9683
  { name: `${a.id}-preview-image.png`, blob: M },
9627
9684
  _e.Image,
9628
9685
  !0,
@@ -9639,8 +9696,8 @@ const Jn = async (c) => {
9639
9696
  })),
9640
9697
  workflowId: e.id,
9641
9698
  transactionId: a.id,
9642
- useThreeDimPreview: !!d,
9643
- previewImage: m
9699
+ useThreeDimPreview: !!C,
9700
+ previewImage: Q
9644
9701
  };
9645
9702
  if (w) {
9646
9703
  const S = [];
@@ -9650,7 +9707,7 @@ const Jn = async (c) => {
9650
9707
  }
9651
9708
  if (I) {
9652
9709
  const S = [];
9653
- for (const [N, x] of Object.entries(p))
9710
+ for (const [N, x] of Object.entries(m))
9654
9711
  S.push({ key: N, ids: x });
9655
9712
  M.selectedVariants = S;
9656
9713
  }
@@ -9662,7 +9719,7 @@ const Jn = async (c) => {
9662
9719
  }, Ln = async (c, e, t, A, a, n, i, s, o, r, g) => {
9663
9720
  var u, h;
9664
9721
  o("workflow.steps.finish.finalize.buildingLayouts");
9665
- const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: C } = await yA(
9722
+ const { designDetails: B, cartSelectionsWithPrices: l, cartMetadata: d } = await SA(
9666
9723
  c,
9667
9724
  e,
9668
9725
  t,
@@ -9674,20 +9731,20 @@ const Jn = async (c) => {
9674
9731
  g
9675
9732
  );
9676
9733
  o("workflow.steps.finish.finalize.creatingDesign");
9677
- const d = await Jn(B), E = (u = d == null ? void 0 : d.transaction) == null ? void 0 : u.previewImageLink;
9678
- if (!(d != null && d.transaction))
9734
+ const C = await Jn(B), E = (u = C == null ? void 0 : C.transaction) == null ? void 0 : u.previewImageLink;
9735
+ if (!(C != null && C.transaction))
9679
9736
  throw new Error("Failed to create design");
9680
9737
  o("workflow.steps.finish.finalize.updatingTransaction");
9681
- const w = d.transaction;
9682
- return FA(
9738
+ const w = C.transaction;
9739
+ return MA(
9683
9740
  w,
9684
9741
  a,
9685
9742
  e,
9686
9743
  l,
9687
- d == null ? void 0 : d.sku,
9688
- C,
9744
+ C == null ? void 0 : C.sku,
9745
+ d,
9689
9746
  E,
9690
- (h = d == null ? void 0 : d.processExecution) == null ? void 0 : h.id
9747
+ (h = C == null ? void 0 : C.processExecution) == null ? void 0 : h.id
9691
9748
  );
9692
9749
  }, zn = async (c, e, t) => {
9693
9750
  e("workflow.steps.finish.finalize.buildingLayouts"), await Promise.all(
@@ -9707,7 +9764,7 @@ const Jn = async (c) => {
9707
9764
  o.errors && console.log("Server Error:", g.message);
9708
9765
  }), null) : (r = o.data) != null && r.transactions ? o.data.transactions.map((g) => g.workflowState ?? null) : null;
9709
9766
  })(), n = await Promise.all(
9710
- c.map(async (s, o) => await yA(
9767
+ c.map(async (s, o) => await SA(
9711
9768
  s.workflowManager,
9712
9769
  s.workflow,
9713
9770
  s.layouts,
@@ -9727,7 +9784,7 @@ const Jn = async (c) => {
9727
9784
  return e("workflow.steps.finish.finalize.updatingTransaction"), i.map((s, o) => {
9728
9785
  var l;
9729
9786
  const r = c[o], g = n[o], B = s.transaction;
9730
- return FA(
9787
+ return MA(
9731
9788
  B,
9732
9789
  r.product,
9733
9790
  r.workflow,
@@ -9823,7 +9880,7 @@ const qe = new Kn(), jn = f`
9823
9880
  }
9824
9881
  `;
9825
9882
  var Vn = /* @__PURE__ */ ((c) => (c.QuantityChanged = "QuantityChanged", c.PriceBreakChanged = "PriceBreakChanged", c))(Vn || {});
9826
- class Me {
9883
+ class Se {
9827
9884
  constructor(e, t) {
9828
9885
  var a;
9829
9886
  if (this.cachedStepHandles = /* @__PURE__ */ new Map(), this.currentPriceBreak = 1, this.renderableScenes = [], this.renderableSceneCallbacks = [], this.eventCallbacks = /* @__PURE__ */ new Map(), this.debouncedSavedDesignUpdate = $t(async () => {
@@ -9845,7 +9902,7 @@ class Me {
9845
9902
  throw new Error("No Workflow ID provided.");
9846
9903
  this.client = e;
9847
9904
  const A = t.layouts;
9848
- this.commandContext = new qA(), this.commandContext.initialize(A, t.reloadedState), this.isReadOnly = t.transaction.isOrdered || !!t.readOnly, this.workflowManager = new Mn(
9905
+ this.commandContext = new $A(), this.commandContext.initialize(A, t.reloadedState), this.isReadOnly = t.transaction.isOrdered || !!t.readOnly, this.workflowManager = new Mn(
9849
9906
  this,
9850
9907
  e,
9851
9908
  t.workflow,
@@ -9911,9 +9968,9 @@ class Me {
9911
9968
  }
9912
9969
  let n = 2048;
9913
9970
  t && t <= 2048 && (n = t);
9914
- const i = He(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((Q) => {
9915
- var p;
9916
- return ((p = Q.layoutState) == null ? void 0 : p.layout.panelId) === (r == null ? void 0 : r.name);
9971
+ const i = Ue(n, n), s = this.commandContext.getAllLayouts(), o = A.defaultPreviewPanelIndex || 0, r = A.panels[o], g = s.find((D) => {
9972
+ var m;
9973
+ return ((m = D.layoutState) == null ? void 0 : m.layout.panelId) === (r == null ? void 0 : r.name);
9917
9974
  }) || s[0], B = g.layoutState.layout.previewRegion ? {
9918
9975
  x: g.layoutState.layout.previewRegion.left,
9919
9976
  y: g.layoutState.layout.previewRegion.top,
@@ -9924,19 +9981,19 @@ class Me {
9924
9981
  y: 0,
9925
9982
  width: g.layoutState.layout.width,
9926
9983
  height: g.layoutState.layout.height
9927
- }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), C = i.getContext("2d");
9928
- if (!C)
9984
+ }, l = this.commandContext.getLayoutById(g.layoutState.layout.id), d = i.getContext("2d");
9985
+ if (!d)
9929
9986
  throw new Ke("Failed to obtain 2D context for preview image creation");
9930
- const d = Lt(l.layoutState.layout, l.layoutState.elements, {
9987
+ const C = Lt(l.layoutState.layout, l.layoutState.elements, {
9931
9988
  renderingConfiguration: {
9932
9989
  purpose: zt.Print,
9933
9990
  region: { left: B.x, top: B.y, width: B.width, height: B.height }
9934
9991
  }
9935
- }), E = Kt(d);
9936
- await (await Zt.from(C, E, {
9992
+ }), E = Kt(C);
9993
+ await (await Zt.from(d, E, {
9937
9994
  anonymousCrossOrigin: !0,
9938
9995
  ignoreDimensions: !1,
9939
- createCanvas: He,
9996
+ createCanvas: Ue,
9940
9997
  createImage: jt,
9941
9998
  DOMParser: Vt(),
9942
9999
  fetch: ot
@@ -9951,7 +10008,7 @@ class Me {
9951
10008
  const A = this.cachedStepHandles.get(t.stepName);
9952
10009
  if (A)
9953
10010
  return A;
9954
- const a = ye.get(this.getWorkflowManager(), t);
10011
+ const a = Me.get(this.getWorkflowManager(), t);
9955
10012
  return this.cachedStepHandles.set(t.stepName, a), a;
9956
10013
  }
9957
10014
  getSteps() {
@@ -10029,17 +10086,17 @@ class Me {
10029
10086
  i.forEach((r) => {
10030
10087
  const g = /* @__PURE__ */ new Set(), B = r.getRaw().globalPropertyAspectConfigurations;
10031
10088
  B !== void 0 && (B.forEach((l) => g.add(JSON.stringify(l))), s.forEach((l) => {
10032
- const C = l.getRaw().globalPropertyAspectConfigurations;
10033
- C !== void 0 && C.forEach((d) => {
10034
- const E = o(d), w = g.has(JSON.stringify(d));
10089
+ const d = l.getRaw().globalPropertyAspectConfigurations;
10090
+ d !== void 0 && d.forEach((C) => {
10091
+ const E = o(C), w = g.has(JSON.stringify(C));
10035
10092
  if (w && (E == null ? void 0 : E.getType()) === "Option") {
10036
10093
  const u = l.getCurrentVariant();
10037
10094
  if (!u)
10038
10095
  return;
10039
- r.selectVariant(u), g.delete(JSON.stringify(d));
10096
+ r.selectVariant(u), g.delete(JSON.stringify(C));
10040
10097
  } else if (w && (E == null ? void 0 : E.getType()) === "Text") {
10041
10098
  const u = l.getText();
10042
- r.setText(u), g.delete(JSON.stringify(d));
10099
+ r.setText(u), g.delete(JSON.stringify(C));
10043
10100
  }
10044
10101
  });
10045
10102
  }));
@@ -10048,10 +10105,10 @@ class Me {
10048
10105
  getStepByName(e) {
10049
10106
  const t = this.getWorkflowManager().getWorkflow().steps.find((A) => A.stepTitle === e);
10050
10107
  if (!(!t || !this.stepHasHandle(t)))
10051
- return ye.get(this.getWorkflowManager(), t);
10108
+ return Me.get(this.getWorkflowManager(), t);
10052
10109
  }
10053
10110
  getStepsByType(e) {
10054
- return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => ye.get(this.getWorkflowManager(), t));
10111
+ return this.getWorkflowManager().getWorkflow().steps.filter((t) => t.type === e).map((t) => Me.get(this.getWorkflowManager(), t));
10055
10112
  }
10056
10113
  getStepsByScene(e) {
10057
10114
  if (!this.getWorkflowManager().getWorkflow().stepGroups.find((A) => A.name === e.name))
@@ -10060,7 +10117,7 @@ class Me {
10060
10117
  );
10061
10118
  return e.stepIds.map(
10062
10119
  (A) => this.getWorkflowManager().getWorkflow().steps.find((a) => a.stepName === A)
10063
- ).filter((A) => this.stepHasHandle(A)).map((A) => ye.get(this.getWorkflowManager(), A));
10120
+ ).filter((A) => this.stepHasHandle(A)).map((A) => Me.get(this.getWorkflowManager(), A));
10064
10121
  }
10065
10122
  async attachCustomerDetails(e) {
10066
10123
  return this.assignCustomerDetails({ emailAddress: e.email });
@@ -10181,7 +10238,7 @@ class Me {
10181
10238
  ), this.checkForPriceBreakChanges();
10182
10239
  const t = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), A = this.getWorkflowManager().getTransaction(), a = t.get(A.id) || void 0;
10183
10240
  await P.getShadowGraphqlClient().mutate({
10184
- mutation: ka,
10241
+ mutation: ba,
10185
10242
  variables: {
10186
10243
  id: A.id,
10187
10244
  quantity: e
@@ -10221,47 +10278,47 @@ const Wn = [
10221
10278
  ], Xn = async (c, e, t) => {
10222
10279
  const A = e.data, a = t.data.baseUrl, n = A.assetUrl.replace("localhost", "localstack"), i = a.slice(0, 4) === "http" ? "" : "https://", s = new URL(i + a);
10223
10280
  s.searchParams.append("video", St(JSON.stringify([{ href: n }]))), s.pathname = s.pathname + (s.pathname.slice(-1) === "/" ? "" : "/");
10224
- const o = s.toString(), g = `data:image/svg+xml;base64,${St(await eA(o, { type: "svg" }))}`, B = (C) => {
10225
- const d = c.find((w) => w.panelId === C.panelId);
10226
- if (!d)
10227
- throw new z(C);
10281
+ const o = s.toString(), g = `data:image/svg+xml;base64,${St(await eA(o, { type: "svg" }))}`, B = (d) => {
10282
+ const C = c.find((w) => w.panelId === d.panelId);
10283
+ if (!C)
10284
+ throw new z(d);
10228
10285
  const E = J();
10229
10286
  return new O(
10230
10287
  {
10231
10288
  id: E,
10232
10289
  src: g,
10233
10290
  type: G.Image,
10234
- y: C.top,
10235
- x: C.left,
10236
- width: C.width,
10237
- height: C.height,
10291
+ y: d.top,
10292
+ x: d.left,
10293
+ width: d.width,
10294
+ height: d.height,
10238
10295
  rotation: 0
10239
10296
  },
10240
- d
10297
+ C
10241
10298
  );
10242
10299
  }, l = t.data.regions;
10243
10300
  try {
10244
10301
  return l.map(B);
10245
- } catch (C) {
10246
- return console.error(C), [];
10302
+ } catch (d) {
10303
+ return console.error(d), [];
10247
10304
  }
10248
10305
  }, qn = async (c, e, t, A) => {
10249
10306
  const a = t.data, n = a.assetUrl, i = await tt(n);
10250
10307
  try {
10251
- const s = ZA(a, A.option);
10308
+ const s = _A(a, A.option);
10252
10309
  s && (e[A.stepName] = { selectedVariants: [s] });
10253
10310
  const o = async (r) => {
10254
10311
  var E;
10255
- const g = await $A(
10312
+ const g = await ea(
10256
10313
  r || {
10257
10314
  width: 1,
10258
10315
  height: 1
10259
10316
  },
10260
10317
  (E = s == null ? void 0 : s.asset) == null ? void 0 : E.fileLink
10261
- ), B = await rt(g), l = J(), C = c.find((w) => w.panelId === r.panelId);
10262
- if (!C)
10318
+ ), B = await rt(g), l = J(), d = c.find((w) => w.panelId === r.panelId);
10319
+ if (!d)
10263
10320
  throw new z(r);
10264
- const d = ct(i, B, {
10321
+ const C = ct(i, B, {
10265
10322
  scale: a.scale,
10266
10323
  left: a.x,
10267
10324
  top: a.y
@@ -10289,9 +10346,9 @@ const Wn = [
10289
10346
  scaleY: r.height / B.height,
10290
10347
  pattern: void 0
10291
10348
  },
10292
- C
10349
+ d
10293
10350
  ),
10294
- new Ot(l, i, d)
10351
+ new Ot(l, i, C)
10295
10352
  ];
10296
10353
  };
10297
10354
  return (await Promise.all(A.data.regions.map((r) => o(r)))).flat();
@@ -10299,50 +10356,50 @@ const Wn = [
10299
10356
  return console.error(s), [];
10300
10357
  }
10301
10358
  }, Zn = async (c, e, t, A) => {
10302
- var p, m;
10359
+ var m, Q;
10303
10360
  const a = t.data, n = A.option;
10304
10361
  if (!n)
10305
10362
  return console.error(`No option for step ${A.stepName}.`), [];
10306
- const i = ((p = n.variants) == null ? void 0 : p.find((D) => D.id === a.illustrationVariantId)) || Le(n);
10363
+ const i = ((m = n.variants) == null ? void 0 : m.find((p) => p.id === a.illustrationVariantId)) || Le(n);
10307
10364
  if (!i)
10308
10365
  return console.error(`No variant with ID: ${a.illustrationVariantId}`), [];
10309
10366
  if (!i.asset)
10310
10367
  return console.error(`No asset for variant with ID: ${a.illustrationVariantId}`), [];
10311
10368
  e[A.stepName] = { selectedVariants: [i] };
10312
- const s = (m = i.asset) == null ? void 0 : m.fileLink;
10369
+ const s = (Q = i.asset) == null ? void 0 : Q.fileLink;
10313
10370
  if (!s)
10314
10371
  return console.error(`No asset link for variant with ID: ${a.illustrationVariantId}`), [];
10315
- const o = await $(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", d = Wt().parseFromString(B, "image/svg+xml").firstElementChild;
10316
- if (!d)
10372
+ const o = await $(s, !0), r = /<svg.*?<\/svg>/s, g = o.match(r) || [], B = (g == null ? void 0 : g.length) > 0 ? g[0] : "", C = Wt().parseFromString(B, "image/svg+xml").firstElementChild;
10373
+ if (!C)
10317
10374
  return console.error("Failed to read SVG."), [];
10318
- Xt(d);
10375
+ Xt(C);
10319
10376
  const E = {};
10320
- _A(d, (D) => {
10321
- Wn.includes(D.tagName) && !D.attributes.getNamedItem("fill") && D.setAttribute("fill", "#000000");
10322
- const y = D.attributes.getNamedItem("fill");
10377
+ ta(C, (p) => {
10378
+ Wn.includes(p.tagName) && !p.attributes.getNamedItem("fill") && p.setAttribute("fill", "#000000");
10379
+ const y = p.attributes.getNamedItem("fill");
10323
10380
  if (y && y.value !== "none") {
10324
10381
  const S = y.value, x = `spiff-fill-${S.replace(/\W/g, "")}`;
10325
- D.classList.add(x), E[x] = { browserValue: S };
10382
+ p.classList.add(x), E[x] = { browserValue: S };
10326
10383
  }
10327
- const M = D.attributes.getNamedItem("stroke");
10384
+ const M = p.attributes.getNamedItem("stroke");
10328
10385
  if (M && M.value !== "none") {
10329
10386
  const S = M.value, x = `spiff-stroke-${S.replace(/\W/g, "")}`;
10330
- D.classList.add(x), E[x] = { browserValue: S };
10387
+ p.classList.add(x), E[x] = { browserValue: S };
10331
10388
  }
10332
10389
  });
10333
- const u = qt().serializeToString(d), h = a.colors;
10390
+ const u = qt().serializeToString(C), h = a.colors;
10334
10391
  if (h) {
10335
- for (const [D, y] of Object.entries(E))
10392
+ for (const [p, y] of Object.entries(E))
10336
10393
  for (const M of Object.keys(h))
10337
10394
  if (y.browserValue === M) {
10338
- E[D] = { browserValue: h[M] };
10395
+ E[p] = { browserValue: h[M] };
10339
10396
  break;
10340
10397
  }
10341
10398
  }
10342
- const I = (D) => {
10343
- const y = c.find((S) => S.panelId === D.panelId);
10399
+ const I = (p) => {
10400
+ const y = c.find((S) => S.panelId === p.panelId);
10344
10401
  if (!y)
10345
- throw new z(D);
10402
+ throw new z(p);
10346
10403
  const M = J();
10347
10404
  return new O(
10348
10405
  {
@@ -10350,25 +10407,25 @@ const Wn = [
10350
10407
  id: M,
10351
10408
  svg: u,
10352
10409
  type: G.Illustration,
10353
- y: D.top,
10354
- x: D.left,
10355
- rotation: D.rotation,
10356
- width: D.width,
10357
- height: D.height,
10358
- layer: D.layer,
10359
- layerIndex: D.layerIndex,
10360
- immutable: D.immutable
10410
+ y: p.top,
10411
+ x: p.left,
10412
+ rotation: p.rotation,
10413
+ width: p.width,
10414
+ height: p.height,
10415
+ layer: p.layer,
10416
+ layerIndex: p.layerIndex,
10417
+ immutable: p.immutable
10361
10418
  },
10362
10419
  y
10363
10420
  );
10364
- }, Q = A.data.regions;
10421
+ }, D = A.data.regions;
10365
10422
  try {
10366
- return Q.map(I);
10367
- } catch (D) {
10368
- return console.error(D), [];
10423
+ return D.map(I);
10424
+ } catch (p) {
10425
+ return console.error(p), [];
10369
10426
  }
10370
10427
  }, $n = async (c, e, t) => {
10371
- const A = await DA(t.data.module), a = e.data, n = (s, o) => {
10428
+ const A = await fA(t.data.module), a = e.data, n = (s, o) => {
10372
10429
  const r = c.find((B) => B.panelId === o.panelId);
10373
10430
  if (!r)
10374
10431
  throw new z(o);
@@ -10412,13 +10469,13 @@ const Wn = [
10412
10469
  if (!s)
10413
10470
  return console.error(`No asset link for variant with ID: ${a.pictureVariantId}`), [];
10414
10471
  const o = (l) => {
10415
- const C = c.find((E) => E.panelId === l.panelId);
10416
- if (!C)
10472
+ const d = c.find((E) => E.panelId === l.panelId);
10473
+ if (!d)
10417
10474
  throw new z(l);
10418
- const d = J();
10475
+ const C = J();
10419
10476
  return new O(
10420
10477
  {
10421
- id: d,
10478
+ id: C,
10422
10479
  src: s,
10423
10480
  type: G.Image,
10424
10481
  y: l.top,
@@ -10431,7 +10488,7 @@ const Wn = [
10431
10488
  immutable: l.immutable,
10432
10489
  preserveAspectRatio: "none"
10433
10490
  },
10434
- C
10491
+ d
10435
10492
  );
10436
10493
  }, r = A.data.regions;
10437
10494
  try {
@@ -10472,10 +10529,10 @@ const Wn = [
10472
10529
  fill="${i == null ? void 0 : i.color}"
10473
10530
  />
10474
10531
  </svg>
10475
- `, d = { "spiff-fill-shape": { browserValue: i.color || "#000000" } }, E = J();
10532
+ `, C = { "spiff-fill-shape": { browserValue: i.color || "#000000" } }, E = J();
10476
10533
  return new O(
10477
10534
  {
10478
- colors: d,
10535
+ colors: C,
10479
10536
  id: E,
10480
10537
  svg: l,
10481
10538
  type: G.Illustration,
@@ -10531,16 +10588,16 @@ const Wn = [
10531
10588
  }
10532
10589
  else {
10533
10590
  const r = await $(n, !0), g = (B) => {
10534
- const l = /<svg.*?<\/svg>/s, C = B.match(l) || [], d = (C == null ? void 0 : C.length) > 0 ? C[0] : "", u = Wt().parseFromString(d, "image/svg+xml").firstElementChild;
10591
+ const l = /<svg.*?<\/svg>/s, d = B.match(l) || [], C = (d == null ? void 0 : d.length) > 0 ? d[0] : "", u = Wt().parseFromString(C, "image/svg+xml").firstElementChild;
10535
10592
  if (!u)
10536
- throw new de("Failed to read SVG.");
10593
+ throw new Ce("Failed to read SVG.");
10537
10594
  return Xt(u), qt().serializeToString(u);
10538
10595
  };
10539
10596
  o.forEach((B) => {
10540
- const l = c.find((d) => d.panelId === B.panelId);
10597
+ const l = c.find((C) => C.panelId === B.panelId);
10541
10598
  if (!l)
10542
10599
  throw new z(B);
10543
- const C = {
10600
+ const d = {
10544
10601
  id: J(),
10545
10602
  src: n,
10546
10603
  asset_key: n,
@@ -10559,7 +10616,7 @@ const Wn = [
10559
10616
  productOverlay: e.type === F.ProductOverlay ? !0 : void 0,
10560
10617
  excludeFromExport: e.data.excludeFromPrint
10561
10618
  };
10562
- A.push(new O(C, l));
10619
+ A.push(new O(d, l));
10563
10620
  });
10564
10621
  }
10565
10622
  return A;
@@ -10569,7 +10626,7 @@ const Wn = [
10569
10626
  const w = A.option;
10570
10627
  if (!w)
10571
10628
  return;
10572
- const u = ((I = w.variants) == null ? void 0 : I.find((Q) => Q.id === n.fontVariantId)) || Le(w);
10629
+ const u = ((I = w.variants) == null ? void 0 : I.find((D) => D.id === n.fontVariantId)) || Le(w);
10573
10630
  if (!u || !u.asset)
10574
10631
  return;
10575
10632
  e[A.stepName] = { selectedVariants: [u] };
@@ -10588,13 +10645,13 @@ const Wn = [
10588
10645
  })(), B = (A.data.replaceableText ? A.data.replaceableText.replace("{{}}", n.text) : n.text) || "", l = At(B, {
10589
10646
  vertical: A.data.vertical,
10590
10647
  uppercase: A.data.uppercase
10591
- }), C = async (w) => {
10648
+ }), d = async (w) => {
10592
10649
  const u = w.colorOption;
10593
10650
  if (!u)
10594
10651
  return;
10595
10652
  const h = j.getDefaultVariant(u);
10596
10653
  return h == null ? void 0 : h.color;
10597
- }, d = n.color || await C(A.data), E = A.data.regions;
10654
+ }, C = n.color || await d(A.data), E = A.data.regions;
10598
10655
  for (const w of E) {
10599
10656
  const u = c.find((I) => I.panelId === w.panelId);
10600
10657
  if (!u)
@@ -10604,7 +10661,7 @@ const Wn = [
10604
10661
  id: J(),
10605
10662
  align: s(A.data),
10606
10663
  curved: A.data.curved,
10607
- fill: n.color || d || "#000000",
10664
+ fill: n.color || C || "#000000",
10608
10665
  fontData: g,
10609
10666
  fontSize: A.data.size || i,
10610
10667
  height: w.height,
@@ -10621,7 +10678,7 @@ const Wn = [
10621
10678
  y: w.top
10622
10679
  };
10623
10680
  if (g) {
10624
- const [I, Q] = xe(
10681
+ const [I, D] = Ne(
10625
10682
  A.data.size || i,
10626
10683
  g,
10627
10684
  w,
@@ -10642,7 +10699,7 @@ const Wn = [
10642
10699
  {
10643
10700
  ...h,
10644
10701
  fontSize: I,
10645
- text: h.curved ? h.text : (Q || []).join(`
10702
+ text: h.curved ? h.text : (D || []).join(`
10646
10703
  `)
10647
10704
  },
10648
10705
  u
@@ -10714,7 +10771,7 @@ const Wn = [
10714
10771
  );
10715
10772
  return a;
10716
10773
  };
10717
- class Se {
10774
+ class Ye {
10718
10775
  constructor(e) {
10719
10776
  this.handleCompleteRender = null;
10720
10777
  const t = /* @__PURE__ */ new Map();
@@ -10737,7 +10794,7 @@ class Se {
10737
10794
  }
10738
10795
  const ii = () => new Promise((c, e) => {
10739
10796
  try {
10740
- const A = He().getContext("webgl2");
10797
+ const A = Ue().getContext("webgl2");
10741
10798
  c(!!A);
10742
10799
  } catch {
10743
10800
  c(!1);
@@ -10850,14 +10907,14 @@ class ri extends lA {
10850
10907
  * a loose target but should be kept in mind when making changes.
10851
10908
  */
10852
10909
  async execute() {
10853
- const e = this.layouts.find((C) => C.layoutState.layout.id === this.layoutId);
10910
+ const e = this.layouts.find((d) => d.layoutState.layout.id === this.layoutId);
10854
10911
  if (!e)
10855
10912
  return;
10856
10913
  const t = e.layoutState.elements || [], A = e.layoutState.layout.width, a = e.layoutState.layout.height, n = A === 1 || a === 1 ? { width: 1, height: 1 } : this.getDynamicTextureResolution(), i = n.width, s = n.height;
10857
10914
  let o, r;
10858
10915
  if (this.nonPOTSupport) {
10859
- const C = i / s;
10860
- A / a < C ? (o = i, r = a * (i / A)) : (o = A * (s / a), r = s);
10916
+ const d = i / s;
10917
+ A / a < d ? (o = i, r = a * (i / A)) : (o = A * (s / a), r = s);
10861
10918
  const E = this.resizeFit({ width: o, height: r });
10862
10919
  o = E.width, r = E.height;
10863
10920
  } else
@@ -10871,7 +10928,7 @@ class ri extends lA {
10871
10928
  ignoreClear: !0,
10872
10929
  ignoreMouse: !0,
10873
10930
  enableRedraw: !1,
10874
- createCanvas: He,
10931
+ createCanvas: Ue,
10875
10932
  createImage: jt,
10876
10933
  DOMParser: Vt(),
10877
10934
  fetch: ot
@@ -10895,7 +10952,7 @@ const Qs = (c, e) => {
10895
10952
  serializableWorkflow: { steps: [] },
10896
10953
  layouts: {}
10897
10954
  };
10898
- a = new k(t.map((o) => new ea(o))).apply(a);
10955
+ a = new k(t.map((o) => new Aa(o))).apply(a);
10899
10956
  const i = await ni(c, e, t, A);
10900
10957
  return new k(i).apply(a);
10901
10958
  }, ci = f`
@@ -10942,7 +10999,7 @@ const Qs = (c, e) => {
10942
10999
  name
10943
11000
  }
10944
11001
  }
10945
- `, MA = f`
11002
+ `, YA = f`
10946
11003
  ${ci}
10947
11004
  fragment ProductCollectionProductFields on ProductCollectionProduct {
10948
11005
  id
@@ -10952,8 +11009,8 @@ const Qs = (c, e) => {
10952
11009
  ...ProductFields
10953
11010
  }
10954
11011
  }
10955
- `, SA = (c) => f`
10956
- ${c ? MA : ""}
11012
+ `, PA = (c) => f`
11013
+ ${c ? YA : ""}
10957
11014
  fragment ProductCollectionFields on ProductCollection {
10958
11015
  id
10959
11016
  name
@@ -10998,7 +11055,7 @@ const Qs = (c, e) => {
10998
11055
  }
10999
11056
  }
11000
11057
  `, gi = (c) => f`
11001
- ${SA(c)}
11058
+ ${PA(c)}
11002
11059
  query GetBundle($id: String!) {
11003
11060
  bundles(ids: [$id]) {
11004
11061
  id
@@ -11060,8 +11117,8 @@ const Qs = (c, e) => {
11060
11117
  }
11061
11118
  }
11062
11119
  }
11063
- `, Ci = f`
11064
- ${MA}
11120
+ `, di = f`
11121
+ ${YA}
11065
11122
  query GetProductCollectionProducts($id: String!) {
11066
11123
  productCollections(ids: [$id]) {
11067
11124
  id
@@ -11070,8 +11127,8 @@ const Qs = (c, e) => {
11070
11127
  }
11071
11128
  }
11072
11129
  }
11073
- `, di = (c) => f`
11074
- ${SA(c)}
11130
+ `, Ci = (c) => f`
11131
+ ${PA(c)}
11075
11132
  mutation CreateBundle($collectionId: String, $initialMetadata: [MetadataInput!]) {
11076
11133
  bundleCreate(collectionId: $collectionId, metadata: $initialMetadata) {
11077
11134
  id
@@ -11243,7 +11300,7 @@ class fi {
11243
11300
  );
11244
11301
  case oe.Option: {
11245
11302
  const t = e.entityId ? await j.getOption(e.entityId) : void 0;
11246
- return (t == null ? void 0 : t.type) === "Color" ? new Gt(this.bundle, e, t) : new YA(this.bundle, e, t);
11303
+ return (t == null ? void 0 : t.type) === "Color" ? new Gt(this.bundle, e, t) : new xA(this.bundle, e, t);
11247
11304
  }
11248
11305
  case oe.Text:
11249
11306
  return new yi(this.bundle, e);
@@ -11481,7 +11538,7 @@ class yi extends pt {
11481
11538
  await Promise.all(a);
11482
11539
  }
11483
11540
  }
11484
- class YA extends pt {
11541
+ class xA extends pt {
11485
11542
  constructor(e, t, A) {
11486
11543
  super(e, t), this.optionResource = A;
11487
11544
  }
@@ -11543,7 +11600,7 @@ class YA extends pt {
11543
11600
  await Promise.all(a);
11544
11601
  }
11545
11602
  }
11546
- class Gt extends YA {
11603
+ class Gt extends xA {
11547
11604
  constructor(e, t, A) {
11548
11605
  super(e, t, A);
11549
11606
  }
@@ -11882,7 +11939,7 @@ class Ni {
11882
11939
  if (this.collection.productCollectionProducts)
11883
11940
  return this.collection.productCollectionProducts.map((t) => new Ze(t));
11884
11941
  const e = await P.getShadowGraphqlClient().query({
11885
- query: Ci,
11942
+ query: di,
11886
11943
  variables: {
11887
11944
  id: this.getId()
11888
11945
  },
@@ -11893,7 +11950,7 @@ class Ni {
11893
11950
  }
11894
11951
  getTransformCollection() {
11895
11952
  if (this.collection.transformCollection)
11896
- return new vi(this.collection.transformCollection);
11953
+ return new Ri(this.collection.transformCollection);
11897
11954
  }
11898
11955
  /**
11899
11956
  * The raw collection resource. This is generally not needed and should be avoided.
@@ -12045,7 +12102,7 @@ class Ee {
12045
12102
  return this.workflow.imageUrl;
12046
12103
  }
12047
12104
  }
12048
- class vi {
12105
+ class Ri {
12049
12106
  constructor(e) {
12050
12107
  this.collection = e;
12051
12108
  }
@@ -12065,10 +12122,10 @@ class vi {
12065
12122
  * @returns The transforms in this collection.
12066
12123
  */
12067
12124
  getTransforms() {
12068
- return this.collection.transforms.map((e) => new Ri(e));
12125
+ return this.collection.transforms.map((e) => new vi(e));
12069
12126
  }
12070
12127
  }
12071
- class Ri {
12128
+ class vi {
12072
12129
  constructor(e) {
12073
12130
  this.transform = e;
12074
12131
  }
@@ -12348,7 +12405,7 @@ class bt {
12348
12405
  variables: {
12349
12406
  id: this.id,
12350
12407
  details: e,
12351
- type: t || Ge.Owner
12408
+ type: t || be.Owner
12352
12409
  },
12353
12410
  context: {
12354
12411
  bundleOwnerId: this.ownerId
@@ -12565,19 +12622,19 @@ class Ui {
12565
12622
  * @returns
12566
12623
  */
12567
12624
  async execute(e, t, A) {
12568
- var B, l, C;
12625
+ var B, l, d;
12569
12626
  const n = (l = (B = (await P.getShadowGraphqlClient().mutate({
12570
12627
  mutation: Hi,
12571
12628
  variables: {
12572
12629
  processFlowId: e,
12573
- inputs: [...t.map((d) => d.getValueForTransmission())]
12630
+ inputs: [...t.map((C) => C.getValueForTransmission())]
12574
12631
  }
12575
12632
  })).data) == null ? void 0 : B.processExecutionCreate) == null ? void 0 : l.id;
12576
12633
  if (!n)
12577
12634
  throw new Error("Failed to create process execution.");
12578
- function i(d) {
12635
+ function i(C) {
12579
12636
  return new Promise((E) => {
12580
- setTimeout(E, d);
12637
+ setTimeout(E, C);
12581
12638
  });
12582
12639
  }
12583
12640
  let s = !1, o = 0, r, g;
@@ -12601,15 +12658,15 @@ class Ui {
12601
12658
  ids: [n]
12602
12659
  }
12603
12660
  });
12604
- const d = (C = r.data) == null ? void 0 : C.processExecutions[0];
12605
- if (!r || !d)
12661
+ const C = (d = r.data) == null ? void 0 : d.processExecutions[0];
12662
+ if (!r || !C)
12606
12663
  throw new Error("Failed to retrieve server response for execution.");
12607
- if (d.failedAt)
12664
+ if (C.failedAt)
12608
12665
  throw new Error(
12609
12666
  "Execution has failed to complete. See Automation > FLows in Flight on partner account on SpiffCommerce Hub."
12610
12667
  );
12611
- if (d.completedAt) {
12612
- s = !0, g = new ki(d);
12668
+ if (C.completedAt) {
12669
+ s = !0, g = new ki(C);
12613
12670
  break;
12614
12671
  }
12615
12672
  o += 1;
@@ -12637,14 +12694,14 @@ class ki {
12637
12694
  * @returns The nodes contained within the execution.
12638
12695
  */
12639
12696
  getNodes() {
12640
- return this.execution.nodes.map((e) => new Ye(e));
12697
+ return this.execution.nodes.map((e) => new Pe(e));
12641
12698
  }
12642
12699
  /**
12643
12700
  * @param type The type of node to return.
12644
12701
  * @returns A list of nodes matching the requested type.
12645
12702
  */
12646
12703
  getNodesByType(e) {
12647
- return this.execution.nodes.filter((t) => t.type === e).map((t) => new Ye(t));
12704
+ return this.execution.nodes.filter((t) => t.type === e).map((t) => new Pe(t));
12648
12705
  }
12649
12706
  /**
12650
12707
  * @returns A list of input nodes that exist in this execution.
@@ -12653,7 +12710,7 @@ class ki {
12653
12710
  return this.execution.nodes.filter(
12654
12711
  (e) => e.type === "StartTerminal"
12655
12712
  /* StartTerminal */
12656
- ).map((e) => new Ye(e));
12713
+ ).map((e) => new Pe(e));
12657
12714
  }
12658
12715
  /**
12659
12716
  * @returns A list of out put nodes that exist in this execution.
@@ -12662,7 +12719,7 @@ class ki {
12662
12719
  return this.execution.nodes.filter(
12663
12720
  (e) => e.type === "EndTerminal"
12664
12721
  /* EndTerminal */
12665
- ).map((e) => new Ye(e));
12722
+ ).map((e) => new Pe(e));
12666
12723
  }
12667
12724
  /**
12668
12725
  * @returns A date object representing the point in time this execution completed.
@@ -12679,7 +12736,7 @@ class ki {
12679
12736
  return new Date(this.execution.failedAt);
12680
12737
  }
12681
12738
  }
12682
- class Ye {
12739
+ class Pe {
12683
12740
  constructor(e) {
12684
12741
  this.node = e;
12685
12742
  }
@@ -12714,9 +12771,9 @@ class ps extends It {
12714
12771
  super(`"${e}"`);
12715
12772
  }
12716
12773
  }
12717
- class PA extends It {
12774
+ class NA extends It {
12718
12775
  constructor(e, t) {
12719
- if (t !== "Asset" && !PA.validUUID(e))
12776
+ if (t !== "Asset" && !NA.validUUID(e))
12720
12777
  throw new Error("Invalid ID, must be a valid v4 UUID. https://www.uuidgenerator.net/");
12721
12778
  super(`{"isSpiffObject": true, "id": "${e}", "type": "${t}"}`);
12722
12779
  }
@@ -12892,8 +12949,8 @@ const bi = f`
12892
12949
  name
12893
12950
  }
12894
12951
  `, Li = (c) => f`
12895
- ${De(c)}
12896
- ${dt}
12952
+ ${Ie(c)}
12953
+ ${Ct}
12897
12954
  ${iA}
12898
12955
  ${bi}
12899
12956
  ${Ji}
@@ -13304,7 +13361,7 @@ const bi = f`
13304
13361
  }
13305
13362
  }
13306
13363
  `, Ki = f`
13307
- ${De(!1)}
13364
+ ${Ie(!1)}
13308
13365
  query GetWorkflowForTheme($id: String!) {
13309
13366
  workflow(id: $id) {
13310
13367
  id
@@ -13445,7 +13502,7 @@ const bi = f`
13445
13502
  if (!A)
13446
13503
  throw new Error(`Workflow not found: ${c}`);
13447
13504
  return A;
13448
- }, xA = async (c, e) => {
13505
+ }, RA = async (c, e) => {
13449
13506
  const t = c.map((s) => Qe.get({ id: s, options: e })), A = c.filter((s, o) => t[o] === void 0);
13450
13507
  if (A.length === 0)
13451
13508
  return Promise.all(t);
@@ -13453,7 +13510,7 @@ const bi = f`
13453
13510
  (s) => Qe.set({ id: s, options: e }, $i(s, a))
13454
13511
  ), i = t.filter((s) => s !== void 0);
13455
13512
  return await Promise.all(i.concat(n));
13456
- }, Pe = async (c, e) => (await xA([c], e))[0], _i = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
13513
+ }, xe = async (c, e) => (await RA([c], e))[0], _i = (c) => c.sort((e, t) => e.index - t.index).map((e) => ({
13457
13514
  id: J(),
13458
13515
  panelId: e.name,
13459
13516
  name: e.name,
@@ -13476,19 +13533,19 @@ class es {
13476
13533
  try {
13477
13534
  return P.getShadowGraphqlClient().mutate({
13478
13535
  ...t,
13479
- mutation: Ha
13536
+ mutation: ka
13480
13537
  });
13481
13538
  } catch (A) {
13482
13539
  throw console.error(A), new H("Critical - Unable to synchronize workflow state with server.");
13483
13540
  }
13484
- }, this.initialized = !1, this.options = e, this.options.applicationKey && oa(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.2.2"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13541
+ }, this.initialized = !1, this.options = e, this.options.applicationKey && ca(this.options.applicationKey), console.debug("------------------------"), console.debug("Spiff Commerce Core SDK"), console.debug("Version: 22.3.0-beta.a2ef5e96-a632-56a0-ac67-08058b0e08df"), console.debug(`Application Key Provided: ${!!this.options.applicationKey}`), console.debug("------------------------");
13485
13542
  }
13486
13543
  /** @deprecated Use `configure` instead */
13487
13544
  configureUrls(e, t, A) {
13488
13545
  q.setHubUrl(e), q.setServerUrl(t), q.setServicesApiUrl(A), this.options.applicationKey && this.getIntegration();
13489
13546
  }
13490
13547
  configure(e) {
13491
- q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && ca(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
13548
+ q.setHubUrl(e.hubUrl), q.setServerUrl(e.serverUrl), q.setServicesApiUrl(e.servicesApiUrl), this.marketplaceThemeInstallId = e.marketplaceThemeInstallId, this.marketplaceThemeInstallConfigurationId = e.marketplaceThemeInstallConfigurationId, e.bearerAuthenticationToken && la(e.bearerAuthenticationToken), this.options.applicationKey && this.getIntegration();
13492
13549
  }
13493
13550
  /**
13494
13551
  * @returns The asset manager allows for common operations related to assets
@@ -13503,7 +13560,7 @@ class es {
13503
13560
  return this.currencyCode;
13504
13561
  }
13505
13562
  getFlowService() {
13506
- if (!ra())
13563
+ if (!ga())
13507
13564
  throw new Error("Application key required to use Flow Service.");
13508
13565
  return new Ui();
13509
13566
  }
@@ -13513,7 +13570,7 @@ class es {
13513
13570
  if (!this.options.applicationKey)
13514
13571
  throw new Error("Cannot get current Integration without specifying an Application Key.");
13515
13572
  const e = async () => (await P.getShadowGraphqlClient().query({
13516
- query: Na,
13573
+ query: va,
13517
13574
  errorPolicy: "all",
13518
13575
  fetchPolicy: "no-cache"
13519
13576
  })).data.currentIntegration;
@@ -13537,7 +13594,7 @@ class es {
13537
13594
  var a, n;
13538
13595
  const t = Y.getMap("bundleOwnerIds");
13539
13596
  if (t != null && t.has(e))
13540
- return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
13597
+ return Promise.resolve({ success: !0, stakeholderType: be.Owner });
13541
13598
  const A = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
13542
13599
  if (A.has(e)) {
13543
13600
  const i = A.get(e), o = (Y.getMap("partnerCustomerIds") || /* @__PURE__ */ new Map()).get(i);
@@ -13568,7 +13625,7 @@ class es {
13568
13625
  * @throws An error if the transaction is not found.
13569
13626
  */
13570
13627
  async authenticateTransactionFromLocalStorage(e) {
13571
- var g, B, l, C, d, E;
13628
+ var g, B, l, d, C, E;
13572
13629
  const t = P.getShadowGraphqlClient(), A = await t.query({
13573
13630
  query: zi,
13574
13631
  errorPolicy: "all",
@@ -13586,20 +13643,20 @@ class es {
13586
13643
  return Promise.resolve({ success: !1, transactionReadOnly: !0 });
13587
13644
  const i = Y.getMap("transactionOwnerIds");
13588
13645
  if (i != null && i.has(e))
13589
- return Promise.resolve({ success: !0, stakeholderType: Ge.Owner });
13646
+ return Promise.resolve({ success: !0, stakeholderType: be.Owner });
13590
13647
  const s = Y.getMap("transactionCustomerIds");
13591
13648
  if (s != null && s.has(e)) {
13592
13649
  const w = s.get(e);
13593
13650
  if (w && await this.authenticateCustomerId(w)) {
13594
- const h = ((C = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : C.find(
13651
+ const h = ((d = (l = this.customer) == null ? void 0 : l.bundleStakeholders) == null ? void 0 : d.find(
13595
13652
  (I) => {
13596
- var Q, p;
13597
- return (p = (Q = I.bundle) == null ? void 0 : Q.transactions) == null ? void 0 : p.some((m) => m.id === e);
13653
+ var D, m;
13654
+ return (m = (D = I.bundle) == null ? void 0 : D.transactions) == null ? void 0 : m.some((Q) => Q.id === e);
13598
13655
  }
13599
- )) || ((E = (d = this.customer) == null ? void 0 : d.stakeholders) == null ? void 0 : E.find(
13656
+ )) || ((E = (C = this.customer) == null ? void 0 : C.stakeholders) == null ? void 0 : E.find(
13600
13657
  (I) => {
13601
- var Q;
13602
- return ((Q = I.transaction) == null ? void 0 : Q.id) === e;
13658
+ var D;
13659
+ return ((D = I.transaction) == null ? void 0 : D.id) === e;
13603
13660
  }
13604
13661
  ));
13605
13662
  if (h)
@@ -13743,10 +13800,10 @@ class es {
13743
13800
  async getNewBundle(e, t, A) {
13744
13801
  var r, g, B;
13745
13802
  const n = (B = (await P.getShadowGraphqlClient().mutate({
13746
- mutation: di(((g = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : g.eagerFetchProducts) || !1),
13803
+ mutation: Ci(((g = (r = A == null ? void 0 : A.graphql) == null ? void 0 : r.productCollection) == null ? void 0 : g.eagerFetchProducts) || !1),
13747
13804
  variables: {
13748
13805
  collectionId: e,
13749
- initialMetadata: t ? Object.entries(t).map((l, C) => ({ key: l[0], value: l[1] })) : void 0
13806
+ initialMetadata: t ? Object.entries(t).map((l, d) => ({ key: l[0], value: l[1] })) : void 0
13750
13807
  },
13751
13808
  fetchPolicy: "no-cache"
13752
13809
  })).data) == null ? void 0 : B.bundleCreate;
@@ -13767,7 +13824,7 @@ class es {
13767
13824
  * @returns A bundle to be used for grouping and operating on large amounts of workflow experiences.
13768
13825
  */
13769
13826
  async getExistingBundle(e, t, A, a) {
13770
- var w, u, h, I, Q, p, m, D, y;
13827
+ var w, u, h, I, D, m, Q, p, y;
13771
13828
  const n = Y.getMap("bundleOwnerIds"), i = n == null ? void 0 : n.get(e), o = ((w = Object.entries(localStorage).find(([M, S]) => M.startsWith("CognitoIdentityServiceProvider") && M.endsWith("idToken"))) == null ? void 0 : w[0]) || "", r = localStorage.getItem(o), g = {};
13772
13829
  r && !mt(r) && (g.Authorization = `Bearer ${r}`);
13773
13830
  const B = {
@@ -13784,11 +13841,11 @@ class es {
13784
13841
  headers: B
13785
13842
  }
13786
13843
  });
13787
- if (!((Q = l.data) != null && Q.bundles) || ((p = l.data) == null ? void 0 : p.bundles.length) === 0 || !((m = l.data) != null && m.bundles[0]))
13844
+ if (!((D = l.data) != null && D.bundles) || ((m = l.data) == null ? void 0 : m.bundles.length) === 0 || !((Q = l.data) != null && Q.bundles[0]))
13788
13845
  throw new Error(`Unable to find bundle: ${e}`);
13789
- const C = (D = l.data) == null ? void 0 : D.bundles[0], d = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
13790
- d.set(C.id, C.partner.id), Y.setMap("bundlePartnerIds", d);
13791
- const E = new bt(this, C, t, A, i, {
13846
+ const d = (p = l.data) == null ? void 0 : p.bundles[0], C = Y.getMap("bundlePartnerIds") || /* @__PURE__ */ new Map();
13847
+ C.set(d.id, d.partner.id), Y.setMap("bundlePartnerIds", C);
13848
+ const E = new bt(this, d, t, A, i, {
13792
13849
  additionalHeaders: (y = a == null ? void 0 : a.graphql) == null ? void 0 : y.additionalHeaders
13793
13850
  });
13794
13851
  return await E.getInitializationPromise(), E;
@@ -13825,38 +13882,38 @@ class es {
13825
13882
  * @returns A workflow experience configured as requested.
13826
13883
  */
13827
13884
  async getWorkflowExperience(e, t, A, a) {
13828
- var B, l, C, d, E;
13885
+ var B, l, d, C, E;
13829
13886
  if (!a)
13830
13887
  return await this.getWorkflowExperienceDeprecated(e, t, A);
13831
13888
  const n = async () => {
13832
13889
  var u, h, I;
13833
13890
  const w = P.getShadowGraphqlClient();
13834
13891
  if (a.type === "transaction") {
13835
- const { transactionId: Q, readOnly: p } = a, m = await w.query({
13836
- query: fe,
13892
+ const { transactionId: D, readOnly: m } = a, Q = await w.query({
13893
+ query: Fe,
13837
13894
  variables: {
13838
- ids: [Q]
13895
+ ids: [D]
13839
13896
  },
13840
13897
  errorPolicy: "all",
13841
13898
  fetchPolicy: "no-cache"
13842
13899
  });
13843
- if (!((u = m.data) != null && u.transactions) || m.data.transactions.length === 0)
13900
+ if (!((u = Q.data) != null && u.transactions) || Q.data.transactions.length === 0)
13844
13901
  throw new H("Existing transaction not found.");
13845
- const D = (h = m.data) == null ? void 0 : h.transactions[0];
13846
- if (!D.workflowId)
13902
+ const p = (h = Q.data) == null ? void 0 : h.transactions[0];
13903
+ if (!p.workflowId)
13847
13904
  throw new H("Existing transaction has no workflow ID.");
13848
- const y = await Pe(D.workflowId);
13849
- if (!D.product)
13905
+ const y = await xe(p.workflowId);
13906
+ if (!p.product)
13850
13907
  throw new H("Failed to load transaction, product not available.");
13851
- return !this.activeIntegration && ((I = D.integrationProduct) != null && I.integration) && (this.activeIntegration = Promise.resolve(D.integrationProduct.integration)), { transaction: D, workflow: y, readOnly: p };
13908
+ return !this.activeIntegration && ((I = p.integrationProduct) != null && I.integration) && (this.activeIntegration = Promise.resolve(p.integrationProduct.integration)), { transaction: p, workflow: y, readOnly: m };
13852
13909
  }
13853
13910
  if (a.type === "integration" || a.type === "external") {
13854
- const Q = async () => {
13911
+ const D = async () => {
13855
13912
  const y = a.type === "integration" ? { integrationProductId: a.integrationProductId } : {
13856
13913
  externalIntegrationId: a.externalIntegrationId,
13857
13914
  externalProductId: a.externalProductId
13858
13915
  }, M = await w.mutate({
13859
- mutation: vt,
13916
+ mutation: Rt,
13860
13917
  variables: {
13861
13918
  ...y,
13862
13919
  workflowId: a.workflowId,
@@ -13876,8 +13933,8 @@ class es {
13876
13933
  if (!S.product)
13877
13934
  throw new H("Failed to create transaction, product not available.");
13878
13935
  return S;
13879
- }, p = Pe(a.workflowId, a == null ? void 0 : a.graphql), [m, D] = await Promise.all([Q(), p]);
13880
- return { transaction: m, workflow: D };
13936
+ }, m = xe(a.workflowId, a == null ? void 0 : a.graphql), [Q, p] = await Promise.all([D(), m]);
13937
+ return { transaction: Q, workflow: p };
13881
13938
  }
13882
13939
  throw new H("No workflow ID provided.");
13883
13940
  }, { transaction: i, workflow: s, readOnly: o } = await n();
@@ -13907,12 +13964,12 @@ class es {
13907
13964
  r.transaction,
13908
13965
  r.workflow
13909
13966
  );
13910
- if (r.renderableContextService = new Se(
13967
+ if (r.renderableContextService = new Ye(
13911
13968
  r.layouts
13912
- ), a.previewService ? (r.previewService = a.previewService, (C = r.product) != null && C.modelUrl && (r.modelContainer = r.previewService.loadModel({
13969
+ ), a.previewService ? (r.previewService = a.previewService, (d = r.product) != null && d.modelUrl && (r.modelContainer = r.previewService.loadModel({
13913
13970
  model: r.product.modelUrl,
13914
13971
  contextService: r.renderableContextService
13915
- }))) : (r.previewService = A && A(s), (d = r.product) != null && d.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
13972
+ }))) : (r.previewService = A && A(s), (C = r.product) != null && C.modelUrl && (r.modelContainer = (E = r.previewService) == null ? void 0 : E.loadModel({
13916
13973
  model: r.product.modelUrl,
13917
13974
  contextService: r.renderableContextService
13918
13975
  }))), a.type !== "transaction") {
@@ -13921,7 +13978,7 @@ class es {
13921
13978
  } else
13922
13979
  r.isReloadedTransaction = !0;
13923
13980
  this.initialized = !0, this.experienceOptions = r;
13924
- const g = new Me(this, r);
13981
+ const g = new Se(this, r);
13925
13982
  return await g.getWorkflowManager().getInitializationPromise(), a.type !== "transaction" && this.customer && await g.attachCustomerDetails({ email: this.customer.emailAddress }), g;
13926
13983
  }
13927
13984
  /**
@@ -13934,39 +13991,39 @@ class es {
13934
13991
  async getWorkflowExperiences(e, t) {
13935
13992
  if (e.length === 0)
13936
13993
  throw new H("No options provided!");
13937
- const A = P.getShadowGraphqlClient(), a = async (p) => {
13994
+ const A = P.getShadowGraphqlClient(), a = async (m) => {
13938
13995
  var M, S, N;
13939
- if (p.length === 0)
13996
+ if (m.length === 0)
13940
13997
  return [];
13941
- const m = p.map((x) => x.option.transactionId), D = await A.query({
13942
- query: fe,
13998
+ const Q = m.map((x) => x.option.transactionId), p = await A.query({
13999
+ query: Fe,
13943
14000
  variables: {
13944
- ids: m
14001
+ ids: Q
13945
14002
  },
13946
14003
  errorPolicy: "all",
13947
14004
  fetchPolicy: "no-cache"
13948
- }), y = D.data.transactions;
13949
- if (y.length !== p.length) {
13950
- const x = ((S = (M = D.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
14005
+ }), y = p.data.transactions;
14006
+ if (y.length !== m.length) {
14007
+ const x = ((S = (M = p.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
13951
14008
  throw new H(`Not all transactions were found: ${x}`);
13952
14009
  }
13953
- return !this.activeIntegration && ((N = y[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(y[0].integrationProduct.integration)), y.map((x, v) => {
14010
+ return !this.activeIntegration && ((N = y[0].integrationProduct) != null && N.integration) && (this.activeIntegration = Promise.resolve(y[0].integrationProduct.integration)), y.map((x, R) => {
13954
14011
  var L;
13955
14012
  return {
13956
14013
  transaction: x,
13957
14014
  workflowId: x.workflowId,
13958
- readOnly: ((L = p.find((T) => T.option.transactionId === x.id)) == null ? void 0 : L.option.readOnly) ?? !1,
13959
- index: p[v].index
14015
+ readOnly: ((L = m.find((T) => T.option.transactionId === x.id)) == null ? void 0 : L.option.readOnly) ?? !1,
14016
+ index: m[R].index
13960
14017
  };
13961
14018
  });
13962
- }, n = async (p) => {
14019
+ }, n = async (m) => {
13963
14020
  var y, M, S;
13964
- if (p.length === 0)
14021
+ if (m.length === 0)
13965
14022
  return [];
13966
- const m = await A.mutate({
13967
- mutation: va,
14023
+ const Q = await A.mutate({
14024
+ mutation: Ha,
13968
14025
  variables: {
13969
- inputs: p.map((N) => ({
14026
+ inputs: m.map((N) => ({
13970
14027
  integrationProductId: N.option.type === "integration" ? N.option.integrationProductId : void 0,
13971
14028
  externalIntegrationId: N.option.type === "external" ? N.option.externalIntegrationId : void 0,
13972
14029
  externalProductId: N.option.type === "external" ? N.option.externalProductId : void 0,
@@ -13979,29 +14036,29 @@ class es {
13979
14036
  },
13980
14037
  errorPolicy: "all",
13981
14038
  fetchPolicy: "no-cache"
13982
- }), D = (y = m.data) == null ? void 0 : y.transactionCreateMany;
13983
- if (!D || D.length === 0) {
13984
- const N = ((S = (M = m.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
14039
+ }), p = (y = Q.data) == null ? void 0 : y.transactionCreateMany;
14040
+ if (!p || p.length === 0) {
14041
+ const N = ((S = (M = Q.errors) == null ? void 0 : M[0]) == null ? void 0 : S.message) || "Unknown error";
13985
14042
  throw new H(`Failed to create transactions: ${N}`);
13986
14043
  }
13987
- return D.map((N, x) => ({
14044
+ return p.map((N, x) => ({
13988
14045
  transaction: N,
13989
14046
  workflowId: N.workflowId,
13990
14047
  readOnly: !1,
13991
- index: p[x].index
14048
+ index: m[x].index
13992
14049
  }));
13993
- }, i = e.map((p, m) => ({ option: p, index: m })), s = i.filter((p) => p.option.type === "transaction"), o = i.filter(
13994
- (p) => p.option.type === "integration" || p.option.type === "external"
14050
+ }, i = e.map((m, Q) => ({ option: m, index: Q })), s = i.filter((m) => m.option.type === "transaction"), o = i.filter(
14051
+ (m) => m.option.type === "integration" || m.option.type === "external"
13995
14052
  ), r = Yt(s, 10), g = Yt(o, 10), B = (await Promise.all([
13996
14053
  ...r.map(a),
13997
14054
  ...g.map(n)
13998
- ])).flat(), l = [...new Set(B.map((p) => p.workflowId))], C = await xA(l, t), d = new Map(C.map((p) => [p.id, p])), E = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = B.map(async (p) => {
14055
+ ])).flat(), l = [...new Set(B.map((m) => m.workflowId))], d = await RA(l, t), C = new Map(d.map((m) => [m.id, m])), E = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), w = B.map(async (m) => {
13999
14056
  var L;
14000
- const { transaction: m, workflowId: D, readOnly: y, index: M } = p, S = d.get(D), N = e[M];
14001
- !E.get(m.id) && m.transactionOwnerId && E.set(m.id, m.transactionOwnerId);
14002
- const x = E.get(m.id) || void 0, v = {
14003
- product: m.product,
14004
- transaction: m,
14057
+ const { transaction: Q, workflowId: p, readOnly: y, index: M } = m, S = C.get(p), N = e[M];
14058
+ !E.get(Q.id) && Q.transactionOwnerId && E.set(Q.id, Q.transactionOwnerId);
14059
+ const x = E.get(Q.id) || void 0, R = {
14060
+ product: Q.product,
14061
+ transaction: Q,
14005
14062
  layouts: [],
14006
14063
  singleVariantsRenderable: (L = N == null ? void 0 : N.workflowConfiguration) == null ? void 0 : L.singleVariantsRenderable,
14007
14064
  stateMutationFunc: y ? async () => {
@@ -14011,27 +14068,27 @@ class es {
14011
14068
  workflow: S,
14012
14069
  isReloadedTransaction: N.type === "transaction"
14013
14070
  };
14014
- if (N.type === "transaction" && m.workflowState) {
14015
- const T = JSON.parse(m.workflowState);
14016
- v.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), v.reloadedState = T;
14071
+ if (N.type === "transaction" && Q.workflowState) {
14072
+ const T = JSON.parse(Q.workflowState);
14073
+ R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), R.reloadedState = T;
14017
14074
  } else if (!y && N.workflowState) {
14018
14075
  const T = JSON.parse(N.workflowState);
14019
- v.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), v.reloadedState = T;
14076
+ R.layouts = Object.values(T.layouts || {}).map((W) => W.layout), await ae(T), await ie(T), R.reloadedState = T;
14020
14077
  } else
14021
- v.layouts = $e(
14022
- v.transaction,
14023
- v.workflow
14078
+ R.layouts = $e(
14079
+ R.transaction,
14080
+ R.workflow
14024
14081
  );
14025
- return v.renderableContextService = new Se(
14026
- v.layouts
14027
- ), v.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = v, { experienceOptions: v, index: M, options: N };
14082
+ return R.renderableContextService = new Ye(
14083
+ R.layouts
14084
+ ), R.delayWorkflowStateSync = !0, this.initialized = !0, this.experienceOptions = R, { experienceOptions: R, index: M, options: N };
14028
14085
  });
14029
14086
  Y.setMap("transactionOwnerIds", E);
14030
- const I = (await Promise.all(w)).sort((p, m) => p.index - m.index).map(async (p) => {
14031
- const { experienceOptions: m, options: D } = p, y = new Me(this, m);
14032
- return await y.getWorkflowManager().getInitializationPromise(), D.type !== "transaction" && this.customer && await y.attachCustomerDetails({ email: this.customer.emailAddress }), y;
14033
- }), Q = await Promise.all(I);
14034
- return Q.forEach((p) => p.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), Q;
14087
+ const I = (await Promise.all(w)).sort((m, Q) => m.index - Q.index).map(async (m) => {
14088
+ const { experienceOptions: Q, options: p } = m, y = new Se(this, Q);
14089
+ return await y.getWorkflowManager().getInitializationPromise(), p.type !== "transaction" && this.customer && await y.attachCustomerDetails({ email: this.customer.emailAddress }), y;
14090
+ }), D = await Promise.all(I);
14091
+ return D.forEach((m) => m.getWorkflowManager().setWorkflowStateSyncEnabled(!0)), D;
14035
14092
  }
14036
14093
  /**
14037
14094
  * Initialize the client from an integration product.
@@ -14043,7 +14100,7 @@ class es {
14043
14100
  if (e === "")
14044
14101
  throw new H("No integration product ID provided.");
14045
14102
  const A = await P.getShadowGraphqlClient().mutate({
14046
- mutation: vt,
14103
+ mutation: Rt,
14047
14104
  variables: {
14048
14105
  integrationProductId: e,
14049
14106
  claim: !0,
@@ -14083,18 +14140,18 @@ class es {
14083
14140
  if (e === "")
14084
14141
  throw new H("No transaction ID provided.");
14085
14142
  const A = P.getShadowGraphqlClient(), a = async () => {
14086
- var C, d;
14087
- const l = (C = (await A.query({
14088
- query: fe,
14143
+ var d, C;
14144
+ const l = (d = (await A.query({
14145
+ query: Fe,
14089
14146
  variables: { ids: [e] },
14090
14147
  fetchPolicy: "no-cache",
14091
14148
  errorPolicy: "all"
14092
- })).data) == null ? void 0 : C.transactions[0];
14149
+ })).data) == null ? void 0 : d.transactions[0];
14093
14150
  if (!l)
14094
14151
  throw new H("Failed to read transaction.");
14095
14152
  if (!l.product)
14096
14153
  throw new H("Failed to load transaction, product not available.");
14097
- this.currencyCode = (d = l.product.partner) == null ? void 0 : d.currencyCode, this.experienceOptions = {
14154
+ this.currencyCode = (C = l.product.partner) == null ? void 0 : C.currencyCode, this.experienceOptions = {
14098
14155
  product: l.product,
14099
14156
  transaction: l,
14100
14157
  layouts: [],
@@ -14109,7 +14166,7 @@ class es {
14109
14166
  const n = Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map(), i = n.get(e);
14110
14167
  if (i) {
14111
14168
  const l = (s = (await A.query({
14112
- query: fe,
14169
+ query: Fe,
14113
14170
  variables: {
14114
14171
  ids: [e]
14115
14172
  },
@@ -14123,14 +14180,14 @@ class es {
14123
14180
  product: l.product,
14124
14181
  transaction: l,
14125
14182
  layouts: [],
14126
- stateMutationFunc: async (C) => this.updateTransactionState({ ...C, context: { transactionOwnerId: i } }),
14183
+ stateMutationFunc: async (d) => this.updateTransactionState({ ...d, context: { transactionOwnerId: i } }),
14127
14184
  readOnly: t
14128
14185
  }, this.initialized = !0;
14129
14186
  return;
14130
14187
  }
14131
14188
  try {
14132
14189
  const l = (r = (await A.mutate({
14133
- mutation: Ra,
14190
+ mutation: Ua,
14134
14191
  variables: { id: e },
14135
14192
  errorPolicy: "all"
14136
14193
  })).data) == null ? void 0 : r.transactionClaim;
@@ -14142,8 +14199,8 @@ class es {
14142
14199
  product: l.product,
14143
14200
  transaction: l,
14144
14201
  layouts: [],
14145
- stateMutationFunc: async (C) => this.updateTransactionState({
14146
- ...C,
14202
+ stateMutationFunc: async (d) => this.updateTransactionState({
14203
+ ...d,
14147
14204
  context: { transactionOwnerId: l.transactionOwnerId }
14148
14205
  }),
14149
14206
  readOnly: t
@@ -14160,21 +14217,21 @@ class es {
14160
14217
  if (!this.initialized || !this.experienceOptions)
14161
14218
  throw new H("Cannot launch experience: Not initialized.");
14162
14219
  if (this.experienceOptions.transaction.workflowId) {
14163
- const o = await Pe(this.experienceOptions.transaction.workflowId);
14220
+ const o = await xe(this.experienceOptions.transaction.workflowId);
14164
14221
  if (this.experienceOptions.workflow = o, this.experienceOptions.transaction.workflowState) {
14165
14222
  const g = JSON.parse(this.experienceOptions.transaction.workflowState);
14166
14223
  this.experienceOptions.layouts = Object.values(g.layouts).map((B) => B.layout), await ae(g), await ie(g), this.experienceOptions.reloadedState = g;
14167
14224
  }
14168
- this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
14225
+ this.experienceOptions.previewService = A && A(o), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (a = this.experienceOptions.product) != null && a.modelUrl && (this.experienceOptions.modelContainer = (n = this.experienceOptions.previewService) == null ? void 0 : n.loadModel({
14169
14226
  model: this.experienceOptions.product.modelUrl,
14170
14227
  contextService: this.experienceOptions.renderableContextService
14171
14228
  }));
14172
- const r = new Me(this, this.experienceOptions);
14229
+ const r = new Se(this, this.experienceOptions);
14173
14230
  return await r.getWorkflowManager().getInitializationPromise(), r;
14174
14231
  }
14175
14232
  if (e) {
14176
14233
  const r = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(this.experienceOptions.transaction.id), g = P.getShadowGraphqlClient().mutate({
14177
- mutation: Ua,
14234
+ mutation: Ga,
14178
14235
  variables: {
14179
14236
  workflowId: e,
14180
14237
  id: this.experienceOptions.transaction.id
@@ -14182,20 +14239,20 @@ class es {
14182
14239
  context: {
14183
14240
  transactionOwnerId: r
14184
14241
  }
14185
- }), B = Pe(e);
14242
+ }), B = xe(e);
14186
14243
  if (await Promise.all([g, B]), this.experienceOptions.workflow = await B, t) {
14187
- const C = JSON.parse(t);
14188
- this.experienceOptions.layouts = Object.values(C.layouts).map((d) => d.layout), await ae(C), await ie(C), this.experienceOptions.reloadedState = C;
14244
+ const d = JSON.parse(t);
14245
+ this.experienceOptions.layouts = Object.values(d.layouts).map((C) => C.layout), await ae(d), await ie(d), this.experienceOptions.reloadedState = d;
14189
14246
  } else
14190
14247
  this.experienceOptions.layouts = $e(
14191
14248
  this.experienceOptions.transaction,
14192
14249
  this.experienceOptions.workflow
14193
14250
  );
14194
- this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Se(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
14251
+ this.experienceOptions.previewService = A && A(await B), this.experienceOptions.renderableContextService = new Ye(this.experienceOptions.layouts), (i = this.experienceOptions.product) != null && i.modelUrl && (this.experienceOptions.modelContainer = (s = this.experienceOptions.previewService) == null ? void 0 : s.loadModel({
14195
14252
  model: this.experienceOptions.product.modelUrl,
14196
14253
  contextService: this.experienceOptions.renderableContextService
14197
14254
  }));
14198
- const l = new Me(this, this.experienceOptions);
14255
+ const l = new Se(this, this.experienceOptions);
14199
14256
  return await l.getWorkflowManager().getInitializationPromise(), l;
14200
14257
  }
14201
14258
  throw new H("No workflow ID provided.");
@@ -14233,7 +14290,7 @@ class es {
14233
14290
  async getIntegrationProductById(e) {
14234
14291
  var n, i;
14235
14292
  const a = (n = (await P.getShadowGraphqlClient().query({
14236
- query: ba,
14293
+ query: Ta,
14237
14294
  variables: {
14238
14295
  ids: [e]
14239
14296
  },
@@ -14247,7 +14304,7 @@ class es {
14247
14304
  async getIntegrationProductFromExternalIds(e, t) {
14248
14305
  var i;
14249
14306
  const n = (i = (await P.getShadowGraphqlClient().query({
14250
- query: Ja,
14307
+ query: Oa,
14251
14308
  variables: {
14252
14309
  externalProductId: t,
14253
14310
  externalIntegrationId: e
@@ -14264,7 +14321,7 @@ class es {
14264
14321
  }
14265
14322
  async getShareActionsForTransaction(e) {
14266
14323
  const A = (Y.getMap("transactionOwnerIds") || /* @__PURE__ */ new Map()).get(e) || void 0, a = await P.getShadowGraphqlClient().query({
14267
- query: Ga,
14324
+ query: Ja,
14268
14325
  errorPolicy: "all",
14269
14326
  fetchPolicy: "no-cache",
14270
14327
  variables: {
@@ -14612,46 +14669,46 @@ export {
14612
14669
  Ze as CollectionProduct,
14613
14670
  Gt as ColorOptionGlobalPropertyHandle,
14614
14671
  Ns as CommandContext,
14615
- xa as ConversionDataType,
14616
- Pa as ConversionLocation,
14617
- vs as CreateElementCommand,
14618
- Rs as CreateLayoutCommand,
14672
+ Ra as ConversionDataType,
14673
+ Na as ConversionLocation,
14674
+ Rs as CreateElementCommand,
14675
+ vs as CreateLayoutCommand,
14619
14676
  Hs as DeleteElementCommand,
14620
14677
  Un as DigitalContentStepHandle,
14621
14678
  Fi as FileUploadGlobalPropertyHandle,
14622
- Ye as FlowExecutionNodeResult,
14679
+ Pe as FlowExecutionNodeResult,
14623
14680
  ki as FlowExecutionResult,
14624
14681
  Ui as FlowService,
14625
14682
  Us as FontAlignmentCommand,
14626
14683
  ks as FontColorCommand,
14627
14684
  Gs as FontSizeCommand,
14628
14685
  bs as FontSourceCommand,
14629
- Va as FrameService,
14686
+ Xa as FrameService,
14630
14687
  ts as FrameStep,
14631
14688
  As as FrameStepHandle,
14632
14689
  pt as GlobalPropertyHandle,
14633
14690
  Js as GroupCommand,
14634
14691
  Sn as IllustrationStepHandle,
14635
- Te as InformationMessageType,
14692
+ pe as InformationMessageType,
14636
14693
  Hn as InformationStepHandle,
14637
14694
  Jt as IntegrationProduct,
14638
- Sa as IntegrationType,
14695
+ Pa as IntegrationType,
14639
14696
  Ts as LayoutElementFactory,
14640
14697
  Os as LayoutElementType,
14641
14698
  z as LayoutNotFoundError,
14642
14699
  Yn as MaterialStepHandle,
14643
- ke as MisconfigurationError,
14700
+ Ge as MisconfigurationError,
14644
14701
  Is as MockWorkflowManager,
14645
14702
  Pn as ModelStepHandle,
14646
14703
  kn as ModuleStepHandle,
14647
14704
  Ls as MoveCommand,
14648
- PA as ObjectInput,
14705
+ NA as ObjectInput,
14649
14706
  Gi as ObjectInputType,
14650
- YA as OptionGlobalPropertyHandle,
14651
- Ue as OptionNotFoundError,
14652
- de as ParseError,
14707
+ xA as OptionGlobalPropertyHandle,
14708
+ ke as OptionNotFoundError,
14709
+ Ce as ParseError,
14653
14710
  xn as PictureStepHandle,
14654
- Ya as ProductCameraRig,
14711
+ xa as ProductCameraRig,
14655
14712
  Ni as ProductCollection,
14656
14713
  Ee as ProductWorkflow,
14657
14714
  Qe as PromiseCache,
@@ -14662,32 +14719,32 @@ export {
14662
14719
  ue as ResourceNotFoundError,
14663
14720
  Ks as RotateCommand,
14664
14721
  js as SendBackwardsCommand,
14665
- vn as ShapeStepHandle,
14722
+ Rn as ShapeStepHandle,
14666
14723
  es as SpiffCommerceClient,
14667
- Ge as StakeholderType,
14724
+ be as StakeholderType,
14668
14725
  Vs as StepAspectType,
14669
14726
  X as StepHandle,
14670
14727
  Ws as StepType,
14671
14728
  Xs as TextChangeCommand,
14672
14729
  yi as TextGlobalPropertyHandle,
14673
14730
  ps as TextInput,
14674
- Rn as TextStepHandle,
14675
- Ma as TransactionShareActionType,
14676
- Ri as Transform,
14677
- vi as TransformCollection,
14731
+ vn as TextStepHandle,
14732
+ Ya as TransactionShareActionType,
14733
+ vi as Transform,
14734
+ Ri as TransformCollection,
14678
14735
  b as UnhandledBehaviorError,
14679
14736
  qs as UnitOfMeasurement,
14680
14737
  Zs as UpdateImageSourceCommand,
14681
14738
  Z as Variant,
14682
14739
  Vn as WorkflowExperienceEventType,
14683
- Me as WorkflowExperienceImpl,
14740
+ Se as WorkflowExperienceImpl,
14684
14741
  U as assetService,
14685
- en as browserColorToHex,
14742
+ tn as browserColorToHex,
14686
14743
  Ln as createDesign,
14687
14744
  $s as dataUrlFromExternalUrl,
14688
14745
  qe as designService,
14689
14746
  _s as determineCorrectFontSizeAndLines,
14690
- qa as digitalContentStepService,
14747
+ CA as digitalContentStepService,
14691
14748
  eo as findElement,
14692
14749
  us as findPmsColors,
14693
14750
  to as frameDataCache,
@@ -14698,32 +14755,32 @@ export {
14698
14755
  ms as generateStateFromDesignInputSteps,
14699
14756
  no as getAttributesFromArrayBuffer,
14700
14757
  io as getAxisAlignedBoundingBox,
14701
- ja as getBoundedOffsets,
14758
+ Wa as getBoundedOffsets,
14702
14759
  so as getFrameData,
14703
14760
  oo as getSvgElement,
14704
- Pe as getWorkflow,
14705
- xA as getWorkflows,
14761
+ xe as getWorkflow,
14762
+ RA as getWorkflows,
14706
14763
  P as graphQlManager,
14707
- Ne as illustrationStepService,
14764
+ Re as illustrationStepService,
14708
14765
  ro as loadFont,
14709
14766
  hs as matchHexToPms,
14710
- dA as materialStepService,
14711
- wA as modelStepService,
14712
- on as moduleStepService,
14767
+ wA as materialStepService,
14768
+ EA as modelStepService,
14769
+ hA as moduleStepService,
14713
14770
  j as optionService,
14714
14771
  co as patternImageDataCache,
14715
14772
  Y as persistenceService,
14716
- EA as pictureStepService,
14773
+ uA as pictureStepService,
14717
14774
  Es as pmsToRgb,
14718
- hA as questionStepService,
14775
+ QA as questionStepService,
14719
14776
  go as registerFetchImplementation,
14720
14777
  lo as registerWindowImplementation,
14721
14778
  Bo as rehydrateSerializedLayout,
14722
- Za as rgbToPms,
14723
- ca as setBearerAuthenticationToken,
14779
+ $a as rgbToPms,
14780
+ la as setBearerAuthenticationToken,
14724
14781
  Co as setCanvasModule,
14725
14782
  we as shapeStepService,
14726
- Wa as shortenUrl,
14783
+ qa as shortenUrl,
14727
14784
  q as spiffCoreConfiguration,
14728
14785
  Qs as stepAspectValuesToDesignInputSteps,
14729
14786
  wo as svgToDataUrl,