@dcl/asset-packs 2.2.2-20250414205812.commit-e178abf → 2.2.2-20250416192523.commit-542e822

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.
@@ -167,49 +167,6 @@ function initTextAnnouncementSync(engine) {
167
167
  id: ''
168
168
  });
169
169
  }
170
- function syncEntitiesComponents(engine, entities, requiredComponentIds, sdkHelpers, parentEntity = ADMIN_TOOLS_ENTITY) {
171
- const { SyncComponents } = getExplorerComponents(engine);
172
- const entitiesToSync = [];
173
- entities.forEach((item) => {
174
- const entity = item.entity;
175
- const syncComponents = SyncComponents.getMutableOrNull(entity);
176
- if (syncComponents) {
177
- const componentIds = new Set(syncComponents.componentIds);
178
- requiredComponentIds.forEach((id) => componentIds.add(id));
179
- syncComponents.componentIds = Array.from(componentIds);
180
- }
181
- else {
182
- entitiesToSync.push(entity);
183
- }
184
- });
185
- if (entitiesToSync.length > 0 && sdkHelpers?.syncEntity) {
186
- entitiesToSync.forEach((entity) => {
187
- sdkHelpers.syncEntity(entity, requiredComponentIds, parentEntity);
188
- });
189
- }
190
- }
191
- function initSmartItemsSync(engine, sdkHelpers) {
192
- const { Animator, Transform, Tween, VisibilityComponent } = getExplorerComponents(engine);
193
- const requiredComponentIds = [
194
- Animator.componentId,
195
- Transform.componentId,
196
- Tween.componentId,
197
- VisibilityComponent.componentId,
198
- ];
199
- const smartItems = getSmartItems(engine);
200
- syncEntitiesComponents(engine, smartItems, requiredComponentIds, sdkHelpers);
201
- }
202
- function initRewardsSync(engine, sdkHelpers) {
203
- const { Animator, Transform, Tween, VisibilityComponent } = getExplorerComponents(engine);
204
- const requiredComponentIds = [
205
- Animator.componentId,
206
- Transform.componentId,
207
- Tween.componentId,
208
- VisibilityComponent.componentId,
209
- ];
210
- const rewards = getRewards(engine);
211
- syncEntitiesComponents(engine, rewards, requiredComponentIds, sdkHelpers);
212
- }
213
170
  let adminDataInitialized = false;
214
171
  export async function initializeAdminData(engine, sdkHelpers) {
215
172
  console.log('initializeAdminData');
@@ -220,8 +177,6 @@ export async function initializeAdminData(engine, sdkHelpers) {
220
177
  state.adminToolkitUiEntity = engine.addEntity();
221
178
  initVideoControlSync(engine);
222
179
  initTextAnnouncementSync(engine);
223
- initSmartItemsSync(engine, sdkHelpers);
224
- initRewardsSync(engine, sdkHelpers);
225
180
  sdkHelpers?.syncEntity?.(state.adminToolkitUiEntity, [VideoControlState.componentId, TextAnnouncements.componentId], ADMIN_TOOLS_ENTITY);
226
181
  engine.addSystem(() => {
227
182
  if (nextTickFunctions.length > 0) {
@@ -425,4 +380,4 @@ const uiComponent = (engine, pointerEventsSystem, sdkHelpers, playersHelper) =>
425
380
  } })))) : null,
426
381
  ReactEcs.createElement(TextAnnouncements, { engine: engine, state: state })));
427
382
  };
