payload 3.0.0-alpha.14 → 3.0.0-alpha.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAOrB,eAAO,MAAM,eAAe,6BAa3B,CAAA;;AAED,wBAmKE"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AAOrB,eAAO,MAAM,eAAe,6BAa3B,CAAA;;AAED,wBAoKE"}
@@ -160,6 +160,7 @@ const _default = _joi.default.object({
160
160
  }
161
161
  return value;
162
162
  }),
163
+ sharp: _joi.default.any(),
163
164
  telemetry: _joi.default.boolean(),
164
165
  typescript: _joi.default.object({
165
166
  declare: _joi.default.boolean(),
@@ -168,4 +169,4 @@ const _default = _joi.default.object({
168
169
  upload: _joi.default.object()
169
170
  });
170
171
 
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqb2kgZnJvbSAnam9pJ1xuXG5pbXBvcnQgeyBhZG1pblZpZXdTY2hlbWEgfSBmcm9tICcuL3NoYXJlZC9hZG1pblZpZXdTY2hlbWEnXG5pbXBvcnQgeyBjb21wb25lbnRTY2hlbWEsIGxpdmVQcmV2aWV3U2NoZW1hIH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50U2NoZW1hJ1xuXG5jb25zdCBjb21wb25lbnQgPSBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKS51bmtub3duKCksIGpvaS5mdW5jKCkpXG5cbmV4cG9ydCBjb25zdCBlbmRwb2ludHNTY2hlbWEgPSBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICBqb2kuYXJyYXkoKS5pdGVtcyhcbiAgICBqb2kub2JqZWN0KHtcbiAgICAgIGN1c3RvbTogam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBqb2kuYW55KCkpLFxuICAgICAgaGFuZGxlcjogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKSwgam9pLmZ1bmMoKSksXG4gICAgICBtZXRob2Q6IGpvaVxuICAgICAgICAuc3RyaW5nKClcbiAgICAgICAgLnZhbGlkKCdnZXQnLCAnaGVhZCcsICdwb3N0JywgJ3B1dCcsICdwYXRjaCcsICdkZWxldGUnLCAnY29ubmVjdCcsICdvcHRpb25zJyksXG4gICAgICBwYXRoOiBqb2kuc3RyaW5nKCksXG4gICAgICByb290OiBqb2kuYm9vbCgpLFxuICAgIH0pLFxuICApLFxuICBqb2kuYm9vbGVhbigpLFxuKVxuXG5leHBvcnQgZGVmYXVsdCBqb2kub2JqZWN0KHtcbiAgYWRtaW46IGpvaS5vYmplY3Qoe1xuICAgIGF1dG9Mb2dpbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgIGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgICAgZW1haWw6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgcGFzc3dvcmQ6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgcHJlZmlsbE9ubHk6IGpvaS5ib29sZWFuKCksXG4gICAgICB9KSxcbiAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgKSxcbiAgICBhdmF0YXI6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnQpLFxuICAgIGJ1aWxkUGF0aDogam9pLnN0cmluZygpLFxuICAgIGNvbXBvbmVudHM6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIE5hdjogY29tcG9uZW50LFxuICAgICAgYWN0aW9uczogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIGFmdGVyRGFzaGJvYXJkOiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnQpLFxuICAgICAgYWZ0ZXJMb2dpbjogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIGFmdGVyTmF2TGlua3M6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudCksXG4gICAgICBiZWZvcmVEYXNoYm9hcmQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudCksXG4gICAgICBiZWZvcmVMb2dpbjogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIGJlZm9yZU5hdkxpbmtzOiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnQpLFxuICAgICAgZ3JhcGhpY3M6IGpvaS5vYmplY3Qoe1xuICAgICAgICBJY29uOiBjb21wb25lbnQsXG4gICAgICAgIExvZ286IGNvbXBvbmVudCxcbiAgICAgIH0pLFxuICAgICAgbG9nb3V0OiBqb2kub2JqZWN0KHtcbiAgICAgICAgQnV0dG9uOiBjb21wb25lbnQsXG4gICAgICB9KSxcbiAgICAgIHByb3ZpZGVyczogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIHZpZXdzOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICBBY2NvdW50OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGNvbXBvbmVudCwgYWRtaW5WaWV3U2NoZW1hKSxcbiAgICAgICAgICBEYXNoYm9hcmQ6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoY29tcG9uZW50LCBhZG1pblZpZXdTY2hlbWEpLFxuICAgICAgICB9KSxcbiAgICAgICAgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBjb21wb25lbnQpLFxuICAgICAgKSxcbiAgICB9KSxcbiAgICBkYXRlRm9ybWF0OiBqb2kuc3RyaW5nKCksXG4gICAgZGlzYWJsZTogam9pLmJvb2woKSxcbiAgICBpbmFjdGl2aXR5Um91dGU6IGpvaS5zdHJpbmcoKSxcbiAgICBsaXZlUHJldmlldzogam9pLm9iamVjdCh7XG4gICAgICAuLi5saXZlUHJldmlld1NjaGVtYSxcbiAgICAgIGNvbGxlY3Rpb25zOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpLFxuICAgICAgZ2xvYmFsczogam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpKSxcbiAgICB9KSxcbiAgICBsb2dvdXRSb3V0ZTogam9pLnN0cmluZygpLFxuICAgIG1ldGE6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGZhdmljb246IGpvaS5zdHJpbmcoKSxcbiAgICAgIG9nSW1hZ2U6IGpvaS5zdHJpbmcoKSxcbiAgICAgIHRpdGxlU3VmZml4OiBqb2kuc3RyaW5nKCksXG4gICAgfSksXG4gICAgdXNlcjogam9pLnN0cmluZygpLFxuICB9KSxcbiAgYmluOiBqb2kuYXJyYXkoKS5pdGVtcyhcbiAgICBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICBrZXk6IGpvaS5zdHJpbmcoKSxcbiAgICAgIHNjcmlwdFBhdGg6IGpvaS5zdHJpbmcoKSxcbiAgICB9KSxcbiAgKSxcbiAgY29sbGVjdGlvbnM6IGpvaS5hcnJheSgpLFxuICBjb29raWVQcmVmaXg6IGpvaS5zdHJpbmcoKSxcbiAgY29yczogW2pvaS5zdHJpbmcoKS52YWxpZCgnKicpLCBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpXSxcbiAgY3NyZjogam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpLmFsbG93KCcnKSkuc3BhcnNlKCksXG4gIGN1c3RvbTogam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBqb2kuYW55KCkpLFxuICBkYjogam9pLmFueSgpLFxuICBkZWJ1Zzogam9pLmJvb2xlYW4oKSxcbiAgZGVmYXVsdERlcHRoOiBqb2kubnVtYmVyKCkubWluKDApLm1heCgzMCksXG4gIGRlZmF1bHRNYXhUZXh0TGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIGVkaXRvcjogam9pXG4gICAgLm9iamVjdCgpXG4gICAgLnJlcXVpcmVkKClcbiAgICAua2V5cyh7XG4gICAgICBDZWxsQ29tcG9uZW50OiBjb21wb25lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgICAgIEZpZWxkQ29tcG9uZW50OiBjb21wb25lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgICAgIExhenlDZWxsQ29tcG9uZW50OiBqb2kuZnVuYygpLm9wdGlvbmFsKCksXG4gICAgICBMYXp5RmllbGRDb21wb25lbnQ6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIGFmdGVyUmVhZFByb21pc2U6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIG91dHB1dFNjaGVtYTogam9pLmZ1bmMoKS5vcHRpb25hbCgpLFxuICAgICAgcG9wdWxhdGlvblByb21pc2U6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLnJlcXVpcmVkKCksXG4gICAgfSlcbiAgICAudW5rbm93bigpLFxuICBlbWFpbDogam9pLm9iamVjdCgpLFxuICBlbmRwb2ludHM6IGVuZHBvaW50c1NjaGVtYSxcbiAgZ2xvYmFsczogam9pLmFycmF5KCksXG4gIGdyYXBoUUw6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICBkaXNhYmxlOiBqb2kuYm9vbGVhbigpLFxuICAgIGRpc2FibGVQbGF5Z3JvdW5kSW5Qcm9kdWN0aW9uOiBqb2kuYm9vbGVhbigpLFxuICAgIG1heENvbXBsZXhpdHk6IGpvaS5udW1iZXIoKSxcbiAgICBtdXRhdGlvbnM6IGpvaS5mdW5jdGlvbigpLFxuICAgIHF1ZXJpZXM6IGpvaS5mdW5jdGlvbigpLFxuICAgIHNjaGVtYU91dHB1dEZpbGU6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIGhvb2tzOiBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgYWZ0ZXJFcnJvcjogam9pLmZ1bmMoKSxcbiAgfSksXG4gIGkxOG46IGpvaS5vYmplY3QoKSxcbiAgaW5kZXhTb3J0YWJsZUZpZWxkczogam9pLmJvb2xlYW4oKSxcbiAgbG9jYWw6IGpvaS5ib29sZWFuKCksXG4gIGxvY2FsaXphdGlvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICBkZWZhdWx0TG9jYWxlOiBqb2kuc3RyaW5nKCksXG4gICAgICBmYWxsYmFjazogam9pLmJvb2xlYW4oKSxcbiAgICAgIGxvY2FsZUNvZGVzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpLFxuICAgICAgbG9jYWxlczogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgICAgam9pLmFycmF5KCkuaXRlbXMoXG4gICAgICAgICAgam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgICAgICAgY29kZTogam9pLnN0cmluZygpLFxuICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgICAgIGxhYmVsOiBqb2lcbiAgICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAgIC50cnkoXG4gICAgICAgICAgICAgICAgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSksXG4gICAgICAgICAgICAgICAgam9pLnN0cmluZygpLFxuICAgICAgICAgICAgICAgIGpvaS52YWxpZChmYWxzZSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBydGw6IGpvaS5ib29sZWFuKCksXG4gICAgICAgICAgICB0b1N0cmluZzogam9pLmZ1bmMoKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICAgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpKSxcbiAgICAgICksXG4gICAgfSksXG4gICAgam9pLmJvb2xlYW4oKSxcbiAgKSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKS5taW4oMCkubWF4KDEwMCksXG4gIG9uSW5pdDogam9pLmZ1bmMoKSxcbiAgcGx1Z2luczogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gIHJvdXRlczogam9pLm9iamVjdCh7XG4gICAgYWRtaW46IGpvaS5zdHJpbmcoKSxcbiAgICBhcGk6IGpvaS5zdHJpbmcoKSxcbiAgICBncmFwaFFMOiBqb2kuc3RyaW5nKCksXG4gICAgZ3JhcGhRTFBsYXlncm91bmQ6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIHNlY3JldDogam9pLnN0cmluZygpLFxuICBzZXJ2ZXJVUkw6IGpvaVxuICAgIC5zdHJpbmcoKVxuICAgIC51cmkoKVxuICAgIC5hbGxvdygnJylcbiAgICAuY3VzdG9tKCh2YWx1ZSwgaGVscGVyKSA9PiB7XG4gICAgICBjb25zdCB1cmxXaXRob3V0UHJvdG9jb2wgPSB2YWx1ZS5zcGxpdCgnLy8nKVsxXVxuXG4gICAgICBpZiAoIXVybFdpdGhvdXRQcm90b2NvbCkge1xuICAgICAgICByZXR1cm4gaGVscGVyLm1lc3NhZ2Uoe1xuICAgICAgICAgIGN1c3RvbTogJ1lvdSBuZWVkIHRvIGluY2x1ZGUgZWl0aGVyIFwiaHR0cHM6Ly9cIiBvciBcImh0dHA6Ly9cIiBpbiB5b3VyIHNlcnZlclVSTC4nLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAodXJsV2l0aG91dFByb3RvY29sLmluZGV4T2YoJy8nKSA+IC0xKSB7XG4gICAgICAgIHJldHVybiBoZWxwZXIubWVzc2FnZSh7XG4gICAgICAgICAgY3VzdG9tOlxuICAgICAgICAgICAgJ1lvdXIgc2VydmVyVVJMIGNhbm5vdCBoYXZlIGEgcGF0aC4gSXQgY2FuIG9ubHkgY29udGFpbiBhIHByb3RvY29sLCBhIGRvbWFpbiwgYW5kIGFuIG9wdGlvbmFsIHBvcnQuJyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfSksXG4gIHRlbGVtZXRyeTogam9pLmJvb2xlYW4oKSxcbiAgdHlwZXNjcmlwdDogam9pLm9iamVjdCh7XG4gICAgZGVjbGFyZTogam9pLmJvb2xlYW4oKSxcbiAgICBvdXRwdXRGaWxlOiBqb2kuc3RyaW5nKCksXG4gIH0pLFxuICB1cGxvYWQ6IGpvaS5vYmplY3QoKSxcbn0pXG4iXSwibmFtZXMiOlsiZW5kcG9pbnRzU2NoZW1hIiwiY29tcG9uZW50Iiwiam9pIiwiYWx0ZXJuYXRpdmVzIiwidHJ5Iiwib2JqZWN0IiwidW5rbm93biIsImZ1bmMiLCJhcnJheSIsIml0ZW1zIiwiY3VzdG9tIiwicGF0dGVybiIsInN0cmluZyIsImFueSIsImhhbmRsZXIiLCJtZXRob2QiLCJ2YWxpZCIsInBhdGgiLCJyb290IiwiYm9vbCIsImJvb2xlYW4iLCJhZG1pbiIsImF1dG9Mb2dpbiIsImtleXMiLCJlbWFpbCIsInBhc3N3b3JkIiwicHJlZmlsbE9ubHkiLCJhdmF0YXIiLCJidWlsZFBhdGgiLCJjb21wb25lbnRzIiwiTmF2IiwiYWN0aW9ucyIsImFmdGVyRGFzaGJvYXJkIiwiYWZ0ZXJMb2dpbiIsImFmdGVyTmF2TGlua3MiLCJiZWZvcmVEYXNoYm9hcmQiLCJiZWZvcmVMb2dpbiIsImJlZm9yZU5hdkxpbmtzIiwiZ3JhcGhpY3MiLCJJY29uIiwiTG9nbyIsImxvZ291dCIsIkJ1dHRvbiIsInByb3ZpZGVycyIsInZpZXdzIiwiQWNjb3VudCIsImFkbWluVmlld1NjaGVtYSIsIkRhc2hib2FyZCIsImRhdGVGb3JtYXQiLCJkaXNhYmxlIiwiaW5hY3Rpdml0eVJvdXRlIiwibGl2ZVByZXZpZXciLCJsaXZlUHJldmlld1NjaGVtYSIsImNvbGxlY3Rpb25zIiwiZ2xvYmFscyIsImxvZ291dFJvdXRlIiwibWV0YSIsImZhdmljb24iLCJvZ0ltYWdlIiwidGl0bGVTdWZmaXgiLCJ1c2VyIiwiYmluIiwia2V5Iiwic2NyaXB0UGF0aCIsImNvb2tpZVByZWZpeCIsImNvcnMiLCJjc3JmIiwiYWxsb3ciLCJzcGFyc2UiLCJkYiIsImRlYnVnIiwiZGVmYXVsdERlcHRoIiwibnVtYmVyIiwibWluIiwibWF4IiwiZGVmYXVsdE1heFRleHRMZW5ndGgiLCJlZGl0b3IiLCJyZXF1aXJlZCIsIkNlbGxDb21wb25lbnQiLCJjb21wb25lbnRTY2hlbWEiLCJvcHRpb25hbCIsIkZpZWxkQ29tcG9uZW50IiwiTGF6eUNlbGxDb21wb25lbnQiLCJMYXp5RmllbGRDb21wb25lbnQiLCJhZnRlclJlYWRQcm9taXNlIiwib3V0cHV0U2NoZW1hIiwicG9wdWxhdGlvblByb21pc2UiLCJ2YWxpZGF0ZSIsImVuZHBvaW50cyIsImdyYXBoUUwiLCJkaXNhYmxlUGxheWdyb3VuZEluUHJvZHVjdGlvbiIsIm1heENvbXBsZXhpdHkiLCJtdXRhdGlvbnMiLCJmdW5jdGlvbiIsInF1ZXJpZXMiLCJzY2hlbWFPdXRwdXRGaWxlIiwiaG9va3MiLCJhZnRlckVycm9yIiwiaTE4biIsImluZGV4U29ydGFibGVGaWVsZHMiLCJsb2NhbCIsImxvY2FsaXphdGlvbiIsImRlZmF1bHRMb2NhbGUiLCJmYWxsYmFjayIsImxvY2FsZUNvZGVzIiwibG9jYWxlcyIsImNvZGUiLCJmYWxsYmFja0xvY2FsZSIsImxhYmVsIiwicnRsIiwidG9TdHJpbmciLCJtYXhEZXB0aCIsIm9uSW5pdCIsInBsdWdpbnMiLCJyb3V0ZXMiLCJhcGkiLCJncmFwaFFMUGxheWdyb3VuZCIsInNlY3JldCIsInNlcnZlclVSTCIsInVyaSIsInZhbHVlIiwiaGVscGVyIiwidXJsV2l0aG91dFByb3RvY29sIiwic3BsaXQiLCJtZXNzYWdlIiwiaW5kZXhPZiIsInRlbGVtZXRyeSIsInR5cGVzY3JpcHQiLCJkZWNsYXJlIiwib3V0cHV0RmlsZSIsInVwbG9hZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFzQkEsT0FtS0U7ZUFuS0Y7O0lBZmFBLGVBQWU7ZUFBZkE7Ozs0REFQRztpQ0FFZ0I7aUNBQ21COzs7Ozs7QUFFbkQsTUFBTUMsWUFBWUMsWUFBRyxDQUFDQyxZQUFZLEdBQUdDLEdBQUcsQ0FBQ0YsWUFBRyxDQUFDRyxNQUFNLEdBQUdDLE9BQU8sSUFBSUosWUFBRyxDQUFDSyxJQUFJO0FBRWxFLE1BQU1QLGtCQUFrQkUsWUFBRyxDQUFDQyxZQUFZLEdBQUdDLEdBQUcsQ0FDbkRGLFlBQUcsQ0FBQ00sS0FBSyxHQUFHQyxLQUFLLENBQ2ZQLFlBQUcsQ0FBQ0csTUFBTSxDQUFDO0lBQ1RLLFFBQVFSLFlBQUcsQ0FBQ0csTUFBTSxHQUFHTSxPQUFPLENBQUNULFlBQUcsQ0FBQ1UsTUFBTSxJQUFJVixZQUFHLENBQUNXLEdBQUc7SUFDbERDLFNBQVNaLFlBQUcsQ0FBQ0MsWUFBWSxHQUFHQyxHQUFHLENBQUNGLFlBQUcsQ0FBQ00sS0FBSyxHQUFHQyxLQUFLLENBQUNQLFlBQUcsQ0FBQ0ssSUFBSSxLQUFLTCxZQUFHLENBQUNLLElBQUk7SUFDdkVRLFFBQVFiLFlBQUcsQ0FDUlUsTUFBTSxHQUNOSSxLQUFLLENBQUMsT0FBTyxRQUFRLFFBQVEsT0FBTyxTQUFTLFVBQVUsV0FBVztJQUNyRUMsTUFBTWYsWUFBRyxDQUFDVSxNQUFNO0lBQ2hCTSxNQUFNaEIsWUFBRyxDQUFDaUIsSUFBSTtBQUNoQixLQUVGakIsWUFBRyxDQUFDa0IsT0FBTztNQUdiLFdBQWVsQixZQUFHLENBQUNHLE1BQU0sQ0FBQztJQUN4QmdCLE9BQU9uQixZQUFHLENBQUNHLE1BQU0sQ0FBQztRQUNoQmlCLFdBQVdwQixZQUFHLENBQUNDLFlBQVksR0FBR0MsR0FBRyxDQUMvQkYsWUFBRyxDQUFDRyxNQUFNLEdBQUdrQixJQUFJ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
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvc2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBqb2kgZnJvbSAnam9pJ1xuXG5pbXBvcnQgeyBhZG1pblZpZXdTY2hlbWEgfSBmcm9tICcuL3NoYXJlZC9hZG1pblZpZXdTY2hlbWEnXG5pbXBvcnQgeyBjb21wb25lbnRTY2hlbWEsIGxpdmVQcmV2aWV3U2NoZW1hIH0gZnJvbSAnLi9zaGFyZWQvY29tcG9uZW50U2NoZW1hJ1xuXG5jb25zdCBjb21wb25lbnQgPSBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5vYmplY3QoKS51bmtub3duKCksIGpvaS5mdW5jKCkpXG5cbmV4cG9ydCBjb25zdCBlbmRwb2ludHNTY2hlbWEgPSBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICBqb2kuYXJyYXkoKS5pdGVtcyhcbiAgICBqb2kub2JqZWN0KHtcbiAgICAgIGN1c3RvbTogam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBqb2kuYW55KCkpLFxuICAgICAgaGFuZGxlcjogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKSwgam9pLmZ1bmMoKSksXG4gICAgICBtZXRob2Q6IGpvaVxuICAgICAgICAuc3RyaW5nKClcbiAgICAgICAgLnZhbGlkKCdnZXQnLCAnaGVhZCcsICdwb3N0JywgJ3B1dCcsICdwYXRjaCcsICdkZWxldGUnLCAnY29ubmVjdCcsICdvcHRpb25zJyksXG4gICAgICBwYXRoOiBqb2kuc3RyaW5nKCksXG4gICAgICByb290OiBqb2kuYm9vbCgpLFxuICAgIH0pLFxuICApLFxuICBqb2kuYm9vbGVhbigpLFxuKVxuXG5leHBvcnQgZGVmYXVsdCBqb2kub2JqZWN0KHtcbiAgYWRtaW46IGpvaS5vYmplY3Qoe1xuICAgIGF1dG9Mb2dpbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgIGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgICAgZW1haWw6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgcGFzc3dvcmQ6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgcHJlZmlsbE9ubHk6IGpvaS5ib29sZWFuKCksXG4gICAgICB9KSxcbiAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgKSxcbiAgICBhdmF0YXI6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBjb21wb25lbnQpLFxuICAgIGJ1aWxkUGF0aDogam9pLnN0cmluZygpLFxuICAgIGNvbXBvbmVudHM6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIE5hdjogY29tcG9uZW50LFxuICAgICAgYWN0aW9uczogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIGFmdGVyRGFzaGJvYXJkOiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnQpLFxuICAgICAgYWZ0ZXJMb2dpbjogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIGFmdGVyTmF2TGlua3M6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudCksXG4gICAgICBiZWZvcmVEYXNoYm9hcmQ6IGpvaS5hcnJheSgpLml0ZW1zKGNvbXBvbmVudCksXG4gICAgICBiZWZvcmVMb2dpbjogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIGJlZm9yZU5hdkxpbmtzOiBqb2kuYXJyYXkoKS5pdGVtcyhjb21wb25lbnQpLFxuICAgICAgZ3JhcGhpY3M6IGpvaS5vYmplY3Qoe1xuICAgICAgICBJY29uOiBjb21wb25lbnQsXG4gICAgICAgIExvZ286IGNvbXBvbmVudCxcbiAgICAgIH0pLFxuICAgICAgbG9nb3V0OiBqb2kub2JqZWN0KHtcbiAgICAgICAgQnV0dG9uOiBjb21wb25lbnQsXG4gICAgICB9KSxcbiAgICAgIHByb3ZpZGVyczogam9pLmFycmF5KCkuaXRlbXMoY29tcG9uZW50KSxcbiAgICAgIHZpZXdzOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICBBY2NvdW50OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGNvbXBvbmVudCwgYWRtaW5WaWV3U2NoZW1hKSxcbiAgICAgICAgICBEYXNoYm9hcmQ6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoY29tcG9uZW50LCBhZG1pblZpZXdTY2hlbWEpLFxuICAgICAgICB9KSxcbiAgICAgICAgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBjb21wb25lbnQpLFxuICAgICAgKSxcbiAgICB9KSxcbiAgICBkYXRlRm9ybWF0OiBqb2kuc3RyaW5nKCksXG4gICAgZGlzYWJsZTogam9pLmJvb2woKSxcbiAgICBpbmFjdGl2aXR5Um91dGU6IGpvaS5zdHJpbmcoKSxcbiAgICBsaXZlUHJldmlldzogam9pLm9iamVjdCh7XG4gICAgICAuLi5saXZlUHJldmlld1NjaGVtYSxcbiAgICAgIGNvbGxlY3Rpb25zOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpLFxuICAgICAgZ2xvYmFsczogam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpKSxcbiAgICB9KSxcbiAgICBsb2dvdXRSb3V0ZTogam9pLnN0cmluZygpLFxuICAgIG1ldGE6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGZhdmljb246IGpvaS5zdHJpbmcoKSxcbiAgICAgIG9nSW1hZ2U6IGpvaS5zdHJpbmcoKSxcbiAgICAgIHRpdGxlU3VmZml4OiBqb2kuc3RyaW5nKCksXG4gICAgfSksXG4gICAgdXNlcjogam9pLnN0cmluZygpLFxuICB9KSxcbiAgYmluOiBqb2kuYXJyYXkoKS5pdGVtcyhcbiAgICBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICBrZXk6IGpvaS5zdHJpbmcoKSxcbiAgICAgIHNjcmlwdFBhdGg6IGpvaS5zdHJpbmcoKSxcbiAgICB9KSxcbiAgKSxcbiAgY29sbGVjdGlvbnM6IGpvaS5hcnJheSgpLFxuICBjb29raWVQcmVmaXg6IGpvaS5zdHJpbmcoKSxcbiAgY29yczogW2pvaS5zdHJpbmcoKS52YWxpZCgnKicpLCBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpXSxcbiAgY3NyZjogam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpLmFsbG93KCcnKSkuc3BhcnNlKCksXG4gIGN1c3RvbTogam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBqb2kuYW55KCkpLFxuICBkYjogam9pLmFueSgpLFxuICBkZWJ1Zzogam9pLmJvb2xlYW4oKSxcbiAgZGVmYXVsdERlcHRoOiBqb2kubnVtYmVyKCkubWluKDApLm1heCgzMCksXG4gIGRlZmF1bHRNYXhUZXh0TGVuZ3RoOiBqb2kubnVtYmVyKCksXG4gIGVkaXRvcjogam9pXG4gICAgLm9iamVjdCgpXG4gICAgLnJlcXVpcmVkKClcbiAgICAua2V5cyh7XG4gICAgICBDZWxsQ29tcG9uZW50OiBjb21wb25lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgICAgIEZpZWxkQ29tcG9uZW50OiBjb21wb25lbnRTY2hlbWEub3B0aW9uYWwoKSxcbiAgICAgIExhenlDZWxsQ29tcG9uZW50OiBqb2kuZnVuYygpLm9wdGlvbmFsKCksXG4gICAgICBMYXp5RmllbGRDb21wb25lbnQ6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIGFmdGVyUmVhZFByb21pc2U6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIG91dHB1dFNjaGVtYTogam9pLmZ1bmMoKS5vcHRpb25hbCgpLFxuICAgICAgcG9wdWxhdGlvblByb21pc2U6IGpvaS5mdW5jKCkub3B0aW9uYWwoKSxcbiAgICAgIHZhbGlkYXRlOiBqb2kuZnVuYygpLnJlcXVpcmVkKCksXG4gICAgfSlcbiAgICAudW5rbm93bigpLFxuICBlbWFpbDogam9pLm9iamVjdCgpLFxuICBlbmRwb2ludHM6IGVuZHBvaW50c1NjaGVtYSxcbiAgZ2xvYmFsczogam9pLmFycmF5KCksXG4gIGdyYXBoUUw6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICBkaXNhYmxlOiBqb2kuYm9vbGVhbigpLFxuICAgIGRpc2FibGVQbGF5Z3JvdW5kSW5Qcm9kdWN0aW9uOiBqb2kuYm9vbGVhbigpLFxuICAgIG1heENvbXBsZXhpdHk6IGpvaS5udW1iZXIoKSxcbiAgICBtdXRhdGlvbnM6IGpvaS5mdW5jdGlvbigpLFxuICAgIHF1ZXJpZXM6IGpvaS5mdW5jdGlvbigpLFxuICAgIHNjaGVtYU91dHB1dEZpbGU6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIGhvb2tzOiBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgYWZ0ZXJFcnJvcjogam9pLmZ1bmMoKSxcbiAgfSksXG4gIGkxOG46IGpvaS5vYmplY3QoKSxcbiAgaW5kZXhTb3J0YWJsZUZpZWxkczogam9pLmJvb2xlYW4oKSxcbiAgbG9jYWw6IGpvaS5ib29sZWFuKCksXG4gIGxvY2FsaXphdGlvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICBkZWZhdWx0TG9jYWxlOiBqb2kuc3RyaW5nKCksXG4gICAgICBmYWxsYmFjazogam9pLmJvb2xlYW4oKSxcbiAgICAgIGxvY2FsZUNvZGVzOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuc3RyaW5nKCkpLFxuICAgICAgbG9jYWxlczogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgICAgam9pLmFycmF5KCkuaXRlbXMoXG4gICAgICAgICAgam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgICAgICAgY29kZTogam9pLnN0cmluZygpLFxuICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IGpvaS5zdHJpbmcoKSxcbiAgICAgICAgICAgIGxhYmVsOiBqb2lcbiAgICAgICAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgICAgICAgIC50cnkoXG4gICAgICAgICAgICAgICAgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSksXG4gICAgICAgICAgICAgICAgam9pLnN0cmluZygpLFxuICAgICAgICAgICAgICAgIGpvaS52YWxpZChmYWxzZSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBydGw6IGpvaS5ib29sZWFuKCksXG4gICAgICAgICAgICB0b1N0cmluZzogam9pLmZ1bmMoKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKSxcbiAgICAgICAgam9pLmFycmF5KCkuaXRlbXMoam9pLnN0cmluZygpKSxcbiAgICAgICksXG4gICAgfSksXG4gICAgam9pLmJvb2xlYW4oKSxcbiAgKSxcbiAgbWF4RGVwdGg6IGpvaS5udW1iZXIoKS5taW4oMCkubWF4KDEwMCksXG4gIG9uSW5pdDogam9pLmZ1bmMoKSxcbiAgcGx1Z2luczogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gIHJvdXRlczogam9pLm9iamVjdCh7XG4gICAgYWRtaW46IGpvaS5zdHJpbmcoKSxcbiAgICBhcGk6IGpvaS5zdHJpbmcoKSxcbiAgICBncmFwaFFMOiBqb2kuc3RyaW5nKCksXG4gICAgZ3JhcGhRTFBsYXlncm91bmQ6IGpvaS5zdHJpbmcoKSxcbiAgfSksXG4gIHNlY3JldDogam9pLnN0cmluZygpLFxuICBzZXJ2ZXJVUkw6IGpvaVxuICAgIC5zdHJpbmcoKVxuICAgIC51cmkoKVxuICAgIC5hbGxvdygnJylcbiAgICAuY3VzdG9tKCh2YWx1ZSwgaGVscGVyKSA9PiB7XG4gICAgICBjb25zdCB1cmxXaXRob3V0UHJvdG9jb2wgPSB2YWx1ZS5zcGxpdCgnLy8nKVsxXVxuXG4gICAgICBpZiAoIXVybFdpdGhvdXRQcm90b2NvbCkge1xuICAgICAgICByZXR1cm4gaGVscGVyLm1lc3NhZ2Uoe1xuICAgICAgICAgIGN1c3RvbTogJ1lvdSBuZWVkIHRvIGluY2x1ZGUgZWl0aGVyIFwiaHR0cHM6Ly9cIiBvciBcImh0dHA6Ly9cIiBpbiB5b3VyIHNlcnZlclVSTC4nLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAodXJsV2l0aG91dFByb3RvY29sLmluZGV4T2YoJy8nKSA+IC0xKSB7XG4gICAgICAgIHJldHVybiBoZWxwZXIubWVzc2FnZSh7XG4gICAgICAgICAgY3VzdG9tOlxuICAgICAgICAgICAgJ1lvdXIgc2VydmVyVVJMIGNhbm5vdCBoYXZlIGEgcGF0aC4gSXQgY2FuIG9ubHkgY29udGFpbiBhIHByb3RvY29sLCBhIGRvbWFpbiwgYW5kIGFuIG9wdGlvbmFsIHBvcnQuJyxcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlXG4gICAgfSksXG4gIHNoYXJwOiBqb2kuYW55KCksXG4gIHRlbGVtZXRyeTogam9pLmJvb2xlYW4oKSxcbiAgdHlwZXNjcmlwdDogam9pLm9iamVjdCh7XG4gICAgZGVjbGFyZTogam9pLmJvb2xlYW4oKSxcbiAgICBvdXRwdXRGaWxlOiBqb2kuc3RyaW5nKCksXG4gIH0pLFxuICB1cGxvYWQ6IGpvaS5vYmplY3QoKSxcbn0pXG4iXSwibmFtZXMiOlsiZW5kcG9pbnRzU2NoZW1hIiwiY29tcG9uZW50Iiwiam9pIiwiYWx0ZXJuYXRpdmVzIiwidHJ5Iiwib2JqZWN0IiwidW5rbm93biIsImZ1bmMiLCJhcnJheSIsIml0ZW1zIiwiY3VzdG9tIiwicGF0dGVybiIsInN0cmluZyIsImFueSIsImhhbmRsZXIiLCJtZXRob2QiLCJ2YWxpZCIsInBhdGgiLCJyb290IiwiYm9vbCIsImJvb2xlYW4iLCJhZG1pbiIsImF1dG9Mb2dpbiIsImtleXMiLCJlbWFpbCIsInBhc3N3b3JkIiwicHJlZmlsbE9ubHkiLCJhdmF0YXIiLCJidWlsZFBhdGgiLCJjb21wb25lbnRzIiwiTmF2IiwiYWN0aW9ucyIsImFmdGVyRGFzaGJvYXJkIiwiYWZ0ZXJMb2dpbiIsImFmdGVyTmF2TGlua3MiLCJiZWZvcmVEYXNoYm9hcmQiLCJiZWZvcmVMb2dpbiIsImJlZm9yZU5hdkxpbmtzIiwiZ3JhcGhpY3MiLCJJY29uIiwiTG9nbyIsImxvZ291dCIsIkJ1dHRvbiIsInByb3ZpZGVycyIsInZpZXdzIiwiQWNjb3VudCIsImFkbWluVmlld1NjaGVtYSIsIkRhc2hib2FyZCIsImRhdGVGb3JtYXQiLCJkaXNhYmxlIiwiaW5hY3Rpdml0eVJvdXRlIiwibGl2ZVByZXZpZXciLCJsaXZlUHJldmlld1NjaGVtYSIsImNvbGxlY3Rpb25zIiwiZ2xvYmFscyIsImxvZ291dFJvdXRlIiwibWV0YSIsImZhdmljb24iLCJvZ0ltYWdlIiwidGl0bGVTdWZmaXgiLCJ1c2VyIiwiYmluIiwia2V5Iiwic2NyaXB0UGF0aCIsImNvb2tpZVByZWZpeCIsImNvcnMiLCJjc3JmIiwiYWxsb3ciLCJzcGFyc2UiLCJkYiIsImRlYnVnIiwiZGVmYXVsdERlcHRoIiwibnVtYmVyIiwibWluIiwibWF4IiwiZGVmYXVsdE1heFRleHRMZW5ndGgiLCJlZGl0b3IiLCJyZXF1aXJlZCIsIkNlbGxDb21wb25lbnQiLCJjb21wb25lbnRTY2hlbWEiLCJvcHRpb25hbCIsIkZpZWxkQ29tcG9uZW50IiwiTGF6eUNlbGxDb21wb25lbnQiLCJMYXp5RmllbGRDb21wb25lbnQiLCJhZnRlclJlYWRQcm9taXNlIiwib3V0cHV0U2NoZW1hIiwicG9wdWxhdGlvblByb21pc2UiLCJ2YWxpZGF0ZSIsImVuZHBvaW50cyIsImdyYXBoUUwiLCJkaXNhYmxlUGxheWdyb3VuZEluUHJvZHVjdGlvbiIsIm1heENvbXBsZXhpdHkiLCJtdXRhdGlvbnMiLCJmdW5jdGlvbiIsInF1ZXJpZXMiLCJzY2hlbWFPdXRwdXRGaWxlIiwiaG9va3MiLCJhZnRlckVycm9yIiwiaTE4biIsImluZGV4U29ydGFibGVGaWVsZHMiLCJsb2NhbCIsImxvY2FsaXphdGlvbiIsImRlZmF1bHRMb2NhbGUiLCJmYWxsYmFjayIsImxvY2FsZUNvZGVzIiwibG9jYWxlcyIsImNvZGUiLCJmYWxsYmFja0xvY2FsZSIsImxhYmVsIiwicnRsIiwidG9TdHJpbmciLCJtYXhEZXB0aCIsIm9uSW5pdCIsInBsdWdpbnMiLCJyb3V0ZXMiLCJhcGkiLCJncmFwaFFMUGxheWdyb3VuZCIsInNlY3JldCIsInNlcnZlclVSTCIsInVyaSIsInZhbHVlIiwiaGVscGVyIiwidXJsV2l0aG91dFByb3RvY29sIiwic3BsaXQiLCJtZXNzYWdlIiwiaW5kZXhPZiIsInNoYXJwIiwidGVsZW1ldHJ5IiwidHlwZXNjcmlwdCIsImRlY2xhcmUiLCJvdXRwdXRGaWxlIiwidXBsb2FkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXNCQSxPQW9LRTtlQXBLRjs7SUFmYUEsZUFBZTtlQUFmQTs7OzREQVBHO2lDQUVnQjtpQ0FDbUI7Ozs7OztBQUVuRCxNQUFNQyxZQUFZQyxZQUFHLENBQUNDLFlBQVksR0FBR0MsR0FBRyxDQUFDRixZQUFHLENBQUNHLE1BQU0sR0FBR0MsT0FBTyxJQUFJSixZQUFHLENBQUNLLElBQUk7QUFFbEUsTUFBTVAsa0JBQWtCRSxZQUFHLENBQUNDLFlBQVksR0FBR0MsR0FBRyxDQUNuREYsWUFBRyxDQUFDTSxLQUFLLEdBQUdDLEtBQUssQ0FDZlAsWUFBRyxDQUFDRyxNQUFNLENBQUM7SUFDVEssUUFBUVIsWUFBRyxDQUFDRyxNQUFNLEdBQUdNLE9BQU8sQ0FBQ1QsWUFBRyxDQUFDVSxNQUFNLElBQUlWLFlBQUcsQ0FBQ1csR0FBRztJQUNsREMsU0FBU1osWUFBRyxDQUFDQyxZQUFZLEdBQUdDLEdBQUcsQ0FBQ0YsWUFBRyxDQUFDTSxLQUFLLEdBQUdDLEtBQUssQ0FBQ1AsWUFBRyxDQUFDSyxJQUFJLEtBQUtMLFlBQUcsQ0FBQ0ssSUFBSTtJQUN2RVEsUUFBUWIsWUFBRyxDQUNSVSxNQUFNLEdBQ05JLEtBQUssQ0FBQyxPQUFPLFFBQVEsUUFBUSxPQUFPLFNBQVMsVUFBVSxXQUFXO0lBQ3JFQyxNQUFNZixZQUFHLENBQUNVLE1BQU07SUFDaEJNLE1BQU1oQixZQUFHLENBQUNpQixJQUFJO0FBQ2hCLEtBRUZqQixZQUFHLENBQUNrQixPQUFPO01BR2IsV0FBZWxCLFlBQUcsQ0FBQ0csTUFBTSxDQUFDO0lBQ3hCZ0IsT0FBT25CLFlBQUcsQ0FBQ0csTUFBTSxDQUFDO1FBQ2hCaUIsV0FBV3BCLFlBQUcsQ0FBQ0MsWUFBWSxHQUFHQyxHQUFHLENBQy9C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
@@ -1,3 +1,4 @@
1
+ /// <reference types="node" />
1
2
  import type { I18nOptions } from '@payloadcms/translations';
2
3
  import type { Options as ExpressFileUploadOptions } from 'express-fileupload';
3
4
  import type GraphQL from 'graphql';
@@ -5,6 +6,7 @@ import type { Transporter } from 'nodemailer';
5
6
  import type SMTPConnection from 'nodemailer/lib/smtp-connection';
6
7
  import type { DestinationStream, LoggerOptions } from 'pino';
7
8
  import type React from 'react';
9
+ import type { default as sharp } from 'sharp';
8
10
  import type { DeepRequired } from 'ts-essentials';
9
11
  import type { Payload } from '..';
10
12
  import type { DocumentTab, RichTextAdapter } from '../admin/types';
@@ -289,6 +291,7 @@ export type SanitizedLocalizationConfig = Prettify<LocalizationConfigWithLabels
289
291
  * @see https://payloadcms.com/docs/configuration/localization#localization
290
292
  */
291
293
  export type LocalizationConfig = Prettify<LocalizationConfigWithLabels | LocalizationConfigWithNoLabels>;
294
+ export type SharpDependency = (input?: ArrayBuffer | Buffer | Float32Array | Float64Array | Int8Array | Int16Array | Int32Array | Uint8Array | Uint8ClampedArray | Uint16Array | Uint32Array | string, options?: sharp.SharpOptions) => sharp.Sharp;
292
295
  /**
293
296
  * This is the central configuration
294
297
  *
@@ -564,6 +567,11 @@ export type Config = {
564
567
  * @see https://payloadcms.com/docs/configuration/overview#options
565
568
  */
566
569
  serverURL?: string;
570
+ /**
571
+ * Pass in a local copy of Sharp if you'd like to use it.
572
+ *
573
+ */
574
+ sharp?: SharpDependency;
567
575
  /** Send anonymous telemetry data about general usage. */
568
576
  telemetry?: boolean;
569
577
  /** Control how typescript interfaces are generated from your collections. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
@@ -23,4 +23,4 @@ function hasTransportOptions(emailConfig) {
23
23
  return emailConfig.transportOptions !== undefined;
24
24
  }
25
25
 
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJMThuT3B0aW9ucyB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBSZXF1aXJlZCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudFRhYiwgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vYWRtaW4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEFkbWluVmlldywgU2VydmVyU2lkZUVkaXRWaWV3UHJvcHMgfSBmcm9tICcuLi9hZG1pbi92aWV3cy90eXBlcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4uL2F1dGgvdHlwZXMnXG5pbXBvcnQgdHlwZSB7XG4gIEFmdGVyRXJyb3JIb29rLFxuICBDb2xsZWN0aW9uLFxuICBDb2xsZWN0aW9uQ29uZmlnLFxuICBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnLFxufSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERhdGFiYXNlQWRhcHRlclJlc3VsdCB9IGZyb20gJy4uL2RhdGFiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDbGllbnRDb25maWdGaWVsZCB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEdsb2JhbENvbmZpZywgR2xvYmFscywgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0LCBXaGVyZSB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2xvZ2dlcidcblxuZXhwb3J0IHR5cGUgQmluU2NyaXB0Q29uZmlnID0ge1xuICBrZXk6IHN0cmluZ1xuICBzY3JpcHRQYXRoOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgQmluU2NyaXB0ID0gKGNvbmZpZzogU2FuaXRpemVkQ29uZmlnKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxuXG50eXBlIFByZXR0aWZ5PFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTogVFtLXVxufSAmIE5vbk51bGxhYmxlPHVua25vd24+XG5cbnR5cGUgRW1haWwgPSB7XG4gIGZyb21BZGRyZXNzOiBzdHJpbmdcbiAgZnJvbU5hbWU6IHN0cmluZ1xuICBsb2dNb2NrQ3JlZGVudGlhbHM/OiBib29sZWFuXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuZXhwb3J0IHR5cGUgUGx1Z2luID0gKGNvbmZpZzogQ29uZmlnKSA9PiBDb25maWcgfCBQcm9taXNlPENvbmZpZz5cblxuZXhwb3J0IHR5cGUgTGl2ZVByZXZpZXdDb25maWcgPSB7XG4gIC8qKlxuICAgRGV2aWNlIGJyZWFrcG9pbnRzIHRvIHVzZSBmb3IgdGhlIGBpZnJhbWVgIG9mIHRoZSBMaXZlIFByZXZpZXcgd2luZG93LlxuICAgT3B0aW9ucyBhcmUgZGlzcGxheWVkIGluIHRoZSBMaXZlIFByZXZpZXcgdG9vbGJhci5cbiAgIFRoZSBgcmVzcG9uc2l2ZWAgYnJlYWtwb2ludCBpcyBpbmNsdWRlZCBieSBkZWZhdWx0LlxuICAgKi9cbiAgYnJlYWtwb2ludHM/OiB7XG4gICAgaGVpZ2h0OiBudW1iZXIgfCBzdHJpbmdcbiAgICBsYWJlbDogc3RyaW5nXG4gICAgbmFtZTogc3RyaW5nXG4gICAgd2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICB9W11cbiAgLyoqXG4gICBUaGUgVVJMIG9mIHRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbi4gVGhpcyB3aWxsIGJlIHJlbmRlcmVkIHdpdGhpbiBhbiBgaWZyYW1lYCBhcyBpdHMgYHNyY2AuXG4gICBQYXlsb2FkIHdpbGwgc2VuZCBhIGB3aW5kb3cucG9zdE1lc3NhZ2UoKWAgdG8gdGhpcyBVUkwgd2l0aCB0aGUgZG9jdW1lbnQgZGF0YSBpbiByZWFsLXRpbWUuXG4gICBUaGUgZnJvbnRlbmQgYXBwbGljYXRpb24gaXMgcmVzcG9uc2libGUgZm9yIHJlY2VpdmluZyB0aGUgbWVzc2FnZSBhbmQgdXBkYXRpbmcgdGhlIFVJIGFjY29yZGluZ2x5LlxuICAgVXNlIHRoZSBgdXNlTGl2ZVByZXZpZXdgIGhvb2sgdG8gZ2V0IHN0YXJ0ZWQgaW4gUmVhY3QgYXBwbGljYXRpb25zLlxuICAgKi9cbiAgdXJsPzpcbiAgICB8ICgoYXJnczoge1xuICAgICAgICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgICAgIGRvY3VtZW50SW5mbzogYW55IC8vIFRPRE86IHJlbW92ZSBvciBwb3B1bGF0ZSB0aGlzXG4gICAgICAgIGxvY2FsZTogTG9jYWxlXG4gICAgICB9KSA9PiBQcm9taXNlPHN0cmluZz4gfCBzdHJpbmcpXG4gICAgfCBzdHJpbmdcbn1cblxudHlwZSBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zID0ge1xuICBsb2NhbGU6IHN0cmluZ1xuICB0b2tlbjogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEdlbmVyYXRlUHJldmlld1VSTCA9IChcbiAgZG9jOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgb3B0aW9uczogR2VuZXJhdGVQcmV2aWV3VVJMT3B0aW9ucyxcbikgPT4gUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB8IG51bGwgfCBzdHJpbmdcblxuZXhwb3J0IHR5cGUgRW1haWxUcmFuc3BvcnQgPSBFbWFpbCAmIHtcbiAgdHJhbnNwb3J0OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zPzogU01UUENvbm5lY3Rpb24uT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydE9wdGlvbnMgPSBFbWFpbCAmIHtcbiAgdHJhbnNwb3J0PzogVHJhbnNwb3J0ZXJcbiAgdHJhbnNwb3J0T3B0aW9uczogU01UUENvbm5lY3Rpb24uT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBFbWFpbE9wdGlvbnMgPSBFbWFpbCB8IEVtYWlsVHJhbnNwb3J0IHwgRW1haWxUcmFuc3BvcnRPcHRpb25zXG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydChlbWFpbENvbmZpZzogRW1haWxPcHRpb25zKTogZW1haWxDb25maWcgaXMgRW1haWxUcmFuc3BvcnQge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0KS50cmFuc3BvcnQgIT09IHVuZGVmaW5lZFxufVxuXG4vKipcbiAqIHR5cGUgZ3VhcmQgZm9yIEVtYWlsT3B0aW9uc1xuICogQHBhcmFtIGVtYWlsQ29uZmlnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNUcmFuc3BvcnRPcHRpb25zKFxuICBlbWFpbENvbmZpZzogRW1haWxPcHRpb25zLFxuKTogZW1haWxDb25maWcgaXMgRW1haWxUcmFuc3BvcnRPcHRpb25zIHtcbiAgcmV0dXJuIChlbWFpbENvbmZpZyBhcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMpLnRyYW5zcG9ydE9wdGlvbnMgIT09IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgdHlwZSBHcmFwaFFMSW5mbyA9IHtcbiAgTXV0YXRpb246IHtcbiAgICBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICBuYW1lOiBzdHJpbmdcbiAgfVxuICBRdWVyeToge1xuICAgIGZpZWxkczogUmVjb3JkPHN0cmluZywgYW55PlxuICAgIG5hbWU6IHN0cmluZ1xuICB9XG4gIGNvbGxlY3Rpb25zOiB7XG4gICAgW3NsdWc6IG51bWJlciB8IHN0cmluZyB8IHN5bWJvbF06IENvbGxlY3Rpb25cbiAgfVxuICBnbG9iYWxzOiBHbG9iYWxzXG4gIHR5cGVzOiB7XG4gICAgYXJyYXlUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMVHlwZT5cbiAgICBibG9ja0lucHV0VHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTElucHV0T2JqZWN0VHlwZT5cbiAgICBibG9ja1R5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxPYmplY3RUeXBlPlxuICAgIGZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlPzogR3JhcGhRTC5HcmFwaFFMRW51bVR5cGUgfCBHcmFwaFFMLkdyYXBoUUxTY2FsYXJUeXBlXG4gICAgZ3JvdXBUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMT2JqZWN0VHlwZT5cbiAgICBsb2NhbGVJbnB1dFR5cGU/OiBHcmFwaFFMLkdyYXBoUUxFbnVtVHlwZSB8IEdyYXBoUUwuR3JhcGhRTFNjYWxhclR5cGVcbiAgICB0YWJUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMT2JqZWN0VHlwZT5cbiAgfVxufVxuZXhwb3J0IHR5cGUgR3JhcGhRTEV4dGVuc2lvbiA9IChcbiAgZ3JhcGhRTDogdHlwZW9mIEdyYXBoUUwsXG4gIGNvbnRleHQ6IHtcbiAgICBjb25maWc6IFNhbml0aXplZENvbmZpZ1xuICB9ICYgR3JhcGhRTEluZm8sXG4pID0+IFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbmV4cG9ydCB0eXBlIEluaXRPcHRpb25zID0ge1xuICAvKipcbiAgICogU29tZXRpbWVzLCB3aXRoIHRoZSBsb2NhbCBBUEksIHlvdSBtaWdodCBuZWVkIHRvIHBhc3MgYSBjb25maWcgZmlsZSBkaXJlY3RseSwgZm9yIGV4YW1wbGUsIHNlcnZlcmxlc3Mgb24gVmVyY2VsXG4gICAqIFRoZSBwYXNzZWQgY29uZmlnIHNob3VsZCBtYXRjaCB0aGUgY29uZmlnIGZpbGUsIGFuZCBpZiBpdCBkb2Vzbid0LCB0aGVyZSBjb3VsZCBiZSBtaXNtYXRjaGVzIGJldHdlZW4gdGhlIGFkbWluIFVJXG4gICAqIGFuZCB0aGUgYmFja2VuZCBmdW5jdGlvbmFsaXR5XG4gICAqL1xuICBjb25maWc6IFByb21pc2U8U2FuaXRpemVkQ29uZmlnPiB8IFNhbml0aXplZENvbmZpZ1xuICAvKipcbiAgICogRGlzYWJsZSBjb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBvbiBpbml0XG4gICAqL1xuICBkaXNhYmxlREJDb25uZWN0PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBEaXNhYmxlIHJ1bm5pbmcgb2YgdGhlIGBvbkluaXRgIGZ1bmN0aW9uXG4gICAqL1xuICBkaXNhYmxlT25Jbml0PzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciBQYXlsb2FkJ3MgZW1haWwgZnVuY3Rpb25hbGl0eVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9lbWFpbC9vdmVydmlld1xuICAgKi9cbiAgZW1haWw/OiBFbWFpbE9wdGlvbnNcblxuICAvKipcbiAgICogQSBwcmV2aW91c2x5IGluc3RhbnRpYXRlZCBsb2dnZXIgaW5zdGFuY2UuIE11c3QgY29uZm9ybSB0byB0aGUgUGF5bG9hZExvZ2dlciBpbnRlcmZhY2Ugd2hpY2ggdXNlcyBQaW5vXG4gICAqIFRoaXMgYWxsb3dzIHlvdSB0byBicmluZyB5b3VyIG93biBsb2dnZXIgaW5zdGFuY2UgYW5kIGxldCBwYXlsb2FkIHVzZSBpdFxuICAgKi9cbiAgbG9nZ2VyPzogUGF5bG9hZExvZ2dlclxuXG4gIGxvZ2dlckRlc3RpbmF0aW9uPzogRGVzdGluYXRpb25TdHJlYW1cblxuICAvKipcbiAgICogU3BlY2lmeSBvcHRpb25zIGZvciB0aGUgYnVpbHQtaW4gUGlubyBsb2dnZXIgdGhhdCBQYXlsb2FkIHVzZXMgZm9yIGludGVybmFsIGxvZ2dpbmcuXG4gICAqXG4gICAqIFNlZSBQaW5vIERvY3MgZm9yIG9wdGlvbnM6IGh0dHBzOi8vZ2V0cGluby5pby8jL2RvY3MvYXBpP2lkPW9wdGlvbnNcbiAgICovXG4gIGxvZ2dlck9wdGlvbnM/OiBMb2dnZXJPcHRpb25zXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBzdGFydHVwIHRoYXQgcmVjZWl2ZXMgdGhlIFBheWxvYWQgaW5zdGFuY2UgYXMgaXQncyBvbmx5IGFyZ3VtZW50LlxuICAgKi9cbiAgb25Jbml0PzogKHBheWxvYWQ6IFBheWxvYWQpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG59XG5cbi8qKlxuICogVGhpcyByZXN1bHQgaXMgY2FsY3VsYXRlZCBvbiB0aGUgc2VydmVyXG4gKiBhbmQgdGhlbiBzZW50IHRvIHRoZSBjbGllbnQgYWxsb3dpbmcgdGhlIGRhc2hib2FyZCB0byBzaG93IGFjY2Vzc2libGUgZGF0YSBhbmQgYWN0aW9ucy5cbiAqXG4gKiBJZiB0aGUgcmVzdWx0IGlzIGB0cnVlYCwgdGhlIHVzZXIgaGFzIGFjY2Vzcy5cbiAqIElmIHRoZSByZXN1bHQgaXMgYW4gb2JqZWN0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIE1vbmdvREIgcXVlcnkuXG4gKlxuICogQGV4YW1wbGUgYHsgY3JlYXRlZEJ5OiB7IGVxdWFsczogaWQgfSB9YFxuICpcbiAqIEBleGFtcGxlIGB7IHRlbmFudDogeyBpbjogdGVuYW50SWRzIH0gfWBcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBBY2Nlc3NSZXN1bHQgPSBXaGVyZSB8IGJvb2xlYW5cblxuZXhwb3J0IHR5cGUgQWNjZXNzQXJnczxUID0gYW55LCBVID0gYW55PiA9IHtcbiAgLyoqXG4gICAqIFRoZSByZWxldmFudCByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkLlxuICAgKlxuICAgKiBgZGF0YWAgaXMgbnVsbCB3aGVuIGEgbGlzdCBpcyByZXF1ZXN0ZWRcbiAgICovXG4gIGRhdGE/OiBUXG4gIC8qKiBJRCBvZiB0aGUgcmVzb3VyY2UgYmVpbmcgYWNjZXNzZWQgKi9cbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqIElmIHRydWUsIHRoZSByZXF1ZXN0IGlzIGZvciBhIHN0YXRpYyBmaWxlICovXG4gIGlzUmVhZGluZ1N0YXRpY0ZpbGU/OiBib29sZWFuXG4gIC8qKiBUaGUgb3JpZ2luYWwgcmVxdWVzdCB0aGF0IHJlcXVpcmVzIGFuIGFjY2VzcyBjaGVjayAqL1xuICByZXE6IFBheWxvYWRSZXF1ZXN0PFU+XG59XG5cbi8qKlxuICogQWNjZXNzIGZ1bmN0aW9uIHJ1bnMgb24gdGhlIHNlcnZlclxuICogYW5kIGlzIHNlbnQgdG8gdGhlIGNsaWVudCBhbGxvd2luZyB0aGUgZGFzaGJvYXJkIHRvIHNob3cgYWNjZXNzaWJsZSBkYXRhIGFuZCBhY3Rpb25zLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FjY2Vzcy1jb250cm9sL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIEFjY2VzczxUID0gYW55LCBVID0gYW55PiA9IChcbiAgYXJnczogQWNjZXNzQXJnczxULCBVPixcbikgPT4gQWNjZXNzUmVzdWx0IHwgUHJvbWlzZTxBY2Nlc3NSZXN1bHQ+XG5cbi8qKiBXZWIgUmVxdWVzdC9SZXNwb25zZSBtb2RlbCwgYnV0IHRoZSB0aGUgcmVxIGhhcyBtb3JlIHBheWxvYWQgc3BlY2lmaWMgcHJvcGVydGllcyBhZGRlZCB0byBpdC4gKi9cbmV4cG9ydCB0eXBlIFBheWxvYWRIYW5kbGVyID0gKHJlcTogUGF5bG9hZFJlcXVlc3QpID0+IFByb21pc2U8UmVzcG9uc2U+IHwgUmVzcG9uc2VcblxuLyoqXG4gKiBEb2NzOiBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvcmVzdC1hcGkvb3ZlcnZpZXcjY3VzdG9tLWVuZHBvaW50c1xuICovXG5leHBvcnQgdHlwZSBFbmRwb2ludDxVID0gVXNlcj4gPSB7XG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cblxuICAvKipcbiAgICogTWlkZGxld2FyZSB0aGF0IHdpbGwgYmUgY2FsbGVkIHdoZW4gdGhlIHBhdGgvbWV0aG9kIG1hdGNoZXNcbiAgICpcbiAgICogQ29tcGF0aWJsZSB3aXRoIFdlYiBSZXF1ZXN0L1Jlc3BvbnNlIE1vZGVsXG4gICAqL1xuICBoYW5kbGVyOiBQYXlsb2FkSGFuZGxlclxuICAvKiogSFRUUCBtZXRob2QgKG9yIFwiYWxsXCIpICovXG4gIG1ldGhvZDogJ2Nvbm5lY3QnIHwgJ2RlbGV0ZScgfCAnZ2V0JyB8ICdoZWFkJyB8ICdvcHRpb25zJyB8ICdwYXRjaCcgfCAncG9zdCcgfCAncHV0J1xuICAvKipcbiAgICogUGF0dGVybiB0aGF0IHNob3VsZCBtYXRjaCB0aGUgcGF0aCBvZiB0aGUgaW5jb21pbmcgcmVxdWVzdFxuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggdGhlIEV4cHJlc3Mgcm91dGVyXG4gICAqL1xuICBwYXRoOiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIGluIDMuMFxuICAgKlxuICAgKiBQbGVhc2UgYWRkIFwicm9vdFwiIHJvdXRlcyB1bmRlciB0aGUgL2FwaSBmb2xkZXIgaW4gdGhlIFBheWxvYWQgUHJvamVjdC5cbiAgICogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZmlsZS1jb252ZW50aW9ucy9yb3V0ZVxuICAgKi9cbiAgcm9vdD86IG5ldmVyXG59XG5cbmV4cG9ydCB0eXBlIEVkaXRWaWV3Q29tcG9uZW50ID0gUmVhY3QuQ29tcG9uZW50VHlwZTxTZXJ2ZXJTaWRlRWRpdFZpZXdQcm9wcz5cblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb25maWcgPVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogQWRkIGEgbmV3IEVkaXQgdmlldyB0byB0aGUgYWRtaW4gcGFuZWxcbiAgICAgICAqIGkuZS4geW91IGNhbiByZW5kZXIgYSBjdXN0b20gdmlldyB0aGF0IGhhcyBubyB0YWIsIGlmIGRlc2lyZWRcbiAgICAgICAqIE9yIG92ZXJyaWRlIGEgc3BlY2lmaWMgcHJvcGVydGllcyBvZiBhbiBleGlzdGluZyBvbmVcbiAgICAgICAqIGkuZS4geW91IGNhbiBjdXN0b21pemUgdGhlIGBEZWZhdWx0YCB2aWV3IHRhYiBsYWJlbCwgaWYgZGVzaXJlZFxuICAgICAgICovXG4gICAgICBUYWI/OiBEb2N1bWVudFRhYlxuICAgICAgcGF0aD86IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBDb21wb25lbnQ6IEVkaXRWaWV3Q29tcG9uZW50XG4gICAgICBwYXRoOiBzdHJpbmdcbiAgICB9XG4gIHwge1xuICAgICAgYWN0aW9ucz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgfVxuXG4vKipcbiAqIE92ZXJyaWRlIGV4aXN0aW5nIHZpZXdzXG4gKiBpLmUuIERhc2hib2FyZCwgQWNjb3VudCwgQVBJLCBMaXZlUHJldmlldywgZXRjLlxuICogUGF0aCBpcyBub3QgYXZhaWxhYmxlIGhlcmVcbiAqIEFsbCBUYWIgcHJvcGVydGllcyBiZWNvbWUgb3B0aW9uYWxcbiAqIGkuZS4geW91IGNhbiBjaGFuZ2UganVzdCB0aGUgbGFiZWwsIGlmIGRlc2lyZWRcbiAqL1xuZXhwb3J0IHR5cGUgRWRpdFZpZXcgPSBFZGl0Vmlld0NvbXBvbmVudCB8IEVkaXRWaWV3Q29uZmlnXG5cbmV4cG9ydCB0eXBlIExvY2FsZSA9IHtcbiAgLyoqXG4gICAqIHZhbHVlIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJlblwiXG4gICAqL1xuICBjb2RlOiBzdHJpbmdcbiAgLyoqXG4gICAqIENvZGUgb2YgYW5vdGhlciBsb2NhbGUgdG8gdXNlIHdoZW4gcmVhZGluZyBkb2N1bWVudHMgd2l0aCBmYWxsYmFjaywgaWYgbm90IHNwZWNpZmllZCBkZWZhdWx0TG9jYWxlIGlzIHVzZWRcbiAgICovXG4gIGZhbGxiYWNrTG9jYWxlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBsYWJlbCBvZiBzdXBwb3J0ZWQgbG9jYWxlXG4gICAqIEBleGFtcGxlIFwiRW5nbGlzaFwiXG4gICAqL1xuICBsYWJlbDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB8IHN0cmluZ1xuICAvKipcbiAgICogaWYgdHJ1ZSwgZGVmYXVsdHMgdGV4dEFsaWdtbmVudCBvbiB0ZXh0IGZpZWxkcyB0byBSVExcbiAgICovXG4gIHJ0bD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQmFzZUxvY2FsaXphdGlvbkNvbmZpZyA9IHtcbiAgLyoqXG4gICAqIExvY2FsZSBmb3IgdXNlcnMgdGhhdCBoYXZlIG5vdCBleHByZXNzZWQgdGhlaXIgcHJlZmVyZW5jZSBmb3IgYSBzcGVjaWZpYyBsb2NhbGVcbiAgICogQGV4YW1wbGUgYFwiZW5cImBcbiAgICovXG4gIGRlZmF1bHRMb2NhbGU6IHN0cmluZ1xuICAvKiogU2V0IHRvIGB0cnVlYCB0byBsZXQgbWlzc2luZyB2YWx1ZXMgaW4gbG9jYWxpc2VkIGZpZWxkcyBmYWxsIGJhY2sgdG8gdGhlIHZhbHVlcyBpbiBgZGVmYXVsdExvY2FsZWAgKi9cbiAgZmFsbGJhY2s/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVscyA9IFByZXR0aWZ5PFxuICBCYXNlTG9jYWxpemF0aW9uQ29uZmlnICYge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXNcbiAgICAgKiBAZXhhbXBsZSBgW1wiZW5cIiwgXCJlc1wiLCBcImZyXCIsIFwibmxcIiwgXCJkZVwiLCBcImpwXCJdYFxuICAgICAqL1xuICAgIGxvY2FsZXM6IHN0cmluZ1tdXG4gIH1cbj5cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyA9IFByZXR0aWZ5PFxuICBCYXNlTG9jYWxpemF0aW9uQ29uZmlnICYge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXMgd2l0aCBsYWJlbHNcbiAgICAgKiBAZXhhbXBsZSB7XG4gICAgICogIGxhYmVsOiAnRW5nbGlzaCcsXG4gICAgICogIHZhbHVlOiAnZW4nLFxuICAgICAqICBydGw6IGZhbHNlXG4gICAgICogfVxuICAgICAqL1xuICAgIGxvY2FsZXM6IExvY2FsZVtdXG4gIH1cbj5cblxuZXhwb3J0IHR5cGUgU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnID0gUHJldHRpZnk8XG4gIExvY2FsaXphdGlvbkNvbmZpZ1dpdGhMYWJlbHMgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlQ29kZXM6IHN0cmluZ1tdXG4gIH1cbj5cblxuLyoqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL2xvY2FsaXphdGlvbiNsb2NhbGl6YXRpb25cbiAqL1xuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnID0gUHJldHRpZnk8XG4gIExvY2FsaXphdGlvbkNvbmZpZ1dpdGhMYWJlbHMgfCBMb2NhbGl6YXRpb25Db25maWdXaXRoTm9MYWJlbHNcbj5cblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjZW50cmFsIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHtcbiAgLyoqIENvbmZpZ3VyZSBhZG1pbiBkYXNoYm9hcmQgKi9cbiAgYWRtaW4/OiB7XG4gICAgLyoqIEF1dG9tYXRpY2FsbHkgbG9nIGluIGFzIGEgdXNlciB3aGVuIHZpc2l0aW5nIHRoZSBhZG1pbiBkYXNoYm9hcmQuICovXG4gICAgYXV0b0xvZ2luPzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nXG4gICAgICAgICAgLyoqIFRoZSBwYXNzd29yZCBvZiB0aGUgdXNlciB0byBsb2dpbiBhcyAqL1xuICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGxvZ2luIGNyZWRlbnRpYWxzIHdpbGwgYmUgcHJlZmlsbGVkIGJ1dCB0aGUgdXNlciB3aWxsIHN0aWxsIG5lZWQgdG8gY2xpY2sgdGhlIGxvZ2luIGJ1dHRvbi5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHJlZmlsbE9ubHk/OiBib29sZWFuXG4gICAgICAgIH1cbiAgICAgIHwgZmFsc2VcblxuICAgIC8qKiBTZXQgYWNjb3VudCBwcm9maWxlIHBpY3R1cmUuIE9wdGlvbnM6IGdyYXZhdGFyLCBkZWZhdWx0IG9yIGEgY3VzdG9tIFJlYWN0IGNvbXBvbmVudC4gKi9cbiAgICBhdmF0YXI/OiAnZGVmYXVsdCcgfCAnZ3JhdmF0YXInIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgLyoqXG4gICAgICogU3BlY2lmeSBhbiBhYnNvbHV0ZSBwYXRoIGZvciB3aGVyZSB0byBzdG9yZSB0aGUgYnVpbHQgQWRtaW4gcGFuZWwgYnVuZGxlIHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiL2J1aWxkXCJcbiAgICAgKiAqL1xuICAgIGJ1aWxkUGF0aD86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIEFkZCBleHRyYSBhbmQvb3IgcmVwbGFjZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIGNvbXBvbmVudHNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FkbWluL2NvbXBvbmVudHNcbiAgICAgKi9cbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9uIHdpdGggYSBjdXN0b20gY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIE5hdj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgdG8gdGhlIHRvcCByaWdodCBvZiB0aGUgQWRtaW4gUGFuZWxcbiAgICAgICAqL1xuICAgICAgYWN0aW9ucz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBhZnRlckRhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgZW1haWwvcGFzc3dvcmQgZmllbGRcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBhZnRlck5hdkxpbmtzPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBiZWZvcmVEYXNoYm9hcmQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBiZWZvcmVMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIG5hdmlnYXRpb24gbGlua3NcbiAgICAgICAqL1xuICAgICAgYmVmb3JlTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqIFJlcGxhY2UgZ3JhcGhpY2FsIGNvbXBvbmVudHMgKi9cbiAgICAgIGdyYXBoaWNzPzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgaWNvbiBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICAgICAgICBJY29uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBsb2dvIG9uIHRoZSBsb2dpbiBwYWdlICovXG4gICAgICAgIExvZ28/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIH1cbiAgICAgIC8qKiBSZXBsYWNlIGxvZ291dCByZWxhdGVkIGNvbXBvbmVudHMgKi9cbiAgICAgIGxvZ291dD86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ291dCBidXR0b24gICovXG4gICAgICAgIEJ1dHRvbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAgKiBXcmFwIHRoZSBhZG1pbiBkYXNoYm9hcmQgaW4gY3VzdG9tIGNvbnRleHQgcHJvdmlkZXJzXG4gICAgICAgKi9cbiAgICAgIHByb3ZpZGVycz86IFJlYWN0LkNvbXBvbmVudFR5cGU8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+W11cbiAgICAgIC8qKlxuICAgICAgICogUmVwbGFjZSBvciBtb2RpZnkgdG9wLWxldmVsIGFkbWluIHJvdXRlcywgb3IgYWRkIG5ldyBvbmVzOlxuICAgICAgICogKyBgQWNjb3VudGAgLSBgL2FkbWluL2FjY291bnRgXG4gICAgICAgKiArIGBEYXNoYm9hcmRgIC0gYC9hZG1pbmBcbiAgICAgICAqICsgYDpwYXRoYCAtIGAvYWRtaW4vOnBhdGhgXG4gICAgICAgKi9cbiAgICAgIHZpZXdzPzoge1xuICAgICAgICAvKiogQWRkIGN1c3RvbSBhZG1pbiB2aWV3cyAqL1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFjY291bnQgc2NyZWVuICovXG4gICAgICAgIEFjY291bnQ/OiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFkbWluIGhvbWVwYWdlICovXG4gICAgICAgIERhc2hib2FyZD86IEFkbWluVmlld1xuICAgICAgfVxuICAgIH1cbiAgICAvKiogR2xvYmFsIGRhdGUgZm9ybWF0IHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbGwgZGF0ZXMgaW4gdGhlIEFkbWluIHBhbmVsLiBBbnkgdmFsaWQgZGF0ZS1mbnMgZm9ybWF0IHBhdHRlcm4gY2FuIGJlIHVzZWQuICovXG4gICAgZGF0ZUZvcm1hdD86IHN0cmluZ1xuICAgIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGVudGlyZSBBZG1pbiBwYW5lbCB3aWxsIGJlIGRpc2FibGVkLiAqL1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgLyoqIFRoZSByb3V0ZSB0aGUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gYWZ0ZXIgYmVpbmcgaW5hY3RpdmUgZm9yIHRvbyBsb25nLiAqL1xuICAgIGluYWN0aXZpdHlSb3V0ZT86IHN0cmluZ1xuICAgIGxpdmVQcmV2aWV3PzogTGl2ZVByZXZpZXdDb25maWcgJiB7XG4gICAgICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdXG4gICAgICBnbG9iYWxzPzogc3RyaW5nW11cbiAgICB9XG4gICAgLyoqIFRoZSByb3V0ZSBmb3IgdGhlIGxvZ291dCBwYWdlLiAqL1xuICAgIGxvZ291dFJvdXRlPzogc3RyaW5nXG4gICAgLyoqIEJhc2UgbWV0YSBkYXRhIHRvIHVzZSBmb3IgdGhlIEFkbWluIHBhbmVsLiBJbmNsdWRlZCBwcm9wZXJ0aWVzIGFyZSB0aXRsZVN1ZmZpeCwgb2dJbWFnZSwgYW5kIGZhdmljb24uICovXG4gICAgbWV0YT86IHtcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaWNvblxuICAgICAgICpcbiAgICAgICAqIFRoaXMgaW1hZ2UgbWF5IGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlciBuZXh0IHRvIHRoZSB0aXRsZSBvZiB0aGUgcGFnZVxuICAgICAgICovXG4gICAgICBmYXZpY29uPzogc3RyaW5nXG4gICAgICAvKipcbiAgICAgICAqIFB1YmxpYyBwYXRoIHRvIGFuIGltYWdlXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGFzIHByZXZpZXcgd2hlbiB0aGUgbGluayBpcyBzaGFyZWQgb24gc29jaWFsIG1lZGlhXG4gICAgICAgKi9cbiAgICAgIG9nSW1hZ2U/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogU3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgPHRpdGxlPiBvZiBhZG1pbiBwYWdlc1xuICAgICAgICogQGV4YW1wbGUgYFwiIC0gTXkgQnJhbmRcImBcbiAgICAgICAqL1xuICAgICAgdGl0bGVTdWZmaXg/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqIFRoZSBzbHVnIG9mIGEgQ29sbGVjdGlvbiB0aGF0IHlvdSB3YW50IGJlIHVzZWQgdG8gbG9nIGluIHRvIHRoZSBBZG1pbiBkYXNoYm9hcmQuICovXG4gICAgdXNlcj86IHN0cmluZ1xuICB9XG4gIC8qKiBDdXN0b20gUGF5bG9hZCBiaW4gc2NyaXB0cyBjYW4gYmUgaW5qZWN0ZWQgdmlhIHRoZSBjb25maWcuICovXG4gIGJpbj86IEJpblNjcmlwdENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIGRhdGFtb2RlbCBvZiB5b3VyIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vY29sbGVjdGlvbnMjY29sbGVjdGlvbi1jb25maWdzXG4gICAqL1xuICBjb2xsZWN0aW9ucz86IENvbGxlY3Rpb25Db25maWdbXVxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgYnVpbHQtaW4gY29tcG9uZW50cyB3aXRoIGN1c3RvbSBvbmVzXG4gICAqL1xuICBjb21wb25lbnRzPzogeyBba2V5OiBzdHJpbmddOiAoKCkgPT4gSlNYLkVsZW1lbnQpIHwgSlNYLkVsZW1lbnQgfVxuICAvKipcbiAgICogUHJlZml4IGEgc3RyaW5nIHRvIGFsbCBjb29raWVzIHRoYXQgUGF5bG9hZCBzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBheWxvYWRcIlxuICAgKi9cbiAgY29va2llUHJlZml4Pzogc3RyaW5nXG4gIC8qKiBFaXRoZXIgYSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMUyB0byBhbGxvdyBDT1JTIHJlcXVlc3RzIGZyb20sIG9yIGEgd2lsZGNhcmQgc3RyaW5nICgnKicpIHRvIGFjY2VwdCBpbmNvbWluZyByZXF1ZXN0cyBmcm9tIGFueSBkb21haW4uICovXG4gIGNvcnM/OiAnKicgfCBzdHJpbmdbXVxuICAvKiogQSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMcyB0byBhbGxvdyBQYXlsb2FkIGNvb2tpZXMgdG8gYmUgYWNjZXB0ZWQgZnJvbSBhcyBhIGZvcm0gb2YgQ1NSRiBwcm90ZWN0aW9uLiAqL1xuICBjc3JmPzogc3RyaW5nW11cblxuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqIFBhc3MgaW4gYSBkYXRhYmFzZSBhZGFwdGVyIGZvciB1c2Ugb24gdGhpcyBwcm9qZWN0LiAqL1xuICBkYjogRGF0YWJhc2VBZGFwdGVyUmVzdWx0XG4gIC8qKiBFbmFibGUgdG8gZXhwb3NlIG1vcmUgZGV0YWlsZWQgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gIGRlYnVnPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgYSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYGRlcHRoYCB3aGlsZSByZXF1ZXN0aW5nIGEgcmVzb3VyY2UsIHRoaXMgZGVwdGggd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgZGVmYXVsdERlcHRoPzogbnVtYmVyXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA0MDAwMFxuICAgKi9cbiAgZGVmYXVsdE1heFRleHRMZW5ndGg/OiBudW1iZXJcbiAgLyoqIERlZmF1bHQgcmljaHRleHQgZWRpdG9yIHRvIHVzZSBmb3IgcmljaFRleHQgZmllbGRzICovXG4gIGVkaXRvcjogUmljaFRleHRBZGFwdGVyPGFueSwgYW55LCBhbnk+XG4gIC8qKlxuICAgKiBFbWFpbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSBgZW1haWxgIGluIFBheWxvYWQuaW5pdCBpZiBwYXNzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuICAvKiogQ3VzdG9tIFJFU1QgZW5kcG9pbnRzICovXG4gIGVuZHBvaW50cz86IEVuZHBvaW50W11cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZ2xvYmFscyNnbG9iYWwtY29uZmlnc1xuICAgKi9cbiAgZ2xvYmFscz86IEdsb2JhbENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIEdyYXBoUUwgQVBJXG4gICAqXG4gICAqIFlvdSBjYW4gYWRkIHlvdXIgb3duIEdyYXBoUUwgcXVlcmllcyBhbmQgbXV0YXRpb25zIHRvIFBheWxvYWQsIG1ha2luZyB1c2Ugb2YgYWxsIHRoZSB0eXBlcyB0aGF0IFBheWxvYWQgaGFzIGRlZmluZWQgZm9yIHlvdS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9vdmVydmlld1xuICAgKi9cbiAgZ3JhcGhRTD86IHtcbiAgICBkaXNhYmxlPzogYm9vbGVhblxuICAgIGRpc2FibGVQbGF5Z3JvdW5kSW5Qcm9kdWN0aW9uPzogYm9vbGVhblxuICAgIG1heENvbXBsZXhpdHk/OiBudW1iZXJcbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcga2V5cyB0byBjdXN0b20gR3JhcGhRTCBtdXRhdGlvbnNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgbXV0YXRpb25zPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIHF1ZXJpZXNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgcXVlcmllcz86IEdyYXBoUUxFeHRlbnNpb25cbiAgICBzY2hlbWFPdXRwdXRGaWxlPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIFRhcCBpbnRvIFBheWxvYWQtd2lkZSBob29rcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvaG9va3Mvb3ZlcnZpZXdcbiAgICovXG4gIGhvb2tzPzoge1xuICAgIGFmdGVyRXJyb3I/OiBBZnRlckVycm9ySG9va1xuICB9XG4gIC8qKiBpMThuIGNvbmZpZyBzZXR0aW5ncyAqL1xuICBpMThuPzogSTE4bk9wdGlvbnNcbiAgLyoqIEF1dG9tYXRpY2FsbHkgaW5kZXggYWxsIHNvcnRhYmxlIHRvcC1sZXZlbCBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHRvIGltcHJvdmUgc29ydCBwZXJmb3JtYW5jZSBhbmQgYWRkIGRhdGFiYXNlIGNvbXBhdGliaWxpdHkgZm9yIEF6dXJlIENvc21vcyBhbmQgc2ltaWxhci4gKi9cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZSB5b3VyIGNvbnRlbnQgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy9sb2NhbGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAvLyBkaXNhYmxlIGxvY2FsaXphdGlvblxuICAgKi9cbiAgbG9jYWxpemF0aW9uPzogTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgZGVwdGggdG8gYmUgcGVybWl0dGVkIGFwcGxpY2F0aW9uLXdpZGUuIFRoaXMgc2V0dGluZyBoZWxwcyBwcmV2ZW50IGFnYWluc3QgbWFsaWNpb3VzIHF1ZXJpZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9jb25jZXB0cyNkZXB0aFxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKi9cbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgLyoqIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0dXAgdGhhdCByZWNlaXZlcyB0aGUgUGF5bG9hZCBpbnN0YW5jZSBhcyBpdHMgb25seSBhcmd1bWVudC4gKi9cbiAgb25Jbml0PzogKHBheWxvYWQ6IFBheWxvYWQpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXlsb2FkIHBsdWdpbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3BsdWdpbnMvb3ZlcnZpZXdcbiAgICovXG4gIHBsdWdpbnM/OiBQbHVnaW5bXVxuICAvKiogQ29udHJvbCB0aGUgcm91dGluZyBzdHJ1Y3R1cmUgdGhhdCBQYXlsb2FkIGJpbmRzIGl0c2VsZiB0by4gKi9cbiAgcm91dGVzPzoge1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hZG1pblwiICovXG4gICAgYWRtaW4/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvYXBpXCIgICovXG4gICAgYXBpPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWxcIiAgKi9cbiAgICBncmFwaFFMPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWwtcGxheWdyb3VuZFwiICovXG4gICAgZ3JhcGhRTFBsYXlncm91bmQ/OiBzdHJpbmdcbiAgfVxuICAvKiogU2VjdXJlIHN0cmluZyB0aGF0IFBheWxvYWQgd2lsbCB1c2UgZm9yIGFueSBlbmNyeXB0aW9uIHdvcmtmbG93cyAqL1xuICBzZWNyZXQ6IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBhYnNvbHV0ZSBVUkwgb2YgeW91ciBhcHAgaW5jbHVkaW5nIHRoZSBwcm90b2NvbCwgZm9yIGV4YW1wbGUgYGh0dHBzOi8vZXhhbXBsZS5vcmdgLlxuICAgKiBObyBwYXRocyBhbGxvd2VkLCBvbmx5IHByb3RvY29sLCBkb21haW4gYW5kIChvcHRpb25hbGx5KSBwb3J0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3I29wdGlvbnNcbiAgICovXG4gIHNlcnZlclVSTD86IHN0cmluZ1xuICAvKiogU2VuZCBhbm9ueW1vdXMgdGVsZW1ldHJ5IGRhdGEgYWJvdXQgZ2VuZXJhbCB1c2FnZS4gKi9cbiAgdGVsZW1ldHJ5PzogYm9vbGVhblxuICAvKiogQ29udHJvbCBob3cgdHlwZXNjcmlwdCBpbnRlcmZhY2VzIGFyZSBnZW5lcmF0ZWQgZnJvbSB5b3VyIGNvbGxlY3Rpb25zLiAqL1xuICB0eXBlc2NyaXB0Pzoge1xuICAgIC8qKiBEaXNhYmxlIGRlY2xhcmUgYmxvY2sgaW4gZ2VuZXJhdGVkIHR5cGVzIGZpbGUgKi9cbiAgICBkZWNsYXJlPzogZmFsc2VcbiAgICAvKiogRmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCB0eXBlcyB0byAqL1xuICAgIG91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSBoYW5kbGluZyBvZiBpbmNvbWluZyBmaWxlIHVwbG9hZHMgZm9yIGNvbGxlY3Rpb25zIHRoYXQgaGF2ZSB1cGxvYWRzIGVuYWJsZWQuXG4gICAqL1xuICB1cGxvYWQ/OiBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU2FuaXRpemVkQ29uZmlnID0gT21pdDxcbiAgRGVlcFJlcXVpcmVkPENvbmZpZz4sXG4gICdjb2xsZWN0aW9ucycgfCAnZW5kcG9pbnQnIHwgJ2dsb2JhbHMnIHwgJ2xvY2FsaXphdGlvbidcbj4gJiB7XG4gIGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW11cbiAgZW5kcG9pbnRzOiBFbmRwb2ludFtdXG4gIGdsb2JhbHM6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgcGF0aHM6IHtcbiAgICBjb25maWc6IHN0cmluZ1xuICAgIGNvbmZpZ0Rpcjogc3RyaW5nXG4gICAgcmF3Q29uZmlnOiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBDbGllbnRDb25maWcgPSBPbWl0PFNhbml0aXplZENvbmZpZywgJ2RiJyB8ICdlbmRwb2ludHMnPiAmIHtcbiAgY29sbGVjdGlvbnM6IChPbWl0PFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsICdhY2Nlc3MnIHwgJ2VuZHBvaW50cycgfCAnZmllbGRzJyB8ICdob29rcyc+ICYge1xuICAgIGZpZWxkczogQ2xpZW50Q29uZmlnRmllbGRbXVxuICB9KVtdXG4gIGdsb2JhbHM6IChPbWl0PFNhbml0aXplZEdsb2JhbENvbmZpZywgJ2FjY2VzcycgfCAnZW5kcG9pbnRzJyB8ICdmaWVsZHMnIHwgJ2hvb2tzJz4gJiB7XG4gICAgZmllbGRzOiBDbGllbnRDb25maWdGaWVsZFtdXG4gIH0pW11cbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5RGVzY3JpcHRpb24gPVxuICB8ICgoKSA9PiBzdHJpbmcpXG4gIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICB8IHN0cmluZ1xuIl0sIm5hbWVzIjpbImhhc1RyYW5zcG9ydCIsImhhc1RyYW5zcG9ydE9wdGlvbnMiLCJlbWFpbENvbmZpZyIsInRyYW5zcG9ydCIsInVuZGVmaW5lZCIsInRyYW5zcG9ydE9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBa0dnQkEsWUFBWTtlQUFaQTs7SUFRQUMsbUJBQW1CO2VBQW5CQTs7O0FBUlQsU0FBU0QsYUFBYUUsV0FBeUI7SUFDcEQsT0FBTyxBQUFDQSxZQUErQkMsU0FBUyxLQUFLQztBQUN2RDtBQU1PLFNBQVNILG9CQUNkQyxXQUF5QjtJQUV6QixPQUFPLEFBQUNBLFlBQXNDRyxnQkFBZ0IsS0FBS0Q7QUFDckUifQ==
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJMThuT3B0aW9ucyB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgc2hhcnAgfSBmcm9tICdzaGFycCdcbmltcG9ydCB0eXBlIHsgRGVlcFJlcXVpcmVkIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4nXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50VGFiLCBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9hZG1pbi90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRtaW5WaWV3LCBTZXJ2ZXJTaWRlRWRpdFZpZXdQcm9wcyB9IGZyb20gJy4uL2FkbWluL3ZpZXdzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi4vYXV0aC90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQWZ0ZXJFcnJvckhvb2ssXG4gIENvbGxlY3Rpb24sXG4gIENvbGxlY3Rpb25Db25maWcsXG4gIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG59IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VBZGFwdGVyUmVzdWx0IH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IENsaWVudENvbmZpZ0ZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2xvYmFsQ29uZmlnLCBHbG9iYWxzLCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRMb2dnZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvbG9nZ2VyJ1xuXG5leHBvcnQgdHlwZSBCaW5TY3JpcHRDb25maWcgPSB7XG4gIGtleTogc3RyaW5nXG4gIHNjcmlwdFBhdGg6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBCaW5TY3JpcHQgPSAoY29uZmlnOiBTYW5pdGl6ZWRDb25maWcpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG5cbnR5cGUgUHJldHRpZnk8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdXG59ICYgTm9uTnVsbGFibGU8dW5rbm93bj5cblxudHlwZSBFbWFpbCA9IHtcbiAgZnJvbUFkZHJlc3M6IHN0cmluZ1xuICBmcm9tTmFtZTogc3RyaW5nXG4gIGxvZ01vY2tDcmVkZW50aWFscz86IGJvb2xlYW5cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBQbHVnaW4gPSAoY29uZmlnOiBDb25maWcpID0+IENvbmZpZyB8IFByb21pc2U8Q29uZmlnPlxuXG5leHBvcnQgdHlwZSBMaXZlUHJldmlld0NvbmZpZyA9IHtcbiAgLyoqXG4gICBEZXZpY2UgYnJlYWtwb2ludHMgdG8gdXNlIGZvciB0aGUgYGlmcmFtZWAgb2YgdGhlIExpdmUgUHJldmlldyB3aW5kb3cuXG4gICBPcHRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIExpdmUgUHJldmlldyB0b29sYmFyLlxuICAgVGhlIGByZXNwb25zaXZlYCBicmVha3BvaW50IGlzIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBicmVha3BvaW50cz86IHtcbiAgICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIH1bXVxuICAvKipcbiAgIFRoZSBVUkwgb2YgdGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uLiBUaGlzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aGluIGFuIGBpZnJhbWVgIGFzIGl0cyBgc3JjYC5cbiAgIFBheWxvYWQgd2lsbCBzZW5kIGEgYHdpbmRvdy5wb3N0TWVzc2FnZSgpYCB0byB0aGlzIFVSTCB3aXRoIHRoZSBkb2N1bWVudCBkYXRhIGluIHJlYWwtdGltZS5cbiAgIFRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIHRoZSBtZXNzYWdlIGFuZCB1cGRhdGluZyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICBVc2UgdGhlIGB1c2VMaXZlUHJldmlld2AgaG9vayB0byBnZXQgc3RhcnRlZCBpbiBSZWFjdCBhcHBsaWNhdGlvbnMuXG4gICAqL1xuICB1cmw/OlxuICAgIHwgKChhcmdzOiB7XG4gICAgICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICAgICAgZG9jdW1lbnRJbmZvOiBhbnkgLy8gVE9ETzogcmVtb3ZlIG9yIHBvcHVsYXRlIHRoaXNcbiAgICAgICAgbG9jYWxlOiBMb2NhbGVcbiAgICAgIH0pID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZylcbiAgICB8IHN0cmluZ1xufVxuXG50eXBlIEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMgPSB7XG4gIGxvY2FsZTogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMID0gKFxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBvcHRpb25zOiBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zLFxuKSA9PiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydCA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ/OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zOiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsT3B0aW9ucyA9IEVtYWlsIHwgRW1haWxUcmFuc3BvcnQgfCBFbWFpbFRyYW5zcG9ydE9wdGlvbnNcblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0KGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMpOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydCB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnQpLnRyYW5zcG9ydCAhPT0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydE9wdGlvbnMoXG4gIGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMsXG4pOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucykudHJhbnNwb3J0T3B0aW9ucyAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxJbmZvID0ge1xuICBNdXRhdGlvbjoge1xuICAgIGZpZWxkczogUmVjb3JkPHN0cmluZywgYW55PlxuICAgIG5hbWU6IHN0cmluZ1xuICB9XG4gIFF1ZXJ5OiB7XG4gICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgY29sbGVjdGlvbnM6IHtcbiAgICBbc2x1ZzogbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sXTogQ29sbGVjdGlvblxuICB9XG4gIGdsb2JhbHM6IEdsb2JhbHNcbiAgdHlwZXM6IHtcbiAgICBhcnJheVR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxUeXBlPlxuICAgIGJsb2NrSW5wdXRUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMSW5wdXRPYmplY3RUeXBlPlxuICAgIGJsb2NrVHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTE9iamVjdFR5cGU+XG4gICAgZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGU/OiBHcmFwaFFMLkdyYXBoUUxFbnVtVHlwZSB8IEdyYXBoUUwuR3JhcGhRTFNjYWxhclR5cGVcbiAgICBncm91cFR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxPYmplY3RUeXBlPlxuICAgIGxvY2FsZUlucHV0VHlwZT86IEdyYXBoUUwuR3JhcGhRTEVudW1UeXBlIHwgR3JhcGhRTC5HcmFwaFFMU2NhbGFyVHlwZVxuICAgIHRhYlR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxPYmplY3RUeXBlPlxuICB9XG59XG5leHBvcnQgdHlwZSBHcmFwaFFMRXh0ZW5zaW9uID0gKFxuICBncmFwaFFMOiB0eXBlb2YgR3JhcGhRTCxcbiAgY29udGV4dDoge1xuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIH0gJiBHcmFwaFFMSW5mbyxcbikgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuZXhwb3J0IHR5cGUgSW5pdE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBTb21ldGltZXMsIHdpdGggdGhlIGxvY2FsIEFQSSwgeW91IG1pZ2h0IG5lZWQgdG8gcGFzcyBhIGNvbmZpZyBmaWxlIGRpcmVjdGx5LCBmb3IgZXhhbXBsZSwgc2VydmVybGVzcyBvbiBWZXJjZWxcbiAgICogVGhlIHBhc3NlZCBjb25maWcgc2hvdWxkIG1hdGNoIHRoZSBjb25maWcgZmlsZSwgYW5kIGlmIGl0IGRvZXNuJ3QsIHRoZXJlIGNvdWxkIGJlIG1pc21hdGNoZXMgYmV0d2VlbiB0aGUgYWRtaW4gVUlcbiAgICogYW5kIHRoZSBiYWNrZW5kIGZ1bmN0aW9uYWxpdHlcbiAgICovXG4gIGNvbmZpZzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+IHwgU2FuaXRpemVkQ29uZmlnXG4gIC8qKlxuICAgKiBEaXNhYmxlIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIG9uIGluaXRcbiAgICovXG4gIGRpc2FibGVEQkNvbm5lY3Q/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIERpc2FibGUgcnVubmluZyBvZiB0aGUgYG9uSW5pdGAgZnVuY3Rpb25cbiAgICovXG4gIGRpc2FibGVPbkluaXQ/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIFBheWxvYWQncyBlbWFpbCBmdW5jdGlvbmFsaXR5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuXG4gIC8qKlxuICAgKiBBIHByZXZpb3VzbHkgaW5zdGFudGlhdGVkIGxvZ2dlciBpbnN0YW5jZS4gTXVzdCBjb25mb3JtIHRvIHRoZSBQYXlsb2FkTG9nZ2VyIGludGVyZmFjZSB3aGljaCB1c2VzIFBpbm9cbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIGJyaW5nIHlvdXIgb3duIGxvZ2dlciBpbnN0YW5jZSBhbmQgbGV0IHBheWxvYWQgdXNlIGl0XG4gICAqL1xuICBsb2dnZXI/OiBQYXlsb2FkTG9nZ2VyXG5cbiAgbG9nZ2VyRGVzdGluYXRpb24/OiBEZXN0aW5hdGlvblN0cmVhbVxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIHRoZSBidWlsdC1pbiBQaW5vIGxvZ2dlciB0aGF0IFBheWxvYWQgdXNlcyBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cbiAgICpcbiAgICogU2VlIFBpbm8gRG9jcyBmb3Igb3B0aW9uczogaHR0cHM6Ly9nZXRwaW5vLmlvLyMvZG9jcy9hcGk/aWQ9b3B0aW9uc1xuICAgKi9cbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnNcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0dXAgdGhhdCByZWNlaXZlcyB0aGUgUGF5bG9hZCBpbnN0YW5jZSBhcyBpdCdzIG9ubHkgYXJndW1lbnQuXG4gICAqL1xuICBvbkluaXQ/OiAocGF5bG9hZDogUGF5bG9hZCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcbn1cblxuLyoqXG4gKiBUaGlzIHJlc3VsdCBpcyBjYWxjdWxhdGVkIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCB0aGVuIHNlbnQgdG8gdGhlIGNsaWVudCBhbGxvd2luZyB0aGUgZGFzaGJvYXJkIHRvIHNob3cgYWNjZXNzaWJsZSBkYXRhIGFuZCBhY3Rpb25zLlxuICpcbiAqIElmIHRoZSByZXN1bHQgaXMgYHRydWVgLCB0aGUgdXNlciBoYXMgYWNjZXNzLlxuICogSWYgdGhlIHJlc3VsdCBpcyBhbiBvYmplY3QsIGl0IGlzIGludGVycHJldGVkIGFzIGEgTW9uZ29EQiBxdWVyeS5cbiAqXG4gKiBAZXhhbXBsZSBgeyBjcmVhdGVkQnk6IHsgZXF1YWxzOiBpZCB9IH1gXG4gKlxuICogQGV4YW1wbGUgYHsgdGVuYW50OiB7IGluOiB0ZW5hbnRJZHMgfSB9YFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FjY2Vzcy1jb250cm9sL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIEFjY2Vzc1Jlc3VsdCA9IFdoZXJlIHwgYm9vbGVhblxuXG5leHBvcnQgdHlwZSBBY2Nlc3NBcmdzPFQgPSBhbnksIFUgPSBhbnk+ID0ge1xuICAvKipcbiAgICogVGhlIHJlbGV2YW50IHJlc291cmNlIHRoYXQgaXMgYmVpbmcgYWNjZXNzZWQuXG4gICAqXG4gICAqIGBkYXRhYCBpcyBudWxsIHdoZW4gYSBsaXN0IGlzIHJlcXVlc3RlZFxuICAgKi9cbiAgZGF0YT86IFRcbiAgLyoqIElEIG9mIHRoZSByZXNvdXJjZSBiZWluZyBhY2Nlc3NlZCAqL1xuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICAvKiogSWYgdHJ1ZSwgdGhlIHJlcXVlc3QgaXMgZm9yIGEgc3RhdGljIGZpbGUgKi9cbiAgaXNSZWFkaW5nU3RhdGljRmlsZT86IGJvb2xlYW5cbiAgLyoqIFRoZSBvcmlnaW5hbCByZXF1ZXN0IHRoYXQgcmVxdWlyZXMgYW4gYWNjZXNzIGNoZWNrICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbn1cblxuLyoqXG4gKiBBY2Nlc3MgZnVuY3Rpb24gcnVucyBvbiB0aGUgc2VydmVyXG4gKiBhbmQgaXMgc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzPFQgPSBhbnksIFUgPSBhbnk+ID0gKFxuICBhcmdzOiBBY2Nlc3NBcmdzPFQsIFU+LFxuKSA9PiBBY2Nlc3NSZXN1bHQgfCBQcm9taXNlPEFjY2Vzc1Jlc3VsdD5cblxuLyoqIFdlYiBSZXF1ZXN0L1Jlc3BvbnNlIG1vZGVsLCBidXQgdGhlIHRoZSByZXEgaGFzIG1vcmUgcGF5bG9hZCBzcGVjaWZpYyBwcm9wZXJ0aWVzIGFkZGVkIHRvIGl0LiAqL1xuZXhwb3J0IHR5cGUgUGF5bG9hZEhhbmRsZXIgPSAocmVxOiBQYXlsb2FkUmVxdWVzdCkgPT4gUHJvbWlzZTxSZXNwb25zZT4gfCBSZXNwb25zZVxuXG4vKipcbiAqIERvY3M6IGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9yZXN0LWFwaS9vdmVydmlldyNjdXN0b20tZW5kcG9pbnRzXG4gKi9cbmV4cG9ydCB0eXBlIEVuZHBvaW50PFUgPSBVc2VyPiA9IHtcbiAgLyoqIEV4dGVuc2lvbiBwb2ludCB0byBhZGQgeW91ciBjdXN0b20gZGF0YS4gKi9cbiAgY3VzdG9tPzogUmVjb3JkPHN0cmluZywgYW55PlxuXG4gIC8qKlxuICAgKiBNaWRkbGV3YXJlIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgcGF0aC9tZXRob2QgbWF0Y2hlc1xuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggV2ViIFJlcXVlc3QvUmVzcG9uc2UgTW9kZWxcbiAgICovXG4gIGhhbmRsZXI6IFBheWxvYWRIYW5kbGVyXG4gIC8qKiBIVFRQIG1ldGhvZCAob3IgXCJhbGxcIikgKi9cbiAgbWV0aG9kOiAnY29ubmVjdCcgfCAnZGVsZXRlJyB8ICdnZXQnIHwgJ2hlYWQnIHwgJ29wdGlvbnMnIHwgJ3BhdGNoJyB8ICdwb3N0JyB8ICdwdXQnXG4gIC8qKlxuICAgKiBQYXR0ZXJuIHRoYXQgc2hvdWxkIG1hdGNoIHRoZSBwYXRoIG9mIHRoZSBpbmNvbWluZyByZXF1ZXN0XG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCB0aGUgRXhwcmVzcyByb3V0ZXJcbiAgICovXG4gIHBhdGg6IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgaW4gMy4wXG4gICAqXG4gICAqIFBsZWFzZSBhZGQgXCJyb290XCIgcm91dGVzIHVuZGVyIHRoZSAvYXBpIGZvbGRlciBpbiB0aGUgUGF5bG9hZCBQcm9qZWN0LlxuICAgKiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL3JvdXRlXG4gICAqL1xuICByb290PzogbmV2ZXJcbn1cblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPFNlcnZlclNpZGVFZGl0Vmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBFZGl0Vmlld0NvbmZpZyA9XG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBBZGQgYSBuZXcgRWRpdCB2aWV3IHRvIHRoZSBhZG1pbiBwYW5lbFxuICAgICAgICogaS5lLiB5b3UgY2FuIHJlbmRlciBhIGN1c3RvbSB2aWV3IHRoYXQgaGFzIG5vIHRhYiwgaWYgZGVzaXJlZFxuICAgICAgICogT3Igb3ZlcnJpZGUgYSBzcGVjaWZpYyBwcm9wZXJ0aWVzIG9mIGFuIGV4aXN0aW5nIG9uZVxuICAgICAgICogaS5lLiB5b3UgY2FuIGN1c3RvbWl6ZSB0aGUgYERlZmF1bHRgIHZpZXcgdGFiIGxhYmVsLCBpZiBkZXNpcmVkXG4gICAgICAgKi9cbiAgICAgIFRhYj86IERvY3VtZW50VGFiXG4gICAgICBwYXRoPzogc3RyaW5nXG4gICAgfVxuICB8IHtcbiAgICAgIENvbXBvbmVudDogRWRpdFZpZXdDb21wb25lbnRcbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBhY3Rpb25zPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICB9XG5cbi8qKlxuICogT3ZlcnJpZGUgZXhpc3Rpbmcgdmlld3NcbiAqIGkuZS4gRGFzaGJvYXJkLCBBY2NvdW50LCBBUEksIExpdmVQcmV2aWV3LCBldGMuXG4gKiBQYXRoIGlzIG5vdCBhdmFpbGFibGUgaGVyZVxuICogQWxsIFRhYiBwcm9wZXJ0aWVzIGJlY29tZSBvcHRpb25hbFxuICogaS5lLiB5b3UgY2FuIGNoYW5nZSBqdXN0IHRoZSBsYWJlbCwgaWYgZGVzaXJlZFxuICovXG5leHBvcnQgdHlwZSBFZGl0VmlldyA9IEVkaXRWaWV3Q29tcG9uZW50IHwgRWRpdFZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0ge1xuICAvKipcbiAgICogdmFsdWUgb2Ygc3VwcG9ydGVkIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBcImVuXCJcbiAgICovXG4gIGNvZGU6IHN0cmluZ1xuICAvKipcbiAgICogQ29kZSBvZiBhbm90aGVyIGxvY2FsZSB0byB1c2Ugd2hlbiByZWFkaW5nIGRvY3VtZW50cyB3aXRoIGZhbGxiYWNrLCBpZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHRMb2NhbGUgaXMgdXNlZFxuICAgKi9cbiAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIGxhYmVsIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJFbmdsaXNoXCJcbiAgICovXG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIC8qKlxuICAgKiBpZiB0cnVlLCBkZWZhdWx0cyB0ZXh0QWxpZ21uZW50IG9uIHRleHQgZmllbGRzIHRvIFJUTFxuICAgKi9cbiAgcnRsPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCYXNlTG9jYWxpemF0aW9uQ29uZmlnID0ge1xuICAvKipcbiAgICogTG9jYWxlIGZvciB1c2VycyB0aGF0IGhhdmUgbm90IGV4cHJlc3NlZCB0aGVpciBwcmVmZXJlbmNlIGZvciBhIHNwZWNpZmljIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBgXCJlblwiYFxuICAgKi9cbiAgZGVmYXVsdExvY2FsZTogc3RyaW5nXG4gIC8qKiBTZXQgdG8gYHRydWVgIHRvIGxldCBtaXNzaW5nIHZhbHVlcyBpbiBsb2NhbGlzZWQgZmllbGRzIGZhbGwgYmFjayB0byB0aGUgdmFsdWVzIGluIGBkZWZhdWx0TG9jYWxlYCAqL1xuICBmYWxsYmFjaz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlczogc3RyaW5nW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyB3aXRoIGxhYmVsc1xuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgKiAgdmFsdWU6ICdlbicsXG4gICAgICogIHJ0bDogZmFsc2VcbiAgICAgKiB9XG4gICAgICovXG4gICAgbG9jYWxlczogTG9jYWxlW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVDb2Rlczogc3RyaW5nW11cbiAgfVxuPlxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vbG9jYWxpemF0aW9uI2xvY2FsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyB8IExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVsc1xuPlxuXG5leHBvcnQgdHlwZSBTaGFycERlcGVuZGVuY3kgPSAoXG4gIGlucHV0PzpcbiAgICB8IEFycmF5QnVmZmVyXG4gICAgfCBCdWZmZXJcbiAgICB8IEZsb2F0MzJBcnJheVxuICAgIHwgRmxvYXQ2NEFycmF5XG4gICAgfCBJbnQ4QXJyYXlcbiAgICB8IEludDE2QXJyYXlcbiAgICB8IEludDMyQXJyYXlcbiAgICB8IFVpbnQ4QXJyYXlcbiAgICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gICAgfCBVaW50MTZBcnJheVxuICAgIHwgVWludDMyQXJyYXlcbiAgICB8IHN0cmluZyxcbiAgb3B0aW9ucz86IHNoYXJwLlNoYXJwT3B0aW9ucyxcbikgPT4gc2hhcnAuU2hhcnBcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjZW50cmFsIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHtcbiAgLyoqIENvbmZpZ3VyZSBhZG1pbiBkYXNoYm9hcmQgKi9cbiAgYWRtaW4/OiB7XG4gICAgLyoqIEF1dG9tYXRpY2FsbHkgbG9nIGluIGFzIGEgdXNlciB3aGVuIHZpc2l0aW5nIHRoZSBhZG1pbiBkYXNoYm9hcmQuICovXG4gICAgYXV0b0xvZ2luPzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nXG4gICAgICAgICAgLyoqIFRoZSBwYXNzd29yZCBvZiB0aGUgdXNlciB0byBsb2dpbiBhcyAqL1xuICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGxvZ2luIGNyZWRlbnRpYWxzIHdpbGwgYmUgcHJlZmlsbGVkIGJ1dCB0aGUgdXNlciB3aWxsIHN0aWxsIG5lZWQgdG8gY2xpY2sgdGhlIGxvZ2luIGJ1dHRvbi5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHJlZmlsbE9ubHk/OiBib29sZWFuXG4gICAgICAgIH1cbiAgICAgIHwgZmFsc2VcblxuICAgIC8qKiBTZXQgYWNjb3VudCBwcm9maWxlIHBpY3R1cmUuIE9wdGlvbnM6IGdyYXZhdGFyLCBkZWZhdWx0IG9yIGEgY3VzdG9tIFJlYWN0IGNvbXBvbmVudC4gKi9cbiAgICBhdmF0YXI/OiAnZGVmYXVsdCcgfCAnZ3JhdmF0YXInIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgLyoqXG4gICAgICogU3BlY2lmeSBhbiBhYnNvbHV0ZSBwYXRoIGZvciB3aGVyZSB0byBzdG9yZSB0aGUgYnVpbHQgQWRtaW4gcGFuZWwgYnVuZGxlIHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiL2J1aWxkXCJcbiAgICAgKiAqL1xuICAgIGJ1aWxkUGF0aD86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIEFkZCBleHRyYSBhbmQvb3IgcmVwbGFjZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIGNvbXBvbmVudHNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FkbWluL2NvbXBvbmVudHNcbiAgICAgKi9cbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9uIHdpdGggYSBjdXN0b20gY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIE5hdj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgdG8gdGhlIHRvcCByaWdodCBvZiB0aGUgQWRtaW4gUGFuZWxcbiAgICAgICAqL1xuICAgICAgYWN0aW9ucz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBhZnRlckRhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgZW1haWwvcGFzc3dvcmQgZmllbGRcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBhZnRlck5hdkxpbmtzPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBiZWZvcmVEYXNoYm9hcmQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBiZWZvcmVMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIG5hdmlnYXRpb24gbGlua3NcbiAgICAgICAqL1xuICAgICAgYmVmb3JlTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqIFJlcGxhY2UgZ3JhcGhpY2FsIGNvbXBvbmVudHMgKi9cbiAgICAgIGdyYXBoaWNzPzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgaWNvbiBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICAgICAgICBJY29uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBsb2dvIG9uIHRoZSBsb2dpbiBwYWdlICovXG4gICAgICAgIExvZ28/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIH1cbiAgICAgIC8qKiBSZXBsYWNlIGxvZ291dCByZWxhdGVkIGNvbXBvbmVudHMgKi9cbiAgICAgIGxvZ291dD86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ291dCBidXR0b24gICovXG4gICAgICAgIEJ1dHRvbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAgKiBXcmFwIHRoZSBhZG1pbiBkYXNoYm9hcmQgaW4gY3VzdG9tIGNvbnRleHQgcHJvdmlkZXJzXG4gICAgICAgKi9cbiAgICAgIHByb3ZpZGVycz86IFJlYWN0LkNvbXBvbmVudFR5cGU8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+W11cbiAgICAgIC8qKlxuICAgICAgICogUmVwbGFjZSBvciBtb2RpZnkgdG9wLWxldmVsIGFkbWluIHJvdXRlcywgb3IgYWRkIG5ldyBvbmVzOlxuICAgICAgICogKyBgQWNjb3VudGAgLSBgL2FkbWluL2FjY291bnRgXG4gICAgICAgKiArIGBEYXNoYm9hcmRgIC0gYC9hZG1pbmBcbiAgICAgICAqICsgYDpwYXRoYCAtIGAvYWRtaW4vOnBhdGhgXG4gICAgICAgKi9cbiAgICAgIHZpZXdzPzoge1xuICAgICAgICAvKiogQWRkIGN1c3RvbSBhZG1pbiB2aWV3cyAqL1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFjY291bnQgc2NyZWVuICovXG4gICAgICAgIEFjY291bnQ/OiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFkbWluIGhvbWVwYWdlICovXG4gICAgICAgIERhc2hib2FyZD86IEFkbWluVmlld1xuICAgICAgfVxuICAgIH1cbiAgICAvKiogR2xvYmFsIGRhdGUgZm9ybWF0IHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbGwgZGF0ZXMgaW4gdGhlIEFkbWluIHBhbmVsLiBBbnkgdmFsaWQgZGF0ZS1mbnMgZm9ybWF0IHBhdHRlcm4gY2FuIGJlIHVzZWQuICovXG4gICAgZGF0ZUZvcm1hdD86IHN0cmluZ1xuICAgIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGVudGlyZSBBZG1pbiBwYW5lbCB3aWxsIGJlIGRpc2FibGVkLiAqL1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgLyoqIFRoZSByb3V0ZSB0aGUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gYWZ0ZXIgYmVpbmcgaW5hY3RpdmUgZm9yIHRvbyBsb25nLiAqL1xuICAgIGluYWN0aXZpdHlSb3V0ZT86IHN0cmluZ1xuICAgIGxpdmVQcmV2aWV3PzogTGl2ZVByZXZpZXdDb25maWcgJiB7XG4gICAgICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdXG4gICAgICBnbG9iYWxzPzogc3RyaW5nW11cbiAgICB9XG4gICAgLyoqIFRoZSByb3V0ZSBmb3IgdGhlIGxvZ291dCBwYWdlLiAqL1xuICAgIGxvZ291dFJvdXRlPzogc3RyaW5nXG4gICAgLyoqIEJhc2UgbWV0YSBkYXRhIHRvIHVzZSBmb3IgdGhlIEFkbWluIHBhbmVsLiBJbmNsdWRlZCBwcm9wZXJ0aWVzIGFyZSB0aXRsZVN1ZmZpeCwgb2dJbWFnZSwgYW5kIGZhdmljb24uICovXG4gICAgbWV0YT86IHtcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaWNvblxuICAgICAgICpcbiAgICAgICAqIFRoaXMgaW1hZ2UgbWF5IGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlciBuZXh0IHRvIHRoZSB0aXRsZSBvZiB0aGUgcGFnZVxuICAgICAgICovXG4gICAgICBmYXZpY29uPzogc3RyaW5nXG4gICAgICAvKipcbiAgICAgICAqIFB1YmxpYyBwYXRoIHRvIGFuIGltYWdlXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGFzIHByZXZpZXcgd2hlbiB0aGUgbGluayBpcyBzaGFyZWQgb24gc29jaWFsIG1lZGlhXG4gICAgICAgKi9cbiAgICAgIG9nSW1hZ2U/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogU3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgPHRpdGxlPiBvZiBhZG1pbiBwYWdlc1xuICAgICAgICogQGV4YW1wbGUgYFwiIC0gTXkgQnJhbmRcImBcbiAgICAgICAqL1xuICAgICAgdGl0bGVTdWZmaXg/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqIFRoZSBzbHVnIG9mIGEgQ29sbGVjdGlvbiB0aGF0IHlvdSB3YW50IGJlIHVzZWQgdG8gbG9nIGluIHRvIHRoZSBBZG1pbiBkYXNoYm9hcmQuICovXG4gICAgdXNlcj86IHN0cmluZ1xuICB9XG4gIC8qKiBDdXN0b20gUGF5bG9hZCBiaW4gc2NyaXB0cyBjYW4gYmUgaW5qZWN0ZWQgdmlhIHRoZSBjb25maWcuICovXG4gIGJpbj86IEJpblNjcmlwdENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIGRhdGFtb2RlbCBvZiB5b3VyIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vY29sbGVjdGlvbnMjY29sbGVjdGlvbi1jb25maWdzXG4gICAqL1xuICBjb2xsZWN0aW9ucz86IENvbGxlY3Rpb25Db25maWdbXVxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgYnVpbHQtaW4gY29tcG9uZW50cyB3aXRoIGN1c3RvbSBvbmVzXG4gICAqL1xuICBjb21wb25lbnRzPzogeyBba2V5OiBzdHJpbmddOiAoKCkgPT4gSlNYLkVsZW1lbnQpIHwgSlNYLkVsZW1lbnQgfVxuICAvKipcbiAgICogUHJlZml4IGEgc3RyaW5nIHRvIGFsbCBjb29raWVzIHRoYXQgUGF5bG9hZCBzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBheWxvYWRcIlxuICAgKi9cbiAgY29va2llUHJlZml4Pzogc3RyaW5nXG4gIC8qKiBFaXRoZXIgYSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMUyB0byBhbGxvdyBDT1JTIHJlcXVlc3RzIGZyb20sIG9yIGEgd2lsZGNhcmQgc3RyaW5nICgnKicpIHRvIGFjY2VwdCBpbmNvbWluZyByZXF1ZXN0cyBmcm9tIGFueSBkb21haW4uICovXG4gIGNvcnM/OiAnKicgfCBzdHJpbmdbXVxuICAvKiogQSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMcyB0byBhbGxvdyBQYXlsb2FkIGNvb2tpZXMgdG8gYmUgYWNjZXB0ZWQgZnJvbSBhcyBhIGZvcm0gb2YgQ1NSRiBwcm90ZWN0aW9uLiAqL1xuICBjc3JmPzogc3RyaW5nW11cblxuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqIFBhc3MgaW4gYSBkYXRhYmFzZSBhZGFwdGVyIGZvciB1c2Ugb24gdGhpcyBwcm9qZWN0LiAqL1xuICBkYjogRGF0YWJhc2VBZGFwdGVyUmVzdWx0XG4gIC8qKiBFbmFibGUgdG8gZXhwb3NlIG1vcmUgZGV0YWlsZWQgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gIGRlYnVnPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgYSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYGRlcHRoYCB3aGlsZSByZXF1ZXN0aW5nIGEgcmVzb3VyY2UsIHRoaXMgZGVwdGggd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgZGVmYXVsdERlcHRoPzogbnVtYmVyXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA0MDAwMFxuICAgKi9cbiAgZGVmYXVsdE1heFRleHRMZW5ndGg/OiBudW1iZXJcbiAgLyoqIERlZmF1bHQgcmljaHRleHQgZWRpdG9yIHRvIHVzZSBmb3IgcmljaFRleHQgZmllbGRzICovXG4gIGVkaXRvcjogUmljaFRleHRBZGFwdGVyPGFueSwgYW55LCBhbnk+XG4gIC8qKlxuICAgKiBFbWFpbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSBgZW1haWxgIGluIFBheWxvYWQuaW5pdCBpZiBwYXNzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuICAvKiogQ3VzdG9tIFJFU1QgZW5kcG9pbnRzICovXG4gIGVuZHBvaW50cz86IEVuZHBvaW50W11cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZ2xvYmFscyNnbG9iYWwtY29uZmlnc1xuICAgKi9cbiAgZ2xvYmFscz86IEdsb2JhbENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIEdyYXBoUUwgQVBJXG4gICAqXG4gICAqIFlvdSBjYW4gYWRkIHlvdXIgb3duIEdyYXBoUUwgcXVlcmllcyBhbmQgbXV0YXRpb25zIHRvIFBheWxvYWQsIG1ha2luZyB1c2Ugb2YgYWxsIHRoZSB0eXBlcyB0aGF0IFBheWxvYWQgaGFzIGRlZmluZWQgZm9yIHlvdS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9vdmVydmlld1xuICAgKi9cbiAgZ3JhcGhRTD86IHtcbiAgICBkaXNhYmxlPzogYm9vbGVhblxuICAgIGRpc2FibGVQbGF5Z3JvdW5kSW5Qcm9kdWN0aW9uPzogYm9vbGVhblxuICAgIG1heENvbXBsZXhpdHk/OiBudW1iZXJcbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcga2V5cyB0byBjdXN0b20gR3JhcGhRTCBtdXRhdGlvbnNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgbXV0YXRpb25zPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIHF1ZXJpZXNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgcXVlcmllcz86IEdyYXBoUUxFeHRlbnNpb25cbiAgICBzY2hlbWFPdXRwdXRGaWxlPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIFRhcCBpbnRvIFBheWxvYWQtd2lkZSBob29rcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvaG9va3Mvb3ZlcnZpZXdcbiAgICovXG4gIGhvb2tzPzoge1xuICAgIGFmdGVyRXJyb3I/OiBBZnRlckVycm9ySG9va1xuICB9XG4gIC8qKiBpMThuIGNvbmZpZyBzZXR0aW5ncyAqL1xuICBpMThuPzogSTE4bk9wdGlvbnNcbiAgLyoqIEF1dG9tYXRpY2FsbHkgaW5kZXggYWxsIHNvcnRhYmxlIHRvcC1sZXZlbCBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHRvIGltcHJvdmUgc29ydCBwZXJmb3JtYW5jZSBhbmQgYWRkIGRhdGFiYXNlIGNvbXBhdGliaWxpdHkgZm9yIEF6dXJlIENvc21vcyBhbmQgc2ltaWxhci4gKi9cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZSB5b3VyIGNvbnRlbnQgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy9sb2NhbGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAvLyBkaXNhYmxlIGxvY2FsaXphdGlvblxuICAgKi9cbiAgbG9jYWxpemF0aW9uPzogTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgZGVwdGggdG8gYmUgcGVybWl0dGVkIGFwcGxpY2F0aW9uLXdpZGUuIFRoaXMgc2V0dGluZyBoZWxwcyBwcmV2ZW50IGFnYWluc3QgbWFsaWNpb3VzIHF1ZXJpZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9jb25jZXB0cyNkZXB0aFxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKi9cbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgLyoqIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0dXAgdGhhdCByZWNlaXZlcyB0aGUgUGF5bG9hZCBpbnN0YW5jZSBhcyBpdHMgb25seSBhcmd1bWVudC4gKi9cbiAgb25Jbml0PzogKHBheWxvYWQ6IFBheWxvYWQpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXlsb2FkIHBsdWdpbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3BsdWdpbnMvb3ZlcnZpZXdcbiAgICovXG4gIHBsdWdpbnM/OiBQbHVnaW5bXVxuICAvKiogQ29udHJvbCB0aGUgcm91dGluZyBzdHJ1Y3R1cmUgdGhhdCBQYXlsb2FkIGJpbmRzIGl0c2VsZiB0by4gKi9cbiAgcm91dGVzPzoge1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hZG1pblwiICovXG4gICAgYWRtaW4/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvYXBpXCIgICovXG4gICAgYXBpPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWxcIiAgKi9cbiAgICBncmFwaFFMPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWwtcGxheWdyb3VuZFwiICovXG4gICAgZ3JhcGhRTFBsYXlncm91bmQ/OiBzdHJpbmdcbiAgfVxuICAvKiogU2VjdXJlIHN0cmluZyB0aGF0IFBheWxvYWQgd2lsbCB1c2UgZm9yIGFueSBlbmNyeXB0aW9uIHdvcmtmbG93cyAqL1xuICBzZWNyZXQ6IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBhYnNvbHV0ZSBVUkwgb2YgeW91ciBhcHAgaW5jbHVkaW5nIHRoZSBwcm90b2NvbCwgZm9yIGV4YW1wbGUgYGh0dHBzOi8vZXhhbXBsZS5vcmdgLlxuICAgKiBObyBwYXRocyBhbGxvd2VkLCBvbmx5IHByb3RvY29sLCBkb21haW4gYW5kIChvcHRpb25hbGx5KSBwb3J0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3I29wdGlvbnNcbiAgICovXG4gIHNlcnZlclVSTD86IHN0cmluZ1xuICAvKipcbiAgICogUGFzcyBpbiBhIGxvY2FsIGNvcHkgb2YgU2hhcnAgaWYgeW91J2QgbGlrZSB0byB1c2UgaXQuXG4gICAqXG4gICAqL1xuICBzaGFycD86IFNoYXJwRGVwZW5kZW5jeVxuICAvKiogU2VuZCBhbm9ueW1vdXMgdGVsZW1ldHJ5IGRhdGEgYWJvdXQgZ2VuZXJhbCB1c2FnZS4gKi9cbiAgdGVsZW1ldHJ5PzogYm9vbGVhblxuICAvKiogQ29udHJvbCBob3cgdHlwZXNjcmlwdCBpbnRlcmZhY2VzIGFyZSBnZW5lcmF0ZWQgZnJvbSB5b3VyIGNvbGxlY3Rpb25zLiAqL1xuICB0eXBlc2NyaXB0Pzoge1xuICAgIC8qKiBEaXNhYmxlIGRlY2xhcmUgYmxvY2sgaW4gZ2VuZXJhdGVkIHR5cGVzIGZpbGUgKi9cbiAgICBkZWNsYXJlPzogZmFsc2VcbiAgICAvKiogRmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCB0eXBlcyB0byAqL1xuICAgIG91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSBoYW5kbGluZyBvZiBpbmNvbWluZyBmaWxlIHVwbG9hZHMgZm9yIGNvbGxlY3Rpb25zIHRoYXQgaGF2ZSB1cGxvYWRzIGVuYWJsZWQuXG4gICAqL1xuICB1cGxvYWQ/OiBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU2FuaXRpemVkQ29uZmlnID0gT21pdDxcbiAgRGVlcFJlcXVpcmVkPENvbmZpZz4sXG4gICdjb2xsZWN0aW9ucycgfCAnZW5kcG9pbnQnIHwgJ2dsb2JhbHMnIHwgJ2xvY2FsaXphdGlvbidcbj4gJiB7XG4gIGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW11cbiAgZW5kcG9pbnRzOiBFbmRwb2ludFtdXG4gIGdsb2JhbHM6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgcGF0aHM6IHtcbiAgICBjb25maWc6IHN0cmluZ1xuICAgIGNvbmZpZ0Rpcjogc3RyaW5nXG4gICAgcmF3Q29uZmlnOiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBDbGllbnRDb25maWcgPSBPbWl0PFNhbml0aXplZENvbmZpZywgJ2RiJyB8ICdlbmRwb2ludHMnPiAmIHtcbiAgY29sbGVjdGlvbnM6IChPbWl0PFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsICdhY2Nlc3MnIHwgJ2VuZHBvaW50cycgfCAnZmllbGRzJyB8ICdob29rcyc+ICYge1xuICAgIGZpZWxkczogQ2xpZW50Q29uZmlnRmllbGRbXVxuICB9KVtdXG4gIGdsb2JhbHM6IChPbWl0PFNhbml0aXplZEdsb2JhbENvbmZpZywgJ2FjY2VzcycgfCAnZW5kcG9pbnRzJyB8ICdmaWVsZHMnIHwgJ2hvb2tzJz4gJiB7XG4gICAgZmllbGRzOiBDbGllbnRDb25maWdGaWVsZFtdXG4gIH0pW11cbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5RGVzY3JpcHRpb24gPVxuICB8ICgoKSA9PiBzdHJpbmcpXG4gIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICB8IHN0cmluZ1xuIl0sIm5hbWVzIjpbImhhc1RyYW5zcG9ydCIsImhhc1RyYW5zcG9ydE9wdGlvbnMiLCJlbWFpbENvbmZpZyIsInRyYW5zcG9ydCIsInVuZGVmaW5lZCIsInRyYW5zcG9ydE9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBbUdnQkEsWUFBWTtlQUFaQTs7SUFRQUMsbUJBQW1CO2VBQW5CQTs7O0FBUlQsU0FBU0QsYUFBYUUsV0FBeUI7SUFDcEQsT0FBTyxBQUFDQSxZQUErQkMsU0FBUyxLQUFLQztBQUN2RDtBQU1PLFNBQVNILG9CQUNkQyxXQUF5QjtJQUV6QixPQUFPLEFBQUNBLFlBQXNDRyxnQkFBZ0IsS0FBS0Q7QUFDckUifQ==
@@ -1,12 +1,8 @@
1
- /// <reference types="node" />
2
- import sharp from 'sharp';
3
1
  export declare const percentToPixel: (value: any, dimension: any) => number;
4
- export default function cropImage({ cropData, dimensions, file }: {
2
+ export default function cropImage({ cropData, dimensions, file, sharp }: {
5
3
  cropData: any;
6
4
  dimensions: any;
7
5
  file: any;
8
- }): Promise<{
9
- data: Buffer;
10
- info: sharp.OutputInfo;
11
- }>;
6
+ sharp: any;
7
+ }): Promise<any>;
12
8
  //# sourceMappingURL=cropImage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cropImage.d.ts","sourceRoot":"","sources":["../../src/uploads/cropImage.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,cAAc,wCAE1B,CAAA;AAED,wBAA8B,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;;;;CAAA;;;GAoBrE"}
1
+ {"version":3,"file":"cropImage.d.ts","sourceRoot":"","sources":["../../src/uploads/cropImage.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,wCAE1B,CAAA;AAED,wBAA8B,SAAS,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE;;;;;CAAA,gBAoB5E"}
@@ -16,16 +16,10 @@ _export(exports, {
16
16
  return percentToPixel;
17
17
  }
18
18
  });
19
- const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
20
- function _interop_require_default(obj) {
21
- return obj && obj.__esModule ? obj : {
22
- default: obj
23
- };
24
- }
25
19
  const percentToPixel = (value, dimension)=>{
26
20
  return Math.floor(parseFloat(value) / 100 * dimension);
27
21
  };
28
- async function cropImage({ cropData, dimensions, file }) {
22
+ async function cropImage({ cropData, dimensions, file, sharp }) {
29
23
  try {
30
24
  const { height, width, x, y } = cropData;
31
25
  const formattedCropData = {
@@ -34,7 +28,7 @@ async function cropImage({ cropData, dimensions, file }) {
34
28
  top: percentToPixel(y, dimensions.height),
35
29
  width: percentToPixel(width, dimensions.width)
36
30
  };
37
- const cropped = (0, _sharp.default)(file.tempFilePath || file.data).extract(formattedCropData);
31
+ const cropped = sharp(file.tempFilePath || file.data).extract(formattedCropData);
38
32
  return await cropped.toBuffer({
39
33
  resolveWithObject: true
40
34
  });
@@ -44,4 +38,4 @@ async function cropImage({ cropData, dimensions, file }) {
44
38
  }
45
39
  }
46
40
 
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2Nyb3BJbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgc2hhcnAgZnJvbSAnc2hhcnAnXG5cbmV4cG9ydCBjb25zdCBwZXJjZW50VG9QaXhlbCA9ICh2YWx1ZSwgZGltZW5zaW9uKSA9PiB7XG4gIHJldHVybiBNYXRoLmZsb29yKChwYXJzZUZsb2F0KHZhbHVlKSAvIDEwMCkgKiBkaW1lbnNpb24pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7IGhlaWdodCwgd2lkdGgsIHgsIHkgfSA9IGNyb3BEYXRhXG5cbiAgICBjb25zdCBmb3JtYXR0ZWRDcm9wRGF0YSA9IHtcbiAgICAgIGhlaWdodDogcGVyY2VudFRvUGl4ZWwoaGVpZ2h0LCBkaW1lbnNpb25zLmhlaWdodCksXG4gICAgICBsZWZ0OiBwZXJjZW50VG9QaXhlbCh4LCBkaW1lbnNpb25zLndpZHRoKSxcbiAgICAgIHRvcDogcGVyY2VudFRvUGl4ZWwoeSwgZGltZW5zaW9ucy5oZWlnaHQpLFxuICAgICAgd2lkdGg6IHBlcmNlbnRUb1BpeGVsKHdpZHRoLCBkaW1lbnNpb25zLndpZHRoKSxcbiAgICB9XG5cbiAgICBjb25zdCBjcm9wcGVkID0gc2hhcnAoZmlsZS50ZW1wRmlsZVBhdGggfHwgZmlsZS5kYXRhKS5leHRyYWN0KGZvcm1hdHRlZENyb3BEYXRhKVxuXG4gICAgcmV0dXJuIGF3YWl0IGNyb3BwZWQudG9CdWZmZXIoe1xuICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgfSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGBFcnJvciBjcm9wcGluZyBpbWFnZTpgLCBlcnJvcilcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG4iXSwibmFtZXMiOlsiY3JvcEltYWdlIiwicGVyY2VudFRvUGl4ZWwiLCJ2YWx1ZSIsImRpbWVuc2lvbiIsIk1hdGgiLCJmbG9vciIsInBhcnNlRmxvYXQiLCJjcm9wRGF0YSIsImRpbWVuc2lvbnMiLCJmaWxlIiwiaGVpZ2h0Iiwid2lkdGgiLCJ4IiwieSIsImZvcm1hdHRlZENyb3BEYXRhIiwibGVmdCIsInRvcCIsImNyb3BwZWQiLCJzaGFycCIsInRlbXBGaWxlUGF0aCIsImRhdGEiLCJleHRyYWN0IiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsImVycm9yIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFNQSxPQW9CQztlQXBCNkJBOztJQUpqQkMsY0FBYztlQUFkQTs7OzhEQUZLOzs7Ozs7QUFFWCxNQUFNQSxpQkFBaUIsQ0FBQ0MsT0FBT0M7SUFDcEMsT0FBT0MsS0FBS0MsS0FBSyxDQUFDLEFBQUNDLFdBQVdKLFNBQVMsTUFBT0M7QUFDaEQ7QUFFZSxlQUFlSCxVQUFVLEVBQUVPLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUU7SUFDcEUsSUFBSTtRQUNGLE1BQU0sRUFBRUMsTUFBTSxFQUFFQyxLQUFLLEVBQUVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFLEdBQUdOO1FBRWhDLE1BQU1PLG9CQUFvQjtZQUN4QkosUUFBUVQsZUFBZVMsUUFBUUYsV0FBV0UsTUFBTTtZQUNoREssTUFBTWQsZUFBZVcsR0FBR0osV0FBV0csS0FBSztZQUN4Q0ssS0FBS2YsZUFBZVksR0FBR0wsV0FBV0UsTUFBTTtZQUN4Q0MsT0FBT1YsZUFBZVUsT0FBT0gsV0FBV0csS0FBSztRQUMvQztRQUVBLE1BQU1NLFVBQVVDLElBQUFBLGNBQUssRUFBQ1QsS0FBS1UsWUFBWSxJQUFJVixLQUFLVyxJQUFJLEVBQUVDLE9BQU8sQ0FBQ1A7UUFFOUQsT0FBTyxNQUFNRyxRQUFRSyxRQUFRLENBQUM7WUFDNUJDLG1CQUFtQjtRQUNyQjtJQUNGLEVBQUUsT0FBT0MsT0FBTztRQUNkQyxRQUFRRCxLQUFLLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFQTtRQUN2QyxNQUFNQTtJQUNSO0FBQ0YifQ==
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2Nyb3BJbWFnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcGVyY2VudFRvUGl4ZWwgPSAodmFsdWUsIGRpbWVuc2lvbikgPT4ge1xuICByZXR1cm4gTWF0aC5mbG9vcigocGFyc2VGbG9hdCh2YWx1ZSkgLyAxMDApICogZGltZW5zaW9uKVxufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBjcm9wSW1hZ2UoeyBjcm9wRGF0YSwgZGltZW5zaW9ucywgZmlsZSwgc2hhcnAgfSkge1xuICB0cnkge1xuICAgIGNvbnN0IHsgaGVpZ2h0LCB3aWR0aCwgeCwgeSB9ID0gY3JvcERhdGFcblxuICAgIGNvbnN0IGZvcm1hdHRlZENyb3BEYXRhID0ge1xuICAgICAgaGVpZ2h0OiBwZXJjZW50VG9QaXhlbChoZWlnaHQsIGRpbWVuc2lvbnMuaGVpZ2h0KSxcbiAgICAgIGxlZnQ6IHBlcmNlbnRUb1BpeGVsKHgsIGRpbWVuc2lvbnMud2lkdGgpLFxuICAgICAgdG9wOiBwZXJjZW50VG9QaXhlbCh5LCBkaW1lbnNpb25zLmhlaWdodCksXG4gICAgICB3aWR0aDogcGVyY2VudFRvUGl4ZWwod2lkdGgsIGRpbWVuc2lvbnMud2lkdGgpLFxuICAgIH1cblxuICAgIGNvbnN0IGNyb3BwZWQgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLmV4dHJhY3QoZm9ybWF0dGVkQ3JvcERhdGEpXG5cbiAgICByZXR1cm4gYXdhaXQgY3JvcHBlZC50b0J1ZmZlcih7XG4gICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICB9KVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoYEVycm9yIGNyb3BwaW5nIGltYWdlOmAsIGVycm9yKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJjcm9wSW1hZ2UiLCJwZXJjZW50VG9QaXhlbCIsInZhbHVlIiwiZGltZW5zaW9uIiwiTWF0aCIsImZsb29yIiwicGFyc2VGbG9hdCIsImNyb3BEYXRhIiwiZGltZW5zaW9ucyIsImZpbGUiLCJzaGFycCIsImhlaWdodCIsIndpZHRoIiwieCIsInkiLCJmb3JtYXR0ZWRDcm9wRGF0YSIsImxlZnQiLCJ0b3AiLCJjcm9wcGVkIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsImV4dHJhY3QiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwiZXJyb3IiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQUlBLE9Bb0JDO2VBcEI2QkE7O0lBSmpCQyxjQUFjO2VBQWRBOzs7QUFBTixNQUFNQSxpQkFBaUIsQ0FBQ0MsT0FBT0M7SUFDcEMsT0FBT0MsS0FBS0MsS0FBSyxDQUFDLEFBQUNDLFdBQVdKLFNBQVMsTUFBT0M7QUFDaEQ7QUFFZSxlQUFlSCxVQUFVLEVBQUVPLFFBQVEsRUFBRUMsVUFBVSxFQUFFQyxJQUFJLEVBQUVDLEtBQUssRUFBRTtJQUMzRSxJQUFJO1FBQ0YsTUFBTSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBRUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBR1A7UUFFaEMsTUFBTVEsb0JBQW9CO1lBQ3hCSixRQUFRVixlQUFlVSxRQUFRSCxXQUFXRyxNQUFNO1lBQ2hESyxNQUFNZixlQUFlWSxHQUFHTCxXQUFXSSxLQUFLO1lBQ3hDSyxLQUFLaEIsZUFBZWEsR0FBR04sV0FBV0csTUFBTTtZQUN4Q0MsT0FBT1gsZUFBZVcsT0FBT0osV0FBV0ksS0FBSztRQUMvQztRQUVBLE1BQU1NLFVBQVVSLE1BQU1ELEtBQUtVLFlBQVksSUFBSVYsS0FBS1csSUFBSSxFQUFFQyxPQUFPLENBQUNOO1FBRTlELE9BQU8sTUFBTUcsUUFBUUksUUFBUSxDQUFDO1lBQzVCQyxtQkFBbUI7UUFDckI7SUFDRixFQUFFLE9BQU9DLE9BQU87UUFDZEMsUUFBUUQsS0FBSyxDQUFDLENBQUMscUJBQXFCLENBQUMsRUFBRUE7UUFDdkMsTUFBTUE7SUFDUjtBQUNGIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAY,UAAU,EAAmB,MAAM,SAAS,CAAA;AAYpE,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,iIA+N5B,CAAA"}
1
+ {"version":3,"file":"generateFileData.d.ts","sourceRoot":"","sources":["../../src/uploads/generateFileData.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAC7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,KAAK,EAAY,UAAU,EAAmB,MAAM,SAAS,CAAA;AAYpE,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,UAAU,CAAA;IACtB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,UAAU,EAAE,CAAA;CACpB,CAAC,CAAA;AAEF,eAAO,MAAM,gBAAgB,iIAkO5B,CAAA"}
@@ -12,7 +12,6 @@ const _filetype = require("file-type");
12
12
  const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
13
13
  const _mkdirp = /*#__PURE__*/ _interop_require_default(require("mkdirp"));
14
14
  const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("sanitize-filename"));
15
- const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
16
15
  const _errors = require("../errors");
17
16
  const _canResizeImage = /*#__PURE__*/ _interop_require_default(require("./canResizeImage"));
18
17
  const _cropImage = /*#__PURE__*/ _interop_require_default(require("./cropImage"));
@@ -34,6 +33,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, data
34
33
  files: []
35
34
  };
