@merchi/product-form 1.19.37 → 1.19.39

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.
@@ -160,7 +160,7 @@ export function buildEmptyVariationGroup(product) {
160
160
  productEnt.fromJson(_objectSpread({}, product), {
161
161
  makeDirty: false
162
162
  });
163
- var newGroup = new productEnt.buildEmptyVariationGroup();
163
+ var newGroup = productEnt.buildEmptyVariationGroup();
164
164
  newGroup.groupCost = 0;
165
165
  newGroup.quantity = defaultGroupQuantity(product);
166
166
  var groupJson = newGroup.toJson();
@@ -513,4 +513,4 @@ export function cleanJobVariationsAndGroups(jobJson) {
513
513
  }
514
514
  return jobJson;
515
515
  }
516
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXJjaGkiLCJWYXJpYXRpb25GaWVsZCIsImZvcm1hdEN1cnJlbmN5IiwiUHJvZHVjdFR5cGUiLCJGaWVsZFR5cGUiLCJjbGVhbkZvcm1WYXJpYXRpb25Kc29uIiwiZGVmYXVsdEdyb3VwUXVhbnRpdHkiLCJlbmZvcmNlTW9xUGVyR3JvdXAiLCJwcm9kdWN0TWluaW11bVF1YW50aXR5IiwicHJvZHVjdE1vcUZsb29yIiwicG5nT3B0aW9uTm90Rm91bmQiLCJyZXF1aXJlIiwicmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24iLCJjb3N0IiwiY3VycmVuY3lDb2RlIiwiY29zdFR5cGVTdHJpbmciLCJjdXJyZW5jeU9wdGlvbnMiLCJjdXJyZW5jeSIsInNob3dDb2RlSWZOb1N5bWJvbCIsImNvc3RTdHJpbmciLCJhbW91bnQiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJjb3N0RGV0YWlsIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsIm9uY2VPZmZDb3N0RGVzY3JpcHRpb24iLCJ1bml0Q29zdERlc2NyaXB0aW9uIiwidmFyaWF0aW9uRmllbGRDb3N0RGV0YWlsIiwidmFyaWF0aW9uRmllbGQiLCJ2YXJpYXRpb25Db3N0IiwidmFyaWF0aW9uVW5pdENvc3QiLCJ2YXJpYXRpb25Db3N0RGV0YWlsIiwidmFyaWF0aW9uIiwidmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsIiwib3B0aW9uIiwiX29wdGlvbiRvbmNlT2ZmQ29zdCIsIl9vcHRpb24kdW5pdENvc3QiLCJwcm9kdWN0U2V0dXBDb3N0RGV0YWlsIiwicHJvZHVjdCIsInNldHVwUHJpY2UiLCJsYWJlbCIsInNldHVwUGVyR3JvdXAiLCJzcGxpdFNlbGVjdGVkT3B0aW9ucyIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic3BsaXQiLCJzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwiX3R5cGVvZiIsImZpZWxkVHlwZSIsIkNPTE9VUl9FWFRSQUNUIiwic2VsZWN0YWJsZSIsInNlbGVjdGFibGVPcHRpb25zIiwibGVuZ3RoIiwic2VsZWN0ZWRJZHMiLCJtYXAiLCJTdHJpbmciLCJmaWx0ZXIiLCJCb29sZWFuIiwicmVzb2x2ZWQiLCJpbmNsdWRlcyIsIm9wdGlvbklkIiwiX29iamVjdFNwcmVhZCIsInNlbGVjdGVkT3B0aW9ucyIsInN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzIiwiam9iIiwibmV4dCIsInZhcmlhdGlvbnMiLCJ2YXJpYXRpb25zR3JvdXBzIiwiZ3JvdXAiLCJzdXBwbGllclNlbGxlckVkaXRhYmxlUHJvZHVjdFR5cGVzIiwiU1VQUExJRVJfTU9EIiwiQ0xPTkVEX1NVUFBMSUVSX01PRCIsIm9wdGlvbkltYWdlVXJsIiwiaW1hZ2UiLCJpbWFnZU5vdEZvdW5kIiwic3JjIiwibGlua2VkRmlsZSIsInZpZXdVcmwiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVNYXBwaW5nIiwiYWxsb3dGaWxlSnBlZyIsImFsbG93RmlsZUdpZiIsImFsbG93RmlsZVBkZiIsImFsbG93RmlsZVBuZyIsImFsbG93RmlsZUFpIiwiYWxsb3dlZFR5cGVzIiwiT2JqZWN0Iiwia2V5cyIsImF0dHJpYnV0ZU5hbWUiLCJqb2luIiwiVmFyaWF0aW9uRmllbGRDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsInByb3RvdHlwZSIsIm1lcmNoaSIsImVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzIiwiaXNWaXNpYmxlIiwidW5kZWZpbmVkIiwiZm9yRWFjaCIsImF2YWlsYWJsZSIsImJ1aWxkRW1wdHlWYXJpYXRpb25Gcm9tRmllbGQiLCJmaWVsZCIsImZpZWxkRW50IiwiZnJvbUpzb24iLCJtYWtlRGlydHkiLCJ2YXJpYXRpb25Kc29uIiwiYnVpbGRFbXB0eVZhcmlhdGlvbiIsInRvSnNvbiIsImFsbG93QWxsUGFudG9uZXMiLCJsYXlvdXRTcGFuIiwiYnVpbGRFbXB0eVZhcmlhdGlvbkdyb3VwIiwicHJvZHVjdEVudCIsIlByb2R1Y3QiLCJuZXdHcm91cCIsImdyb3VwQ29zdCIsInF1YW50aXR5IiwiZ3JvdXBKc29uIiwiaXNQcm9kdWN0U3VwcGxpZXJNT0QiLCJwcm9kdWN0VHlwZSIsIlNVUFBMSUVSX1JFU0VMTF9NT0QiLCJpc1Byb2R1Y3RUeXBlRmlsZURvd25sb2FkIiwicGFyc2VJbnQiLCJTRUxMRVJfRklMRV9ET1dOTE9BRCIsImlzUHJvZHVjdEZpbGVEb3dubG9hZCIsImlzUHJvZHVjdExlYWRGb3JtIiwiTEVBRF9GT1JNIiwiaXNvQ291bnRyaWVzIiwiQUYiLCJBWCIsIkFMIiwiRFoiLCJBUyIsIkFEIiwiQU8iLCJBSSIsIkFRIiwiQUciLCJBUiIsIkFNIiwiQVciLCJBVSIsIkFUIiwiQVoiLCJCUyIsIkJIIiwiQkQiLCJCQiIsIkJZIiwiQkUiLCJCWiIsIkJKIiwiQk0iLCJCVCIsIkJPIiwiQkEiLCJCVyIsIkJWIiwiQlIiLCJJTyIsIkJOIiwiQkciLCJCRiIsIkJJIiwiS0giLCJDTSIsIkNBIiwiQ1YiLCJLWSIsIkNGIiwiVEQiLCJDTCIsIkNOIiwiQ1giLCJDQyIsIkNPIiwiS00iLCJDRyIsIkNEIiwiQ0siLCJDUiIsIkNJIiwiSFIiLCJDVSIsIkNZIiwiQ1oiLCJESyIsIkRKIiwiRE0iLCJETyIsIkVDIiwiRUciLCJTViIsIkdRIiwiRVIiLCJFRSIsIkVUIiwiRksiLCJGTyIsIkZKIiwiRkkiLCJGUiIsIkdGIiwiUEYiLCJURiIsIkdBIiwiR00iLCJHRSIsIkRFIiwiR0giLCJHSSIsIkdSIiwiR0wiLCJHRCIsIkdQIiwiR1UiLCJHVCIsIkdHIiwiR04iLCJHVyIsIkdZIiwiSFQiLCJITSIsIlZBIiwiSE4iLCJISyIsIkhVIiwiSVMiLCJJTiIsIklEIiwiSVIiLCJJUSIsIklFIiwiSU0iLCJJTCIsIklUIiwiSk0iLCJKUCIsIkpFIiwiSk8iLCJLWiIsIktFIiwiS0kiLCJLUiIsIktXIiwiS0ciLCJMQSIsIkxWIiwiTEIiLCJMUyIsIkxSIiwiTFkiLCJMSSIsIkxUIiwiTFUiLCJNTyIsIk1LIiwiTUciLCJNVyIsIk1ZIiwiTVYiLCJNTCIsIk1UIiwiTUgiLCJNUSIsIk1SIiwiTVUiLCJZVCIsIk1YIiwiRk0iLCJNRCIsIk1DIiwiTU4iLCJNRSIsIk1TIiwiTUEiLCJNWiIsIk1NIiwiTkEiLCJOUiIsIk5QIiwiTkwiLCJBTiIsIk5DIiwiTloiLCJOSSIsIk5FIiwiTkciLCJOVSIsIk5GIiwiTVAiLCJOTyIsIk9NIiwiUEsiLCJQVyIsIlBTIiwiUEEiLCJQRyIsIlBZIiwiUEUiLCJQSCIsIlBOIiwiUEwiLCJQVCIsIlBSIiwiUUEiLCJSRSIsIlJPIiwiUlUiLCJSVyIsIkJMIiwiU0giLCJLTiIsIkxDIiwiTUYiLCJQTSIsIlZDIiwiV1MiLCJTTSIsIlNUIiwiU0EiLCJTTiIsIlJTIiwiU0MiLCJTTCIsIlNHIiwiU0siLCJTSSIsIlNCIiwiU08iLCJaQSIsIkdTIiwiRVMiLCJMSyIsIlNEIiwiU1IiLCJTSiIsIlNaIiwiU0UiLCJDSCIsIlNZIiwiVFciLCJUSiIsIlRaIiwiVEgiLCJUTCIsIlRHIiwiVEsiLCJUTyIsIlRUIiwiVE4iLCJUUiIsIlRNIiwiVEMiLCJUViIsIlVHIiwiVUEiLCJBRSIsIkdCIiwiVVMiLCJVTSIsIlVZIiwiVVoiLCJWVSIsIlZFIiwiVk4iLCJWRyIsIlZJIiwiV0YiLCJFSCIsIllFIiwiWk0iLCJaVyIsImdldENvdW50cnlOYW1lIiwiY291bnRyeUNvZGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNsZWFuVGFnSWRzIiwicmF3IiwiaWQiLCJ0cmltIiwidGVzdCIsImdldE1lcmNoaVNvdXJjZUpvYlRhZ3MiLCJsb2NhbFN0b3JhZ2UiLCJtZXJjaGlTb3VyY2UiLCJnZXRJdGVtIiwiaWRzIiwic29ydEJ5UG9zaXRpb24iLCJvcHRpb25zIiwib2JqIiwicG9zaXRpb24iLCJzb3J0IiwiYSIsImIiLCJhUG9zaXRpb24iLCJiUG9zaXRpb24iLCJjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMiLCJqb2JKc29uIiwiaGFzR3JvdXBzIiwiaGFzVmFyaWF0aW9ucyIsImkiLCJqIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVyY2hpLCBWYXJpYXRpb25GaWVsZCB9IGZyb20gJ0BtZXJjaGkvc2RrJztcbmltcG9ydCB7IGZvcm1hdEN1cnJlbmN5IH0gZnJvbSAnLi4vdXRpbHMvY3VycmVuY3knO1xuaW1wb3J0IHsgUHJvZHVjdFR5cGUsIEZpZWxkVHlwZSB9IGZyb20gJy4uL3V0aWxzL3R5cGVzJztcbmV4cG9ydCB7IGNsZWFuRm9ybVZhcmlhdGlvbkpzb24gfSBmcm9tICcuLi91dGlscy9jbGVhbkZvcm1WYXJpYXRpb25Kc29uJztcbmltcG9ydCB7IGNsZWFuRm9ybVZhcmlhdGlvbkpzb24gfSBmcm9tICcuLi91dGlscy9jbGVhbkZvcm1WYXJpYXRpb25Kc29uJztcbmltcG9ydCB7IGRlZmF1bHRHcm91cFF1YW50aXR5IH0gZnJvbSAnLi4vdXRpbHMvcXVhbnRpdHknO1xuZXhwb3J0IHtcbiAgZGVmYXVsdEdyb3VwUXVhbnRpdHksXG4gIGVuZm9yY2VNb3FQZXJHcm91cCxcbiAgcHJvZHVjdE1pbmltdW1RdWFudGl0eSxcbiAgcHJvZHVjdE1vcUZsb29yLFxufSBmcm9tICcuLi91dGlscy9xdWFudGl0eSc7XG5jb25zdCBwbmdPcHRpb25Ob3RGb3VuZCA9IHJlcXVpcmUoJy4uL2ltYWdlcy9wcm9kdWN0LW5vdC1mb3VuZC5wbmcnKTtcblxuZnVuY3Rpb24gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oXG4gIGNvc3Q6IGFueSxcbiAgY3VycmVuY3lDb2RlOiBhbnksXG4gIGNvc3RUeXBlU3RyaW5nOiBzdHJpbmdcbikge1xuICBsZXQgY3VycmVuY3lPcHRpb25zID0geyBjdXJyZW5jeTogY3VycmVuY3lDb2RlLCBzaG93Q29kZUlmTm9TeW1ib2w6IGZhbHNlIH07XG4gIGxldCBjb3N0U3RyaW5nID0gJyc7XG4gIGNvbnN0IGFtb3VudCA9IHBhcnNlRmxvYXQoY29zdCk7XG5cbiAgaWYgKE51bWJlci5pc0Zpbml0ZShhbW91bnQpICYmIGFtb3VudCA+IDApIHtcbiAgICBjb3N0U3RyaW5nID0gZm9ybWF0Q3VycmVuY3koYW1vdW50LCBjdXJyZW5jeU9wdGlvbnMpO1xuICAgIGNvc3RTdHJpbmcgPSAnICsgJyArIGNvc3RTdHJpbmcgKyAnICcgKyBjb3N0VHlwZVN0cmluZztcbiAgfVxuICByZXR1cm4gY29zdFN0cmluZztcbn1cblxuY29uc3QgY29zdERldGFpbCA9IChvbmNlT2ZmQ29zdDogYW55LCB1bml0Q29zdDogYW55LCBjdXJyZW5jeUNvZGU6IHN0cmluZykgPT4ge1xuICBjb25zdCBvbmNlT2ZmQ29zdERlc2NyaXB0aW9uID0gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oXG4gICAgcGFyc2VGbG9hdChvbmNlT2ZmQ29zdCksXG4gICAgY3VycmVuY3lDb2RlLFxuICAgICdvbmNlIG9mZidcbiAgKTtcbiAgY29uc3QgdW5pdENvc3REZXNjcmlwdGlvbiA9IHJlbmRlclNpbmdsZUNvc3RJbmRpY2F0aW9uKFxuICAgIHBhcnNlRmxvYXQodW5pdENvc3QpLFxuICAgIGN1cnJlbmN5Q29kZSxcbiAgICAncGVyIHVuaXQnXG4gICk7XG4gIHJldHVybiBvbmNlT2ZmQ29zdERlc2NyaXB0aW9uICsgdW5pdENvc3REZXNjcmlwdGlvbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYXRpb25GaWVsZENvc3REZXRhaWwodmFyaWF0aW9uRmllbGQ6IGFueSkge1xuICBjb25zdCB7IHZhcmlhdGlvbkNvc3QsIHZhcmlhdGlvblVuaXRDb3N0LCBjdXJyZW5jeSB9ID0gdmFyaWF0aW9uRmllbGQ7XG4gIHJldHVybiBjb3N0RGV0YWlsKHZhcmlhdGlvbkNvc3QhLCB2YXJpYXRpb25Vbml0Q29zdCEsIGN1cnJlbmN5ISk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYXRpb25Db3N0RGV0YWlsKHZhcmlhdGlvbjogYW55KSB7XG4gIGNvbnN0IHsgb25jZU9mZkNvc3QsIHVuaXRDb3N0LCBjdXJyZW5jeSB9ID0gdmFyaWF0aW9uO1xuICByZXR1cm4gY29zdERldGFpbChvbmNlT2ZmQ29zdCEsIHVuaXRDb3N0ISwgY3VycmVuY3khKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhdGlvbkZpZWxkT3B0aW9uQ29zdERldGFpbChvcHRpb246IGFueSkge1xuICBjb25zdCB7IGN1cnJlbmN5IH0gPSBvcHRpb247XG4gIC8vIEZpZWxkIG9wdGlvbnMgdXNlIHZhcmlhdGlvbkNvc3Q7IHNlbGVjdGFibGUgVmFyaWF0aW9uT3B0aW9ucyB1c2Ugb25jZU9mZkNvc3QuXG4gIGNvbnN0IG9uY2VPZmZDb3N0ID0gb3B0aW9uLm9uY2VPZmZDb3N0ID8/IG9wdGlvbi52YXJpYXRpb25Db3N0O1xuICBjb25zdCB1bml0Q29zdCA9IG9wdGlvbi51bml0Q29zdCA/PyBvcHRpb24udmFyaWF0aW9uVW5pdENvc3Q7XG4gIHJldHVybiBjb3N0RGV0YWlsKG9uY2VPZmZDb3N0ISwgdW5pdENvc3QhLCBjdXJyZW5jeSEpO1xufVxuXG4vKiogUHJvZHVjdC1sZXZlbCBzZXR1cCBmZWUsIHNhbWUgXCIrICRYIOKAplwiIHN0eWxlIGFzIHZhcmlhdGlvbiBvbmNlLW9mZiBjb3N0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9kdWN0U2V0dXBDb3N0RGV0YWlsKHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBzZXR1cFByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0Py5zZXR1cFByaWNlKTtcbiAgaWYgKCFzZXR1cFByaWNlKSByZXR1cm4gJyc7XG4gIGNvbnN0IGxhYmVsID0gcHJvZHVjdC5zZXR1cFBlckdyb3VwID8gJ3NldHVwIHBlciBncm91cCcgOiAnc2V0dXAnO1xuICByZXR1cm4gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oc2V0dXBQcmljZSwgcHJvZHVjdC5jdXJyZW5jeSwgbGFiZWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRTZWxlY3RlZE9wdGlvbnModmFsdWU6IGFueSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJywnKTtcbiAgfVxuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKHZhcmlhdGlvbjogYW55KTogYW55IHtcbiAgaWYgKCF2YXJpYXRpb24gfHwgdHlwZW9mIHZhcmlhdGlvbiAhPT0gJ29iamVjdCcpIHJldHVybiB2YXJpYXRpb247XG4gIGNvbnN0IGZpZWxkVHlwZSA9IE51bWJlcih2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5maWVsZFR5cGUpO1xuICBpZiAoZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX0VYVFJBQ1QpIHJldHVybiB2YXJpYXRpb247XG5cbiAgY29uc3Qgc2VsZWN0YWJsZSA9IHZhcmlhdGlvbj8uc2VsZWN0YWJsZU9wdGlvbnMgfHwgW107XG4gIGlmICghc2VsZWN0YWJsZS5sZW5ndGgpIHJldHVybiB2YXJpYXRpb247XG5cbiAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBzcGxpdFNlbGVjdGVkT3B0aW9ucyh2YXJpYXRpb24/LnZhbHVlKVxuICAgIC5tYXAoU3RyaW5nKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIGlmICghc2VsZWN0ZWRJZHMubGVuZ3RoKSByZXR1cm4gdmFyaWF0aW9uO1xuXG4gIGNvbnN0IHJlc29sdmVkID0gc2VsZWN0YWJsZS5maWx0ZXIoKG9wdGlvbjogYW55KSA9PlxuICAgIHNlbGVjdGVkSWRzLmluY2x1ZGVzKFN0cmluZyhvcHRpb24ub3B0aW9uSWQpKVxuICApO1xuICBpZiAoIXJlc29sdmVkLmxlbmd0aCkgcmV0dXJuIHZhcmlhdGlvbjtcblxuICByZXR1cm4geyAuLi52YXJpYXRpb24sIHNlbGVjdGVkT3B0aW9uczogcmVzb2x2ZWQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzKGpvYjogYW55KTogYW55IHtcbiAgaWYgKCFqb2IgfHwgdHlwZW9mIGpvYiAhPT0gJ29iamVjdCcpIHJldHVybiBqb2I7XG4gIGNvbnN0IG5leHQgPSB7IC4uLmpvYiB9O1xuICBpZiAoQXJyYXkuaXNBcnJheShuZXh0LnZhcmlhdGlvbnMpKSB7XG4gICAgbmV4dC52YXJpYXRpb25zID0gbmV4dC52YXJpYXRpb25zLm1hcChzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShuZXh0LnZhcmlhdGlvbnNHcm91cHMpKSB7XG4gICAgbmV4dC52YXJpYXRpb25zR3JvdXBzID0gbmV4dC52YXJpYXRpb25zR3JvdXBzLm1hcCgoZ3JvdXA6IGFueSkgPT4gKHtcbiAgICAgIC4uLmdyb3VwLFxuICAgICAgdmFyaWF0aW9uczogQXJyYXkuaXNBcnJheShncm91cD8udmFyaWF0aW9ucylcbiAgICAgICAgPyBncm91cC52YXJpYXRpb25zLm1hcChzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKVxuICAgICAgICA6IGdyb3VwPy52YXJpYXRpb25zLFxuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gbmV4dDtcbn1cblxuZXhwb3J0IGNvbnN0IHN1cHBsaWVyU2VsbGVyRWRpdGFibGVQcm9kdWN0VHlwZXM6IEFycmF5PG51bWJlcj4gPSBbXG4gIFByb2R1Y3RUeXBlLlNVUFBMSUVSX01PRCxcbiAgUHJvZHVjdFR5cGUuQ0xPTkVEX1NVUFBMSUVSX01PRCxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25JbWFnZVVybChvcHRpb246IGFueSkge1xuICBjb25zdCBpbWFnZSA9IHBuZ09wdGlvbk5vdEZvdW5kID8gKHBuZ09wdGlvbk5vdEZvdW5kLmRlZmF1bHQgfHwgcG5nT3B0aW9uTm90Rm91bmQpIDogJyc7XG4gIGNvbnN0IGltYWdlTm90Rm91bmQgPSBpbWFnZSA/IChpbWFnZS5zcmMgfHwgaW1hZ2UpIDogJyc7XG4gIHJldHVybiBvcHRpb24ubGlua2VkRmlsZVxuICAgID8gb3B0aW9uLmxpbmtlZEZpbGVcbiAgICAgID8gb3B0aW9uLmxpbmtlZEZpbGUudmlld1VybFxuICAgICAgOiBpbWFnZU5vdEZvdW5kXG4gICAgOiBpbWFnZU5vdEZvdW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dlZEZpbGVUeXBlcyh2YXJpYXRpb25GaWVsZDogYW55KTogc3RyaW5nIHtcbiAgY29uc3QgZmlsZVR5cGVNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIGFsbG93RmlsZUpwZWc6ICcuanBlZycsXG4gICAgYWxsb3dGaWxlR2lmOiAnLmdpZicsXG4gICAgYWxsb3dGaWxlUGRmOiAnLnBkZicsXG4gICAgYWxsb3dGaWxlUG5nOiAnLnBuZycsXG4gICAgYWxsb3dGaWxlQWk6ICcuYWknLFxuICB9O1xuXG4gIGNvbnN0IGFsbG93ZWRUeXBlczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhmaWxlVHlwZU1hcHBpbmcpXG4gICAgLmZpbHRlcigoYXR0cmlidXRlTmFtZSkgPT4gdmFyaWF0aW9uRmllbGRbYXR0cmlidXRlTmFtZV0pXG4gICAgLm1hcCgoYXR0cmlidXRlTmFtZSkgPT4gZmlsZVR5cGVNYXBwaW5nW2F0dHJpYnV0ZU5hbWVdKTtcblxuICByZXR1cm4gYWxsb3dlZFR5cGVzLmpvaW4oJywnKTtcbn1cblxuLy8gUHVibGlzaGVkIEBtZXJjaGkvc2RrIGRyb3BzIHVua25vd24ga2V5cy4gUmVnaXN0ZXIgZmxhZ3Mgb24gdGhlIGNsYXNzXG4vLyB0aGlzIHBhY2thZ2UgYWN0dWFsbHkgY29uc3RydWN0cywgb3IgYSByZWJ1aWx0IHZhcmlhdGlvbiBsb3NlcyB0aGVtLlxuY29uc3QgVmFyaWF0aW9uRmllbGRDbGFzcyA9IFZhcmlhdGlvbkZpZWxkIGFzIHVua25vd24gYXMge1xuICBwcm9wZXJ0eTogKG9wdGlvbnM/OiB7IHR5cGU/OiB1bmtub3duIH0pID0+ICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHByb3RvdHlwZTogb2JqZWN0O1xufTtcblZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pKFxuICBWYXJpYXRpb25GaWVsZENsYXNzLnByb3RvdHlwZSxcbiAgJ2FsbG93QWxsUGFudG9uZXMnLFxuKTtcblZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSkoXG4gIFZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvdG90eXBlLFxuICAnbGF5b3V0U3BhbicsXG4pO1xuXG5jb25zdCBtZXJjaGkgPSBuZXcgTWVyY2hpKCk7XG5cbmZ1bmN0aW9uIGVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzKHZhcmlhdGlvbjogYW55KSB7XG4gIGlmICh2YXJpYXRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIHZhcmlhdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAodmFyaWF0aW9uLnNlbGVjdGFibGVPcHRpb25zIHx8IFtdKS5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgIGlmIChvcHRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAgIGlmIChvcHRpb24uYXZhaWxhYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5hdmFpbGFibGUgPSB0cnVlO1xuICB9KTtcbn1cblxuLyoqIEJ1aWxkIGEgZGVmYXVsdCB2YXJpYXRpb24gSlNPTiBmb3IgYSBwcm9kdWN0IHZhcmlhdGlvbiBmaWVsZCAoZ2F0ZWQgZmllbGRzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkKGZpZWxkOiBhbnkpIHtcbiAgY29uc3QgZmllbGRFbnQgPSBuZXcgbWVyY2hpLlZhcmlhdGlvbkZpZWxkKCk7XG4gIGZpZWxkRW50LmZyb21Kc29uKHsgLi4uZmllbGQgfSwgeyBtYWtlRGlydHk6IGZhbHNlIH0pO1xuICBjb25zdCB2YXJpYXRpb25Kc29uID0gZmllbGRFbnQuYnVpbGRFbXB0eVZhcmlhdGlvbigpLnRvSnNvbigpO1xuICBpZiAoXG4gICAgdmFyaWF0aW9uSnNvbj8udmFyaWF0aW9uRmllbGQgJiZcbiAgICBmaWVsZD8uYWxsb3dBbGxQYW50b25lcyAhPSBudWxsICYmXG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID09IG51bGxcbiAgKSB7XG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID0gQm9vbGVhbihmaWVsZC5hbGxvd0FsbFBhbnRvbmVzKTtcbiAgfVxuICBpZiAoXG4gICAgdmFyaWF0aW9uSnNvbj8udmFyaWF0aW9uRmllbGQgJiZcbiAgICBmaWVsZD8ubGF5b3V0U3BhbiAhPSBudWxsICYmXG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5sYXlvdXRTcGFuID09IG51bGxcbiAgKSB7XG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5sYXlvdXRTcGFuID0gZmllbGQubGF5b3V0U3BhbjtcbiAgfVxuICBlbnN1cmVWYXJpYXRpb25PcHRpb25GbGFncyh2YXJpYXRpb25Kc29uKTtcbiAgcmV0dXJuIHZhcmlhdGlvbkpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uR3JvdXAocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHByb2R1Y3RFbnQgPSBuZXcgbWVyY2hpLlByb2R1Y3QoKTtcbiAgcHJvZHVjdEVudC5mcm9tSnNvbih7Li4ucHJvZHVjdH0sIHsgbWFrZURpcnR5OiBmYWxzZX0pO1xuICBjb25zdCBuZXdHcm91cCA9IG5ldyBwcm9kdWN0RW50LmJ1aWxkRW1wdHlWYXJpYXRpb25Hcm91cCgpO1xuICBuZXdHcm91cC5ncm91cENvc3QgPSAwO1xuICBuZXdHcm91cC5xdWFudGl0eSA9IGRlZmF1bHRHcm91cFF1YW50aXR5KHByb2R1Y3QpO1xuICBjb25zdCBncm91cEpzb24gPSBuZXdHcm91cC50b0pzb24oKTtcbiAgLy8gVGhlIFNESydzIGJ1aWxkVmFyaWF0aW9uT3B0aW9uIGRvZXMgbm90IHNldCBgaXNWaXNpYmxlYC9gYXZhaWxhYmxlYCBvbiB0aGVcbiAgLy8gYnVpbHQgc2VsZWN0YWJsZSBvcHRpb25zLiBJbiBzZXJ2ZXIgbW9kZSB0aGVzZSBhcmUgcmVwb3B1bGF0ZWQgYnkgdGhlXG4gIC8vIGVzdGltYXRlIHJvdW5kLXRyaXAgKyBmb3JtIHJlc2V0LCBidXQgaW4gY2xpZW50IG1vZGUgKG5vIHJvdW5kLXRyaXApIHRoZVxuICAvLyBvcHRpb25zIHdvdWxkIHJlbmRlciBkaXNhYmxlZCAoXCItIGRpc2FibGVkXCIpLiBEZWZhdWx0IHRoZW0gaGVyZSBzbyBhIGZyZXNobHlcbiAgLy8gYWRkZWQgZ3JvdXAgaXMgdXNhYmxlOyBvcHRpb24tbGV2ZWwgY29uZGl0aW9uYWwgdmlzaWJpbGl0eSAoc2VsZWN0ZWRCeSkgaXNcbiAgLy8gcmVzb2x2ZWQgb24gc3Vic2VxdWVudCBpbnRlcmFjdGlvbnMgaW4gc2VydmVyIG1vZGUuXG4gIChncm91cEpzb24udmFyaWF0aW9ucyB8fCBbXSkuZm9yRWFjaChlbnN1cmVWYXJpYXRpb25PcHRpb25GbGFncyk7XG4gIHJldHVybiBncm91cEpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2R1Y3RTdXBwbGllck1PRChwcm9kdWN0OiBhbnkpIHtcbiAgY29uc3QgcHJvZHVjdFR5cGUgPSBwcm9kdWN0ICYmIHByb2R1Y3QucHJvZHVjdFR5cGU7XG4gIHJldHVybiAoXG4gICAgcHJvZHVjdCAmJlxuICAgIFtcbiAgICAgIFN0cmluZyhQcm9kdWN0VHlwZS5TVVBQTElFUl9NT0QpLFxuICAgICAgU3RyaW5nKFByb2R1Y3RUeXBlLlNVUFBMSUVSX1JFU0VMTF9NT0QpLFxuICAgIF0uaW5jbHVkZXMoU3RyaW5nKHByb2R1Y3RUeXBlKSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdFR5cGVGaWxlRG93bmxvYWQocHJvZHVjdFR5cGU6IGFueSkge1xuICByZXR1cm4gcGFyc2VJbnQocHJvZHVjdFR5cGUsIDEwKSA9PT0gUHJvZHVjdFR5cGUuU0VMTEVSX0ZJTEVfRE9XTkxPQUQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2R1Y3RGaWxlRG93bmxvYWQocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHsgcHJvZHVjdFR5cGUgfSA9IHByb2R1Y3Q7XG4gIHJldHVybiBpc1Byb2R1Y3RUeXBlRmlsZURvd25sb2FkKHByb2R1Y3RUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdExlYWRGb3JtKHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBwcm9kdWN0VHlwZSA9IHByb2R1Y3QgJiYgcHJvZHVjdC5wcm9kdWN0VHlwZTtcbiAgcmV0dXJuIHBhcnNlSW50KHByb2R1Y3RUeXBlLCAxMCkgPT09IFByb2R1Y3RUeXBlLkxFQURfRk9STTtcbn1cblxuZXhwb3J0IGNvbnN0IGlzb0NvdW50cmllczogYW55ID0ge1xuICBBRjogJ0FmZ2hhbmlzdGFuJyxcbiAgQVg6ICdBbGFuZCBJc2xhbmRzJyxcbiAgQUw6ICdBbGJhbmlhJyxcbiAgRFo6ICdBbGdlcmlhJyxcbiAgQVM6ICdBbWVyaWNhbiBTYW1vYScsXG4gIEFEOiAnQW5kb3JyYScsXG4gIEFPOiAnQW5nb2xhJyxcbiAgQUk6ICdBbmd1aWxsYScsXG4gIEFROiAnQW50YXJjdGljYScsXG4gIEFHOiAnQW50aWd1YSBBbmQgQmFyYnVkYScsXG4gIEFSOiAnQXJnZW50aW5hJyxcbiAgQU06ICdBcm1lbmlhJyxcbiAgQVc6ICdBcnViYScsXG4gIEFVOiAnQXVzdHJhbGlhJyxcbiAgQVQ6ICdBdXN0cmlhJyxcbiAgQVo6ICdBemVyYmFpamFuJyxcbiAgQlM6ICdCYWhhbWFzJyxcbiAgQkg6ICdCYWhyYWluJyxcbiAgQkQ6ICdCYW5nbGFkZXNoJyxcbiAgQkI6ICdCYXJiYWRvcycsXG4gIEJZOiAnQmVsYXJ1cycsXG4gIEJFOiAnQmVsZ2l1bScsXG4gIEJaOiAnQmVsaXplJyxcbiAgQko6ICdCZW5pbicsXG4gIEJNOiAnQmVybXVkYScsXG4gIEJUOiAnQmh1dGFuJyxcbiAgQk86ICdCb2xpdmlhJyxcbiAgQkE6ICdCb3NuaWEgQW5kIEhlcnplZ292aW5hJyxcbiAgQlc6ICdCb3Rzd2FuYScsXG4gIEJWOiAnQm91dmV0IElzbGFuZCcsXG4gIEJSOiAnQnJhemlsJyxcbiAgSU86ICdCcml0aXNoIEluZGlhbiBPY2VhbiBUZXJyaXRvcnknLFxuICBCTjogJ0JydW5laSBEYXJ1c3NhbGFtJyxcbiAgQkc6ICdCdWxnYXJpYScsXG4gIEJGOiAnQnVya2luYSBGYXNvJyxcbiAgQkk6ICdCdXJ1bmRpJyxcbiAgS0g6ICdDYW1ib2RpYScsXG4gIENNOiAnQ2FtZXJvb24nLFxuICBDQTogJ0NhbmFkYScsXG4gIENWOiAnQ2FwZSBWZXJkZScsXG4gIEtZOiAnQ2F5bWFuIElzbGFuZHMnLFxuICBDRjogJ0NlbnRyYWwgQWZyaWNhbiBSZXB1YmxpYycsXG4gIFREOiAnQ2hhZCcsXG4gIENMOiAnQ2hpbGUnLFxuICBDTjogJ0NoaW5hJyxcbiAgQ1g6ICdDaHJpc3RtYXMgSXNsYW5kJyxcbiAgQ0M6ICdDb2NvcyAoS2VlbGluZykgSXNsYW5kcycsXG4gIENPOiAnQ29sb21iaWEnLFxuICBLTTogJ0NvbW9yb3MnLFxuICBDRzogJ0NvbmdvJyxcbiAgQ0Q6ICdDb25nbywgRGVtb2NyYXRpYyBSZXB1YmxpYycsXG4gIENLOiAnQ29vayBJc2xhbmRzJyxcbiAgQ1I6ICdDb3N0YSBSaWNhJyxcbiAgQ0k6IFwiQ290ZSBEJ0l2b2lyZVwiLFxuICBIUjogJ0Nyb2F0aWEnLFxuICBDVTogJ0N1YmEnLFxuICBDWTogJ0N5cHJ1cycsXG4gIENaOiAnQ3plY2ggUmVwdWJsaWMnLFxuICBESzogJ0Rlbm1hcmsnLFxuICBESjogJ0RqaWJvdXRpJyxcbiAgRE06ICdEb21pbmljYScsXG4gIERPOiAnRG9taW5pY2FuIFJlcHVibGljJyxcbiAgRUM6ICdFY3VhZG9yJyxcbiAgRUc6ICdFZ3lwdCcsXG4gIFNWOiAnRWwgU2FsdmFkb3InLFxuICBHUTogJ0VxdWF0b3JpYWwgR3VpbmVhJyxcbiAgRVI6ICdFcml0cmVhJyxcbiAgRUU6ICdFc3RvbmlhJyxcbiAgRVQ6ICdFdGhpb3BpYScsXG4gIEZLOiAnRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpJyxcbiAgRk86ICdGYXJvZSBJc2xhbmRzJyxcbiAgRko6ICdGaWppJyxcbiAgRkk6ICdGaW5sYW5kJyxcbiAgRlI6ICdGcmFuY2UnLFxuICBHRjogJ0ZyZW5jaCBHdWlhbmEnLFxuICBQRjogJ0ZyZW5jaCBQb2x5bmVzaWEnLFxuICBURjogJ0ZyZW5jaCBTb3V0aGVybiBUZXJyaXRvcmllcycsXG4gIEdBOiAnR2Fib24nLFxuICBHTTogJ0dhbWJpYScsXG4gIEdFOiAnR2VvcmdpYScsXG4gIERFOiAnR2VybWFueScsXG4gIEdIOiAnR2hhbmEnLFxuICBHSTogJ0dpYnJhbHRhcicsXG4gIEdSOiAnR3JlZWNlJyxcbiAgR0w6ICdHcmVlbmxhbmQnLFxuICBHRDogJ0dyZW5hZGEnLFxuICBHUDogJ0d1YWRlbG91cGUnLFxuICBHVTogJ0d1YW0nLFxuICBHVDogJ0d1YXRlbWFsYScsXG4gIEdHOiAnR3Vlcm5zZXknLFxuICBHTjogJ0d1aW5lYScsXG4gIEdXOiAnR3VpbmVhLUJpc3NhdScsXG4gIEdZOiAnR3V5YW5hJyxcbiAgSFQ6ICdIYWl0aScsXG4gIEhNOiAnSGVhcmQgSXNsYW5kICYgTWNkb25hbGQgSXNsYW5kcycsXG4gIFZBOiAnSG9seSBTZWUgKFZhdGljYW4gQ2l0eSBTdGF0ZSknLFxuICBITjogJ0hvbmR1cmFzJyxcbiAgSEs6ICdIb25nIEtvbmcnLFxuICBIVTogJ0h1bmdhcnknLFxuICBJUzogJ0ljZWxhbmQnLFxuICBJTjogJ0luZGlhJyxcbiAgSUQ6ICdJbmRvbmVzaWEnLFxuICBJUjogJ0lyYW4sIElzbGFtaWMgUmVwdWJsaWMgT2YnLFxuICBJUTogJ0lyYXEnLFxuICBJRTogJ0lyZWxhbmQnLFxuICBJTTogJ0lzbGUgT2YgTWFuJyxcbiAgSUw6ICdJc3JhZWwnLFxuICBJVDogJ0l0YWx5JyxcbiAgSk06ICdKYW1haWNhJyxcbiAgSlA6ICdKYXBhbicsXG4gIEpFOiAnSmVyc2V5JyxcbiAgSk86ICdKb3JkYW4nLFxuICBLWjogJ0themFraHN0YW4nLFxuICBLRTogJ0tlbnlhJyxcbiAgS0k6ICdLaXJpYmF0aScsXG4gIEtSOiAnS29yZWEnLFxuICBLVzogJ0t1d2FpdCcsXG4gIEtHOiAnS3lyZ3l6c3RhbicsXG4gIExBOiBcIkxhbyBQZW9wbGUncyBEZW1vY3JhdGljIFJlcHVibGljXCIsXG4gIExWOiAnTGF0dmlhJyxcbiAgTEI6ICdMZWJhbm9uJyxcbiAgTFM6ICdMZXNvdGhvJyxcbiAgTFI6ICdMaWJlcmlhJyxcbiAgTFk6ICdMaWJ5YW4gQXJhYiBKYW1haGlyaXlhJyxcbiAgTEk6ICdMaWVjaHRlbnN0ZWluJyxcbiAgTFQ6ICdMaXRodWFuaWEnLFxuICBMVTogJ0x1eGVtYm91cmcnLFxuICBNTzogJ01hY2FvJyxcbiAgTUs6ICdNYWNlZG9uaWEnLFxuICBNRzogJ01hZGFnYXNjYXInLFxuICBNVzogJ01hbGF3aScsXG4gIE1ZOiAnTWFsYXlzaWEnLFxuICBNVjogJ01hbGRpdmVzJyxcbiAgTUw6ICdNYWxpJyxcbiAgTVQ6ICdNYWx0YScsXG4gIE1IOiAnTWFyc2hhbGwgSXNsYW5kcycsXG4gIE1ROiAnTWFydGluaXF1ZScsXG4gIE1SOiAnTWF1cml0YW5pYScsXG4gIE1VOiAnTWF1cml0aXVzJyxcbiAgWVQ6ICdNYXlvdHRlJyxcbiAgTVg6ICdNZXhpY28nLFxuICBGTTogJ01pY3JvbmVzaWEsIEZlZGVyYXRlZCBTdGF0ZXMgT2YnLFxuICBNRDogJ01vbGRvdmEnLFxuICBNQzogJ01vbmFjbycsXG4gIE1OOiAnTW9uZ29saWEnLFxuICBNRTogJ01vbnRlbmVncm8nLFxuICBNUzogJ01vbnRzZXJyYXQnLFxuICBNQTogJ01vcm9jY28nLFxuICBNWjogJ01vemFtYmlxdWUnLFxuICBNTTogJ015YW5tYXInLFxuICBOQTogJ05hbWliaWEnLFxuICBOUjogJ05hdXJ1JyxcbiAgTlA6ICdOZXBhbCcsXG4gIE5MOiAnTmV0aGVybGFuZHMnLFxuICBBTjogJ05ldGhlcmxhbmRzIEFudGlsbGVzJyxcbiAgTkM6ICdOZXcgQ2FsZWRvbmlhJyxcbiAgTlo6ICdOZXcgWmVhbGFuZCcsXG4gIE5JOiAnTmljYXJhZ3VhJyxcbiAgTkU6ICdOaWdlcicsXG4gIE5HOiAnTmlnZXJpYScsXG4gIE5VOiAnTml1ZScsXG4gIE5GOiAnTm9yZm9sayBJc2xhbmQnLFxuICBNUDogJ05vcnRoZXJuIE1hcmlhbmEgSXNsYW5kcycsXG4gIE5POiAnTm9yd2F5JyxcbiAgT006ICdPbWFuJyxcbiAgUEs6ICdQYWtpc3RhbicsXG4gIFBXOiAnUGFsYXUnLFxuICBQUzogJ1BhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQnLFxuICBQQTogJ1BhbmFtYScsXG4gIFBHOiAnUGFwdWEgTmV3IEd1aW5lYScsXG4gIFBZOiAnUGFyYWd1YXknLFxuICBQRTogJ1BlcnUnLFxuICBQSDogJ1BoaWxpcHBpbmVzJyxcbiAgUE46ICdQaXRjYWlybicsXG4gIFBMOiAnUG9sYW5kJyxcbiAgUFQ6ICdQb3J0dWdhbCcsXG4gIFBSOiAnUHVlcnRvIFJpY28nLFxuICBRQTogJ1FhdGFyJyxcbiAgUkU6ICdSZXVuaW9uJyxcbiAgUk86ICdSb21hbmlhJyxcbiAgUlU6ICdSdXNzaWFuIEZlZGVyYXRpb24nLFxuICBSVzogJ1J3YW5kYScsXG4gIEJMOiAnU2FpbnQgQmFydGhlbGVteScsXG4gIFNIOiAnU2FpbnQgSGVsZW5hJyxcbiAgS046ICdTYWludCBLaXR0cyBBbmQgTmV2aXMnLFxuICBMQzogJ1NhaW50IEx1Y2lhJyxcbiAgTUY6ICdTYWludCBNYXJ0aW4nLFxuICBQTTogJ1NhaW50IFBpZXJyZSBBbmQgTWlxdWVsb24nLFxuICBWQzogJ1NhaW50IFZpbmNlbnQgQW5kIEdyZW5hZGluZXMnLFxuICBXUzogJ1NhbW9hJyxcbiAgU006ICdTYW4gTWFyaW5vJyxcbiAgU1Q6ICdTYW8gVG9tZSBBbmQgUHJpbmNpcGUnLFxuICBTQTogJ1NhdWRpIEFyYWJpYScsXG4gIFNOOiAnU2VuZWdhbCcsXG4gIFJTOiAnU2VyYmlhJyxcbiAgU0M6ICdTZXljaGVsbGVzJyxcbiAgU0w6ICdTaWVycmEgTGVvbmUnLFxuICBTRzogJ1NpbmdhcG9yZScsXG4gIFNLOiAnU2xvdmFraWEnLFxuICBTSTogJ1Nsb3ZlbmlhJyxcbiAgU0I6ICdTb2xvbW9uIElzbGFuZHMnLFxuICBTTzogJ1NvbWFsaWEnLFxuICBaQTogJ1NvdXRoIEFmcmljYScsXG4gIEdTOiAnU291dGggR2VvcmdpYSBBbmQgU2FuZHdpY2ggSXNsLicsXG4gIEVTOiAnU3BhaW4nLFxuICBMSzogJ1NyaSBMYW5rYScsXG4gIFNEOiAnU3VkYW4nLFxuICBTUjogJ1N1cmluYW1lJyxcbiAgU0o6ICdTdmFsYmFyZCBBbmQgSmFuIE1heWVuJyxcbiAgU1o6ICdTd2F6aWxhbmQnLFxuICBTRTogJ1N3ZWRlbicsXG4gIENIOiAnU3dpdHplcmxhbmQnLFxuICBTWTogJ1N5cmlhbiBBcmFiIFJlcHVibGljJyxcbiAgVFc6ICdUYWl3YW4nLFxuICBUSjogJ1RhamlraXN0YW4nLFxuICBUWjogJ1RhbnphbmlhJyxcbiAgVEg6ICdUaGFpbGFuZCcsXG4gIFRMOiAnVGltb3ItTGVzdGUnLFxuICBURzogJ1RvZ28nLFxuICBUSzogJ1Rva2VsYXUnLFxuICBUTzogJ1RvbmdhJyxcbiAgVFQ6ICdUcmluaWRhZCBBbmQgVG9iYWdvJyxcbiAgVE46ICdUdW5pc2lhJyxcbiAgVFI6ICdUdXJrZXknLFxuICBUTTogJ1R1cmttZW5pc3RhbicsXG4gIFRDOiAnVHVya3MgQW5kIENhaWNvcyBJc2xhbmRzJyxcbiAgVFY6ICdUdXZhbHUnLFxuICBVRzogJ1VnYW5kYScsXG4gIFVBOiAnVWtyYWluZScsXG4gIEFFOiAnVW5pdGVkIEFyYWIgRW1pcmF0ZXMnLFxuICBHQjogJ1VuaXRlZCBLaW5nZG9tJyxcbiAgVVM6ICdVbml0ZWQgU3RhdGVzJyxcbiAgVU06ICdVbml0ZWQgU3RhdGVzIE91dGx5aW5nIElzbGFuZHMnLFxuICBVWTogJ1VydWd1YXknLFxuICBVWjogJ1V6YmVraXN0YW4nLFxuICBWVTogJ1ZhbnVhdHUnLFxuICBWRTogJ1ZlbmV6dWVsYScsXG4gIFZOOiAnVmlldCBOYW0nLFxuICBWRzogJ1ZpcmdpbiBJc2xhbmRzLCBCcml0aXNoJyxcbiAgVkk6ICdWaXJnaW4gSXNsYW5kcywgVS5TLicsXG4gIFdGOiAnV2FsbGlzIEFuZCBGdXR1bmEnLFxuICBFSDogJ1dlc3Rlcm4gU2FoYXJhJyxcbiAgWUU6ICdZZW1lbicsXG4gIFpNOiAnWmFtYmlhJyxcbiAgWlc6ICdaaW1iYWJ3ZScsXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q291bnRyeU5hbWUoY291bnRyeUNvZGU6IGFueSkge1xuICBpZiAoaXNvQ291bnRyaWVzLmhhc093blByb3BlcnR5KGNvdW50cnlDb2RlKSkge1xuICAgIHJldHVybiBpc29Db3VudHJpZXNbY291bnRyeUNvZGVdO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBjb3VudHJ5Q29kZTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5UYWdJZHMocmF3OiBhbnlbXSkge1xuICByZXR1cm4gcmF3Lm1hcChpZCA9PiBpZC50cmltKCkpICAgICAgICAgICAgLy8gVHJpbSBlYWNoIElEIGVudHJ5IHRvIHJlbW92ZSB3aGl0ZXNwYWNlXG4gICAgLmZpbHRlcihpZCA9PiAvXlxcZCskLy50ZXN0KGlkKSkgIC8vIFVzZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBlbnN1cmUgdGhlIElEIGlzIGVudGlyZWx5IG51bWVyaWMuXG4gICAgLm1hcChpZCA9PiBOdW1iZXIoaWQpKTsgICAgICAgICAgLy8gQ29udmVydCB0aGUgcmVtYWluaW5nLCB2YWxpZCBJRCBlbnRyaWVzIGludG8gbnVtYmVyc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWVyY2hpU291cmNlSm9iVGFncygpOiBhbnlbXSB7XG4gIGlmICh0eXBlb2YgbG9jYWxTdG9yYWdlICE9PSAndW5kZWZpbmVkJyAmJiBsb2NhbFN0b3JhZ2UgIT09IG51bGwpIHtcbiAgICBjb25zdCBtZXJjaGlTb3VyY2UgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnbWVyY2hpX3NvdXJjZScpO1xuXG4gICAgaWYgKG1lcmNoaVNvdXJjZSkge1xuICAgICAgY29uc3QgaWRzID0gY2xlYW5UYWdJZHMobWVyY2hpU291cmNlLnNwbGl0KCcsJykpO1xuICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkOiBudW1iZXIpID0+ICh7IGlkIH0pKTtcbiAgICB9XG4gICAgLy8gSWYgXCJtZXJjaGlfc291cmNlXCIgaXMgbm90IGZvdW5kIGluIGxvY2FsU3RvcmFnZSwgcmV0dXJuIGFuIGVtcHR5IGFycmF5LlxuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlQb3NpdGlvbihvcHRpb25zOiBhbnlbXSk6IGFueVtdIHtcbiAgcmV0dXJuIG9wdGlvbnMubWFwKChvYmo6IGFueSkgPT4ge1xuICAgIGNvbnN0IHBvc2l0aW9uID0gdHlwZW9mIG9iai5wb3NpdGlvbiA9PT0gJ3N0cmluZydcbiAgICAgID8gcGFyc2VJbnQob2JqLnBvc2l0aW9uLCAxMClcbiAgICAgIDogb2JqLnBvc2l0aW9uO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5vYmosXG4gICAgICBwb3NpdGlvbjogdHlwZW9mIHBvc2l0aW9uID09PSAnbnVtYmVyJyA/IHBvc2l0aW9uIDogMCxcbiAgICB9O1xuICB9KS5zb3J0KChhLCBiKSA9PiB7XG4gICAgY29uc3QgYVBvc2l0aW9uID0gdHlwZW9mIGEucG9zaXRpb24gPT09ICdudW1iZXInID8gYS5wb3NpdGlvbiA6IDA7XG4gICAgY29uc3QgYlBvc2l0aW9uID0gdHlwZW9mIGIucG9zaXRpb24gPT09ICdudW1iZXInID8gYi5wb3NpdGlvbiA6IDA7XG4gICAgcmV0dXJuIGFQb3NpdGlvbiAtIGJQb3NpdGlvbjtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMoam9iSnNvbjogYW55KSB7XG4gIGNvbnN0IHsgdmFyaWF0aW9ucywgdmFyaWF0aW9uc0dyb3VwcyB9ID0gam9iSnNvbjtcbiAgY29uc3QgaGFzR3JvdXBzID0gQm9vbGVhbih2YXJpYXRpb25zR3JvdXBzICYmIHZhcmlhdGlvbnNHcm91cHMubGVuZ3RoKTtcbiAgY29uc3QgaGFzVmFyaWF0aW9ucyA9IEJvb2xlYW4odmFyaWF0aW9ucyAmJiB2YXJpYXRpb25zLmxlbmd0aCk7XG4gIFxuICAvLyBMb29wIG92ZXIgaW5kaXZpZHVhbCB2YXJpYXRpb25zIGFuZCBjaGVjayBpZiB0aGUgdmFyaWF0aW9uIGlzIGEganNvbiBzdHJpbmcsIGlmIGl0IGlzIGNvbnZlcnQgaXQgdG8gYW4gb2JqZWN0XG4gIGlmIChoYXNWYXJpYXRpb25zKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YXJpYXRpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXJpYXRpb25zW2ldID0gY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbih2YXJpYXRpb25zW2ldKTtcbiAgICB9XG4gICAgam9iSnNvbi52YXJpYXRpb25zID0gdmFyaWF0aW9ucztcbiAgfVxuICBcbiAgaWYgKGhhc0dyb3Vwcykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdmFyaWF0aW9uc0dyb3Vwcy5sZW5ndGg7IGkrKykge1xuICAgICAgLy8gU2V0IGRlZmF1bHQgcXVhbnRpdHkgaWYgbm90IHByZXNlbnRcbiAgICAgIGNvbnN0IGdyb3VwID0gdmFyaWF0aW9uc0dyb3Vwc1tpXTtcbiAgICAgIGlmICghZ3JvdXAucXVhbnRpdHkpIHtcbiAgICAgICAgZ3JvdXAucXVhbnRpdHkgPSAwO1xuICAgICAgfVxuICAgICAgXG4gICAgICAvLyBIYW5kbGUgdmFyaWF0aW9ucyB3aXRoaW4gdGhlIGdyb3VwIC0gY29udmVydCBKU09OIHN0cmluZ3MgdG8gb2JqZWN0c1xuICAgICAgaWYgKGdyb3VwLnZhcmlhdGlvbnMgJiYgQXJyYXkuaXNBcnJheShncm91cC52YXJpYXRpb25zKSkge1xuICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGdyb3VwLnZhcmlhdGlvbnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICBncm91cC52YXJpYXRpb25zW2pdID0gY2xlYW5Gb3JtVmFyaWF0aW9uSnNvbihncm91cC52YXJpYXRpb25zW2pdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBqb2JKc29uLnZhcmlhdGlvbnNHcm91cHMgPSB2YXJpYXRpb25zR3JvdXBzO1xuICB9XG4gIFxuICByZXR1cm4gam9iSnNvbjtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsU0FBU0EsTUFBTSxFQUFFQyxjQUFjLFFBQVEsYUFBYTtBQUNwRCxTQUFTQyxjQUFjLFFBQVEsbUJBQW1CO0FBQ2xELFNBQVNDLFdBQVcsRUFBRUMsU0FBUyxRQUFRLGdCQUFnQjtBQUN2RCxTQUFTQyxzQkFBc0IsUUFBUSxpQ0FBaUM7QUFDeEUsU0FBU0Esc0JBQXNCLFFBQVEsaUNBQWlDO0FBQ3hFLFNBQVNDLG9CQUFvQixRQUFRLG1CQUFtQjtBQUN4RCxTQUNFQSxvQkFBb0IsRUFDcEJDLGtCQUFrQixFQUNsQkMsc0JBQXNCLEVBQ3RCQyxlQUFlLFFBQ1YsbUJBQW1CO0FBQzFCLElBQU1DLGlCQUFpQixHQUFHQyxPQUFPLENBQUMsaUNBQWlDLENBQUM7QUFFcEUsU0FBU0MsMEJBQTBCQSxDQUNqQ0MsSUFBUyxFQUNUQyxZQUFpQixFQUNqQkMsY0FBc0IsRUFDdEI7RUFDQSxJQUFJQyxlQUFlLEdBQUc7SUFBRUMsUUFBUSxFQUFFSCxZQUFZO0lBQUVJLGtCQUFrQixFQUFFO0VBQU0sQ0FBQztFQUMzRSxJQUFJQyxVQUFVLEdBQUcsRUFBRTtFQUNuQixJQUFNQyxNQUFNLEdBQUdDLFVBQVUsQ0FBQ1IsSUFBSSxDQUFDO0VBRS9CLElBQUlTLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSCxNQUFNLENBQUMsSUFBSUEsTUFBTSxHQUFHLENBQUMs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
516
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXJjaGkiLCJWYXJpYXRpb25GaWVsZCIsImZvcm1hdEN1cnJlbmN5IiwiUHJvZHVjdFR5cGUiLCJGaWVsZFR5cGUiLCJjbGVhbkZvcm1WYXJpYXRpb25Kc29uIiwiZGVmYXVsdEdyb3VwUXVhbnRpdHkiLCJlbmZvcmNlTW9xUGVyR3JvdXAiLCJwcm9kdWN0TWluaW11bVF1YW50aXR5IiwicHJvZHVjdE1vcUZsb29yIiwicG5nT3B0aW9uTm90Rm91bmQiLCJyZXF1aXJlIiwicmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24iLCJjb3N0IiwiY3VycmVuY3lDb2RlIiwiY29zdFR5cGVTdHJpbmciLCJjdXJyZW5jeU9wdGlvbnMiLCJjdXJyZW5jeSIsInNob3dDb2RlSWZOb1N5bWJvbCIsImNvc3RTdHJpbmciLCJhbW91bnQiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJjb3N0RGV0YWlsIiwib25jZU9mZkNvc3QiLCJ1bml0Q29zdCIsIm9uY2VPZmZDb3N0RGVzY3JpcHRpb24iLCJ1bml0Q29zdERlc2NyaXB0aW9uIiwidmFyaWF0aW9uRmllbGRDb3N0RGV0YWlsIiwidmFyaWF0aW9uRmllbGQiLCJ2YXJpYXRpb25Db3N0IiwidmFyaWF0aW9uVW5pdENvc3QiLCJ2YXJpYXRpb25Db3N0RGV0YWlsIiwidmFyaWF0aW9uIiwidmFyaWF0aW9uRmllbGRPcHRpb25Db3N0RGV0YWlsIiwib3B0aW9uIiwiX29wdGlvbiRvbmNlT2ZmQ29zdCIsIl9vcHRpb24kdW5pdENvc3QiLCJwcm9kdWN0U2V0dXBDb3N0RGV0YWlsIiwicHJvZHVjdCIsInNldHVwUHJpY2UiLCJsYWJlbCIsInNldHVwUGVyR3JvdXAiLCJzcGxpdFNlbGVjdGVkT3B0aW9ucyIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5Iiwic3BsaXQiLCJzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlIiwiX3ZhcmlhdGlvbiR2YXJpYXRpb25GIiwiX3R5cGVvZiIsImZpZWxkVHlwZSIsIkNPTE9VUl9FWFRSQUNUIiwic2VsZWN0YWJsZSIsInNlbGVjdGFibGVPcHRpb25zIiwibGVuZ3RoIiwic2VsZWN0ZWRJZHMiLCJtYXAiLCJTdHJpbmciLCJmaWx0ZXIiLCJCb29sZWFuIiwicmVzb2x2ZWQiLCJpbmNsdWRlcyIsIm9wdGlvbklkIiwiX29iamVjdFNwcmVhZCIsInNlbGVjdGVkT3B0aW9ucyIsInN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzIiwiam9iIiwibmV4dCIsInZhcmlhdGlvbnMiLCJ2YXJpYXRpb25zR3JvdXBzIiwiZ3JvdXAiLCJzdXBwbGllclNlbGxlckVkaXRhYmxlUHJvZHVjdFR5cGVzIiwiU1VQUExJRVJfTU9EIiwiQ0xPTkVEX1NVUFBMSUVSX01PRCIsIm9wdGlvbkltYWdlVXJsIiwiaW1hZ2UiLCJpbWFnZU5vdEZvdW5kIiwic3JjIiwibGlua2VkRmlsZSIsInZpZXdVcmwiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVNYXBwaW5nIiwiYWxsb3dGaWxlSnBlZyIsImFsbG93RmlsZUdpZiIsImFsbG93RmlsZVBkZiIsImFsbG93RmlsZVBuZyIsImFsbG93RmlsZUFpIiwiYWxsb3dlZFR5cGVzIiwiT2JqZWN0Iiwia2V5cyIsImF0dHJpYnV0ZU5hbWUiLCJqb2luIiwiVmFyaWF0aW9uRmllbGRDbGFzcyIsInByb3BlcnR5IiwidHlwZSIsInByb3RvdHlwZSIsIm1lcmNoaSIsImVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzIiwiaXNWaXNpYmxlIiwidW5kZWZpbmVkIiwiZm9yRWFjaCIsImF2YWlsYWJsZSIsImJ1aWxkRW1wdHlWYXJpYXRpb25Gcm9tRmllbGQiLCJmaWVsZCIsImZpZWxkRW50IiwiZnJvbUpzb24iLCJtYWtlRGlydHkiLCJ2YXJpYXRpb25Kc29uIiwiYnVpbGRFbXB0eVZhcmlhdGlvbiIsInRvSnNvbiIsImFsbG93QWxsUGFudG9uZXMiLCJsYXlvdXRTcGFuIiwiYnVpbGRFbXB0eVZhcmlhdGlvbkdyb3VwIiwicHJvZHVjdEVudCIsIlByb2R1Y3QiLCJuZXdHcm91cCIsImdyb3VwQ29zdCIsInF1YW50aXR5IiwiZ3JvdXBKc29uIiwiaXNQcm9kdWN0U3VwcGxpZXJNT0QiLCJwcm9kdWN0VHlwZSIsIlNVUFBMSUVSX1JFU0VMTF9NT0QiLCJpc1Byb2R1Y3RUeXBlRmlsZURvd25sb2FkIiwicGFyc2VJbnQiLCJTRUxMRVJfRklMRV9ET1dOTE9BRCIsImlzUHJvZHVjdEZpbGVEb3dubG9hZCIsImlzUHJvZHVjdExlYWRGb3JtIiwiTEVBRF9GT1JNIiwiaXNvQ291bnRyaWVzIiwiQUYiLCJBWCIsIkFMIiwiRFoiLCJBUyIsIkFEIiwiQU8iLCJBSSIsIkFRIiwiQUciLCJBUiIsIkFNIiwiQVciLCJBVSIsIkFUIiwiQVoiLCJCUyIsIkJIIiwiQkQiLCJCQiIsIkJZIiwiQkUiLCJCWiIsIkJKIiwiQk0iLCJCVCIsIkJPIiwiQkEiLCJCVyIsIkJWIiwiQlIiLCJJTyIsIkJOIiwiQkciLCJCRiIsIkJJIiwiS0giLCJDTSIsIkNBIiwiQ1YiLCJLWSIsIkNGIiwiVEQiLCJDTCIsIkNOIiwiQ1giLCJDQyIsIkNPIiwiS00iLCJDRyIsIkNEIiwiQ0siLCJDUiIsIkNJIiwiSFIiLCJDVSIsIkNZIiwiQ1oiLCJESyIsIkRKIiwiRE0iLCJETyIsIkVDIiwiRUciLCJTViIsIkdRIiwiRVIiLCJFRSIsIkVUIiwiRksiLCJGTyIsIkZKIiwiRkkiLCJGUiIsIkdGIiwiUEYiLCJURiIsIkdBIiwiR00iLCJHRSIsIkRFIiwiR0giLCJHSSIsIkdSIiwiR0wiLCJHRCIsIkdQIiwiR1UiLCJHVCIsIkdHIiwiR04iLCJHVyIsIkdZIiwiSFQiLCJITSIsIlZBIiwiSE4iLCJISyIsIkhVIiwiSVMiLCJJTiIsIklEIiwiSVIiLCJJUSIsIklFIiwiSU0iLCJJTCIsIklUIiwiSk0iLCJKUCIsIkpFIiwiSk8iLCJLWiIsIktFIiwiS0kiLCJLUiIsIktXIiwiS0ciLCJMQSIsIkxWIiwiTEIiLCJMUyIsIkxSIiwiTFkiLCJMSSIsIkxUIiwiTFUiLCJNTyIsIk1LIiwiTUciLCJNVyIsIk1ZIiwiTVYiLCJNTCIsIk1UIiwiTUgiLCJNUSIsIk1SIiwiTVUiLCJZVCIsIk1YIiwiRk0iLCJNRCIsIk1DIiwiTU4iLCJNRSIsIk1TIiwiTUEiLCJNWiIsIk1NIiwiTkEiLCJOUiIsIk5QIiwiTkwiLCJBTiIsIk5DIiwiTloiLCJOSSIsIk5FIiwiTkciLCJOVSIsIk5GIiwiTVAiLCJOTyIsIk9NIiwiUEsiLCJQVyIsIlBTIiwiUEEiLCJQRyIsIlBZIiwiUEUiLCJQSCIsIlBOIiwiUEwiLCJQVCIsIlBSIiwiUUEiLCJSRSIsIlJPIiwiUlUiLCJSVyIsIkJMIiwiU0giLCJLTiIsIkxDIiwiTUYiLCJQTSIsIlZDIiwiV1MiLCJTTSIsIlNUIiwiU0EiLCJTTiIsIlJTIiwiU0MiLCJTTCIsIlNHIiwiU0siLCJTSSIsIlNCIiwiU08iLCJaQSIsIkdTIiwiRVMiLCJMSyIsIlNEIiwiU1IiLCJTSiIsIlNaIiwiU0UiLCJDSCIsIlNZIiwiVFciLCJUSiIsIlRaIiwiVEgiLCJUTCIsIlRHIiwiVEsiLCJUTyIsIlRUIiwiVE4iLCJUUiIsIlRNIiwiVEMiLCJUViIsIlVHIiwiVUEiLCJBRSIsIkdCIiwiVVMiLCJVTSIsIlVZIiwiVVoiLCJWVSIsIlZFIiwiVk4iLCJWRyIsIlZJIiwiV0YiLCJFSCIsIllFIiwiWk0iLCJaVyIsImdldENvdW50cnlOYW1lIiwiY291bnRyeUNvZGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNsZWFuVGFnSWRzIiwicmF3IiwiaWQiLCJ0cmltIiwidGVzdCIsImdldE1lcmNoaVNvdXJjZUpvYlRhZ3MiLCJsb2NhbFN0b3JhZ2UiLCJtZXJjaGlTb3VyY2UiLCJnZXRJdGVtIiwiaWRzIiwic29ydEJ5UG9zaXRpb24iLCJvcHRpb25zIiwib2JqIiwicG9zaXRpb24iLCJzb3J0IiwiYSIsImIiLCJhUG9zaXRpb24iLCJiUG9zaXRpb24iLCJjbGVhbkpvYlZhcmlhdGlvbnNBbmRHcm91cHMiLCJqb2JKc29uIiwiaGFzR3JvdXBzIiwiaGFzVmFyaWF0aW9ucyIsImkiLCJqIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvdXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWVyY2hpLCBWYXJpYXRpb25GaWVsZCB9IGZyb20gJ0BtZXJjaGkvc2RrJztcbmltcG9ydCB7IGZvcm1hdEN1cnJlbmN5IH0gZnJvbSAnLi4vdXRpbHMvY3VycmVuY3knO1xuaW1wb3J0IHsgUHJvZHVjdFR5cGUsIEZpZWxkVHlwZSB9IGZyb20gJy4uL3V0aWxzL3R5cGVzJztcbmV4cG9ydCB7IGNsZWFuRm9ybVZhcmlhdGlvbkpzb24gfSBmcm9tICcuLi91dGlscy9jbGVhbkZvcm1WYXJpYXRpb25Kc29uJztcbmltcG9ydCB7IGNsZWFuRm9ybVZhcmlhdGlvbkpzb24gfSBmcm9tICcuLi91dGlscy9jbGVhbkZvcm1WYXJpYXRpb25Kc29uJztcbmltcG9ydCB7IGRlZmF1bHRHcm91cFF1YW50aXR5IH0gZnJvbSAnLi4vdXRpbHMvcXVhbnRpdHknO1xuZXhwb3J0IHtcbiAgZGVmYXVsdEdyb3VwUXVhbnRpdHksXG4gIGVuZm9yY2VNb3FQZXJHcm91cCxcbiAgcHJvZHVjdE1pbmltdW1RdWFudGl0eSxcbiAgcHJvZHVjdE1vcUZsb29yLFxufSBmcm9tICcuLi91dGlscy9xdWFudGl0eSc7XG5jb25zdCBwbmdPcHRpb25Ob3RGb3VuZCA9IHJlcXVpcmUoJy4uL2ltYWdlcy9wcm9kdWN0LW5vdC1mb3VuZC5wbmcnKTtcblxuZnVuY3Rpb24gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oXG4gIGNvc3Q6IGFueSxcbiAgY3VycmVuY3lDb2RlOiBhbnksXG4gIGNvc3RUeXBlU3RyaW5nOiBzdHJpbmdcbikge1xuICBsZXQgY3VycmVuY3lPcHRpb25zID0geyBjdXJyZW5jeTogY3VycmVuY3lDb2RlLCBzaG93Q29kZUlmTm9TeW1ib2w6IGZhbHNlIH07XG4gIGxldCBjb3N0U3RyaW5nID0gJyc7XG4gIGNvbnN0IGFtb3VudCA9IHBhcnNlRmxvYXQoY29zdCk7XG5cbiAgaWYgKE51bWJlci5pc0Zpbml0ZShhbW91bnQpICYmIGFtb3VudCA+IDApIHtcbiAgICBjb3N0U3RyaW5nID0gZm9ybWF0Q3VycmVuY3koYW1vdW50LCBjdXJyZW5jeU9wdGlvbnMpO1xuICAgIGNvc3RTdHJpbmcgPSAnICsgJyArIGNvc3RTdHJpbmcgKyAnICcgKyBjb3N0VHlwZVN0cmluZztcbiAgfVxuICByZXR1cm4gY29zdFN0cmluZztcbn1cblxuY29uc3QgY29zdERldGFpbCA9IChvbmNlT2ZmQ29zdDogYW55LCB1bml0Q29zdDogYW55LCBjdXJyZW5jeUNvZGU6IHN0cmluZykgPT4ge1xuICBjb25zdCBvbmNlT2ZmQ29zdERlc2NyaXB0aW9uID0gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oXG4gICAgcGFyc2VGbG9hdChvbmNlT2ZmQ29zdCksXG4gICAgY3VycmVuY3lDb2RlLFxuICAgICdvbmNlIG9mZidcbiAgKTtcbiAgY29uc3QgdW5pdENvc3REZXNjcmlwdGlvbiA9IHJlbmRlclNpbmdsZUNvc3RJbmRpY2F0aW9uKFxuICAgIHBhcnNlRmxvYXQodW5pdENvc3QpLFxuICAgIGN1cnJlbmN5Q29kZSxcbiAgICAncGVyIHVuaXQnXG4gICk7XG4gIHJldHVybiBvbmNlT2ZmQ29zdERlc2NyaXB0aW9uICsgdW5pdENvc3REZXNjcmlwdGlvbjtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYXRpb25GaWVsZENvc3REZXRhaWwodmFyaWF0aW9uRmllbGQ6IGFueSkge1xuICBjb25zdCB7IHZhcmlhdGlvbkNvc3QsIHZhcmlhdGlvblVuaXRDb3N0LCBjdXJyZW5jeSB9ID0gdmFyaWF0aW9uRmllbGQ7XG4gIHJldHVybiBjb3N0RGV0YWlsKHZhcmlhdGlvbkNvc3QhLCB2YXJpYXRpb25Vbml0Q29zdCEsIGN1cnJlbmN5ISk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2YXJpYXRpb25Db3N0RGV0YWlsKHZhcmlhdGlvbjogYW55KSB7XG4gIGNvbnN0IHsgb25jZU9mZkNvc3QsIHVuaXRDb3N0LCBjdXJyZW5jeSB9ID0gdmFyaWF0aW9uO1xuICByZXR1cm4gY29zdERldGFpbChvbmNlT2ZmQ29zdCEsIHVuaXRDb3N0ISwgY3VycmVuY3khKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhcmlhdGlvbkZpZWxkT3B0aW9uQ29zdERldGFpbChvcHRpb246IGFueSkge1xuICBjb25zdCB7IGN1cnJlbmN5IH0gPSBvcHRpb247XG4gIC8vIEZpZWxkIG9wdGlvbnMgdXNlIHZhcmlhdGlvbkNvc3Q7IHNlbGVjdGFibGUgVmFyaWF0aW9uT3B0aW9ucyB1c2Ugb25jZU9mZkNvc3QuXG4gIGNvbnN0IG9uY2VPZmZDb3N0ID0gb3B0aW9uLm9uY2VPZmZDb3N0ID8/IG9wdGlvbi52YXJpYXRpb25Db3N0O1xuICBjb25zdCB1bml0Q29zdCA9IG9wdGlvbi51bml0Q29zdCA/PyBvcHRpb24udmFyaWF0aW9uVW5pdENvc3Q7XG4gIHJldHVybiBjb3N0RGV0YWlsKG9uY2VPZmZDb3N0ISwgdW5pdENvc3QhLCBjdXJyZW5jeSEpO1xufVxuXG4vKiogUHJvZHVjdC1sZXZlbCBzZXR1cCBmZWUsIHNhbWUgXCIrICRYIOKAplwiIHN0eWxlIGFzIHZhcmlhdGlvbiBvbmNlLW9mZiBjb3N0cy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm9kdWN0U2V0dXBDb3N0RGV0YWlsKHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBzZXR1cFByaWNlID0gcGFyc2VGbG9hdChwcm9kdWN0Py5zZXR1cFByaWNlKTtcbiAgaWYgKCFzZXR1cFByaWNlKSByZXR1cm4gJyc7XG4gIGNvbnN0IGxhYmVsID0gcHJvZHVjdC5zZXR1cFBlckdyb3VwID8gJ3NldHVwIHBlciBncm91cCcgOiAnc2V0dXAnO1xuICByZXR1cm4gcmVuZGVyU2luZ2xlQ29zdEluZGljYXRpb24oc2V0dXBQcmljZSwgcHJvZHVjdC5jdXJyZW5jeSwgbGFiZWwpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3BsaXRTZWxlY3RlZE9wdGlvbnModmFsdWU6IGFueSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUuc3BsaXQoJywnKTtcbiAgfVxuICByZXR1cm4gW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKHZhcmlhdGlvbjogYW55KTogYW55IHtcbiAgaWYgKCF2YXJpYXRpb24gfHwgdHlwZW9mIHZhcmlhdGlvbiAhPT0gJ29iamVjdCcpIHJldHVybiB2YXJpYXRpb247XG4gIGNvbnN0IGZpZWxkVHlwZSA9IE51bWJlcih2YXJpYXRpb24/LnZhcmlhdGlvbkZpZWxkPy5maWVsZFR5cGUpO1xuICBpZiAoZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ09MT1VSX0VYVFJBQ1QpIHJldHVybiB2YXJpYXRpb247XG5cbiAgY29uc3Qgc2VsZWN0YWJsZSA9IHZhcmlhdGlvbj8uc2VsZWN0YWJsZU9wdGlvbnMgfHwgW107XG4gIGlmICghc2VsZWN0YWJsZS5sZW5ndGgpIHJldHVybiB2YXJpYXRpb247XG5cbiAgY29uc3Qgc2VsZWN0ZWRJZHMgPSBzcGxpdFNlbGVjdGVkT3B0aW9ucyh2YXJpYXRpb24/LnZhbHVlKVxuICAgIC5tYXAoU3RyaW5nKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gIGlmICghc2VsZWN0ZWRJZHMubGVuZ3RoKSByZXR1cm4gdmFyaWF0aW9uO1xuXG4gIGNvbnN0IHJlc29sdmVkID0gc2VsZWN0YWJsZS5maWx0ZXIoKG9wdGlvbjogYW55KSA9PlxuICAgIHNlbGVjdGVkSWRzLmluY2x1ZGVzKFN0cmluZyhvcHRpb24ub3B0aW9uSWQpKVxuICApO1xuICBpZiAoIXJlc29sdmVkLmxlbmd0aCkgcmV0dXJuIHZhcmlhdGlvbjtcblxuICByZXR1cm4geyAuLi52YXJpYXRpb24sIHNlbGVjdGVkT3B0aW9uczogcmVzb2x2ZWQgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHN5bmNKb2JTZWxlY3RlZE9wdGlvbnNGcm9tVmFsdWVzKGpvYjogYW55KTogYW55IHtcbiAgaWYgKCFqb2IgfHwgdHlwZW9mIGpvYiAhPT0gJ29iamVjdCcpIHJldHVybiBqb2I7XG4gIGNvbnN0IG5leHQgPSB7IC4uLmpvYiB9O1xuICBpZiAoQXJyYXkuaXNBcnJheShuZXh0LnZhcmlhdGlvbnMpKSB7XG4gICAgbmV4dC52YXJpYXRpb25zID0gbmV4dC52YXJpYXRpb25zLm1hcChzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKTtcbiAgfVxuICBpZiAoQXJyYXkuaXNBcnJheShuZXh0LnZhcmlhdGlvbnNHcm91cHMpKSB7XG4gICAgbmV4dC52YXJpYXRpb25zR3JvdXBzID0gbmV4dC52YXJpYXRpb25zR3JvdXBzLm1hcCgoZ3JvdXA6IGFueSkgPT4gKHtcbiAgICAgIC4uLmdyb3VwLFxuICAgICAgdmFyaWF0aW9uczogQXJyYXkuaXNBcnJheShncm91cD8udmFyaWF0aW9ucylcbiAgICAgICAgPyBncm91cC52YXJpYXRpb25zLm1hcChzeW5jU2VsZWN0ZWRPcHRpb25zRnJvbVZhbHVlKVxuICAgICAgICA6IGdyb3VwPy52YXJpYXRpb25zLFxuICAgIH0pKTtcbiAgfVxuICByZXR1cm4gbmV4dDtcbn1cblxuZXhwb3J0IGNvbnN0IHN1cHBsaWVyU2VsbGVyRWRpdGFibGVQcm9kdWN0VHlwZXM6IEFycmF5PG51bWJlcj4gPSBbXG4gIFByb2R1Y3RUeXBlLlNVUFBMSUVSX01PRCxcbiAgUHJvZHVjdFR5cGUuQ0xPTkVEX1NVUFBMSUVSX01PRCxcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBvcHRpb25JbWFnZVVybChvcHRpb246IGFueSkge1xuICBjb25zdCBpbWFnZSA9IHBuZ09wdGlvbk5vdEZvdW5kID8gKHBuZ09wdGlvbk5vdEZvdW5kLmRlZmF1bHQgfHwgcG5nT3B0aW9uTm90Rm91bmQpIDogJyc7XG4gIGNvbnN0IGltYWdlTm90Rm91bmQgPSBpbWFnZSA/IChpbWFnZS5zcmMgfHwgaW1hZ2UpIDogJyc7XG4gIHJldHVybiBvcHRpb24ubGlua2VkRmlsZVxuICAgID8gb3B0aW9uLmxpbmtlZEZpbGVcbiAgICAgID8gb3B0aW9uLmxpbmtlZEZpbGUudmlld1VybFxuICAgICAgOiBpbWFnZU5vdEZvdW5kXG4gICAgOiBpbWFnZU5vdEZvdW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWxsb3dlZEZpbGVUeXBlcyh2YXJpYXRpb25GaWVsZDogYW55KTogc3RyaW5nIHtcbiAgY29uc3QgZmlsZVR5cGVNYXBwaW5nOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIGFsbG93RmlsZUpwZWc6ICcuanBlZycsXG4gICAgYWxsb3dGaWxlR2lmOiAnLmdpZicsXG4gICAgYWxsb3dGaWxlUGRmOiAnLnBkZicsXG4gICAgYWxsb3dGaWxlUG5nOiAnLnBuZycsXG4gICAgYWxsb3dGaWxlQWk6ICcuYWknLFxuICB9O1xuXG4gIGNvbnN0IGFsbG93ZWRUeXBlczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhmaWxlVHlwZU1hcHBpbmcpXG4gICAgLmZpbHRlcigoYXR0cmlidXRlTmFtZSkgPT4gdmFyaWF0aW9uRmllbGRbYXR0cmlidXRlTmFtZV0pXG4gICAgLm1hcCgoYXR0cmlidXRlTmFtZSkgPT4gZmlsZVR5cGVNYXBwaW5nW2F0dHJpYnV0ZU5hbWVdKTtcblxuICByZXR1cm4gYWxsb3dlZFR5cGVzLmpvaW4oJywnKTtcbn1cblxuLy8gUHVibGlzaGVkIEBtZXJjaGkvc2RrIGRyb3BzIHVua25vd24ga2V5cy4gUmVnaXN0ZXIgZmxhZ3Mgb24gdGhlIGNsYXNzXG4vLyB0aGlzIHBhY2thZ2UgYWN0dWFsbHkgY29uc3RydWN0cywgb3IgYSByZWJ1aWx0IHZhcmlhdGlvbiBsb3NlcyB0aGVtLlxuY29uc3QgVmFyaWF0aW9uRmllbGRDbGFzcyA9IFZhcmlhdGlvbkZpZWxkIGFzIHVua25vd24gYXMge1xuICBwcm9wZXJ0eTogKG9wdGlvbnM/OiB7IHR5cGU/OiB1bmtub3duIH0pID0+ICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcpID0+IHZvaWQ7XG4gIHByb3RvdHlwZTogb2JqZWN0O1xufTtcblZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pKFxuICBWYXJpYXRpb25GaWVsZENsYXNzLnByb3RvdHlwZSxcbiAgJ2FsbG93QWxsUGFudG9uZXMnLFxuKTtcblZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvcGVydHkoeyB0eXBlOiBOdW1iZXIgfSkoXG4gIFZhcmlhdGlvbkZpZWxkQ2xhc3MucHJvdG90eXBlLFxuICAnbGF5b3V0U3BhbicsXG4pO1xuXG5jb25zdCBtZXJjaGkgPSBuZXcgTWVyY2hpKCk7XG5cbmZ1bmN0aW9uIGVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzKHZhcmlhdGlvbjogYW55KSB7XG4gIGlmICh2YXJpYXRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIHZhcmlhdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAodmFyaWF0aW9uLnNlbGVjdGFibGVPcHRpb25zIHx8IFtdKS5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgIGlmIChvcHRpb24uaXNWaXNpYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5pc1Zpc2libGUgPSB0cnVlO1xuICAgIGlmIChvcHRpb24uYXZhaWxhYmxlID09PSB1bmRlZmluZWQpIG9wdGlvbi5hdmFpbGFibGUgPSB0cnVlO1xuICB9KTtcbn1cblxuLyoqIEJ1aWxkIGEgZGVmYXVsdCB2YXJpYXRpb24gSlNPTiBmb3IgYSBwcm9kdWN0IHZhcmlhdGlvbiBmaWVsZCAoZ2F0ZWQgZmllbGRzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uRnJvbUZpZWxkKGZpZWxkOiBhbnkpIHtcbiAgY29uc3QgZmllbGRFbnQgPSBuZXcgbWVyY2hpLlZhcmlhdGlvbkZpZWxkKCk7XG4gIGZpZWxkRW50LmZyb21Kc29uKHsgLi4uZmllbGQgfSwgeyBtYWtlRGlydHk6IGZhbHNlIH0pO1xuICBjb25zdCB2YXJpYXRpb25Kc29uID0gZmllbGRFbnQuYnVpbGRFbXB0eVZhcmlhdGlvbigpLnRvSnNvbigpO1xuICBpZiAoXG4gICAgdmFyaWF0aW9uSnNvbj8udmFyaWF0aW9uRmllbGQgJiZcbiAgICBmaWVsZD8uYWxsb3dBbGxQYW50b25lcyAhPSBudWxsICYmXG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID09IG51bGxcbiAgKSB7XG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5hbGxvd0FsbFBhbnRvbmVzID0gQm9vbGVhbihmaWVsZC5hbGxvd0FsbFBhbnRvbmVzKTtcbiAgfVxuICBpZiAoXG4gICAgdmFyaWF0aW9uSnNvbj8udmFyaWF0aW9uRmllbGQgJiZcbiAgICBmaWVsZD8ubGF5b3V0U3BhbiAhPSBudWxsICYmXG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5sYXlvdXRTcGFuID09IG51bGxcbiAgKSB7XG4gICAgdmFyaWF0aW9uSnNvbi52YXJpYXRpb25GaWVsZC5sYXlvdXRTcGFuID0gZmllbGQubGF5b3V0U3BhbjtcbiAgfVxuICBlbnN1cmVWYXJpYXRpb25PcHRpb25GbGFncyh2YXJpYXRpb25Kc29uKTtcbiAgcmV0dXJuIHZhcmlhdGlvbkpzb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEVtcHR5VmFyaWF0aW9uR3JvdXAocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHByb2R1Y3RFbnQgPSBuZXcgbWVyY2hpLlByb2R1Y3QoKTtcbiAgcHJvZHVjdEVudC5mcm9tSnNvbih7Li4ucHJvZHVjdH0sIHsgbWFrZURpcnR5OiBmYWxzZX0pO1xuICBjb25zdCBuZXdHcm91cCA9IHByb2R1Y3RFbnQuYnVpbGRFbXB0eVZhcmlhdGlvbkdyb3VwKCk7XG4gIG5ld0dyb3VwLmdyb3VwQ29zdCA9IDA7XG4gIG5ld0dyb3VwLnF1YW50aXR5ID0gZGVmYXVsdEdyb3VwUXVhbnRpdHkocHJvZHVjdCk7XG4gIGNvbnN0IGdyb3VwSnNvbiA9IG5ld0dyb3VwLnRvSnNvbigpO1xuICAvLyBUaGUgU0RLJ3MgYnVpbGRWYXJpYXRpb25PcHRpb24gZG9lcyBub3Qgc2V0IGBpc1Zpc2libGVgL2BhdmFpbGFibGVgIG9uIHRoZVxuICAvLyBidWlsdCBzZWxlY3RhYmxlIG9wdGlvbnMuIEluIHNlcnZlciBtb2RlIHRoZXNlIGFyZSByZXBvcHVsYXRlZCBieSB0aGVcbiAgLy8gZXN0aW1hdGUgcm91bmQtdHJpcCArIGZvcm0gcmVzZXQsIGJ1dCBpbiBjbGllbnQgbW9kZSAobm8gcm91bmQtdHJpcCkgdGhlXG4gIC8vIG9wdGlvbnMgd291bGQgcmVuZGVyIGRpc2FibGVkIChcIi0gZGlzYWJsZWRcIikuIERlZmF1bHQgdGhlbSBoZXJlIHNvIGEgZnJlc2hseVxuICAvLyBhZGRlZCBncm91cCBpcyB1c2FibGU7IG9wdGlvbi1sZXZlbCBjb25kaXRpb25hbCB2aXNpYmlsaXR5IChzZWxlY3RlZEJ5KSBpc1xuICAvLyByZXNvbHZlZCBvbiBzdWJzZXF1ZW50IGludGVyYWN0aW9ucyBpbiBzZXJ2ZXIgbW9kZS5cbiAgKGdyb3VwSnNvbi52YXJpYXRpb25zIHx8IFtdKS5mb3JFYWNoKGVuc3VyZVZhcmlhdGlvbk9wdGlvbkZsYWdzKTtcbiAgcmV0dXJuIGdyb3VwSnNvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdFN1cHBsaWVyTU9EKHByb2R1Y3Q6IGFueSkge1xuICBjb25zdCBwcm9kdWN0VHlwZSA9IHByb2R1Y3QgJiYgcHJvZHVjdC5wcm9kdWN0VHlwZTtcbiAgcmV0dXJuIChcbiAgICBwcm9kdWN0ICYmXG4gICAgW1xuICAgICAgU3RyaW5nKFByb2R1Y3RUeXBlLlNVUFBMSUVSX01PRCksXG4gICAgICBTdHJpbmcoUHJvZHVjdFR5cGUuU1VQUExJRVJfUkVTRUxMX01PRCksXG4gICAgXS5pbmNsdWRlcyhTdHJpbmcocHJvZHVjdFR5cGUpKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9kdWN0VHlwZUZpbGVEb3dubG9hZChwcm9kdWN0VHlwZTogYW55KSB7XG4gIHJldHVybiBwYXJzZUludChwcm9kdWN0VHlwZSwgMTApID09PSBQcm9kdWN0VHlwZS5TRUxMRVJfRklMRV9ET1dOTE9BRDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJvZHVjdEZpbGVEb3dubG9hZChwcm9kdWN0OiBhbnkpIHtcbiAgY29uc3QgeyBwcm9kdWN0VHlwZSB9ID0gcHJvZHVjdDtcbiAgcmV0dXJuIGlzUHJvZHVjdFR5cGVGaWxlRG93bmxvYWQocHJvZHVjdFR5cGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9kdWN0TGVhZEZvcm0ocHJvZHVjdDogYW55KSB7XG4gIGNvbnN0IHByb2R1Y3RUeXBlID0gcHJvZHVjdCAmJiBwcm9kdWN0LnByb2R1Y3RUeXBlO1xuICByZXR1cm4gcGFyc2VJbnQocHJvZHVjdFR5cGUsIDEwKSA9PT0gUHJvZHVjdFR5cGUuTEVBRF9GT1JNO1xufVxuXG5leHBvcnQgY29uc3QgaXNvQ291bnRyaWVzOiBhbnkgPSB7XG4gIEFGOiAnQWZnaGFuaXN0YW4nLFxuICBBWDogJ0FsYW5kIElzbGFuZHMnLFxuICBBTDogJ0FsYmFuaWEnLFxuICBEWjogJ0FsZ2VyaWEnLFxuICBBUzogJ0FtZXJpY2FuIFNhbW9hJyxcbiAgQUQ6ICdBbmRvcnJhJyxcbiAgQU86ICdBbmdvbGEnLFxuICBBSTogJ0FuZ3VpbGxhJyxcbiAgQVE6ICdBbnRhcmN0aWNhJyxcbiAgQUc6ICdBbnRpZ3VhIEFuZCBCYXJidWRhJyxcbiAgQVI6ICdBcmdlbnRpbmEnLFxuICBBTTogJ0FybWVuaWEnLFxuICBBVzogJ0FydWJhJyxcbiAgQVU6ICdBdXN0cmFsaWEnLFxuICBBVDogJ0F1c3RyaWEnLFxuICBBWjogJ0F6ZXJiYWlqYW4nLFxuICBCUzogJ0JhaGFtYXMnLFxuICBCSDogJ0JhaHJhaW4nLFxuICBCRDogJ0JhbmdsYWRlc2gnLFxuICBCQjogJ0JhcmJhZG9zJyxcbiAgQlk6ICdCZWxhcnVzJyxcbiAgQkU6ICdCZWxnaXVtJyxcbiAgQlo6ICdCZWxpemUnLFxuICBCSjogJ0JlbmluJyxcbiAgQk06ICdCZXJtdWRhJyxcbiAgQlQ6ICdCaHV0YW4nLFxuICBCTzogJ0JvbGl2aWEnLFxuICBCQTogJ0Jvc25pYSBBbmQgSGVyemVnb3ZpbmEnLFxuICBCVzogJ0JvdHN3YW5hJyxcbiAgQlY6ICdCb3V2ZXQgSXNsYW5kJyxcbiAgQlI6ICdCcmF6aWwnLFxuICBJTzogJ0JyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeScsXG4gIEJOOiAnQnJ1bmVpIERhcnVzc2FsYW0nLFxuICBCRzogJ0J1bGdhcmlhJyxcbiAgQkY6ICdCdXJraW5hIEZhc28nLFxuICBCSTogJ0J1cnVuZGknLFxuICBLSDogJ0NhbWJvZGlhJyxcbiAgQ006ICdDYW1lcm9vbicsXG4gIENBOiAnQ2FuYWRhJyxcbiAgQ1Y6ICdDYXBlIFZlcmRlJyxcbiAgS1k6ICdDYXltYW4gSXNsYW5kcycsXG4gIENGOiAnQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljJyxcbiAgVEQ6ICdDaGFkJyxcbiAgQ0w6ICdDaGlsZScsXG4gIENOOiAnQ2hpbmEnLFxuICBDWDogJ0NocmlzdG1hcyBJc2xhbmQnLFxuICBDQzogJ0NvY29zIChLZWVsaW5nKSBJc2xhbmRzJyxcbiAgQ086ICdDb2xvbWJpYScsXG4gIEtNOiAnQ29tb3JvcycsXG4gIENHOiAnQ29uZ28nLFxuICBDRDogJ0NvbmdvLCBEZW1vY3JhdGljIFJlcHVibGljJyxcbiAgQ0s6ICdDb29rIElzbGFuZHMnLFxuICBDUjogJ0Nvc3RhIFJpY2EnLFxuICBDSTogXCJDb3RlIEQnSXZvaXJlXCIsXG4gIEhSOiAnQ3JvYXRpYScsXG4gIENVOiAnQ3ViYScsXG4gIENZOiAnQ3lwcnVzJyxcbiAgQ1o6ICdDemVjaCBSZXB1YmxpYycsXG4gIERLOiAnRGVubWFyaycsXG4gIERKOiAnRGppYm91dGknLFxuICBETTogJ0RvbWluaWNhJyxcbiAgRE86ICdEb21pbmljYW4gUmVwdWJsaWMnLFxuICBFQzogJ0VjdWFkb3InLFxuICBFRzogJ0VneXB0JyxcbiAgU1Y6ICdFbCBTYWx2YWRvcicsXG4gIEdROiAnRXF1YXRvcmlhbCBHdWluZWEnLFxuICBFUjogJ0VyaXRyZWEnLFxuICBFRTogJ0VzdG9uaWEnLFxuICBFVDogJ0V0aGlvcGlhJyxcbiAgRks6ICdGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyknLFxuICBGTzogJ0Zhcm9lIElzbGFuZHMnLFxuICBGSjogJ0ZpamknLFxuICBGSTogJ0ZpbmxhbmQnLFxuICBGUjogJ0ZyYW5jZScsXG4gIEdGOiAnRnJlbmNoIEd1aWFuYScsXG4gIFBGOiAnRnJlbmNoIFBvbHluZXNpYScsXG4gIFRGOiAnRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzJyxcbiAgR0E6ICdHYWJvbicsXG4gIEdNOiAnR2FtYmlhJyxcbiAgR0U6ICdHZW9yZ2lhJyxcbiAgREU6ICdHZXJtYW55JyxcbiAgR0g6ICdHaGFuYScsXG4gIEdJOiAnR2licmFsdGFyJyxcbiAgR1I6ICdHcmVlY2UnLFxuICBHTDogJ0dyZWVubGFuZCcsXG4gIEdEOiAnR3JlbmFkYScsXG4gIEdQOiAnR3VhZGVsb3VwZScsXG4gIEdVOiAnR3VhbScsXG4gIEdUOiAnR3VhdGVtYWxhJyxcbiAgR0c6ICdHdWVybnNleScsXG4gIEdOOiAnR3VpbmVhJyxcbiAgR1c6ICdHdWluZWEtQmlzc2F1JyxcbiAgR1k6ICdHdXlhbmEnLFxuICBIVDogJ0hhaXRpJyxcbiAgSE06ICdIZWFyZCBJc2xhbmQgJiBNY2RvbmFsZCBJc2xhbmRzJyxcbiAgVkE6ICdIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKScsXG4gIEhOOiAnSG9uZHVyYXMnLFxuICBISzogJ0hvbmcgS29uZycsXG4gIEhVOiAnSHVuZ2FyeScsXG4gIElTOiAnSWNlbGFuZCcsXG4gIElOOiAnSW5kaWEnLFxuICBJRDogJ0luZG9uZXNpYScsXG4gIElSOiAnSXJhbiwgSXNsYW1pYyBSZXB1YmxpYyBPZicsXG4gIElROiAnSXJhcScsXG4gIElFOiAnSXJlbGFuZCcsXG4gIElNOiAnSXNsZSBPZiBNYW4nLFxuICBJTDogJ0lzcmFlbCcsXG4gIElUOiAnSXRhbHknLFxuICBKTTogJ0phbWFpY2EnLFxuICBKUDogJ0phcGFuJyxcbiAgSkU6ICdKZXJzZXknLFxuICBKTzogJ0pvcmRhbicsXG4gIEtaOiAnS2F6YWtoc3RhbicsXG4gIEtFOiAnS2VueWEnLFxuICBLSTogJ0tpcmliYXRpJyxcbiAgS1I6ICdLb3JlYScsXG4gIEtXOiAnS3V3YWl0JyxcbiAgS0c6ICdLeXJneXpzdGFuJyxcbiAgTEE6IFwiTGFvIFBlb3BsZSdzIERlbW9jcmF0aWMgUmVwdWJsaWNcIixcbiAgTFY6ICdMYXR2aWEnLFxuICBMQjogJ0xlYmFub24nLFxuICBMUzogJ0xlc290aG8nLFxuICBMUjogJ0xpYmVyaWEnLFxuICBMWTogJ0xpYnlhbiBBcmFiIEphbWFoaXJpeWEnLFxuICBMSTogJ0xpZWNodGVuc3RlaW4nLFxuICBMVDogJ0xpdGh1YW5pYScsXG4gIExVOiAnTHV4ZW1ib3VyZycsXG4gIE1POiAnTWFjYW8nLFxuICBNSzogJ01hY2Vkb25pYScsXG4gIE1HOiAnTWFkYWdhc2NhcicsXG4gIE1XOiAnTWFsYXdpJyxcbiAgTVk6ICdNYWxheXNpYScsXG4gIE1WOiAnTWFsZGl2ZXMnLFxuICBNTDogJ01hbGknLFxuICBNVDogJ01hbHRhJyxcbiAgTUg6ICdNYXJzaGFsbCBJc2xhbmRzJyxcbiAgTVE6ICdNYXJ0aW5pcXVlJyxcbiAgTVI6ICdNYXVyaXRhbmlhJyxcbiAgTVU6ICdNYXVyaXRpdXMnLFxuICBZVDogJ01heW90dGUnLFxuICBNWDogJ01leGljbycsXG4gIEZNOiAnTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBPZicsXG4gIE1EOiAnTW9sZG92YScsXG4gIE1DOiAnTW9uYWNvJyxcbiAgTU46ICdNb25nb2xpYScsXG4gIE1FOiAnTW9udGVuZWdybycsXG4gIE1TOiAnTW9udHNlcnJhdCcsXG4gIE1BOiAnTW9yb2NjbycsXG4gIE1aOiAnTW96YW1iaXF1ZScsXG4gIE1NOiAnTXlhbm1hcicsXG4gIE5BOiAnTmFtaWJpYScsXG4gIE5SOiAnTmF1cnUnLFxuICBOUDogJ05lcGFsJyxcbiAgTkw6ICdOZXRoZXJsYW5kcycsXG4gIEFOOiAnTmV0aGVybGFuZHMgQW50aWxsZXMnLFxuICBOQzogJ05ldyBDYWxlZG9uaWEnLFxuICBOWjogJ05ldyBaZWFsYW5kJyxcbiAgTkk6ICdOaWNhcmFndWEnLFxuICBORTogJ05pZ2VyJyxcbiAgTkc6ICdOaWdlcmlhJyxcbiAgTlU6ICdOaXVlJyxcbiAgTkY6ICdOb3Jmb2xrIElzbGFuZCcsXG4gIE1QOiAnTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzJyxcbiAgTk86ICdOb3J3YXknLFxuICBPTTogJ09tYW4nLFxuICBQSzogJ1Bha2lzdGFuJyxcbiAgUFc6ICdQYWxhdScsXG4gIFBTOiAnUGFsZXN0aW5pYW4gVGVycml0b3J5LCBPY2N1cGllZCcsXG4gIFBBOiAnUGFuYW1hJyxcbiAgUEc6ICdQYXB1YSBOZXcgR3VpbmVhJyxcbiAgUFk6ICdQYXJhZ3VheScsXG4gIFBFOiAnUGVydScsXG4gIFBIOiAnUGhpbGlwcGluZXMnLFxuICBQTjogJ1BpdGNhaXJuJyxcbiAgUEw6ICdQb2xhbmQnLFxuICBQVDogJ1BvcnR1Z2FsJyxcbiAgUFI6ICdQdWVydG8gUmljbycsXG4gIFFBOiAnUWF0YXInLFxuICBSRTogJ1JldW5pb24nLFxuICBSTzogJ1JvbWFuaWEnLFxuICBSVTogJ1J1c3NpYW4gRmVkZXJhdGlvbicsXG4gIFJXOiAnUndhbmRhJyxcbiAgQkw6ICdTYWludCBCYXJ0aGVsZW15JyxcbiAgU0g6ICdTYWludCBIZWxlbmEnLFxuICBLTjogJ1NhaW50IEtpdHRzIEFuZCBOZXZpcycsXG4gIExDOiAnU2FpbnQgTHVjaWEnLFxuICBNRjogJ1NhaW50IE1hcnRpbicsXG4gIFBNOiAnU2FpbnQgUGllcnJlIEFuZCBNaXF1ZWxvbicsXG4gIFZDOiAnU2FpbnQgVmluY2VudCBBbmQgR3JlbmFkaW5lcycsXG4gIFdTOiAnU2Ftb2EnLFxuICBTTTogJ1NhbiBNYXJpbm8nLFxuICBTVDogJ1NhbyBUb21lIEFuZCBQcmluY2lwZScsXG4gIFNBOiAnU2F1ZGkgQXJhYmlhJyxcbiAgU046ICdTZW5lZ2FsJyxcbiAgUlM6ICdTZXJiaWEnLFxuICBTQzogJ1NleWNoZWxsZXMnLFxuICBTTDogJ1NpZXJyYSBMZW9uZScsXG4gIFNHOiAnU2luZ2Fwb3JlJyxcbiAgU0s6ICdTbG92YWtpYScsXG4gIFNJOiAnU2xvdmVuaWEnLFxuICBTQjogJ1NvbG9tb24gSXNsYW5kcycsXG4gIFNPOiAnU29tYWxpYScsXG4gIFpBOiAnU291dGggQWZyaWNhJyxcbiAgR1M6ICdTb3V0aCBHZW9yZ2lhIEFuZCBTYW5kd2ljaCBJc2wuJyxcbiAgRVM6ICdTcGFpbicsXG4gIExLOiAnU3JpIExhbmthJyxcbiAgU0Q6ICdTdWRhbicsXG4gIFNSOiAnU3VyaW5hbWUnLFxuICBTSjogJ1N2YWxiYXJkIEFuZCBKYW4gTWF5ZW4nLFxuICBTWjogJ1N3YXppbGFuZCcsXG4gIFNFOiAnU3dlZGVuJyxcbiAgQ0g6ICdTd2l0emVybGFuZCcsXG4gIFNZOiAnU3lyaWFuIEFyYWIgUmVwdWJsaWMnLFxuICBUVzogJ1RhaXdhbicsXG4gIFRKOiAnVGFqaWtpc3RhbicsXG4gIFRaOiAnVGFuemFuaWEnLFxuICBUSDogJ1RoYWlsYW5kJyxcbiAgVEw6ICdUaW1vci1MZXN0ZScsXG4gIFRHOiAnVG9nbycsXG4gIFRLOiAnVG9rZWxhdScsXG4gIFRPOiAnVG9uZ2EnLFxuICBUVDogJ1RyaW5pZGFkIEFuZCBUb2JhZ28nLFxuICBUTjogJ1R1bmlzaWEnLFxuICBUUjogJ1R1cmtleScsXG4gIFRNOiAnVHVya21lbmlzdGFuJyxcbiAgVEM6ICdUdXJrcyBBbmQgQ2FpY29zIElzbGFuZHMnLFxuICBUVjogJ1R1dmFsdScsXG4gIFVHOiAnVWdhbmRhJyxcbiAgVUE6ICdVa3JhaW5lJyxcbiAgQUU6ICdVbml0ZWQgQXJhYiBFbWlyYXRlcycsXG4gIEdCOiAnVW5pdGVkIEtpbmdkb20nLFxuICBVUzogJ1VuaXRlZCBTdGF0ZXMnLFxuICBVTTogJ1VuaXRlZCBTdGF0ZXMgT3V0bHlpbmcgSXNsYW5kcycsXG4gIFVZOiAnVXJ1Z3VheScsXG4gIFVaOiAnVXpiZWtpc3RhbicsXG4gIFZVOiAnVmFudWF0dScsXG4gIFZFOiAnVmVuZXp1ZWxhJyxcbiAgVk46ICdWaWV0IE5hbScsXG4gIFZHOiAnVmlyZ2luIElzbGFuZHMsIEJyaXRpc2gnLFxuICBWSTogJ1ZpcmdpbiBJc2xhbmRzLCBVLlMuJyxcbiAgV0Y6ICdXYWxsaXMgQW5kIEZ1dHVuYScsXG4gIEVIOiAnV2VzdGVybiBTYWhhcmEnLFxuICBZRTogJ1llbWVuJyxcbiAgWk06ICdaYW1iaWEnLFxuICBaVzogJ1ppbWJhYndlJyxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb3VudHJ5TmFtZShjb3VudHJ5Q29kZTogYW55KSB7XG4gIGlmIChpc29Db3VudHJpZXMuaGFzT3duUHJvcGVydHkoY291bnRyeUNvZGUpKSB7XG4gICAgcmV0dXJuIGlzb0NvdW50cmllc1tjb3VudHJ5Q29kZV07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNvdW50cnlDb2RlO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblRhZ0lkcyhyYXc6IGFueVtdKSB7XG4gIHJldHVybiByYXcubWFwKGlkID0+IGlkLnRyaW0oKSkgICAgICAgICAgICAvLyBUcmltIGVhY2ggSUQgZW50cnkgdG8gcmVtb3ZlIHdoaXRlc3BhY2VcbiAgICAuZmlsdGVyKGlkID0+IC9eXFxkKyQvLnRlc3QoaWQpKSAgLy8gVXNlIGEgcmVndWxhciBleHByZXNzaW9uIHRvIGVuc3VyZSB0aGUgSUQgaXMgZW50aXJlbHkgbnVtZXJpYy5cbiAgICAubWFwKGlkID0+IE51bWJlcihpZCkpOyAgICAgICAgICAvLyBDb252ZXJ0IHRoZSByZW1haW5pbmcsIHZhbGlkIElEIGVudHJpZXMgaW50byBudW1iZXJzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRNZXJjaGlTb3VyY2VKb2JUYWdzKCk6IGFueVtdIHtcbiAgaWYgKHR5cGVvZiBsb2NhbFN0b3JhZ2UgIT09ICd1bmRlZmluZWQnICYmIGxvY2FsU3RvcmFnZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IG1lcmNoaVNvdXJjZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdtZXJjaGlfc291cmNlJyk7XG5cbiAgICBpZiAobWVyY2hpU291cmNlKSB7XG4gICAgICBjb25zdCBpZHMgPSBjbGVhblRhZ0lkcyhtZXJjaGlTb3VyY2Uuc3BsaXQoJywnKSk7XG4gICAgICByZXR1cm4gaWRzLm1hcCgoaWQ6IG51bWJlcikgPT4gKHsgaWQgfSkpO1xuICAgIH1cbiAgICAvLyBJZiBcIm1lcmNoaV9zb3VyY2VcIiBpcyBub3QgZm91bmQgaW4gbG9jYWxTdG9yYWdlLCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIHJldHVybiBbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNvcnRCeVBvc2l0aW9uKG9wdGlvbnM6IGFueVtdKTogYW55W10ge1xuICByZXR1cm4gb3B0aW9ucy5tYXAoKG9iajogYW55KSA9PiB7XG4gICAgY29uc3QgcG9zaXRpb24gPSB0eXBlb2Ygb2JqLnBvc2l0aW9uID09PSAnc3RyaW5nJ1xuICAgICAgPyBwYXJzZUludChvYmoucG9zaXRpb24sIDEwKVxuICAgICAgOiBvYmoucG9zaXRpb247XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm9iaixcbiAgICAgIHBvc2l0aW9uOiB0eXBlb2YgcG9zaXRpb24gPT09ICdudW1iZXInID8gcG9zaXRpb24gOiAwLFxuICAgIH07XG4gIH0pLnNvcnQoKGEsIGIpID0+IHtcbiAgICBjb25zdCBhUG9zaXRpb24gPSB0eXBlb2YgYS5wb3NpdGlvbiA9PT0gJ251bWJlcicgPyBhLnBvc2l0aW9uIDogMDtcbiAgICBjb25zdCBiUG9zaXRpb24gPSB0eXBlb2YgYi5wb3NpdGlvbiA9PT0gJ251bWJlcicgPyBiLnBvc2l0aW9uIDogMDtcbiAgICByZXR1cm4gYVBvc2l0aW9uIC0gYlBvc2l0aW9uO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuSm9iVmFyaWF0aW9uc0FuZEdyb3Vwcyhqb2JKc29uOiBhbnkpIHtcbiAgY29uc3QgeyB2YXJpYXRpb25zLCB2YXJpYXRpb25zR3JvdXBzIH0gPSBqb2JKc29uO1xuICBjb25zdCBoYXNHcm91cHMgPSBCb29sZWFuKHZhcmlhdGlvbnNHcm91cHMgJiYgdmFyaWF0aW9uc0dyb3Vwcy5sZW5ndGgpO1xuICBjb25zdCBoYXNWYXJpYXRpb25zID0gQm9vbGVhbih2YXJpYXRpb25zICYmIHZhcmlhdGlvbnMubGVuZ3RoKTtcbiAgXG4gIC8vIExvb3Agb3ZlciBpbmRpdmlkdWFsIHZhcmlhdGlvbnMgYW5kIGNoZWNrIGlmIHRoZSB2YXJpYXRpb24gaXMgYSBqc29uIHN0cmluZywgaWYgaXQgaXMgY29udmVydCBpdCB0byBhbiBvYmplY3RcbiAgaWYgKGhhc1ZhcmlhdGlvbnMpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHZhcmlhdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgIHZhcmlhdGlvbnNbaV0gPSBjbGVhbkZvcm1WYXJpYXRpb25Kc29uKHZhcmlhdGlvbnNbaV0pO1xuICAgIH1cbiAgICBqb2JKc29uLnZhcmlhdGlvbnMgPSB2YXJpYXRpb25zO1xuICB9XG4gIFxuICBpZiAoaGFzR3JvdXBzKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YXJpYXRpb25zR3JvdXBzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAvLyBTZXQgZGVmYXVsdCBxdWFudGl0eSBpZiBub3QgcHJlc2VudFxuICAgICAgY29uc3QgZ3JvdXAgPSB2YXJpYXRpb25zR3JvdXBzW2ldO1xuICAgICAgaWYgKCFncm91cC5xdWFudGl0eSkge1xuICAgICAgICBncm91cC5xdWFudGl0eSA9IDA7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIEhhbmRsZSB2YXJpYXRpb25zIHdpdGhpbiB0aGUgZ3JvdXAgLSBjb252ZXJ0IEpTT04gc3RyaW5ncyB0byBvYmplY3RzXG4gICAgICBpZiAoZ3JvdXAudmFyaWF0aW9ucyAmJiBBcnJheS5pc0FycmF5KGdyb3VwLnZhcmlhdGlvbnMpKSB7XG4gICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgZ3JvdXAudmFyaWF0aW9ucy5sZW5ndGg7IGorKykge1xuICAgICAgICAgIGdyb3VwLnZhcmlhdGlvbnNbal0gPSBjbGVhbkZvcm1WYXJpYXRpb25Kc29uKGdyb3VwLnZhcmlhdGlvbnNbal0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGpvYkpzb24udmFyaWF0aW9uc0dyb3VwcyA9IHZhcmlhdGlvbnNHcm91cHM7XG4gIH1cbiAgXG4gIHJldHVybiBqb2JKc29uO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxTQUFTQSxNQUFNLEVBQUVDLGNBQWMsUUFBUSxhQUFhO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSxtQkFBbUI7QUFDbEQsU0FBU0MsV0FBVyxFQUFFQyxTQUFTLFFBQVEsZ0JBQWdCO0FBQ3ZELFNBQVNDLHNCQUFzQixRQUFRLGlDQUFpQztBQUN4RSxTQUFTQSxzQkFBc0IsUUFBUSxpQ0FBaUM7QUFDeEUsU0FBU0Msb0JBQW9CLFFBQVEsbUJBQW1CO0FBQ3hELFNBQ0VBLG9CQUFvQixFQUNwQkMsa0JBQWtCLEVBQ2xCQyxzQkFBc0IsRUFDdEJDLGVBQWUsUUFDVixtQkFBbUI7QUFDMUIsSUFBTUMsaUJBQWlCLEdBQUdDLE9BQU8sQ0FBQyxpQ0FBaUMsQ0FBQztBQUVwRSxTQUFTQywwQkFBMEJBLENBQ2pDQyxJQUFTLEVBQ1RDLFlBQWlCLEVBQ2pCQyxjQUFzQixFQUN0QjtFQUNBLElBQUlDLGVBQWUsR0FBRztJQUFFQyxRQUFRLEVBQUVILFlBQVk7SUFBRUksa0JBQWtCLEVBQUU7RUFBTSxDQUFDO0VBQzNFLElBQUlDLFVBQVUsR0FBRyxFQUFFO0VBQ25CLElBQU1DLE1BQU0sR0FBR0MsVUFBVSxDQUFDUixJQUFJLENBQUM7RUFFL0IsSUFBSVMsTUFBTSxDQUFDQyxRQUFRLENBQUNILE1BQU0sQ0FBQyxJQUFJQSxNQUFNLEdBQUcsQ0FBQyxFQUFF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
@@ -42,6 +42,13 @@ export function templateImageSources(template, apiUrl) {
42
42
  export function templateDownloadHref(template, apiUrl) {
43
43
  var file = template === null || template === void 0 ? void 0 : template.file;
44
44
  if (!file) return '';
45
+ // Presigned S3 download URLs expire. Public storefronts cache the product
46
+ // payload for longer than that lifetime, so a file id always downloads
47
+ // through the API, which signs a fresh URL on each request.
48
+ if (apiUrl && file.id != null && file.id !== '') {
49
+ var base = String(apiUrl).replace(/\/?$/, '/');
50
+ return "".concat(base, "public-files/").concat(encodeURIComponent(String(file.id)), "/download/");
51
+ }
45
52
  var preferred = file.downloadUrl || file.cachedDownloadUrl;
46
53
  if (preferred) return resolveFileUrl(String(preferred), apiUrl);
47
54
  return templateImageSources(template, apiUrl)[0] || '';
@@ -485,4 +492,4 @@ function _exportDraftPngs() {
485
492
  }));