428
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0QyxPQUFPLFFBQVEsRUFBRSxFQUNmLEtBQUssRUFDTCxNQUFNLElBQUksU0FBUyxFQUNuQixRQUFRLEdBRVQsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FJZCxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDNUQsT0FBTyxFQUFTLE9BQU8sRUFBcUIsTUFBTSxTQUFTLENBQUE7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXJELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQixFQUFFLENBQUE7QUFFbkQsSUFBSSxLQUFLLEdBQVU7SUFDakIsb0JBQW9CLEVBQUUsQ0FBVztJQUNqQyxTQUFTLEVBQUUsS0FBSztJQUNoQixTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUk7SUFDdkIsWUFBWSxFQUFFO1FB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O1FBQ1IsdUJBQUMsaUJBQWlCLElBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFJLENBQzFDLENBQ1osQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbG9yNCB9IGZyb20gJ0BkY2wvc2RrL21hdGgnXG5pbXBvcnQgUmVhY3RFY3MsIHtcbiAgTGFiZWwsXG4gIEJ1dHRvbiBhcyBEQ0xCdXR0b24sXG4gIFVpRW50aXR5LFxuICBSZWFjdEJhc2VkVWlTeXN0ZW0sXG59IGZyb20gJ0BkY2wvcmVhY3QtZWNzJ1xuaW1wb3J0IHsgRW50aXR5LCBJRW5naW5lLCBQb2ludGVyRXZlbnRzU3lzdGVtIH0gZnJvbSAnQGRjbC9lY3MnXG5cbmltcG9ydCB7XG4gIEFkbWluUGVybWlzc2lvbnMsXG4gIGdldENvbXBvbmVudHMsXG4gIEdldFBsYXllckRhdGFSZXMsXG4gIElQbGF5ZXJzSGVscGVyLFxuICBJU0RLSGVscGVycyxcbn0gZnJvbSAnLi4vZGVmaW5pdGlvbnMnXG5pbXBvcnQgeyBnZXRTY2FsZVVJRmFjdG9yIH0gZnJvbSAnLi4vdWknXG5pbXBvcnQgeyBWaWRlb0NvbnRyb2wgfSBmcm9tICcuL1ZpZGVvQ29udHJvbCdcbmltcG9ydCB7IFRleHRBbm5vdW5jZW1lbnRzQ29udHJvbCB9IGZyb20gJy4vVGV4dEFubm91bmNlbWVudHNDb250cm9sJ1xuLy8gaW1wb3J0IHsgUmV3YXJkc0NvbnRyb2wgfSBmcm9tICcuL1Jld2FyZHNDb250cm9sJ1xuaW1wb3J0IHsgU21hcnRJdGVtc0NvbnRyb2wgfSBmcm9tICcuL1NtYXJ0SXRlbXNDb250cm9sJ1xuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSAnLi9CdXR0b24nXG5pbXBvcnQgeyBUZXh0QW5ub3VuY2VtZW50cyB9IGZyb20gJy4vVGV4dEFubm91bmNlbWVudHMnXG5pbXBvcnQgeyBDT05URU5UX1VSTCB9IGZyb20gJy4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgZ2V0U2NlbmVEZXBsb3ltZW50LCBnZXRTY2VuZU93bmVycyB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgeyBTdGF0ZSwgVGFiVHlwZSwgU2VsZWN0ZWRTbWFydEl0ZW0gfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0RXhwbG9yZXJDb21wb25lbnRzIH0gZnJvbSAnLi4vY29tcG9uZW50cydcblxuZXhwb3J0IGNvbnN0IG5leHRUaWNrRnVuY3Rpb25zOiAoKCkgPT4gdm9pZClbXSA9IFtdXG5cbmxldCBzdGF0ZTogU3RhdGUgPSB7XG4gIGFkbWluVG9vbGtpdFVpRW50aXR5OiAwIGFzIEVudGl0eSxcbiAgcGFuZWxPcGVuOiBmYWxzZSxcbiAgYWN0aXZlVGFiOiBUYWJUeXBlLk5PTkUsXG4gIHZpZGVvQ29udHJvbDoge1xuICAgIHNoYXJlU2NyZWVuVXJsOiB1bmRlZmluZWQsXG4gICAgc2VsZWN0ZWRWaWRlb1BsYXllcjogdW5kZWZpbmVkLFxuICAgIGxpbmtBbGxWaWRlb1BsYXllcnM6IHVuZGVmaW5lZCxcbiAgfSxcbiAgc21hcnRJdGVtc0NvbnRyb2w6IHtcbiAgICBzZWxlY3RlZFNtYXJ0SXRlbTogdW5kZWZpbmVkLFxuICAgIHNtYXJ0SXRlbXM6IG5ldyBNYXA8RW50aXR5LCBTZWxlY3RlZFNtYXJ0SXRlbT4oKSxcbiAgfSxcbiAgdGV4dEFubm91bmNlbWVudENvbnRyb2w6IHtcbiAgICBlbnRpdHk6IHVuZGVmaW5lZCxcbiAgICB0ZXh0OiB1bmRlZmluZWQsXG4gICAgbWVzc2FnZVJhdGVUcmFja2VyOiBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpLFxuICAgIGFubm91bmNlbWVudHM6IFtdLFxuICAgIG1heEFubm91bmNlbWVudHM6IDQsXG4gIH0sXG4gIHJld2FyZHNDb250cm9sOiB7XG4gICAgc2VsZWN0ZWRSZXdhcmRJdGVtOiB1bmRlZmluZWQsXG4gIH0sXG59XG5cbi8vIEFkZCBjYWNoZSBvYmplY3RzIGF0IHRoZSB0b3AgbGV2ZWxcbmxldCBkZXBsb3ltZW50Q2FjaGU6IHtcbiAgZGF0YTogYW55XG4gIGRlcGxveWVkQnk/OiBzdHJpbmdcbiAgc2NlbmVCYXNlUG9zaXRpb24/OiBzdHJpbmdbXVxufSB8IG51bGwgPSBudWxsXG5cbmxldCBzY2VuZU93bmVyc0NhY2hlOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG5cbi8vIGNvbnN0IEJUTl9SRVdBUkRTX0NPTlRST0wgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtcmV3YXJkcy1jb250cm9sLWJ1dHRvbi5wbmdgXG4vLyBjb25zdCBCVE5fUkVXQVJEU19DT05UUk9MX0FDVElWRSA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC1yZXdhcmRzLWNvbnRyb2wtYWN0aXZlLWJ1dHRvbi5wbmdgXG5cbmNvbnN0IEJUTl9WSURFT19DT05UUk9MID0gYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2FkbWluLXBhbmVsLXZpZGVvLWNvbnRyb2wtYnV0dG9uLnBuZ2BcbmNvbnN0IEJUTl9WSURFT19DT05UUk9MX0FDVElWRSA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC12aWRlby1jb250cm9sLWFjdGl2ZS1idXR0b24ucG5nYFxuXG5jb25zdCBCVE5fU01BUlRfSVRFTV9DT05UUk9MID0gYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2FkbWluLXBhbmVsLXNtYXJ0LWl0ZW0tY29udHJvbC1idXR0b24ucG5nYFxuY29uc3QgQlROX1NNQVJUX0lURU1fQ09OVFJPTF9BQ1RJVkUgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtc21hcnQtaXRlbS1jb250cm9sLWFjdGl2ZS1idXR0b24ucG5nYFxuXG5jb25zdCBCVE5fVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC10ZXh0LWFubm91bmNlbWVudC1jb250cm9sLWJ1dHRvbi5wbmdgXG5jb25zdCBCVE5fVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTF9BQ1RJVkUgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtdGV4dC1hbm5vdW5jZW1lbnQtY29udHJvbC1hY3RpdmUtYnV0dG9uLnBuZ2BcblxuY29uc3QgQlROX0FETUlOX1RPT0xLSVRfQ09OVFJPTCA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC1jb250cm9sLWJ1dHRvbi5wbmdgXG5jb25zdCBCVE5fQURNSU5fVE9PTEtJVF9CQUNLR1JPVU5EID0gYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2JhY2tncm91bmRzL2FkbWluLXRvb2wtYmFja2dyb3VuZC5wbmdgXG5cbmNvbnN0IGNvbnRhaW5lckJhY2tncm91bmRDb2xvciA9IENvbG9yNC5jcmVhdGUoMCwgMCwgMCwgMC43NSlcblxuLy8gVGhlIGVkaXRvciBzdGFydHMgdXNpbmcgZW50aXRpZXMgZnJvbSBbODAwMV0uXG5jb25zdCBBRE1JTl9UT09MU19FTlRJVFkgPSA4MDAwIGFzIEVudGl0eVxuXG5mdW5jdGlvbiBnZXRBZG1pblRvb2xraXRFbnRpdHkoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IHsgQWRtaW5Ub29scyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpXG4gIHJldHVybiBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoQWRtaW5Ub29scykpWzBdWzBdXG59XG5cbmZ1bmN0aW9uIGdldEFkbWluVG9vbGtpdENvbXBvbmVudChlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBBZG1pblRvb2xzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcbiAgcmV0dXJuIEFycmF5LmZyb20oZW5naW5lLmdldEVudGl0aWVzV2l0aChBZG1pblRvb2xzKSlbMF1bMV1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5pdFNjZW5lRGVwbG95bWVudCgpIHtcbiAgaWYgKGRlcGxveW1lbnRDYWNoZSAhPT0gbnVsbCkgcmV0dXJuXG5cbiAgY29uc3QgZGVwbG95bWVudCA9IGF3YWl0IGdldFNjZW5lRGVwbG95bWVudCgpXG5cbiAgaWYgKGRlcGxveW1lbnQpIHtcbiAgICBkZXBsb3ltZW50Q2FjaGUgPSB7XG4gICAgICBkYXRhOiBkZXBsb3ltZW50LFxuICAgICAgZGVwbG95ZWRCeTogZGVwbG95bWVudC5kZXBsb3llZEJ5LnRvTG93ZXJDYXNlKCksXG4gICAgICBzY2VuZUJhc2VQb3NpdGlvbjogZGVwbG95bWVudC5tZXRhZGF0YS5zY2VuZS5iYXNlLnNwbGl0KCcsJyksXG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGluaXRTY2VuZU93bmVycygpIHtcbiAgaWYgKHNjZW5lT3duZXJzQ2FjaGUgIT09IG51bGwpIHJldHVyblxuXG4gIGNvbnN0IG93bmVycyA9IGF3YWl0IGdldFNjZW5lT3duZXJzKClcblxuICBpZiAob3duZXJzLmxlbmd0aCA+IDApIHtcbiAgICBzY2VuZU93bmVyc0NhY2hlID0gb3duZXJzXG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0VmlkZW9QbGF5ZXJzKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCBhZG1pblRvb2xraXRDb21wb25lbnQgPSBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lKVxuXG4gIGlmIChcbiAgICAhYWRtaW5Ub29sa2l0Q29tcG9uZW50IHx8XG4gICAgIWFkbWluVG9vbGtpdENvbXBvbmVudC52aWRlb0NvbnRyb2wgfHxcbiAgICAhYWRtaW5Ub29sa2l0Q29tcG9uZW50LnZpZGVvQ29udHJvbC52aWRlb1BsYXllcnMgfHxcbiAgICBhZG1pblRvb2xraXRDb21wb25lbnQudmlkZW9Db250cm9sLnZpZGVvUGxheWVycy5sZW5ndGggPT09IDBcbiAgKVxuICAgIHJldHVybiBbXVxuXG4gIHJldHVybiBBcnJheS5mcm9tKGFkbWluVG9vbGtpdENvbXBvbmVudC52aWRlb0NvbnRyb2wudmlkZW9QbGF5ZXJzKVxufVxuXG5mdW5jdGlvbiBnZXRTbWFydEl0ZW1zKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCBhZG1pblRvb2xraXRDb21wb25lbnQgPSBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lKVxuXG4gIGlmIChcbiAgICAhYWRtaW5Ub29sa2l0Q29tcG9uZW50IHx8XG4gICAgIWFkbWluVG9vbGtpdENvbXBvbmVudC5zbWFydEl0ZW1zQ29udHJvbCB8fFxuICAgICFhZG1pblRvb2xraXRDb21wb25lbnQuc21hcnRJdGVtc0NvbnRyb2wuc21hcnRJdGVtcyB8fFxuICAgIGFkbWluVG9vbGtpdENvbXBvbmVudC5zbWFydEl0ZW1zQ29udHJvbC5zbWFydEl0ZW1zLmxlbmd0aCA9PT0gMFxuICApXG4gICAgcmV0dXJuIFtdXG5cbiAgcmV0dXJuIEFycmF5LmZyb20oYWRtaW5Ub29sa2l0Q29tcG9uZW50LnNtYXJ0SXRlbXNDb250cm9sLnNtYXJ0SXRlbXMpXG59XG5cbmZ1bmN0aW9uIGdldFJld2FyZHMoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IGFkbWluVG9vbGtpdENvbXBvbmVudCA9IGdldEFkbWluVG9vbGtpdENvbXBvbmVudChlbmdpbmUpXG5cbiAgaWYgKFxuICAgICFhZG1pblRvb2xraXRDb21wb25lbnQgfHxcbiAgICAhYWRtaW5Ub29sa2l0Q29tcG9uZW50LnJld2FyZHNDb250cm9sIHx8XG4gICAgIWFkbWluVG9vbGtpdENvbXBvbmVudC5yZXdhcmRzQ29udHJvbC5yZXdhcmRJdGVtcyB8fFxuICAgIGFkbWluVG9vbGtpdENvbXBvbmVudC5yZXdhcmRzQ29udHJvbC5yZXdhcmRJdGVtcy5sZW5ndGggPT09IDBcbiAgKVxuICAgIHJldHVybiBbXVxuXG4gIHJldHVybiBBcnJheS5mcm9tKGFkbWluVG9vbGtpdENvbXBvbmVudC5yZXdhcmRzQ29udHJvbC5yZXdhcmRJdGVtcylcbn1cblxuZnVuY3Rpb24gc3luY1ZpZGVvUGxheWVyc1N0YXRlKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCB7IFZpZGVvQ29udHJvbFN0YXRlIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcbiAgY29uc3QgeyBWaWRlb1BsYXllciB9ID0gZ2V0RXhwbG9yZXJDb21wb25lbnRzKGVuZ2luZSlcblxuICBjb25zdCB2aWRlb0NvbnRyb2xTdGF0ZSA9IFZpZGVvQ29udHJvbFN0YXRlLmdldE9yTnVsbChcbiAgICBzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSxcbiAgKVxuICBpZiAoIXZpZGVvQ29udHJvbFN0YXRlPy52aWRlb1BsYXllcnMpIHJldHVyblxuXG4gIC8vIEl0ZXJhdGUgdGhyb3VnaCBlYWNoIHBsYXllciBpbiB0aGUgY29udHJvbCBzdGF0ZVxuICB2aWRlb0NvbnRyb2xTdGF0ZS52aWRlb1BsYXllcnMuZm9yRWFjaCgoY29udHJvbFBsYXllcikgPT4ge1xuICAgIGNvbnN0IHZpZGVvUGxheWVyID0gVmlkZW9QbGF5ZXIuZ2V0TXV0YWJsZU9yTnVsbChcbiAgICAgIGNvbnRyb2xQbGF5ZXIuZW50aXR5IGFzIEVudGl0eSxcbiAgICApXG4gICAgaWYgKCF2aWRlb1BsYXllcikgcmV0dXJuXG5cbiAgICAvLyBDaGVjayBhbmQgc3luYyBlYWNoIHByb3BlcnR5XG4gICAgaWYgKFxuICAgICAgY29udHJvbFBsYXllci5zcmMgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgdmlkZW9QbGF5ZXIuc3JjICE9PSBjb250cm9sUGxheWVyLnNyY1xuICAgICkge1xuICAgICAgdmlkZW9QbGF5ZXIuc3JjID0gY29udHJvbFBsYXllci5zcmNcbiAgICB9XG4gICAgaWYgKHZpZGVvUGxheWVyLnBsYXlpbmcgIT09IGNvbnRyb2xQbGF5ZXIucGxheWluZykge1xuICAgICAgdmlkZW9QbGF5ZXIucGxheWluZyA9ICEhY29udHJvbFBsYXllci5wbGF5aW5nXG4gICAgfVxuICAgIGlmICh2aWRlb1BsYXllci52b2x1bWUgIT09IGNvbnRyb2xQbGF5ZXIudm9sdW1lKSB7XG4gICAgICB2aWRlb1BsYXllci52b2x1bWUgPSBjb250cm9sUGxheWVyLnZvbHVtZSA/PyAwXG4gICAgfVxuICAgIGlmIChjb250cm9sUGxheWVyLnBvc2l0aW9uID09PSAtMSAmJiB2aWRlb1BsYXllci5wb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2aWRlb1BsYXllci5wb3NpdGlvbiA9IC0xXG4gICAgfVxuICAgIGlmICh2aWRlb1BsYXllci5wb3NpdGlvbiA9PT0gLTEgJiYgY29udHJvbFBsYXllci5wb3NpdGlvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB2aWRlb1BsYXllci5wb3NpdGlvbiA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAodmlkZW9QbGF5ZXIubG9vcCAhPT0gY29udHJvbFBsYXllci5sb29wKSB7XG4gICAgICB2aWRlb1BsYXllci5sb29wID0gISFjb250cm9sUGxheWVyLmxvb3BcbiAgICB9XG4gIH0pXG59XG5cbmZ1bmN0aW9uIGluaXRWaWRlb0NvbnRyb2xTeW5jKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCB7IFZpZGVvQ29udHJvbFN0YXRlIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcbiAgY29uc3QgeyBWaWRlb1BsYXllciB9ID0gZ2V0RXhwbG9yZXJDb21wb25lbnRzKGVuZ2luZSlcblxuICBjb25zdCB2aWRlb1BsYXllcnMgPSBnZXRWaWRlb1BsYXllcnMoZW5naW5lKVxuXG4gIGxldCBzeW5jVmlkZW9QbGF5ZXJzOiBhbnkgPSBbXVxuXG4gIHZpZGVvUGxheWVycy5mb3JFYWNoKChwbGF5ZXIpID0+IHtcbiAgICBjb25zdCB2cCA9IFZpZGVvUGxheWVyLmdldE9yTnVsbChwbGF5ZXIuZW50aXR5IGFzIEVudGl0eSlcbiAgICBpZiAodnApIHtcbiAgICAgIHN5bmNWaWRlb1BsYXllcnMucHVzaCh7XG4gICAgICAgIGVudGl0eTogcGxheWVyLmVudGl0eSBhcyBFbnRpdHksXG4gICAgICAgIHNyYzogdnAuc3JjLFxuICAgICAgICBwbGF5aW5nOiB2cC5wbGF5aW5nLFxuICAgICAgICB2b2x1bWU6IHZwLnZvbHVtZSxcbiAgICAgICAgcG9zaXRpb246IHZwLnBvc2l0aW9uLFxuICAgICAgICBsb29wOiB2cC5sb29wLFxuICAgICAgfSlcbiAgICB9XG4gIH0pXG5cbiAgVmlkZW9Db250cm9sU3RhdGUuY3JlYXRlT3JSZXBsYWNlKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCB7XG4gICAgdmlkZW9QbGF5ZXJzOiBzeW5jVmlkZW9QbGF5ZXJzLFxuICB9KVxuXG4gIC8vIFNldCB1cCB0aGUgc3luYyBzeXN0ZW1cbiAgZW5naW5lLmFkZFN5c3RlbSgoKSA9PiB7XG4gICAgc3luY1ZpZGVvUGxheWVyc1N0YXRlKGVuZ2luZSlcbiAgfSlcbn1cblxuZnVuY3Rpb24gaW5pdFRleHRBbm5vdW5jZW1lbnRTeW5jKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCB7IFRleHRBbm5vdW5jZW1lbnRzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcblxuICBUZXh0QW5ub3VuY2VtZW50cy5jcmVhdGVPclJlcGxhY2Uoc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHksIHtcbiAgICB0ZXh0OiAnJyxcbiAgICBhdXRob3I6ICcnLFxuICAgIGlkOiAnJ1xuICB9KVxufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gc3luYyBlbnRpdGllcyBjb21wb25lbnRzXG5mdW5jdGlvbiBzeW5jRW50aXRpZXNDb21wb25lbnRzKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIGVudGl0aWVzOiB7IGVudGl0eTogbnVtYmVyIHwgRW50aXR5IH1bXSxcbiAgcmVxdWlyZWRDb21wb25lbnRJZHM6IG51bWJlcltdLFxuICBzZGtIZWxwZXJzPzogSVNES0hlbHBlcnMsXG4gIHBhcmVudEVudGl0eTogRW50aXR5ID0gQURNSU5fVE9PTFNfRU5USVRZLFxuKSB7XG4gIGNvbnN0IHsgU3luY0NvbXBvbmVudHMgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpXG4gIGNvbnN0IGVudGl0aWVzVG9TeW5jOiBFbnRpdHlbXSA9IFtdXG5cbiAgZW50aXRpZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgIGNvbnN0IGVudGl0eSA9IGl0ZW0uZW50aXR5IGFzIEVudGl0eVxuICAgIGNvbnN0IHN5bmNDb21wb25lbnRzID0gU3luY0NvbXBvbmVudHMuZ2V0TXV0YWJsZU9yTnVsbChlbnRpdHkpXG5cbiAgICBpZiAoc3luY0NvbXBvbmVudHMpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudElkcyA9IG5ldyBTZXQoc3luY0NvbXBvbmVudHMuY29tcG9uZW50SWRzKVxuICAgICAgcmVxdWlyZWRDb21wb25lbnRJZHMuZm9yRWFjaCgoaWQpID0+IGNvbXBvbmVudElkcy5hZGQoaWQpKVxuICAgICAgc3luY0NvbXBvbmVudHMuY29tcG9uZW50SWRzID0gQXJyYXkuZnJvbShjb21wb25lbnRJZHMpXG4gICAgfSBlbHNlIHtcbiAgICAgIGVudGl0aWVzVG9TeW5jLnB1c2goZW50aXR5KVxuICAgIH1cbiAgfSlcblxuICBpZiAoZW50aXRpZXNUb1N5bmMubGVuZ3RoID4gMCAmJiBzZGtIZWxwZXJzPy5zeW5jRW50aXR5KSB7XG4gICAgZW50aXRpZXNUb1N5bmMuZm9yRWFjaCgoZW50aXR5KSA9PiB7XG4gICAgICBzZGtIZWxwZXJzLnN5bmNFbnRpdHkhKGVudGl0eSwgcmVxdWlyZWRDb21wb25lbnRJZHMsIHBhcmVudEVudGl0eSlcbiAgICB9KVxuICB9XG59XG5cbmZ1bmN0aW9uIGluaXRTbWFydEl0ZW1zU3luYyhlbmdpbmU6IElFbmdpbmUsIHNka0hlbHBlcnM/OiBJU0RLSGVscGVycykge1xuICBjb25zdCB7IEFuaW1hdG9yLCBUcmFuc2Zvcm0sIFR3ZWVuLCBWaXNpYmlsaXR5Q29tcG9uZW50IH0gPVxuICAgIGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpXG5cbiAgY29uc3QgcmVxdWlyZWRDb21wb25lbnRJZHMgPSBbXG4gICAgQW5pbWF0b3IuY29tcG9uZW50SWQsXG4gICAgVHJhbnNmb3JtLmNvbXBvbmVudElkLFxuICAgIFR3ZWVuLmNvbXBvbmVudElkLFxuICAgIFZpc2liaWxpdHlDb21wb25lbnQuY29tcG9uZW50SWQsXG4gIF1cblxuICBjb25zdCBzbWFydEl0ZW1zID0gZ2V0U21hcnRJdGVtcyhlbmdpbmUpXG4gIHN5bmNFbnRpdGllc0NvbXBvbmVudHMoZW5naW5lLCBzbWFydEl0ZW1zLCByZXF1aXJlZENvbXBvbmVudElkcywgc2RrSGVscGVycylcbn1cblxuZnVuY3Rpb24gaW5pdFJld2FyZHNTeW5jKGVuZ2luZTogSUVuZ2luZSwgc2RrSGVscGVycz86IElTREtIZWxwZXJzKSB7XG4gIGNvbnN0IHsgQW5pbWF0b3IsIFRyYW5zZm9ybSwgVHdlZW4sIFZpc2liaWxpdHlDb21wb25lbnQgfSA9XG4gICAgZ2V0RXhwbG9yZXJDb21wb25lbnRzKGVuZ2luZSlcblxuICBjb25zdCByZXF1aXJlZENvbXBvbmVudElkcyA9IFtcbiAgICBBbmltYXRvci5jb21wb25lbnRJZCxcbiAgICBUcmFuc2Zvcm0uY29tcG9uZW50SWQsXG4gICAgVHdlZW4uY29tcG9uZW50SWQsXG4gICAgVmlzaWJpbGl0eUNvbXBvbmVudC5jb21wb25lbnRJZCxcbiAgXVxuXG4gIGNvbnN0IHJld2FyZHMgPSBnZXRSZXdhcmRzKGVuZ2luZSlcbiAgc3luY0VudGl0aWVzQ29tcG9uZW50cyhlbmdpbmUsIHJld2FyZHMsIHJlcXVpcmVkQ29tcG9uZW50SWRzLCBzZGtIZWxwZXJzKVxufVxuXG4vLyBJbml0aWFsaXplIGFkbWluIGRhdGEgYmVmb3JlIFVJIHJlbmRlcmluZ1xubGV0IGFkbWluRGF0YUluaXRpYWxpemVkID0gZmFsc2VcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbml0aWFsaXplQWRtaW5EYXRhKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIHNka0hlbHBlcnM/OiBJU0RLSGVscGVycyxcbikge1xuICBjb25zb2xlLmxvZygnaW5pdGlhbGl6ZUFkbWluRGF0YScpXG4gIGlmICghYWRtaW5EYXRhSW5pdGlhbGl6ZWQpIHtcbiAgICBjb25zb2xlLmxvZygnaW5pdGlhbGl6ZUFkbWluRGF0YSAtIG5vdCBpbml0aWFsaXplZCcpXG4gICAgY29uc3QgeyBWaWRlb0NvbnRyb2xTdGF0ZSwgVGV4dEFubm91bmNlbWVudHMgfSA9IGdldENvbXBvbmVudHMoZW5naW5lKVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBzY2VuZSBkYXRhXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoW2luaXRTY2VuZURlcGxveW1lbnQoKSwgaW5pdFNjZW5lT3duZXJzKCldKVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBBZG1pblRvb2xraXRVaUVudGl0eVxuICAgIHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5ID0gZW5naW5lLmFkZEVudGl0eSgpXG5cbiAgICAvLyBJbml0aWFsaXplIFZpZGVvQ29udHJvbCBzeW5jIGNvbXBvbmVudFxuICAgIGluaXRWaWRlb0NvbnRyb2xTeW5jKGVuZ2luZSlcblxuICAgIC8vIEluaXRpYWxpemUgVGV4dEFubm91bmNlbWVudHMgc3luYyBjb21wb25lbnRcbiAgICBpbml0VGV4dEFubm91bmNlbWVudFN5bmMoZW5naW5lKVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBTbWFydCBJdGVtcyBzeW5jXG4gICAgaW5pdFNtYXJ0SXRlbXNTeW5jKGVuZ2luZSwgc2RrSGVscGVycylcblxuICAgIC8vIEluaXRpYWxpemUgUmV3YXJkcyBzeW5jXG4gICAgaW5pdFJld2FyZHNTeW5jKGVuZ2luZSwgc2RrSGVscGVycylcblxuICAgIHNka0hlbHBlcnM/LnN5bmNFbnRpdHk/LihcbiAgICAgIHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LFxuICAgICAgW1ZpZGVvQ29udHJvbFN0YXRlLmNvbXBvbmVudElkLCBUZXh0QW5ub3VuY2VtZW50cy5jb21wb25lbnRJZF0sXG4gICAgICBBRE1JTl9UT09MU19FTlRJVFksXG4gICAgKVxuXG4gICAgZW5naW5lLmFkZFN5c3RlbSgoKSA9PiB7XG4gICAgICBpZiAobmV4dFRpY2tGdW5jdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBuZXh0VGljayA9IG5leHRUaWNrRnVuY3Rpb25zLnNoaWZ0KClcbiAgICAgICAgaWYgKG5leHRUaWNrKSB7XG4gICAgICAgICAgbmV4dFRpY2soKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKVxuXG4gICAgYWRtaW5EYXRhSW5pdGlhbGl6ZWQgPSB0cnVlXG5cbiAgICBjb25zb2xlLmxvZygnaW5pdGlhbGl6ZUFkbWluRGF0YSAtIGluaXRpYWxpemVkJylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWRtaW5Ub29sa2l0VUkoXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgcG9pbnRlckV2ZW50c1N5c3RlbTogUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgcmVhY3RCYXNlZFVpU3lzdGVtOiBSZWFjdEJhc2VkVWlTeXN0ZW0sXG4gIHNka0hlbHBlcnM/OiBJU0RLSGVscGVycyxcbiAgcGxheWVyc0hlbHBlcj86IElQbGF5ZXJzSGVscGVyLFxuKSB7XG4gIC8vIEluaXRpYWxpemUgYWRtaW4gZGF0YSBiZWZvcmUgc2V0dGluZyB1cCB0aGUgVUlcbiAgaW5pdGlhbGl6ZUFkbWluRGF0YShlbmdpbmUsIHNka0hlbHBlcnMpLnRoZW4oKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdjcmVhdGVBZG1pblRvb2xraXRVSSAtIGluaXRpYWxpemVkJylcbiAgICByZWFjdEJhc2VkVWlTeXN0ZW0uc2V0VWlSZW5kZXJlcigoKSA9PlxuICAgICAgdWlDb21wb25lbnQoZW5naW5lLCBwb2ludGVyRXZlbnRzU3lzdGVtLCBzZGtIZWxwZXJzLCBwbGF5ZXJzSGVscGVyKSxcbiAgICApXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGlzU2NlbmVEZXBsb3llcihwbGF5ZXJBZGRyZXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGRlcGxveW1lbnRDYWNoZT8uZGVwbG95ZWRCeSA9PT0gcGxheWVyQWRkcmVzcy50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIGlzU2NlbmVPd25lcihwbGF5ZXJBZGRyZXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChzY2VuZU93bmVyc0NhY2hlIHx8IFtdKS5pbmNsdWRlcyhwbGF5ZXJBZGRyZXNzLnRvTG93ZXJDYXNlKCkpXG59XG5cbmZ1bmN0aW9uIGlzQWxsb3dlZEFkbWluKFxuICBfZW5naW5lOiBJRW5naW5lLFxuICBhZG1pblRvb2xraXRFbnRpdGllOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBZG1pblRvb2xraXRDb21wb25lbnQ+LFxuICBwbGF5ZXI/OiBHZXRQbGF5ZXJEYXRhUmVzIHwgbnVsbCxcbikge1xuICBjb25zdCB7IGFkbWluUGVybWlzc2lvbnMsIGF1dGhvcml6ZWRBZG1pblVzZXJzIH0gPSBhZG1pblRvb2xraXRFbnRpdGllXG5cbiAgaWYgKGFkbWluUGVybWlzc2lvbnMgPT09IEFkbWluUGVybWlzc2lvbnMuUFVCTElDKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICghcGxheWVyKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBwbGF5ZXJBZGRyZXNzID0gcGxheWVyLnVzZXJJZC50b0xvd2VyQ2FzZSgpXG5cbiAgLy8gQ2hlY2sgaWYgcGxheWVyIGlzIHRoZSBkZXBsb3llclxuICBpZiAoYXV0aG9yaXplZEFkbWluVXNlcnMubWUgJiYgaXNTY2VuZURlcGxveWVyKHBsYXllckFkZHJlc3MpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHBsYXllciBpcyBhIHNjZW5lIG93bmVyXG4gIGlmIChhdXRob3JpemVkQWRtaW5Vc2Vycy5zY2VuZU93bmVycyAmJiBpc1NjZW5lT3duZXIocGxheWVyQWRkcmVzcykpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgcGxheWVyIGlzIGluIHRoZSBhbGxvdyBsaXN0XG4gIGlmIChcbiAgICBhdXRob3JpemVkQWRtaW5Vc2Vycy5hbGxvd0xpc3QgJiZcbiAgICBhdXRob3JpemVkQWRtaW5Vc2Vycy5hZG1pbkFsbG93TGlzdC5zb21lKFxuICAgICAgKHdhbGxldCkgPT4gd2FsbGV0LnRvTG93ZXJDYXNlKCkgPT09IHBsYXllckFkZHJlc3MsXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmNvbnN0IHVpQ29tcG9uZW50ID0gKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIHNka0hlbHBlcnM/OiBJU0RLSGVscGVycyxcbiAgcGxheWVyc0hlbHBlcj86IElQbGF5ZXJzSGVscGVyLFxuKSA9PiB7XG4gIGNvbnN0IGFkbWluVG9vbGtpdEVudGl0aWUgPSBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lKVxuICBjb25zdCBwbGF5ZXIgPSBwbGF5ZXJzSGVscGVyPy5nZXRQbGF5ZXIoKVxuICBjb25zdCBpc1BsYXllckFkbWluID0gaXNBbGxvd2VkQWRtaW4oZW5naW5lLCBhZG1pblRvb2xraXRFbnRpdGllLCBwbGF5ZXIpXG4gIGNvbnN0IHNjYWxlRmFjdG9yID0gZ2V0U2NhbGVVSUZhY3RvcihlbmdpbmUpXG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHlcbiAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtpc1BsYXllckFkbWluID8gKFxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyB0b3A6IDgwICogc2NhbGVGYWN0b3IsIHJpZ2h0OiAxMCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZGlzcGxheTogc3RhdGUucGFuZWxPcGVuID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgICB3aWR0aDogNTAwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgIHBvaW50ZXJGaWx0ZXI6ICdibG9jaycsXG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogNTAgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICAgICAgICBsZWZ0OiAxMiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBjb250YWluZXJCYWNrZ3JvdW5kQ29sb3IgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJBZG1pbiBUb29sc1wiXG4gICAgICAgICAgICAgICAgZm9udFNpemU9ezIwICogc2NhbGVGYWN0b3J9XG4gICAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5jcmVhdGUoMTYwLCAxNTUsIDE2OCwgMSl9XG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3sgZmxleEdyb3c6IDEgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiYWRtaW5fdG9vbGtpdF9wYW5lbF92aWRlb19jb250cm9sXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVklERU9fQ09OVFJPTFxuICAgICAgICAgICAgICAgICAgICA/IEJUTl9WSURFT19DT05UUk9MX0FDVElWRVxuICAgICAgICAgICAgICAgICAgICA6IEJUTl9WSURFT19DT05UUk9MXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGFkbWluVG9vbGtpdEVudGl0aWUudmlkZW9Db250cm9sLmlzRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICA/ICdmbGV4J1xuICAgICAgICAgICAgICAgICAgICA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVklERU9fQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgICAgbmV4dFRpY2tGdW5jdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5WSURFT19DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJhZG1pbl90b29sa2l0X3BhbmVsX3NtYXJ0X2l0ZW1zX2NvbnRyb2xcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5TTUFSVF9JVEVNU19DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgID8gQlROX1NNQVJUX0lURU1fQ09OVFJPTF9BQ1RJVkVcbiAgICAgICAgICAgICAgICAgICAgOiBCVE5fU01BUlRfSVRFTV9DT05UUk9MXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGFkbWluVG9vbGtpdEVudGl0aWUuc21hcnRJdGVtc0NvbnRyb2wuaXNFbmFibGVkXG4gICAgICAgICAgICAgICAgICAgID8gJ2ZsZXgnXG4gICAgICAgICAgICAgICAgICAgIDogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ5ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmFjdGl2ZVRhYiAhPT0gVGFiVHlwZS5TTUFSVF9JVEVNU19DT05UUk9MKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuTk9ORVxuICAgICAgICAgICAgICAgICAgICBuZXh0VGlja0Z1bmN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuTk9ORVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImFkbWluX3Rvb2xraXRfcGFuZWxfdGV4dF9hbm5vdW5jZW1lbnRfY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlRFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgPyBCVE5fVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTF9BQ1RJVkVcbiAgICAgICAgICAgICAgICAgICAgOiBCVE5fVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvbmx5SWNvblxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBhZG1pblRvb2xraXRFbnRpdGllLnRleHRBbm5vdW5jZW1lbnRDb250cm9sLmlzRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICA/ICdmbGV4J1xuICAgICAgICAgICAgICAgICAgICA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgICAgbmV4dFRpY2tGdW5jdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5URVhUX0FOTk9VTkNFTUVOVF9DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7LyogPEJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiYWRtaW5fdG9vbGtpdF9wYW5lbF9yZXdhcmRzX2NvbnRyb2xcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5SRVdBUkRTX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgPyBCVE5fUkVXQVJEU19DT05UUk9MX0FDVElWRVxuICAgICAgICAgICAgICAgICAgICA6IEJUTl9SRVdBUkRTX0NPTlRST0xcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25seUljb25cbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYWRtaW5Ub29sa2l0RW50aXRpZS5yZXdhcmRzQ29udHJvbC5pc0VuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgPyAnZmxleCdcbiAgICAgICAgICAgICAgICAgICAgOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogNDkgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogJzAnLFxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmFjdGl2ZVRhYiAhPT0gVGFiVHlwZS5SRVdBUkRTX0NPTlRST0wpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FXG4gICAgICAgICAgICAgICAgICAgIG5leHRUaWNrRnVuY3Rpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuUkVXQVJEU19DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPiAqL31cbiAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICB7c3RhdGUuYWN0aXZlVGFiICE9PSBUYWJUeXBlLk5PTkUgPyAoXG4gICAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTAgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMzIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDMyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMzIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMzIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IGNvbnRhaW5lckJhY2tncm91bmRDb2xvciB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3N0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5URVhUX0FOTk9VTkNFTUVOVF9DT05UUk9MID8gKFxuICAgICAgICAgICAgICAgICAgPFRleHRBbm5vdW5jZW1lbnRzQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICAgICAgc3RhdGU9e3N0YXRlfVxuICAgICAgICAgICAgICAgICAgICBwbGF5ZXI9e3BsYXllcn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5WSURFT19DT05UUk9MID8gKFxuICAgICAgICAgICAgICAgICAgPFZpZGVvQ29udHJvbCBlbmdpbmU9e2VuZ2luZX0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuU01BUlRfSVRFTVNfQ09OVFJPTCA/IChcbiAgICAgICAgICAgICAgICAgIDxTbWFydEl0ZW1zQ29udHJvbCBlbmdpbmU9e2VuZ2luZX0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHsvKiB7c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlJFV0FSRFNfQ09OVFJPTCA/IChcbiAgICAgICAgICAgICAgICAgIDxSZXdhcmRzQ29udHJvbCBlbmdpbmU9e2VuZ2luZX0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfSAqL31cbiAgICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgIGhlaWdodDogNDIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgd2lkdGg6IDQyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBhbGlnbkNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIHBvaW50ZXJGaWx0ZXI6ICdibG9jaycsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IEJUTl9BRE1JTl9UT09MS0lUX0JBQ0tHUk9VTkQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuY3JlYXRlKDEsIDEsIDEsIDEpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8RENMQnV0dG9uXG4gICAgICAgICAgICAgIHZhbHVlPVwiXCJcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICAgIHNyYzogQlROX0FETUlOX1RPT0xLSVRfQ09OVFJPTCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgICAgY29sb3I6IENvbG9yNC5jcmVhdGUoMSwgMSwgMSwgMSksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RhdGUucGFuZWxPcGVuID0gIXN0YXRlLnBhbmVsT3BlblxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VGV4dEFubm91bmNlbWVudHMgZW5naW5lPXtlbmdpbmV9IHN0YXRlPXtzdGF0ZX0gLz5cbiAgICA8L1VpRW50aXR5PlxuICApXG59XG4iXX0=
383
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWRtaW4tdG9vbGtpdC11aS9pbmRleC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUN0QyxPQUFPLFFBQVEsRUFBRSxFQUNmLEtBQUssRUFDTCxNQUFNLElBQUksU0FBUyxFQUNuQixRQUFRLEdBRVQsTUFBTSxnQkFBZ0IsQ0FBQTtBQUd2QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGFBQWEsR0FJZCxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLE9BQU8sQ0FBQTtBQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFFckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDdkQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUNqQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFDNUQsT0FBTyxFQUFTLE9BQU8sRUFBcUIsTUFBTSxTQUFTLENBQUE7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBRXJELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFtQixFQUFFLENBQUE7QUFFbkQsSUFBSSxLQUFLLEdBQVU7SUFDakIsb0JBQW9CLEVBQUUsQ0FBVztJQUNqQyxTQUFTLEVBQUUsS0FBSztJQUNoQixTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUk7SUFDdkIsWUFBWSxFQUFFO1FB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QUFHLEVBQUU7d0JBQ2hCLEtBQUssQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFBO29CQUNwQyxDQUFDLEdBQ0QsQ0FDTyxDQUNGLENBQ1osQ0FBQyxDQUFDLENBQUMsSUFBSTtRQUNSLHVCQUFDLGlCQUFpQixJQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssR0FBSSxDQUMxQyxDQUNaLENBQUE7QUFDSCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IFJlYWN0RWNzLCB7XG4gIExhYmVsLFxuICBCdXR0b24gYXMgRENMQnV0dG9uLFxuICBVaUVudGl0eSxcbiAgUmVhY3RCYXNlZFVpU3lzdGVtLFxufSBmcm9tICdAZGNsL3JlYWN0LWVjcydcbmltcG9ydCB7IEVudGl0eSwgSUVuZ2luZSwgUG9pbnRlckV2ZW50c1N5c3RlbSB9IGZyb20gJ0BkY2wvZWNzJ1xuXG5pbXBvcnQge1xuICBBZG1pblBlcm1pc3Npb25zLFxuICBnZXRDb21wb25lbnRzLFxuICBHZXRQbGF5ZXJEYXRhUmVzLFxuICBJUGxheWVyc0hlbHBlcixcbiAgSVNES0hlbHBlcnMsXG59IGZyb20gJy4uL2RlZmluaXRpb25zJ1xuaW1wb3J0IHsgZ2V0U2NhbGVVSUZhY3RvciB9IGZyb20gJy4uL3VpJ1xuaW1wb3J0IHsgVmlkZW9Db250cm9sIH0gZnJvbSAnLi9WaWRlb0NvbnRyb2wnXG5pbXBvcnQgeyBUZXh0QW5ub3VuY2VtZW50c0NvbnRyb2wgfSBmcm9tICcuL1RleHRBbm5vdW5jZW1lbnRzQ29udHJvbCdcbi8vIGltcG9ydCB7IFJld2FyZHNDb250cm9sIH0gZnJvbSAnLi9SZXdhcmRzQ29udHJvbCdcbmltcG9ydCB7IFNtYXJ0SXRlbXNDb250cm9sIH0gZnJvbSAnLi9TbWFydEl0ZW1zQ29udHJvbCdcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4vQnV0dG9uJ1xuaW1wb3J0IHsgVGV4dEFubm91bmNlbWVudHMgfSBmcm9tICcuL1RleHRBbm5vdW5jZW1lbnRzJ1xuaW1wb3J0IHsgQ09OVEVOVF9VUkwgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7IGdldFNjZW5lRGVwbG95bWVudCwgZ2V0U2NlbmVPd25lcnMgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgU3RhdGUsIFRhYlR5cGUsIFNlbGVjdGVkU21hcnRJdGVtIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IGdldEV4cGxvcmVyQ29tcG9uZW50cyB9IGZyb20gJy4uL2NvbXBvbmVudHMnXG5cbmV4cG9ydCBjb25zdCBuZXh0VGlja0Z1bmN0aW9uczogKCgpID0+IHZvaWQpW10gPSBbXVxuXG5sZXQgc3RhdGU6IFN0YXRlID0ge1xuICBhZG1pblRvb2xraXRVaUVudGl0eTogMCBhcyBFbnRpdHksXG4gIHBhbmVsT3BlbjogZmFsc2UsXG4gIGFjdGl2ZVRhYjogVGFiVHlwZS5OT05FLFxuICB2aWRlb0NvbnRyb2w6IHtcbiAgICBzaGFyZVNjcmVlblVybDogdW5kZWZpbmVkLFxuICAgIHNlbGVjdGVkVmlkZW9QbGF5ZXI6IHVuZGVmaW5lZCxcbiAgICBsaW5rQWxsVmlkZW9QbGF5ZXJzOiB1bmRlZmluZWQsXG4gIH0sXG4gIHNtYXJ0SXRlbXNDb250cm9sOiB7XG4gICAgc2VsZWN0ZWRTbWFydEl0ZW06IHVuZGVmaW5lZCxcbiAgICBzbWFydEl0ZW1zOiBuZXcgTWFwPEVudGl0eSwgU2VsZWN0ZWRTbWFydEl0ZW0+KCksXG4gIH0sXG4gIHRleHRBbm5vdW5jZW1lbnRDb250cm9sOiB7XG4gICAgZW50aXR5OiB1bmRlZmluZWQsXG4gICAgdGV4dDogdW5kZWZpbmVkLFxuICAgIG1lc3NhZ2VSYXRlVHJhY2tlcjogbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKSxcbiAgICBhbm5vdW5jZW1lbnRzOiBbXSxcbiAgICBtYXhBbm5vdW5jZW1lbnRzOiA0LFxuICB9LFxuICByZXdhcmRzQ29udHJvbDoge1xuICAgIHNlbGVjdGVkUmV3YXJkSXRlbTogdW5kZWZpbmVkLFxuICB9LFxufVxuXG4vLyBBZGQgY2FjaGUgb2JqZWN0cyBhdCB0aGUgdG9wIGxldmVsXG5sZXQgZGVwbG95bWVudENhY2hlOiB7XG4gIGRhdGE6IGFueVxuICBkZXBsb3llZEJ5Pzogc3RyaW5nXG4gIHNjZW5lQmFzZVBvc2l0aW9uPzogc3RyaW5nW11cbn0gfCBudWxsID0gbnVsbFxuXG5sZXQgc2NlbmVPd25lcnNDYWNoZTogc3RyaW5nW10gfCBudWxsID0gbnVsbFxuXG4vLyBjb25zdCBCVE5fUkVXQVJEU19DT05UUk9MID0gYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2FkbWluLXBhbmVsLXJld2FyZHMtY29udHJvbC1idXR0b24ucG5nYFxuLy8gY29uc3QgQlROX1JFV0FSRFNfQ09OVFJPTF9BQ1RJVkUgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtcmV3YXJkcy1jb250cm9sLWFjdGl2ZS1idXR0b24ucG5nYFxuXG5jb25zdCBCVE5fVklERU9fQ09OVFJPTCA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC12aWRlby1jb250cm9sLWJ1dHRvbi5wbmdgXG5jb25zdCBCVE5fVklERU9fQ09OVFJPTF9BQ1RJVkUgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtdmlkZW8tY29udHJvbC1hY3RpdmUtYnV0dG9uLnBuZ2BcblxuY29uc3QgQlROX1NNQVJUX0lURU1fQ09OVFJPTCA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9pY29ucy9hZG1pbi1wYW5lbC1zbWFydC1pdGVtLWNvbnRyb2wtYnV0dG9uLnBuZ2BcbmNvbnN0IEJUTl9TTUFSVF9JVEVNX0NPTlRST0xfQUNUSVZFID0gYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2FkbWluLXBhbmVsLXNtYXJ0LWl0ZW0tY29udHJvbC1hY3RpdmUtYnV0dG9uLnBuZ2BcblxuY29uc3QgQlROX1RFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0wgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtdGV4dC1hbm5vdW5jZW1lbnQtY29udHJvbC1idXR0b24ucG5nYFxuY29uc3QgQlROX1RFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0xfQUNUSVZFID0gYCR7Q09OVEVOVF9VUkx9L2FkbWluX3Rvb2xraXQvYXNzZXRzL2ljb25zL2FkbWluLXBhbmVsLXRleHQtYW5ub3VuY2VtZW50LWNvbnRyb2wtYWN0aXZlLWJ1dHRvbi5wbmdgXG5cbmNvbnN0IEJUTl9BRE1JTl9UT09MS0lUX0NPTlRST0wgPSBgJHtDT05URU5UX1VSTH0vYWRtaW5fdG9vbGtpdC9hc3NldHMvaWNvbnMvYWRtaW4tcGFuZWwtY29udHJvbC1idXR0b24ucG5nYFxuY29uc3QgQlROX0FETUlOX1RPT0xLSVRfQkFDS0dST1VORCA9IGAke0NPTlRFTlRfVVJMfS9hZG1pbl90b29sa2l0L2Fzc2V0cy9iYWNrZ3JvdW5kcy9hZG1pbi10b29sLWJhY2tncm91bmQucG5nYFxuXG5jb25zdCBjb250YWluZXJCYWNrZ3JvdW5kQ29sb3IgPSBDb2xvcjQuY3JlYXRlKDAsIDAsIDAsIDAuNzUpXG5cbi8vIFRoZSBlZGl0b3Igc3RhcnRzIHVzaW5nIGVudGl0aWVzIGZyb20gWzgwMDFdLlxuY29uc3QgQURNSU5fVE9PTFNfRU5USVRZID0gODAwMCBhcyBFbnRpdHlcblxuZnVuY3Rpb24gZ2V0QWRtaW5Ub29sa2l0RW50aXR5KGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCB7IEFkbWluVG9vbHMgfSA9IGdldENvbXBvbmVudHMoZW5naW5lKVxuICByZXR1cm4gQXJyYXkuZnJvbShlbmdpbmUuZ2V0RW50aXRpZXNXaXRoKEFkbWluVG9vbHMpKVswXVswXVxufVxuXG5mdW5jdGlvbiBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lOiBJRW5naW5lKSB7XG4gIGNvbnN0IHsgQWRtaW5Ub29scyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpXG4gIHJldHVybiBBcnJheS5mcm9tKGVuZ2luZS5nZXRFbnRpdGllc1dpdGgoQWRtaW5Ub29scykpWzBdWzFdXG59XG5cbmFzeW5jIGZ1bmN0aW9uIGluaXRTY2VuZURlcGxveW1lbnQoKSB7XG4gIGlmIChkZXBsb3ltZW50Q2FjaGUgIT09IG51bGwpIHJldHVyblxuXG4gIGNvbnN0IGRlcGxveW1lbnQgPSBhd2FpdCBnZXRTY2VuZURlcGxveW1lbnQoKVxuXG4gIGlmIChkZXBsb3ltZW50KSB7XG4gICAgZGVwbG95bWVudENhY2hlID0ge1xuICAgICAgZGF0YTogZGVwbG95bWVudCxcbiAgICAgIGRlcGxveWVkQnk6IGRlcGxveW1lbnQuZGVwbG95ZWRCeS50b0xvd2VyQ2FzZSgpLFxuICAgICAgc2NlbmVCYXNlUG9zaXRpb246IGRlcGxveW1lbnQubWV0YWRhdGEuc2NlbmUuYmFzZS5zcGxpdCgnLCcpLFxuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0U2NlbmVPd25lcnMoKSB7XG4gIGlmIChzY2VuZU93bmVyc0NhY2hlICE9PSBudWxsKSByZXR1cm5cblxuICBjb25zdCBvd25lcnMgPSBhd2FpdCBnZXRTY2VuZU93bmVycygpXG5cbiAgaWYgKG93bmVycy5sZW5ndGggPiAwKSB7XG4gICAgc2NlbmVPd25lcnNDYWNoZSA9IG93bmVyc1xuICB9XG59XG5cbmZ1bmN0aW9uIGdldFZpZGVvUGxheWVycyhlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgYWRtaW5Ub29sa2l0Q29tcG9uZW50ID0gZ2V0QWRtaW5Ub29sa2l0Q29tcG9uZW50KGVuZ2luZSlcblxuICBpZiAoXG4gICAgIWFkbWluVG9vbGtpdENvbXBvbmVudCB8fFxuICAgICFhZG1pblRvb2xraXRDb21wb25lbnQudmlkZW9Db250cm9sIHx8XG4gICAgIWFkbWluVG9vbGtpdENvbXBvbmVudC52aWRlb0NvbnRyb2wudmlkZW9QbGF5ZXJzIHx8XG4gICAgYWRtaW5Ub29sa2l0Q29tcG9uZW50LnZpZGVvQ29udHJvbC52aWRlb1BsYXllcnMubGVuZ3RoID09PSAwXG4gIClcbiAgICByZXR1cm4gW11cblxuICByZXR1cm4gQXJyYXkuZnJvbShhZG1pblRvb2xraXRDb21wb25lbnQudmlkZW9Db250cm9sLnZpZGVvUGxheWVycylcbn1cblxuZnVuY3Rpb24gZ2V0U21hcnRJdGVtcyhlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgYWRtaW5Ub29sa2l0Q29tcG9uZW50ID0gZ2V0QWRtaW5Ub29sa2l0Q29tcG9uZW50KGVuZ2luZSlcblxuICBpZiAoXG4gICAgIWFkbWluVG9vbGtpdENvbXBvbmVudCB8fFxuICAgICFhZG1pblRvb2xraXRDb21wb25lbnQuc21hcnRJdGVtc0NvbnRyb2wgfHxcbiAgICAhYWRtaW5Ub29sa2l0Q29tcG9uZW50LnNtYXJ0SXRlbXNDb250cm9sLnNtYXJ0SXRlbXMgfHxcbiAgICBhZG1pblRvb2xraXRDb21wb25lbnQuc21hcnRJdGVtc0NvbnRyb2wuc21hcnRJdGVtcy5sZW5ndGggPT09IDBcbiAgKVxuICAgIHJldHVybiBbXVxuXG4gIHJldHVybiBBcnJheS5mcm9tKGFkbWluVG9vbGtpdENvbXBvbmVudC5zbWFydEl0ZW1zQ29udHJvbC5zbWFydEl0ZW1zKVxufVxuXG5mdW5jdGlvbiBnZXRSZXdhcmRzKGVuZ2luZTogSUVuZ2luZSkge1xuICBjb25zdCBhZG1pblRvb2xraXRDb21wb25lbnQgPSBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lKVxuXG4gIGlmIChcbiAgICAhYWRtaW5Ub29sa2l0Q29tcG9uZW50IHx8XG4gICAgIWFkbWluVG9vbGtpdENvbXBvbmVudC5yZXdhcmRzQ29udHJvbCB8fFxuICAgICFhZG1pblRvb2xraXRDb21wb25lbnQucmV3YXJkc0NvbnRyb2wucmV3YXJkSXRlbXMgfHxcbiAgICBhZG1pblRvb2xraXRDb21wb25lbnQucmV3YXJkc0NvbnRyb2wucmV3YXJkSXRlbXMubGVuZ3RoID09PSAwXG4gIClcbiAgICByZXR1cm4gW11cblxuICByZXR1cm4gQXJyYXkuZnJvbShhZG1pblRvb2xraXRDb21wb25lbnQucmV3YXJkc0NvbnRyb2wucmV3YXJkSXRlbXMpXG59XG5cbmZ1bmN0aW9uIHN5bmNWaWRlb1BsYXllcnNTdGF0ZShlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBWaWRlb0NvbnRyb2xTdGF0ZSB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpXG4gIGNvbnN0IHsgVmlkZW9QbGF5ZXIgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpXG5cbiAgY29uc3QgdmlkZW9Db250cm9sU3RhdGUgPSBWaWRlb0NvbnRyb2xTdGF0ZS5nZXRPck51bGwoXG4gICAgc3RhdGUuYWRtaW5Ub29sa2l0VWlFbnRpdHksXG4gIClcbiAgaWYgKCF2aWRlb0NvbnRyb2xTdGF0ZT8udmlkZW9QbGF5ZXJzKSByZXR1cm5cblxuICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBwbGF5ZXIgaW4gdGhlIGNvbnRyb2wgc3RhdGVcbiAgdmlkZW9Db250cm9sU3RhdGUudmlkZW9QbGF5ZXJzLmZvckVhY2goKGNvbnRyb2xQbGF5ZXIpID0+IHtcbiAgICBjb25zdCB2aWRlb1BsYXllciA9IFZpZGVvUGxheWVyLmdldE11dGFibGVPck51bGwoXG4gICAgICBjb250cm9sUGxheWVyLmVudGl0eSBhcyBFbnRpdHksXG4gICAgKVxuICAgIGlmICghdmlkZW9QbGF5ZXIpIHJldHVyblxuXG4gICAgLy8gQ2hlY2sgYW5kIHN5bmMgZWFjaCBwcm9wZXJ0eVxuICAgIGlmIChcbiAgICAgIGNvbnRyb2xQbGF5ZXIuc3JjICE9PSB1bmRlZmluZWQgJiZcbiAgICAgIHZpZGVvUGxheWVyLnNyYyAhPT0gY29udHJvbFBsYXllci5zcmNcbiAgICApIHtcbiAgICAgIHZpZGVvUGxheWVyLnNyYyA9IGNvbnRyb2xQbGF5ZXIuc3JjXG4gICAgfVxuICAgIGlmICh2aWRlb1BsYXllci5wbGF5aW5nICE9PSBjb250cm9sUGxheWVyLnBsYXlpbmcpIHtcbiAgICAgIHZpZGVvUGxheWVyLnBsYXlpbmcgPSAhIWNvbnRyb2xQbGF5ZXIucGxheWluZ1xuICAgIH1cbiAgICBpZiAodmlkZW9QbGF5ZXIudm9sdW1lICE9PSBjb250cm9sUGxheWVyLnZvbHVtZSkge1xuICAgICAgdmlkZW9QbGF5ZXIudm9sdW1lID0gY29udHJvbFBsYXllci52b2x1bWUgPz8gMFxuICAgIH1cbiAgICBpZiAoY29udHJvbFBsYXllci5wb3NpdGlvbiA9PT0gLTEgJiYgdmlkZW9QbGF5ZXIucG9zaXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmlkZW9QbGF5ZXIucG9zaXRpb24gPSAtMVxuICAgIH1cbiAgICBpZiAodmlkZW9QbGF5ZXIucG9zaXRpb24gPT09IC0xICYmIGNvbnRyb2xQbGF5ZXIucG9zaXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgdmlkZW9QbGF5ZXIucG9zaXRpb24gPSB1bmRlZmluZWRcbiAgICB9XG4gICAgaWYgKHZpZGVvUGxheWVyLmxvb3AgIT09IGNvbnRyb2xQbGF5ZXIubG9vcCkge1xuICAgICAgdmlkZW9QbGF5ZXIubG9vcCA9ICEhY29udHJvbFBsYXllci5sb29wXG4gICAgfVxuICB9KVxufVxuXG5mdW5jdGlvbiBpbml0VmlkZW9Db250cm9sU3luYyhlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBWaWRlb0NvbnRyb2xTdGF0ZSB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpXG4gIGNvbnN0IHsgVmlkZW9QbGF5ZXIgfSA9IGdldEV4cGxvcmVyQ29tcG9uZW50cyhlbmdpbmUpXG5cbiAgY29uc3QgdmlkZW9QbGF5ZXJzID0gZ2V0VmlkZW9QbGF5ZXJzKGVuZ2luZSlcblxuICBsZXQgc3luY1ZpZGVvUGxheWVyczogYW55ID0gW11cblxuICB2aWRlb1BsYXllcnMuZm9yRWFjaCgocGxheWVyKSA9PiB7XG4gICAgY29uc3QgdnAgPSBWaWRlb1BsYXllci5nZXRPck51bGwocGxheWVyLmVudGl0eSBhcyBFbnRpdHkpXG4gICAgaWYgKHZwKSB7XG4gICAgICBzeW5jVmlkZW9QbGF5ZXJzLnB1c2goe1xuICAgICAgICBlbnRpdHk6IHBsYXllci5lbnRpdHkgYXMgRW50aXR5LFxuICAgICAgICBzcmM6IHZwLnNyYyxcbiAgICAgICAgcGxheWluZzogdnAucGxheWluZyxcbiAgICAgICAgdm9sdW1lOiB2cC52b2x1bWUsXG4gICAgICAgIHBvc2l0aW9uOiB2cC5wb3NpdGlvbixcbiAgICAgICAgbG9vcDogdnAubG9vcCxcbiAgICAgIH0pXG4gICAgfVxuICB9KVxuXG4gIFZpZGVvQ29udHJvbFN0YXRlLmNyZWF0ZU9yUmVwbGFjZShzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSwge1xuICAgIHZpZGVvUGxheWVyczogc3luY1ZpZGVvUGxheWVycyxcbiAgfSlcblxuICAvLyBTZXQgdXAgdGhlIHN5bmMgc3lzdGVtXG4gIGVuZ2luZS5hZGRTeXN0ZW0oKCkgPT4ge1xuICAgIHN5bmNWaWRlb1BsYXllcnNTdGF0ZShlbmdpbmUpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGluaXRUZXh0QW5ub3VuY2VtZW50U3luYyhlbmdpbmU6IElFbmdpbmUpIHtcbiAgY29uc3QgeyBUZXh0QW5ub3VuY2VtZW50cyB9ID0gZ2V0Q29tcG9uZW50cyhlbmdpbmUpXG5cbiAgVGV4dEFubm91bmNlbWVudHMuY3JlYXRlT3JSZXBsYWNlKHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LCB7XG4gICAgdGV4dDogJycsXG4gICAgYXV0aG9yOiAnJyxcbiAgICBpZDogJydcbiAgfSlcbn1cblxuLy8gSW5pdGlhbGl6ZSBhZG1pbiBkYXRhIGJlZm9yZSBVSSByZW5kZXJpbmdcbmxldCBhZG1pbkRhdGFJbml0aWFsaXplZCA9IGZhbHNlXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5pdGlhbGl6ZUFkbWluRGF0YShcbiAgZW5naW5lOiBJRW5naW5lLFxuICBzZGtIZWxwZXJzPzogSVNES0hlbHBlcnMsXG4pIHtcbiAgY29uc29sZS5sb2coJ2luaXRpYWxpemVBZG1pbkRhdGEnKVxuICBpZiAoIWFkbWluRGF0YUluaXRpYWxpemVkKSB7XG4gICAgY29uc29sZS5sb2coJ2luaXRpYWxpemVBZG1pbkRhdGEgLSBub3QgaW5pdGlhbGl6ZWQnKVxuICAgIGNvbnN0IHsgVmlkZW9Db250cm9sU3RhdGUsIFRleHRBbm5vdW5jZW1lbnRzIH0gPSBnZXRDb21wb25lbnRzKGVuZ2luZSlcblxuICAgIC8vIEluaXRpYWxpemUgc2NlbmUgZGF0YVxuICAgIGF3YWl0IFByb21pc2UuYWxsKFtpbml0U2NlbmVEZXBsb3ltZW50KCksIGluaXRTY2VuZU93bmVycygpXSlcblxuICAgIC8vIEluaXRpYWxpemUgQWRtaW5Ub29sa2l0VWlFbnRpdHlcbiAgICBzdGF0ZS5hZG1pblRvb2xraXRVaUVudGl0eSA9IGVuZ2luZS5hZGRFbnRpdHkoKVxuXG4gICAgLy8gSW5pdGlhbGl6ZSBWaWRlb0NvbnRyb2wgc3luYyBjb21wb25lbnRcbiAgICBpbml0VmlkZW9Db250cm9sU3luYyhlbmdpbmUpXG5cbiAgICAvLyBJbml0aWFsaXplIFRleHRBbm5vdW5jZW1lbnRzIHN5bmMgY29tcG9uZW50XG4gICAgaW5pdFRleHRBbm5vdW5jZW1lbnRTeW5jKGVuZ2luZSlcblxuICAgIHNka0hlbHBlcnM/LnN5bmNFbnRpdHk/LihcbiAgICAgIHN0YXRlLmFkbWluVG9vbGtpdFVpRW50aXR5LFxuICAgICAgW1ZpZGVvQ29udHJvbFN0YXRlLmNvbXBvbmVudElkLCBUZXh0QW5ub3VuY2VtZW50cy5jb21wb25lbnRJZF0sXG4gICAgICBBRE1JTl9UT09MU19FTlRJVFksXG4gICAgKVxuXG4gICAgZW5naW5lLmFkZFN5c3RlbSgoKSA9PiB7XG4gICAgICBpZiAobmV4dFRpY2tGdW5jdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBuZXh0VGljayA9IG5leHRUaWNrRnVuY3Rpb25zLnNoaWZ0KClcbiAgICAgICAgaWYgKG5leHRUaWNrKSB7XG4gICAgICAgICAgbmV4dFRpY2soKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZKVxuXG4gICAgYWRtaW5EYXRhSW5pdGlhbGl6ZWQgPSB0cnVlXG5cbiAgICBjb25zb2xlLmxvZygnaW5pdGlhbGl6ZUFkbWluRGF0YSAtIGluaXRpYWxpemVkJylcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWRtaW5Ub29sa2l0VUkoXG4gIGVuZ2luZTogSUVuZ2luZSxcbiAgcG9pbnRlckV2ZW50c1N5c3RlbTogUG9pbnRlckV2ZW50c1N5c3RlbSxcbiAgcmVhY3RCYXNlZFVpU3lzdGVtOiBSZWFjdEJhc2VkVWlTeXN0ZW0sXG4gIHNka0hlbHBlcnM/OiBJU0RLSGVscGVycyxcbiAgcGxheWVyc0hlbHBlcj86IElQbGF5ZXJzSGVscGVyLFxuKSB7XG4gIC8vIEluaXRpYWxpemUgYWRtaW4gZGF0YSBiZWZvcmUgc2V0dGluZyB1cCB0aGUgVUlcbiAgaW5pdGlhbGl6ZUFkbWluRGF0YShlbmdpbmUsIHNka0hlbHBlcnMpLnRoZW4oKCkgPT4ge1xuICAgIGNvbnNvbGUubG9nKCdjcmVhdGVBZG1pblRvb2xraXRVSSAtIGluaXRpYWxpemVkJylcbiAgICByZWFjdEJhc2VkVWlTeXN0ZW0uc2V0VWlSZW5kZXJlcigoKSA9PlxuICAgICAgdWlDb21wb25lbnQoZW5naW5lLCBwb2ludGVyRXZlbnRzU3lzdGVtLCBzZGtIZWxwZXJzLCBwbGF5ZXJzSGVscGVyKSxcbiAgICApXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGlzU2NlbmVEZXBsb3llcihwbGF5ZXJBZGRyZXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGRlcGxveW1lbnRDYWNoZT8uZGVwbG95ZWRCeSA9PT0gcGxheWVyQWRkcmVzcy50b0xvd2VyQ2FzZSgpXG59XG5cbmZ1bmN0aW9uIGlzU2NlbmVPd25lcihwbGF5ZXJBZGRyZXNzOiBzdHJpbmcpIHtcbiAgcmV0dXJuIChzY2VuZU93bmVyc0NhY2hlIHx8IFtdKS5pbmNsdWRlcyhwbGF5ZXJBZGRyZXNzLnRvTG93ZXJDYXNlKCkpXG59XG5cbmZ1bmN0aW9uIGlzQWxsb3dlZEFkbWluKFxuICBfZW5naW5lOiBJRW5naW5lLFxuICBhZG1pblRvb2xraXRFbnRpdGllOiBSZXR1cm5UeXBlPHR5cGVvZiBnZXRBZG1pblRvb2xraXRDb21wb25lbnQ+LFxuICBwbGF5ZXI/OiBHZXRQbGF5ZXJEYXRhUmVzIHwgbnVsbCxcbikge1xuICBjb25zdCB7IGFkbWluUGVybWlzc2lvbnMsIGF1dGhvcml6ZWRBZG1pblVzZXJzIH0gPSBhZG1pblRvb2xraXRFbnRpdGllXG5cbiAgaWYgKGFkbWluUGVybWlzc2lvbnMgPT09IEFkbWluUGVybWlzc2lvbnMuUFVCTElDKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGlmICghcGxheWVyKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBwbGF5ZXJBZGRyZXNzID0gcGxheWVyLnVzZXJJZC50b0xvd2VyQ2FzZSgpXG5cbiAgLy8gQ2hlY2sgaWYgcGxheWVyIGlzIHRoZSBkZXBsb3llclxuICBpZiAoYXV0aG9yaXplZEFkbWluVXNlcnMubWUgJiYgaXNTY2VuZURlcGxveWVyKHBsYXllckFkZHJlc3MpKSB7XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8vIENoZWNrIGlmIHBsYXllciBpcyBhIHNjZW5lIG93bmVyXG4gIGlmIChhdXRob3JpemVkQWRtaW5Vc2Vycy5zY2VuZU93bmVycyAmJiBpc1NjZW5lT3duZXIocGxheWVyQWRkcmVzcykpIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgLy8gQ2hlY2sgaWYgcGxheWVyIGlzIGluIHRoZSBhbGxvdyBsaXN0XG4gIGlmIChcbiAgICBhdXRob3JpemVkQWRtaW5Vc2Vycy5hbGxvd0xpc3QgJiZcbiAgICBhdXRob3JpemVkQWRtaW5Vc2Vycy5hZG1pbkFsbG93TGlzdC5zb21lKFxuICAgICAgKHdhbGxldCkgPT4gd2FsbGV0LnRvTG93ZXJDYXNlKCkgPT09IHBsYXllckFkZHJlc3MsXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmNvbnN0IHVpQ29tcG9uZW50ID0gKFxuICBlbmdpbmU6IElFbmdpbmUsXG4gIHBvaW50ZXJFdmVudHNTeXN0ZW06IFBvaW50ZXJFdmVudHNTeXN0ZW0sXG4gIHNka0hlbHBlcnM/OiBJU0RLSGVscGVycyxcbiAgcGxheWVyc0hlbHBlcj86IElQbGF5ZXJzSGVscGVyLFxuKSA9PiB7XG4gIGNvbnN0IGFkbWluVG9vbGtpdEVudGl0aWUgPSBnZXRBZG1pblRvb2xraXRDb21wb25lbnQoZW5naW5lKVxuICBjb25zdCBwbGF5ZXIgPSBwbGF5ZXJzSGVscGVyPy5nZXRQbGF5ZXIoKVxuICBjb25zdCBpc1BsYXllckFkbWluID0gaXNBbGxvd2VkQWRtaW4oZW5naW5lLCBhZG1pblRvb2xraXRFbnRpdGllLCBwbGF5ZXIpXG4gIGNvbnN0IHNjYWxlRmFjdG9yID0gZ2V0U2NhbGVVSUZhY3RvcihlbmdpbmUpXG5cbiAgcmV0dXJuIChcbiAgICA8VWlFbnRpdHlcbiAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgIHBvc2l0aW9uVHlwZTogJ2Fic29sdXRlJyxcbiAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtpc1BsYXllckFkbWluID8gKFxuICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgcG9zaXRpb25UeXBlOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgZmxleERpcmVjdGlvbjogJ3JvdycsXG4gICAgICAgICAgICBwb3NpdGlvbjogeyB0b3A6IDgwICogc2NhbGVGYWN0b3IsIHJpZ2h0OiAxMCAqIHNjYWxlRmFjdG9yIH0sXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgZGlzcGxheTogc3RhdGUucGFuZWxPcGVuID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgICB3aWR0aDogNTAwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgIHBvaW50ZXJGaWx0ZXI6ICdibG9jaycsXG4gICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb246ICdjb2x1bW4nLFxuICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8VWlFbnRpdHlcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogNTAgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICBmbGV4RGlyZWN0aW9uOiAncm93JyxcbiAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICAgICAgICBsZWZ0OiAxMiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgcmlnaHQ6IDEyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7IGNvbG9yOiBjb250YWluZXJCYWNrZ3JvdW5kQ29sb3IgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPExhYmVsXG4gICAgICAgICAgICAgICAgdmFsdWU9XCJBZG1pbiBUb29sc1wiXG4gICAgICAgICAgICAgICAgZm9udFNpemU9ezIwICogc2NhbGVGYWN0b3J9XG4gICAgICAgICAgICAgICAgY29sb3I9e0NvbG9yNC5jcmVhdGUoMTYwLCAxNTUsIDE2OCwgMSl9XG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3sgZmxleEdyb3c6IDEgfX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiYWRtaW5fdG9vbGtpdF9wYW5lbF92aWRlb19jb250cm9sXCJcbiAgICAgICAgICAgICAgICB2YXJpYW50PVwidGV4dFwiXG4gICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuVklERU9fQ09OVFJPTFxuICAgICAgICAgICAgICAgICAgICA/IEJUTl9WSURFT19DT05UUk9MX0FDVElWRVxuICAgICAgICAgICAgICAgICAgICA6IEJUTl9WSURFT19DT05UUk9MXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGFkbWluVG9vbGtpdEVudGl0aWUudmlkZW9Db250cm9sLmlzRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICA/ICdmbGV4J1xuICAgICAgICAgICAgICAgICAgICA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVklERU9fQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgICAgbmV4dFRpY2tGdW5jdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5WSURFT19DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJhZG1pbl90b29sa2l0X3BhbmVsX3NtYXJ0X2l0ZW1zX2NvbnRyb2xcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5TTUFSVF9JVEVNU19DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgID8gQlROX1NNQVJUX0lURU1fQ09OVFJPTF9BQ1RJVkVcbiAgICAgICAgICAgICAgICAgICAgOiBCVE5fU01BUlRfSVRFTV9DT05UUk9MXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG9ubHlJY29uXG4gICAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGFkbWluVG9vbGtpdEVudGl0aWUuc21hcnRJdGVtc0NvbnRyb2wuaXNFbmFibGVkXG4gICAgICAgICAgICAgICAgICAgID8gJ2ZsZXgnXG4gICAgICAgICAgICAgICAgICAgIDogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgd2lkdGg6IDQ5ICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDQyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICBtYXJnaW46IHsgcmlnaHQ6IDggKiBzY2FsZUZhY3RvciB9LFxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmFjdGl2ZVRhYiAhPT0gVGFiVHlwZS5TTUFSVF9JVEVNU19DT05UUk9MKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuTk9ORVxuICAgICAgICAgICAgICAgICAgICBuZXh0VGlja0Z1bmN0aW9ucy5wdXNoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLlNNQVJUX0lURU1TX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuTk9ORVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImFkbWluX3Rvb2xraXRfcGFuZWxfdGV4dF9hbm5vdW5jZW1lbnRfY29udHJvbFwiXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInRleHRcIlxuICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlRFWFRfQU5OT1VOQ0VNRU5UX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgPyBCVE5fVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTF9BQ1RJVkVcbiAgICAgICAgICAgICAgICAgICAgOiBCVE5fVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvbmx5SWNvblxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBkaXNwbGF5OiBhZG1pblRvb2xraXRFbnRpdGllLnRleHRBbm5vdW5jZW1lbnRDb250cm9sLmlzRW5hYmxlZFxuICAgICAgICAgICAgICAgICAgICA/ICdmbGV4J1xuICAgICAgICAgICAgICAgICAgICA6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiA0OSAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA0MiAqIHNjYWxlRmFjdG9yLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7IHJpZ2h0OiA4ICogc2NhbGVGYWN0b3IgfSxcbiAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgaWNvblRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgb25Nb3VzZURvd249eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5hY3RpdmVUYWIgIT09IFRhYlR5cGUuVEVYVF9BTk5PVU5DRU1FTlRfQ09OVFJPTCkge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgICAgbmV4dFRpY2tGdW5jdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5URVhUX0FOTk9VTkNFTUVOVF9DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICB7LyogPEJ1dHRvblxuICAgICAgICAgICAgICAgIGlkPVwiYWRtaW5fdG9vbGtpdF9wYW5lbF9yZXdhcmRzX2NvbnRyb2xcIlxuICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5SRVdBUkRTX0NPTlRST0xcbiAgICAgICAgICAgICAgICAgICAgPyBCVE5fUkVXQVJEU19DT05UUk9MX0FDVElWRVxuICAgICAgICAgICAgICAgICAgICA6IEJUTl9SRVdBUkRTX0NPTlRST0xcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgb25seUljb25cbiAgICAgICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICAgICAgZGlzcGxheTogYWRtaW5Ub29sa2l0RW50aXRpZS5yZXdhcmRzQ29udHJvbC5pc0VuYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgPyAnZmxleCdcbiAgICAgICAgICAgICAgICAgICAgOiAnbm9uZScsXG4gICAgICAgICAgICAgICAgICB3aWR0aDogNDkgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogNDIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgIG1hcmdpbjogJzAnLFxuICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBpY29uVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmFjdGl2ZVRhYiAhPT0gVGFiVHlwZS5SRVdBUkRTX0NPTlRST0wpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuYWN0aXZlVGFiID0gVGFiVHlwZS5OT05FXG4gICAgICAgICAgICAgICAgICAgIG5leHRUaWNrRnVuY3Rpb25zLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLmFjdGl2ZVRhYiA9IFRhYlR5cGUuUkVXQVJEU19DT05UUk9MXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzdGF0ZS5hY3RpdmVUYWIgPSBUYWJUeXBlLk5PTkVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAvPiAqL31cbiAgICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgICB7c3RhdGUuYWN0aXZlVGFiICE9PSBUYWJUeXBlLk5PTkUgPyAoXG4gICAgICAgICAgICAgIDxVaUVudGl0eVxuICAgICAgICAgICAgICAgIHVpVHJhbnNmb3JtPXt7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgbWFyZ2luOiB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMTAgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDAsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBwYWRkaW5nOiB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogMzIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDMyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogMzIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogMzIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB1aUJhY2tncm91bmQ9e3sgY29sb3I6IGNvbnRhaW5lckJhY2tncm91bmRDb2xvciB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3N0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5URVhUX0FOTk9VTkNFTUVOVF9DT05UUk9MID8gKFxuICAgICAgICAgICAgICAgICAgPFRleHRBbm5vdW5jZW1lbnRzQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICBlbmdpbmU9e2VuZ2luZX1cbiAgICAgICAgICAgICAgICAgICAgc3RhdGU9e3N0YXRlfVxuICAgICAgICAgICAgICAgICAgICBwbGF5ZXI9e3BsYXllcn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3N0YXRlLmFjdGl2ZVRhYiA9PT0gVGFiVHlwZS5WSURFT19DT05UUk9MID8gKFxuICAgICAgICAgICAgICAgICAgPFZpZGVvQ29udHJvbCBlbmdpbmU9e2VuZ2luZX0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHtzdGF0ZS5hY3RpdmVUYWIgPT09IFRhYlR5cGUuU01BUlRfSVRFTVNfQ09OVFJPTCA/IChcbiAgICAgICAgICAgICAgICAgIDxTbWFydEl0ZW1zQ29udHJvbCBlbmdpbmU9e2VuZ2luZX0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHsvKiB7c3RhdGUuYWN0aXZlVGFiID09PSBUYWJUeXBlLlJFV0FSRFNfQ09OVFJPTCA/IChcbiAgICAgICAgICAgICAgICAgIDxSZXdhcmRzQ29udHJvbCBlbmdpbmU9e2VuZ2luZX0gc3RhdGU9e3N0YXRlfSAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfSAqL31cbiAgICAgICAgICAgICAgPC9VaUVudGl0eT5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvVWlFbnRpdHk+XG4gICAgICAgICAgPFVpRW50aXR5XG4gICAgICAgICAgICB1aVRyYW5zZm9ybT17e1xuICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgIGhlaWdodDogNDIgKiBzY2FsZUZhY3RvcixcbiAgICAgICAgICAgICAgd2lkdGg6IDQyICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBhbGlnbkNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIHBvaW50ZXJGaWx0ZXI6ICdibG9jaycsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgdWlCYWNrZ3JvdW5kPXt7XG4gICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICBzcmM6IEJUTl9BRE1JTl9UT09MS0lUX0JBQ0tHUk9VTkQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgIGNvbG9yOiBDb2xvcjQuY3JlYXRlKDEsIDEsIDEsIDEpLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8RENMQnV0dG9uXG4gICAgICAgICAgICAgIHZhbHVlPVwiXCJcbiAgICAgICAgICAgICAgdWlUcmFuc2Zvcm09e3tcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDQwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgd2lkdGg6IDQwICogc2NhbGVGYWN0b3IsXG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgYWxpZ25Db250ZW50OiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIHVpQmFja2dyb3VuZD17e1xuICAgICAgICAgICAgICAgIHRleHR1cmU6IHtcbiAgICAgICAgICAgICAgICAgIHNyYzogQlROX0FETUlOX1RPT0xLSVRfQ09OVFJPTCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRleHR1cmVNb2RlOiAnc3RyZXRjaCcsXG4gICAgICAgICAgICAgICAgY29sb3I6IENvbG9yNC5jcmVhdGUoMSwgMSwgMSwgMSksXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9uTW91c2VEb3duPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3RhdGUucGFuZWxPcGVuID0gIXN0YXRlLnBhbmVsT3BlblxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgICA8L1VpRW50aXR5PlxuICAgICAgKSA6IG51bGx9XG4gICAgICA8VGV4dEFubm91bmNlbWVudHMgZW5naW5lPXtlbmdpbmV9IHN0YXRlPXtzdGF0ZX0gLz5cbiAgICA8L1VpRW50aXR5PlxuICApXG59XG4iXX0=