angulartics2 11.0.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/angular-router.d.ts +3 -0
  2. package/angulartics2-core.d.ts +3 -0
  3. package/angulartics2.d.ts +1 -0
  4. package/angulartics2.module.d.ts +5 -0
  5. package/angulartics2On.d.ts +6 -0
  6. package/esm2020/angular-router.mjs +33 -0
  7. package/{esm2015/angulartics2-config.js → esm2020/angulartics2-config.mjs} +0 -0
  8. package/esm2020/angulartics2-core.mjs +93 -0
  9. package/{esm2015/angulartics2-interfaces.js → esm2020/angulartics2-interfaces.mjs} +0 -0
  10. package/{esm2015/angulartics2-token.js → esm2020/angulartics2-token.mjs} +0 -0
  11. package/{esm2015/angulartics2.js → esm2020/angulartics2.mjs} +0 -0
  12. package/esm2020/angulartics2.module.mjs +30 -0
  13. package/esm2020/angulartics2On.mjs +66 -0
  14. package/esm2020/providers/adobeanalytics/adobeanalytics.mjs +98 -0
  15. package/esm2020/providers/amplitude/amplitude.mjs +68 -0
  16. package/esm2020/providers/appinsights/appinsights.mjs +118 -0
  17. package/esm2020/providers/baidu/baidu.mjs +81 -0
  18. package/{esm2015/providers/clicky/clicky.interfaces.js → esm2020/providers/clicky/clicky.interfaces.mjs} +0 -0
  19. package/esm2020/providers/clicky/clicky.mjs +64 -0
  20. package/esm2020/providers/facebook/facebook.mjs +45 -0
  21. package/esm2020/providers/ga/ga.mjs +219 -0
  22. package/{esm2015/providers/ga-enhanced-ecom/ga-enhanced-ecom-options.js → esm2020/providers/ga-enhanced-ecom/ga-enhanced-ecom-options.mjs} +0 -0
  23. package/esm2020/providers/ga-enhanced-ecom/ga-enhanced-ecom.mjs +32 -0
  24. package/esm2020/providers/gosquared/gosquared.mjs +55 -0
  25. package/{esm2015/providers/gst/gst-interfaces.js → esm2020/providers/gst/gst-interfaces.mjs} +0 -0
  26. package/esm2020/providers/gst/gst.mjs +197 -0
  27. package/esm2020/providers/gtm/gtm.mjs +114 -0
  28. package/esm2020/providers/hubspot/hubspot.mjs +40 -0
  29. package/esm2020/providers/ibm-digital-analytics/ibm-digital-analytics.mjs +125 -0
  30. package/esm2020/providers/intercom/intercom.mjs +60 -0
  31. package/esm2020/providers/kissmetrics/kissmetrics.mjs +40 -0
  32. package/esm2020/providers/launch/launch.mjs +59 -0
  33. package/esm2020/providers/matomo/matomo.mjs +303 -0
  34. package/esm2020/providers/mixpanel/mixpanel.mjs +109 -0
  35. package/esm2020/providers/pyze/pyze.mjs +65 -0
  36. package/esm2020/providers/segment/segment.mjs +100 -0
  37. package/esm2020/providers/splunk/splunk.mjs +46 -0
  38. package/esm2020/providers/woopra/woopra.mjs +61 -0
  39. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  40. package/{esm2015/routerless.js → esm2020/routerless.mjs} +0 -0
  41. package/esm2020/routerless.module.mjs +28 -0
  42. package/fesm2015/{angulartics2.js → angulartics2.mjs} +201 -210
  43. package/fesm2015/angulartics2.mjs.map +1 -0
  44. package/fesm2020/angulartics2.mjs +2294 -0
  45. package/fesm2020/angulartics2.mjs.map +1 -0
  46. package/package.json +23 -11
  47. package/providers/adobeanalytics/README.md +12 -0
  48. package/providers/adobeanalytics/adobeanalytics.d.ts +3 -0
  49. package/providers/amplitude/README.md +12 -0
  50. package/providers/amplitude/amplitude.d.ts +3 -0
  51. package/providers/appinsights/README.md +12 -0
  52. package/providers/appinsights/appinsights.d.ts +3 -0
  53. package/providers/baidu/README.md +12 -0
  54. package/providers/baidu/baidu.d.ts +3 -0
  55. package/providers/clicky/README.md +93 -0
  56. package/providers/clicky/clicky.d.ts +3 -0
  57. package/providers/facebook/README.md +36 -0
  58. package/providers/facebook/facebook.d.ts +3 -0
  59. package/providers/ga/README.md +25 -0
  60. package/providers/ga/ga.d.ts +3 -0
  61. package/providers/ga-enhanced-ecom/README.md +12 -0
  62. package/providers/ga-enhanced-ecom/ga-enhanced-ecom.d.ts +3 -0
  63. package/providers/gosquared/README.md +12 -0
  64. package/providers/gosquared/gosquared.d.ts +3 -0
  65. package/providers/gst/README.md +110 -0
  66. package/providers/gst/gst.d.ts +3 -0
  67. package/providers/gtm/README.md +58 -0
  68. package/providers/gtm/gtm.d.ts +3 -0
  69. package/providers/hubspot/README.md +12 -0
  70. package/providers/hubspot/hubspot.d.ts +3 -0
  71. package/providers/ibm-digital-analytics/README.md +123 -0
  72. package/providers/ibm-digital-analytics/ibm-digital-analytics.d.ts +3 -0
  73. package/providers/intercom/README.md +12 -0
  74. package/providers/intercom/intercom.d.ts +3 -0
  75. package/providers/kissmetrics/README.md +12 -0
  76. package/providers/kissmetrics/kissmetrics.d.ts +3 -0
  77. package/providers/launch/README.md +59 -0
  78. package/providers/launch/launch.d.ts +3 -0
  79. package/providers/matomo/README.md +74 -0
  80. package/providers/matomo/matomo.d.ts +3 -0
  81. package/providers/mixpanel/README.md +105 -0
  82. package/providers/mixpanel/mixpanel.d.ts +3 -0
  83. package/providers/pyze/README.md +21 -0
  84. package/providers/pyze/pyze.d.ts +3 -0
  85. package/providers/segment/README.md +50 -0
  86. package/providers/segment/segment.d.ts +3 -0
  87. package/providers/splunk/README.md +57 -0
  88. package/providers/splunk/splunk.d.ts +3 -0
  89. package/providers/woopra/README.md +12 -0
  90. package/providers/woopra/woopra.d.ts +3 -0
  91. package/routerless.module.d.ts +5 -0
  92. package/angulartics2.metadata.json +0 -1
  93. package/bundles/angulartics2.umd.js +0 -2821
  94. package/bundles/angulartics2.umd.js.map +0 -1
  95. package/esm2015/angular-router.js +0 -36
  96. package/esm2015/angulartics2-core.js +0 -91
  97. package/esm2015/angulartics2.module.js +0 -25
  98. package/esm2015/angulartics2On.js +0 -55
  99. package/esm2015/providers/adobeanalytics/adobeanalytics.js +0 -102
  100. package/esm2015/providers/amplitude/amplitude.js +0 -70
  101. package/esm2015/providers/appinsights/appinsights.js +0 -120
  102. package/esm2015/providers/baidu/baidu.js +0 -83
  103. package/esm2015/providers/clicky/clicky.js +0 -68
  104. package/esm2015/providers/facebook/facebook.js +0 -47
  105. package/esm2015/providers/ga/ga.js +0 -208
  106. package/esm2015/providers/ga-enhanced-ecom/ga-enhanced-ecom.js +0 -30
  107. package/esm2015/providers/gosquared/gosquared.js +0 -57
  108. package/esm2015/providers/gst/gst.js +0 -182
  109. package/esm2015/providers/gtm/gtm.js +0 -107
  110. package/esm2015/providers/hubspot/hubspot.js +0 -42
  111. package/esm2015/providers/ibm-digital-analytics/ibm-digital-analytics.js +0 -127
  112. package/esm2015/providers/intercom/intercom.js +0 -62
  113. package/esm2015/providers/kissmetrics/kissmetrics.js +0 -42
  114. package/esm2015/providers/launch/launch.js +0 -61
  115. package/esm2015/providers/matomo/matomo.js +0 -305
  116. package/esm2015/providers/mixpanel/mixpanel.js +0 -111
  117. package/esm2015/providers/pyze/pyze.js +0 -67
  118. package/esm2015/providers/segment/segment.js +0 -102
  119. package/esm2015/providers/splunk/splunk.js +0 -48
  120. package/esm2015/providers/woopra/woopra.js +0 -63
  121. package/esm2015/routerless.module.js +0 -23
  122. package/fesm2015/angulartics2.js.map +0 -1