486
493
  return _exportDraftPngs.apply(this, arguments);
487
494
  }
488
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlIiwidCIsInIiLCJTeW1ib2wiLCJuIiwiaXRlcmF0b3IiLCJvIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm5leHQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJjc3NGb250RmFtaWx5IiwiZW5zdXJlRHJhZnRGb250cyIsImlzQmFja2dyb3VuZEZpbGwiLCJpc0Z1bGxBcnRib2FyZEZpbGwiLCJyZXNvbHZlRmlsZVVybCIsInVybCIsImFwaVVybCIsImFwaSIsIlVSTCIsInN0YXJ0c1dpdGgiLCJjb25jYXQiLCJvcmlnaW4iLCJocmVmIiwiX3VudXNlZCIsInRlbXBsYXRlSW1hZ2VTb3VyY2VzIiwidGVtcGxhdGUiLCJmaWxlIiwicmF3IiwiaWQiLCJiYXNlIiwiU3RyaW5nIiwicmVwbGFjZSIsInB1c2giLCJ2aWV3VXJsIiwiY2FjaGVkVmlld1VybCIsImRvd25sb2FkVXJsIiwiY2FjaGVkRG93bmxvYWRVcmwiLCJTZXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibWFwIiwidGVtcGxhdGVEb3dubG9hZEhyZWYiLCJwcmVmZXJyZWQiLCJsb2FkSW1hZ2VFbGVtZW50Iiwic3JjIiwiY29ycyIsInJlamVjdCIsImltZyIsIkltYWdlIiwiY3Jvc3NPcmlnaW4iLCJvbmxvYWQiLCJvbmVycm9yIiwiRXJyb3IiLCJsb2FkSHRtbEltYWdlIiwiX3giLCJfbG9hZEh0bWxJbWFnZSIsIl9jYWxsZWUiLCJwZXJzaXN0T2JqZWN0VXJsIiwicmVzcG9uc2UiLCJibG9iIiwib2JqZWN0VXJsIiwiaW1hZ2UiLCJfYXJncyIsIl90IiwiX2NvbnRleHQiLCJ1bmRlZmluZWQiLCJmZXRjaCIsIm1vZGUiLCJjcmVkZW50aWFscyIsIm9rIiwic3RhdHVzIiwiY3JlYXRlT2JqZWN0VVJMIiwiX21lcmNoaU9iamVjdFVybCIsInJldm9rZU9iamVjdFVSTCIsImxvYWRIdG1sSW1hZ2VGcm9tU291cmNlcyIsIl94MiIsIl9sb2FkSHRtbEltYWdlRnJvbVNvdXJjZXMiLCJfY2FsbGVlMiIsInNvdXJjZXMiLCJsYXN0RXJyb3IiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX2FyZ3MyIiwiX3QyIiwiX3QzIiwiX2NvbnRleHQyIiwid2FpdEZvckRyYWZ0Rm9udHMiLCJfd2FpdEZvckRyYWZ0Rm9udHMiLCJfY2FsbGVlMyIsImZhbWlsaWVzIiwidW5pcXVlIiwiX2FyZ3MzIiwiX2NvbnRleHQzIiwiZG9jdW1lbnQiLCJmb250cyIsImFsbCIsInJlYWR5IiwiZmxhdE1hcCIsImZhbWlseSIsImxvYWQiLCJ3cmFwTGluZXMiLCJ0ZXh0IiwibWF4V2lkdGgiLCJtZWFzdXJlIiwid29yZHMiLCJzcGxpdCIsImxpbmVzIiwibGluZSIsIl9pdGVyYXRvciIsIl9zdGVwIiwid29yZCIsImVyciIsImRyYXdUZXh0IiwiY3R4Iiwib2JqIiwiZm9udFNpemUiLCJhbGlnbiIsImZpbGxTdHlsZSIsImZpbGwiLCJmb250IiwiZm9udEZhbWlseSIsInRleHRCYXNlbGluZSIsInRleHRBbGlnbiIsImxpbmVIZWlnaHQiLCJ3aWR0aCIsIm1lYXN1cmVUZXh0IiwiYmxvY2tIZWlnaHQiLCJjdXJzb3JZIiwiTWF0aCIsIm1heCIsImhlaWdodCIsIngiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiZmlsbFRleHQiLCJhcHBseUtvbnZhT2JqZWN0VHJhbnNmb3JtIiwidHJhbnNsYXRlIiwicm90YXRlIiwicm90YXRpb24iLCJQSSIsInNjYWxlIiwic2NhbGVYIiwic2NhbGVZIiwiZHJhd09iamVjdCIsInNhdmUiLCJ0eXBlIiwiZmlsbFJlY3QiLCJkcmF3SW1hZ2UiLCJyZXN0b3JlIiwiY2FwdHVyZVN0YWdlQXJ0Ym9hcmQiLCJzdGFnZSIsInZpZXciLCJhcnQiLCJ0b0RhdGFVUkwiLCJtaW1lVHlwZSIsInBpeGVsUmF0aW8iLCJyZW5kZXJTdGF0ZSIsIl94MyIsIl94NCIsIl9yZW5kZXJTdGF0ZSIsIl9jYWxsZWU1Iiwic3RhdGUiLCJ0ZW1wbGF0ZVNvdXJjZXMiLCJvYmplY3RzT25seSIsImNhbnZhcyIsImZpbGxzIiwiY29udGVudCIsImRyYXdMaXN0Iiwic2hlZXRGaWxscyIsInJlZ2lvbkZpbGxzIiwiX2FyZ3M1IiwiX3Q2IiwiX2NvbnRleHQ1IiwiY3JlYXRlRWxlbWVudCIsInJvdW5kIiwiZ2V0Q29udGV4dCIsIm9iamVjdHMiLCJfcmVmIiwiX2NhbGxlZTQiLCJjb21wb3NpdGUiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiX3Q0IiwiX3Q1IiwiX2NvbnRleHQ0IiwiZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIiwiX3g4IiwiX3g5IiwiZXhwb3J0RHJhZnRQbmdzIiwiX3g1IiwiX3g2IiwiX3g3IiwiX2V4cG9ydERyYWZ0UG5ncyIsIl9jYWxsZWU2IiwidGVtcGxhdGVTcmMiLCJyZXNvbHZlZCIsIl95aWVsZCRQcm9taXNlJGFsbCIsIl95aWVsZCRQcm9taXNlJGFsbDIiLCJkcmFmdCIsImNhbnZhc1ByZXZpZXciLCJfY29udGV4dDYiLCJfc2xpY2VkVG9BcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kcmFmdEV4cG9ydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3NGb250RmFtaWx5LCBlbnN1cmVEcmFmdEZvbnRzIH0gZnJvbSAnLi9kcmFmdEZvbnRzJztcbmltcG9ydCB7IGlzQmFja2dyb3VuZEZpbGwsIGlzRnVsbEFydGJvYXJkRmlsbCB9IGZyb20gJy4vZHJhZnRUZW1wbGF0ZXMnO1xuaW1wb3J0IHsgRHJhZnRDYW52YXNPYmplY3QsIERyYWZ0Q2FudmFzU3RhdGUgfSBmcm9tICcuL3R5cGVzJztcblxuZnVuY3Rpb24gcmVzb2x2ZUZpbGVVcmwodXJsOiBzdHJpbmcsIGFwaVVybD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdXJsKSByZXR1cm4gJyc7XG4gIGlmICgvXihkYXRhOnxibG9iOnxodHRwcz86KS9pLnRlc3QodXJsKSkgcmV0dXJuIHVybDtcbiAgaWYgKCFhcGlVcmwpIHJldHVybiB1cmw7XG4gIHRyeSB7XG4gICAgY29uc3QgYXBpID0gbmV3IFVSTChhcGlVcmwpO1xuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnLycpKSByZXR1cm4gYCR7YXBpLm9yaWdpbn0ke3VybH1gO1xuICAgIHJldHVybiBuZXcgVVJMKHVybCwgYXBpVXJsKS5ocmVmO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZUltYWdlU291cmNlcyh0ZW1wbGF0ZTogYW55LCBhcGlVcmw/OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGZpbGUgPSB0ZW1wbGF0ZT8uZmlsZSB8fCB7fTtcbiAgY29uc3QgcmF3OiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoYXBpVXJsICYmIGZpbGUuaWQpIHtcbiAgICBjb25zdCBiYXNlID0gU3RyaW5nKGFwaVVybCkucmVwbGFjZSgvXFwvPyQvLCAnLycpO1xuICAgIHJhdy5wdXNoKGAke2Jhc2V9cHVibGljLWZpbGVzLyR7ZmlsZS5pZH0vdmlldy9gKTtcbiAgfVxuICByYXcucHVzaChcbiAgICBmaWxlLnZpZXdVcmwsXG4gICAgZmlsZS5jYWNoZWRWaWV3VXJsLFxuICAgIGZpbGUuZG93bmxvYWRVcmwsXG4gICAgZmlsZS5jYWNoZWREb3dubG9hZFVybCxcbiAgKTtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFxuICAgIHJhdy5maWx0ZXIoQm9vbGVhbikubWFwKCh1cmwpID0+IHJlc29sdmVGaWxlVXJsKFN0cmluZyh1cmwpLCBhcGlVcmwpKSxcbiAgKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZURvd25sb2FkSHJlZih0ZW1wbGF0ZTogYW55LCBhcGlVcmw/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBmaWxlID0gdGVtcGxhdGU/LmZpbGU7XG4gIGlmICghZmlsZSkgcmV0dXJuICcnO1xuICBjb25zdCBwcmVmZXJyZWQgPSBmaWxlLmRvd25sb2FkVXJsIHx8IGZpbGUuY2FjaGVkRG93bmxvYWRVcmw7XG4gIGlmIChwcmVmZXJyZWQpIHJldHVybiByZXNvbHZlRmlsZVVybChTdHJpbmcocHJlZmVycmVkKSwgYXBpVXJsKTtcbiAgcmV0dXJuIHRlbXBsYXRlSW1hZ2VTb3VyY2VzKHRlbXBsYXRlLCBhcGlVcmwpWzBdIHx8ICcnO1xufVxuXG5mdW5jdGlvbiBsb2FkSW1hZ2VFbGVtZW50KHNyYzogc3RyaW5nLCBjb3JzOiBib29sZWFuKTogUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgaWYgKGNvcnMpIGltZy5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xuICAgIGltZy5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKGltZyk7XG4gICAgaW1nLm9uZXJyb3IgPSAoKSA9PiByZWplY3QobmV3IEVycm9yKGBGYWlsZWQgdG8gbG9hZCAke3NyY31gKSk7XG4gICAgaW1nLnNyYyA9IHNyYztcbiAgfSk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkSHRtbEltYWdlKFxuICBzcmM6IHN0cmluZyxcbiAgcGVyc2lzdE9iamVjdFVybCA9IGZhbHNlLFxuKTogUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PiB7XG4gIGlmICghc3JjKSB0aHJvdyBuZXcgRXJyb3IoJ01pc3NpbmcgaW1hZ2Ugc291cmNlJyk7XG4gIGlmICgvXihkYXRhOnxibG9iOikvaS50ZXN0KHNyYykpIHtcbiAgICByZXR1cm4gbG9hZEltYWdlRWxlbWVudChzcmMsIGZhbHNlKTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goc3JjLCB7IG1vZGU6ICdjb3JzJywgY3JlZGVudGlhbHM6ICdvbWl0JyB9KTtcbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoYEhUVFAgJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgY29uc3QgYmxvYiA9IGF3YWl0IHJlc3BvbnNlLmJsb2IoKTtcbiAgICBjb25zdCBvYmplY3RVcmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGltYWdlID0gYXdhaXQgbG9hZEltYWdlRWxlbWVudChvYmplY3RVcmwsIGZhbHNlKTtcbiAgICBpZiAocGVyc2lzdE9iamVjdFVybCkge1xuICAgICAgKGltYWdlIGFzIEhUTUxJbWFnZUVsZW1lbnQgJiB7IF9tZXJjaGlPYmplY3RVcmw/OiBzdHJpbmcgfSkuX21lcmNoaU9iamVjdFVybCA9IG9iamVjdFVybDtcbiAgICB9IGVsc2Uge1xuICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChvYmplY3RVcmwpO1xuICAgIH1cbiAgICByZXR1cm4gaW1hZ2U7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBsb2FkSW1hZ2VFbGVtZW50KHNyYywgdHJ1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRIdG1sSW1hZ2VGcm9tU291cmNlcyhcbiAgc291cmNlczogc3RyaW5nW10sXG4gIHBlcnNpc3RPYmplY3RVcmwgPSBmYWxzZSxcbik6IFByb21pc2U8SFRNTEltYWdlRWxlbWVudD4ge1xuICBsZXQgbGFzdEVycm9yOiB1bmtub3duO1xuICBmb3IgKGNvbnN0IHNyYyBvZiBzb3VyY2VzKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCBsb2FkSHRtbEltYWdlKHNyYywgcGVyc2lzdE9iamVjdFVybCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxhc3RFcnJvciA9IGVycm9yO1xuICAgIH1cbiAgfVxuICB0aHJvdyBsYXN0RXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGxhc3RFcnJvciA6IG5ldyBFcnJvcignRmFpbGVkIHRvIGxvYWQgaW1hZ2UnKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JEcmFmdEZvbnRzKGZhbWlsaWVzOiBzdHJpbmdbXSA9IFtdKTogUHJvbWlzZTx2b2lkPiB7XG4gIGVuc3VyZURyYWZ0Rm9udHMoKTtcbiAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcgfHwgIWRvY3VtZW50LmZvbnRzKSByZXR1cm47XG4gIGNvbnN0IHVuaXF1ZSA9IFsuLi5uZXcgU2V0KGZhbWlsaWVzLmZpbHRlcihCb29sZWFuKSldO1xuICBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgZG9jdW1lbnQuZm9udHMucmVhZHkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKSxcbiAgICAuLi51bmlxdWUuZmxhdE1hcCgoZmFtaWx5KSA9PiAoW1xuICAgICAgZG9jdW1lbnQuZm9udHMubG9hZChgNDAwIDQ4cHggJHtjc3NGb250RmFtaWx5KGZhbWlseSl9YCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKSxcbiAgICAgIGRvY3VtZW50LmZvbnRzLmxvYWQoYDcwMCA0OHB4ICR7Y3NzRm9udEZhbWlseShmYW1pbHkpfWApLmNhdGNoKCgpID0+IHVuZGVmaW5lZCksXG4gICAgXSkpLFxuICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdyYXBMaW5lcyhcbiAgdGV4dDogc3RyaW5nLFxuICBtYXhXaWR0aDogbnVtYmVyLFxuICBtZWFzdXJlOiAodmFsdWU6IHN0cmluZykgPT4gbnVtYmVyLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCB3b3JkcyA9IFN0cmluZyh0ZXh0KS5zcGxpdCgvXFxzKy8pLmZpbHRlcihCb29sZWFuKTtcbiAgaWYgKCF3b3Jkcy5sZW5ndGgpIHJldHVybiBbXTtcbiAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XG4gIGxldCBsaW5lID0gJyc7XG4gIGZvciAoY29uc3Qgd29yZCBvZiB3b3Jkcykge1xuICAgIGNvbnN0IHRlc3QgPSBsaW5lID8gYCR7bGluZX0gJHt3b3JkfWAgOiB3b3JkO1xuICAgIGlmIChsaW5lICYmIG1lYXN1cmUodGVzdCkgPiBtYXhXaWR0aCkge1xuICAgICAgbGluZXMucHVzaChsaW5lKTtcbiAgICAgIGxpbmUgPSB3b3JkO1xuICAgIH0gZWxzZSB7XG4gICAgICBsaW5lID0gdGVzdDtcbiAgICB9XG4gIH1cbiAgaWYgKGxpbmUpIGxpbmVzLnB1c2gobGluZSk7XG4gIHJldHVybiBsaW5lcztcbn1cblxuZnVuY3Rpb24gZHJhd1RleHQoY3R4OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsIG9iajogRHJhZnRDYW52YXNPYmplY3QpIHtcbiAgY29uc3QgZm9udFNpemUgPSBvYmouZm9udFNpemUgfHwgNDg7XG4gIGNvbnN0IGFsaWduID0gKG9iai5hbGlnbiBhcyBDYW52YXNUZXh0QWxpZ24pIHx8ICdjZW50ZXInO1xuICBjdHguZmlsbFN0eWxlID0gb2JqLmZpbGwgfHwgJyMxMTExMTEnO1xuICBjdHguZm9udCA9IGAke2ZvbnRTaXplfXB4ICR7Y3NzRm9udEZhbWlseShvYmouZm9udEZhbWlseSl9YDtcbiAgY3R4LnRleHRCYXNlbGluZSA9ICd0b3AnO1xuICBjdHgudGV4dEFsaWduID0gYWxpZ247XG4gIGNvbnN0IGxpbmVIZWlnaHQgPSBmb250U2l6ZTtcbiAgY29uc3QgbGluZXMgPSB3cmFwTGluZXMoXG4gICAgb2JqLnRleHQgfHwgJycsXG4gICAgb2JqLndpZHRoLFxuICAgICh2YWx1ZSkgPT4gY3R4Lm1lYXN1cmVUZXh0KHZhbHVlKS53aWR0aCxcbiAgKTtcbiAgY29uc3QgYmxvY2tIZWlnaHQgPSBsaW5lcy5sZW5ndGggKiBsaW5lSGVpZ2h0O1xuICBsZXQgY3Vyc29yWSA9IE1hdGgubWF4KDAsIChvYmouaGVpZ2h0IC0gYmxvY2tIZWlnaHQpIC8gMik7XG4gIGNvbnN0IHggPSBhbGlnbiA9PT0gJ2NlbnRlcicgPyBvYmoud2lkdGggLyAyIDogYWxpZ24gPT09ICdyaWdodCcgPyBvYmoud2lkdGggOiAwO1xuICBmb3IgKGNvbnN0IGxpbmUgb2YgbGluZXMpIHtcbiAgICBjdHguZmlsbFRleHQobGluZSwgeCwgY3Vyc29yWSwgb2JqLndpZHRoKTtcbiAgICBjdXJzb3JZICs9IGxpbmVIZWlnaHQ7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5S29udmFPYmplY3RUcmFuc2Zvcm0oXG4gIGN0eDogUGljazxDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQsICd0cmFuc2xhdGUnIHwgJ3JvdGF0ZScgfCAnc2NhbGUnPixcbiAgb2JqOiBQaWNrPERyYWZ0Q2FudmFzT2JqZWN0LCAneCcgfCAneScgfCAncm90YXRpb24nIHwgJ3NjYWxlWCcgfCAnc2NhbGVZJz4sXG4pIHtcbiAgLy8gS29udmEgcm90YXRlcy9zY2FsZXMgYXJvdW5kIHRoZSBub2RlIG9yaWdpbiAodG9wLWxlZnQpLCBub3QgdGhlIGNlbnRyZS5cbiAgY3R4LnRyYW5zbGF0ZShvYmoueCwgb2JqLnkpO1xuICBjdHgucm90YXRlKCgob2JqLnJvdGF0aW9uIHx8IDApICogTWF0aC5QSSkgLyAxODApO1xuICBjdHguc2NhbGUob2JqLnNjYWxlWCB8fCAxLCBvYmouc2NhbGVZIHx8IDEpO1xufVxuXG5mdW5jdGlvbiBkcmF3T2JqZWN0KFxuICBjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCxcbiAgb2JqOiBEcmFmdENhbnZhc09iamVjdCxcbiAgaW1hZ2U/OiBIVE1MSW1hZ2VFbGVtZW50LFxuKSB7XG4gIGN0eC5zYXZlKCk7XG4gIGFwcGx5S29udmFPYmplY3RUcmFuc2Zvcm0oY3R4LCBvYmopO1xuXG4gIGlmIChvYmoudHlwZSA9PT0gJ3JlY3QnKSB7XG4gICAgY3R4LmZpbGxTdHlsZSA9IG9iai5maWxsIHx8ICcjY2NjY2NjJztcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgb2JqLndpZHRoLCBvYmouaGVpZ2h0KTtcbiAgfSBlbHNlIGlmIChvYmoudHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgZHJhd1RleHQoY3R4LCBvYmopO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAnaW1hZ2UnICYmIGltYWdlKSB7XG4gICAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwgMCwgb2JqLndpZHRoLCBvYmouaGVpZ2h0KTtcbiAgfVxuICBjdHgucmVzdG9yZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FwdHVyZVN0YWdlQXJ0Ym9hcmQoXG4gIHN0YWdlOiB7IHRvRGF0YVVSTDogKGNvbmZpZzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pID0+IHN0cmluZyB9LFxuICB2aWV3OiB7IHg6IG51bWJlcjsgeTogbnVtYmVyOyBzY2FsZTogbnVtYmVyIH0sXG4gIGFydDogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9LFxuKTogc3RyaW5nIHtcbiAgY29uc3Qgc2NhbGUgPSBNYXRoLm1heCh2aWV3LnNjYWxlIHx8IDAsIDAuMDEpO1xuICByZXR1cm4gc3RhZ2UudG9EYXRhVVJMKHtcbiAgICBtaW1lVHlwZTogJ2ltYWdlL3BuZycsXG4gICAgcGl4ZWxSYXRpbzogMSAvIHNjYWxlLFxuICAgIHg6IHZpZXcueCxcbiAgICB5OiB2aWV3LnksXG4gICAgd2lkdGg6IGFydC53aWR0aCAqIHNjYWxlLFxuICAgIGhlaWdodDogYXJ0LmhlaWdodCAqIHNjYWxlLFxuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyU3RhdGUoXG4gIHN0YXRlOiBEcmFmdENhbnZhc1N0YXRlLFxuICB0ZW1wbGF0ZVNvdXJjZXM6IHN0cmluZ1tdLFxuICBvYmplY3RzT25seSA9IGZhbHNlLFxuKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gIGNhbnZhcy53aWR0aCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQoc3RhdGUud2lkdGgpKTtcbiAgY2FudmFzLmhlaWdodCA9IE1hdGgubWF4KDEsIE1hdGgucm91bmQoc3RhdGUuaGVpZ2h0KSk7XG4gIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICBpZiAoIWN0eCkgcmV0dXJuICcnO1xuXG4gIGNvbnN0IGZpbGxzID0gc3RhdGUub2JqZWN0cy5maWx0ZXIoaXNCYWNrZ3JvdW5kRmlsbCk7XG4gIGNvbnN0IGNvbnRlbnQgPSBzdGF0ZS5vYmplY3RzLmZpbHRlcigob2JqKSA9PiAhaXNCYWNrZ3JvdW5kRmlsbChvYmopKTtcblxuICBpZiAoIW9iamVjdHNPbmx5KSB7XG4gICAgY3R4LmZpbGxTdHlsZSA9ICcjZmZmZmZmJztcbiAgICBjdHguZmlsbFJlY3QoMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgfVxuXG4gIGNvbnN0IGRyYXdMaXN0ID0gYXN5bmMgKFxuICAgIG9iamVjdHM6IERyYWZ0Q2FudmFzT2JqZWN0W10sXG4gICAgY29tcG9zaXRlPzogJ211bHRpcGx5JyB8ICdzb3VyY2Utb3ZlcicsXG4gICkgPT4ge1xuICAgIGZvciAoY29uc3Qgb2JqIG9mIG9iamVjdHMpIHtcbiAgICAgIGxldCBpbWFnZTogSFRNTEltYWdlRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICAgIGlmIChvYmoudHlwZSA9PT0gJ2ltYWdlJyAmJiBvYmouc3JjKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgaW1hZ2UgPSBhd2FpdCBsb2FkSHRtbEltYWdlKG9iai5zcmMpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICBpbWFnZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY3R4LnNhdmUoKTtcbiAgICAgIGlmIChjb21wb3NpdGUpIGN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSBjb21wb3NpdGU7XG4gICAgICBkcmF3T2JqZWN0KGN0eCwgb2JqLCBpbWFnZSk7XG4gICAgICBjdHgucmVzdG9yZSgpO1xuICAgIH1cbiAgfTtcblxuICBpZiAoIW9iamVjdHNPbmx5ICYmIHRlbXBsYXRlU291cmNlcy5sZW5ndGgpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGVtcGxhdGUgPSBhd2FpdCBsb2FkSHRtbEltYWdlRnJvbVNvdXJjZXModGVtcGxhdGVTb3VyY2VzKTtcbiAgICAgIGN0eC5kcmF3SW1hZ2UodGVtcGxhdGUsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBibGFuayBhcnRib2FyZCBpZiB0aGUgdGVtcGxhdGUgaW1hZ2UgY2Fubm90IGxvYWRcbiAgICB9XG4gIH1cbiAgY29uc3Qgc2hlZXRGaWxscyA9IGZpbGxzLmZpbHRlcigob2JqKSA9PiBpc0Z1bGxBcnRib2FyZEZpbGwob2JqLCBzdGF0ZS53aWR0aCwgc3RhdGUuaGVpZ2h0KSk7XG4gIGNvbnN0IHJlZ2lvbkZpbGxzID0gZmlsbHMuZmlsdGVyKChvYmopID0+ICFpc0Z1bGxBcnRib2FyZEZpbGwob2JqLCBzdGF0ZS53aWR0aCwgc3RhdGUuaGVpZ2h0KSk7XG4gIGF3YWl0IGRyYXdMaXN0KHNoZWV0RmlsbHMsIG9iamVjdHNPbmx5ID8gJ3NvdXJjZS1vdmVyJyA6ICdtdWx0aXBseScpO1xuICBhd2FpdCBkcmF3TGlzdChyZWdpb25GaWxscyk7XG4gIGF3YWl0IGRyYXdMaXN0KGNvbnRlbnQuZmlsdGVyKChvYmopID0+IG9iai50eXBlICE9PSAnaW1hZ2UnKSk7XG4gIGF3YWl0IGRyYXdMaXN0KGNvbnRlbnQuZmlsdGVyKChvYmopID0+IG9iai50eXBlID09PSAnaW1hZ2UnKSk7XG5cbiAgcmV0dXJuIGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3BuZycpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhwb3J0RHJhZnRQbmdzKFxuICBzdGF0ZTogRHJhZnRDYW52YXNTdGF0ZSxcbiAgdGVtcGxhdGVTcmM/OiBzdHJpbmcgfCBzdHJpbmdbXSB8IG51bGwsXG4gIGFwaVVybD86IHN0cmluZyxcbik6IFByb21pc2U8eyBkcmFmdDogc3RyaW5nOyBjYW52YXNQcmV2aWV3OiBzdHJpbmcgfT4ge1xuICBjb25zdCBzb3VyY2VzID0gQXJyYXkuaXNBcnJheSh0ZW1wbGF0ZVNyYylcbiAgICA/IHRlbXBsYXRlU3JjXG4gICAgOiB0ZW1wbGF0ZVNyY1xuICAgICAgPyBbdGVtcGxhdGVTcmNdXG4gICAgICA6IFtdO1xuICBjb25zdCByZXNvbHZlZCA9IHNvdXJjZXMuZmxhdE1hcCgoc3JjKSA9PiAoXG4gICAgc3JjLnN0YXJ0c1dpdGgoJ2h0dHAnKSB8fCBzcmMuc3RhcnRzV2l0aCgnZGF0YTonKSB8fCBzcmMuc3RhcnRzV2l0aCgnYmxvYjonKVxuICAgICAgPyBbc3JjXVxuICAgICAgOiB0ZW1wbGF0ZUltYWdlU291cmNlcyh7IGZpbGU6IHsgdmlld1VybDogc3JjIH0gfSwgYXBpVXJsKVxuICApKTtcbiAgYXdhaXQgd2FpdEZvckRyYWZ0Rm9udHMoXG4gICAgc3RhdGUub2JqZWN0c1xuICAgICAgLmZpbHRlcigob2JqKSA9PiBvYmoudHlwZSA9PT0gJ3RleHQnKVxuICAgICAgLm1hcCgob2JqKSA9PiBvYmouZm9udEZhbWlseSB8fCAnJyksXG4gICk7XG4gIGNvbnN0IFtkcmFmdCwgY2FudmFzUHJldmlld10gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgcmVuZGVyU3RhdGUoc3RhdGUsIHJlc29sdmVkLCB0cnVlKSxcbiAgICByZW5kZXJTdGF0ZShzdGF0ZSwgcmVzb2x2ZWQsIGZhbHNlKSxcbiAgXSk7XG4gIHJldHVybiB7IGRyYWZ0LCBjYW52YXNQcmV2aWV3IH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7MEJBQ0EsdUtBQUFBLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxXQUFBLDhCQUFBQyxFQUFBTixDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFDLENBQUEsR0FBQUwsQ0FBQSxJQUFBQSxDQUFBLENBQUFNLFNBQUEsWUFBQUMsU0FBQSxHQUFBUCxDQUFBLEdBQUFPLFNBQUEsRUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUwsQ0FBQSxDQUFBQyxTQUFBLFVBQUFLLG1CQUFBLENBQUFILENBQUEsdUJBQUFWLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFFLENBQUEsRUFBQUMsQ0FBQSxFQUFBRyxDQUFBLEVBQUFJLENBQUEsTUFBQUMsQ0FBQSxHQUFBWCxDQUFBLFFBQUFZLENBQUEsT0FBQUMsQ0FBQSxLQUFBRixDQUFBLEtBQUFiLENBQUEsS0FBQWdCLENBQUEsRUFBQXBCLENBQUEsRUFBQXFCLENBQUEsRUFBQUMsQ0FBQSxFQUFBTixDQUFBLEVBQUFNLENBQUEsQ0FBQUMsSUFBQSxDQUFBdkIsQ0FBQSxNQUFBc0IsQ0FBQSxXQUFBQSxFQUFB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
495
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJlIiwidCIsInIiLCJTeW1ib2wiLCJuIiwiaXRlcmF0b3IiLCJvIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiQXJyYXkiLCJpc0FycmF5IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX24iLCJGIiwicyIsIm5leHQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3VtZW50cyIsImFwcGx5IiwiX25leHQiLCJfdGhyb3ciLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJfYXJyYXlXaXRob3V0SG9sZXMiLCJfaXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlU3ByZWFkIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiZnJvbSIsInRlc3QiLCJjc3NGb250RmFtaWx5IiwiZW5zdXJlRHJhZnRGb250cyIsImlzQmFja2dyb3VuZEZpbGwiLCJpc0Z1bGxBcnRib2FyZEZpbGwiLCJyZXNvbHZlRmlsZVVybCIsInVybCIsImFwaVVybCIsImFwaSIsIlVSTCIsInN0YXJ0c1dpdGgiLCJjb25jYXQiLCJvcmlnaW4iLCJocmVmIiwiX3VudXNlZCIsInRlbXBsYXRlSW1hZ2VTb3VyY2VzIiwidGVtcGxhdGUiLCJmaWxlIiwicmF3IiwiaWQiLCJiYXNlIiwiU3RyaW5nIiwicmVwbGFjZSIsInB1c2giLCJ2aWV3VXJsIiwiY2FjaGVkVmlld1VybCIsImRvd25sb2FkVXJsIiwiY2FjaGVkRG93bmxvYWRVcmwiLCJTZXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwibWFwIiwidGVtcGxhdGVEb3dubG9hZEhyZWYiLCJlbmNvZGVVUklDb21wb25lbnQiLCJwcmVmZXJyZWQiLCJsb2FkSW1hZ2VFbGVtZW50Iiwic3JjIiwiY29ycyIsInJlamVjdCIsImltZyIsIkltYWdlIiwiY3Jvc3NPcmlnaW4iLCJvbmxvYWQiLCJvbmVycm9yIiwiRXJyb3IiLCJsb2FkSHRtbEltYWdlIiwiX3giLCJfbG9hZEh0bWxJbWFnZSIsIl9jYWxsZWUiLCJwZXJzaXN0T2JqZWN0VXJsIiwicmVzcG9uc2UiLCJibG9iIiwib2JqZWN0VXJsIiwiaW1hZ2UiLCJfYXJncyIsIl90IiwiX2NvbnRleHQiLCJ1bmRlZmluZWQiLCJmZXRjaCIsIm1vZGUiLCJjcmVkZW50aWFscyIsIm9rIiwic3RhdHVzIiwiY3JlYXRlT2JqZWN0VVJMIiwiX21lcmNoaU9iamVjdFVybCIsInJldm9rZU9iamVjdFVSTCIsImxvYWRIdG1sSW1hZ2VGcm9tU291cmNlcyIsIl94MiIsIl9sb2FkSHRtbEltYWdlRnJvbVNvdXJjZXMiLCJfY2FsbGVlMiIsInNvdXJjZXMiLCJsYXN0RXJyb3IiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX2FyZ3MyIiwiX3QyIiwiX3QzIiwiX2NvbnRleHQyIiwid2FpdEZvckRyYWZ0Rm9udHMiLCJfd2FpdEZvckRyYWZ0Rm9udHMiLCJfY2FsbGVlMyIsImZhbWlsaWVzIiwidW5pcXVlIiwiX2FyZ3MzIiwiX2NvbnRleHQzIiwiZG9jdW1lbnQiLCJmb250cyIsImFsbCIsInJlYWR5IiwiZmxhdE1hcCIsImZhbWlseSIsImxvYWQiLCJ3cmFwTGluZXMiLCJ0ZXh0IiwibWF4V2lkdGgiLCJtZWFzdXJlIiwid29yZHMiLCJzcGxpdCIsImxpbmVzIiwibGluZSIsIl9pdGVyYXRvciIsIl9zdGVwIiwid29yZCIsImVyciIsImRyYXdUZXh0IiwiY3R4Iiwib2JqIiwiZm9udFNpemUiLCJhbGlnbiIsImZpbGxTdHlsZSIsImZpbGwiLCJmb250IiwiZm9udEZhbWlseSIsInRleHRCYXNlbGluZSIsInRleHRBbGlnbiIsImxpbmVIZWlnaHQiLCJ3aWR0aCIsIm1lYXN1cmVUZXh0IiwiYmxvY2tIZWlnaHQiLCJjdXJzb3JZIiwiTWF0aCIsIm1heCIsImhlaWdodCIsIngiLCJfaXRlcmF0b3IyIiwiX3N0ZXAyIiwiZmlsbFRleHQiLCJhcHBseUtvbnZhT2JqZWN0VHJhbnNmb3JtIiwidHJhbnNsYXRlIiwicm90YXRlIiwicm90YXRpb24iLCJQSSIsInNjYWxlIiwic2NhbGVYIiwic2NhbGVZIiwiZHJhd09iamVjdCIsInNhdmUiLCJ0eXBlIiwiZmlsbFJlY3QiLCJkcmF3SW1hZ2UiLCJyZXN0b3JlIiwiY2FwdHVyZVN0YWdlQXJ0Ym9hcmQiLCJzdGFnZSIsInZpZXciLCJhcnQiLCJ0b0RhdGFVUkwiLCJtaW1lVHlwZSIsInBpeGVsUmF0aW8iLCJyZW5kZXJTdGF0ZSIsIl94MyIsIl94NCIsIl9yZW5kZXJTdGF0ZSIsIl9jYWxsZWU1Iiwic3RhdGUiLCJ0ZW1wbGF0ZVNvdXJjZXMiLCJvYmplY3RzT25seSIsImNhbnZhcyIsImZpbGxzIiwiY29udGVudCIsImRyYXdMaXN0Iiwic2hlZXRGaWxscyIsInJlZ2lvbkZpbGxzIiwiX2FyZ3M1IiwiX3Q2IiwiX2NvbnRleHQ1IiwiY3JlYXRlRWxlbWVudCIsInJvdW5kIiwiZ2V0Q29udGV4dCIsIm9iamVjdHMiLCJfcmVmIiwiX2NhbGxlZTQiLCJjb21wb3NpdGUiLCJfaXRlcmF0b3I0IiwiX3N0ZXA0IiwiX3Q0IiwiX3Q1IiwiX2NvbnRleHQ0IiwiZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uIiwiX3g4IiwiX3g5IiwiZXhwb3J0RHJhZnRQbmdzIiwiX3g1IiwiX3g2IiwiX3g3IiwiX2V4cG9ydERyYWZ0UG5ncyIsIl9jYWxsZWU2IiwidGVtcGxhdGVTcmMiLCJyZXNvbHZlZCIsIl95aWVsZCRQcm9taXNlJGFsbCIsIl95aWVsZCRQcm9taXNlJGFsbDIiLCJkcmFmdCIsImNhbnZhc1ByZXZpZXciLCJfY29udGV4dDYiLCJfc2xpY2VkVG9BcnJheSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kcmFmdEV4cG9ydC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjc3NGb250RmFtaWx5LCBlbnN1cmVEcmFmdEZvbnRzIH0gZnJvbSAnLi9kcmFmdEZvbnRzJztcbmltcG9ydCB7IGlzQmFja2dyb3VuZEZpbGwsIGlzRnVsbEFydGJvYXJkRmlsbCB9IGZyb20gJy4vZHJhZnRUZW1wbGF0ZXMnO1xuaW1wb3J0IHsgRHJhZnRDYW52YXNPYmplY3QsIERyYWZ0Q2FudmFzU3RhdGUgfSBmcm9tICcuL3R5cGVzJztcblxuZnVuY3Rpb24gcmVzb2x2ZUZpbGVVcmwodXJsOiBzdHJpbmcsIGFwaVVybD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmICghdXJsKSByZXR1cm4gJyc7XG4gIGlmICgvXihkYXRhOnxibG9iOnxodHRwcz86KS9pLnRlc3QodXJsKSkgcmV0dXJuIHVybDtcbiAgaWYgKCFhcGlVcmwpIHJldHVybiB1cmw7XG4gIHRyeSB7XG4gICAgY29uc3QgYXBpID0gbmV3IFVSTChhcGlVcmwpO1xuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnLycpKSByZXR1cm4gYCR7YXBpLm9yaWdpbn0ke3VybH1gO1xuICAgIHJldHVybiBuZXcgVVJMKHVybCwgYXBpVXJsKS5ocmVmO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZUltYWdlU291cmNlcyh0ZW1wbGF0ZTogYW55LCBhcGlVcmw/OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIGNvbnN0IGZpbGUgPSB0ZW1wbGF0ZT8uZmlsZSB8fCB7fTtcbiAgY29uc3QgcmF3OiBzdHJpbmdbXSA9IFtdO1xuICBpZiAoYXBpVXJsICYmIGZpbGUuaWQpIHtcbiAgICBjb25zdCBiYXNlID0gU3RyaW5nKGFwaVVybCkucmVwbGFjZSgvXFwvPyQvLCAnLycpO1xuICAgIHJhdy5wdXNoKGAke2Jhc2V9cHVibGljLWZpbGVzLyR7ZmlsZS5pZH0vdmlldy9gKTtcbiAgfVxuICByYXcucHVzaChcbiAgICBmaWxlLnZpZXdVcmwsXG4gICAgZmlsZS5jYWNoZWRWaWV3VXJsLFxuICAgIGZpbGUuZG93bmxvYWRVcmwsXG4gICAgZmlsZS5jYWNoZWREb3dubG9hZFVybCxcbiAgKTtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFxuICAgIHJhdy5maWx0ZXIoQm9vbGVhbikubWFwKCh1cmwpID0+IHJlc29sdmVGaWxlVXJsKFN0cmluZyh1cmwpLCBhcGlVcmwpKSxcbiAgKV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZW1wbGF0ZURvd25sb2FkSHJlZih0ZW1wbGF0ZTogYW55LCBhcGlVcmw/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBmaWxlID0gdGVtcGxhdGU/LmZpbGU7XG4gIGlmICghZmlsZSkgcmV0dXJuICcnO1xuICAvLyBQcmVzaWduZWQgUzMgZG93bmxvYWQgVVJMcyBleHBpcmUuIFB1YmxpYyBzdG9yZWZyb250cyBjYWNoZSB0aGUgcHJvZHVjdFxuICAvLyBwYXlsb2FkIGZvciBsb25nZXIgdGhhbiB0aGF0IGxpZmV0aW1lLCBzbyBhIGZpbGUgaWQgYWx3YXlzIGRvd25sb2Fkc1xuICAvLyB0aHJvdWdoIHRoZSBBUEksIHdoaWNoIHNpZ25zIGEgZnJlc2ggVVJMIG9uIGVhY2ggcmVxdWVzdC5cbiAgaWYgKGFwaVVybCAmJiBmaWxlLmlkICE9IG51bGwgJiYgZmlsZS5pZCAhPT0gJycpIHtcbiAgICBjb25zdCBiYXNlID0gU3RyaW5nKGFwaVVybCkucmVwbGFjZSgvXFwvPyQvLCAnLycpO1xuICAgIHJldHVybiBgJHtiYXNlfXB1YmxpYy1maWxlcy8ke2VuY29kZVVSSUNvbXBvbmVudChTdHJpbmcoZmlsZS5pZCkpfS9kb3dubG9hZC9gO1xuICB9XG4gIGNvbnN0IHByZWZlcnJlZCA9IGZpbGUuZG93bmxvYWRVcmwgfHwgZmlsZS5jYWNoZWREb3dubG9hZFVybDtcbiAgaWYgKHByZWZlcnJlZCkgcmV0dXJuIHJlc29sdmVGaWxlVXJsKFN0cmluZyhwcmVmZXJyZWQpLCBhcGlVcmwpO1xuICByZXR1cm4gdGVtcGxhdGVJbWFnZVNvdXJjZXModGVtcGxhdGUsIGFwaVVybClbMF0gfHwgJyc7XG59XG5cbmZ1bmN0aW9uIGxvYWRJbWFnZUVsZW1lbnQoc3JjOiBzdHJpbmcsIGNvcnM6IGJvb2xlYW4pOiBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcbiAgICBpZiAoY29ycykgaW1nLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XG4gICAgaW1nLm9ubG9hZCA9ICgpID0+IHJlc29sdmUoaW1nKTtcbiAgICBpbWcub25lcnJvciA9ICgpID0+IHJlamVjdChuZXcgRXJyb3IoYEZhaWxlZCB0byBsb2FkICR7c3JjfWApKTtcbiAgICBpbWcuc3JjID0gc3JjO1xuICB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGxvYWRIdG1sSW1hZ2UoXG4gIHNyYzogc3RyaW5nLFxuICBwZXJzaXN0T2JqZWN0VXJsID0gZmFsc2UsXG4pOiBQcm9taXNlPEhUTUxJbWFnZUVsZW1lbnQ+IHtcbiAgaWYgKCFzcmMpIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBpbWFnZSBzb3VyY2UnKTtcbiAgaWYgKC9eKGRhdGE6fGJsb2I6KS9pLnRlc3Qoc3JjKSkge1xuICAgIHJldHVybiBsb2FkSW1hZ2VFbGVtZW50KHNyYywgZmFsc2UpO1xuICB9XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChzcmMsIHsgbW9kZTogJ2NvcnMnLCBjcmVkZW50aWFsczogJ29taXQnIH0pO1xuICAgIGlmICghcmVzcG9uc2Uub2spIHRocm93IG5ldyBFcnJvcihgSFRUUCAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICBjb25zdCBibG9iID0gYXdhaXQgcmVzcG9uc2UuYmxvYigpO1xuICAgIGNvbnN0IG9iamVjdFVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgY29uc3QgaW1hZ2UgPSBhd2FpdCBsb2FkSW1hZ2VFbGVtZW50KG9iamVjdFVybCwgZmFsc2UpO1xuICAgIGlmIChwZXJzaXN0T2JqZWN0VXJsKSB7XG4gICAgICAoaW1hZ2UgYXMgSFRNTEltYWdlRWxlbWVudCAmIHsgX21lcmNoaU9iamVjdFVybD86IHN0cmluZyB9KS5fbWVyY2hpT2JqZWN0VXJsID0gb2JqZWN0VXJsO1xuICAgIH0gZWxzZSB7XG4gICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKG9iamVjdFVybCk7XG4gICAgfVxuICAgIHJldHVybiBpbWFnZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGxvYWRJbWFnZUVsZW1lbnQoc3JjLCB0cnVlKTtcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZEh0bWxJbWFnZUZyb21Tb3VyY2VzKFxuICBzb3VyY2VzOiBzdHJpbmdbXSxcbiAgcGVyc2lzdE9iamVjdFVybCA9IGZhbHNlLFxuKTogUHJvbWlzZTxIVE1MSW1hZ2VFbGVtZW50PiB7XG4gIGxldCBsYXN0RXJyb3I6IHVua25vd247XG4gIGZvciAoY29uc3Qgc3JjIG9mIHNvdXJjZXMpIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IGxvYWRIdG1sSW1hZ2Uoc3JjLCBwZXJzaXN0T2JqZWN0VXJsKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbGFzdEVycm9yID0gZXJyb3I7XG4gICAgfVxuICB9XG4gIHRocm93IGxhc3RFcnJvciBpbnN0YW5jZW9mIEVycm9yID8gbGFzdEVycm9yIDogbmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBpbWFnZScpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd2FpdEZvckRyYWZ0Rm9udHMoZmFtaWxpZXM6IHN0cmluZ1tdID0gW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgZW5zdXJlRHJhZnRGb250cygpO1xuICBpZiAodHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJyB8fCAhZG9jdW1lbnQuZm9udHMpIHJldHVybjtcbiAgY29uc3QgdW5pcXVlID0gWy4uLm5ldyBTZXQoZmFtaWxpZXMuZmlsdGVyKEJvb2xlYW4pKV07XG4gIGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICBkb2N1bWVudC5mb250cy5yZWFkeS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpLFxuICAgIC4uLnVuaXF1ZS5mbGF0TWFwKChmYW1pbHkpID0+IChbXG4gICAgICBkb2N1bWVudC5mb250cy5sb2FkKGA0MDAgNDhweCAke2Nzc0ZvbnRGYW1pbHkoZmFtaWx5KX1gKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpLFxuICAgICAgZG9jdW1lbnQuZm9udHMubG9hZChgNzAwIDQ4cHggJHtjc3NGb250RmFtaWx5KGZhbWlseSl9YCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKSxcbiAgICBdKSksXG4gIF0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JhcExpbmVzKFxuICB0ZXh0OiBzdHJpbmcsXG4gIG1heFdpZHRoOiBudW1iZXIsXG4gIG1lYXN1cmU6ICh2YWx1ZTogc3RyaW5nKSA9PiBudW1iZXIsXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHdvcmRzID0gU3RyaW5nKHRleHQpLnNwbGl0KC9cXHMrLykuZmlsdGVyKEJvb2xlYW4pO1xuICBpZiAoIXdvcmRzLmxlbmd0aCkgcmV0dXJuIFtdO1xuICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcbiAgbGV0IGxpbmUgPSAnJztcbiAgZm9yIChjb25zdCB3b3JkIG9mIHdvcmRzKSB7XG4gICAgY29uc3QgdGVzdCA9IGxpbmUgPyBgJHtsaW5lfSAke3dvcmR9YCA6IHdvcmQ7XG4gICAgaWYgKGxpbmUgJiYgbWVhc3VyZSh0ZXN0KSA+IG1heFdpZHRoKSB7XG4gICAgICBsaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgbGluZSA9IHdvcmQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmUgPSB0ZXN0O1xuICAgIH1cbiAgfVxuICBpZiAobGluZSkgbGluZXMucHVzaChsaW5lKTtcbiAgcmV0dXJuIGxpbmVzO1xufVxuXG5mdW5jdGlvbiBkcmF3VGV4dChjdHg6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgb2JqOiBEcmFmdENhbnZhc09iamVjdCkge1xuICBjb25zdCBmb250U2l6ZSA9IG9iai5mb250U2l6ZSB8fCA0ODtcbiAgY29uc3QgYWxpZ24gPSAob2JqLmFsaWduIGFzIENhbnZhc1RleHRBbGlnbikgfHwgJ2NlbnRlcic7XG4gIGN0eC5maWxsU3R5bGUgPSBvYmouZmlsbCB8fCAnIzExMTExMSc7XG4gIGN0eC5mb250ID0gYCR7Zm9udFNpemV9cHggJHtjc3NGb250RmFtaWx5KG9iai5mb250RmFtaWx5KX1gO1xuICBjdHgudGV4dEJhc2VsaW5lID0gJ3RvcCc7XG4gIGN0eC50ZXh0QWxpZ24gPSBhbGlnbjtcbiAgY29uc3QgbGluZUhlaWdodCA9IGZvbnRTaXplO1xuICBjb25zdCBsaW5lcyA9IHdyYXBMaW5lcyhcbiAgICBvYmoudGV4dCB8fCAnJyxcbiAgICBvYmoud2lkdGgsXG4gICAgKHZhbHVlKSA9PiBjdHgubWVhc3VyZVRleHQodmFsdWUpLndpZHRoLFxuICApO1xuICBjb25zdCBibG9ja0hlaWdodCA9IGxpbmVzLmxlbmd0aCAqIGxpbmVIZWlnaHQ7XG4gIGxldCBjdXJzb3JZID0gTWF0aC5tYXgoMCwgKG9iai5oZWlnaHQgLSBibG9ja0hlaWdodCkgLyAyKTtcbiAgY29uc3QgeCA9IGFsaWduID09PSAnY2VudGVyJyA/IG9iai53aWR0aCAvIDIgOiBhbGlnbiA9PT0gJ3JpZ2h0JyA/IG9iai53aWR0aCA6IDA7XG4gIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgIGN0eC5maWxsVGV4dChsaW5lLCB4LCBjdXJzb3JZLCBvYmoud2lkdGgpO1xuICAgIGN1cnNvclkgKz0gbGluZUhlaWdodDtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXBwbHlLb252YU9iamVjdFRyYW5zZm9ybShcbiAgY3R4OiBQaWNrPENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCwgJ3RyYW5zbGF0ZScgfCAncm90YXRlJyB8ICdzY2FsZSc+LFxuICBvYmo6IFBpY2s8RHJhZnRDYW52YXNPYmplY3QsICd4JyB8ICd5JyB8ICdyb3RhdGlvbicgfCAnc2NhbGVYJyB8ICdzY2FsZVknPixcbikge1xuICAvLyBLb252YSByb3RhdGVzL3NjYWxlcyBhcm91bmQgdGhlIG5vZGUgb3JpZ2luICh0b3AtbGVmdCksIG5vdCB0aGUgY2VudHJlLlxuICBjdHgudHJhbnNsYXRlKG9iai54LCBvYmoueSk7XG4gIGN0eC5yb3RhdGUoKChvYmoucm90YXRpb24gfHwgMCkgKiBNYXRoLlBJKSAvIDE4MCk7XG4gIGN0eC5zY2FsZShvYmouc2NhbGVYIHx8IDEsIG9iai5zY2FsZVkgfHwgMSk7XG59XG5cbmZ1bmN0aW9uIGRyYXdPYmplY3QoXG4gIGN0eDogQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELFxuICBvYmo6IERyYWZ0Q2FudmFzT2JqZWN0LFxuICBpbWFnZT86IEhUTUxJbWFnZUVsZW1lbnQsXG4pIHtcbiAgY3R4LnNhdmUoKTtcbiAgYXBwbHlLb252YU9iamVjdFRyYW5zZm9ybShjdHgsIG9iaik7XG5cbiAgaWYgKG9iai50eXBlID09PSAncmVjdCcpIHtcbiAgICBjdHguZmlsbFN0eWxlID0gb2JqLmZpbGwgfHwgJyNjY2NjY2MnO1xuICAgIGN0eC5maWxsUmVjdCgwLCAwLCBvYmoud2lkdGgsIG9iai5oZWlnaHQpO1xuICB9IGVsc2UgaWYgKG9iai50eXBlID09PSAndGV4dCcpIHtcbiAgICBkcmF3VGV4dChjdHgsIG9iaik7XG4gIH0gZWxzZSBpZiAob2JqLnR5cGUgPT09ICdpbWFnZScgJiYgaW1hZ2UpIHtcbiAgICBjdHguZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBvYmoud2lkdGgsIG9iai5oZWlnaHQpO1xuICB9XG4gIGN0eC5yZXN0b3JlKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXB0dXJlU3RhZ2VBcnRib2FyZChcbiAgc3RhZ2U6IHsgdG9EYXRhVVJMOiAoY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gc3RyaW5nIH0sXG4gIHZpZXc6IHsgeDogbnVtYmVyOyB5OiBudW1iZXI7IHNjYWxlOiBudW1iZXIgfSxcbiAgYXJ0OiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0sXG4pOiBzdHJpbmcge1xuICBjb25zdCBzY2FsZSA9IE1hdGgubWF4KHZpZXcuc2NhbGUgfHwgMCwgMC4wMSk7XG4gIHJldHVybiBzdGFnZS50b0RhdGFVUkwoe1xuICAgIG1pbWVUeXBlOiAnaW1hZ2UvcG5nJyxcbiAgICBwaXhlbFJhdGlvOiAxIC8gc2NhbGUsXG4gICAgeDogdmlldy54LFxuICAgIHk6IHZpZXcueSxcbiAgICB3aWR0aDogYXJ0LndpZHRoICogc2NhbGUsXG4gICAgaGVpZ2h0OiBhcnQuaGVpZ2h0ICogc2NhbGUsXG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJTdGF0ZShcbiAgc3RhdGU6IERyYWZ0Q2FudmFzU3RhdGUsXG4gIHRlbXBsYXRlU291cmNlczogc3RyaW5nW10sXG4gIG9iamVjdHNPbmx5ID0gZmFsc2UsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgY2FudmFzLndpZHRoID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChzdGF0ZS53aWR0aCkpO1xuICBjYW52YXMuaGVpZ2h0ID0gTWF0aC5tYXgoMSwgTWF0aC5yb3VuZChzdGF0ZS5oZWlnaHQpKTtcbiAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gIGlmICghY3R4KSByZXR1cm4gJyc7XG5cbiAgY29uc3QgZmlsbHMgPSBzdGF0ZS5vYmplY3RzLmZpbHRlcihpc0JhY2tncm91bmRGaWxsKTtcbiAgY29uc3QgY29udGVudCA9IHN0YXRlLm9iamVjdHMuZmlsdGVyKChvYmopID0+ICFpc0JhY2tncm91bmRGaWxsKG9iaikpO1xuXG4gIGlmICghb2JqZWN0c09ubHkpIHtcbiAgICBjdHguZmlsbFN0eWxlID0gJyNmZmZmZmYnO1xuICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICB9XG5cbiAgY29uc3QgZHJhd0xpc3QgPSBhc3luYyAoXG4gICAgb2JqZWN0czogRHJhZnRDYW52YXNPYmplY3RbXSxcbiAgICBjb21wb3NpdGU/OiAnbXVsdGlwbHknIHwgJ3NvdXJjZS1vdmVyJyxcbiAgKSA9PiB7XG4gICAgZm9yIChjb25zdCBvYmogb2Ygb2JqZWN0cykge1xuICAgICAgbGV0IGltYWdlOiBIVE1MSW1hZ2VFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgICAgaWYgKG9iai50eXBlID09PSAnaW1hZ2UnICYmIG9iai5zcmMpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpbWFnZSA9IGF3YWl0IGxvYWRIdG1sSW1hZ2Uob2JqLnNyYyk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIGltYWdlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjdHguc2F2ZSgpO1xuICAgICAgaWYgKGNvbXBvc2l0ZSkgY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9IGNvbXBvc2l0ZTtcbiAgICAgIGRyYXdPYmplY3QoY3R4LCBvYmosIGltYWdlKTtcbiAgICAgIGN0eC5yZXN0b3JlKCk7XG4gICAgfVxuICB9O1xuXG4gIGlmICghb2JqZWN0c09ubHkgJiYgdGVtcGxhdGVTb3VyY2VzLmxlbmd0aCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZW1wbGF0ZSA9IGF3YWl0IGxvYWRIdG1sSW1hZ2VGcm9tU291cmNlcyh0ZW1wbGF0ZVNvdXJjZXMpO1xuICAgICAgY3R4LmRyYXdJbWFnZSh0ZW1wbGF0ZSwgMCwgMCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIGJsYW5rIGFydGJvYXJkIGlmIHRoZSB0ZW1wbGF0ZSBpbWFnZSBjYW5ub3QgbG9hZFxuICAgIH1cbiAgfVxuICBjb25zdCBzaGVldEZpbGxzID0gZmlsbHMuZmlsdGVyKChvYmopID0+IGlzRnVsbEFydGJvYXJkRmlsbChvYmosIHN0YXRlLndpZHRoLCBzdGF0ZS5oZWlnaHQpKTtcbiAgY29uc3QgcmVnaW9uRmlsbHMgPSBmaWxscy5maWx0ZXIoKG9iaikgPT4gIWlzRnVsbEFydGJvYXJkRmlsbChvYmosIHN0YXRlLndpZHRoLCBzdGF0ZS5oZWlnaHQpKTtcbiAgYXdhaXQgZHJhd0xpc3Qoc2hlZXRGaWxscywgb2JqZWN0c09ubHkgPyAnc291cmNlLW92ZXInIDogJ211bHRpcGx5Jyk7XG4gIGF3YWl0IGRyYXdMaXN0KHJlZ2lvbkZpbGxzKTtcbiAgYXdhaXQgZHJhd0xpc3QoY29udGVudC5maWx0ZXIoKG9iaikgPT4gb2JqLnR5cGUgIT09ICdpbWFnZScpKTtcbiAgYXdhaXQgZHJhd0xpc3QoY29udGVudC5maWx0ZXIoKG9iaikgPT4gb2JqLnR5cGUgPT09ICdpbWFnZScpKTtcblxuICByZXR1cm4gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleHBvcnREcmFmdFBuZ3MoXG4gIHN0YXRlOiBEcmFmdENhbnZhc1N0YXRlLFxuICB0ZW1wbGF0ZVNyYz86IHN0cmluZyB8IHN0cmluZ1tdIHwgbnVsbCxcbiAgYXBpVXJsPzogc3RyaW5nLFxuKTogUHJvbWlzZTx7IGRyYWZ0OiBzdHJpbmc7IGNhbnZhc1ByZXZpZXc6IHN0cmluZyB9PiB7XG4gIGNvbnN0IHNvdXJjZXMgPSBBcnJheS5pc0FycmF5KHRlbXBsYXRlU3JjKVxuICAgID8gdGVtcGxhdGVTcmNcbiAgICA6IHRlbXBsYXRlU3JjXG4gICAgICA/IFt0ZW1wbGF0ZVNyY11cbiAgICAgIDogW107XG4gIGNvbnN0IHJlc29sdmVkID0gc291cmNlcy5mbGF0TWFwKChzcmMpID0+IChcbiAgICBzcmMuc3RhcnRzV2l0aCgnaHR0cCcpIHx8IHNyYy5zdGFydHNXaXRoKCdkYXRhOicpIHx8IHNyYy5zdGFydHNXaXRoKCdibG9iOicpXG4gICAgICA/IFtzcmNdXG4gICAgICA6IHRlbXBsYXRlSW1hZ2VTb3VyY2VzKHsgZmlsZTogeyB2aWV3VXJsOiBzcmMgfSB9LCBhcGlVcmwpXG4gICkpO1xuICBhd2FpdCB3YWl0Rm9yRHJhZnRGb250cyhcbiAgICBzdGF0ZS5vYmplY3RzXG4gICAgICAuZmlsdGVyKChvYmopID0+IG9iai50eXBlID09PSAndGV4dCcpXG4gICAgICAubWFwKChvYmopID0+IG9iai5mb250RmFtaWx5IHx8ICcnKSxcbiAgKTtcbiAgY29uc3QgW2RyYWZ0LCBjYW52YXNQcmV2aWV3XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICByZW5kZXJTdGF0ZShzdGF0ZSwgcmVzb2x2ZWQsIHRydWUpLFxuICAgIHJlbmRlclN0YXRlKHN0YXRlLCByZXNvbHZlZCwgZmFsc2UpLFxuICBdKTtcbiAgcmV0dXJuIHsgZHJhZnQsIGNhbnZhc1ByZXZpZXcgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OzswQkFDQSx1S0FBQUEsQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsd0JBQUFDLE1BQUEsR0FBQUEsTUFBQSxPQUFBQyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsUUFBQSxrQkFBQUMsQ0FBQSxHQUFBSixDQUFBLENBQUFLLFdBQUEsOEJBQUFDLEVBQUFOLENBQUEsRUFBQUUsQ0FB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
@@ -8,22 +8,29 @@ test('templateImageSources prefers the public file view and resolves relative UR
8
8
  }
