@jebgem/model 0.0.77 → 0.0.78

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.
@@ -69,28 +69,28 @@ export class MetricEnumUtil {
69
69
  static title(metric) {
70
70
  let title;
71
71
  if (!metric) {
72
- title = $localize `Unknown`;
72
+ title = `Unknown`;
73
73
  }
74
74
  else {
75
75
  if (!title) {
76
76
  switch (metric) {
77
77
  case MetricEnum.SCREEN_PAGE_VIEWS:
78
- title = $localize `Views`;
78
+ title = `Views`;
79
79
  break;
80
80
  case MetricEnum.ITEM_VIEW_EVENTS:
81
- title = $localize `Product views`;
81
+ title = `Product views`;
82
82
  break;
83
83
  case MetricEnum.ITEM_VIEW_EVENTS_PER_DAY:
84
- title = $localize `Product views per day`;
84
+ title = `Product views per day`;
85
85
  break;
86
86
  case MetricEnum.ECOMMERCE_PURCHASES:
87
- title = $localize `Purchases`;
87
+ title = `Purchases`;
88
88
  break;
89
89
  case MetricEnum.PURCHASE_REVENUE:
90
- title = $localize `Revenue`;
90
+ title = `Revenue`;
91
91
  break;
92
92
  case MetricEnum.ECOMMERCE_PURCHASES_PER_DAY:
93
- title = $localize `Purchases per day`;
93
+ title = `Purchases per day`;
94
94
  break;
95
95
  }
96
96
  if (!title) {
@@ -121,16 +121,16 @@ export class MetricEnumUtil {
121
121
  // TODO: fix up
122
122
  switch (metric) {
123
123
  case MetricEnum.SCREEN_PAGE_VIEWS:
124
- str = $localize `Your current **${metricTitle}** is **${currentDisplay}**. This is the top of your funnel, where users first engage with your content. To increase visibility, we suggest setting a target of **${suggestedTargetDisplay}**. This will help attract more potential customers to your site.`;
124
+ str = `Your current **${metricTitle}** is **${currentDisplay}**. This is the top of your funnel, where users first engage with your content. To increase visibility, we suggest setting a target of **${suggestedTargetDisplay}**. This will help attract more potential customers to your site.`;
125
125
  break;
126
126
  case MetricEnum.ITEM_VIEW_EVENTS:
127
- str = $localize `You're currently seeing **${currentDisplay}** **${metricTitle}**. This is where users start showing interest in specific products. To turn more of those views into actions, we suggest setting a target of **${suggestedTargetDisplay}**. The more engaged they are, the more likely they'll add items to their cart.`;
127
+ str = `You're currently seeing **${currentDisplay}** **${metricTitle}**. This is where users start showing interest in specific products. To turn more of those views into actions, we suggest setting a target of **${suggestedTargetDisplay}**. The more engaged they are, the more likely they'll add items to their cart.`;
128
128
  break;
129
129
  case MetricEnum.ADD_TO_CARTS:
130
- str = $localize `Right now, your **${metricTitle}** is at **${currentDisplay}**. This step is crucial as it shows serious buying intent. To encourage more customers to take this step, consider setting a target of **${suggestedTargetDisplay}**. Small increases here can significantly impact your overall sales.`;
130
+ str = `Right now, your **${metricTitle}** is at **${currentDisplay}**. This step is crucial as it shows serious buying intent. To encourage more customers to take this step, consider setting a target of **${suggestedTargetDisplay}**. Small increases here can significantly impact your overall sales.`;
131
131
  break;
132
132
  case MetricEnum.PURCHASE_REVENUE:
133
- str = $localize `Your current **${metricTitle}** is **${currentDisplay}**. This is the ultimate goal—converting interest into sales. We suggest aiming for a target of **${suggestedTargetDisplay}** to drive more revenue. Every small improvement along the funnel adds up to big gains here.`;
133
+ str = `Your current **${metricTitle}** is **${currentDisplay}**. This is the ultimate goal—converting interest into sales. We suggest aiming for a target of **${suggestedTargetDisplay}** to drive more revenue. Every small improvement along the funnel adds up to big gains here.`;
134
134
  break;
135
135
  }
136
136
  return str;
@@ -320,82 +320,82 @@ export class MetricEnumUtil {
320
320
  let definition;
321
321
  switch (metric) {
322
322
  case MetricEnum.ACTIVE_USERS:
323
- definition = $localize `The number of unique users who engaged with your site or app in a specified date range.`;
323
+ definition = `The number of unique users who engaged with your site or app in a specified date range.`;
324
324
  break;
325
325
  case MetricEnum.NEW_USERS:
326
- definition = $localize `The number of new unique users who visits your website or app for the first time during a specified period.`;
326
+ definition = `The number of new unique users who visits your website or app for the first time during a specified period.`;
327
327
  break;
328
328
  case MetricEnum.BOUNCE_RATE:
329
- definition = $localize `The percentage of sessions that end after a single page view.`;
329
+ definition = `The percentage of sessions that end after a single page view.`;
330
330
  break;
331
331
  case MetricEnum.SESSIONS:
332
- definition = $localize `A session is a period of time during which a user interacts with your website or app. Analytics calculates the number of sessions that occur on your site or app by estimating the number of unique session IDs.`;
332
+ definition = `A session is a period of time during which a user interacts with your website or app. Analytics calculates the number of sessions that occur on your site or app by estimating the number of unique session IDs.`;
333
333
  break;
334
334
  case MetricEnum.SCREEN_PAGE_VIEWS:
335
- definition = $localize `The number of app screens or web pages your users viewed. Repeated views of a single page or screen are counted.`;
335
+ definition = `The number of app screens or web pages your users viewed. Repeated views of a single page or screen are counted.`;
336
336
  break;
337
337
  case MetricEnum.ITEM_VIEW_EVENTS:
338
- definition = $localize `A count of how many times a user views product details.`;
338
+ definition = `A count of how many times a user views product details.`;
339
339
  break;
340
340
  case MetricEnum.ADD_TO_CARTS:
341
- definition = $localize `The number of times users added products to their shopping carts.`;
341
+ definition = `The number of times users added products to their shopping carts.`;
342
342
  break;
343
343
  case MetricEnum.CHECKOUTS:
344
- definition = $localize `The number of times users started the checkout process.`;
344
+ definition = `The number of times users started the checkout process.`;
345
345
  break;
346
346
  case MetricEnum.ECOMMERCE_PURCHASES:
347
- definition = $localize `The number of times users completed a purchase.`;
347
+ definition = `The number of times users completed a purchase.`;
348
348
  break;
349
349
  case MetricEnum.PURCHASE_REVENUE:
350
- definition = $localize `Purchase revenue shows the total amount of revenue generated from ecommerce and in-app purchases.`;
350
+ definition = `Purchase revenue shows the total amount of revenue generated from ecommerce and in-app purchases.`;
351
351
  break;
352
352
  case MetricEnum.PRODUCT_VIEW_RATE:
353
- definition = $localize `The percentage of sessions where a user views a product. It measures how often visitors engage with product pages relative to overall site activity.`;
353
+ definition = `The percentage of sessions where a user views a product. It measures how often visitors engage with product pages relative to overall site activity.`;
354
354
  break;
355
355
  case MetricEnum.ADD_TO_CART_RATE:
356
- definition = $localize `The percentage of sessions where a user adds a product to their cart. It indicates how frequently visitors take the step toward a purchase during their site visit.`;
356
+ definition = `The percentage of sessions where a user adds a product to their cart. It indicates how frequently visitors take the step toward a purchase during their site visit.`;
357
357
  break;
358
358
  case MetricEnum.ACTIVE_USER_ADD_TO_CART_RATE:
359
- definition = $localize `The percentage of active users who add a product to their cart. It measures how often engaged users—those who interact with your site or app—take the action of adding an item to their cart.`;
359
+ definition = `The percentage of active users who add a product to their cart. It measures how often engaged users—those who interact with your site or app—take the action of adding an item to their cart.`;
360
360
  break;
361
361
  case MetricEnum.VIEW_TO_PRODUCT_VIEW_CONVERSION_RATE:
362
- definition = $localize `The percentage of total page or screen views that result in a product view. It measures how often general site or app visits lead to users specifically viewing a product.`;
362
+ definition = `The percentage of total page or screen views that result in a product view. It measures how often general site or app visits lead to users specifically viewing a product.`;
363
363
  break;
364
364
  case MetricEnum.PRODUCT_VIEW_TO_CART_CONVERSION_RATE:
365
- definition = $localize `The percentage of product views that result in an item being added to the cart. It measures how effectively viewing a product leads to the next step in the purchase funnel.`;
365
+ definition = `The percentage of product views that result in an item being added to the cart. It measures how effectively viewing a product leads to the next step in the purchase funnel.`;
366
366
  break;
367
367
  case MetricEnum.REVENUE_PER_PRODUCT_VIEW:
368
- definition = $localize `The average revenue generated per product view. It measures the monetary value associated with each instance of a user viewing a product, reflecting the effectiveness of product views in driving sales.`;
368
+ definition = `The average revenue generated per product view. It measures the monetary value associated with each instance of a user viewing a product, reflecting the effectiveness of product views in driving sales.`;
369
369
  break;
370
370
  case MetricEnum.REVENUE_PER_ADD_TO_CART:
371
- definition = $localize `The average revenue generated per instance of a product being added to the cart. It measures the monetary value tied to each add-to-cart action, indicating how effectively these actions contribute to overall sales.`;
371
+ definition = `The average revenue generated per instance of a product being added to the cart. It measures the monetary value tied to each add-to-cart action, indicating how effectively these actions contribute to overall sales.`;
372
372
  break;
373
373
  case MetricEnum.ACTIVE_USER_CHECKOUT_RATE:
374
- definition = $localize `The percentage of active users who initiate a checkout It measures how often engaged users—those interacting with your site or app—proceed to the checkout stage of the purchase process.`;
374
+ definition = `The percentage of active users who initiate a checkout It measures how often engaged users—those interacting with your site or app—proceed to the checkout stage of the purchase process.`;
375
375
  break;
376
376
  case MetricEnum.CART_TO_CHECKOUT_CONVERSION_RATE:
377
- definition = $localize `The percentage of add-to-cart actions that result in a checkout being initiated. It measures how effectively adding an item to the cart leads to the user starting the checkout process.`;
377
+ definition = `The percentage of add-to-cart actions that result in a checkout being initiated. It measures how effectively adding an item to the cart leads to the user starting the checkout process.`;
378
378
  break;
379
379
  case MetricEnum.REVENUE_PER_CHECKOUT:
380
- definition = $localize `The average revenue generated per checkout initiation. It measures the monetary value associated with each instance of a user starting the checkout process, reflecting its contribution to overall sales.`;
380
+ definition = `The average revenue generated per checkout initiation. It measures the monetary value associated with each instance of a user starting the checkout process, reflecting its contribution to overall sales.`;
381
381
  break;
382
382
  case MetricEnum.ADD_TO_CART_CONVERSION_RATE:
383
- definition = $localize `The percentage of add-to-cart actions that result in a completed e-commerce purchase. It measures how effectively adding an item to the cart leads to a final sale.`;
383
+ definition = `The percentage of add-to-cart actions that result in a completed e-commerce purchase. It measures how effectively adding an item to the cart leads to a final sale.`;
384
384
  break;
385
385
  case MetricEnum.CHECKOUT_CONVERSION_RATE:
386
- definition = $localize `The percentage of checkout initiations that result in a completed e-commerce purchase. It measures how effectively starting the checkout process leads to a finalized sale.`;
386
+ definition = `The percentage of checkout initiations that result in a completed e-commerce purchase. It measures how effectively starting the checkout process leads to a finalized sale.`;
387
387
  break;
388
388
  case MetricEnum.ECOMMERCE_CONVERSION_RATE:
389
- definition = $localize `The percentage of sessions that result in a completed e-commerce purchase. It measures how often a site visit leads to a finalized sale, reflecting overall effectiveness of the e-commerce funnel.`;
389
+ definition = `The percentage of sessions that result in a completed e-commerce purchase. It measures how often a site visit leads to a finalized sale, reflecting overall effectiveness of the e-commerce funnel.`;
390
390
  break;
391
391
  case MetricEnum.PRODUCT_VIEW_CONVERSION_RATE:
392
- definition = $localize `The percentage of product views that result in a completed e-commerce purchase. It measures how effectively viewing a product leads to a finalized sale.`;
392
+ definition = `The percentage of product views that result in a completed e-commerce purchase. It measures how effectively viewing a product leads to a finalized sale.`;
393
393
  break;
394
394
  case MetricEnum.AVERAGE_ORDER_VALUE:
395
- definition = $localize `The average revenue generated per completed e-commerce purchase. It measures the typical monetary value of each order, providing insight into customer spending behavior.`;
395
+ definition = `The average revenue generated per completed e-commerce purchase. It measures the typical monetary value of each order, providing insight into customer spending behavior.`;
396
396
  break;
397
397
  }
398
398
  return definition;
399
399
  }
400
400
  }
401
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9tb2RlbC9zcmMvbGliL2RhdGEvbWV0cmljLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE1BQU0sQ0FBTixJQUFZLFVBaUVYO0FBakVELFdBQVksVUFBVTtJQUNwQixtQ0FBcUIsQ0FBQTtJQUNyQixtREFBcUMsQ0FBQTtJQUNyQywyQ0FBNkIsQ0FBQTtJQUM3QiwyREFBNkMsQ0FBQTtJQUM3QywyQ0FBNkIsQ0FBQTtJQUM3QiwyREFBNkMsQ0FBQTtJQUM3QyxtREFBcUMsQ0FBQTtJQUNyQyxtRUFBcUQsQ0FBQTtJQUNyRCx5REFBMkMsQ0FBQTtJQUMzQyxxQ0FBdUIsQ0FBQTtJQUN2QixxREFBdUMsQ0FBQTtJQUN2QyxtRUFBcUQsQ0FBQTtJQUNyRCxxREFBdUMsQ0FBQTtJQUN2QyxxRUFBdUQsQ0FBQTtJQUN2RCxpQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBMkIsQ0FBQTtJQUMzQiwyQ0FBNkIsQ0FBQTtJQUM3QiwyREFBNkMsQ0FBQTtJQUM3QyxxQ0FBdUIsQ0FBQTtJQUN2QixxREFBdUMsQ0FBQTtJQUN2Qyx5REFBMkMsQ0FBQTtJQUMzQyx5RUFBMkQsQ0FBQTtJQUMzRCxxRUFBdUQsQ0FBQTtJQUN2RCwrREFBaUQsQ0FBQTtJQUNqRCwrRUFBaUUsQ0FBQTtJQUNqRSxtREFBcUMsQ0FBQTtJQUNyQyxtRUFBcUQsQ0FBQTtJQUNyRCxtREFBcUMsQ0FBQTtJQUNyQyxtRUFBcUQsQ0FBQTtJQUNyRCxpREFBbUMsQ0FBQTtJQUNuQyxpRUFBbUQsQ0FBQTtJQUNuRCw2Q0FBK0IsQ0FB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O2dCQUNsQyxVQUFVLEdBQUcsU0FBUyxDQUFBLDRNQUE0TSxDQUFDO2dCQUNuTyxNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUMsMkJBQTJCO2dCQUN6QyxVQUFVLEdBQUcsU0FBUyxDQUFBLHFLQUFxSyxDQUFDO2dCQUM1TCxNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUMsd0JBQXdCO2dCQUN0QyxVQUFVLEdBQUcsU0FBUyxDQUFBLDZLQUE2SyxDQUFDO2dCQUNwTSxNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUMseUJBQXlCO2dCQUN2QyxVQUFVLEdBQUcsU0FBUyxDQUFBLHFNQUFxTSxDQUFDO2dCQUM1TixNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUMsNEJBQTRCO2dCQUMxQyxVQUFVLEdBQUcsU0FBUyxDQUFBLDBKQUEwSixDQUFDO2dCQUNqTCxNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUMsbUJBQW1CO2dCQUNqQyxVQUFVLEdBQUcsU0FBUyxDQUFBLDJLQUEySyxDQUFDO2dCQUNsTSxNQUFNO1FBQ1YsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YVR5cGVFbnVtfSBmcm9tICcuL2RhdGEtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtOdW1iZXJUeXBlRW51bX0gZnJvbSAnLi9udW1iZXItdHlwZS5lbnVtJztcclxuaW1wb3J0IHtTTkFLRV9UT19DQU1FTH0gZnJvbSAnQGplYmdlbS91dGlsJztcclxuXHJcbmV4cG9ydCBlbnVtIE1ldHJpY0VudW0ge1xyXG4gIFNFU1NJT05TID0gJ1NFU1NJT05TJyxcclxuICBTRVNTSU9OU19QRVJfREFZID0gJ1NFU1NJT05TX1BFUl9EQVknLFxyXG4gIEFDVElWRV9VU0VSUyA9ICdBQ1RJVkVfVVNFUlMnLFxyXG4gIEFDVElWRV9VU0VSU19QRVJfREFZID0gJ0FDVElWRV9VU0VSU19QRVJfREFZJyxcclxuICBUUkFOU0FDVElPTlMgPSAnVFJBTlNBQ1RJT05TJyxcclxuICBUUkFOU0FDVElPTlNfUEVSX0RBWSA9ICdUUkFOU0FDVElPTlNfUEVSX0RBWScsXHJcbiAgUFVSQ0hBU0VfUkVWRU5VRSA9ICdQVVJDSEFTRV9SRVZFTlVFJyxcclxuICBQVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVkgPSAnUFVSQ0hBU0VfUkVWRU5VRV9QRVJfREFZJyxcclxuICBBVkVSQUdFX09SREVSX1ZBTFVFID0gJ0FWRVJBR0VfT1JERVJfVkFMVUUnLFxyXG4gIE5FV19VU0VSUyA9ICdORVdfVVNFUlMnLFxyXG4gIE5FV19VU0VSU19QRVJfREFZID0gJ05FV19VU0VSU19QRVJfREFZJyxcclxuICBVU0VSX0VOR0FHRU1FTlRfRFVSQVRJT04gPSAnVVNFUl9FTkdBR0VNRU5UX0RVUkFUSU9OJyxcclxuICBTQ1JFRU5fUEFHRV9WSUVXUyA9ICdTQ1JFRU5fUEFHRV9WSUVXUycsXHJcbiAgU0NSRUVOX1BBR0VfVklFV1NfUEVSX0RBWSA9ICdTQ1JFRU5fUEFHRV9WSUVXU19QRVJfREFZJyxcclxuICBCT1VOQ0VTID0gJ0JPVU5DRVMnLFxyXG4gIEJPVU5DRV9SQVRFID0gJ0JPVU5DRV9SQVRFJyxcclxuICBBRERfVE9fQ0FSVFMgPSAnQUREX1RPX0NBUlRTJyxcclxuICBBRERfVE9fQ0FSVFNfUEVSX0RBWSA9ICdBRERfVE9fQ0FSVFNfUEVSX0RBWScsXHJcbiAgQ0hFQ0tPVVRTID0gJ0NIRUNLT1VUUycsXHJcbiAgQ0hFQ0tPVVRTX1BFUl9EQVkgPSAnQ0hFQ0tPVVRTX1BFUl9EQVknLFxyXG4gIEVDT01NRVJDRV9QVVJDSEFTRVMgPSAnRUNPTU1FUkNFX1BVUkNIQVNFUycsXHJcbiAgRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZID0gJ0VDT01NRVJDRV9QVVJDSEFTRVNfUEVSX0RBWScsXHJcbiAgRUNPTU1FUkNFX0NPTlZFUlNJT05fUkFURSA9ICdFQ09NTUVSQ0VfQ09OVkVSU0lPTl9SQVRFJyxcclxuICBHUk9TU19QVVJDSEFTRV9SRVZFTlVFID0gJ0dST1NTX1BVUkNIQVNFX1JFVkVOVUUnLFxyXG4gIEdST1NTX1BVUkNIQVNFX1JFVkVOVUVfUEVSX0RBWSA9ICdHUk9TU19QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVknLFxyXG4gIElURU1fVklFV19FVkVOVFMgPSAnSVRFTV9WSUVXX0VWRU5UUycsXHJcbiAgSVRFTV9WSUVXX0VWRU5UU19QRVJfREFZID0gJ0lURU1fVklFV19FVkVOVFNfUEVSX0RBWScsXHJcbiAgUFJPTU9USU9OX0NMSUNLUyA9ICdQUk9NT1RJT05fQ0xJQ0tTJyxcclxuICBQUk9NT1RJT05fQ0xJQ0tTX1BFUl9EQVkgPSAnUFJPTU9USU9OX0NMSUNLU19QRVJfREFZJyxcclxuICBQUk9NT1RJT05fVklFV1MgPSAnUFJPTU9USU9OX1ZJRVdTJyxcclxuICBQUk9NT1RJT05fVklFV1NfUEVSX0RBWSA9ICdQUk9NT1RJT05fVklFV1NfUEVSX0RBWScsXHJcbiAgUkVGVU5EX0FNT1VOVCA9ICdSRUZVTkRfQU1PVU5UJyxcclxuICBTSElQUElOR19BTU9VTlQgPSAnU0hJUFBJTkdfQU1PVU5UJyxcclxuICBUQVhfQU1PVU5UID0gJ1RBWF9BTU9VTlQnLFxyXG5cclxuICBBQ1RJVkVfVVNFUl9BRERfVE9fQ0FSVF9SQVRFID0gJ0FDVElWRV9VU0VSX0FERF9UT19DQVJUX1JBVEUnLFxyXG4gIFJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVyA9ICdSRVZFTlVFX1BFUl9QUk9EVUNUX1ZJRVcnLFxyXG4gIFJFVkVOVUVfUEVSX0FERF9UT19DQVJUID0gJ1JFVkVOVUVfUEVSX0FERF9UT19DQVJUJyxcclxuICBSRVZFTlVFX1BFUl9DSEVDS09VVCA9ICdSRVZFTlVFX1BFUl9DSEVDS09VVCcsXHJcbiAgVklFV19UT19QUk9EVUNUX1ZJRVdfQ09OVkVSU0lPTl9SQVRFID0gJ1ZJRVdfVE9fUFJPRFVDVF9WSUVXX0NPTlZFUlNJT05fUkFURScsXHJcbiAgUFJPRFVDVF9WSUVXX1RPX0NBUlRfQ09OVkVSU0lPTl9SQVRFID0gJ1BST0RVQ1RfVklFV19UT19DQVJUX0NPTlZFUlNJT05fUkFURScsXHJcbiAgQ0FSVF9UT19DSEVDS09VVF9DT05WRVJTSU9OX1JBVEUgPSAnQ0FSVF9UT19DSEVDS09VVF9DT05WRVJTSU9OX1JBVEUnLFxyXG4gIENIRUNLT1VUX1RPX1BVUkNIQVNFX0NPTlZFUlNJT05fUkFURSA9ICdDSEVDS09VVF9UT19QVVJDSEFTRV9DT05WRVJTSU9OX1JBVEUnLFxyXG4gIFBST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEUgPSAnUFJPRFVDVF9WSUVXX0NPTlZFUlNJT05fUkFURScsXHJcbiAgUFJPRFVDVF9WSUVXX1JBVEUgPSAnUFJPRFVDVF9WSUVXX1JBVEUnLFxyXG4gIEFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURSA9ICdBRERfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEUnLFxyXG4gIEFERF9UT19DQVJUX1JBVEUgPSAnQUREX1RPX0NBUlRfUkFURScsXHJcbiAgQ0hFQ0tPVVRfQ09OVkVSU0lPTl9SQVRFID0gJ0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURScsXHJcbiAgQUNUSVZFX1VTRVJfQ0hFQ0tPVVRfUkFURSA9ICdBQ1RJVkVfVVNFUl9DSEVDS09VVF9SQVRFJyxcclxuXHJcbiAgLy8gSXRlbVxyXG4gIEdST1NTX0lURU1fUkVWRU5VRSA9ICdHUk9TU19JVEVNX1JFVkVOVUUnLFxyXG4gIElURU1fRElTQ09VTlRfQU1PVU5UID0gJ0lURU1fRElTQ09VTlRfQU1PVU5UJyxcclxuICBJVEVNX1JFRlVORF9BTU9VTlQgPSAnSVRFTV9SRUZVTkRfQU1PVU5UJyxcclxuICBJVEVNX1JFVkVOVUUgPSAnSVRFTV9SRVZFTlVFJyxcclxuICBJVEVNU19BRERFRF9UT19DQVJUID0gJ0lURU1TX0FEREVEX1RPX0NBUlQnLFxyXG4gIElURU1TX0NIRUNLRURfT1VUID0gJ0lURU1TX0NIRUNLRURfT1VUJyxcclxuICBJVEVNU19DTElDS0VEX0lOX0xJU1QgPSAnSVRFTVNfQ0xJQ0tFRF9JTl9MSVNUJyxcclxuICBJVEVNU19DTElDS0VEX0lOX1BST01PVElPTiA9ICdJVEVNU19DTElDS0VEX0lOX1BST01PVElPTicsXHJcbiAgSVRFTVNfUFVSQ0hBU0VEID0gJ0lURU1TX1BVUkNIQVNFRCcsXHJcbiAgSVRFTVNfVklFV0VEID0gJ0lURU1TX1ZJRVdFRCcsXHJcbiAgSVRFTVNfVklFV0VEX0lOX0xJU1QgPSAnSVRFTVNfVklFV0VEX0lOX0xJU1QnLFxyXG4gIElURU1TX1ZJRVdFRF9JTl9QUk9NT1RJT04gPSAnSVRFTVNfVklFV0VEX0lOX1BST01PVElPTicsXHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWV0cmljRW51bVV0aWwge1xyXG4gIHB1YmxpYyBzdGF0aWMgdGl0bGUoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGxldCB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgaWYgKCFtZXRyaWMpIHtcclxuICAgICAgdGl0bGUgPSAkbG9jYWxpemVgVW5rbm93bmA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRpdGxlKSB7XHJcbiAgICAgICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUzpcclxuICAgICAgICAgICAgdGl0bGUgPSAkbG9jYWxpemVgVmlld3NgO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1ZJRVdfRVZFTlRTOlxyXG4gICAgICAgICAgICB0aXRsZSA9ICRsb2NhbGl6ZWBQcm9kdWN0IHZpZXdzYDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9WSUVXX0VWRU5UU19QRVJfREFZOlxyXG4gICAgICAgICAgICB0aXRsZSA9ICRsb2NhbGl6ZWBQcm9kdWN0IHZpZXdzIHBlciBkYXlgO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5FQ09NTUVSQ0VfUFVSQ0hBU0VTOlxyXG4gICAgICAgICAgICB0aXRsZSA9ICRsb2NhbGl6ZWBQdXJjaGFzZXNgO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFOlxyXG4gICAgICAgICAgICB0aXRsZSA9ICRsb2NhbGl6ZWBSZXZlbnVlYDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZOlxyXG4gICAgICAgICAgICB0aXRsZSA9ICRsb2NhbGl6ZWBQdXJjaGFzZXMgcGVyIGRheWA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRpdGxlKSB7XHJcbiAgICAgICAgICB0aXRsZSA9IGAke1NOQUtFX1RPX0NBTUVMKFxyXG4gICAgICAgICAgICBtZXRyaWMsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBwYXNjYWw6IHRydWUsXHJcbiAgICAgICAgICAgICAgc3BhY2VkOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgKX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLy8gaGFyZGNvZGVkIHVudGlsIHdlIGFkZCBtb3JlIGZ1bm5lbHNcclxuICBwdWJsaWMgc3RhdGljIGZ1bm5lbEZ1bm5lbE1ldHJpY3MoKTogTWV0cmljRW51bVtdIHtcclxuICAgIGNvbnN0IG1ldHJpY3M6IE1ldHJpY0VudW1bXSA9IFtcclxuICAgICAgTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUyxcclxuICAgICAgTWV0cmljRW51bS5JVEVNX1ZJRVdfRVZFTlRTLFxyXG4gICAgICBNZXRyaWNFbnVtLkFERF9UT19DQVJUUyxcclxuICAgICAgTWV0cmljRW51bS5DSEVDS09VVFMsXHJcbiAgICAgIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFUyxcclxuICAgICAgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFLFxyXG4gICAgXTtcclxuICAgIHJldHVybiBtZXRyaWNzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBvbmJvYXJkaW5nVGFyZ2V0TXNnKFxyXG4gICAgbWV0cmljOiBNZXRyaWNFbnVtLFxyXG4gICAgY3VycmVudERpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICAgIHN1Z2dlc3RlZFRhcmdldERpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICApOiBzdHJpbmcge1xyXG4gICAgbGV0IHN0cjogc3RyaW5nID0gJyc7XHJcbiAgICBjb25zdCBtZXRyaWNUaXRsZTogc3RyaW5nID0gTWV0cmljRW51bVV0aWwudGl0bGUobWV0cmljKTtcclxuICAgIC8vIFRPRE86IGZpeCB1cFxyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlNDUkVFTl9QQUdFX1ZJRVdTOlxyXG4gICAgICAgIHN0ciA9ICRsb2NhbGl6ZWBZb3VyIGN1cnJlbnQgKioke21ldHJpY1RpdGxlfSoqIGlzICoqJHtjdXJyZW50RGlzcGxheX0qKi4gVGhpcyBpcyB0aGUgdG9wIG9mIHlvdXIgZnVubmVsLCB3aGVyZSB1c2VycyBmaXJzdCBlbmdhZ2Ugd2l0aCB5b3VyIGNvbnRlbnQuIFRvIGluY3JlYXNlIHZpc2liaWxpdHksIHdlIHN1Z2dlc3Qgc2V0dGluZyBhIHRhcmdldCBvZiAqKiR7c3VnZ2VzdGVkVGFyZ2V0RGlzcGxheX0qKi4gVGhpcyB3aWxsIGhlbHAgYXR0cmFjdCBtb3JlIHBvdGVudGlhbCBjdXN0b21lcnMgdG8geW91ciBzaXRlLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1ZJRVdfRVZFTlRTOlxyXG4gICAgICAgIHN0ciA9ICRsb2NhbGl6ZWBZb3UncmUgY3VycmVudGx5IHNlZWluZyAqKiR7Y3VycmVudERpc3BsYXl9KiogKioke21ldHJpY1RpdGxlfSoqLiBUaGlzIGlzIHdoZXJlIHVzZXJzIHN0YXJ0IHNob3dpbmcgaW50ZXJlc3QgaW4gc3BlY2lmaWMgcHJvZHVjdHMuIFRvIHR1cm4gbW9yZSBvZiB0aG9zZSB2aWV3cyBpbnRvIGFjdGlvbnMsIHdlIHN1Z2dlc3Qgc2V0dGluZyBhIHRhcmdldCBvZiAqKiR7c3VnZ2VzdGVkVGFyZ2V0RGlzcGxheX0qKi4gVGhlIG1vcmUgZW5nYWdlZCB0aGV5IGFyZSwgdGhlIG1vcmUgbGlrZWx5IHRoZXknbGwgYWRkIGl0ZW1zIHRvIHRoZWlyIGNhcnQuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUUzpcclxuICAgICAgICBzdHIgPSAkbG9jYWxpemVgUmlnaHQgbm93LCB5b3VyICoqJHttZXRyaWNUaXRsZX0qKiBpcyBhdCAqKiR7Y3VycmVudERpc3BsYXl9KiouIFRoaXMgc3RlcCBpcyBjcnVjaWFsIGFzIGl0IHNob3dzIHNlcmlvdXMgYnV5aW5nIGludGVudC4gVG8gZW5jb3VyYWdlIG1vcmUgY3VzdG9tZXJzIHRvIHRha2UgdGhpcyBzdGVwLCBjb25zaWRlciBzZXR0aW5nIGEgdGFyZ2V0IG9mICoqJHtzdWdnZXN0ZWRUYXJnZXREaXNwbGF5fSoqLiBTbWFsbCBpbmNyZWFzZXMgaGVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbXBhY3QgeW91ciBvdmVyYWxsIHNhbGVzLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFOlxyXG4gICAgICAgIHN0ciA9ICRsb2NhbGl6ZWBZb3VyIGN1cnJlbnQgKioke21ldHJpY1RpdGxlfSoqIGlzICoqJHtjdXJyZW50RGlzcGxheX0qKi4gVGhpcyBpcyB0aGUgdWx0aW1hdGUgZ29hbOKAlGNvbnZlcnRpbmcgaW50ZXJlc3QgaW50byBzYWxlcy4gV2Ugc3VnZ2VzdCBhaW1pbmcgZm9yIGEgdGFyZ2V0IG9mICoqJHtzdWdnZXN0ZWRUYXJnZXREaXNwbGF5fSoqIHRvIGRyaXZlIG1vcmUgcmV2ZW51ZS4gRXZlcnkgc21hbGwgaW1wcm92ZW1lbnQgYWxvbmcgdGhlIGZ1bm5lbCBhZGRzIHVwIHRvIGJpZyBnYWlucyBoZXJlLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuXHJcbiAgLy8gaGFyZGNvZGVkIHVudGlsIHdlIGFkZCBtb3JlIGZ1bm5lbHNcclxuICBwdWJsaWMgc3RhdGljIHJldmVyc2VGdW5uZWxUYXJnZXRNZXRyaWMoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0sXHJcbiAgKTogTWV0cmljRW51bSB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgZnVubmVsTWV0cmljTWV0cmljOiBNZXRyaWNFbnVtIHwgdW5kZWZpbmVkO1xyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlNDUkVFTl9QQUdFX1ZJRVdTX1BFUl9EQVk6XHJcbiAgICAgICAgZnVubmVsTWV0cmljTWV0cmljID0gTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1fVklFV19FVkVOVFNfUEVSX0RBWTpcclxuICAgICAgICBmdW5uZWxNZXRyaWNNZXRyaWMgPSBNZXRyaWNFbnVtLklURU1fVklFV19FVkVOVFM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVFNfUEVSX0RBWTpcclxuICAgICAgICBmdW5uZWxNZXRyaWNNZXRyaWMgPSBNZXRyaWNFbnVtLkFERF9UT19DQVJUUztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUU19QRVJfREFZOlxyXG4gICAgICAgIGZ1bm5lbE1ldHJpY01ldHJpYyA9IE1ldHJpY0VudW0uQ0hFQ0tPVVRTO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZOlxyXG4gICAgICAgIGZ1bm5lbE1ldHJpY01ldHJpYyA9IE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFUztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUVfUEVSX0RBWTpcclxuICAgICAgICBmdW5uZWxNZXRyaWNNZXRyaWMgPSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnVubmVsTWV0cmljTWV0cmljO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRhVHlwZShcclxuICAgIG1ldHJpYzogTWV0cmljRW51bSxcclxuICApOiBEYXRhVHlwZUVudW0ge1xyXG4gICAgbGV0IGRhdGFUeXBlOiBEYXRhVHlwZUVudW0gfCB1bmRlZmluZWQ7XHJcbiAgICBzd2l0Y2ggKG1ldHJpYykge1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0VTU0lPTlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5UUkFOU0FDVElPTlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5ORVdfVVNFUlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRVM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVFM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DSEVDS09VVFM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5FQ09NTUVSQ0VfUFVSQ0hBU0VTOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPTU9USU9OX0NMSUNLUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST01PVElPTl9WSUVXUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0FEREVEX1RPX0NBUlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNU19DSEVDS0VEX09VVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fTElTVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fUFJPTU9USU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfUFVSQ0hBU0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9WSUVXX0VWRU5UUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX1ZJRVdFRF9JTl9MSVNUOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEX0lOX1BST01PVElPTjpcclxuICAgICAgICBkYXRhVHlwZSA9IERhdGFUeXBlRW51bS5JTlRFR0VSO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0VTU0lPTlNfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFDVElWRV9VU0VSU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uVFJBTlNBQ1RJT05TX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5ORVdfVVNFUlNfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlNDUkVFTl9QQUdFX1ZJRVdTX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVFNfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPTU9USU9OX0NMSUNLU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPTU9USU9OX1ZJRVdTX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5HUk9TU19QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5FQ09NTUVSQ0VfQ09OVkVSU0lPTl9SQVRFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFVSQ0hBU0VfUkVWRU5VRTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFWRVJBR0VfT1JERVJfVkFMVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5VU0VSX0VOR0FHRU1FTlRfRFVSQVRJT046XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5CT1VOQ0VfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkdST1NTX1BVUkNIQVNFX1JFVkVOVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5SRUZVTkRfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0hJUFBJTkdfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uVEFYX0FNT1VOVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkdST1NTX0lURU1fUkVWRU5VRTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1fRElTQ09VTlRfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9SRUZVTkRfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9SRVZFTlVFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9WSUVXX0VWRU5UU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQUNUSVZFX1VTRVJfQUREX1RPX0NBUlRfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX0FERF9UT19DQVJUOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfQ0hFQ0tPVVQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5WSUVXX1RPX1BST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DQVJUX1RPX0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUX1RPX1BVUkNIQVNFX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DSEVDS09VVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUl9DSEVDS09VVF9SQVRFOlxyXG4gICAgICAgIGRhdGFUeXBlID0gRGF0YVR5cGVFbnVtLkRPVUJMRTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXRlbVRhYmxlKFxyXG4gICAgbWV0cmljOiBNZXRyaWNFbnVtIHwgdW5kZWZpbmVkLFxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGl0ZW1UYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0FEREVEX1RPX0NBUlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNU19DSEVDS0VEX09VVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fTElTVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fUFJPTU9USU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfUFVSQ0hBU0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEX0lOX0xJU1Q6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNU19WSUVXRURfSU5fUFJPTU9USU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9ESVNDT1VOVF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFRlVORF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFVkVOVUU6XHJcbiAgICAgICAgaXRlbVRhYmxlID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtVGFibGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIG51bWJlclR5cGUoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogTnVtYmVyVHlwZUVudW0gfCB1bmRlZmluZWQge1xyXG4gICAgbGV0IG51bWJlclR5cGU6IE51bWJlclR5cGVFbnVtIHwgdW5kZWZpbmVkO1xyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BVkVSQUdFX09SREVSX1ZBTFVFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uVVNFUl9FTkdBR0VNRU5UX0RVUkFUSU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uR1JPU1NfUFVSQ0hBU0VfUkVWRU5VRTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkdST1NTX1BVUkNIQVNFX1JFVkVOVUVfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFRlVORF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5TSElQUElOR19BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5UQVhfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uR1JPU1NfSVRFTV9SRVZFTlVFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9ESVNDT1VOVF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFRlVORF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFVkVOVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5SRVZFTlVFX1BFUl9BRERfVE9fQ0FSVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX0NIRUNLT1VUOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfUFJPRFVDVF9WSUVXOlxyXG4gICAgICAgIG51bWJlclR5cGUgPSBOdW1iZXJUeXBlRW51bS5NT05FVEFSWTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRV9SQVRFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFDVElWRV9VU0VSX0FERF9UT19DQVJUX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5WSUVXX1RPX1BST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DQVJUX1RPX0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUX1RPX1BVUkNIQVNFX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DSEVDS09VVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUl9DSEVDS09VVF9SQVRFOlxyXG4gICAgICAgIG51bWJlclR5cGUgPSBOdW1iZXJUeXBlRW51bS5QRVJDRU5UQUdFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bWJlclR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzUmF0aW8oXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgaXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICBpZiAoXHJcbiAgICAgIE1ldHJpY0VudW1VdGlsLm51bWJlclR5cGUobWV0cmljKSA9PT0gTnVtYmVyVHlwZUVudW0uUEVSQ0VOVEFHRVxyXG4gICAgKSB7XHJcbiAgICAgIGlzID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBtZXRyaWMgJiZcclxuICAgICAgICBbXHJcbiAgICAgICAgICBNZXRyaWNFbnVtLkFWRVJBR0VfT1JERVJfVkFMVUUsXHJcbiAgICAgICAgICBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVyxcclxuICAgICAgICAgIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfQUREX1RPX0NBUlQsXHJcbiAgICAgICAgICBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX0NIRUNLT1VULFxyXG4gICAgICAgIF0uaW5jbHVkZXMobWV0cmljKVxyXG4gICAgICApIHtcclxuICAgICAgICBpcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaW5jcmVhc2VCYWQoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgaW5jcmVhc2VCYWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICBzd2l0Y2ggKG1ldHJpYykge1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQk9VTkNFUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRV9SQVRFOlxyXG4gICAgICAgIGluY3JlYXNlQmFkID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBpbmNyZWFzZUJhZDtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc3RhdGljIGRlZmluaXRpb24oXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIGxldCBkZWZpbml0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBzd2l0Y2ggKG1ldHJpYykge1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQUNUSVZFX1VTRVJTOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSAkbG9jYWxpemVgVGhlIG51bWJlciBvZiB1bmlxdWUgdXNlcnMgd2hvIGVuZ2FnZWQgd2l0aCB5b3VyIHNpdGUgb3IgYXBwIGluIGEgc3BlY2lmaWVkIGRhdGUgcmFuZ2UuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLk5FV19VU0VSUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBudW1iZXIgb2YgbmV3IHVuaXF1ZSB1c2VycyB3aG8gdmlzaXRzIHlvdXIgd2Vic2l0ZSBvciBhcHAgZm9yIHRoZSBmaXJzdCB0aW1lIGR1cmluZyBhIHNwZWNpZmllZCBwZXJpb2QuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRV9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSAkbG9jYWxpemVgVGhlIHBlcmNlbnRhZ2Ugb2Ygc2Vzc2lvbnMgdGhhdCBlbmQgYWZ0ZXIgYSBzaW5nbGUgcGFnZSB2aWV3LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5TRVNTSU9OUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYEEgc2Vzc2lvbiBpcyBhIHBlcmlvZCBvZiB0aW1lIGR1cmluZyB3aGljaCBhIHVzZXIgaW50ZXJhY3RzIHdpdGggeW91ciB3ZWJzaXRlIG9yIGFwcC4gQW5hbHl0aWNzIGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzZXNzaW9ucyB0aGF0IG9jY3VyIG9uIHlvdXIgc2l0ZSBvciBhcHAgYnkgZXN0aW1hdGluZyB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBzZXNzaW9uIElEcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0NSRUVOX1BBR0VfVklFV1M6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBUaGUgbnVtYmVyIG9mIGFwcCBzY3JlZW5zIG9yIHdlYiBwYWdlcyB5b3VyIHVzZXJzIHZpZXdlZC4gUmVwZWF0ZWQgdmlld3Mgb2YgYSBzaW5nbGUgcGFnZSBvciBzY3JlZW4gYXJlIGNvdW50ZWQuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1fVklFV19FVkVOVFM6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBBIGNvdW50IG9mIGhvdyBtYW55IHRpbWVzIGEgdXNlciB2aWV3cyBwcm9kdWN0IGRldGFpbHMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBudW1iZXIgb2YgdGltZXMgdXNlcnMgYWRkZWQgcHJvZHVjdHMgdG8gdGhlaXIgc2hvcHBpbmcgY2FydHMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBudW1iZXIgb2YgdGltZXMgdXNlcnMgc3RhcnRlZCB0aGUgY2hlY2tvdXQgcHJvY2Vzcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBudW1iZXIgb2YgdGltZXMgdXNlcnMgY29tcGxldGVkIGEgcHVyY2hhc2UuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBQdXJjaGFzZSByZXZlbnVlIHNob3dzIHRoZSB0b3RhbCBhbW91bnQgb2YgcmV2ZW51ZSBnZW5lcmF0ZWQgZnJvbSBlY29tbWVyY2UgYW5kIGluLWFwcCBwdXJjaGFzZXMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST0RVQ1RfVklFV19SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSAkbG9jYWxpemVgVGhlIHBlcmNlbnRhZ2Ugb2Ygc2Vzc2lvbnMgd2hlcmUgYSB1c2VyIHZpZXdzIGEgcHJvZHVjdC4gSXQgbWVhc3VyZXMgaG93IG9mdGVuIHZpc2l0b3JzIGVuZ2FnZSB3aXRoIHByb2R1Y3QgcGFnZXMgcmVsYXRpdmUgdG8gb3ZlcmFsbCBzaXRlIGFjdGl2aXR5LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVF9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSAkbG9jYWxpemVgVGhlIHBlcmNlbnRhZ2Ugb2Ygc2Vzc2lvbnMgd2hlcmUgYSB1c2VyIGFkZHMgYSBwcm9kdWN0IHRvIHRoZWlyIGNhcnQuIEl0IGluZGljYXRlcyBob3cgZnJlcXVlbnRseSB2aXNpdG9ycyB0YWtlIHRoZSBzdGVwIHRvd2FyZCBhIHB1cmNoYXNlIGR1cmluZyB0aGVpciBzaXRlIHZpc2l0LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUl9BRERfVE9fQ0FSVF9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSAkbG9jYWxpemVgVGhlIHBlcmNlbnRhZ2Ugb2YgYWN0aXZlIHVzZXJzIHdobyBhZGQgYSBwcm9kdWN0IHRvIHRoZWlyIGNhcnQuIEl0IG1lYXN1cmVzIGhvdyBvZnRlbiBlbmdhZ2VkIHVzZXJz4oCUdGhvc2Ugd2hvIGludGVyYWN0IHdpdGggeW91ciBzaXRlIG9yIGFwcOKAlHRha2UgdGhlIGFjdGlvbiBvZiBhZGRpbmcgYW4gaXRlbSB0byB0aGVpciBjYXJ0LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5WSUVXX1RPX1BST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBUaGUgcGVyY2VudGFnZSBvZiB0b3RhbCBwYWdlIG9yIHNjcmVlbiB2aWV3cyB0aGF0IHJlc3VsdCBpbiBhIHByb2R1Y3Qgdmlldy4gSXQgbWVhc3VyZXMgaG93IG9mdGVuIGdlbmVyYWwgc2l0ZSBvciBhcHAgdmlzaXRzIGxlYWQgdG8gdXNlcnMgc3BlY2lmaWNhbGx5IHZpZXdpbmcgYSBwcm9kdWN0LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBUaGUgcGVyY2VudGFnZSBvZiBwcm9kdWN0IHZpZXdzIHRoYXQgcmVzdWx0IGluIGFuIGl0ZW0gYmVpbmcgYWRkZWQgdG8gdGhlIGNhcnQuIEl0IG1lYXN1cmVzIGhvdyBlZmZlY3RpdmVseSB2aWV3aW5nIGEgcHJvZHVjdCBsZWFkcyB0byB0aGUgbmV4dCBzdGVwIGluIHRoZSBwdXJjaGFzZSBmdW5uZWwuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVzpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBhdmVyYWdlIHJldmVudWUgZ2VuZXJhdGVkIHBlciBwcm9kdWN0IHZpZXcuIEl0IG1lYXN1cmVzIHRoZSBtb25ldGFyeSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBpbnN0YW5jZSBvZiBhIHVzZXIgdmlld2luZyBhIHByb2R1Y3QsIHJlZmxlY3RpbmcgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgcHJvZHVjdCB2aWV3cyBpbiBkcml2aW5nIHNhbGVzLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5SRVZFTlVFX1BFUl9BRERfVE9fQ0FSVDpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBhdmVyYWdlIHJldmVudWUgZ2VuZXJhdGVkIHBlciBpbnN0YW5jZSBvZiBhIHByb2R1Y3QgYmVpbmcgYWRkZWQgdG8gdGhlIGNhcnQuIEl0IG1lYXN1cmVzIHRoZSBtb25ldGFyeSB2YWx1ZSB0aWVkIHRvIGVhY2ggYWRkLXRvLWNhcnQgYWN0aW9uLCBpbmRpY2F0aW5nIGhvdyBlZmZlY3RpdmVseSB0aGVzZSBhY3Rpb25zIGNvbnRyaWJ1dGUgdG8gb3ZlcmFsbCBzYWxlcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQUNUSVZFX1VTRVJfQ0hFQ0tPVVRfUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBwZXJjZW50YWdlIG9mIGFjdGl2ZSB1c2VycyB3aG8gaW5pdGlhdGUgYSBjaGVja291dCBJdCBtZWFzdXJlcyBob3cgb2Z0ZW4gZW5nYWdlZCB1c2Vyc+KAlHRob3NlIGludGVyYWN0aW5nIHdpdGggeW91ciBzaXRlIG9yIGFwcOKAlHByb2NlZWQgdG8gdGhlIGNoZWNrb3V0IHN0YWdlIG9mIHRoZSBwdXJjaGFzZSBwcm9jZXNzLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DQVJUX1RPX0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBwZXJjZW50YWdlIG9mIGFkZC10by1jYXJ0IGFjdGlvbnMgdGhhdCByZXN1bHQgaW4gYSBjaGVja291dCBiZWluZyBpbml0aWF0ZWQuIEl0IG1lYXN1cmVzIGhvdyBlZmZlY3RpdmVseSBhZGRpbmcgYW4gaXRlbSB0byB0aGUgY2FydCBsZWFkcyB0byB0aGUgdXNlciBzdGFydGluZyB0aGUgY2hlY2tvdXQgcHJvY2Vzcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfQ0hFQ0tPVVQ6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBUaGUgYXZlcmFnZSByZXZlbnVlIGdlbmVyYXRlZCBwZXIgY2hlY2tvdXQgaW5pdGlhdGlvbi4gSXQgbWVhc3VyZXMgdGhlIG1vbmV0YXJ5IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGluc3RhbmNlIG9mIGEgdXNlciBzdGFydGluZyB0aGUgY2hlY2tvdXQgcHJvY2VzcywgcmVmbGVjdGluZyBpdHMgY29udHJpYnV0aW9uIHRvIG92ZXJhbGwgc2FsZXMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBwZXJjZW50YWdlIG9mIGFkZC10by1jYXJ0IGFjdGlvbnMgdGhhdCByZXN1bHQgaW4gYSBjb21wbGV0ZWQgZS1jb21tZXJjZSBwdXJjaGFzZS4gSXQgbWVhc3VyZXMgaG93IGVmZmVjdGl2ZWx5IGFkZGluZyBhbiBpdGVtIHRvIHRoZSBjYXJ0IGxlYWRzIHRvIGEgZmluYWwgc2FsZS5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQ0hFQ0tPVVRfQ09OVkVSU0lPTl9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSAkbG9jYWxpemVgVGhlIHBlcmNlbnRhZ2Ugb2YgY2hlY2tvdXQgaW5pdGlhdGlvbnMgdGhhdCByZXN1bHQgaW4gYSBjb21wbGV0ZWQgZS1jb21tZXJjZSBwdXJjaGFzZS4gSXQgbWVhc3VyZXMgaG93IGVmZmVjdGl2ZWx5IHN0YXJ0aW5nIHRoZSBjaGVja291dCBwcm9jZXNzIGxlYWRzIHRvIGEgZmluYWxpemVkIHNhbGUuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkVDT01NRVJDRV9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBUaGUgcGVyY2VudGFnZSBvZiBzZXNzaW9ucyB0aGF0IHJlc3VsdCBpbiBhIGNvbXBsZXRlZCBlLWNvbW1lcmNlIHB1cmNoYXNlLiBJdCBtZWFzdXJlcyBob3cgb2Z0ZW4gYSBzaXRlIHZpc2l0IGxlYWRzIHRvIGEgZmluYWxpemVkIHNhbGUsIHJlZmxlY3Rpbmcgb3ZlcmFsbCBlZmZlY3RpdmVuZXNzIG9mIHRoZSBlLWNvbW1lcmNlIGZ1bm5lbC5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPRFVDVF9WSUVXX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gJGxvY2FsaXplYFRoZSBwZXJjZW50YWdlIG9mIHByb2R1Y3Qgdmlld3MgdGhhdCByZXN1bHQgaW4gYSBjb21wbGV0ZWQgZS1jb21tZXJjZSBwdXJjaGFzZS4gSXQgbWVhc3VyZXMgaG93IGVmZmVjdGl2ZWx5IHZpZXdpbmcgYSBwcm9kdWN0IGxlYWRzIHRvIGEgZmluYWxpemVkIHNhbGUuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFWRVJBR0VfT1JERVJfVkFMVUU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9ICRsb2NhbGl6ZWBUaGUgYXZlcmFnZSByZXZlbnVlIGdlbmVyYXRlZCBwZXIgY29tcGxldGVkIGUtY29tbWVyY2UgcHVyY2hhc2UuIEl0IG1lYXN1cmVzIHRoZSB0eXBpY2FsIG1vbmV0YXJ5IHZhbHVlIG9mIGVhY2ggb3JkZXIsIHByb3ZpZGluZyBpbnNpZ2h0IGludG8gY3VzdG9tZXIgc3BlbmRpbmcgYmVoYXZpb3IuYDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBkZWZpbml0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
401
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3NoYXJlZC9tb2RlbC9zcmMvbGliL2RhdGEvbWV0cmljLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRTVDLE1BQU0sQ0FBTixJQUFZLFVBaUVYO0FBakVELFdBQVksVUFBVTtJQUNwQixtQ0FBcUIsQ0FBQTtJQUNyQixtREFBcUMsQ0FBQTtJQUNyQywyQ0FBNkIsQ0FBQTtJQUM3QiwyREFBNkMsQ0FBQTtJQUM3QywyQ0FBNkIsQ0FBQTtJQUM3QiwyREFBNkMsQ0FBQTtJQUM3QyxtREFBcUMsQ0FBQTtJQUNyQyxtRUFBcUQsQ0FBQTtJQUNyRCx5REFBMkMsQ0FBQTtJQUMzQyxxQ0FBdUIsQ0FBQTtJQUN2QixxREFBdUMsQ0FBQTtJQUN2QyxtRUFBcUQsQ0FBQTtJQUNyRCxxREFBdUMsQ0FBQTtJQUN2QyxxRUFBdUQsQ0FBQTtJQUN2RCxpQ0FBbUIsQ0FBQTtJQUNuQix5Q0FBMkIsQ0FBQTtJQUMzQiwyQ0FBNkIsQ0FBQTtJQUM3QiwyREFBNkMsQ0FBQTtJQUM3QyxxQ0FBdUIsQ0FBQTtJQUN2QixxREFBdUMsQ0FBQTtJQUN2Qyx5REFBMkMsQ0FBQTtJQUMzQyx5RUFBMkQsQ0FBQTtJQUMzRCxxRUFBdUQsQ0FBQTtJQUN2RCwrREFBaUQsQ0FBQTtJQUNqRCwrRUFBaUUsQ0FBQTtJQUNqRSxtREFBcUMsQ0FBQTtJQUNyQyxtRUFBcUQsQ0FBQTtJQUNyRCxtREFBcUMsQ0FBQTtJQUNyQyxtRUFBcUQsQ0FBQTtJQUNyRCxpREFBbUMsQ0FBQTtJQUNuQyxpRUFBbUQsQ0FBQTtJQUNuRCw2Q0FBK0IsQ0FB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QztnQkFDeEssTUFBTTtZQUNSLEtBQUssVUFBVSxDQUFDLG1CQUFtQjtnQkFDakMsVUFBVSxHQUFHLDJLQUEySyxDQUFDO2dCQUN6TCxNQUFNO1FBQ1YsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGF0YVR5cGVFbnVtfSBmcm9tICcuL2RhdGEtdHlwZS5lbnVtJztcclxuaW1wb3J0IHtOdW1iZXJUeXBlRW51bX0gZnJvbSAnLi9udW1iZXItdHlwZS5lbnVtJztcclxuaW1wb3J0IHtTTkFLRV9UT19DQU1FTH0gZnJvbSAnQGplYmdlbS91dGlsJztcclxuXHJcbmV4cG9ydCBlbnVtIE1ldHJpY0VudW0ge1xyXG4gIFNFU1NJT05TID0gJ1NFU1NJT05TJyxcclxuICBTRVNTSU9OU19QRVJfREFZID0gJ1NFU1NJT05TX1BFUl9EQVknLFxyXG4gIEFDVElWRV9VU0VSUyA9ICdBQ1RJVkVfVVNFUlMnLFxyXG4gIEFDVElWRV9VU0VSU19QRVJfREFZID0gJ0FDVElWRV9VU0VSU19QRVJfREFZJyxcclxuICBUUkFOU0FDVElPTlMgPSAnVFJBTlNBQ1RJT05TJyxcclxuICBUUkFOU0FDVElPTlNfUEVSX0RBWSA9ICdUUkFOU0FDVElPTlNfUEVSX0RBWScsXHJcbiAgUFVSQ0hBU0VfUkVWRU5VRSA9ICdQVVJDSEFTRV9SRVZFTlVFJyxcclxuICBQVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVkgPSAnUFVSQ0hBU0VfUkVWRU5VRV9QRVJfREFZJyxcclxuICBBVkVSQUdFX09SREVSX1ZBTFVFID0gJ0FWRVJBR0VfT1JERVJfVkFMVUUnLFxyXG4gIE5FV19VU0VSUyA9ICdORVdfVVNFUlMnLFxyXG4gIE5FV19VU0VSU19QRVJfREFZID0gJ05FV19VU0VSU19QRVJfREFZJyxcclxuICBVU0VSX0VOR0FHRU1FTlRfRFVSQVRJT04gPSAnVVNFUl9FTkdBR0VNRU5UX0RVUkFUSU9OJyxcclxuICBTQ1JFRU5fUEFHRV9WSUVXUyA9ICdTQ1JFRU5fUEFHRV9WSUVXUycsXHJcbiAgU0NSRUVOX1BBR0VfVklFV1NfUEVSX0RBWSA9ICdTQ1JFRU5fUEFHRV9WSUVXU19QRVJfREFZJyxcclxuICBCT1VOQ0VTID0gJ0JPVU5DRVMnLFxyXG4gIEJPVU5DRV9SQVRFID0gJ0JPVU5DRV9SQVRFJyxcclxuICBBRERfVE9fQ0FSVFMgPSAnQUREX1RPX0NBUlRTJyxcclxuICBBRERfVE9fQ0FSVFNfUEVSX0RBWSA9ICdBRERfVE9fQ0FSVFNfUEVSX0RBWScsXHJcbiAgQ0hFQ0tPVVRTID0gJ0NIRUNLT1VUUycsXHJcbiAgQ0hFQ0tPVVRTX1BFUl9EQVkgPSAnQ0hFQ0tPVVRTX1BFUl9EQVknLFxyXG4gIEVDT01NRVJDRV9QVVJDSEFTRVMgPSAnRUNPTU1FUkNFX1BVUkNIQVNFUycsXHJcbiAgRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZID0gJ0VDT01NRVJDRV9QVVJDSEFTRVNfUEVSX0RBWScsXHJcbiAgRUNPTU1FUkNFX0NPTlZFUlNJT05fUkFURSA9ICdFQ09NTUVSQ0VfQ09OVkVSU0lPTl9SQVRFJyxcclxuICBHUk9TU19QVVJDSEFTRV9SRVZFTlVFID0gJ0dST1NTX1BVUkNIQVNFX1JFVkVOVUUnLFxyXG4gIEdST1NTX1BVUkNIQVNFX1JFVkVOVUVfUEVSX0RBWSA9ICdHUk9TU19QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVknLFxyXG4gIElURU1fVklFV19FVkVOVFMgPSAnSVRFTV9WSUVXX0VWRU5UUycsXHJcbiAgSVRFTV9WSUVXX0VWRU5UU19QRVJfREFZID0gJ0lURU1fVklFV19FVkVOVFNfUEVSX0RBWScsXHJcbiAgUFJPTU9USU9OX0NMSUNLUyA9ICdQUk9NT1RJT05fQ0xJQ0tTJyxcclxuICBQUk9NT1RJT05fQ0xJQ0tTX1BFUl9EQVkgPSAnUFJPTU9USU9OX0NMSUNLU19QRVJfREFZJyxcclxuICBQUk9NT1RJT05fVklFV1MgPSAnUFJPTU9USU9OX1ZJRVdTJyxcclxuICBQUk9NT1RJT05fVklFV1NfUEVSX0RBWSA9ICdQUk9NT1RJT05fVklFV1NfUEVSX0RBWScsXHJcbiAgUkVGVU5EX0FNT1VOVCA9ICdSRUZVTkRfQU1PVU5UJyxcclxuICBTSElQUElOR19BTU9VTlQgPSAnU0hJUFBJTkdfQU1PVU5UJyxcclxuICBUQVhfQU1PVU5UID0gJ1RBWF9BTU9VTlQnLFxyXG5cclxuICBBQ1RJVkVfVVNFUl9BRERfVE9fQ0FSVF9SQVRFID0gJ0FDVElWRV9VU0VSX0FERF9UT19DQVJUX1JBVEUnLFxyXG4gIFJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVyA9ICdSRVZFTlVFX1BFUl9QUk9EVUNUX1ZJRVcnLFxyXG4gIFJFVkVOVUVfUEVSX0FERF9UT19DQVJUID0gJ1JFVkVOVUVfUEVSX0FERF9UT19DQVJUJyxcclxuICBSRVZFTlVFX1BFUl9DSEVDS09VVCA9ICdSRVZFTlVFX1BFUl9DSEVDS09VVCcsXHJcbiAgVklFV19UT19QUk9EVUNUX1ZJRVdfQ09OVkVSU0lPTl9SQVRFID0gJ1ZJRVdfVE9fUFJPRFVDVF9WSUVXX0NPTlZFUlNJT05fUkFURScsXHJcbiAgUFJPRFVDVF9WSUVXX1RPX0NBUlRfQ09OVkVSU0lPTl9SQVRFID0gJ1BST0RVQ1RfVklFV19UT19DQVJUX0NPTlZFUlNJT05fUkFURScsXHJcbiAgQ0FSVF9UT19DSEVDS09VVF9DT05WRVJTSU9OX1JBVEUgPSAnQ0FSVF9UT19DSEVDS09VVF9DT05WRVJTSU9OX1JBVEUnLFxyXG4gIENIRUNLT1VUX1RPX1BVUkNIQVNFX0NPTlZFUlNJT05fUkFURSA9ICdDSEVDS09VVF9UT19QVVJDSEFTRV9DT05WRVJTSU9OX1JBVEUnLFxyXG4gIFBST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEUgPSAnUFJPRFVDVF9WSUVXX0NPTlZFUlNJT05fUkFURScsXHJcbiAgUFJPRFVDVF9WSUVXX1JBVEUgPSAnUFJPRFVDVF9WSUVXX1JBVEUnLFxyXG4gIEFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURSA9ICdBRERfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEUnLFxyXG4gIEFERF9UT19DQVJUX1JBVEUgPSAnQUREX1RPX0NBUlRfUkFURScsXHJcbiAgQ0hFQ0tPVVRfQ09OVkVSU0lPTl9SQVRFID0gJ0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURScsXHJcbiAgQUNUSVZFX1VTRVJfQ0hFQ0tPVVRfUkFURSA9ICdBQ1RJVkVfVVNFUl9DSEVDS09VVF9SQVRFJyxcclxuXHJcbiAgLy8gSXRlbVxyXG4gIEdST1NTX0lURU1fUkVWRU5VRSA9ICdHUk9TU19JVEVNX1JFVkVOVUUnLFxyXG4gIElURU1fRElTQ09VTlRfQU1PVU5UID0gJ0lURU1fRElTQ09VTlRfQU1PVU5UJyxcclxuICBJVEVNX1JFRlVORF9BTU9VTlQgPSAnSVRFTV9SRUZVTkRfQU1PVU5UJyxcclxuICBJVEVNX1JFVkVOVUUgPSAnSVRFTV9SRVZFTlVFJyxcclxuICBJVEVNU19BRERFRF9UT19DQVJUID0gJ0lURU1TX0FEREVEX1RPX0NBUlQnLFxyXG4gIElURU1TX0NIRUNLRURfT1VUID0gJ0lURU1TX0NIRUNLRURfT1VUJyxcclxuICBJVEVNU19DTElDS0VEX0lOX0xJU1QgPSAnSVRFTVNfQ0xJQ0tFRF9JTl9MSVNUJyxcclxuICBJVEVNU19DTElDS0VEX0lOX1BST01PVElPTiA9ICdJVEVNU19DTElDS0VEX0lOX1BST01PVElPTicsXHJcbiAgSVRFTVNfUFVSQ0hBU0VEID0gJ0lURU1TX1BVUkNIQVNFRCcsXHJcbiAgSVRFTVNfVklFV0VEID0gJ0lURU1TX1ZJRVdFRCcsXHJcbiAgSVRFTVNfVklFV0VEX0lOX0xJU1QgPSAnSVRFTVNfVklFV0VEX0lOX0xJU1QnLFxyXG4gIElURU1TX1ZJRVdFRF9JTl9QUk9NT1RJT04gPSAnSVRFTVNfVklFV0VEX0lOX1BST01PVElPTicsXHJcblxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTWV0cmljRW51bVV0aWwge1xyXG4gIHB1YmxpYyBzdGF0aWMgdGl0bGUoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogc3RyaW5nIHtcclxuICAgIGxldCB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgaWYgKCFtZXRyaWMpIHtcclxuICAgICAgdGl0bGUgPSBgVW5rbm93bmA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoIXRpdGxlKSB7XHJcbiAgICAgICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUzpcclxuICAgICAgICAgICAgdGl0bGUgPSBgVmlld3NgO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1ZJRVdfRVZFTlRTOlxyXG4gICAgICAgICAgICB0aXRsZSA9IGBQcm9kdWN0IHZpZXdzYDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9WSUVXX0VWRU5UU19QRVJfREFZOlxyXG4gICAgICAgICAgICB0aXRsZSA9IGBQcm9kdWN0IHZpZXdzIHBlciBkYXlgO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5FQ09NTUVSQ0VfUFVSQ0hBU0VTOlxyXG4gICAgICAgICAgICB0aXRsZSA9IGBQdXJjaGFzZXNgO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFOlxyXG4gICAgICAgICAgICB0aXRsZSA9IGBSZXZlbnVlYDtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZOlxyXG4gICAgICAgICAgICB0aXRsZSA9IGBQdXJjaGFzZXMgcGVyIGRheWA7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIXRpdGxlKSB7XHJcbiAgICAgICAgICB0aXRsZSA9IGAke1NOQUtFX1RPX0NBTUVMKFxyXG4gICAgICAgICAgICBtZXRyaWMsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBwYXNjYWw6IHRydWUsXHJcbiAgICAgICAgICAgICAgc3BhY2VkOiB0cnVlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgKX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgLy8gaGFyZGNvZGVkIHVudGlsIHdlIGFkZCBtb3JlIGZ1bm5lbHNcclxuICBwdWJsaWMgc3RhdGljIGZ1bm5lbEZ1bm5lbE1ldHJpY3MoKTogTWV0cmljRW51bVtdIHtcclxuICAgIGNvbnN0IG1ldHJpY3M6IE1ldHJpY0VudW1bXSA9IFtcclxuICAgICAgTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUyxcclxuICAgICAgTWV0cmljRW51bS5JVEVNX1ZJRVdfRVZFTlRTLFxyXG4gICAgICBNZXRyaWNFbnVtLkFERF9UT19DQVJUUyxcclxuICAgICAgTWV0cmljRW51bS5DSEVDS09VVFMsXHJcbiAgICAgIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFUyxcclxuICAgICAgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFLFxyXG4gICAgXTtcclxuICAgIHJldHVybiBtZXRyaWNzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBvbmJvYXJkaW5nVGFyZ2V0TXNnKFxyXG4gICAgbWV0cmljOiBNZXRyaWNFbnVtLFxyXG4gICAgY3VycmVudERpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICAgIHN1Z2dlc3RlZFRhcmdldERpc3BsYXk6IHN0cmluZyB8IHVuZGVmaW5lZCxcclxuICApOiBzdHJpbmcge1xyXG4gICAgbGV0IHN0cjogc3RyaW5nID0gJyc7XHJcbiAgICBjb25zdCBtZXRyaWNUaXRsZTogc3RyaW5nID0gTWV0cmljRW51bVV0aWwudGl0bGUobWV0cmljKTtcclxuICAgIC8vIFRPRE86IGZpeCB1cFxyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlNDUkVFTl9QQUdFX1ZJRVdTOlxyXG4gICAgICAgIHN0ciA9IGBZb3VyIGN1cnJlbnQgKioke21ldHJpY1RpdGxlfSoqIGlzICoqJHtjdXJyZW50RGlzcGxheX0qKi4gVGhpcyBpcyB0aGUgdG9wIG9mIHlvdXIgZnVubmVsLCB3aGVyZSB1c2VycyBmaXJzdCBlbmdhZ2Ugd2l0aCB5b3VyIGNvbnRlbnQuIFRvIGluY3JlYXNlIHZpc2liaWxpdHksIHdlIHN1Z2dlc3Qgc2V0dGluZyBhIHRhcmdldCBvZiAqKiR7c3VnZ2VzdGVkVGFyZ2V0RGlzcGxheX0qKi4gVGhpcyB3aWxsIGhlbHAgYXR0cmFjdCBtb3JlIHBvdGVudGlhbCBjdXN0b21lcnMgdG8geW91ciBzaXRlLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1ZJRVdfRVZFTlRTOlxyXG4gICAgICAgIHN0ciA9IGBZb3UncmUgY3VycmVudGx5IHNlZWluZyAqKiR7Y3VycmVudERpc3BsYXl9KiogKioke21ldHJpY1RpdGxlfSoqLiBUaGlzIGlzIHdoZXJlIHVzZXJzIHN0YXJ0IHNob3dpbmcgaW50ZXJlc3QgaW4gc3BlY2lmaWMgcHJvZHVjdHMuIFRvIHR1cm4gbW9yZSBvZiB0aG9zZSB2aWV3cyBpbnRvIGFjdGlvbnMsIHdlIHN1Z2dlc3Qgc2V0dGluZyBhIHRhcmdldCBvZiAqKiR7c3VnZ2VzdGVkVGFyZ2V0RGlzcGxheX0qKi4gVGhlIG1vcmUgZW5nYWdlZCB0aGV5IGFyZSwgdGhlIG1vcmUgbGlrZWx5IHRoZXknbGwgYWRkIGl0ZW1zIHRvIHRoZWlyIGNhcnQuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUUzpcclxuICAgICAgICBzdHIgPSBgUmlnaHQgbm93LCB5b3VyICoqJHttZXRyaWNUaXRsZX0qKiBpcyBhdCAqKiR7Y3VycmVudERpc3BsYXl9KiouIFRoaXMgc3RlcCBpcyBjcnVjaWFsIGFzIGl0IHNob3dzIHNlcmlvdXMgYnV5aW5nIGludGVudC4gVG8gZW5jb3VyYWdlIG1vcmUgY3VzdG9tZXJzIHRvIHRha2UgdGhpcyBzdGVwLCBjb25zaWRlciBzZXR0aW5nIGEgdGFyZ2V0IG9mICoqJHtzdWdnZXN0ZWRUYXJnZXREaXNwbGF5fSoqLiBTbWFsbCBpbmNyZWFzZXMgaGVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbXBhY3QgeW91ciBvdmVyYWxsIHNhbGVzLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFOlxyXG4gICAgICAgIHN0ciA9IGBZb3VyIGN1cnJlbnQgKioke21ldHJpY1RpdGxlfSoqIGlzICoqJHtjdXJyZW50RGlzcGxheX0qKi4gVGhpcyBpcyB0aGUgdWx0aW1hdGUgZ29hbOKAlGNvbnZlcnRpbmcgaW50ZXJlc3QgaW50byBzYWxlcy4gV2Ugc3VnZ2VzdCBhaW1pbmcgZm9yIGEgdGFyZ2V0IG9mICoqJHtzdWdnZXN0ZWRUYXJnZXREaXNwbGF5fSoqIHRvIGRyaXZlIG1vcmUgcmV2ZW51ZS4gRXZlcnkgc21hbGwgaW1wcm92ZW1lbnQgYWxvbmcgdGhlIGZ1bm5lbCBhZGRzIHVwIHRvIGJpZyBnYWlucyBoZXJlLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuXHJcbiAgLy8gaGFyZGNvZGVkIHVudGlsIHdlIGFkZCBtb3JlIGZ1bm5lbHNcclxuICBwdWJsaWMgc3RhdGljIHJldmVyc2VGdW5uZWxUYXJnZXRNZXRyaWMoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0sXHJcbiAgKTogTWV0cmljRW51bSB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgZnVubmVsTWV0cmljTWV0cmljOiBNZXRyaWNFbnVtIHwgdW5kZWZpbmVkO1xyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlNDUkVFTl9QQUdFX1ZJRVdTX1BFUl9EQVk6XHJcbiAgICAgICAgZnVubmVsTWV0cmljTWV0cmljID0gTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1fVklFV19FVkVOVFNfUEVSX0RBWTpcclxuICAgICAgICBmdW5uZWxNZXRyaWNNZXRyaWMgPSBNZXRyaWNFbnVtLklURU1fVklFV19FVkVOVFM7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVFNfUEVSX0RBWTpcclxuICAgICAgICBmdW5uZWxNZXRyaWNNZXRyaWMgPSBNZXRyaWNFbnVtLkFERF9UT19DQVJUUztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUU19QRVJfREFZOlxyXG4gICAgICAgIGZ1bm5lbE1ldHJpY01ldHJpYyA9IE1ldHJpY0VudW0uQ0hFQ0tPVVRTO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZOlxyXG4gICAgICAgIGZ1bm5lbE1ldHJpY01ldHJpYyA9IE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFUztcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUVfUEVSX0RBWTpcclxuICAgICAgICBmdW5uZWxNZXRyaWNNZXRyaWMgPSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUU7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZnVubmVsTWV0cmljTWV0cmljO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBkYXRhVHlwZShcclxuICAgIG1ldHJpYzogTWV0cmljRW51bSxcclxuICApOiBEYXRhVHlwZUVudW0ge1xyXG4gICAgbGV0IGRhdGFUeXBlOiBEYXRhVHlwZUVudW0gfCB1bmRlZmluZWQ7XHJcbiAgICBzd2l0Y2ggKG1ldHJpYykge1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0VTU0lPTlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5UUkFOU0FDVElPTlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5ORVdfVVNFUlM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5TQ1JFRU5fUEFHRV9WSUVXUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRVM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVFM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DSEVDS09VVFM6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5FQ09NTUVSQ0VfUFVSQ0hBU0VTOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPTU9USU9OX0NMSUNLUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST01PVElPTl9WSUVXUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0FEREVEX1RPX0NBUlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNU19DSEVDS0VEX09VVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fTElTVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fUFJPTU9USU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfUFVSQ0hBU0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9WSUVXX0VWRU5UUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX1ZJRVdFRF9JTl9MSVNUOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEX0lOX1BST01PVElPTjpcclxuICAgICAgICBkYXRhVHlwZSA9IERhdGFUeXBlRW51bS5JTlRFR0VSO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0VTU0lPTlNfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFDVElWRV9VU0VSU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uVFJBTlNBQ1RJT05TX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5ORVdfVVNFUlNfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlNDUkVFTl9QQUdFX1ZJRVdTX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVFNfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPTU9USU9OX0NMSUNLU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPTU9USU9OX1ZJRVdTX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5HUk9TU19QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5FQ09NTUVSQ0VfQ09OVkVSU0lPTl9SQVRFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFVSQ0hBU0VfUkVWRU5VRTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFWRVJBR0VfT1JERVJfVkFMVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5VU0VSX0VOR0FHRU1FTlRfRFVSQVRJT046XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5CT1VOQ0VfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkdST1NTX1BVUkNIQVNFX1JFVkVOVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5SRUZVTkRfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0hJUFBJTkdfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uVEFYX0FNT1VOVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkdST1NTX0lURU1fUkVWRU5VRTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1fRElTQ09VTlRfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9SRUZVTkRfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9SRVZFTlVFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9WSUVXX0VWRU5UU19QRVJfREFZOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQUNUSVZFX1VTRVJfQUREX1RPX0NBUlRfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX0FERF9UT19DQVJUOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfQ0hFQ0tPVVQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5WSUVXX1RPX1BST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DQVJUX1RPX0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUX1RPX1BVUkNIQVNFX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DSEVDS09VVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUl9DSEVDS09VVF9SQVRFOlxyXG4gICAgICAgIGRhdGFUeXBlID0gRGF0YVR5cGVFbnVtLkRPVUJMRTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhVHlwZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaXRlbVRhYmxlKFxyXG4gICAgbWV0cmljOiBNZXRyaWNFbnVtIHwgdW5kZWZpbmVkLFxyXG4gICk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGl0ZW1UYWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0FEREVEX1RPX0NBUlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNU19DSEVDS0VEX09VVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fTElTVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1TX0NMSUNLRURfSU5fUFJPTU9USU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfUFVSQ0hBU0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTVNfVklFV0VEX0lOX0xJU1Q6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNU19WSUVXRURfSU5fUFJPTU9USU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9ESVNDT1VOVF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFRlVORF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFVkVOVUU6XHJcbiAgICAgICAgaXRlbVRhYmxlID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBpdGVtVGFibGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIG51bWJlclR5cGUoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogTnVtYmVyVHlwZUVudW0gfCB1bmRlZmluZWQge1xyXG4gICAgbGV0IG51bWJlclR5cGU6IE51bWJlclR5cGVFbnVtIHwgdW5kZWZpbmVkO1xyXG4gICAgc3dpdGNoIChtZXRyaWMpIHtcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QVVJDSEFTRV9SRVZFTlVFX1BFUl9EQVk6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BVkVSQUdFX09SREVSX1ZBTFVFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uVVNFUl9FTkdBR0VNRU5UX0RVUkFUSU9OOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uR1JPU1NfUFVSQ0hBU0VfUkVWRU5VRTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkdST1NTX1BVUkNIQVNFX1JFVkVOVUVfUEVSX0RBWTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFRlVORF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5TSElQUElOR19BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5UQVhfQU1PVU5UOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uR1JPU1NfSVRFTV9SRVZFTlVFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uSVRFTV9ESVNDT1VOVF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFRlVORF9BTU9VTlQ6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5JVEVNX1JFVkVOVUU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5SRVZFTlVFX1BFUl9BRERfVE9fQ0FSVDpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX0NIRUNLT1VUOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfUFJPRFVDVF9WSUVXOlxyXG4gICAgICAgIG51bWJlclR5cGUgPSBOdW1iZXJUeXBlRW51bS5NT05FVEFSWTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRV9SQVRFOlxyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFDVElWRV9VU0VSX0FERF9UT19DQVJUX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5WSUVXX1RPX1BST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DQVJUX1RPX0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUX1RPX1BVUkNIQVNFX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DSEVDS09VVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUl9DSEVDS09VVF9SQVRFOlxyXG4gICAgICAgIG51bWJlclR5cGUgPSBOdW1iZXJUeXBlRW51bS5QRVJDRU5UQUdFO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bWJlclR5cGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3RhdGljIGlzUmF0aW8oXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgaXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICBpZiAoXHJcbiAgICAgIE1ldHJpY0VudW1VdGlsLm51bWJlclR5cGUobWV0cmljKSA9PT0gTnVtYmVyVHlwZUVudW0uUEVSQ0VOVEFHRVxyXG4gICAgKSB7XHJcbiAgICAgIGlzID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBtZXRyaWMgJiZcclxuICAgICAgICBbXHJcbiAgICAgICAgICBNZXRyaWNFbnVtLkFWRVJBR0VfT1JERVJfVkFMVUUsXHJcbiAgICAgICAgICBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVyxcclxuICAgICAgICAgIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfQUREX1RPX0NBUlQsXHJcbiAgICAgICAgICBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX0NIRUNLT1VULFxyXG4gICAgICAgIF0uaW5jbHVkZXMobWV0cmljKVxyXG4gICAgICApIHtcclxuICAgICAgICBpcyA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgaW5jcmVhc2VCYWQoXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogYm9vbGVhbiB8IHVuZGVmaW5lZCB7XHJcbiAgICBsZXQgaW5jcmVhc2VCYWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XHJcbiAgICBzd2l0Y2ggKG1ldHJpYykge1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQk9VTkNFUzpcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRV9SQVRFOlxyXG4gICAgICAgIGluY3JlYXNlQmFkID0gdHJ1ZTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBpbmNyZWFzZUJhZDtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgc3RhdGljIGRlZmluaXRpb24oXHJcbiAgICBtZXRyaWM6IE1ldHJpY0VudW0gfCB1bmRlZmluZWQsXHJcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIGxldCBkZWZpbml0aW9uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBzd2l0Y2ggKG1ldHJpYykge1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQUNUSVZFX1VTRVJTOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSBgVGhlIG51bWJlciBvZiB1bmlxdWUgdXNlcnMgd2hvIGVuZ2FnZWQgd2l0aCB5b3VyIHNpdGUgb3IgYXBwIGluIGEgc3BlY2lmaWVkIGRhdGUgcmFuZ2UuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLk5FV19VU0VSUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBudW1iZXIgb2YgbmV3IHVuaXF1ZSB1c2VycyB3aG8gdmlzaXRzIHlvdXIgd2Vic2l0ZSBvciBhcHAgZm9yIHRoZSBmaXJzdCB0aW1lIGR1cmluZyBhIHNwZWNpZmllZCBwZXJpb2QuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkJPVU5DRV9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSBgVGhlIHBlcmNlbnRhZ2Ugb2Ygc2Vzc2lvbnMgdGhhdCBlbmQgYWZ0ZXIgYSBzaW5nbGUgcGFnZSB2aWV3LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5TRVNTSU9OUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gYEEgc2Vzc2lvbiBpcyBhIHBlcmlvZCBvZiB0aW1lIGR1cmluZyB3aGljaCBhIHVzZXIgaW50ZXJhY3RzIHdpdGggeW91ciB3ZWJzaXRlIG9yIGFwcC4gQW5hbHl0aWNzIGNhbGN1bGF0ZXMgdGhlIG51bWJlciBvZiBzZXNzaW9ucyB0aGF0IG9jY3VyIG9uIHlvdXIgc2l0ZSBvciBhcHAgYnkgZXN0aW1hdGluZyB0aGUgbnVtYmVyIG9mIHVuaXF1ZSBzZXNzaW9uIElEcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uU0NSRUVOX1BBR0VfVklFV1M6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBUaGUgbnVtYmVyIG9mIGFwcCBzY3JlZW5zIG9yIHdlYiBwYWdlcyB5b3VyIHVzZXJzIHZpZXdlZC4gUmVwZWF0ZWQgdmlld3Mgb2YgYSBzaW5nbGUgcGFnZSBvciBzY3JlZW4gYXJlIGNvdW50ZWQuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLklURU1fVklFV19FVkVOVFM6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBBIGNvdW50IG9mIGhvdyBtYW55IHRpbWVzIGEgdXNlciB2aWV3cyBwcm9kdWN0IGRldGFpbHMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBudW1iZXIgb2YgdGltZXMgdXNlcnMgYWRkZWQgcHJvZHVjdHMgdG8gdGhlaXIgc2hvcHBpbmcgY2FydHMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkNIRUNLT1VUUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBudW1iZXIgb2YgdGltZXMgdXNlcnMgc3RhcnRlZCB0aGUgY2hlY2tvdXQgcHJvY2Vzcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uRUNPTU1FUkNFX1BVUkNIQVNFUzpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBudW1iZXIgb2YgdGltZXMgdXNlcnMgY29tcGxldGVkIGEgcHVyY2hhc2UuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBVUkNIQVNFX1JFVkVOVUU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBQdXJjaGFzZSByZXZlbnVlIHNob3dzIHRoZSB0b3RhbCBhbW91bnQgb2YgcmV2ZW51ZSBnZW5lcmF0ZWQgZnJvbSBlY29tbWVyY2UgYW5kIGluLWFwcCBwdXJjaGFzZXMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlBST0RVQ1RfVklFV19SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSBgVGhlIHBlcmNlbnRhZ2Ugb2Ygc2Vzc2lvbnMgd2hlcmUgYSB1c2VyIHZpZXdzIGEgcHJvZHVjdC4gSXQgbWVhc3VyZXMgaG93IG9mdGVuIHZpc2l0b3JzIGVuZ2FnZSB3aXRoIHByb2R1Y3QgcGFnZXMgcmVsYXRpdmUgdG8gb3ZlcmFsbCBzaXRlIGFjdGl2aXR5LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BRERfVE9fQ0FSVF9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSBgVGhlIHBlcmNlbnRhZ2Ugb2Ygc2Vzc2lvbnMgd2hlcmUgYSB1c2VyIGFkZHMgYSBwcm9kdWN0IHRvIHRoZWlyIGNhcnQuIEl0IGluZGljYXRlcyBob3cgZnJlcXVlbnRseSB2aXNpdG9ycyB0YWtlIHRoZSBzdGVwIHRvd2FyZCBhIHB1cmNoYXNlIGR1cmluZyB0aGVpciBzaXRlIHZpc2l0LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5BQ1RJVkVfVVNFUl9BRERfVE9fQ0FSVF9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSBgVGhlIHBlcmNlbnRhZ2Ugb2YgYWN0aXZlIHVzZXJzIHdobyBhZGQgYSBwcm9kdWN0IHRvIHRoZWlyIGNhcnQuIEl0IG1lYXN1cmVzIGhvdyBvZnRlbiBlbmdhZ2VkIHVzZXJz4oCUdGhvc2Ugd2hvIGludGVyYWN0IHdpdGggeW91ciBzaXRlIG9yIGFwcOKAlHRha2UgdGhlIGFjdGlvbiBvZiBhZGRpbmcgYW4gaXRlbSB0byB0aGVpciBjYXJ0LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5WSUVXX1RPX1BST0RVQ1RfVklFV19DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBUaGUgcGVyY2VudGFnZSBvZiB0b3RhbCBwYWdlIG9yIHNjcmVlbiB2aWV3cyB0aGF0IHJlc3VsdCBpbiBhIHByb2R1Y3Qgdmlldy4gSXQgbWVhc3VyZXMgaG93IG9mdGVuIGdlbmVyYWwgc2l0ZSBvciBhcHAgdmlzaXRzIGxlYWQgdG8gdXNlcnMgc3BlY2lmaWNhbGx5IHZpZXdpbmcgYSBwcm9kdWN0LmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5QUk9EVUNUX1ZJRVdfVE9fQ0FSVF9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBUaGUgcGVyY2VudGFnZSBvZiBwcm9kdWN0IHZpZXdzIHRoYXQgcmVzdWx0IGluIGFuIGl0ZW0gYmVpbmcgYWRkZWQgdG8gdGhlIGNhcnQuIEl0IG1lYXN1cmVzIGhvdyBlZmZlY3RpdmVseSB2aWV3aW5nIGEgcHJvZHVjdCBsZWFkcyB0byB0aGUgbmV4dCBzdGVwIGluIHRoZSBwdXJjaGFzZSBmdW5uZWwuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLlJFVkVOVUVfUEVSX1BST0RVQ1RfVklFVzpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBhdmVyYWdlIHJldmVudWUgZ2VuZXJhdGVkIHBlciBwcm9kdWN0IHZpZXcuIEl0IG1lYXN1cmVzIHRoZSBtb25ldGFyeSB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggZWFjaCBpbnN0YW5jZSBvZiBhIHVzZXIgdmlld2luZyBhIHByb2R1Y3QsIHJlZmxlY3RpbmcgdGhlIGVmZmVjdGl2ZW5lc3Mgb2YgcHJvZHVjdCB2aWV3cyBpbiBkcml2aW5nIHNhbGVzLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5SRVZFTlVFX1BFUl9BRERfVE9fQ0FSVDpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBhdmVyYWdlIHJldmVudWUgZ2VuZXJhdGVkIHBlciBpbnN0YW5jZSBvZiBhIHByb2R1Y3QgYmVpbmcgYWRkZWQgdG8gdGhlIGNhcnQuIEl0IG1lYXN1cmVzIHRoZSBtb25ldGFyeSB2YWx1ZSB0aWVkIHRvIGVhY2ggYWRkLXRvLWNhcnQgYWN0aW9uLCBpbmRpY2F0aW5nIGhvdyBlZmZlY3RpdmVseSB0aGVzZSBhY3Rpb25zIGNvbnRyaWJ1dGUgdG8gb3ZlcmFsbCBzYWxlcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQUNUSVZFX1VTRVJfQ0hFQ0tPVVRfUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBwZXJjZW50YWdlIG9mIGFjdGl2ZSB1c2VycyB3aG8gaW5pdGlhdGUgYSBjaGVja291dCBJdCBtZWFzdXJlcyBob3cgb2Z0ZW4gZW5nYWdlZCB1c2Vyc+KAlHRob3NlIGludGVyYWN0aW5nIHdpdGggeW91ciBzaXRlIG9yIGFwcOKAlHByb2NlZWQgdG8gdGhlIGNoZWNrb3V0IHN0YWdlIG9mIHRoZSBwdXJjaGFzZSBwcm9jZXNzLmA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgTWV0cmljRW51bS5DQVJUX1RPX0NIRUNLT1VUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBwZXJjZW50YWdlIG9mIGFkZC10by1jYXJ0IGFjdGlvbnMgdGhhdCByZXN1bHQgaW4gYSBjaGVja291dCBiZWluZyBpbml0aWF0ZWQuIEl0IG1lYXN1cmVzIGhvdyBlZmZlY3RpdmVseSBhZGRpbmcgYW4gaXRlbSB0byB0aGUgY2FydCBsZWFkcyB0byB0aGUgdXNlciBzdGFydGluZyB0aGUgY2hlY2tvdXQgcHJvY2Vzcy5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUkVWRU5VRV9QRVJfQ0hFQ0tPVVQ6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBUaGUgYXZlcmFnZSByZXZlbnVlIGdlbmVyYXRlZCBwZXIgY2hlY2tvdXQgaW5pdGlhdGlvbi4gSXQgbWVhc3VyZXMgdGhlIG1vbmV0YXJ5IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBlYWNoIGluc3RhbmNlIG9mIGEgdXNlciBzdGFydGluZyB0aGUgY2hlY2tvdXQgcHJvY2VzcywgcmVmbGVjdGluZyBpdHMgY29udHJpYnV0aW9uIHRvIG92ZXJhbGwgc2FsZXMuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFERF9UT19DQVJUX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBwZXJjZW50YWdlIG9mIGFkZC10by1jYXJ0IGFjdGlvbnMgdGhhdCByZXN1bHQgaW4gYSBjb21wbGV0ZWQgZS1jb21tZXJjZSBwdXJjaGFzZS4gSXQgbWVhc3VyZXMgaG93IGVmZmVjdGl2ZWx5IGFkZGluZyBhbiBpdGVtIHRvIHRoZSBjYXJ0IGxlYWRzIHRvIGEgZmluYWwgc2FsZS5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uQ0hFQ0tPVVRfQ09OVkVSU0lPTl9SQVRFOlxyXG4gICAgICAgIGRlZmluaXRpb24gPSBgVGhlIHBlcmNlbnRhZ2Ugb2YgY2hlY2tvdXQgaW5pdGlhdGlvbnMgdGhhdCByZXN1bHQgaW4gYSBjb21wbGV0ZWQgZS1jb21tZXJjZSBwdXJjaGFzZS4gSXQgbWVhc3VyZXMgaG93IGVmZmVjdGl2ZWx5IHN0YXJ0aW5nIHRoZSBjaGVja291dCBwcm9jZXNzIGxlYWRzIHRvIGEgZmluYWxpemVkIHNhbGUuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkVDT01NRVJDRV9DT05WRVJTSU9OX1JBVEU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBUaGUgcGVyY2VudGFnZSBvZiBzZXNzaW9ucyB0aGF0IHJlc3VsdCBpbiBhIGNvbXBsZXRlZCBlLWNvbW1lcmNlIHB1cmNoYXNlLiBJdCBtZWFzdXJlcyBob3cgb2Z0ZW4gYSBzaXRlIHZpc2l0IGxlYWRzIHRvIGEgZmluYWxpemVkIHNhbGUsIHJlZmxlY3Rpbmcgb3ZlcmFsbCBlZmZlY3RpdmVuZXNzIG9mIHRoZSBlLWNvbW1lcmNlIGZ1bm5lbC5gO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIE1ldHJpY0VudW0uUFJPRFVDVF9WSUVXX0NPTlZFUlNJT05fUkFURTpcclxuICAgICAgICBkZWZpbml0aW9uID0gYFRoZSBwZXJjZW50YWdlIG9mIHByb2R1Y3Qgdmlld3MgdGhhdCByZXN1bHQgaW4gYSBjb21wbGV0ZWQgZS1jb21tZXJjZSBwdXJjaGFzZS4gSXQgbWVhc3VyZXMgaG93IGVmZmVjdGl2ZWx5IHZpZXdpbmcgYSBwcm9kdWN0IGxlYWRzIHRvIGEgZmluYWxpemVkIHNhbGUuYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBNZXRyaWNFbnVtLkFWRVJBR0VfT1JERVJfVkFMVUU6XHJcbiAgICAgICAgZGVmaW5pdGlvbiA9IGBUaGUgYXZlcmFnZSByZXZlbnVlIGdlbmVyYXRlZCBwZXIgY29tcGxldGVkIGUtY29tbWVyY2UgcHVyY2hhc2UuIEl0IG1lYXN1cmVzIHRoZSB0eXBpY2FsIG1vbmV0YXJ5IHZhbHVlIG9mIGVhY2ggb3JkZXIsIHByb3ZpZGluZyBpbnNpZ2h0IGludG8gY3VzdG9tZXIgc3BlbmRpbmcgYmVoYXZpb3IuYDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIHJldHVybiBkZWZpbml0aW9uO1xyXG4gIH1cclxufVxyXG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jebgem/model",
3
- "version": "0.0.77",
3
+ "version": "0.0.78",
4
4
  "peerDependencies": {
5
5
  "@jebgem/util": "*",
6
6
  "dayjs": "^1.11.19",