36
35
  }
36
+ const { sharp } = req.payload.config;
37
37
  let file = req.file;
38
38
  const { searchParams } = req;
39
39
  const uploadEdits = searchParams.get('uploadEdits') || {};
@@ -84,12 +84,12 @@ const generateFileData = async ({ collection: { config: collectionConfig }, data
84
84
  const fileHasAdjustments = fileSupportsResize && Boolean(resizeOptions || formatOptions || trimOptions || file.tempFilePath);
85
85
  const sharpOptions = {};
86
86
  if (fileIsAnimated) sharpOptions.animated = true;
87
- if (fileHasAdjustments) {
87
+ if (fileHasAdjustments && sharp) {
88
88
  if (file.tempFilePath) {
89
- sharpFile = (0, _sharp.default)(file.tempFilePath, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
89
+ sharpFile = sharp(file.tempFilePath, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
90
90
  ;
91
91
  } else {
92
- sharpFile = (0, _sharp.default)(file.data, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
92
+ sharpFile = sharp(file.data, sharpOptions).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
93
93
  ;
94
94
  }
95
95
  if (resizeOptions) {
@@ -146,11 +146,12 @@ const generateFileData = async ({ collection: { config: collectionConfig }, data
146
146
  }
147
147
  fileData.filename = fsSafeName;
148
148
  let fileForResize = file;
149
- if (cropData) {
149
+ if (cropData && sharp) {
150
150
  const { data: croppedImage, info } = await (0, _cropImage.default)({
151
151
  cropData,
152
152
  dimensions,
153
- file
153
+ file,
154
+ sharp
154
155
  });
155
156
  filesToSave.push({
156
157
  buffer: croppedImage,
@@ -190,7 +191,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, data
190
191
  }
191
192
  }
192
193
  }
193
- if (Array.isArray(imageSizes) && fileSupportsResize) {
194
+ if (Array.isArray(imageSizes) && fileSupportsResize && sharp) {
194
195
  req.payloadUploadSizes = {};
195
196
  const { sizeData, sizesToSave } = await (0, _imageResizer.default)({
196
197
  config: collectionConfig,
@@ -203,6 +204,7 @@ const generateFileData = async ({ collection: { config: collectionConfig }, data
203
204
  mimeType: fileData.mimeType,
204
205
  req,
205
206
  savedFilename: fsSafeName || file.name,
207
+ sharp,
206
208
  staticPath
207
209
  });
208
210
  fileData.sizes = sizeData;
@@ -222,4 +224,4 @@ const generateFileData = async ({ collection: { config: collectionConfig }, data
222
224
  };
223
225
  };
224
226
 
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPdXRwdXRJbmZvLCBTaGFycCwgU2hhcnBPcHRpb25zIH0gZnJvbSAnc2hhcnAnXG5cbmltcG9ydCB7IGZyb21CdWZmZXIgfSBmcm9tICdmaWxlLXR5cGUnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgbWtkaXJwIGZyb20gJ21rZGlycCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVEYXRhLCBGaWxlVG9TYXZlLCBQcm9iZWRJbWFnZVNpemUgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzPzogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHRocm93T25NaXNzaW5nRmlsZT86IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQ8VD4gPSBQcm9taXNlPHtcbiAgZGF0YTogVFxuICBmaWxlczogRmlsZVRvU2F2ZVtdXG59PlxuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVGaWxlRGF0YSA9IGFzeW5jIDxUPih7XG4gIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gIGRhdGEsXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMsXG4gIHJlcSxcbiAgdGhyb3dPbk1pc3NpbmdGaWxlLFxufTogQXJnczxUPik6IFJlc3VsdDxUPiA9PiB7XG4gIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBsZXQgZmlsZSA9IHJlcS5maWxlXG5cbiAgY29uc3QgeyBzZWFyY2hQYXJhbXMgfSA9IHJlcVxuICBjb25zdCB1cGxvYWRFZGl0cyA9IHNlYXJjaFBhcmFtcy5nZXQoJ3VwbG9hZEVkaXRzJykgfHwge31cblxuICBjb25zdCB7IGRpc2FibGVMb2NhbFN0b3JhZ2UsIGZvcm1hdE9wdGlvbnMsIGltYWdlU2l6ZXMsIHJlc2l6ZU9wdGlvbnMsIHN0YXRpY0RpciwgdHJpbU9wdGlvbnMgfSA9XG4gICAgY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBjb25zdCBzdGF0aWNQYXRoID0gc3RhdGljRGlyXG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGEgYXMgRmlsZURhdGFcblxuICAgIHRyeSB7XG4gICAgICBpZiAodXJsICYmIHVybC5zdGFydHNXaXRoKCcvJykgJiYgIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQnlQYXRoKGZpbGVQYXRoKVxuICAgICAgICBmaWxlID0gcmVzcG9uc2VcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH0gZWxzZSBpZiAoZmlsZW5hbWUgJiYgdXJsKSB7XG4gICAgICAgIGZpbGUgPSBhd2FpdCBnZXRFeHRlcm5hbEZpbGUoeyBkYXRhOiBkYXRhIGFzIEZpbGVEYXRhLCByZXEgfSlcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlVXBsb2FkRXJyb3IocmVxLnQpXG4gICAgfVxuICB9XG5cbiAgaWYgKCFmaWxlKSB7XG4gICAgaWYgKHRocm93T25NaXNzaW5nRmlsZSkgdGhyb3cgbmV3IE1pc3NpbmdGaWxlKHJlcS50KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgaWYgKCFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgbWtkaXJwLnN5bmMoc3RhdGljUGF0aClcbiAgfVxuXG4gIGxldCBuZXdEYXRhID0gZGF0YVxuICBjb25zdCBmaWxlc1RvU2F2ZTogRmlsZVRvU2F2ZVtdID0gW11cbiAgY29uc3QgZmlsZURhdGE6IFBhcnRpYWw8RmlsZURhdGE+ID0ge31cbiAgY29uc3QgZmlsZUlzQW5pbWF0ZWQgPSBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2UvZ2lmJyB8fCBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2Uvd2VicCdcbiAgY29uc3QgY3JvcERhdGEgPVxuICAgIHR5cGVvZiB1cGxvYWRFZGl0cyA9PT0gJ29iamVjdCcgJiYgJ2Nyb3AnIGluIHVwbG9hZEVkaXRzID8gdXBsb2FkRWRpdHMuY3JvcCA6IHVuZGVmaW5lZFxuXG4gIHRyeSB7XG4gICAgY29uc3QgZmlsZVN1cHBvcnRzUmVzaXplID0gY2FuUmVzaXplSW1hZ2UoZmlsZS5taW1ldHlwZSlcbiAgICBsZXQgZnNTYWZlTmFtZTogc3RyaW5nXG4gICAgbGV0IHNoYXJwRmlsZTogU2hhcnAgfCB1bmRlZmluZWRcbiAgICBsZXQgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplIHwgdW5kZWZpbmVkXG4gICAgbGV0IGZpbGVCdWZmZXI6IHsgZGF0YTogQnVmZmVyOyBpbmZvOiBPdXRwdXRJbmZvIH1cbiAgICBsZXQgZXh0XG4gICAgbGV0IG1pbWU6IHN0cmluZ1xuICAgIGNvbnN0IGZpbGVIYXNBZGp1c3RtZW50cyA9XG4gICAgICBmaWxlU3VwcG9ydHNSZXNpemUgJiZcbiAgICAgIEJvb2xlYW4ocmVzaXplT3B0aW9ucyB8fCBmb3JtYXRPcHRpb25zIHx8IHRyaW1PcHRpb25zIHx8IGZpbGUudGVtcEZpbGVQYXRoKVxuXG4gICAgY29uc3Qgc2hhcnBPcHRpb25zOiBTaGFycE9wdGlvbnMgPSB7fVxuXG4gICAgaWYgKGZpbGVJc0FuaW1hdGVkKSBzaGFycE9wdGlvbnMuYW5pbWF0ZWQgPSB0cnVlXG5cbiAgICBpZiAoZmlsZUhhc0FkanVzdG1lbnRzKSB7XG4gICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS50ZW1wRmlsZVBhdGgsIHNoYXJwT3B0aW9ucykucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLmRhdGEsIHNoYXJwT3B0aW9ucykucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNpemVPcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS5yZXNpemUocmVzaXplT3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmIChmb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50b0Zvcm1hdChmb3JtYXRPcHRpb25zLmZvcm1hdCwgZm9ybWF0T3B0aW9ucy5vcHRpb25zKVxuICAgICAgfVxuICAgICAgaWYgKHRyaW1PcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50cmltKHRyaW1PcHRpb25zKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgZmlsZUJ1ZmZlciA9IGF3YWl0IHNoYXJwRmlsZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG4gICAgICA7KHsgZXh0LCBtaW1lIH0gPSBhd2FpdCBmcm9tQnVmZmVyKGZpbGVCdWZmZXIuZGF0YSkpIC8vIFRoaXMgaXMgZ2V0dGluZyBhbiBpbmNvcnJlY3QgZ2lmIGhlaWdodCBiYWNrLlxuICAgICAgZmlsZURhdGEud2lkdGggPSBmaWxlQnVmZmVyLmluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5pbmZvLnNpemVcblxuICAgICAgLy8gQW5pbWF0ZWQgR0lGcyArIFdlYlAgYWdncmVnYXRlIHRoZSBoZWlnaHQgZnJvbSBldmVyeSBmcmFtZSwgc28gd2UgbmVlZCB0byB1c2UgZGl2aWRlIGJ5IG51bWJlciBvZiBwYWdlc1xuICAgICAgaWYgKG1ldGFkYXRhLnBhZ2VzKSB7XG4gICAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHQgLyBtZXRhZGF0YS5wYWdlc1xuICAgICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuZGF0YS5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWltZSA9IGZpbGUubWltZXR5cGVcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZS5zaXplXG5cbiAgICAgIGlmIChmaWxlLm5hbWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXh0ID0gJydcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZHVzdCBTVkcgbWltZSB0eXBlLiBmcm9tQnVmZmVyIG1vZGlmaWVzIGl0LlxuICAgIGlmIChtaW1lID09PSAnYXBwbGljYXRpb24veG1sJyAmJiBleHQgPT09ICdzdmcnKSBtaW1lID0gJ2ltYWdlL3N2Zyt4bWwnXG4gICAgZmlsZURhdGEubWltZVR5cGUgPSBtaW1lXG5cbiAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBzYW5pdGl6ZShmaWxlLm5hbWUuc3Vic3RyaW5nKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKSB8fCBmaWxlLm5hbWUpXG4gICAgZnNTYWZlTmFtZSA9IGAke2Jhc2VGaWxlbmFtZX0ke2V4dCA/IGAuJHtleHR9YCA6ICcnfWBcblxuICAgIGlmICghb3ZlcndyaXRlRXhpc3RpbmdGaWxlcykge1xuICAgICAgZnNTYWZlTmFtZSA9IGF3YWl0IGdldFNhZmVGaWxlTmFtZSh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGRlc2lyZWRGaWxlbmFtZTogZnNTYWZlTmFtZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBmaWxlRGF0YS5maWxlbmFtZSA9IGZzU2FmZU5hbWVcbiAgICBsZXQgZmlsZUZvclJlc2l6ZSA9IGZpbGVcblxuICAgIGlmIChjcm9wRGF0YSkge1xuICAgICAgY29uc3QgeyBkYXRhOiBjcm9wcGVkSW1hZ2UsIGluZm8gfSA9IGF3YWl0IGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlIH0pXG5cbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICBidWZmZXI6IGNyb3BwZWRJbWFnZSxcbiAgICAgICAgcGF0aDogYCR7c3RhdGljUGF0aH0vJHtmc1NhZmVOYW1lfWAsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRm9yUmVzaXplID0ge1xuICAgICAgICAuLi5maWxlLFxuICAgICAgICBkYXRhOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHNpemU6IGluZm8uc2l6ZSxcbiAgICAgIH1cbiAgICAgIGZpbGVEYXRhLndpZHRoID0gaW5mby53aWR0aFxuICAgICAgZmlsZURhdGEuaGVpZ2h0ID0gaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gaW5mby5zaXplXG5cbiAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGNyb3BwZWRJbWFnZSkgLy8gd3JpdGUgZmlsZUJ1ZmZlciB0byB0aGUgdGVtcCBwYXRoXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXEuZmlsZSA9IGZpbGVGb3JSZXNpemVcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgZmlsZXNUb1NhdmUucHVzaCh7XG4gICAgICAgIGJ1ZmZlcjogZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgLy8gSWYgdXNpbmcgdGVtcCBmaWxlcyBhbmQgdGhlIGltYWdlIGlzIGJlaW5nIHJlc2l6ZWQsIHdyaXRlIHRoZSBmaWxlIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgIGlmIChmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGlmIChmaWxlLnRlbXBGaWxlUGF0aCkge1xuICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlLnRlbXBGaWxlUGF0aCwgZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIEFzc2lnbiB0aGUgX3Bvc3NpYmx5IG1vZGlmaWVkXyBmaWxlIHRvIHRoZSByZXF1ZXN0IG9iamVjdFxuICAgICAgICAgIHJlcS5maWxlID0ge1xuICAgICAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgICAgIGRhdGE6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICAgICAgc2l6ZTogZmlsZUJ1ZmZlcj8uaW5mby5zaXplLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChBcnJheS5pc0FycmF5KGltYWdlU2l6ZXMpICYmIGZpbGVTdXBwb3J0c1Jlc2l6ZSkge1xuICAgICAgcmVxLnBheWxvYWRVcGxvYWRTaXplcyA9IHt9XG4gICAgICBjb25zdCB7IHNpemVEYXRhLCBzaXplc1RvU2F2ZSB9ID0gYXdhaXQgcmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyh7XG4gICAgICAgIGNvbmZpZzogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgZGltZW5zaW9uczogIWNyb3BEYXRhXG4gICAgICAgICAgPyBkaW1lbnNpb25zXG4gICAgICAgICAgOiB7XG4gICAgICAgICAgICAgIC4uLmRpbWVuc2lvbnMsXG4gICAgICAgICAgICAgIGhlaWdodDogZmlsZURhdGEuaGVpZ2h0LFxuICAgICAgICAgICAgICB3aWR0aDogZmlsZURhdGEud2lkdGgsXG4gICAgICAgICAgICB9LFxuICAgICAgICBmaWxlOiBmaWxlRm9yUmVzaXplLFxuICAgICAgICBtaW1lVHlwZTogZmlsZURhdGEubWltZVR5cGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2F2ZWRGaWxlbmFtZTogZnNTYWZlTmFtZSB8fCBmaWxlLm5hbWUsXG4gICAgICAgIHN0YXRpY1BhdGgsXG4gICAgICB9KVxuXG4gICAgICBmaWxlRGF0YS5zaXplcyA9IHNpemVEYXRhXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKC4uLnNpemVzVG9TYXZlKVxuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgdGhyb3cgbmV3IEZpbGVVcGxvYWRFcnJvcihyZXEudClcbiAgfVxuXG4gIG5ld0RhdGEgPSB7XG4gICAgLi4ubmV3RGF0YSxcbiAgICAuLi5maWxlRGF0YSxcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgZGF0YTogbmV3RGF0YSxcbiAgICBmaWxlczogZmlsZXNUb1NhdmUsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJnZW5lcmF0ZUZpbGVEYXRhIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImNvbGxlY3Rpb25Db25maWciLCJkYXRhIiwib3ZlcndyaXRlRXhpc3RpbmdGaWxlcyIsInJlcSIsInRocm93T25NaXNzaW5nRmlsZSIsInVwbG9hZCIsImZpbGVzIiwiZmlsZSIsInNlYXJjaFBhcmFtcyIsInVwbG9hZEVkaXRzIiwiZ2V0IiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsImZvcm1hdE9wdGlvbnMiLCJpbWFnZVNpemVzIiwicmVzaXplT3B0aW9ucyIsInN0YXRpY0RpciIsInRyaW1PcHRpb25zIiwic3RhdGljUGF0aCIsImZpbGVuYW1lIiwidXJsIiwic3RhcnRzV2l0aCIsImZpbGVQYXRoIiwicmVzcG9uc2UiLCJnZXRGaWxlQnlQYXRoIiwiZ2V0RXh0ZXJuYWxGaWxlIiwiZXJyIiwiRmlsZVVwbG9hZEVycm9yIiwidCIsIk1pc3NpbmdGaWxlIiwibWtkaXJwIiwic3luYyIsIm5ld0RhdGEiLCJmaWxlc1RvU2F2ZSIsImZpbGVEYXRhIiwiZmlsZUlzQW5pbWF0ZWQiLCJtaW1ldHlwZSIsImNyb3BEYXRhIiwiY3JvcCIsInVuZGVmaW5lZCIsImZpbGVTdXBwb3J0c1Jlc2l6ZSIsImNhblJlc2l6ZUltYWdlIiwiZnNTYWZlTmFtZSIsInNoYXJwRmlsZSIsImRpbWVuc2lvbnMiLCJmaWxlQnVmZmVyIiwiZXh0IiwibWltZSIsImZpbGVIYXNBZGp1c3RtZW50cyIsIkJvb2xlYW4iLCJ0ZW1wRmlsZVBhdGgiLCJzaGFycE9wdGlvbnMiLCJhbmltYXRlZCIsInNoYXJwIiwicm90YXRlIiwicmVzaXplIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbSIsImlzSW1hZ2UiLCJnZXRJbWFnZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm1ldGFkYXRhIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsImZyb21CdWZmZXIiLCJpbmZvIiwiZmlsZXNpemUiLCJzaXplIiwicGFnZXMiLCJsZW5ndGgiLCJuYW1lIiwiaW5jbHVkZXMiLCJzcGxpdCIsInBvcCIsIm1pbWVUeXBlIiwiYmFzZUZpbGVuYW1lIiwic2FuaXRpemUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImdldFNhZmVGaWxlTmFtZSIsImNvbGxlY3Rpb25TbHVnIiwic2x1ZyIsImRlc2lyZWRGaWxlbmFtZSIsImZpbGVGb3JSZXNpemUiLCJjcm9wcGVkSW1hZ2UiLCJjcm9wSW1hZ2UiLCJwdXNoIiwiYnVmZmVyIiwicGF0aCIsImZzIiwicHJvbWlzZXMiLCJ3cml0ZUZpbGUiLCJBcnJheSIsImlzQXJyYXkiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJzaXplRGF0YSIsInNpemVzVG9TYXZlIiwicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsInNhdmVkRmlsZW5hbWUiLCJzaXplcyIsImNvbnNvbGUiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFxQ2FBOzs7ZUFBQUE7OzswQkFuQ2M7MkRBQ1o7K0RBQ0k7eUVBQ0U7OERBQ0g7d0JBTzJCO3VFQUNsQjtrRUFDTDtpQ0FDVTtzRUFDTjtxRUFDRDt3RUFDRztxRUFDYTtnRUFDckI7Ozs7OztBQWdCYixNQUFNQSxtQkFBbUIsT0FBVSxFQUN4Q0MsWUFBWSxFQUFFQyxRQUFRQyxnQkFBZ0IsRUFBRSxFQUN4Q0MsSUFBSSxFQUNKQyxzQkFBc0IsRUFDdEJDLEdBQUcsRUFDSEMsa0JBQWtCLEVBQ1Y7SUFDUixJQUFJLENBQUNKLGlCQUFpQkssTUFBTSxFQUFFO1FBQzVCLE9BQU87WUFDTEo7WUFDQUssT0FBTyxFQUFFO1FBQ1g7SUFDRjtJQUVBLElBQUlDLE9BQU9KLElBQUlJLElBQUk7SUFFbkIsTUFBTSxFQUFFQyxZQUFZLEVBQUUsR0FBR0w7SUFDekIsTUFBTU0sY0FBY0QsYUFBYUUsR0FBRyxDQUFDLGtCQUFrQixDQUFDO0lBRXhELE1BQU0sRUFBRUMsbUJBQW1CLEVBQUVDLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxhQUFhLEVBQUVDLFNBQVMsRUFBRUMsV0FBVyxFQUFFLEdBQzdGaEIsaUJBQWlCSyxNQUFNO0lBRXpCLE1BQU1ZLGFBQWFGO0lBRW5CLElBQUksQ0FBQ1IsUUFBUUUsZUFBZVIsTUFBTTtRQUNoQyxNQUFN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
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPdXRwdXRJbmZvLCBTaGFycCwgU2hhcnBPcHRpb25zIH0gZnJvbSAnc2hhcnAnXG5cbmltcG9ydCB7IGZyb21CdWZmZXIgfSBmcm9tICdmaWxlLXR5cGUnXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgbWtkaXJwIGZyb20gJ21rZGlycCdcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuLi9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEZpbGVEYXRhLCBGaWxlVG9TYXZlLCBQcm9iZWRJbWFnZVNpemUgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBGaWxlVXBsb2FkRXJyb3IsIE1pc3NpbmdGaWxlIH0gZnJvbSAnLi4vZXJyb3JzJ1xuaW1wb3J0IGNhblJlc2l6ZUltYWdlIGZyb20gJy4vY2FuUmVzaXplSW1hZ2UnXG5pbXBvcnQgY3JvcEltYWdlIGZyb20gJy4vY3JvcEltYWdlJ1xuaW1wb3J0IHsgZ2V0RXh0ZXJuYWxGaWxlIH0gZnJvbSAnLi9nZXRFeHRlcm5hbEZpbGUnXG5pbXBvcnQgZ2V0RmlsZUJ5UGF0aCBmcm9tICcuL2dldEZpbGVCeVBhdGgnXG5pbXBvcnQgZ2V0SW1hZ2VTaXplIGZyb20gJy4vZ2V0SW1hZ2VTaXplJ1xuaW1wb3J0IGdldFNhZmVGaWxlTmFtZSBmcm9tICcuL2dldFNhZmVGaWxlbmFtZSdcbmltcG9ydCByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIGZyb20gJy4vaW1hZ2VSZXNpemVyJ1xuaW1wb3J0IGlzSW1hZ2UgZnJvbSAnLi9pc0ltYWdlJ1xuXG50eXBlIEFyZ3M8VD4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgZGF0YTogVFxuICBvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzPzogYm9vbGVhblxuICByZXE6IFBheWxvYWRSZXF1ZXN0XG4gIHRocm93T25NaXNzaW5nRmlsZT86IGJvb2xlYW5cbn1cblxudHlwZSBSZXN1bHQ8VD4gPSBQcm9taXNlPHtcbiAgZGF0YTogVFxuICBmaWxlczogRmlsZVRvU2F2ZVtdXG59PlxuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVGaWxlRGF0YSA9IGFzeW5jIDxUPih7XG4gIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gIGRhdGEsXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMsXG4gIHJlcSxcbiAgdGhyb3dPbk1pc3NpbmdGaWxlLFxufTogQXJnczxUPik6IFJlc3VsdDxUPiA9PiB7XG4gIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGF0YSxcbiAgICAgIGZpbGVzOiBbXSxcbiAgICB9XG4gIH1cblxuICBjb25zdCB7IHNoYXJwIH0gPSByZXEucGF5bG9hZC5jb25maWdcblxuICBsZXQgZmlsZSA9IHJlcS5maWxlXG5cbiAgY29uc3QgeyBzZWFyY2hQYXJhbXMgfSA9IHJlcVxuICBjb25zdCB1cGxvYWRFZGl0cyA9IHNlYXJjaFBhcmFtcy5nZXQoJ3VwbG9hZEVkaXRzJykgfHwge31cblxuICBjb25zdCB7IGRpc2FibGVMb2NhbFN0b3JhZ2UsIGZvcm1hdE9wdGlvbnMsIGltYWdlU2l6ZXMsIHJlc2l6ZU9wdGlvbnMsIHN0YXRpY0RpciwgdHJpbU9wdGlvbnMgfSA9XG4gICAgY29sbGVjdGlvbkNvbmZpZy51cGxvYWRcblxuICBjb25zdCBzdGF0aWNQYXRoID0gc3RhdGljRGlyXG5cbiAgaWYgKCFmaWxlICYmIHVwbG9hZEVkaXRzICYmIGRhdGEpIHtcbiAgICBjb25zdCB7IGZpbGVuYW1lLCB1cmwgfSA9IGRhdGEgYXMgRmlsZURhdGFcblxuICAgIHRyeSB7XG4gICAgICBpZiAodXJsICYmIHVybC5zdGFydHNXaXRoKCcvJykgJiYgIWRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgY29uc3QgZmlsZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ZpbGVuYW1lfWBcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXRGaWxlQnlQYXRoKGZpbGVQYXRoKVxuICAgICAgICBmaWxlID0gcmVzcG9uc2VcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH0gZWxzZSBpZiAoZmlsZW5hbWUgJiYgdXJsKSB7XG4gICAgICAgIGZpbGUgPSBhd2FpdCBnZXRFeHRlcm5hbEZpbGUoeyBkYXRhOiBkYXRhIGFzIEZpbGVEYXRhLCByZXEgfSlcbiAgICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IHRydWVcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlVXBsb2FkRXJyb3IocmVxLnQpXG4gICAgfVxuICB9XG5cbiAgaWYgKCFmaWxlKSB7XG4gICAgaWYgKHRocm93T25NaXNzaW5nRmlsZSkgdGhyb3cgbmV3IE1pc3NpbmdGaWxlKHJlcS50KVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGEsXG4gICAgICBmaWxlczogW10sXG4gICAgfVxuICB9XG5cbiAgaWYgKCFkaXNhYmxlTG9jYWxTdG9yYWdlKSB7XG4gICAgbWtkaXJwLnN5bmMoc3RhdGljUGF0aClcbiAgfVxuXG4gIGxldCBuZXdEYXRhID0gZGF0YVxuICBjb25zdCBmaWxlc1RvU2F2ZTogRmlsZVRvU2F2ZVtdID0gW11cbiAgY29uc3QgZmlsZURhdGE6IFBhcnRpYWw8RmlsZURhdGE+ID0ge31cbiAgY29uc3QgZmlsZUlzQW5pbWF0ZWQgPSBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2UvZ2lmJyB8fCBmaWxlLm1pbWV0eXBlID09PSAnaW1hZ2Uvd2VicCdcbiAgY29uc3QgY3JvcERhdGEgPVxuICAgIHR5cGVvZiB1cGxvYWRFZGl0cyA9PT0gJ29iamVjdCcgJiYgJ2Nyb3AnIGluIHVwbG9hZEVkaXRzID8gdXBsb2FkRWRpdHMuY3JvcCA6IHVuZGVmaW5lZFxuXG4gIHRyeSB7XG4gICAgY29uc3QgZmlsZVN1cHBvcnRzUmVzaXplID0gY2FuUmVzaXplSW1hZ2UoZmlsZS5taW1ldHlwZSlcbiAgICBsZXQgZnNTYWZlTmFtZTogc3RyaW5nXG4gICAgbGV0IHNoYXJwRmlsZTogU2hhcnAgfCB1bmRlZmluZWRcbiAgICBsZXQgZGltZW5zaW9uczogUHJvYmVkSW1hZ2VTaXplIHwgdW5kZWZpbmVkXG4gICAgbGV0IGZpbGVCdWZmZXI6IHsgZGF0YTogQnVmZmVyOyBpbmZvOiBPdXRwdXRJbmZvIH1cbiAgICBsZXQgZXh0XG4gICAgbGV0IG1pbWU6IHN0cmluZ1xuICAgIGNvbnN0IGZpbGVIYXNBZGp1c3RtZW50cyA9XG4gICAgICBmaWxlU3VwcG9ydHNSZXNpemUgJiZcbiAgICAgIEJvb2xlYW4ocmVzaXplT3B0aW9ucyB8fCBmb3JtYXRPcHRpb25zIHx8IHRyaW1PcHRpb25zIHx8IGZpbGUudGVtcEZpbGVQYXRoKVxuXG4gICAgY29uc3Qgc2hhcnBPcHRpb25zOiBTaGFycE9wdGlvbnMgPSB7fVxuXG4gICAgaWYgKGZpbGVJc0FuaW1hdGVkKSBzaGFycE9wdGlvbnMuYW5pbWF0ZWQgPSB0cnVlXG5cbiAgICBpZiAoZmlsZUhhc0FkanVzdG1lbnRzICYmIHNoYXJwKSB7XG4gICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgc2hhcnBGaWxlID0gc2hhcnAoZmlsZS50ZW1wRmlsZVBhdGgsIHNoYXJwT3B0aW9ucykucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzaGFycEZpbGUgPSBzaGFycChmaWxlLmRhdGEsIHNoYXJwT3B0aW9ucykucm90YXRlKCkgLy8gcGFzcyByb3RhdGUoKSB0byBhdXRvLXJvdGF0ZSBiYXNlZCBvbiBFWElGIGRhdGEuIGh0dHBzOi8vZ2l0aHViLmNvbS9wYXlsb2FkY21zL3BheWxvYWQvcHVsbC8zMDgxXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXNpemVPcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS5yZXNpemUocmVzaXplT3B0aW9ucylcbiAgICAgIH1cbiAgICAgIGlmIChmb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50b0Zvcm1hdChmb3JtYXRPcHRpb25zLmZvcm1hdCwgZm9ybWF0T3B0aW9ucy5vcHRpb25zKVxuICAgICAgfVxuICAgICAgaWYgKHRyaW1PcHRpb25zKSB7XG4gICAgICAgIHNoYXJwRmlsZSA9IHNoYXJwRmlsZS50cmltKHRyaW1PcHRpb25zKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc0ltYWdlKGZpbGUubWltZXR5cGUpKSB7XG4gICAgICBkaW1lbnNpb25zID0gYXdhaXQgZ2V0SW1hZ2VTaXplKGZpbGUpXG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGRpbWVuc2lvbnMud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0XG4gICAgfVxuXG4gICAgaWYgKHNoYXJwRmlsZSkge1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSBhd2FpdCBzaGFycEZpbGUubWV0YWRhdGEoKVxuICAgICAgZmlsZUJ1ZmZlciA9IGF3YWl0IHNoYXJwRmlsZS50b0J1ZmZlcih7IHJlc29sdmVXaXRoT2JqZWN0OiB0cnVlIH0pXG4gICAgICA7KHsgZXh0LCBtaW1lIH0gPSBhd2FpdCBmcm9tQnVmZmVyKGZpbGVCdWZmZXIuZGF0YSkpIC8vIFRoaXMgaXMgZ2V0dGluZyBhbiBpbmNvcnJlY3QgZ2lmIGhlaWdodCBiYWNrLlxuICAgICAgZmlsZURhdGEud2lkdGggPSBmaWxlQnVmZmVyLmluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHRcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZUJ1ZmZlci5pbmZvLnNpemVcblxuICAgICAgLy8gQW5pbWF0ZWQgR0lGcyArIFdlYlAgYWdncmVnYXRlIHRoZSBoZWlnaHQgZnJvbSBldmVyeSBmcmFtZSwgc28gd2UgbmVlZCB0byB1c2UgZGl2aWRlIGJ5IG51bWJlciBvZiBwYWdlc1xuICAgICAgaWYgKG1ldGFkYXRhLnBhZ2VzKSB7XG4gICAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGZpbGVCdWZmZXIuaW5mby5oZWlnaHQgLyBtZXRhZGF0YS5wYWdlc1xuICAgICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGZpbGVCdWZmZXIuZGF0YS5sZW5ndGhcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWltZSA9IGZpbGUubWltZXR5cGVcbiAgICAgIGZpbGVEYXRhLmZpbGVzaXplID0gZmlsZS5zaXplXG5cbiAgICAgIGlmIChmaWxlLm5hbWUuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBleHQgPSBmaWxlLm5hbWUuc3BsaXQoJy4nKS5wb3AoKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZXh0ID0gJydcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBBZHVzdCBTVkcgbWltZSB0eXBlLiBmcm9tQnVmZmVyIG1vZGlmaWVzIGl0LlxuICAgIGlmIChtaW1lID09PSAnYXBwbGljYXRpb24veG1sJyAmJiBleHQgPT09ICdzdmcnKSBtaW1lID0gJ2ltYWdlL3N2Zyt4bWwnXG4gICAgZmlsZURhdGEubWltZVR5cGUgPSBtaW1lXG5cbiAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBzYW5pdGl6ZShmaWxlLm5hbWUuc3Vic3RyaW5nKDAsIGZpbGUubmFtZS5sYXN0SW5kZXhPZignLicpKSB8fCBmaWxlLm5hbWUpXG4gICAgZnNTYWZlTmFtZSA9IGAke2Jhc2VGaWxlbmFtZX0ke2V4dCA/IGAuJHtleHR9YCA6ICcnfWBcblxuICAgIGlmICghb3ZlcndyaXRlRXhpc3RpbmdGaWxlcykge1xuICAgICAgZnNTYWZlTmFtZSA9IGF3YWl0IGdldFNhZmVGaWxlTmFtZSh7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGRlc2lyZWRGaWxlbmFtZTogZnNTYWZlTmFtZSxcbiAgICAgICAgcmVxLFxuICAgICAgICBzdGF0aWNQYXRoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBmaWxlRGF0YS5maWxlbmFtZSA9IGZzU2FmZU5hbWVcbiAgICBsZXQgZmlsZUZvclJlc2l6ZSA9IGZpbGVcblxuICAgIGlmIChjcm9wRGF0YSAmJiBzaGFycCkge1xuICAgICAgY29uc3QgeyBkYXRhOiBjcm9wcGVkSW1hZ2UsIGluZm8gfSA9IGF3YWl0IGNyb3BJbWFnZSh7IGNyb3BEYXRhLCBkaW1lbnNpb25zLCBmaWxlLCBzaGFycCB9KVxuXG4gICAgICBmaWxlc1RvU2F2ZS5wdXNoKHtcbiAgICAgICAgYnVmZmVyOiBjcm9wcGVkSW1hZ2UsXG4gICAgICAgIHBhdGg6IGAke3N0YXRpY1BhdGh9LyR7ZnNTYWZlTmFtZX1gLFxuICAgICAgfSlcblxuICAgICAgZmlsZUZvclJlc2l6ZSA9IHtcbiAgICAgICAgLi4uZmlsZSxcbiAgICAgICAgZGF0YTogY3JvcHBlZEltYWdlLFxuICAgICAgICBzaXplOiBpbmZvLnNpemUsXG4gICAgICB9XG4gICAgICBmaWxlRGF0YS53aWR0aCA9IGluZm8ud2lkdGhcbiAgICAgIGZpbGVEYXRhLmhlaWdodCA9IGluZm8uaGVpZ2h0XG4gICAgICBmaWxlRGF0YS5maWxlc2l6ZSA9IGluZm8uc2l6ZVxuXG4gICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMud3JpdGVGaWxlKGZpbGUudGVtcEZpbGVQYXRoLCBjcm9wcGVkSW1hZ2UpIC8vIHdyaXRlIGZpbGVCdWZmZXIgdG8gdGhlIHRlbXAgcGF0aFxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVxLmZpbGUgPSBmaWxlRm9yUmVzaXplXG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goe1xuICAgICAgICBidWZmZXI6IGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhLFxuICAgICAgICBwYXRoOiBgJHtzdGF0aWNQYXRofS8ke2ZzU2FmZU5hbWV9YCxcbiAgICAgIH0pXG5cbiAgICAgIC8vIElmIHVzaW5nIHRlbXAgZmlsZXMgYW5kIHRoZSBpbWFnZSBpcyBiZWluZyByZXNpemVkLCB3cml0ZSB0aGUgZmlsZSB0byB0aGUgdGVtcCBwYXRoXG4gICAgICBpZiAoZmlsZUJ1ZmZlcj8uZGF0YSB8fCBmaWxlLmRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoZmlsZS50ZW1wRmlsZVBhdGgpIHtcbiAgICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZS50ZW1wRmlsZVBhdGgsIGZpbGVCdWZmZXI/LmRhdGEgfHwgZmlsZS5kYXRhKSAvLyB3cml0ZSBmaWxlQnVmZmVyIHRvIHRoZSB0ZW1wIHBhdGhcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBc3NpZ24gdGhlIF9wb3NzaWJseSBtb2RpZmllZF8gZmlsZSB0byB0aGUgcmVxdWVzdCBvYmplY3RcbiAgICAgICAgICByZXEuZmlsZSA9IHtcbiAgICAgICAgICAgIC4uLmZpbGUsXG4gICAgICAgICAgICBkYXRhOiBmaWxlQnVmZmVyPy5kYXRhIHx8IGZpbGUuZGF0YSxcbiAgICAgICAgICAgIHNpemU6IGZpbGVCdWZmZXI/LmluZm8uc2l6ZSxcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpbWFnZVNpemVzKSAmJiBmaWxlU3VwcG9ydHNSZXNpemUgJiYgc2hhcnApIHtcbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXMgPSB7fVxuICAgICAgY29uc3QgeyBzaXplRGF0YSwgc2l6ZXNUb1NhdmUgfSA9IGF3YWl0IHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICAgICAgICBjb25maWc6IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGRpbWVuc2lvbnM6ICFjcm9wRGF0YVxuICAgICAgICAgID8gZGltZW5zaW9uc1xuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAuLi5kaW1lbnNpb25zLFxuICAgICAgICAgICAgICBoZWlnaHQ6IGZpbGVEYXRhLmhlaWdodCxcbiAgICAgICAgICAgICAgd2lkdGg6IGZpbGVEYXRhLndpZHRoLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgZmlsZTogZmlsZUZvclJlc2l6ZSxcbiAgICAgICAgbWltZVR5cGU6IGZpbGVEYXRhLm1pbWVUeXBlLFxuICAgICAgICByZXEsXG4gICAgICAgIHNhdmVkRmlsZW5hbWU6IGZzU2FmZU5hbWUgfHwgZmlsZS5uYW1lLFxuICAgICAgICBzaGFycCxcbiAgICAgICAgc3RhdGljUGF0aCxcbiAgICAgIH0pXG5cbiAgICAgIGZpbGVEYXRhLnNpemVzID0gc2l6ZURhdGFcbiAgICAgIGZpbGVzVG9TYXZlLnB1c2goLi4uc2l6ZXNUb1NhdmUpXG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycilcbiAgICB0aHJvdyBuZXcgRmlsZVVwbG9hZEVycm9yKHJlcS50KVxuICB9XG5cbiAgbmV3RGF0YSA9IHtcbiAgICAuLi5uZXdEYXRhLFxuICAgIC4uLmZpbGVEYXRhLFxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBkYXRhOiBuZXdEYXRhLFxuICAgIGZpbGVzOiBmaWxlc1RvU2F2ZSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImdlbmVyYXRlRmlsZURhdGEiLCJjb2xsZWN0aW9uIiwiY29uZmlnIiwiY29sbGVjdGlvbkNvbmZpZyIsImRhdGEiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwicmVxIiwidGhyb3dPbk1pc3NpbmdGaWxlIiwidXBsb2FkIiwiZmlsZXMiLCJzaGFycCIsInBheWxvYWQiLCJmaWxlIiwic2VhcmNoUGFyYW1zIiwidXBsb2FkRWRpdHMiLCJnZXQiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwiZm9ybWF0T3B0aW9ucyIsImltYWdlU2l6ZXMiLCJyZXNpemVPcHRpb25zIiwic3RhdGljRGlyIiwidHJpbU9wdGlvbnMiLCJzdGF0aWNQYXRoIiwiZmlsZW5hbWUiLCJ1cmwiLCJzdGFydHNXaXRoIiwiZmlsZVBhdGgiLCJyZXNwb25zZSIsImdldEZpbGVCeVBhdGgiLCJnZXRFeHRlcm5hbEZpbGUiLCJlcnIiLCJGaWxlVXBsb2FkRXJyb3IiLCJ0IiwiTWlzc2luZ0ZpbGUiLCJta2RpcnAiLCJzeW5jIiwibmV3RGF0YSIsImZpbGVzVG9TYXZlIiwiZmlsZURhdGEiLCJmaWxlSXNBbmltYXRlZCIsIm1pbWV0eXBlIiwiY3JvcERhdGEiLCJjcm9wIiwidW5kZWZpbmVkIiwiZmlsZVN1cHBvcnRzUmVzaXplIiwiY2FuUmVzaXplSW1hZ2UiLCJmc1NhZmVOYW1lIiwic2hhcnBGaWxlIiwiZGltZW5zaW9ucyIsImZpbGVCdWZmZXIiLCJleHQiLCJtaW1lIiwiZmlsZUhhc0FkanVzdG1lbnRzIiwiQm9vbGVhbiIsInRlbXBGaWxlUGF0aCIsInNoYXJwT3B0aW9ucyIsImFuaW1hdGVkIiwicm90YXRlIiwicmVzaXplIiwidG9Gb3JtYXQiLCJmb3JtYXQiLCJvcHRpb25zIiwidHJpbSIsImlzSW1hZ2UiLCJnZXRJbWFnZVNpemUiLCJ3aWR0aCIsImhlaWdodCIsIm1ldGFkYXRhIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsImZyb21CdWZmZXIiLCJpbmZvIiwiZmlsZXNpemUiLCJzaXplIiwicGFnZXMiLCJsZW5ndGgiLCJuYW1lIiwiaW5jbHVkZXMiLCJzcGxpdCIsInBvcCIsIm1pbWVUeXBlIiwiYmFzZUZpbGVuYW1lIiwic2FuaXRpemUiLCJzdWJzdHJpbmciLCJsYXN0SW5kZXhPZiIsImdldFNhZmVGaWxlTmFtZSIsImNvbGxlY3Rpb25TbHVnIiwic2x1ZyIsImRlc2lyZWRGaWxlbmFtZSIsImZpbGVGb3JSZXNpemUiLCJjcm9wcGVkSW1hZ2UiLCJjcm9wSW1hZ2UiLCJwdXNoIiwiYnVmZmVyIiwicGF0aCIsImZzIiwicHJvbWlzZXMiLCJ3cml0ZUZpbGUiLCJBcnJheSIsImlzQXJyYXkiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJzaXplRGF0YSIsInNpemVzVG9TYXZlIiwicmVzaXplQW5kVHJhbnNmb3JtSW1hZ2VTaXplcyIsInNhdmVkRmlsZW5hbWUiLCJzaXplcyIsImNvbnNvbGUiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFvQ2FBOzs7ZUFBQUE7OzswQkFsQ2M7MkRBQ1o7K0RBQ0k7eUVBQ0U7d0JBT3dCO3VFQUNsQjtrRUFDTDtpQ0FDVTtzRUFDTjtxRUFDRDt3RUFDRztxRUFDYTtnRUFDckI7Ozs7OztBQWdCYixNQUFNQSxtQkFBbUIsT0FBVSxFQUN4Q0MsWUFBWSxFQUFFQyxRQUFRQyxnQkFBZ0IsRUFBRSxFQUN4Q0MsSUFBSSxFQUNKQyxzQkFBc0IsRUFDdEJDLEdBQUcsRUFDSEMsa0JBQWtCLEVBQ1Y7SUFDUixJQUFJLENBQUNKLGlCQUFpQkssTUFBTSxFQUFFO1FBQzVCLE9BQU87WUFDTEo7WUFDQUssT0FBTyxFQUFFO1FBQ1g7SUFDRjtJQUVBLE1BQU0sRUFBRUMsS0FBSyxFQUFFLEdBQUdKLElBQUlLLE9BQU8sQ0FBQ1QsTUFBTTtJQUVwQyxJQUFJVSxPQUFPTixJQUFJTSxJQUFJO0lBRW5CLE1BQU0sRUFBRUMsWUFBWSxFQUFFLEdBQUdQO0lBQ3pCLE1BQU1RLGNBQWNELGFBQWFFLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQztJQUV4RCxNQUFNLEVBQUVDLG1CQUFtQixFQUFFQyxhQUFhLEVBQUVDLFVB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
@@ -1,4 +1,5 @@
1
1
  import type { SanitizedCollectionConfig } from '../collections/config/types';
2
+ import type { SharpDependency } from '../exports/config';
2
3
  import type { UploadEdits } from '../exports/types';
3
4
  import type { CustomPayloadRequest, PayloadRequest } from '../types';
4
5
  import type { FileSizes, FileToSave, ProbedImageSize } from './types';
@@ -13,6 +14,7 @@ type ResizeArgs = {
13
14
  };
14
15
  };
15
16
  savedFilename: string;
17
+ sharp: SharpDependency;
16
18
  staticPath: string;
17
19
  };
18
20
  /** Result from resizing and transforming the requested image sizes */
@@ -34,6 +36,6 @@ type ImageSizesResult = {
34
36
  * @param resizeConfig - the resize config
35
37
  * @returns the result of the resize operation(s)
36
38
  */
37
- export default function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath, }: ResizeArgs): Promise<ImageSizesResult>;
39
+ export default function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, sharp, staticPath, }: ResizeArgs): Promise<ImageSizesResult>;
38
40
  export {};
39
41
  //# sourceMappingURL=imageResizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACpE,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAK1F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,GAAG;QACpB,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B,CAAA;KACF,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAiKD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,UAAU,GACX,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkIxC"}
1
+ {"version":3,"file":"imageResizer.d.ts","sourceRoot":"","sources":["../../src/uploads/imageResizer.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACpE,OAAO,KAAK,EAAY,SAAS,EAAE,UAAU,EAAa,eAAe,EAAE,MAAM,SAAS,CAAA;AAK1F,KAAK,UAAU,GAAG;IAChB,MAAM,EAAE,yBAAyB,CAAA;IACjC,UAAU,EAAE,eAAe,CAAA;IAC3B,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAClC,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,cAAc,GAAG;QACpB,KAAK,CAAC,EAAE;YACN,WAAW,CAAC,EAAE,WAAW,CAAA;SAC1B,CAAA;KACF,CAAA;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,eAAe,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,sEAAsE;AACtE,KAAK,gBAAgB,GAAG;IACtB,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;CAC1B,CAAA;AAiKD;;;;;;;;;;;;;GAaG;AACH,wBAA8B,4BAA4B,CAAC,EACzD,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,GAAG,EACH,aAAa,EACb,KAAK,EACL,UAAU,GACX,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkIxC"}
@@ -24,7 +24,6 @@ Object.defineProperty(exports, /**
24
24
  const _filetype = require("file-type");
25
25
  const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
26
26
  const _sanitizefilename = /*#__PURE__*/ _interop_require_default(require("sanitize-filename"));
27
- const _sharp = /*#__PURE__*/ _interop_require_default(require("sharp"));
28
27
  const _isNumber = require("../utilities/isNumber");
29
28
  const _fileExists = /*#__PURE__*/ _interop_require_default(require("./fileExists"));
30
29
  function _interop_require_default(obj) {
@@ -157,14 +156,14 @@ function _interop_require_default(obj) {
157
156
  }
158
157
  return resizeConfig;
159
158
  };
160
- async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, staticPath }) {
159
+ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType, req, savedFilename, sharp, staticPath }) {
161
160
  const { imageSizes } = config.upload;
162
161
  // Noting to resize here so return as early as possible
163
162
  if (!imageSizes) return {
164
163
  sizeData: {},
165
164
  sizesToSave: []
166
165
  };
167
- const sharpBase = (0, _sharp.default)(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
166
+ const sharpBase = sharp(file.tempFilePath || file.data).rotate() // pass rotate() to auto-rotate based on EXIF data. https://github.com/payloadcms/payload/pull/3081
168
167
  ;
169
168
  const results = await Promise.all(imageSizes.map(async (imageResizeConfig)=>{
170
169
  imageResizeConfig = sanitizeResizeConfig(imageResizeConfig);
@@ -251,4 +250,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
251
250
  });
252
251
  }
253
252
 
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE91dHB1dEluZm8gfSBmcm9tICdzaGFycCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL2V4cG9ydHMvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0LCBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogQ3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3QgJiB7XG4gICAgcXVlcnk/OiB7XG4gICAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gICAgfVxuICB9XG4gIHNhdmVkRmlsZW5hbWU6IHN0cmluZ1xuICBzdGF0aWNQYXRoOiBzdHJpbmdcbn1cblxuLyoqIFJlc3VsdCBmcm9tIHJlc2l6aW5nIGFuZCB0cmFuc2Zvcm1pbmcgdGhlIHJlcXVlc3RlZCBpbWFnZSBzaXplcyAqL1xudHlwZSBJbWFnZVNpemVzUmVzdWx0ID0ge1xuICBzaXplRGF0YTogRmlsZVNpemVzXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW11cbn1cblxudHlwZSBTYW5pdGl6ZWRJbWFnZURhdGEgPSB7XG4gIGV4dDogc3RyaW5nXG4gIG5hbWU6IHN0cmluZ1xufVxuXG4vKipcbiAqIFNhbml0aXplIHRoZSBpbWFnZSBuYW1lIGFuZCBleHRyYWN0IHRoZSBleHRlbnNpb24gZnJvbSB0aGUgc291cmNlIGltYWdlXG4gKlxuICogQHBhcmFtIHNvdXJjZUltYWdlIC0gdGhlIHNvdXJjZSBpbWFnZVxuICogQHJldHVybnMgdGhlIHNhbml0aXplZCBuYW1lIGFuZCBleHRlbnNpb25cbiAqL1xuY29uc3QgZ2V0U2FuaXRpemVkSW1hZ2VEYXRhID0gKHNvdXJjZUltYWdlOiBzdHJpbmcpOiBTYW5pdGl6ZWRJbWFnZURhdGEgPT4ge1xuICBjb25zdCBleHRlbnNpb24gPSBzb3VyY2VJbWFnZS5zcGxpdCgnLicpLnBvcCgpXG4gIGNvbnN0IG5hbWUgPSBzYW5pdGl6ZShzb3VyY2VJbWFnZS5zdWJzdHJpbmcoMCwgc291cmNlSW1hZ2UubGFzdEluZGV4T2YoJy4nKSkgfHwgc291cmNlSW1hZ2UpXG4gIHJldHVybiB7IG5hbWUsIGV4dDogZXh0ZW5zaW9uIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBuZXcgaW1hZ2UgbmFtZSBiYXNlZCBvbiB0aGUgb3V0cHV0IGltYWdlIG5hbWUsIHRoZSBkaW1lbnNpb25zIGFuZFxuICogdGhlIGV4dGVuc2lvbi5cbiAqXG4gKiBJZ25vcmUgdGhlIGZhY3QgdGhhdCBkdXBsaWNhdGUgbmFtZXMgY291bGQgaGFwcGVuIGlmIHRoZSB0aGVyZSBpcyBvbmVcbiAqIHNpemUgd2l0aCBgd2lkdGggQU5EIGhlaWdodGAgYW5kIG9uZSB3aXRoIG9ubHkgYGhlaWdodCBPUiB3aWR0aGAuIEJlY2F1c2VcbiAqIHNwYWNlIGlzIGV4cGVuc2l2ZSwgd2Ugd2lsbCByZXVzZSB0aGUgc2FtZSBpbWFnZSBmb3IgYm90aCBzaXplcy5cbiAqXG4gKiBAcGFyYW0gb3V0cHV0SW1hZ2VOYW1lIC0gdGhlIHNhbml0aXplZCBpbWFnZSBuYW1lXG4gKiBAcGFyYW0gYnVmZmVySW5mbyAtIHRoZSBidWZmZXIgaW5mb1xuICogQHBhcmFtIGV4dGVuc2lvbiAtIHRoZSBleHRlbnNpb24gdG8gdXNlXG4gKiBAcmV0dXJucyB0aGUgbmV3IGltYWdlIG5hbWUgdGhhdCBpcyBub3QgdGFrZW5cbiAqL1xuY29uc3QgY3JlYXRlSW1hZ2VOYW1lID0gKFxuICBvdXRwdXRJbWFnZU5hbWU6IHN0cmluZyxcbiAgeyBoZWlnaHQsIHdpZHRoIH06IE91dHB1dEluZm8sXG4gIGV4dGVuc2lvbjogc3RyaW5nLFxuKSA9PiBgJHtvdXRwdXRJbWFnZU5hbWV9LSR7d2lkdGh9eCR7aGVpZ2h0fS4ke2V4dGVuc2lvbn1gXG5cbi8qKlxuICogQ3JlYXRlIHRoZSByZXN1bHQgb2JqZWN0IGZvciB0aGUgaW1hZ2UgcmVzaXplIG9wZXJhdGlvbiBiYXNlZCBvbiB0aGVcbiAqIHByb3ZpZGVkIHBhcmFtZXRlcnMuIElmIHRoZSBuYW1lIGlzIG5vdCBwcm92aWRlZCwgYW4gZW1wdHkgcmVzdWx0IG9iamVjdFxuICogaXMgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBmaWxlbmFtZSAtIHRoZSBmaWxlbmFtZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSB3aWR0aCAtIHRoZSB3aWR0aCBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBoZWlnaHQgLSB0aGUgaGVpZ2h0IG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVzaXplIC0gdGhlIGZpbGVzaXplIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIG1pbWVUeXBlIC0gdGhlIG1pbWUgdHlwZSBvZiB0aGUgaW1hZ2VcbiAqIEBwYXJhbSBzaXplc1RvU2F2ZSAtIHRoZSBzaXplcyB0byBzYXZlXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9iamVjdFxuICovXG5jb25zdCBjcmVhdGVSZXN1bHQgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgZmlsZW5hbWU6IEZpbGVTaXplWydmaWxlbmFtZSddID0gbnVsbCxcbiAgd2lkdGg6IEZpbGVTaXplWyd3aWR0aCddID0gbnVsbCxcbiAgaGVpZ2h0OiBGaWxlU2l6ZVsnaGVpZ2h0J10gPSBudWxsLFxuICBmaWxlc2l6ZTogRmlsZVNpemVbJ2ZpbGVzaXplJ10gPSBudWxsLFxuICBtaW1lVHlwZTogRmlsZVNpemVbJ21pbWVUeXBlJ10gPSBudWxsLFxuICBzaXplc1RvU2F2ZTogRmlsZVRvU2F2ZVtdID0gW10sXG4pOiBJbWFnZVNpemVzUmVzdWx0ID0+ICh7XG4gIHNpemVEYXRhOiB7XG4gICAgW25hbWVdOiB7XG4gICAgICBmaWxlbmFtZSxcbiAgICAgIGZpbGVzaXplLFxuICAgICAgaGVpZ2h0LFxuICAgICAgbWltZVR5cGUsXG4gICAgICB3aWR0aCxcbiAgICB9LFxuICB9LFxuICBzaXplc1RvU2F2ZSxcbn0pXG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGltYWdlIG5lZWRzIHRvIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9uc1xuICogYW5kIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplLiBJZiB0aGUgcmVzaXplIG9wdGlvbnMgd2l0aG91dEVubGFyZ2VtZW50IG9yIHdpdGhvdXRSZWR1Y3Rpb24gYXJlIHByb3ZpZGVkLFxuICogdGhlIGltYWdlIHdpbGwgYmUgcmVzaXplZCByZWdhcmRsZXNzIG9mIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucywgZ2l2ZW4gdGhhdCB0aGVcbiAqIHdpZHRoIG9yIGhlaWdodCB0byBiZSByZXNpemVkIGlzIHByb3ZpZGVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSBvYmplY3QgY29udGFpbmluZyB0aGUgcmVxdWVzdGVkIGRpbWVuc2lvbnMgYW5kIHJlc2l6ZSBvcHRpb25zXG4gKiBAcGFyYW0gb3JpZ2luYWwgLSB0aGUgb3JpZ2luYWwgaW1hZ2Ugc2l6ZVxuICogQHJldHVybnMgdHJ1ZSBpZiByZXNpemluZyBpcyBub3QgbmVlZGVkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuY29uc3QgcHJldmVudFJlc2l6ZSA9IChcbiAgeyBoZWlnaHQ6IGRlc2lyZWRIZWlnaHQsIHdpZHRoOiBkZXNpcmVkV2lkdGgsIHdpdGhvdXRFbmxhcmdlbWVudCwgd2l0aG91dFJlZHVjdGlvbiB9OiBJbWFnZVNpemUsXG4gIG9yaWdpbmFsOiBQcm9iZWRJbWFnZVNpemUsXG4pOiBib29sZWFuID0+IHtcbiAgLy8gZGVmYXVsdCBpcyB0byBhbGxvdyByZWR1Y3Rpb25cbiAgaWYgKHdpdGhvdXRSZWR1Y3Rpb24gIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIC8vIGRlZmF1bHQgaXMgdG8gcHJldmVudCBlbmxhcmdlbWVudFxuICBpZiAod2l0aG91dEVubGFyZ2VtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gZmFsc2UgLy8gbmVlZHMgcmVzaXplXG4gIH1cblxuICBjb25zdCBpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkID0gIWRlc2lyZWRIZWlnaHQgfHwgIWRlc2lyZWRXaWR0aFxuICBpZiAoaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCkge1xuICAgIC8vIElmIHdpZHRoIGFuZCBoZWlnaHQgYXJlIG5vdCBkZWZpbmVkLCBpdCBtZWFucyB0aGVyZSBpcyBhIGZvcm1hdCBjb252ZXJzaW9uXG4gICAgLy8gYW5kIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBcInJlc2l6ZWRcIiAodHJhbnNmb3JtZWQpLlxuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGhhc0luc3VmZmljaWVudFdpZHRoID0gZGVzaXJlZFdpZHRoID4gb3JpZ2luYWwud2lkdGhcbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50SGVpZ2h0ID0gZGVzaXJlZEhlaWdodCA+IG9yaWdpbmFsLmhlaWdodFxuICBpZiAoaGFzSW5zdWZmaWNpZW50V2lkdGggJiYgaGFzSW5zdWZmaWNpZW50SGVpZ2h0KSB7XG4gICAgLy8gZG9lc24ndCBuZWVkIHJlc2l6ZSAtIHByZXZlbnQgZW5sYXJnZW1lbnQuIFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIGJvdGggd2lkdGggYW5kIGhlaWdodCBhcmUgaW5zdWZmaWNpZW50LlxuICAgIC8vIGlmIG9ubHkgb25lIGRpbWVuc2lvbiBpcyBpbnN1ZmZpY2llbnQgYW5kIHRoZSBvdGhlciBpcyBzdWZmaWNpZW50LCByZXNpemluZyBuZWVkcyB0byBoYXBwZW4sIGFzIHRoZSBpbWFnZVxuICAgIC8vIHNob3VsZCBiZSByZXNpemVkIHRvIHRoZSBzdWZmaWNpZW50IGRpbWVuc2lvbi5cbiAgICByZXR1cm4gdHJ1ZSAvLyBkbyBub3QgY3JlYXRlIGEgbmV3IHNpemVcbiAgfVxuXG4gIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2Ugc2hvdWxkIGJlIHBhc3NlZCBkaXJlY3RseSB0byBzaGFycCB3aXRob3V0IHBheWxvYWQgYWRqdXN0aW5nIHByb3BlcnRpZXMuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBpbWFnZSBzaG91bGQgcGFzc2VkIGRpcmVjdGx5IHRvIHNoYXJwXG4gKi9cbmNvbnN0IGFwcGx5UGF5bG9hZEFkanVzdG1lbnRzID0gKFxuICB7IGZpdCwgaGVpZ2h0LCB3aWR0aCwgd2l0aG91dEVubGFyZ2VtZW50LCB3aXRob3V0UmVkdWN0aW9uIH06IEltYWdlU2l6ZSxcbiAgb3JpZ2luYWw6IFByb2JlZEltYWdlU2l6ZSxcbikgPT4ge1xuICBpZiAoZml0ID09PSAnY29udGFpbicgfHwgZml0ID09PSAnaW5zaWRlJykgcmV0dXJuIGZhbHNlXG4gIGlmICghaXNOdW1iZXIoaGVpZ2h0KSAmJiAhaXNOdW1iZXIod2lkdGgpKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCB0YXJnZXRBc3BlY3RSYXRpbyA9IHdpZHRoIC8gaGVpZ2h0XG4gIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBvcmlnaW5hbC53aWR0aCAvIG9yaWdpbmFsLmhlaWdodFxuICBpZiAob3JpZ2luYWxBc3BlY3RSYXRpbyA9PT0gdGFyZ2V0QXNwZWN0UmF0aW8pIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHNraXBFbmxhcmdlbWVudCA9IHdpdGhvdXRFbmxhcmdlbWVudCAmJiAob3JpZ2luYWwuaGVpZ2h0IDwgaGVpZ2h0IHx8IG9yaWdpbmFsLndpZHRoIDwgd2lkdGgpXG4gIGNvbnN0IHNraXBSZWR1Y3Rpb24gPSB3aXRob3V0UmVkdWN0aW9uICYmIChvcmlnaW5hbC5oZWlnaHQgPiBoZWlnaHQgfHwgb3JpZ2luYWwud2lkdGggPiB3aWR0aClcbiAgaWYgKHNraXBFbmxhcmdlbWVudCB8fCBza2lwUmVkdWN0aW9uKSByZXR1cm4gZmFsc2VcblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFNhbml0aXplIHRoZSByZXNpemUgY29uZmlnLiBJZiB0aGUgcmVzaXplIGNvbmZpZyBoYXMgdGhlIGB3aXRob3V0UmVkdWN0aW9uYFxuICogcHJvcGVydHkgc2V0IHRvIHRydWUsIHRoZSBgZml0YCBhbmQgYHBvc2l0aW9uYCBwcm9wZXJ0aWVzIHdpbGwgYmUgc2V0IHRvIGBjb250YWluYFxuICogYW5kIGB0b3AgbGVmdGAgcmVzcGVjdGl2ZWx5LlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgYSBzYW5pdGl6ZWQgcmVzaXplIGNvbmZpZ1xuICovXG5jb25zdCBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyA9IChyZXNpemVDb25maWc6IEltYWdlU2l6ZSk6IEltYWdlU2l6ZSA9PiB7XG4gIGlmIChyZXNpemVDb25maWcud2l0aG91dFJlZHVjdGlvbikge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXNpemVDb25maWcsXG4gICAgICAvLyBXaHkgZml0IGBjb250YWluYCBzaG91bGQgYWxzbyBiZSBzZXQgdG8gaHR0cHM6Ly9naXRodWIuY29tL2xvdmVsbC9zaGFycC9pc3N1ZXMvMzU5NVxuICAgICAgZml0OiByZXNpemVDb25maWc/LmZpdCB8fCAnY29udGFpbicsXG4gICAgICBwb3NpdGlvbjogcmVzaXplQ29uZmlnPy5wb3NpdGlvbiB8fCAnbGVmdCB0b3AnLFxuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzaXplQ29uZmlnXG59XG5cbi8qKlxuICogRm9yIHRoZSBwcm92aWRlZCBpbWFnZSBzaXplcywgaGFuZGxlIHRoZSByZXNpemluZyBhbmQgdGhlIHRyYW5zZm9ybXNcbiAqIChmb3JtYXQsIHRyaW0sIGV0Yy4pIG9mIGVhY2ggcmVxdWVzdGVkIGltYWdlIHNpemUgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9iamVjdC5cbiAqIFRoaXMgb25seSBoYW5kbGVzIHRoZSBpbWFnZSBzaXplcy4gVGhlIHRyYW5zZm9ybXMgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKiBhcmUgaGFuZGxlZCBpbiB7QGxpbmsgLi9nZW5lcmF0ZUZpbGVEYXRhLnRzfS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWRcbiAqIHJlc2l6ZSBjb25maWcuIElmIG5vIGltYWdlIHNpemVzIGFyZSByZXF1ZXN0ZWQsIHRoZSByZXNvbHZlZCBkYXRhIHdpbGwgYmUgZW1wdHkuXG4gKiBGb3IgZXZlcnkgaW1hZ2UgdGhhdCBkb3Mgbm90IG5lZWQgdG8gYmUgcmVzaXplZCwgYW4gcmVzdWx0IG9iamVjdCB3aXRoIGBudWxsYFxuICogcGFyYW1ldGVycyB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgcmVzaXplIG9wZXJhdGlvbihzKVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgY29uZmlnLFxuICBkaW1lbnNpb25zLFxuICBmaWxlLFxuICBtaW1lVHlwZSxcbiAgcmVxLFxuICBzYXZlZEZpbGVuYW1lLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgaW1hZ2VSZXNpemVDb25maWcgPSBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyhpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAocHJldmVudFJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZVRvUmVzaXplID0gc2hhcnBCYXNlLmNsb25lKClcbiAgICAgIGxldCByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5xdWVyeT8udXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQgJiZcbiAgICAgICAgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHJlc2l6ZUhlaWdodCwgd2lkdGg6IHJlc2l6ZVdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuICAgICAgICBjb25zdCByZXNpemVBc3BlY3RSYXRpbyA9IHJlc2l6ZVdpZHRoIC8gcmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBkaW1lbnNpb25zLndpZHRoIC8gZGltZW5zaW9ucy5oZWlnaHRcbiAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IHJlc2l6ZUFzcGVjdFJhdGlvIDwgb3JpZ2luYWxBc3BlY3RSYXRpb1xuXG4gICAgICAgIC8vIFNjYWxlIHRoZSBpbWFnZSB1cCBvciBkb3duIHRvIGZpdCB0aGUgcmVzaXplIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3Qgc2NhbGVkSW1hZ2UgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gcmVzaXplSGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiByZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgeyBpbmZvOiBzY2FsZWRJbWFnZUluZm8gfSA9IGF3YWl0IHNjYWxlZEltYWdlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAvLyBGb2NhbCBwb2ludCBhZGp1c3RtZW50c1xuICAgICAgICBjb25zdCBmb2NhbFBvaW50ID0ge1xuICAgICAgICAgIHg6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC54XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICAgIHk6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py55KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZVdpZHRoID0gcmVzaXplV2lkdGggPz8gc2NhbGVkSW1hZ2VJbmZvLndpZHRoXG4gICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBzY2FsZWRJbWFnZUluZm8ud2lkdGggLSBzYWZlUmVzaXplV2lkdGhcbiAgICAgICAgY29uc3QgbGVmdEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLndpZHRoICogKGZvY2FsUG9pbnQueCAvIDEwMCkgLSBzYWZlUmVzaXplV2lkdGggLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRYID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbGVmdEZvY2FsRWRnZSksIG1heE9mZnNldFgpXG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZUhlaWdodCA9IHJlc2l6ZUhlaWdodCA/PyBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0XG4gICAgICAgIGNvbnN0IG1heE9mZnNldFkgPSBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0IC0gc2FmZVJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCB0b3BGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby5oZWlnaHQgKiAoZm9jYWxQb2ludC55IC8gMTAwKSAtIHNhZmVSZXNpemVIZWlnaHQgLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRZID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgdG9wRm9jYWxFZGdlKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAvLyBleHRyYWN0IHRoZSBmb2NhbCBhcmVhIGZyb20gdGhlIHNjYWxlZCBpbWFnZVxuICAgICAgICByZXNpemVkID0gc2NhbGVkSW1hZ2UuZXh0cmFjdCh7XG4gICAgICAgICAgaGVpZ2h0OiBzYWZlUmVzaXplSGVpZ2h0LFxuICAgICAgICAgIGxlZnQ6IHNhZmVPZmZzZXRYLFxuICAgICAgICAgIHRvcDogc2FmZU9mZnNldFksXG4gICAgICAgICAgd2lkdGg6IHNhZmVSZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJwcmV2ZW50UmVzaXplIiwiZGVzaXJlZEhlaWdodCIsImRlc2lyZWRXaWR0aCIsIndpdGhvdXRFbmxhcmdlbWVudCIsIndpdGhvdXRSZWR1Y3Rpb24iLCJvcmlnaW5hbCIsInVuZGVmaW5lZCIsImlzV2lkdGhPckhlaWdodE5vdERlZmluZWQiLCJoYXNJbnN1ZmZpY2llbnRXaWR0aCIsImhhc0luc3VmZmljaWVudEhlaWdodCIsImFwcGx5UGF5bG9hZEFkanVzdG1lbnRzIiwiZml0IiwiaXNOdW1iZXIiLCJ0YXJnZXRBc3BlY3RSYXRpbyIsIm9yaWdpbmFsQXNwZWN0UmF0aW8iLCJza2lwRW5sYXJnZW1lbnQiLCJza2lwUmVkdWN0aW9uIiwic2FuaXRpemVSZXNpemVDb25maWciLCJyZXNpemVDb25maWciLCJwb3NpdGlvbiIsImNvbmZpZyIsImRpbWVuc2lvbnMiLCJmaWxlIiwicmVxIiwic2F2ZWRGaWxlbmFtZSIsInN0YXRpY1BhdGgiLCJpbWFnZVNpemVzIiwidXBsb2FkIiwic2hhcnBCYXNlIiwic2hhcnAiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsImltYWdlVG9SZXNpemUiLCJjbG9uZSIsInJlc2l6ZWQiLCJxdWVyeSIsInVwbG9hZEVkaXRzIiwiZm9jYWxQb2ludCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsIngiLCJ5Iiwic2FmZVJlc2l6ZVdpZHRoIiwibWF4T2Zmc2V0WCIsImxlZnRGb2NhbEVkZ2UiLCJNYXRoIiwicm91bmQiLCJzYWZlT2Zmc2V0WCIsIm1pbiIsIm1heCIsInNhZmVSZXNpemVIZWlnaHQiLCJtYXhPZmZzZXRZIiwidG9wRm9jYWxFZGdlIiwic2FmZU9mZnNldFkiLCJleHRyYWN0IiwibGVmdCIsInRvcCIsImZvcm1hdE9wdGlvbnMiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltT3B0aW9ucyIsInRyaW0iLCJidWZmZXJEYXRhIiwiYnVmZmVySW5mbyIsInNhbml0aXplZEltYWdlIiwicGF5bG9hZFVwbG9hZFNpemVzIiwibWltZUluZm8iLCJmcm9tQnVmZmVyIiwiaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMiLCJpbWFnZVBhdGgiLCJmaWxlRXhpc3RzIiwiZnMiLCJ1bmxpbmtTeW5jIiwic2l6ZSIsIm1pbWUiLCJidWZmZXIiLCJwYXRoIiwicmVkdWNlIiwiYWNjIiwicmVzdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrTUE7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNEOzs7ZUFBOEJBOzs7MEJBOU1IOzJEQUNaO3lFQUNNOzhEQUNIOzBCQU9PO21FQUNGOzs7Ozs7QUEyQnZCOzs7OztDQUtDLEdBQ0QsTUFBTUMsd0JBQXdCLENBQUNDO0lBQzdCLE1BQU1DLFlBQVlELFlBQVlFLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQzVDLE1BQU1DLE9BQU9DLElBQUFBLHlCQUFRLEVBQUNMLFlBQVlNLFNBQVMsQ0FBQyxHQUFHTixZQUFZTyxXQUFXLENBQUMsU0FBU1A7SUFDaEYsT0FBTztRQUFFSTtRQUFNSSxLQUFLUDtJQUFVO0FBQ2hDO0FBRUE7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsTUFBTVEsa0JBQWtCLENBQ3RCQyxpQkFDQSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBYyxFQUM3QlgsWUFDRyxDQUFDLEVBQUVTLGdCQUFnQixDQUFDLEVBQUVFLE1BQU0sQ0FBQyxFQUFFRCxPQUFPLENBQUMsRUFBRVYsVUFBVSxDQUFDO0FBRXpEOzs7Ozs7Ozs7Ozs7O0NBYUMsR0FDRCxNQUFNWSxlQUFlLENBQ25CVCxNQUNBVSxXQUFpQyxJQUFJLEVBQ3JDRixRQUEyQixJQUFJLEVBQy9CRCxTQUE2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
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE91dHB1dEluZm8sIGRlZmF1bHQgYXMgU2hhcnAgfSBmcm9tICdzaGFycCdcbmltcG9ydCB0eXBlIHNoYXJwIGZyb20gJ3NoYXJwJ1xuXG5pbXBvcnQgeyBmcm9tQnVmZmVyIH0gZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNoYXJwRGVwZW5kZW5jeSB9IGZyb20gJy4uL2V4cG9ydHMvY29uZmlnJ1xuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL2V4cG9ydHMvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEN1c3RvbVBheWxvYWRSZXF1ZXN0LCBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogQ3VzdG9tUGF5bG9hZFJlcXVlc3RbJ2ZpbGUnXVxuICBtaW1lVHlwZTogc3RyaW5nXG4gIHJlcTogUGF5bG9hZFJlcXVlc3QgJiB7XG4gICAgcXVlcnk/OiB7XG4gICAgICB1cGxvYWRFZGl0cz86IFVwbG9hZEVkaXRzXG4gICAgfVxuICB9XG4gIHNhdmVkRmlsZW5hbWU6IHN0cmluZ1xuICBzaGFycDogU2hhcnBEZXBlbmRlbmN5XG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xufVxuXG4vKiogUmVzdWx0IGZyb20gcmVzaXppbmcgYW5kIHRyYW5zZm9ybWluZyB0aGUgcmVxdWVzdGVkIGltYWdlIHNpemVzICovXG50eXBlIEltYWdlU2l6ZXNSZXN1bHQgPSB7XG4gIHNpemVEYXRhOiBGaWxlU2l6ZXNcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXVxufVxuXG50eXBlIFNhbml0aXplZEltYWdlRGF0YSA9IHtcbiAgZXh0OiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIGltYWdlIG5hbWUgYW5kIGV4dHJhY3QgdGhlIGV4dGVuc2lvbiBmcm9tIHRoZSBzb3VyY2UgaW1hZ2VcbiAqXG4gKiBAcGFyYW0gc291cmNlSW1hZ2UgLSB0aGUgc291cmNlIGltYWdlXG4gKiBAcmV0dXJucyB0aGUgc2FuaXRpemVkIG5hbWUgYW5kIGV4dGVuc2lvblxuICovXG5jb25zdCBnZXRTYW5pdGl6ZWRJbWFnZURhdGEgPSAoc291cmNlSW1hZ2U6IHN0cmluZyk6IFNhbml0aXplZEltYWdlRGF0YSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IHNvdXJjZUltYWdlLnNwbGl0KCcuJykucG9wKClcbiAgY29uc3QgbmFtZSA9IHNhbml0aXplKHNvdXJjZUltYWdlLnN1YnN0cmluZygwLCBzb3VyY2VJbWFnZS5sYXN0SW5kZXhPZignLicpKSB8fCBzb3VyY2VJbWFnZSlcbiAgcmV0dXJuIHsgbmFtZSwgZXh0OiBleHRlbnNpb24gfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbWFnZSBuYW1lIGJhc2VkIG9uIHRoZSBvdXRwdXQgaW1hZ2UgbmFtZSwgdGhlIGRpbWVuc2lvbnMgYW5kXG4gKiB0aGUgZXh0ZW5zaW9uLlxuICpcbiAqIElnbm9yZSB0aGUgZmFjdCB0aGF0IGR1cGxpY2F0ZSBuYW1lcyBjb3VsZCBoYXBwZW4gaWYgdGhlIHRoZXJlIGlzIG9uZVxuICogc2l6ZSB3aXRoIGB3aWR0aCBBTkQgaGVpZ2h0YCBhbmQgb25lIHdpdGggb25seSBgaGVpZ2h0IE9SIHdpZHRoYC4gQmVjYXVzZVxuICogc3BhY2UgaXMgZXhwZW5zaXZlLCB3ZSB3aWxsIHJldXNlIHRoZSBzYW1lIGltYWdlIGZvciBib3RoIHNpemVzLlxuICpcbiAqIEBwYXJhbSBvdXRwdXRJbWFnZU5hbWUgLSB0aGUgc2FuaXRpemVkIGltYWdlIG5hbWVcbiAqIEBwYXJhbSBidWZmZXJJbmZvIC0gdGhlIGJ1ZmZlciBpbmZvXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gdGhlIGV4dGVuc2lvbiB0byB1c2VcbiAqIEByZXR1cm5zIHRoZSBuZXcgaW1hZ2UgbmFtZSB0aGF0IGlzIG5vdCB0YWtlblxuICovXG5jb25zdCBjcmVhdGVJbWFnZU5hbWUgPSAoXG4gIG91dHB1dEltYWdlTmFtZTogc3RyaW5nLFxuICB7IGhlaWdodCwgd2lkdGggfTogT3V0cHV0SW5mbyxcbiAgZXh0ZW5zaW9uOiBzdHJpbmcsXG4pID0+IGAke291dHB1dEltYWdlTmFtZX0tJHt3aWR0aH14JHtoZWlnaHR9LiR7ZXh0ZW5zaW9ufWBcblxuLyoqXG4gKiBDcmVhdGUgdGhlIHJlc3VsdCBvYmplY3QgZm9yIHRoZSBpbWFnZSByZXNpemUgb3BlcmF0aW9uIGJhc2VkIG9uIHRoZVxuICogcHJvdmlkZWQgcGFyYW1ldGVycy4gSWYgdGhlIG5hbWUgaXMgbm90IHByb3ZpZGVkLCBhbiBlbXB0eSByZXN1bHQgb2JqZWN0XG4gKiBpcyByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHdpZHRoIC0gdGhlIHdpZHRoIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGhlaWdodCAtIHRoZSBoZWlnaHQgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZXNpemUgLSB0aGUgZmlsZXNpemUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gbWltZVR5cGUgLSB0aGUgbWltZSB0eXBlIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHNpemVzVG9TYXZlIC0gdGhlIHNpemVzIHRvIHNhdmVcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0XG4gKi9cbmNvbnN0IGNyZWF0ZVJlc3VsdCA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBmaWxlbmFtZTogRmlsZVNpemVbJ2ZpbGVuYW1lJ10gPSBudWxsLFxuICB3aWR0aDogRmlsZVNpemVbJ3dpZHRoJ10gPSBudWxsLFxuICBoZWlnaHQ6IEZpbGVTaXplWydoZWlnaHQnXSA9IG51bGwsXG4gIGZpbGVzaXplOiBGaWxlU2l6ZVsnZmlsZXNpemUnXSA9IG51bGwsXG4gIG1pbWVUeXBlOiBGaWxlU2l6ZVsnbWltZVR5cGUnXSA9IG51bGwsXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXSxcbik6IEltYWdlU2l6ZXNSZXN1bHQgPT4gKHtcbiAgc2l6ZURhdGE6IHtcbiAgICBbbmFtZV06IHtcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgZmlsZXNpemUsXG4gICAgICBoZWlnaHQsXG4gICAgICBtaW1lVHlwZSxcbiAgICAgIHdpZHRoLFxuICAgIH0sXG4gIH0sXG4gIHNpemVzVG9TYXZlLFxufSlcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zXG4gKiBhbmQgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuIElmIHRoZSByZXNpemUgb3B0aW9ucyB3aXRob3V0RW5sYXJnZW1lbnQgb3Igd2l0aG91dFJlZHVjdGlvbiBhcmUgcHJvdmlkZWQsXG4gKiB0aGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zLCBnaXZlbiB0aGF0IHRoZVxuICogd2lkdGggb3IgaGVpZ2h0IHRvIGJlIHJlc2l6ZWQgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHJlc2l6aW5nIGlzIG5vdCBuZWVkZWQsIGZhbHNlIG90aGVyd2lzZVxuICovXG5jb25zdCBwcmV2ZW50UmVzaXplID0gKFxuICB7IGhlaWdodDogZGVzaXJlZEhlaWdodCwgd2lkdGg6IGRlc2lyZWRXaWR0aCwgd2l0aG91dEVubGFyZ2VtZW50LCB3aXRob3V0UmVkdWN0aW9uIH06IEltYWdlU2l6ZSxcbiAgb3JpZ2luYWw6IFByb2JlZEltYWdlU2l6ZSxcbik6IGJvb2xlYW4gPT4ge1xuICAvLyBkZWZhdWx0IGlzIHRvIGFsbG93IHJlZHVjdGlvblxuICBpZiAod2l0aG91dFJlZHVjdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgLy8gZGVmYXVsdCBpcyB0byBwcmV2ZW50IGVubGFyZ2VtZW50XG4gIGlmICh3aXRob3V0RW5sYXJnZW1lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBmYWxzZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQgPSAhZGVzaXJlZEhlaWdodCB8fCAhZGVzaXJlZFdpZHRoXG4gIGlmIChpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkKSB7XG4gICAgLy8gSWYgd2lkdGggYW5kIGhlaWdodCBhcmUgbm90IGRlZmluZWQsIGl0IG1lYW5zIHRoZXJlIGlzIGEgZm9ybWF0IGNvbnZlcnNpb25cbiAgICAvLyBhbmQgdGhlIGltYWdlIG5lZWRzIHRvIGJlIFwicmVzaXplZFwiICh0cmFuc2Zvcm1lZCkuXG4gICAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50V2lkdGggPSBkZXNpcmVkV2lkdGggPiBvcmlnaW5hbC53aWR0aFxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRIZWlnaHQgPSBkZXNpcmVkSGVpZ2h0ID4gb3JpZ2luYWwuaGVpZ2h0XG4gIGlmIChoYXNJbnN1ZmZpY2llbnRXaWR0aCAmJiBoYXNJbnN1ZmZpY2llbnRIZWlnaHQpIHtcbiAgICAvLyBkb2Vzbid0IG5lZWQgcmVzaXplIC0gcHJldmVudCBlbmxhcmdlbWVudC4gVGhpcyBzaG91bGQgb25seSBoYXBwZW4gaWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBpbnN1ZmZpY2llbnQuXG4gICAgLy8gaWYgb25seSBvbmUgZGltZW5zaW9uIGlzIGluc3VmZmljaWVudCBhbmQgdGhlIG90aGVyIGlzIHN1ZmZpY2llbnQsIHJlc2l6aW5nIG5lZWRzIHRvIGhhcHBlbiwgYXMgdGhlIGltYWdlXG4gICAgLy8gc2hvdWxkIGJlIHJlc2l6ZWQgdG8gdGhlIHN1ZmZpY2llbnQgZGltZW5zaW9uLlxuICAgIHJldHVybiB0cnVlIC8vIGRvIG5vdCBjcmVhdGUgYSBuZXcgc2l6ZVxuICB9XG5cbiAgcmV0dXJuIGZhbHNlIC8vIG5lZWRzIHJlc2l6ZVxufVxuXG4vKipcbiAqIENoZWNrIGlmIHRoZSBpbWFnZSBzaG91bGQgYmUgcGFzc2VkIGRpcmVjdGx5IHRvIHNoYXJwIHdpdGhvdXQgcGF5bG9hZCBhZGp1c3RpbmcgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0gcmVzaXplQ29uZmlnIC0gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zIGFuZCByZXNpemUgb3B0aW9uc1xuICogQHBhcmFtIG9yaWdpbmFsIC0gdGhlIG9yaWdpbmFsIGltYWdlIHNpemVcbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIGltYWdlIHNob3VsZCBwYXNzZWQgZGlyZWN0bHkgdG8gc2hhcnBcbiAqL1xuY29uc3QgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMgPSAoXG4gIHsgZml0LCBoZWlnaHQsIHdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKSA9PiB7XG4gIGlmIChmaXQgPT09ICdjb250YWluJyB8fCBmaXQgPT09ICdpbnNpZGUnKSByZXR1cm4gZmFsc2VcbiAgaWYgKCFpc051bWJlcihoZWlnaHQpICYmICFpc051bWJlcih3aWR0aCkpIHJldHVybiBmYWxzZVxuXG4gIGNvbnN0IHRhcmdldEFzcGVjdFJhdGlvID0gd2lkdGggLyBoZWlnaHRcbiAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IG9yaWdpbmFsLndpZHRoIC8gb3JpZ2luYWwuaGVpZ2h0XG4gIGlmIChvcmlnaW5hbEFzcGVjdFJhdGlvID09PSB0YXJnZXRBc3BlY3RSYXRpbykgcmV0dXJuIGZhbHNlXG5cbiAgY29uc3Qgc2tpcEVubGFyZ2VtZW50ID0gd2l0aG91dEVubGFyZ2VtZW50ICYmIChvcmlnaW5hbC5oZWlnaHQgPCBoZWlnaHQgfHwgb3JpZ2luYWwud2lkdGggPCB3aWR0aClcbiAgY29uc3Qgc2tpcFJlZHVjdGlvbiA9IHdpdGhvdXRSZWR1Y3Rpb24gJiYgKG9yaWdpbmFsLmhlaWdodCA+IGhlaWdodCB8fCBvcmlnaW5hbC53aWR0aCA+IHdpZHRoKVxuICBpZiAoc2tpcEVubGFyZ2VtZW50IHx8IHNraXBSZWR1Y3Rpb24pIHJldHVybiBmYWxzZVxuXG4gIHJldHVybiB0cnVlXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIHJlc2l6ZSBjb25maWcuIElmIHRoZSByZXNpemUgY29uZmlnIGhhcyB0aGUgYHdpdGhvdXRSZWR1Y3Rpb25gXG4gKiBwcm9wZXJ0eSBzZXQgdG8gdHJ1ZSwgdGhlIGBmaXRgIGFuZCBgcG9zaXRpb25gIHByb3BlcnRpZXMgd2lsbCBiZSBzZXQgdG8gYGNvbnRhaW5gXG4gKiBhbmQgYHRvcCBsZWZ0YCByZXNwZWN0aXZlbHkuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyBhIHNhbml0aXplZCByZXNpemUgY29uZmlnXG4gKi9cbmNvbnN0IHNhbml0aXplUmVzaXplQ29uZmlnID0gKHJlc2l6ZUNvbmZpZzogSW1hZ2VTaXplKTogSW1hZ2VTaXplID0+IHtcbiAgaWYgKHJlc2l6ZUNvbmZpZy53aXRob3V0UmVkdWN0aW9uKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc2l6ZUNvbmZpZyxcbiAgICAgIC8vIFdoeSBmaXQgYGNvbnRhaW5gIHNob3VsZCBhbHNvIGJlIHNldCB0byBodHRwczovL2dpdGh1Yi5jb20vbG92ZWxsL3NoYXJwL2lzc3Vlcy8zNTk1XG4gICAgICBmaXQ6IHJlc2l6ZUNvbmZpZz8uZml0IHx8ICdjb250YWluJyxcbiAgICAgIHBvc2l0aW9uOiByZXNpemVDb25maWc/LnBvc2l0aW9uIHx8ICdsZWZ0IHRvcCcsXG4gICAgfVxuICB9XG4gIHJldHVybiByZXNpemVDb25maWdcbn1cblxuLyoqXG4gKiBGb3IgdGhlIHByb3ZpZGVkIGltYWdlIHNpemVzLCBoYW5kbGUgdGhlIHJlc2l6aW5nIGFuZCB0aGUgdHJhbnNmb3Jtc1xuICogKGZvcm1hdCwgdHJpbSwgZXRjLikgb2YgZWFjaCByZXF1ZXN0ZWQgaW1hZ2Ugc2l6ZSBhbmQgcmV0dXJuIHRoZSByZXN1bHQgb2JqZWN0LlxuICogVGhpcyBvbmx5IGhhbmRsZXMgdGhlIGltYWdlIHNpemVzLiBUaGUgdHJhbnNmb3JtcyBvZiB0aGUgb3JpZ2luYWwgaW1hZ2VcbiAqIGFyZSBoYW5kbGVkIGluIHtAbGluayAuL2dlbmVyYXRlRmlsZURhdGEudHN9LlxuICpcbiAqIFRoZSBpbWFnZSB3aWxsIGJlIHJlc2l6ZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZFxuICogcmVzaXplIGNvbmZpZy4gSWYgbm8gaW1hZ2Ugc2l6ZXMgYXJlIHJlcXVlc3RlZCwgdGhlIHJlc29sdmVkIGRhdGEgd2lsbCBiZSBlbXB0eS5cbiAqIEZvciBldmVyeSBpbWFnZSB0aGF0IGRvcyBub3QgbmVlZCB0byBiZSByZXNpemVkLCBhbiByZXN1bHQgb2JqZWN0IHdpdGggYG51bGxgXG4gKiBwYXJhbWV0ZXJzIHdpbGwgYmUgcmV0dXJuZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIHRoZSByZXNpemUgY29uZmlnXG4gKiBAcmV0dXJucyB0aGUgcmVzdWx0IG9mIHRoZSByZXNpemUgb3BlcmF0aW9uKHMpXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMoe1xuICBjb25maWcsXG4gIGRpbWVuc2lvbnMsXG4gIGZpbGUsXG4gIG1pbWVUeXBlLFxuICByZXEsXG4gIHNhdmVkRmlsZW5hbWUsXG4gIHNoYXJwLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgaW1hZ2VSZXNpemVDb25maWcgPSBzYW5pdGl6ZVJlc2l6ZUNvbmZpZyhpbWFnZVJlc2l6ZUNvbmZpZylcblxuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAocHJldmVudFJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZywgZGltZW5zaW9ucykpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBpbWFnZVRvUmVzaXplID0gc2hhcnBCYXNlLmNsb25lKClcbiAgICAgIGxldCByZXNpemVkID0gaW1hZ2VUb1Jlc2l6ZVxuXG4gICAgICBpZiAoXG4gICAgICAgIHJlcS5xdWVyeT8udXBsb2FkRWRpdHM/LmZvY2FsUG9pbnQgJiZcbiAgICAgICAgYXBwbHlQYXlsb2FkQWRqdXN0bWVudHMoaW1hZ2VSZXNpemVDb25maWcsIGRpbWVuc2lvbnMpXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQ6IHJlc2l6ZUhlaWdodCwgd2lkdGg6IHJlc2l6ZVdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuICAgICAgICBjb25zdCByZXNpemVBc3BlY3RSYXRpbyA9IHJlc2l6ZVdpZHRoIC8gcmVzaXplSGVpZ2h0XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsQXNwZWN0UmF0aW8gPSBkaW1lbnNpb25zLndpZHRoIC8gZGltZW5zaW9ucy5oZWlnaHRcbiAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IHJlc2l6ZUFzcGVjdFJhdGlvIDwgb3JpZ2luYWxBc3BlY3RSYXRpb1xuXG4gICAgICAgIC8vIFNjYWxlIHRoZSBpbWFnZSB1cCBvciBkb3duIHRvIGZpdCB0aGUgcmVzaXplIGRpbWVuc2lvbnNcbiAgICAgICAgY29uc3Qgc2NhbGVkSW1hZ2UgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gcmVzaXplSGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICB3aWR0aDogcHJpb3JpdGl6ZUhlaWdodCA/IG51bGwgOiByZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgICAgY29uc3QgeyBpbmZvOiBzY2FsZWRJbWFnZUluZm8gfSA9IGF3YWl0IHNjYWxlZEltYWdlLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAvLyBGb2NhbCBwb2ludCBhZGp1c3RtZW50c1xuICAgICAgICBjb25zdCBmb2NhbFBvaW50ID0ge1xuICAgICAgICAgIHg6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC54XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICAgIHk6IGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py55KVxuICAgICAgICAgICAgPyByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgICA6IDUwLFxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZVdpZHRoID0gcmVzaXplV2lkdGggPz8gc2NhbGVkSW1hZ2VJbmZvLndpZHRoXG4gICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBzY2FsZWRJbWFnZUluZm8ud2lkdGggLSBzYWZlUmVzaXplV2lkdGhcbiAgICAgICAgY29uc3QgbGVmdEZvY2FsRWRnZSA9IE1hdGgucm91bmQoXG4gICAgICAgICAgc2NhbGVkSW1hZ2VJbmZvLndpZHRoICogKGZvY2FsUG9pbnQueCAvIDEwMCkgLSBzYWZlUmVzaXplV2lkdGggLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRYID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgbGVmdEZvY2FsRWRnZSksIG1heE9mZnNldFgpXG5cbiAgICAgICAgY29uc3Qgc2FmZVJlc2l6ZUhlaWdodCA9IHJlc2l6ZUhlaWdodCA/PyBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0XG4gICAgICAgIGNvbnN0IG1heE9mZnNldFkgPSBzY2FsZWRJbWFnZUluZm8uaGVpZ2h0IC0gc2FmZVJlc2l6ZUhlaWdodFxuICAgICAgICBjb25zdCB0b3BGb2NhbEVkZ2UgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIHNjYWxlZEltYWdlSW5mby5oZWlnaHQgKiAoZm9jYWxQb2ludC55IC8gMTAwKSAtIHNhZmVSZXNpemVIZWlnaHQgLyAyLFxuICAgICAgICApXG4gICAgICAgIGNvbnN0IHNhZmVPZmZzZXRZID0gTWF0aC5taW4oTWF0aC5tYXgoMCwgdG9wRm9jYWxFZGdlKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAvLyBleHRyYWN0IHRoZSBmb2NhbCBhcmVhIGZyb20gdGhlIHNjYWxlZCBpbWFnZVxuICAgICAgICByZXNpemVkID0gc2NhbGVkSW1hZ2UuZXh0cmFjdCh7XG4gICAgICAgICAgaGVpZ2h0OiBzYWZlUmVzaXplSGVpZ2h0LFxuICAgICAgICAgIGxlZnQ6IHNhZmVPZmZzZXRYLFxuICAgICAgICAgIHRvcDogc2FmZU9mZnNldFksXG4gICAgICAgICAgd2lkdGg6IHNhZmVSZXNpemVXaWR0aCxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSBpbWFnZVRvUmVzaXplLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJwcmV2ZW50UmVzaXplIiwiZGVzaXJlZEhlaWdodCIsImRlc2lyZWRXaWR0aCIsIndpdGhvdXRFbmxhcmdlbWVudCIsIndpdGhvdXRSZWR1Y3Rpb24iLCJvcmlnaW5hbCIsInVuZGVmaW5lZCIsImlzV2lkdGhPckhlaWdodE5vdERlZmluZWQiLCJoYXNJbnN1ZmZpY2llbnRXaWR0aCIsImhhc0luc3VmZmljaWVudEhlaWdodCIsImFwcGx5UGF5bG9hZEFkanVzdG1lbnRzIiwiZml0IiwiaXNOdW1iZXIiLCJ0YXJnZXRBc3BlY3RSYXRpbyIsIm9yaWdpbmFsQXNwZWN0UmF0aW8iLCJza2lwRW5sYXJnZW1lbnQiLCJza2lwUmVkdWN0aW9uIiwic2FuaXRpemVSZXNpemVDb25maWciLCJyZXNpemVDb25maWciLCJwb3NpdGlvbiIsImNvbmZpZyIsImRpbWVuc2lvbnMiLCJmaWxlIiwicmVxIiwic2F2ZWRGaWxlbmFtZSIsInNoYXJwIiwic3RhdGljUGF0aCIsImltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJzaGFycEJhc2UiLCJ0ZW1wRmlsZVBhdGgiLCJkYXRhIiwicm90YXRlIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJpbWFnZVJlc2l6ZUNvbmZpZyIsImltYWdlVG9SZXNpemUiLCJjbG9uZSIsInJlc2l6ZWQiLCJxdWVyeSIsInVwbG9hZEVkaXRzIiwiZm9jYWxQb2ludCIsInJlc2l6ZUhlaWdodCIsInJlc2l6ZVdpZHRoIiwicmVzaXplQXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0Iiwic2NhbGVkSW1hZ2UiLCJyZXNpemUiLCJpbmZvIiwic2NhbGVkSW1hZ2VJbmZvIiwidG9CdWZmZXIiLCJyZXNvbHZlV2l0aE9iamVjdCIsIngiLCJ5Iiwic2FmZVJlc2l6ZVdpZHRoIiwibWF4T2Zmc2V0WCIsImxlZnRGb2NhbEVkZ2UiLCJNYXRoIiwicm91bmQiLCJzYWZlT2Zmc2V0WCIsIm1pbiIsIm1heCIsInNhZmVSZXNpemVIZWlnaHQiLCJtYXhPZmZzZXRZIiwidG9wRm9jYWxFZGdlIiwic2FmZU9mZnNldFkiLCJleHRyYWN0IiwibGVmdCIsInRvcCIsImZvcm1hdE9wdGlvbnMiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltT3B0aW9ucyIsInRyaW0iLCJidWZmZXJEYXRhIiwiYnVmZmVySW5mbyIsInNhbml0aXplZEltYWdlIiwicGF5bG9hZFVwbG9hZFNpemVzIiwibWltZUluZm8iLCJmcm9tQnVmZmVyIiwiaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMiLCJpbWFnZVBhdGgiLCJmaWxlRXhpc3RzIiwiZnMiLCJ1bmxpbmtTeW5jIiwic2l6ZSIsIm1pbWUiLCJidWZmZXIiLCJwYXRoIiwicmVkdWNlIiwiYWNjIiwicmVzdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFvTUE7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNEOzs7ZUFBOEJBOzs7MEJBL01IOzJEQUNaO3lFQUNNOzBCQVFJO21FQUNGOzs7Ozs7QUE0QnZCOzs7OztDQUtDLEdBQ0QsTUFBTUMsd0JBQXdCLENBQUNDO0lBQzdCLE1BQU1DLFlBQVlELFlBQVlFLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQzVDLE1BQU1DLE9BQU9DLElBQUFBLHlCQUFRLEVBQUNMLFlBQVlNLFNBQVMsQ0FBQyxHQUFHTixZQUFZTyxXQUFXLENBQUMsU0FBU1A7SUFDaEYsT0FBTztRQUFFSTtRQUFNSSxLQUFLUDtJQUFVO0FBQ2hDO0FBRUE7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsTUFBTVEsa0JBQWtCLENBQ3RCQyxpQkFDQSxFQUFFQyxNQUFNLEVBQUVDLEtBQUssRUFBYyxFQUM3QlgsWUFDRyxDQUFDLEVBQUVTLGdCQUFnQixDQUFDLEVBQUVFLE1BQU0sQ0FBQyxFQUFFRCxPQUFPLENB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.0.0-alpha.14",
3
+ "version": "3.0.0-alpha.15",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -45,8 +45,7 @@
45
45
  "sanitize-filename": "1.6.3",
46
46
  "scheduler": "0.23.0",
47
47
  "scmp": "2.1.0",
48
- "sharp": "0.32.6",
49
- "@payloadcms/translations": "3.0.0-alpha.14"
48
+ "@payloadcms/translations": "3.0.0-alpha.15"
50
49
  },
51
50
  "devDependencies": {
52
51
  "@monaco-editor/react": "4.5.1",
@@ -93,6 +92,7 @@
93
92
  "rimraf": "3.0.2",
94
93
  "serve-static": "1.15.0",
95
94
  "ts-essentials": "7.0.3",
95
+ "sharp": "0.32.6",
96
96
  "@payloadcms/eslint-config": "1.1.1"
97
97
  },
98
98
  "engines": {