9
9
  }, 'http://127.0.0.1:5000/v6/')).toEqual(['http://127.0.0.1:5000/v6/public-files/44/view/', 'http://127.0.0.1:5000/testfiles/abc/', 'https://cdn.example/template.png']);
10
10
  });
11
- test('templateDownloadHref prefers the file download URL', function () {
11
+ test('templateDownloadHref uses a stable public download link', function () {
12
12
  expect(templateDownloadHref({
13
13
  file: {
14
14
  id: 44,
15
+ viewUrl: '/testfiles/abc/',
16
+ downloadUrl: 'https://bucket.s3.amazonaws.com/file?X-Amz-Expires=604800'
17
+ }
18
+ }, 'http://127.0.0.1:5000/v6/')).toBe('http://127.0.0.1:5000/v6/public-files/44/download/');
19
+ });
20
+ test('templateDownloadHref keeps a direct download URL when the file has no id', function () {
21
+ expect(templateDownloadHref({
22
+ file: {
15
23
  viewUrl: '/testfiles/abc/',
16
24
  downloadUrl: '/files/44/download/'
17
25
  }
18
26
  }, 'http://127.0.0.1:5000/v6/')).toBe('http://127.0.0.1:5000/files/44/download/');
19
27
  });
20
- test('templateDownloadHref falls back to the public view', function () {
28
+ test('templateDownloadHref falls back to the public view when nothing else is available', function () {
21
29
  expect(templateDownloadHref({
22
30
  file: {
23
- id: 44,
24
31
  viewUrl: '/testfiles/abc/'
25
32
  }
26
- }, 'http://127.0.0.1:5000/v6/')).toBe('http://127.0.0.1:5000/v6/public-files/44/view/');
33
+ }, 'http://127.0.0.1:5000/v6/')).toBe('http://127.0.0.1:5000/testfiles/abc/');
27
34
  });
28
35
  test('wrapLines keeps a short phrase on one line', function () {
29
36
  expect(wrapLines('James was here', 400, function (value) {
@@ -92,4 +99,4 @@ test('captureStageArtboard crops the fitted artboard at native resolution', func
92
99
  height: 400
93
100
  });
94
101
  });
95
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBseUtvbnZhT2JqZWN0VHJhbnNmb3JtIiwiY2FwdHVyZVN0YWdlQXJ0Ym9hcmQiLCJ0ZW1wbGF0ZURvd25sb2FkSHJlZiIsInRlbXBsYXRlSW1hZ2VTb3VyY2VzIiwid3JhcExpbmVzIiwidGVzdCIsImV4cGVjdCIsImZpbGUiLCJpZCIsInZpZXdVcmwiLCJjYWNoZWRWaWV3VXJsIiwidG9FcXVhbCIsImRvd25sb2FkVXJsIiwidG9CZSIsInZhbHVlIiwibGVuZ3RoIiwiY2FsbHMiLCJjdHgiLCJ0cmFuc2xhdGUiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIkFycmF5IiwiX2tleSIsInB1c2giLCJyb3RhdGUiLCJfbGVuMiIsIl9rZXkyIiwic2NhbGUiLCJfbGVuMyIsIl9rZXkzIiwieCIsInkiLCJyb3RhdGlvbiIsInNjYWxlWCIsInNjYWxlWSIsInRvQmVDbG9zZVRvIiwiTWF0aCIsIlBJIiwic3RhZ2UiLCJ0b0RhdGFVUkwiLCJqZXN0IiwiZm4iLCJ3aWR0aCIsImhlaWdodCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwibWltZVR5cGUiLCJwaXhlbFJhdGlvIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0RXhwb3J0LnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwbHlLb252YU9iamVjdFRyYW5zZm9ybSxcbiAgY2FwdHVyZVN0YWdlQXJ0Ym9hcmQsXG4gIHRlbXBsYXRlRG93bmxvYWRIcmVmLFxuICB0ZW1wbGF0ZUltYWdlU291cmNlcyxcbiAgd3JhcExpbmVzLFxufSBmcm9tICcuL2RyYWZ0RXhwb3J0JztcblxudGVzdCgndGVtcGxhdGVJbWFnZVNvdXJjZXMgcHJlZmVycyB0aGUgcHVibGljIGZpbGUgdmlldyBhbmQgcmVzb2x2ZXMgcmVsYXRpdmUgVVJMcycsICgpID0+IHtcbiAgZXhwZWN0KHRlbXBsYXRlSW1hZ2VTb3VyY2VzKHtcbiAgICBmaWxlOiB7XG4gICAgICBpZDogNDQsXG4gICAgICB2aWV3VXJsOiAnL3Rlc3RmaWxlcy9hYmMvJyxcbiAgICAgIGNhY2hlZFZpZXdVcmw6ICdodHRwczovL2Nkbi5leGFtcGxlL3RlbXBsYXRlLnBuZycsXG4gICAgfSxcbiAgfSwgJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Ni8nKSkudG9FcXVhbChbXG4gICAgJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Ni9wdWJsaWMtZmlsZXMvNDQvdmlldy8nLFxuICAgICdodHRwOi8vMTI3LjAuMC4xOjUwMDAvdGVzdGZpbGVzL2FiYy8nLFxuICAgICdodHRwczovL2Nkbi5leGFtcGxlL3RlbXBsYXRlLnBuZycsXG4gIF0pO1xufSk7XG5cbnRlc3QoJ3RlbXBsYXRlRG93bmxvYWRIcmVmIHByZWZlcnMgdGhlIGZpbGUgZG93bmxvYWQgVVJMJywgKCkgPT4ge1xuICBleHBlY3QodGVtcGxhdGVEb3dubG9hZEhyZWYoe1xuICAgIGZpbGU6IHtcbiAgICAgIGlkOiA0NCxcbiAgICAgIHZpZXdVcmw6ICcvdGVzdGZpbGVzL2FiYy8nLFxuICAgICAgZG93bmxvYWRVcmw6ICcvZmlsZXMvNDQvZG93bmxvYWQvJyxcbiAgICB9LFxuICB9LCAnaHR0cDovLzEyNy4wLjAuMTo1MDAwL3Y2LycpKS50b0JlKCdodHRwOi8vMTI3LjAuMC4xOjUwMDAvZmlsZXMvNDQvZG93bmxvYWQvJyk7XG59KTtcblxudGVzdCgndGVtcGxhdGVEb3dubG9hZEhyZWYgZmFsbHMgYmFjayB0byB0aGUgcHVibGljIHZpZXcnLCAoKSA9PiB7XG4gIGV4cGVjdCh0ZW1wbGF0ZURvd25sb2FkSHJlZih7XG4gICAgZmlsZTogeyBpZDogNDQsIHZpZXdVcmw6ICcvdGVzdGZpbGVzL2FiYy8nIH0sXG4gIH0sICdodHRwOi8vMTI3LjAuMC4xOjUwMDAvdjYvJykpLnRvQmUoJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Ni9wdWJsaWMtZmlsZXMvNDQvdmlldy8nKTtcbn0pO1xuXG50ZXN0KCd3cmFwTGluZXMga2VlcHMgYSBzaG9ydCBwaHJhc2Ugb24gb25lIGxpbmUnLCAoKSA9PiB7XG4gIGV4cGVjdCh3cmFwTGluZXMoJ0phbWVzIHdhcyBoZXJlJywgNDAwLCAodmFsdWUpID0+IHZhbHVlLmxlbmd0aCAqIDEwKSkudG9FcXVhbChbXG4gICAgJ0phbWVzIHdhcyBoZXJlJyxcbiAgXSk7XG59KTtcblxudGVzdCgnd3JhcExpbmVzIGJyZWFrcyBvbiB3b3JkIGJvdW5kYXJpZXMgbGlrZSB0aGUgZGVzaWduZXIgY2FudmFzJywgKCkgPT4ge1xuICBleHBlY3Qod3JhcExpbmVzKCdKYW1lcyB3YXMgaGVyZScsIDgwLCAodmFsdWUpID0+IHZhbHVlLmxlbmd0aCAqIDEwKSkudG9FcXVhbChbXG4gICAgJ0phbWVzJyxcbiAgICAnd2FzIGhlcmUnLFxuICBdKTtcbn0pO1xuXG50ZXN0KCdhcHBseUtvbnZhT2JqZWN0VHJhbnNmb3JtIHVzZXMgdGhlIHRvcC1sZWZ0IG9yaWdpbiBsaWtlIEtvbnZhJywgKCkgPT4ge1xuICBjb25zdCBjYWxsczogQXJyYXk8W3N0cmluZywgbnVtYmVyW11dPiA9IFtdO1xuICBjb25zdCBjdHggPSB7XG4gICAgdHJhbnNsYXRlOiAoLi4uYXJnczogbnVtYmVyW10pID0+IGNhbGxzLnB1c2goWyd0cmFuc2xhdGUnLCBhcmdzXSksXG4gICAgcm90YXRlOiAoLi4uYXJnczogbnVtYmVyW10pID0+IGNhbGxzLnB1c2goWydyb3RhdGUnLCBhcmdzXSksXG4gICAgc2NhbGU6ICguLi5hcmdzOiBudW1iZXJbXSkgPT4gY2FsbHMucHVzaChbJ3NjYWxlJywgYXJnc10pLFxuICB9O1xuICBhcHBseUtvbnZhT2JqZWN0VHJhbnNmb3JtKGN0eCwge1xuICAgIHg6IDQwLFxuICAgIHk6IDgwLFxuICAgIHJvdGF0aW9uOiA5MCxcbiAgICBzY2FsZVg6IDIsXG4gICAgc2NhbGVZOiAxLFxuICB9KTtcbiAgZXhwZWN0KGNhbGxzWzBdKS50b0VxdWFsKFsndHJhbnNsYXRlJywgWzQwLCA4MF1dKTtcbiAgZXhwZWN0KGNhbGxzWzFdWzBdKS50b0JlKCdyb3RhdGUnKTtcbiAgZXhwZWN0KGNhbGxzWzFdWzFdWzBdKS50b0JlQ2xvc2VUbyhNYXRoLlBJIC8gMik7XG4gIGV4cGVjdChjYWxsc1syXSkudG9FcXVhbChbJ3NjYWxlJywgWzIsIDFdXSk7XG59KTtcblxudGVzdCgnY2FwdHVyZVN0YWdlQXJ0Ym9hcmQgY3JvcHMgdGhlIGZpdHRlZCBhcnRib2FyZCBhdCBuYXRpdmUgcmVzb2x1dGlvbicsICgpID0+IHtcbiAgY29uc3Qgc3RhZ2UgPSB7XG4gICAgdG9EYXRhVVJMOiBqZXN0LmZuKCgpID0+ICdkYXRhOmltYWdlL3BuZzthcnRib2FyZCcpLFxuICB9O1xuICBleHBlY3QoY2FwdHVyZVN0YWdlQXJ0Ym9hcmQoXG4gICAgc3RhZ2UsXG4gICAgeyB4OiAxMiwgeTogMjQsIHNjYWxlOiAwLjUgfSxcbiAgICB7IHdpZHRoOiAyMDAwLCBoZWlnaHQ6IDgwMCB9LFxuICApKS50b0JlKCdkYXRhOmltYWdlL3BuZzthcnRib2FyZCcpO1xuICBleHBlY3Qoc3RhZ2UudG9EYXRhVVJMKS50b0hhdmVCZWVuQ2FsbGVkV2l0aCh7XG4gICAgbWltZVR5cGU6ICdpbWFnZS9wbmcnLFxuICAgIHBpeGVsUmF0aW86IDIsXG4gICAgeDogMTIsXG4gICAgeTogMjQsXG4gICAgd2lkdGg6IDEwMDAsXG4gICAgaGVpZ2h0OiA0MDAsXG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLHlCQUF5QixFQUN6QkMsb0JBQW9CLEVBQ3BCQyxvQkFBb0IsRUFDcEJDLG9CQUFvQixFQUNwQkMsU0FBUyxRQUNKLGVBQWU7QUFFdEJDLElBQUksQ0FBQyw4RUFBOEUsRUFBRSxZQUFNO0VBQ3pGQyxNQUFNLENBQUNILG9CQUFvQixDQUFDO0lBQzFCSSxJQUFJLEVBQUU7TUFDSkMsRUFBRSxFQUFFLEVBQUU7TUFDTkMsT0FBTyxFQUFFLGlCQUFpQjtNQUMxQkMsYUFBYSxFQUFFO0lBQ2pCO0VBQ0YsQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQ0MsT0FBTyxDQUFDLENB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QUFDaUIsR0FBRyxFQUFFO0lBQzdCYyxDQUFDLEVBQUUsRUFBRTtJQUNMQyxDQUFDLEVBQUUsRUFBRTtJQUNMQyxRQUFRLEVBQUUsRUFBRTtJQUNaQyxNQUFNLEVBQUUsQ0FBQztJQUNUQyxNQUFNLEVBQUU7RUFDVixDQUFDLENBQUM7RUFDRjdCLE1BQU0sQ0FBQ1UsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNMLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0VBQ2pETCxNQUFNLENBQUNVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDO0VBQ2xDUCxNQUFNLENBQUNVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDb0IsV0FBVyxDQUFDQyxJQUFJLENBQUNDLEVBQUUsR0FBRyxDQUFDLENBQUM7RUFDL0NoQyxNQUFNLENBQUNVLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDTCxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3QyxDQUFDLENBQUM7QUFFRk4sSUFBSSxDQUFDLHFFQUFxRSxFQUFFLFlBQU07RUFDaEYsSUFBTWtDLEtBQUssR0FBRztJQUNaQyxTQUFTLEVBQUVDLElBQUksQ0FBQ0MsRUFBRSxDQUFDO01BQUEsT0FBTSx5QkFBeUI7SUFBQTtFQUNwRCxDQUFDO0VBQ0RwQyxNQUFNLENBQUNMLG9CQUFvQixDQUN6QnNDLEtBQUssRUFDTDtJQUFFUixDQUFDLEVBQUUsRUFBRTtJQUFFQyxDQUFDLEVBQUUsRUFBRTtJQUFFSixLQUFLLEVBQUU7RUFBSSxDQUFDLEVBQzVCO0lBQUVlLEtBQUssRUFBRSxJQUFJO0lBQUVDLE1BQU0sRUFBRTtFQUFJLENBQzdCLENBQUMsQ0FBQyxDQUFDL0IsSUFBSSxDQUFDLHlCQUF5QixDQUFDO0VBQ2xDUCxNQUFNLENBQUNpQyxLQUFLLENBQUNDLFNBQVMsQ0FBQyxDQUFDSyxvQkFBb0IsQ0FBQztJQUMzQ0MsUUFBUSxFQUFFLFdBQVc7SUFDckJDLFVBQVUsRUFBRSxDQUFDO0lBQ2JoQixDQUFDLEVBQUUsRUFBRTtJQUNMQyxDQUFDLEVBQUUsRUFBRTtJQUNMVyxLQUFLLEVBQUUsSUFBSTtJQUNYQyxNQUFNLEVBQUU7RUFDVixDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBseUtvbnZhT2JqZWN0VHJhbnNmb3JtIiwiY2FwdHVyZVN0YWdlQXJ0Ym9hcmQiLCJ0ZW1wbGF0ZURvd25sb2FkSHJlZiIsInRlbXBsYXRlSW1hZ2VTb3VyY2VzIiwid3JhcExpbmVzIiwidGVzdCIsImV4cGVjdCIsImZpbGUiLCJpZCIsInZpZXdVcmwiLCJjYWNoZWRWaWV3VXJsIiwidG9FcXVhbCIsImRvd25sb2FkVXJsIiwidG9CZSIsInZhbHVlIiwibGVuZ3RoIiwiY2FsbHMiLCJjdHgiLCJ0cmFuc2xhdGUiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIkFycmF5IiwiX2tleSIsInB1c2giLCJyb3RhdGUiLCJfbGVuMiIsIl9rZXkyIiwic2NhbGUiLCJfbGVuMyIsIl9rZXkzIiwieCIsInkiLCJyb3RhdGlvbiIsInNjYWxlWCIsInNjYWxlWSIsInRvQmVDbG9zZVRvIiwiTWF0aCIsIlBJIiwic3RhZ2UiLCJ0b0RhdGFVUkwiLCJqZXN0IiwiZm4iLCJ3aWR0aCIsImhlaWdodCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwibWltZVR5cGUiLCJwaXhlbFJhdGlvIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2RyYWZ0RXhwb3J0LnRlc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYXBwbHlLb252YU9iamVjdFRyYW5zZm9ybSxcbiAgY2FwdHVyZVN0YWdlQXJ0Ym9hcmQsXG4gIHRlbXBsYXRlRG93bmxvYWRIcmVmLFxuICB0ZW1wbGF0ZUltYWdlU291cmNlcyxcbiAgd3JhcExpbmVzLFxufSBmcm9tICcuL2RyYWZ0RXhwb3J0JztcblxudGVzdCgndGVtcGxhdGVJbWFnZVNvdXJjZXMgcHJlZmVycyB0aGUgcHVibGljIGZpbGUgdmlldyBhbmQgcmVzb2x2ZXMgcmVsYXRpdmUgVVJMcycsICgpID0+IHtcbiAgZXhwZWN0KHRlbXBsYXRlSW1hZ2VTb3VyY2VzKHtcbiAgICBmaWxlOiB7XG4gICAgICBpZDogNDQsXG4gICAgICB2aWV3VXJsOiAnL3Rlc3RmaWxlcy9hYmMvJyxcbiAgICAgIGNhY2hlZFZpZXdVcmw6ICdodHRwczovL2Nkbi5leGFtcGxlL3RlbXBsYXRlLnBuZycsXG4gICAgfSxcbiAgfSwgJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Ni8nKSkudG9FcXVhbChbXG4gICAgJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Ni9wdWJsaWMtZmlsZXMvNDQvdmlldy8nLFxuICAgICdodHRwOi8vMTI3LjAuMC4xOjUwMDAvdGVzdGZpbGVzL2FiYy8nLFxuICAgICdodHRwczovL2Nkbi5leGFtcGxlL3RlbXBsYXRlLnBuZycsXG4gIF0pO1xufSk7XG5cbnRlc3QoJ3RlbXBsYXRlRG93bmxvYWRIcmVmIHVzZXMgYSBzdGFibGUgcHVibGljIGRvd25sb2FkIGxpbmsnLCAoKSA9PiB7XG4gIGV4cGVjdCh0ZW1wbGF0ZURvd25sb2FkSHJlZih7XG4gICAgZmlsZToge1xuICAgICAgaWQ6IDQ0LFxuICAgICAgdmlld1VybDogJy90ZXN0ZmlsZXMvYWJjLycsXG4gICAgICBkb3dubG9hZFVybDogJ2h0dHBzOi8vYnVja2V0LnMzLmFtYXpvbmF3cy5jb20vZmlsZT9YLUFtei1FeHBpcmVzPTYwNDgwMCcsXG4gICAgfSxcbiAgfSwgJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Ni8nKSkudG9CZShcbiAgICAnaHR0cDovLzEyNy4wLjAuMTo1MDAwL3Y2L3B1YmxpYy1maWxlcy80NC9kb3dubG9hZC8nLFxuICApO1xufSk7XG5cbnRlc3QoJ3RlbXBsYXRlRG93bmxvYWRIcmVmIGtlZXBzIGEgZGlyZWN0IGRvd25sb2FkIFVSTCB3aGVuIHRoZSBmaWxlIGhhcyBubyBpZCcsICgpID0+IHtcbiAgZXhwZWN0KHRlbXBsYXRlRG93bmxvYWRIcmVmKHtcbiAgICBmaWxlOiB7XG4gICAgICB2aWV3VXJsOiAnL3Rlc3RmaWxlcy9hYmMvJyxcbiAgICAgIGRvd25sb2FkVXJsOiAnL2ZpbGVzLzQ0L2Rvd25sb2FkLycsXG4gICAgfSxcbiAgfSwgJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC92Ni8nKSkudG9CZSgnaHR0cDovLzEyNy4wLjAuMTo1MDAwL2ZpbGVzLzQ0L2Rvd25sb2FkLycpO1xufSk7XG5cbnRlc3QoJ3RlbXBsYXRlRG93bmxvYWRIcmVmIGZhbGxzIGJhY2sgdG8gdGhlIHB1YmxpYyB2aWV3IHdoZW4gbm90aGluZyBlbHNlIGlzIGF2YWlsYWJsZScsICgpID0+IHtcbiAgZXhwZWN0KHRlbXBsYXRlRG93bmxvYWRIcmVmKHtcbiAgICBmaWxlOiB7IHZpZXdVcmw6ICcvdGVzdGZpbGVzL2FiYy8nIH0sXG4gIH0sICdodHRwOi8vMTI3LjAuMC4xOjUwMDAvdjYvJykpLnRvQmUoJ2h0dHA6Ly8xMjcuMC4wLjE6NTAwMC90ZXN0ZmlsZXMvYWJjLycpO1xufSk7XG5cbnRlc3QoJ3dyYXBMaW5lcyBrZWVwcyBhIHNob3J0IHBocmFzZSBvbiBvbmUgbGluZScsICgpID0+IHtcbiAgZXhwZWN0KHdyYXBMaW5lcygnSmFtZXMgd2FzIGhlcmUnLCA0MDAsICh2YWx1ZSkgPT4gdmFsdWUubGVuZ3RoICogMTApKS50b0VxdWFsKFtcbiAgICAnSmFtZXMgd2FzIGhlcmUnLFxuICBdKTtcbn0pO1xuXG50ZXN0KCd3cmFwTGluZXMgYnJlYWtzIG9uIHdvcmQgYm91bmRhcmllcyBsaWtlIHRoZSBkZXNpZ25lciBjYW52YXMnLCAoKSA9PiB7XG4gIGV4cGVjdCh3cmFwTGluZXMoJ0phbWVzIHdhcyBoZXJlJywgODAsICh2YWx1ZSkgPT4gdmFsdWUubGVuZ3RoICogMTApKS50b0VxdWFsKFtcbiAgICAnSmFtZXMnLFxuICAgICd3YXMgaGVyZScsXG4gIF0pO1xufSk7XG5cbnRlc3QoJ2FwcGx5S29udmFPYmplY3RUcmFuc2Zvcm0gdXNlcyB0aGUgdG9wLWxlZnQgb3JpZ2luIGxpa2UgS29udmEnLCAoKSA9PiB7XG4gIGNvbnN0IGNhbGxzOiBBcnJheTxbc3RyaW5nLCBudW1iZXJbXV0+ID0gW107XG4gIGNvbnN0IGN0eCA9IHtcbiAgICB0cmFuc2xhdGU6ICguLi5hcmdzOiBudW1iZXJbXSkgPT4gY2FsbHMucHVzaChbJ3RyYW5zbGF0ZScsIGFyZ3NdKSxcbiAgICByb3RhdGU6ICguLi5hcmdzOiBudW1iZXJbXSkgPT4gY2FsbHMucHVzaChbJ3JvdGF0ZScsIGFyZ3NdKSxcbiAgICBzY2FsZTogKC4uLmFyZ3M6IG51bWJlcltdKSA9PiBjYWxscy5wdXNoKFsnc2NhbGUnLCBhcmdzXSksXG4gIH07XG4gIGFwcGx5S29udmFPYmplY3RUcmFuc2Zvcm0oY3R4LCB7XG4gICAgeDogNDAsXG4gICAgeTogODAsXG4gICAgcm90YXRpb246IDkwLFxuICAgIHNjYWxlWDogMixcbiAgICBzY2FsZVk6IDEsXG4gIH0pO1xuICBleHBlY3QoY2FsbHNbMF0pLnRvRXF1YWwoWyd0cmFuc2xhdGUnLCBbNDAsIDgwXV0pO1xuICBleHBlY3QoY2FsbHNbMV1bMF0pLnRvQmUoJ3JvdGF0ZScpO1xuICBleHBlY3QoY2FsbHNbMV1bMV1bMF0pLnRvQmVDbG9zZVRvKE1hdGguUEkgLyAyKTtcbiAgZXhwZWN0KGNhbGxzWzJdKS50b0VxdWFsKFsnc2NhbGUnLCBbMiwgMV1dKTtcbn0pO1xuXG50ZXN0KCdjYXB0dXJlU3RhZ2VBcnRib2FyZCBjcm9wcyB0aGUgZml0dGVkIGFydGJvYXJkIGF0IG5hdGl2ZSByZXNvbHV0aW9uJywgKCkgPT4ge1xuICBjb25zdCBzdGFnZSA9IHtcbiAgICB0b0RhdGFVUkw6IGplc3QuZm4oKCkgPT4gJ2RhdGE6aW1hZ2UvcG5nO2FydGJvYXJkJyksXG4gIH07XG4gIGV4cGVjdChjYXB0dXJlU3RhZ2VBcnRib2FyZChcbiAgICBzdGFnZSxcbiAgICB7IHg6IDEyLCB5OiAyNCwgc2NhbGU6IDAuNSB9LFxuICAgIHsgd2lkdGg6IDIwMDAsIGhlaWdodDogODAwIH0sXG4gICkpLnRvQmUoJ2RhdGE6aW1hZ2UvcG5nO2FydGJvYXJkJyk7XG4gIGV4cGVjdChzdGFnZS50b0RhdGFVUkwpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKHtcbiAgICBtaW1lVHlwZTogJ2ltYWdlL3BuZycsXG4gICAgcGl4ZWxSYXRpbzogMixcbiAgICB4OiAxMixcbiAgICB5OiAyNCxcbiAgICB3aWR0aDogMTAwMCxcbiAgICBoZWlnaHQ6IDQwMCxcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEseUJBQXlCLEVBQ3pCQyxvQkFBb0IsRUFDcEJDLG9CQUFvQixFQUNwQkMsb0JBQW9CLEVBQ3BCQyxTQUFTLFFBQ0osZUFBZTtBQUV0QkMsSUFBSSxDQUFDLDhFQUE4RSxFQUFFLFlBQU07RUFDekZDLE1BQU0sQ0FBQ0gsb0JBQW9CLENBQUM7SUFDMUJJLElBQUksRUFBRTtNQUNKQyxFQUFFLEVBQUUsRUFBRTtNQUNOQyxPQUFPLEVBQUUsaUJBQWlCO01BQzFCQyxhQUFhLEVBQUU7SUFDakI7RUFDRixDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsQ0FDdkMsZ0RBQWdELEVBQ2hELHNDQUFzQyxFQUN0QyxrQ0FBa0MsQ0FDbkMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGTixJQUFJLENBQUMseURBQXlELEVBQUUsWUFBTTtFQUNwRUMsTUFBTSxDQUFDSixvQkFBb0IsQ0FBQztJQUMxQkssSUFBSSxFQUFFO01BQ0pDLEVBQUUsRUFBRSxFQUFFO01BQ05DLE9BQU8sRUFBRSxpQkFBaUI7TUFDMUJHLFdBQVcsRUFBRTtJQUNmO0VBQ0YsQ0FBQyxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUNuQyxvREFDRixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUZSLElBQUksQ0FBQywwRUFBMEUsRUFBRSxZQUFNO0VBQ3JGQyxNQUFNLENBQUNKLG9CQUFvQixDQUFDO0lBQzFCSyxJQUFJLEVBQUU7TUFDSkUsT0FBTyxFQUFFLGlCQUFpQjtNQUMxQkcsV0FBVyxFQUFFO0lBQ2Y7RUFDRixDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsMENBQTBDLENBQUM7QUFDbkYsQ0FBQyxDQUFDO0FBRUZSLElBQUksQ0FBQyxtRkFBbUYs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
@@ -19,6 +19,7 @@ export declare function blankTemplate(product?: any): {
19
19
  export declare function templatesForGroup(product: any, independentVariations: any[], groupVariations: any[]): any[];
20
20
  /** Blank templates the customer can download for the options currently selected. */
21
21
  export declare function downloadableDraftTemplates(product: any, formValues: any): any[];
22
+ export declare function canvasKindForField(field: any): DraftCanvasObjectType | null;
22
23
  export declare function canvasKindForFieldType(fieldType: any): DraftCanvasObjectType | null;
23
24
  export declare function variationCanvasContent(variation: any): {
24
25
  kind: DraftCanvasObjectType | null;