@@ -1,305 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Angulartics2 } from '../../angulartics2-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../angulartics2-core";
5
- export class Angulartics2Matomo {
6
- constructor(angulartics2) {
7
- this.angulartics2 = angulartics2;
8
- if (typeof _paq === 'undefined') {
9
- console.warn('Matomo not found');
10
- }
11
- this.angulartics2.setUsername.subscribe((x) => this.setUsername(x));
12
- this.angulartics2.setUserProperties.subscribe((x) => this.setUserProperties(x));
13
- }
14
- startTracking() {
15
- this.angulartics2.pageTrack
16
- .pipe(this.angulartics2.filterDeveloperMode())
17
- .subscribe(x => this.pageTrack(x.path));
18
- this.angulartics2.eventTrack
19
- .pipe(this.angulartics2.filterDeveloperMode())
20
- .subscribe(x => this.eventTrack(x.action, x.properties));
21
- }
22
- pageTrack(path, title) {
23
- try {
24
- if (!window.location.origin) {
25
- window.location.origin =
26
- window.location.protocol +
27
- '//' +
28
- window.location.hostname +
29
- (window.location.port ? ':' + window.location.port : '');
30
- }
31
- _paq.push(['setDocumentTitle', title || window.document.title]);
32
- _paq.push(['setCustomUrl', window.location.origin + path]);
33
- _paq.push(['trackPageView']);
34
- }
35
- catch (e) {
36
- if (!(e instanceof ReferenceError)) {
37
- throw e;
38
- }
39
- }
40
- }
41
- resetUser() {
42
- try {
43
- _paq.push(['appendToTrackingUrl', 'new_visit=1']); // (1) forces a new visit
44
- _paq.push(['deleteCookies']); // (2) deletes existing tracking cookies to start the new visit
45
- }
46
- catch (e) {
47
- if (!(e instanceof ReferenceError)) {
48
- throw e;
49
- }
50
- }
51
- }
52
- /**
53
- * Track a basic event in Matomo, or send an ecommerce event.
54
- *
55
- * @param action A string corresponding to the type of event that needs to be tracked.
56
- * @param properties The properties that need to be logged with the event.
57
- */
58
- eventTrack(action, properties) {
59
- let params = [];
60
- switch (action) {
61
- /**
62
- * @description Sets the current page view as a product or category page view. When you call
63
- * setEcommerceView it must be followed by a call to trackPageView to record the product or
64
- * category page view.
65
- *
66
- * @link https://matomo.org/docs/ecommerce-analytics/#tracking-product-page-views-category-page-views-optional
67
- * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce
68
- *
69
- * @property productSKU (required) SKU: Product unique identifier
70
- * @property productName (optional) Product name
71
- * @property categoryName (optional) Product category, or array of up to 5 categories
72
- * @property price (optional) Product Price as displayed on the page
73
- */
74
- case 'setEcommerceView':
75
- params = [
76
- 'setEcommerceView',
77
- properties.productSKU,
78
- properties.productName,
79
- properties.categoryName,
80
- properties.price,
81
- ];
82
- break;
83
- /**
84
- * @description Adds a product into the ecommerce order. Must be called for each product in
85
- * the order.
86
- *
87
- * @link https://matomo.org/docs/ecommerce-analytics/#tracking-ecommerce-orders-items-purchased-required
88
- * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce
89
- *
90
- * @property productSKU (required) SKU: Product unique identifier
91
- * @property productName (optional) Product name
92
- * @property categoryName (optional) Product category, or array of up to 5 categories
93
- * @property price (recommended) Product price
94
- * @property quantity (optional, default to 1) Product quantity
95
- */
96
- case 'addEcommerceItem':
97
- params = [
98
- 'addEcommerceItem',
99
- properties.productSKU,
100
- properties.productName,
101
- properties.productCategory,
102
- properties.price,
103
- properties.quantity,
104
- ];
105
- break;
106
- /**
107
- * @description Tracks a shopping cart. Call this javascript function every time a user is
108
- * adding, updating or deleting a product from the cart.
109
- *
110
- * @link https://matomo.org/docs/ecommerce-analytics/#tracking-add-to-cart-items-added-to-the-cart-optional
111
- * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce
112
- *
113
- * @property grandTotal (required) Cart amount
114
- */
115
- case 'trackEcommerceCartUpdate':
116
- params = [
117
- 'trackEcommerceCartUpdate',
118
- properties.grandTotal,
119
- ];
120
- break;
121
- /**
122
- * @description Tracks an Ecommerce order, including any ecommerce item previously added to
123
- * the order. orderId and grandTotal (ie. revenue) are required parameters.
124
- *
125
- * @link https://matomo.org/docs/ecommerce-analytics/#tracking-ecommerce-orders-items-purchased-required
126
- * @link https://developer.matomo.org/api-reference/tracking-javascript#ecommerce
127
- *
128
- * @property orderId (required) Unique Order ID
129
- * @property grandTotal (required) Order Revenue grand total (includes tax, shipping, and subtracted discount)
130
- * @property subTotal (optional) Order sub total (excludes shipping)
131
- * @property tax (optional) Tax amount
132
- * @property shipping (optional) Shipping amount
133
- * @property discount (optional) Discount offered (set to false for unspecified parameter)
134
- */
135
- case 'trackEcommerceOrder':
136
- params = [
137
- 'trackEcommerceOrder',
138
- properties.orderId,
139
- properties.grandTotal,
140
- properties.subTotal,
141
- properties.tax,
142
- properties.shipping,
143
- properties.discount,
144
- ];
145
- break;
146
- /**
147
- * @description To manually trigger an outlink
148
- *
149
- * @link https://matomo.org/docs/tracking-goals-web-analytics/
150
- * @link https://developer.matomo.org/guides/tracking-javascript-guide#tracking-a-click-as-an-outlink-via-css-or-javascript
151
- *
152
- * @property url (required) link url
153
- * @property linkType (optional) type of link
154
- */
155
- case 'trackLink':
156
- params = [
157
- 'trackLink',
158
- properties.url,
159
- properties.linkType,
160
- ];
161
- break;
162
- /**
163
- * @description Tracks an Ecommerce goal
164
- *
165
- * @link https://matomo.org/docs/tracking-goals-web-analytics/
166
- * @link https://developer.matomo.org/guides/tracking-javascript-guide#manually-trigger-goal-conversions
167
- *
168
- * @property goalId (required) Unique Goal ID
169
- * @property value (optional) passed to goal tracking
170
- */
171
- case 'trackGoal':
172
- params = [
173
- 'trackGoal',
174
- properties.goalId,
175
- properties.value,
176
- ];
177
- break;
178
- /**
179
- * @description Tracks a site search
180
- *
181
- * @link https://matomo.org/docs/site-search/
182
- * @link https://developer.matomo.org/guides/tracking-javascript-guide#internal-search-tracking
183
- *
184
- * @property keyword (required) Keyword searched for
185
- * @property category (optional) Search category
186
- * @property searchCount (optional) Number of results
187
- */
188
- case 'trackSiteSearch':
189
- params = [
190
- 'trackSiteSearch',
191
- properties.keyword,
192
- properties.category,
193
- properties.searchCount,
194
- ];
195
- break;
196
- /**
197
- * @description Logs an event with an event category (Videos, Music, Games...), an event
198
- * action (Play, Pause, Duration, Add Playlist, Downloaded, Clicked...), and an optional
199
- * event name and optional numeric value.
200
- *
201
- * @link https://matomo.org/docs/event-tracking/
202
- * @link https://developer.matomo.org/api-reference/tracking-javascript#using-the-tracker-object
203
- *
204
- * @property category
205
- * @property action
206
- * @property name (optional, recommended)
207
- * @property value (optional)
208
- */
209
- default:
210
- // PAQ requires that eventValue be an integer, see: http://matomo.org/docs/event-tracking
211
- if (properties.value) {
212
- const parsed = parseInt(properties.value, 10);
213
- properties.value = isNaN(parsed) ? 0 : parsed;
214
- }
215
- params = [
216
- 'trackEvent',
217
- properties.category,
218
- action,
219
- properties.name ||
220
- properties.label,
221
- properties.value,
222
- ];
223
- }
224
- try {
225
- _paq.push(params);
226
- }
227
- catch (e) {
228
- if (!(e instanceof ReferenceError)) {
229
- throw e;
230
- }
231
- }
232
- }
233
- setUsername(userId) {
234
- try {
235
- _paq.push(['setUserId', userId]);
236
- }
237
- catch (e) {
238
- if (!(e instanceof ReferenceError)) {
239
- throw e;
240
- }
241
- }
242
- }
243
- /**
244
- * Sets custom dimensions if at least one property has the key "dimension<n>",
245
- * e.g. dimension10. If there are custom dimensions, any other property is ignored.
246
- *
247
- * If there are no custom dimensions in the given properties object, the properties
248
- * object is saved as a custom variable.
249
- *
250
- * If in doubt, prefer custom dimensions.
251
- * @link https://matomo.org/docs/custom-variables/
252
- */
253
- setUserProperties(properties) {
254
- const dimensions = this.setCustomDimensions(properties);
255
- try {
256
- if (dimensions.length === 0) {
257
- _paq.push([
258
- 'setCustomVariable',
259
- properties.index,
260
- properties.name,
261
- properties.value,
262
- properties.scope,
263
- ]);
264
- }
265
- }
266
- catch (e) {
267
- if (!(e instanceof ReferenceError)) {
268
- throw e;
269
- }
270
- }
271
- }
272
- /**
273
- * If you created a custom variable and then decide to remove this variable from
274
- * a visit or page view, you can use deleteCustomVariable.
275
- *
276
- * @link https://developer.matomo.org/guides/tracking-javascript-guide#deleting-a-custom-variable
277
- */
278
- deletedUserProperties(properties) {
279
- try {
280
- _paq.push(['deleteCustomVariable', properties.index, properties.scope]);
281
- }
282
- catch (e) {
283
- if (!(e instanceof ReferenceError)) {
284
- throw e;
285
- }
286
- }
287
- }
288
- setCustomDimensions(properties) {
289
- const dimensionRegex = /dimension[1-9]\d*/;
290
- const dimensions = Object.keys(properties).filter(key => dimensionRegex.exec(key));
291
- dimensions.forEach(dimension => {
292
- const number = Number(dimension.substr(9));
293
- _paq.push(['setCustomDimension', number, properties[dimension]]);
294
- });
295
- return dimensions;
296
- }
297
- }
298
- Angulartics2Matomo.ɵprov = i0.ɵɵdefineInjectable({ factory: function Angulartics2Matomo_Factory() { return new Angulartics2Matomo(i0.ɵɵinject(i1.Angulartics2)); }, token: Angulartics2Matomo, providedIn: "root" });
299
- Angulartics2Matomo.decorators = [
300
- { type: Injectable, args: [{ providedIn: 'root' },] }
301
- ];
302
- Angulartics2Matomo.ctorParameters = () => [
303
- { type: Angulartics2 }
304
- ];
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0b21vLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9wcm92aWRlcnMvbWF0b21vL21hdG9tby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBdUl2RCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzVDLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUNsQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBb0MsRUFBRSxFQUFFLENBQ3JGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FDMUIsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTO2FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLENBQUM7YUFDN0MsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVU7YUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVB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SSxDQUFDLENBQUMsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLENBQUMsQ0FBQzthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsVUFBNkM7UUFDdkUsTUFBTSxjQUFjLEdBQVcsbUJBQW1CLENBQUM7UUFDbkQsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Ozs7WUEzVEYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7O1lBdEl6QixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBbmd1bGFydGljczIgfSBmcm9tICcuLi8uLi9hbmd1bGFydGljczItY29yZSc7XG5cbmRlY2xhcmUgdmFyIF9wYXE6IGFueTtcblxuZXhwb3J0IHR5cGUgRXZlbnRUcmFja0FjdGlvbiA9XG4gIHwgJ3NldEVjb21tZXJjZVZpZXcnXG4gIHwgJ2FkZEVjb21tZXJjZUl0ZW0nXG4gIHwgJ3RyYWNrRWNvbW1lcmNlQ2FydFVwZGF0ZSdcbiAgfCAndHJhY2tFY29tbWVyY2VPcmRlcidcbiAgfCAndHJhY2tMaW5rJ1xuICB8ICd0cmFja0dvYWwnXG4gIHwgJ3RyYWNrU2l0ZVNlYXJjaCdcbiAgfCBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFNjb3BlTWF0b21vID0gJ3Zpc2l0JyB8ICdwYWdlJztcblxuZXhwb3J0IGludGVyZmFjZSBEaW1lbnNpb25zTWF0b21vUHJvcGVydGllcyB7XG4gIGRpbWVuc2lvbjA/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjE/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjI/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjM/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjQ/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjU/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjY/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjc/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjg/OiBzdHJpbmc7XG4gIGRpbWVuc2lvbjk/OiBzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFNldEVjb21tZXJjZVZpZXdNYXRvbW9Qcm9wZXJ0aWVzIHtcbiAgLyoqIEBjbGFzcyBTZXRFY29tbWVyY2VWaWV3TWF0b21vUHJvcGVydGllcyAqL1xuICBwcm9kdWN0U0tVOiBzdHJpbmc7XG4gIC8qKiBAY2xhc3MgU2V0RWNvbW1lcmNlVmlld01hdG9tb1Byb3BlcnRpZXMgKi9cbiAgcHJvZHVjdE5hbWU6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBTZXRFY29tbWVyY2VWaWV3TWF0b21vUHJvcGVydGllcyAqL1xuICBjYXRlZ29yeU5hbWU6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBTZXRFY29tbWVyY2VWaWV3TWF0b21vUHJvcGVydGllcyAqL1xuICBwcmljZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEVjb21tZXJjZUl0ZW1Qcm9wZXJ0aWVzIHtcbiAgLyoqIEBjbGFzcyBBZGRFY29tbWVyY2VJdGVtUHJvcGVydGllcyAqL1xuICBwcm9kdWN0U0tVOiBzdHJpbmc7XG4gIC8qKiBAY2xhc3MgQWRkRWNvbW1lcmNlSXRlbVByb3BlcnRpZXMgKi9cbiAgcHJvZHVjdE5hbWU6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBBZGRFY29tbWVyY2VJdGVtUHJvcGVydGllcyAqL1xuICBwcm9kdWN0Q2F0ZWdvcnk6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBBZGRFY29tbWVyY2VJdGVtUHJvcGVydGllcyAqL1xuICBwcmljZTogc3RyaW5nO1xuICAvKiogQGNsYXNzIEFkZEVjb21tZXJjZUl0ZW1Qcm9wZXJ0aWVzICovXG4gIHF1YW50aXR5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tFY29tbWVyY2VDYXJ0VXBkYXRlTWF0b21vUHJvcGVydGllcyB7XG4gIC8qKiBAY2xhc3MgVHJhY2tFY29tbWVyY2VDYXJ0VXBkYXRlTWF0b21vUHJvcGVydGllcyAqL1xuICBncmFuZFRvdGFsOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tFY29tbWVyY2VPcmRlck1hdG9tb1Byb3BlcnRpZXMge1xuICAvKiogQGNsYXNzIFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIG9yZGVySWQ6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBUcmFja0Vjb21tZXJjZU9yZGVyTWF0b21vUHJvcGVydGllcyAqL1xuICBncmFuZFRvdGFsOiBzdHJpbmc7XG4gIC8qKiBAY2xhc3MgVHJhY2tFY29tbWVyY2VPcmRlck1hdG9tb1Byb3BlcnRpZXMgKi9cbiAgc3ViVG90YWw6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBUcmFja0Vjb21tZXJjZU9yZGVyTWF0b21vUHJvcGVydGllcyAqL1xuICB0YXg6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBUcmFja0Vjb21tZXJjZU9yZGVyTWF0b21vUHJvcGVydGllcyAqL1xuICBzaGlwcGluZzogc3RyaW5nO1xuICAvKiogQGNsYXNzIFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIGRpc2NvdW50OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tMaW5rTWF0b21vUHJvcGVydGllcyB7XG4gIC8qKiBAY2xhc3MgVHJhY2tMaW5rTWF0b21vUHJvcGVydGllcyAqL1xuICB1cmw6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBUcmFja0xpbmtNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIGxpbmtUeXBlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tHb2FsTWF0b21vUHJvcGVydGllcyB7XG4gIC8qKiBAY2xhc3MgVHJhY2tHb2FsTWF0b21vUHJvcGVydGllcyAqL1xuICBnb2FsSWQ6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBUcmFja0dvYWxNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhY2tTaXRlU2VhcmNoTWF0b21vUHJvcGVydGllcyB7XG4gIC8qKiBAY2xhc3MgVHJhY2tTaXRlU2VhcmNoTWF0b21vUHJvcGVydGllcyAqL1xuICBrZXl3b3JkOiBzdHJpbmc7XG4gIC8qKiBAY2xhc3MgVHJhY2tTaXRlU2VhcmNoTWF0b21vUHJvcGVydGllcyAqL1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICAvKiogQGNsYXNzIFRyYWNrU2l0ZVNlYXJjaE1hdG9tb1Byb3BlcnRpZXMgKi9cbiAgc2VhcmNoQ291bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFja0V2ZW50TWF0b21vUHJvcGVydGllcyB7XG4gIC8qKiBAY2xhc3MgVHJhY2tFdmVudE1hdG9tb1Byb3BlcnRpZXMgKi9cbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgLyoqIEBjbGFzcyBUcmFja0V2ZW50TWF0b21vUHJvcGVydGllcyAqL1xuICBuYW1lPzogc3RyaW5nO1xuICAvKiogQGNsYXNzIFRyYWNrRXZlbnRNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIGxhYmVsPzogc3RyaW5nO1xuICAvKiogQGNsYXNzIFRyYWNrRXZlbnRNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIHZhbHVlOiBudW1iZXIgfCBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2V0Q3VzdG9tVmFyaWFibGVNYXRvbW9Qcm9wZXJ0aWVzIGV4dGVuZHMgRGltZW5zaW9uc01hdG9tb1Byb3BlcnRpZXMge1xuICAvKiogQGNsYXNzIFNldEN1c3RvbVZhcmlhYmxlTWF0b21vUHJvcGVydGllcyAqL1xuICBpbmRleDogbnVtYmVyO1xuICAvKiogQGNsYXNzIFNldEN1c3RvbVZhcmlhYmxlTWF0b21vUHJvcGVydGllcyAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBAY2xhc3MgU2V0Q3VzdG9tVmFyaWFibGVNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIHZhbHVlOiBzdHJpbmc7XG4gIC8qKiBAY2xhc3MgU2V0Q3VzdG9tVmFyaWFibGVNYXRvbW9Qcm9wZXJ0aWVzICovXG4gIHNjb3BlOiBTY29wZU1hdG9tbztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVDdXN0b21WYXJpYWJsZU1hdG9tb1Byb3BlcnRpZXMge1xuICAvKiogQGNsYXNzIERlbGV0ZUN1c3RvbVZhcmlhYmxlTWF0b21vUHJvcGVydGllcyAqL1xuICBpbmRleDogbnVtYmVyO1xuICAvKiogQGNsYXNzIERlbGV0ZUN1c3RvbVZhcmlhYmxlTWF0b21vUHJvcGVydGllcyAqL1xuICBzY29wZTogU2NvcGVNYXRvbW87XG59XG5cbmV4cG9ydCB0eXBlIEV2ZW50VHJhY2thY3Rpb25Qcm9wZXJ0aWVzID1cbiAgfCBTZXRFY29tbWVyY2VWaWV3TWF0b21vUHJvcGVydGllc1xuICB8IEFkZEVjb21tZXJjZUl0ZW1Qcm9wZXJ0aWVzXG4gIHwgVHJhY2tFY29tbWVyY2VDYXJ0VXBkYXRlTWF0b21vUHJvcGVydGllc1xuICB8IFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzXG4gIHwgVHJhY2tMaW5rTWF0b21vUHJvcGVydGllc1xuICB8IFRyYWNrR29hbE1hdG9tb1Byb3BlcnRpZXNcbiAgfCBUcmFja1NpdGVTZWFyY2hNYXRvbW9Qcm9wZXJ0aWVzXG4gIHwgVHJhY2tFdmVudE1hdG9tb1Byb3BlcnRpZXM7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQW5ndWxhcnRpY3MyTWF0b21vIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhbmd1bGFydGljczI6IEFuZ3VsYXJ0aWNzMikge1xuICAgIGlmICh0eXBlb2YgX3BhcSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGNvbnNvbGUud2FybignTWF0b21vIG5vdCBmb3VuZCcpO1xuICAgIH1cbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXRVc2VybmFtZS5zdWJzY3JpYmUoKHg6IHN0cmluZykgPT4gdGhpcy5zZXRVc2VybmFtZSh4KSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlclByb3BlcnRpZXMuc3Vic2NyaWJlKCh4OiBTZXRDdXN0b21WYXJpYWJsZU1hdG9tb1Byb3BlcnRpZXMpID0+XG4gICAgICB0aGlzLnNldFVzZXJQcm9wZXJ0aWVzKHgpLFxuICAgICk7XG4gIH1cblxuICBzdGFydFRyYWNraW5nKCk6IHZvaWQge1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnBhZ2VUcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMucGFnZVRyYWNrKHgucGF0aCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLmV2ZW50VHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLmV2ZW50VHJhY2soeC5hY3Rpb24sIHgucHJvcGVydGllcykpO1xuICB9XG5cbiAgcGFnZVRyYWNrKHBhdGg6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgaWYgKCF3aW5kb3cubG9jYXRpb24ub3JpZ2luKSB7XG4gICAgICAgICh3aW5kb3cubG9jYXRpb24gYXMgYW55KS5vcmlnaW4gPVxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArXG4gICAgICAgICAgJy8vJyArXG4gICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lICtcbiAgICAgICAgICAod2luZG93LmxvY2F0aW9uLnBvcnQgPyAnOicgKyB3aW5kb3cubG9jYXRpb24ucG9ydCA6ICcnKTtcbiAgICAgIH1cbiAgICAgIF9wYXEucHVzaChbJ3NldERvY3VtZW50VGl0bGUnLCB0aXRsZSB8fCB3aW5kb3cuZG9jdW1lbnQudGl0bGVdKTtcbiAgICAgIF9wYXEucHVzaChbJ3NldEN1c3RvbVVybCcsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyBwYXRoXSk7XG4gICAgICBfcGFxLnB1c2goWyd0cmFja1BhZ2VWaWV3J10pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXNldFVzZXIoKSB7XG4gICAgdHJ5IHtcbiAgICAgIF9wYXEucHVzaChbJ2FwcGVuZFRvVHJhY2tpbmdVcmwnLCAnbmV3X3Zpc2l0PTEnXSk7IC8vICgxKSBmb3JjZXMgYSBuZXcgdmlzaXRcbiAgICAgIF9wYXEucHVzaChbJ2RlbGV0ZUNvb2tpZXMnXSk7IC8vICgyKSBkZWxldGVzIGV4aXN0aW5nIHRyYWNraW5nIGNvb2tpZXMgdG8gc3RhcnQgdGhlIG5ldyB2aXNpdFxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBldmVudFRyYWNrKGFjdGlvbjogJ3NldEVjb21tZXJjZVZpZXcnLCBwcm9wZXJ0aWVzOiBTZXRFY29tbWVyY2VWaWV3TWF0b21vUHJvcGVydGllcyk6IHZvaWQ7XG4gIGV2ZW50VHJhY2soYWN0aW9uOiAnYWRkRWNvbW1lcmNlSXRlbScsIHByb3BlcnRpZXM6IEFkZEVjb21tZXJjZUl0ZW1Qcm9wZXJ0aWVzKTogdm9pZDtcbiAgZXZlbnRUcmFjayhcbiAgICBhY3Rpb246ICd0cmFja0Vjb21tZXJjZUNhcnRVcGRhdGUnLFxuICAgIHByb3BlcnRpZXM6IFRyYWNrRWNvbW1lcmNlQ2FydFVwZGF0ZU1hdG9tb1Byb3BlcnRpZXMsXG4gICk6IHZvaWQ7XG4gIGV2ZW50VHJhY2soYWN0aW9uOiAndHJhY2tFY29tbWVyY2VPcmRlcicsIHByb3BlcnRpZXM6IFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzKTogdm9pZDtcbiAgZXZlbnRUcmFjayhhY3Rpb246ICd0cmFja0xpbmsnLCBwcm9wZXJ0aWVzOiBUcmFja0xpbmtNYXRvbW9Qcm9wZXJ0aWVzKTogdm9pZDtcbiAgZXZlbnRUcmFjayhhY3Rpb246ICd0cmFja0dvYWwnLCBwcm9wZXJ0aWVzOiBUcmFja0dvYWxNYXRvbW9Qcm9wZXJ0aWVzKTogdm9pZDtcbiAgZXZlbnRUcmFjayhhY3Rpb246ICd0cmFja1NpdGVTZWFyY2gnLCBwcm9wZXJ0aWVzOiBUcmFja1NpdGVTZWFyY2hNYXRvbW9Qcm9wZXJ0aWVzKTogdm9pZDtcbiAgZXZlbnRUcmFjayhhY3Rpb246IHN0cmluZywgcHJvcGVydGllczogVHJhY2tFdmVudE1hdG9tb1Byb3BlcnRpZXMpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBUcmFjayBhIGJhc2ljIGV2ZW50IGluIE1hdG9tbywgb3Igc2VuZCBhbiBlY29tbWVyY2UgZXZlbnQuXG4gICAqXG4gICAqIEBwYXJhbSBhY3Rpb24gQSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBvZiBldmVudCB0aGF0IG5lZWRzIHRvIGJlIHRyYWNrZWQuXG4gICAqIEBwYXJhbSBwcm9wZXJ0aWVzIFRoZSBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBsb2dnZWQgd2l0aCB0aGUgZXZlbnQuXG4gICAqL1xuICBldmVudFRyYWNrKGFjdGlvbjogRXZlbnRUcmFja0FjdGlvbiwgcHJvcGVydGllcz86IEV2ZW50VHJhY2thY3Rpb25Qcm9wZXJ0aWVzKSB7XG4gICAgbGV0IHBhcmFtcyA9IFtdO1xuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBTZXRzIHRoZSBjdXJyZW50IHBhZ2UgdmlldyBhcyBhIHByb2R1Y3Qgb3IgY2F0ZWdvcnkgcGFnZSB2aWV3LiBXaGVuIHlvdSBjYWxsXG4gICAgICAgKiBzZXRFY29tbWVyY2VWaWV3IGl0IG11c3QgYmUgZm9sbG93ZWQgYnkgYSBjYWxsIHRvIHRyYWNrUGFnZVZpZXcgdG8gcmVjb3JkIHRoZSBwcm9kdWN0IG9yXG4gICAgICAgKiBjYXRlZ29yeSBwYWdlIHZpZXcuXG4gICAgICAgKlxuICAgICAgICogQGxpbmsgaHR0cHM6Ly9tYXRvbW8ub3JnL2RvY3MvZWNvbW1lcmNlLWFuYWx5dGljcy8jdHJhY2tpbmctcHJvZHVjdC1wYWdlLXZpZXdzLWNhdGVnb3J5LXBhZ2Utdmlld3Mtb3B0aW9uYWxcbiAgICAgICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1hdG9tby5vcmcvYXBpLXJlZmVyZW5jZS90cmFja2luZy1qYXZhc2NyaXB0I2Vjb21tZXJjZVxuICAgICAgICpcbiAgICAgICAqIEBwcm9wZXJ0eSBwcm9kdWN0U0tVIChyZXF1aXJlZCkgU0tVOiBQcm9kdWN0IHVuaXF1ZSBpZGVudGlmaWVyXG4gICAgICAgKiBAcHJvcGVydHkgcHJvZHVjdE5hbWUgKG9wdGlvbmFsKSBQcm9kdWN0IG5hbWVcbiAgICAgICAqIEBwcm9wZXJ0eSBjYXRlZ29yeU5hbWUgKG9wdGlvbmFsKSBQcm9kdWN0IGNhdGVnb3J5LCBvciBhcnJheSBvZiB1cCB0byA1IGNhdGVnb3JpZXNcbiAgICAgICAqIEBwcm9wZXJ0eSBwcmljZSAob3B0aW9uYWwpIFByb2R1Y3QgUHJpY2UgYXMgZGlzcGxheWVkIG9uIHRoZSBwYWdlXG4gICAgICAgKi9cbiAgICAgIGNhc2UgJ3NldEVjb21tZXJjZVZpZXcnOlxuICAgICAgICBwYXJhbXMgPSBbXG4gICAgICAgICAgJ3NldEVjb21tZXJjZVZpZXcnLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFNldEVjb21tZXJjZVZpZXdNYXRvbW9Qcm9wZXJ0aWVzKS5wcm9kdWN0U0tVLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFNldEVjb21tZXJjZVZpZXdNYXRvbW9Qcm9wZXJ0aWVzKS5wcm9kdWN0TmFtZSxcbiAgICAgICAgICAocHJvcGVydGllcyBhcyBTZXRFY29tbWVyY2VWaWV3TWF0b21vUHJvcGVydGllcykuY2F0ZWdvcnlOYW1lLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFNldEVjb21tZXJjZVZpZXdNYXRvbW9Qcm9wZXJ0aWVzKS5wcmljZSxcbiAgICAgICAgXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIEFkZHMgYSBwcm9kdWN0IGludG8gdGhlIGVjb21tZXJjZSBvcmRlci4gTXVzdCBiZSBjYWxsZWQgZm9yIGVhY2ggcHJvZHVjdCBpblxuICAgICAgICogdGhlIG9yZGVyLlxuICAgICAgICpcbiAgICAgICAqIEBsaW5rIGh0dHBzOi8vbWF0b21vLm9yZy9kb2NzL2Vjb21tZXJjZS1hbmFseXRpY3MvI3RyYWNraW5nLWVjb21tZXJjZS1vcmRlcnMtaXRlbXMtcHVyY2hhc2VkLXJlcXVpcmVkXG4gICAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tYXRvbW8ub3JnL2FwaS1yZWZlcmVuY2UvdHJhY2tpbmctamF2YXNjcmlwdCNlY29tbWVyY2VcbiAgICAgICAqXG4gICAgICAgKiBAcHJvcGVydHkgcHJvZHVjdFNLVSAocmVxdWlyZWQpIFNLVTogUHJvZHVjdCB1bmlxdWUgaWRlbnRpZmllclxuICAgICAgICogQHByb3BlcnR5IHByb2R1Y3ROYW1lIChvcHRpb25hbCkgUHJvZHVjdCBuYW1lXG4gICAgICAgKiBAcHJvcGVydHkgY2F0ZWdvcnlOYW1lIChvcHRpb25hbCkgUHJvZHVjdCBjYXRlZ29yeSwgb3IgYXJyYXkgb2YgdXAgdG8gNSBjYXRlZ29yaWVzXG4gICAgICAgKiBAcHJvcGVydHkgcHJpY2UgKHJlY29tbWVuZGVkKSBQcm9kdWN0IHByaWNlXG4gICAgICAgKiBAcHJvcGVydHkgcXVhbnRpdHkgKG9wdGlvbmFsLCBkZWZhdWx0IHRvIDEpIFByb2R1Y3QgcXVhbnRpdHlcbiAgICAgICAqL1xuICAgICAgY2FzZSAnYWRkRWNvbW1lcmNlSXRlbSc6XG4gICAgICAgIHBhcmFtcyA9IFtcbiAgICAgICAgICAnYWRkRWNvbW1lcmNlSXRlbScsXG4gICAgICAgICAgKHByb3BlcnRpZXMgYXMgQWRkRWNvbW1lcmNlSXRlbVByb3BlcnRpZXMpLnByb2R1Y3RTS1UsXG4gICAgICAgICAgKHByb3BlcnRpZXMgYXMgQWRkRWNvbW1lcmNlSXRlbVByb3BlcnRpZXMpLnByb2R1Y3ROYW1lLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIEFkZEVjb21tZXJjZUl0ZW1Qcm9wZXJ0aWVzKS5wcm9kdWN0Q2F0ZWdvcnksXG4gICAgICAgICAgKHByb3BlcnRpZXMgYXMgQWRkRWNvbW1lcmNlSXRlbVByb3BlcnRpZXMpLnByaWNlLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIEFkZEVjb21tZXJjZUl0ZW1Qcm9wZXJ0aWVzKS5xdWFudGl0eSxcbiAgICAgICAgXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRyYWNrcyBhIHNob3BwaW5nIGNhcnQuIENhbGwgdGhpcyBqYXZhc2NyaXB0IGZ1bmN0aW9uIGV2ZXJ5IHRpbWUgYSB1c2VyIGlzXG4gICAgICAgKiBhZGRpbmcsIHVwZGF0aW5nIG9yIGRlbGV0aW5nIGEgcHJvZHVjdCBmcm9tIHRoZSBjYXJ0LlxuICAgICAgICpcbiAgICAgICAqIEBsaW5rIGh0dHBzOi8vbWF0b21vLm9yZy9kb2NzL2Vjb21tZXJjZS1hbmFseXRpY3MvI3RyYWNraW5nLWFkZC10by1jYXJ0LWl0ZW1zLWFkZGVkLXRvLXRoZS1jYXJ0LW9wdGlvbmFsXG4gICAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tYXRvbW8ub3JnL2FwaS1yZWZlcmVuY2UvdHJhY2tpbmctamF2YXNjcmlwdCNlY29tbWVyY2VcbiAgICAgICAqXG4gICAgICAgKiBAcHJvcGVydHkgZ3JhbmRUb3RhbCAocmVxdWlyZWQpIENhcnQgYW1vdW50XG4gICAgICAgKi9cbiAgICAgIGNhc2UgJ3RyYWNrRWNvbW1lcmNlQ2FydFVwZGF0ZSc6XG4gICAgICAgIHBhcmFtcyA9IFtcbiAgICAgICAgICAndHJhY2tFY29tbWVyY2VDYXJ0VXBkYXRlJyxcbiAgICAgICAgICAocHJvcGVydGllcyBhcyBUcmFja0Vjb21tZXJjZUNhcnRVcGRhdGVNYXRvbW9Qcm9wZXJ0aWVzKS5ncmFuZFRvdGFsLFxuICAgICAgICBdO1xuICAgICAgICBicmVhaztcblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVzY3JpcHRpb24gVHJhY2tzIGFuIEVjb21tZXJjZSBvcmRlciwgaW5jbHVkaW5nIGFueSBlY29tbWVyY2UgaXRlbSBwcmV2aW91c2x5IGFkZGVkIHRvXG4gICAgICAgKiB0aGUgb3JkZXIuIG9yZGVySWQgYW5kIGdyYW5kVG90YWwgKGllLiByZXZlbnVlKSBhcmUgcmVxdWlyZWQgcGFyYW1ldGVycy5cbiAgICAgICAqXG4gICAgICAgKiBAbGluayBodHRwczovL21hdG9tby5vcmcvZG9jcy9lY29tbWVyY2UtYW5hbHl0aWNzLyN0cmFja2luZy1lY29tbWVyY2Utb3JkZXJzLWl0ZW1zLXB1cmNoYXNlZC1yZXF1aXJlZFxuICAgICAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubWF0b21vLm9yZy9hcGktcmVmZXJlbmNlL3RyYWNraW5nLWphdmFzY3JpcHQjZWNvbW1lcmNlXG4gICAgICAgKlxuICAgICAgICogQHByb3BlcnR5IG9yZGVySWQgKHJlcXVpcmVkKSBVbmlxdWUgT3JkZXIgSURcbiAgICAgICAqIEBwcm9wZXJ0eSBncmFuZFRvdGFsIChyZXF1aXJlZCkgT3JkZXIgUmV2ZW51ZSBncmFuZCB0b3RhbCAoaW5jbHVkZXMgdGF4LCBzaGlwcGluZywgYW5kIHN1YnRyYWN0ZWQgZGlzY291bnQpXG4gICAgICAgKiBAcHJvcGVydHkgc3ViVG90YWwgKG9wdGlvbmFsKSBPcmRlciBzdWIgdG90YWwgKGV4Y2x1ZGVzIHNoaXBwaW5nKVxuICAgICAgICogQHByb3BlcnR5IHRheCAob3B0aW9uYWwpIFRheCBhbW91bnRcbiAgICAgICAqIEBwcm9wZXJ0eSBzaGlwcGluZyAob3B0aW9uYWwpIFNoaXBwaW5nIGFtb3VudFxuICAgICAgICogQHByb3BlcnR5IGRpc2NvdW50IChvcHRpb25hbCkgRGlzY291bnQgb2ZmZXJlZCAoc2V0IHRvIGZhbHNlIGZvciB1bnNwZWNpZmllZCBwYXJhbWV0ZXIpXG4gICAgICAgKi9cbiAgICAgIGNhc2UgJ3RyYWNrRWNvbW1lcmNlT3JkZXInOlxuICAgICAgICBwYXJhbXMgPSBbXG4gICAgICAgICAgJ3RyYWNrRWNvbW1lcmNlT3JkZXInLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzKS5vcmRlcklkLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzKS5ncmFuZFRvdGFsLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzKS5zdWJUb3RhbCxcbiAgICAgICAgICAocHJvcGVydGllcyBhcyBUcmFja0Vjb21tZXJjZU9yZGVyTWF0b21vUHJvcGVydGllcykudGF4LFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrRWNvbW1lcmNlT3JkZXJNYXRvbW9Qcm9wZXJ0aWVzKS5zaGlwcGluZyxcbiAgICAgICAgICAocHJvcGVydGllcyBhcyBUcmFja0Vjb21tZXJjZU9yZGVyTWF0b21vUHJvcGVydGllcykuZGlzY291bnQsXG4gICAgICAgIF07XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBUbyBtYW51YWxseSB0cmlnZ2VyIGFuIG91dGxpbmtcbiAgICAgICAqXG4gICAgICAgKiBAbGluayBodHRwczovL21hdG9tby5vcmcvZG9jcy90cmFja2luZy1nb2Fscy13ZWItYW5hbHl0aWNzL1xuICAgICAgICogQGxpbmsgaHR0cHM6Ly9kZXZlbG9wZXIubWF0b21vLm9yZy9ndWlkZXMvdHJhY2tpbmctamF2YXNjcmlwdC1ndWlkZSN0cmFja2luZy1hLWNsaWNrLWFzLWFuLW91dGxpbmstdmlhLWNzcy1vci1qYXZhc2NyaXB0XG4gICAgICAgKlxuICAgICAgICogQHByb3BlcnR5IHVybCAocmVxdWlyZWQpIGxpbmsgdXJsXG4gICAgICAgKiBAcHJvcGVydHkgbGlua1R5cGUgKG9wdGlvbmFsKSB0eXBlIG9mIGxpbmtcbiAgICAgICAqL1xuICAgICAgY2FzZSAndHJhY2tMaW5rJzpcbiAgICAgICAgcGFyYW1zID0gW1xuICAgICAgICAgICd0cmFja0xpbmsnLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrTGlua01hdG9tb1Byb3BlcnRpZXMpLnVybCxcbiAgICAgICAgICAocHJvcGVydGllcyBhcyBUcmFja0xpbmtNYXRvbW9Qcm9wZXJ0aWVzKS5saW5rVHlwZSxcbiAgICAgICAgXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRyYWNrcyBhbiBFY29tbWVyY2UgZ29hbFxuICAgICAgICpcbiAgICAgICAqIEBsaW5rIGh0dHBzOi8vbWF0b21vLm9yZy9kb2NzL3RyYWNraW5nLWdvYWxzLXdlYi1hbmFseXRpY3MvXG4gICAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tYXRvbW8ub3JnL2d1aWRlcy90cmFja2luZy1qYXZhc2NyaXB0LWd1aWRlI21hbnVhbGx5LXRyaWdnZXItZ29hbC1jb252ZXJzaW9uc1xuICAgICAgICpcbiAgICAgICAqIEBwcm9wZXJ0eSBnb2FsSWQgKHJlcXVpcmVkKSBVbmlxdWUgR29hbCBJRFxuICAgICAgICogQHByb3BlcnR5IHZhbHVlIChvcHRpb25hbCkgcGFzc2VkIHRvIGdvYWwgdHJhY2tpbmdcbiAgICAgICAqL1xuICAgICAgY2FzZSAndHJhY2tHb2FsJzpcbiAgICAgICAgcGFyYW1zID0gW1xuICAgICAgICAgICd0cmFja0dvYWwnLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrR29hbE1hdG9tb1Byb3BlcnRpZXMpLmdvYWxJZCxcbiAgICAgICAgICAocHJvcGVydGllcyBhcyBUcmFja0dvYWxNYXRvbW9Qcm9wZXJ0aWVzKS52YWx1ZSxcbiAgICAgICAgXTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIC8qKlxuICAgICAgICogQGRlc2NyaXB0aW9uIFRyYWNrcyBhIHNpdGUgc2VhcmNoXG4gICAgICAgKlxuICAgICAgICogQGxpbmsgaHR0cHM6Ly9tYXRvbW8ub3JnL2RvY3Mvc2l0ZS1zZWFyY2gvXG4gICAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tYXRvbW8ub3JnL2d1aWRlcy90cmFja2luZy1qYXZhc2NyaXB0LWd1aWRlI2ludGVybmFsLXNlYXJjaC10cmFja2luZ1xuICAgICAgICpcbiAgICAgICAqIEBwcm9wZXJ0eSBrZXl3b3JkIChyZXF1aXJlZCkgS2V5d29yZCBzZWFyY2hlZCBmb3JcbiAgICAgICAqIEBwcm9wZXJ0eSBjYXRlZ29yeSAob3B0aW9uYWwpIFNlYXJjaCBjYXRlZ29yeVxuICAgICAgICogQHByb3BlcnR5IHNlYXJjaENvdW50IChvcHRpb25hbCkgTnVtYmVyIG9mIHJlc3VsdHNcbiAgICAgICAqL1xuICAgICAgY2FzZSAndHJhY2tTaXRlU2VhcmNoJzpcbiAgICAgICAgcGFyYW1zID0gW1xuICAgICAgICAgICd0cmFja1NpdGVTZWFyY2gnLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrU2l0ZVNlYXJjaE1hdG9tb1Byb3BlcnRpZXMpLmtleXdvcmQsXG4gICAgICAgICAgKHByb3BlcnRpZXMgYXMgVHJhY2tTaXRlU2VhcmNoTWF0b21vUHJvcGVydGllcykuY2F0ZWdvcnksXG4gICAgICAgICAgKHByb3BlcnRpZXMgYXMgVHJhY2tTaXRlU2VhcmNoTWF0b21vUHJvcGVydGllcykuc2VhcmNoQ291bnQsXG4gICAgICAgIF07XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICAvKipcbiAgICAgICAqIEBkZXNjcmlwdGlvbiBMb2dzIGFuIGV2ZW50IHdpdGggYW4gZXZlbnQgY2F0ZWdvcnkgKFZpZGVvcywgTXVzaWMsIEdhbWVzLi4uKSwgYW4gZXZlbnRcbiAgICAgICAqIGFjdGlvbiAoUGxheSwgUGF1c2UsIER1cmF0aW9uLCBBZGQgUGxheWxpc3QsIERvd25sb2FkZWQsIENsaWNrZWQuLi4pLCBhbmQgYW4gb3B0aW9uYWxcbiAgICAgICAqIGV2ZW50IG5hbWUgYW5kIG9wdGlvbmFsIG51bWVyaWMgdmFsdWUuXG4gICAgICAgKlxuICAgICAgICogQGxpbmsgaHR0cHM6Ly9tYXRvbW8ub3JnL2RvY3MvZXZlbnQtdHJhY2tpbmcvXG4gICAgICAgKiBAbGluayBodHRwczovL2RldmVsb3Blci5tYXRvbW8ub3JnL2FwaS1yZWZlcmVuY2UvdHJhY2tpbmctamF2YXNjcmlwdCN1c2luZy10aGUtdHJhY2tlci1vYmplY3RcbiAgICAgICAqXG4gICAgICAgKiBAcHJvcGVydHkgY2F0ZWdvcnlcbiAgICAgICAqIEBwcm9wZXJ0eSBhY3Rpb25cbiAgICAgICAqIEBwcm9wZXJ0eSBuYW1lIChvcHRpb25hbCwgcmVjb21tZW5kZWQpXG4gICAgICAgKiBAcHJvcGVydHkgdmFsdWUgKG9wdGlvbmFsKVxuICAgICAgICovXG4gICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBQQVEgcmVxdWlyZXMgdGhhdCBldmVudFZhbHVlIGJlIGFuIGludGVnZXIsIHNlZTogaHR0cDovL21hdG9tby5vcmcvZG9jcy9ldmVudC10cmFja2luZ1xuICAgICAgICBpZiAoKHByb3BlcnRpZXMgYXMgVHJhY2tFdmVudE1hdG9tb1Byb3BlcnRpZXMpLnZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQoKHByb3BlcnRpZXMgYXMgVHJhY2tFdmVudE1hdG9tb1Byb3BlcnRpZXMpLnZhbHVlIGFzIGFueSwgMTApO1xuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrRXZlbnRNYXRvbW9Qcm9wZXJ0aWVzKS52YWx1ZSA9IGlzTmFOKHBhcnNlZCkgPyAwIDogcGFyc2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgcGFyYW1zID0gW1xuICAgICAgICAgICd0cmFja0V2ZW50JyxcbiAgICAgICAgICAocHJvcGVydGllcyBhcyBUcmFja0V2ZW50TWF0b21vUHJvcGVydGllcykuY2F0ZWdvcnksXG4gICAgICAgICAgYWN0aW9uLFxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrRXZlbnRNYXRvbW9Qcm9wZXJ0aWVzKS5uYW1lIHx8XG4gICAgICAgICAgICAocHJvcGVydGllcyBhcyBUcmFja0V2ZW50TWF0b21vUHJvcGVydGllcykubGFiZWwsIC8vIENoYW5nZWQgaW4gZmF2b3VyIG9mIE1hdG9tbyBkb2N1bWVudGF0aW9uLiBBZGRlZCBmYWxsYmFjayBzbyBpdCdzIGJhY2t3YXJkcyBjb21wYXRpYmxlLlxuICAgICAgICAgIChwcm9wZXJ0aWVzIGFzIFRyYWNrRXZlbnRNYXRvbW9Qcm9wZXJ0aWVzKS52YWx1ZSxcbiAgICAgICAgXTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIF9wYXEucHVzaChwYXJhbXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRVc2VybmFtZSh1c2VySWQ6IHN0cmluZyB8IGJvb2xlYW4pIHtcbiAgICB0cnkge1xuICAgICAgX3BhcS5wdXNoKFsnc2V0VXNlcklkJywgdXNlcklkXSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIGN1c3RvbSBkaW1lbnNpb25zIGlmIGF0IGxlYXN0IG9uZSBwcm9wZXJ0eSBoYXMgdGhlIGtleSBcImRpbWVuc2lvbjxuPlwiLFxuICAgKiBlLmcuIGRpbWVuc2lvbjEwLiBJZiB0aGVyZSBhcmUgY3VzdG9tIGRpbWVuc2lvbnMsIGFueSBvdGhlciBwcm9wZXJ0eSBpcyBpZ25vcmVkLlxuICAgKlxuICAgKiBJZiB0aGVyZSBhcmUgbm8gY3VzdG9tIGRpbWVuc2lvbnMgaW4gdGhlIGdpdmVuIHByb3BlcnRpZXMgb2JqZWN0LCB0aGUgcHJvcGVydGllc1xuICAgKiBvYmplY3QgaXMgc2F2ZWQgYXMgYSBjdXN0b20gdmFyaWFibGUuXG4gICAqXG4gICAqIElmIGluIGRvdWJ0LCBwcmVmZXIgY3VzdG9tIGRpbWVuc2lvbnMuXG4gICAqIEBsaW5rIGh0dHBzOi8vbWF0b21vLm9yZy9kb2NzL2N1c3RvbS12YXJpYWJsZXMvXG4gICAqL1xuICBzZXRVc2VyUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBTZXRDdXN0b21WYXJpYWJsZU1hdG9tb1Byb3BlcnRpZXMpIHtcbiAgICBjb25zdCBkaW1lbnNpb25zID0gdGhpcy5zZXRDdXN0b21EaW1lbnNpb25zKHByb3BlcnRpZXMpO1xuICAgIHRyeSB7XG4gICAgICBpZiAoZGltZW5zaW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgX3BhcS5wdXNoKFtcbiAgICAgICAgICAnc2V0Q3VzdG9tVmFyaWFibGUnLFxuICAgICAgICAgIHByb3BlcnRpZXMuaW5kZXgsXG4gICAgICAgICAgcHJvcGVydGllcy5uYW1lLFxuICAgICAgICAgIHByb3BlcnRpZXMudmFsdWUsXG4gICAgICAgICAgcHJvcGVydGllcy5zY29wZSxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB5b3UgY3JlYXRlZCBhIGN1c3RvbSB2YXJpYWJsZSBhbmQgdGhlbiBkZWNpZGUgdG8gcmVtb3ZlIHRoaXMgdmFyaWFibGUgZnJvbVxuICAgKiBhIHZpc2l0IG9yIHBhZ2UgdmlldywgeW91IGNhbiB1c2UgZGVsZXRlQ3VzdG9tVmFyaWFibGUuXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZGV2ZWxvcGVyLm1hdG9tby5vcmcvZ3VpZGVzL3RyYWNraW5nLWphdmFzY3JpcHQtZ3VpZGUjZGVsZXRpbmctYS1jdXN0b20tdmFyaWFibGVcbiAgICovXG4gIGRlbGV0ZWRVc2VyUHJvcGVydGllcyhwcm9wZXJ0aWVzOiBEZWxldGVDdXN0b21WYXJpYWJsZU1hdG9tb1Byb3BlcnRpZXMpIHtcbiAgICB0cnkge1xuICAgICAgX3BhcS5wdXNoKFsnZGVsZXRlQ3VzdG9tVmFyaWFibGUnLCBwcm9wZXJ0aWVzLmluZGV4LCBwcm9wZXJ0aWVzLnNjb3BlXSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q3VzdG9tRGltZW5zaW9ucyhwcm9wZXJ0aWVzOiBTZXRDdXN0b21WYXJpYWJsZU1hdG9tb1Byb3BlcnRpZXMpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZGltZW5zaW9uUmVnZXg6IFJlZ0V4cCA9IC9kaW1lbnNpb25bMS05XVxcZCovO1xuICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5maWx0ZXIoa2V5ID0+IGRpbWVuc2lvblJlZ2V4LmV4ZWMoa2V5KSk7XG4gICAgZGltZW5zaW9ucy5mb3JFYWNoKGRpbWVuc2lvbiA9PiB7XG4gICAgICBjb25zdCBudW1iZXIgPSBOdW1iZXIoZGltZW5zaW9uLnN1YnN0cig5KSk7XG4gICAgICBfcGFxLnB1c2goWydzZXRDdXN0b21EaW1lbnNpb24nLCBudW1iZXIsIHByb3BlcnRpZXNbZGltZW5zaW9uXV0pO1xuICAgIH0pO1xuICAgIHJldHVybiBkaW1lbnNpb25zO1xuICB9XG59XG4iXX0=
@@ -1,111 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Angulartics2 } from '../../angulartics2-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../angulartics2-core";
5
- export class Angulartics2Mixpanel {
6
- constructor(angulartics2) {
7
- this.angulartics2 = angulartics2;
8
- this.angulartics2.setUsername.subscribe((x) => this.setUsername(x));
9
- this.angulartics2.setUserProperties.subscribe(x => this.setUserProperties(x));
10
- this.angulartics2.setUserPropertiesOnce.subscribe(x => this.setUserPropertiesOnce(x));
11
- this.angulartics2.setSuperProperties.subscribe(x => this.setSuperProperties(x));
12
- this.angulartics2.setSuperPropertiesOnce.subscribe(x => this.setSuperPropertiesOnce(x));
13
- this.angulartics2.setAlias.subscribe(x => this.setAlias(x));
14
- }
15
- startTracking() {
16
- this.angulartics2.pageTrack
17
- .pipe(this.angulartics2.filterDeveloperMode())
18
- .subscribe(x => this.pageTrack(x.path));
19
- this.angulartics2.eventTrack
20
- .pipe(this.angulartics2.filterDeveloperMode())
21
- .subscribe(x => this.eventTrack(x.action, x.properties));
22
- }
23
- pageTrack(path) {
24
- try {
25
- mixpanel.track('Page Viewed', { page: path });
26
- }
27
- catch (e) {
28
- if (!(e instanceof ReferenceError)) {
29
- throw e;
30
- }
31
- }
32
- }
33
- eventTrack(action, properties) {
34
- try {
35
- mixpanel.track(action, properties);
36
- }
37
- catch (e) {
38
- if (!(e instanceof ReferenceError)) {
39
- throw e;
40
- }
41
- }
42
- }
43
- setUsername(userId) {
44
- try {
45
- mixpanel.identify(userId);
46
- }
47
- catch (e) {
48
- if (!(e instanceof ReferenceError)) {
49
- throw e;
50
- }
51
- }
52
- }
53
- setUserProperties(properties) {
54
- try {
55
- mixpanel.people.set(properties);
56
- }
57
- catch (e) {
58
- if (!(e instanceof ReferenceError)) {
59
- throw e;
60
- }
61
- }
62
- }
63
- setUserPropertiesOnce(properties) {
64
- try {
65
- mixpanel.people.set_once(properties);
66
- }
67
- catch (e) {
68
- if (!(e instanceof ReferenceError)) {
69
- throw e;
70
- }
71
- }
72
- }
73
- setSuperProperties(properties) {
74
- try {
75
- mixpanel.register(properties);
76
- }
77
- catch (e) {
78
- if (!(e instanceof ReferenceError)) {
79
- throw e;
80
- }
81
- }
82
- }
83
- setSuperPropertiesOnce(properties) {
84
- try {
85
- mixpanel.register_once(properties);
86
- }
87
- catch (e) {
88
- if (!(e instanceof ReferenceError)) {
89
- throw e;
90
- }
91
- }
92
- }
93
- setAlias(alias) {
94
- try {
95
- mixpanel.alias(alias);
96
- }
97
- catch (e) {
98
- if (!(e instanceof ReferenceError)) {
99
- throw e;
100
- }
101
- }
102
- }
103
- }
104
- Angulartics2Mixpanel.ɵprov = i0.ɵɵdefineInjectable({ factory: function Angulartics2Mixpanel_Factory() { return new Angulartics2Mixpanel(i0.ɵɵinject(i1.Angulartics2)); }, token: Angulartics2Mixpanel, providedIn: "root" });
105
- Angulartics2Mixpanel.decorators = [
106
- { type: Injectable, args: [{ providedIn: 'root' },] }
107
- ];
108
- Angulartics2Mixpanel.ctorParameters = () => [
109
- { type: Angulartics2 }
110
- ];
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWl4cGFuZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3Byb3ZpZGVycy9taXhwYW5lbC9taXhwYW5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBS3ZELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVB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Q0FBQztJQUVELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUk7WUFDRixRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZCO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksY0FBYyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtJQUNILENBQUM7Ozs7WUFsR0YsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7O1lBSnpCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFuZ3VsYXJ0aWNzMiB9IGZyb20gJy4uLy4uL2FuZ3VsYXJ0aWNzMi1jb3JlJztcblxuZGVjbGFyZSB2YXIgbWl4cGFuZWw6IGFueTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBbmd1bGFydGljczJNaXhwYW5lbCB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5ndWxhcnRpY3MyOiBBbmd1bGFydGljczIpIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXRVc2VybmFtZS5zdWJzY3JpYmUoKHg6IHN0cmluZykgPT4gdGhpcy5zZXRVc2VybmFtZSh4KSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlclByb3BlcnRpZXMuc3Vic2NyaWJlKHggPT4gdGhpcy5zZXRVc2VyUHJvcGVydGllcyh4KSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuc2V0VXNlclByb3BlcnRpZXNPbmNlLnN1YnNjcmliZSh4ID0+IHRoaXMuc2V0VXNlclByb3BlcnRpZXNPbmNlKHgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXRTdXBlclByb3BlcnRpZXMuc3Vic2NyaWJlKHggPT4gdGhpcy5zZXRTdXBlclByb3BlcnRpZXMoeCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFN1cGVyUHJvcGVydGllc09uY2Uuc3Vic2NyaWJlKHggPT4gdGhpcy5zZXRTdXBlclByb3BlcnRpZXNPbmNlKHgpKTtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXRBbGlhcy5zdWJzY3JpYmUoeCA9PiB0aGlzLnNldEFsaWFzKHgpKTtcbiAgfVxuXG4gIHN0YXJ0VHJhY2tpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5hbmd1bGFydGljczIucGFnZVRyYWNrXG4gICAgICAucGlwZSh0aGlzLmFuZ3VsYXJ0aWNzMi5maWx0ZXJEZXZlbG9wZXJNb2RlKCkpXG4gICAgICAuc3Vic2NyaWJlKHggPT4gdGhpcy5wYWdlVHJhY2soeC5wYXRoKSk7XG4gICAgdGhpcy5hbmd1bGFydGljczIuZXZlbnRUcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMuZXZlbnRUcmFjayh4LmFjdGlvbiwgeC5wcm9wZXJ0aWVzKSk7XG4gIH1cblxuICBwYWdlVHJhY2socGF0aDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1peHBhbmVsLnRyYWNrKCdQYWdlIFZpZXdlZCcsIHsgcGFnZTogcGF0aCB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgUmVmZXJlbmNlRXJyb3IpKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZXZlbnRUcmFjayhhY3Rpb246IHN0cmluZywgcHJvcGVydGllczogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIG1peHBhbmVsLnRyYWNrKGFjdGlvbiwgcHJvcGVydGllcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFVzZXJuYW1lKHVzZXJJZDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIG1peHBhbmVsLmlkZW50aWZ5KHVzZXJJZCk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFVzZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICBtaXhwYW5lbC5wZW9wbGUuc2V0KHByb3BlcnRpZXMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghKGUgaW5zdGFuY2VvZiBSZWZlcmVuY2VFcnJvcikpIHtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRVc2VyUHJvcGVydGllc09uY2UocHJvcGVydGllczogYW55KSB7XG4gICAgdHJ5IHtcbiAgICAgIG1peHBhbmVsLnBlb3BsZS5zZXRfb25jZShwcm9wZXJ0aWVzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgUmVmZXJlbmNlRXJyb3IpKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0U3VwZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXM6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICBtaXhwYW5lbC5yZWdpc3Rlcihwcm9wZXJ0aWVzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgUmVmZXJlbmNlRXJyb3IpKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0U3VwZXJQcm9wZXJ0aWVzT25jZShwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0cnkge1xuICAgICAgbWl4cGFuZWwucmVnaXN0ZXJfb25jZShwcm9wZXJ0aWVzKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgUmVmZXJlbmNlRXJyb3IpKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0QWxpYXMoYWxpYXM6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICBtaXhwYW5lbC5hbGlhcyhhbGlhcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19
@@ -1,67 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { Angulartics2 } from '../../angulartics2-core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "../../angulartics2-core";
5
- export class Angulartics2Pyze {
6
- constructor(angulartics2) {
7
- this.angulartics2 = angulartics2;
8
- this.angulartics2.setUsername.subscribe((x) => this.setUserId(x));
9
- this.angulartics2.setUserProperties.subscribe(x => this.postTraits(x));
10
- }
11
- startTracking() {
12
- this.angulartics2.pageTrack
13
- .pipe(this.angulartics2.filterDeveloperMode())
14
- .subscribe(x => this.pageTrack(x.path));
15
- this.angulartics2.eventTrack
16
- .pipe(this.angulartics2.filterDeveloperMode())
17
- .subscribe(x => this.eventTrack(x.action, x.properties));
18
- }
19
- pageTrack(path) {
20
- try {
21
- Pyze.postPageView('Page Viewed', { page: path });
22
- }
23
- catch (e) {
24
- if (!(e instanceof ReferenceError)) {
25
- throw e;
26
- }
27
- }
28
- }
29
- eventTrack(action, properties) {
30
- try {
31
- PyzeEvents.postCustomEventWithAttributes(action, properties);
32
- }
33
- catch (e) {
34
- if (!(e instanceof ReferenceError)) {
35
- throw e;
36
- }
37
- }
38
- }
39
- setUserId(userId) {
40
- try {
41
- PyzeIdentity.setUserIdentifier(userId);
42
- }
43
- catch (e) {
44
- if (!(e instanceof ReferenceError)) {
45
- throw e;
46
- }
47
- }
48
- }
49
- postTraits(properties) {
50
- try {
51
- PyzeIdentity.postTraits(properties);
52
- }
53
- catch (e) {
54
- if (!(e instanceof ReferenceError)) {
55
- throw e;
56
- }
57
- }
58
- }
59
- }
60
- Angulartics2Pyze.ɵprov = i0.ɵɵdefineInjectable({ factory: function Angulartics2Pyze_Factory() { return new Angulartics2Pyze(i0.ɵɵinject(i1.Angulartics2)); }, token: Angulartics2Pyze, providedIn: "root" });
61
- Angulartics2Pyze.decorators = [
62
- { type: Injectable, args: [{ providedIn: 'root' },] }
63
- ];
64
- Angulartics2Pyze.ctorParameters = () => [
65
- { type: Angulartics2 }
66
- ];
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcHJvdmlkZXJzL3B5emUvcHl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBT3ZELE1BQU0sT0FBTyxnQkFBZ0I7SUFDM0IsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVM7YUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM3QyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVTthQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzdDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsSUFBSTtZQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7U0FDbEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxjQUFjLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxDQUFDLENBQUM7YUFDVDtTQUNGO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFjLEVBQUUsVUFBZTtRQUN4QyxJQUFJO1lBQ0YsVUFBVSxDQUFDLDZCQUE2QixDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztTQUM5RDtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLENBQUMsQ0FBQzthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWM7UUFDdEIsSUFBSTtZQUNGLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUN4QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLGNBQWMsQ0FBQyxFQUFFO2dCQUNsQyxNQUFNLENBQUMsQ0FBQzthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQWtCO1FBQzNCLElBQUk7WUFDRixZQUFZLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3JDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksY0FBYyxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sQ0FBQyxDQUFDO2FBQ1Q7U0FDRjtJQUNILENBQUM7Ozs7WUF0REYsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7O1lBTnpCLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFuZ3VsYXJ0aWNzMiB9IGZyb20gJy4uLy4uL2FuZ3VsYXJ0aWNzMi1jb3JlJztcblxuZGVjbGFyZSB2YXIgUHl6ZTogYW55O1xuZGVjbGFyZSB2YXIgUHl6ZUV2ZW50czogYW55O1xuZGVjbGFyZSB2YXIgUHl6ZUlkZW50aXR5OiBhbnk7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQW5ndWxhcnRpY3MyUHl6ZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5ndWxhcnRpY3MyOiBBbmd1bGFydGljczIpIHtcbiAgICB0aGlzLmFuZ3VsYXJ0aWNzMi5zZXRVc2VybmFtZS5zdWJzY3JpYmUoKHg6IHN0cmluZykgPT4gdGhpcy5zZXRVc2VySWQoeCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnNldFVzZXJQcm9wZXJ0aWVzLnN1YnNjcmliZSh4ID0+IHRoaXMucG9zdFRyYWl0cyh4KSk7XG4gIH1cblxuICBzdGFydFRyYWNraW5nKCk6IHZvaWQge1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLnBhZ2VUcmFja1xuICAgICAgLnBpcGUodGhpcy5hbmd1bGFydGljczIuZmlsdGVyRGV2ZWxvcGVyTW9kZSgpKVxuICAgICAgLnN1YnNjcmliZSh4ID0+IHRoaXMucGFnZVRyYWNrKHgucGF0aCkpO1xuICAgIHRoaXMuYW5ndWxhcnRpY3MyLmV2ZW50VHJhY2tcbiAgICAgIC5waXBlKHRoaXMuYW5ndWxhcnRpY3MyLmZpbHRlckRldmVsb3Blck1vZGUoKSlcbiAgICAgIC5zdWJzY3JpYmUoeCA9PiB0aGlzLmV2ZW50VHJhY2soeC5hY3Rpb24sIHgucHJvcGVydGllcykpO1xuICB9XG5cbiAgcGFnZVRyYWNrKHBhdGg6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBQeXplLnBvc3RQYWdlVmlldygnUGFnZSBWaWV3ZWQnLCB7IHBhZ2U6IHBhdGggfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGV2ZW50VHJhY2soYWN0aW9uOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueSkge1xuICAgIHRyeSB7XG4gICAgICBQeXplRXZlbnRzLnBvc3RDdXN0b21FdmVudFdpdGhBdHRyaWJ1dGVzKGFjdGlvbiwgcHJvcGVydGllcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHNldFVzZXJJZCh1c2VySWQ6IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBQeXplSWRlbnRpdHkuc2V0VXNlcklkZW50aWZpZXIodXNlcklkKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoIShlIGluc3RhbmNlb2YgUmVmZXJlbmNlRXJyb3IpKSB7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcG9zdFRyYWl0cyhwcm9wZXJ0aWVzOiBzdHJpbmcpIHtcbiAgICB0cnkge1xuICAgICAgUHl6ZUlkZW50aXR5LnBvc3RUcmFpdHMocHJvcGVydGllcyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIFJlZmVyZW5jZUVycm9yKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19