payload 2.7.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/components/utilities.d.ts +1 -0
  2. package/components/utilities.js +5 -1
  3. package/dist/admin/components/forms/field-types/Relationship/index.d.ts.map +1 -1
  4. package/dist/admin/components/forms/field-types/Relationship/index.js +11 -9
  5. package/dist/admin/components/forms/useField/types.d.ts +1 -1
  6. package/dist/admin/components/forms/useField/types.d.ts.map +1 -1
  7. package/dist/bin/build.d.ts.map +1 -1
  8. package/dist/bin/build.js +5 -9
  9. package/dist/bundlers/mocks/db-mongodb.js +13 -0
  10. package/dist/bundlers/mocks/db-postgres.js +13 -0
  11. package/dist/collections/graphql/init.d.ts.map +1 -1
  12. package/dist/collections/graphql/init.js +4 -3
  13. package/dist/collections/operations/create.d.ts.map +1 -1
  14. package/dist/collections/operations/create.js +4 -3
  15. package/dist/database/getLocalizedPaths.js +2 -2
  16. package/dist/database/migrations/migrate.js +4 -2
  17. package/dist/database/migrations/migrateDown.js +4 -2
  18. package/dist/database/migrations/migrateRefresh.js +4 -2
  19. package/dist/database/migrations/migrateReset.js +4 -2
  20. package/dist/exports/components/utilities.d.ts +1 -0
  21. package/dist/exports/components/utilities.d.ts.map +1 -1
  22. package/dist/exports/components/utilities.js +5 -1
  23. package/dist/fields/config/schema.d.ts.map +1 -1
  24. package/dist/fields/config/schema.js +3 -2
  25. package/dist/fields/config/types.d.ts +2 -0
  26. package/dist/fields/config/types.d.ts.map +1 -1
  27. package/dist/fields/config/types.js +1 -1
  28. package/dist/fields/validations.js +2 -2
  29. package/dist/fields/validations.spec.js +22 -1
  30. package/dist/graphql/schema/buildMutationInputType.d.ts.map +1 -1
  31. package/dist/graphql/schema/buildMutationInputType.js +3 -2
  32. package/dist/graphql/schema/buildWhereInputType.d.ts.map +1 -1
  33. package/dist/graphql/schema/buildWhereInputType.js +3 -3
  34. package/dist/utilities/logger.js +2 -2
  35. package/package.json +2 -2
@@ -5,5 +5,6 @@ export { useDocumentInfo } from '../dist/admin/components/utilities/DocumentInfo
5
5
  export { useEditDepth } from '../dist/admin/components/utilities/EditDepth';
6
6
  export { useLocale } from '../dist/admin/components/utilities/Locale';
7
7
  export { default as Meta } from '../dist/admin/components/utilities/Meta';
8
+ export { useTheme } from '../dist/admin/components/utilities/Theme';
8
9
  export { withMergedProps } from '../dist/admin/components/utilities/WithMergedProps';
9
10
  //# sourceMappingURL=utilities.d.ts.map
@@ -30,6 +30,9 @@ _export(exports, {
30
30
  Meta: function() {
31
31
  return _Meta.default;
32
32
  },
33
+ useTheme: function() {
34
+ return _Theme.useTheme;
35
+ },
33
36
  withMergedProps: function() {
34
37
  return _WithMergedProps.withMergedProps;
35
38
  }
@@ -41,6 +44,7 @@ const _DocumentInfo = require("../dist/admin/components/utilities/DocumentInfo")
41
44
  const _EditDepth = require("../dist/admin/components/utilities/EditDepth");
42
45
  const _Locale = require("../dist/admin/components/utilities/Locale");
43
46
  const _Meta = /*#__PURE__*/ _interop_require_default(require("../dist/admin/components/utilities/Meta"));
47
+ const _Theme = require("../dist/admin/components/utilities/Theme");
44
48
  const _WithMergedProps = require("../dist/admin/components/utilities/WithMergedProps");
45
49
  function _interop_require_default(obj) {
46
50
  return obj && obj.__esModule ? obj : {
@@ -48,4 +52,4 @@ function _interop_require_default(obj) {
48
52
  };
49
53
  }
50
54
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdXRpbGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgYnVpbGRTdGF0ZUZyb21TY2hlbWEgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vYnVpbGRTdGF0ZUZyb21TY2hlbWEnXG5leHBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvQXV0aCdcbmV4cG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0NvbmZpZydcbmV4cG9ydCB7IHVzZURvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmV4cG9ydCB7IHVzZUVkaXREZXB0aCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0VkaXREZXB0aCdcbmV4cG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0xvY2FsZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWV0YSB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL01ldGEnXG5leHBvcnQgeyB3aXRoTWVyZ2VkUHJvcHMgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL3V0aWxpdGllcy9XaXRoTWVyZ2VkUHJvcHMnXG4iXSwibmFtZXMiOlsiYnVpbGRTdGF0ZUZyb21TY2hlbWEiLCJ1c2VBdXRoIiwidXNlQ29uZmlnIiwidXNlRG9jdW1lbnRJbmZvIiwidXNlRWRpdERlcHRoIiwidXNlTG9jYWxlIiwiTWV0YSIsIndpdGhNZXJnZWRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLG9CQUFvQjtlQUFwQkEsNkJBQW9COztJQUMvQkMsT0FBTztlQUFQQSxhQUFPOztJQUNQQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxlQUFlO2VBQWZBLDZCQUFlOztJQUNmQyxZQUFZO2VBQVpBLHVCQUFZOztJQUNaQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNFQyxJQUFJO2VBQUpBLGFBQUk7O0lBQ2ZDLGVBQWU7ZUFBZkEsZ0NBQWU7Ozs2RUFQd0I7c0JBQ3hCO3dCQUNFOzhCQUNNOzJCQUNIO3dCQUNIOzZEQUNNO2lDQUNBIn0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHBvcnRzL2NvbXBvbmVudHMvdXRpbGl0aWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgYXMgYnVpbGRTdGF0ZUZyb21TY2hlbWEgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL0Zvcm0vYnVpbGRTdGF0ZUZyb21TY2hlbWEnXG5leHBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvQXV0aCdcbmV4cG9ydCB7IHVzZUNvbmZpZyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0NvbmZpZydcbmV4cG9ydCB7IHVzZURvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0RvY3VtZW50SW5mbydcbmV4cG9ydCB7IHVzZUVkaXREZXB0aCB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0VkaXREZXB0aCdcbmV4cG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0xvY2FsZSdcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWV0YSB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL01ldGEnXG5leHBvcnQgeyB1c2VUaGVtZSB9IGZyb20gJy4uLy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL1RoZW1lJ1xuZXhwb3J0IHsgd2l0aE1lcmdlZFByb3BzIH0gZnJvbSAnLi4vLi4vYWRtaW4vY29tcG9uZW50cy91dGlsaXRpZXMvV2l0aE1lcmdlZFByb3BzJ1xuIl0sIm5hbWVzIjpbImJ1aWxkU3RhdGVGcm9tU2NoZW1hIiwidXNlQXV0aCIsInVzZUNvbmZpZyIsInVzZURvY3VtZW50SW5mbyIsInVzZUVkaXREZXB0aCIsInVzZUxvY2FsZSIsIk1ldGEiLCJ1c2VUaGVtZSIsIndpdGhNZXJnZWRQcm9wcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFBb0JBLG9CQUFvQjtlQUFwQkEsNkJBQW9COztJQUMvQkMsT0FBTztlQUFQQSxhQUFPOztJQUNQQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNUQyxlQUFlO2VBQWZBLDZCQUFlOztJQUNmQyxZQUFZO2VBQVpBLHVCQUFZOztJQUNaQyxTQUFTO2VBQVRBLGlCQUFTOztJQUNFQyxJQUFJO2VBQUpBLGFBQUk7O0lBQ2ZDLFFBQVE7ZUFBUkEsZUFBUTs7SUFDUkMsZUFBZTtlQUFmQSxnQ0FBZTs7OzZFQVJ3QjtzQkFDeEI7d0JBQ0U7OEJBQ007MkJBQ0g7d0JBQ0g7NkRBQ007dUJBQ1A7aUNBQ08ifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/field-types/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAMnF,OAAO,KAAK,EAA2C,KAAK,EAAS,MAAM,SAAS,CAAA;AAoBpF,OAAO,cAAc,CAAA;;AAigBrB,wBAA0C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/field-types/Relationship/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAMnF,OAAO,KAAK,EAA2C,KAAK,EAAS,MAAM,SAAS,CAAA;AAoBpF,OAAO,cAAc,CAAA;;AAmgBrB,wBAA0C"}
@@ -157,6 +157,7 @@ const Relationship = (props)=>{
157
157
  }
158
158
  const query = {
159
159
  depth: 0,
160
+ draft: true,
160
161
  limit: maxResultsPerRequest,
161
162
  locale,
162
163
  page: lastLoadedPageToUse,
@@ -201,24 +202,24 @@ const Relationship = (props)=>{
201
202
  if (data.docs.length > 0) {
202
203
  resultsFetched += data.docs.length;
203
204
  dispatchOptions({
205
+ type: 'ADD',
204
206
  collection,
205
207
  config,
206
208
  docs: data.docs,
207
209
  i18n,
208
- sort,
209
- type: 'ADD'
210
+ sort
210
211
  });
211
212
  }
212
213
  } else if (response.status === 403) {
213
214
  setLastFullyLoadedRelation(relations.indexOf(relation));
214
215
  dispatchOptions({
216
+ type: 'ADD',
215
217
  collection,
216
218
  config,
217
219
  docs: [],
218
220
  i18n,
219
221
  ids: relationMap[relation],
220
- sort,
221
- type: 'ADD'
222
+ sort
222
223
  });
223
224
  } else {
224
225
  setErrorLoading(t('error:unspecific'));
@@ -278,6 +279,7 @@ const Relationship = (props)=>{
278
279
  if (idsToLoad.length > 0) {
279
280
  const query = {
280
281
  depth: 0,
282
+ draft: true,
281
283
  limit: idsToLoad.length,
282
284
  locale,
283
285
  where: {
@@ -300,13 +302,13 @@ const Relationship = (props)=>{
300
302
  docs = data.docs;
301
303
  }
302
304
  dispatchOptions({
305
+ type: 'ADD',
303
306
  collection,
304
307
  config,
305
308
  docs,
306
309
  i18n,
307
310
  ids: idsToLoad,
308
- sort: true,
309
- type: 'ADD'
311
+ sort: true
310
312
  });
311
313
  }
312
314
  }
@@ -360,11 +362,11 @@ const Relationship = (props)=>{
360
362
  ]);
361
363
  const onSave = (0, _react.useCallback)((args)=>{
362
364
  dispatchOptions({
365
+ type: 'UPDATE',
363
366
  collection: args.collectionConfig,
364
367
  config,
365
368
  doc: args.doc,
366
- i18n,
367
- type: 'UPDATE'
369
+ i18n
368
370
  });
369
371
  }, [
370
372
  i18n,
@@ -504,4 +506,4 @@ const Relationship = (props)=>{
504
506
  };
505
507
  const _default = (0, _withCondition.default)(Relationship);
506
508
 
507
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JlbGF0aW9uc2hpcC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHFzIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZHVjZXIsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZWREb2NzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50RHJhd2VyUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9Eb2N1bWVudERyYXdlci90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsdGVyT3B0aW9uc1Jlc3VsdCwgR2V0UmVzdWx0cywgT3B0aW9uLCBQcm9wcywgVmFsdWUgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnNoaXAgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9maWVsZHMvdmFsaWRhdGlvbnMnXG5pbXBvcnQgd29yZEJvdW5kYXJpZXNSZWdleCBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsaXRpZXMvd29yZEJvdW5kYXJpZXNSZWdleCdcbmltcG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snXG5pbXBvcnQgUmVhY3RTZWxlY3QgZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvUmVhY3RTZWxlY3QnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgR2V0RmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9HZXRGaWx0ZXJPcHRpb25zJ1xuaW1wb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL0xvY2FsZSdcbmltcG9ydCBEZWZhdWx0RXJyb3IgZnJvbSAnLi4vLi4vRXJyb3InXG5pbXBvcnQgRmllbGREZXNjcmlwdGlvbiBmcm9tICcuLi8uLi9GaWVsZERlc2NyaXB0aW9uJ1xuaW1wb3J0IHsgdXNlRm9ybVByb2Nlc3NpbmcgfSBmcm9tICcuLi8uLi9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgRGVmYXVsdExhYmVsIGZyb20gJy4uLy4uL0xhYmVsJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uL3VzZUZpZWxkJ1xuaW1wb3J0IHdpdGhDb25kaXRpb24gZnJvbSAnLi4vLi4vd2l0aENvbmRpdGlvbidcbmltcG9ydCB7IGZpZWxkQmFzZUNsYXNzIH0gZnJvbSAnLi4vc2hhcmVkJ1xuaW1wb3J0IHsgQWRkTmV3UmVsYXRpb24gfSBmcm9tICcuL0FkZE5ldydcbmltcG9ydCB7IGNyZWF0ZVJlbGF0aW9uTWFwIH0gZnJvbSAnLi9jcmVhdGVSZWxhdGlvbk1hcCdcbmltcG9ydCB7IGZpbmRPcHRpb25zQnlWYWx1ZSB9IGZyb20gJy4vZmluZE9wdGlvbnNCeVZhbHVlJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5pbXBvcnQgb3B0aW9uc1JlZHVjZXIgZnJvbSAnLi9vcHRpb25zUmVkdWNlcidcbmltcG9ydCB7IE11bHRpVmFsdWVMYWJlbCB9IGZyb20gJy4vc2VsZWN0LWNvbXBvbmVudHMvTXVsdGlWYWx1ZUxhYmVsJ1xuaW1wb3J0IHsgU2luZ2xlVmFsdWUgfSBmcm9tICcuL3NlbGVjdC1jb21wb25lbnRzL1NpbmdsZVZhbHVlJ1xuXG5jb25zdCBtYXhSZXN1bHRzUGVyUmVxdWVzdCA9IDEwXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdyZWxhdGlvbnNoaXAnXG5cbmNvbnN0IFJlbGF0aW9uc2hpcDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIGFkbWluOiB7XG4gICAgICBhbGxvd0NyZWF0ZSA9IHRydWUsXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBjb21wb25lbnRzOiB7IEVycm9yLCBMYWJlbCB9ID0ge30sXG4gICAgICBjb25kaXRpb24sXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGlzU29ydGFibGUgPSB0cnVlLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBzb3J0T3B0aW9ucyxcbiAgICAgIHN0eWxlLFxuICAgICAgd2lkdGgsXG4gICAgfSA9IHt9LFxuICAgIGZpbHRlck9wdGlvbnMsXG4gICAgaGFzTWFueSxcbiAgICBsYWJlbCxcbiAgICBwYXRoLFxuICAgIHJlbGF0aW9uVG8sXG4gICAgcmVxdWlyZWQsXG4gICAgdmFsaWRhdGUgPSByZWxhdGlvbnNoaXAsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IEVycm9yQ29tcCA9IEVycm9yIHx8IERlZmF1bHRFcnJvclxuICBjb25zdCBMYWJlbENvbXAgPSBMYWJlbCB8fCBEZWZhdWx0TGFiZWxcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9ucyxcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gY29uZmlnXG5cbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZmllbGRzJylcbiAgY29uc3QgeyBwZXJtaXNzaW9ucyB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCBmb3JtUHJvY2Vzc2luZyA9IHVzZUZvcm1Qcm9jZXNzaW5nKClcbiAgY29uc3QgaGFzTXVsdGlwbGVSZWxhdGlvbnMgPSBBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pXG4gIGNvbnN0IFtvcHRpb25zLCBkaXNwYXRjaE9wdGlvbnNdID0gdXNlUmVkdWNlcihvcHRpb25zUmVkdWNlciwgW10pXG4gIGNvbnN0IFtsYXN0RnVsbHlMb2FkZWRSZWxhdGlvbiwgc2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb25dID0gdXNlU3RhdGUoLTEpXG4gIGNvbnN0IFtsYXN0TG9hZGVkUGFnZSwgc2V0TGFzdExvYWRlZFBhZ2VdID0gdXNlU3RhdGU8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4oe30pXG4gIGNvbnN0IFtlcnJvckxvYWRpbmcsIHNldEVycm9yTG9hZGluZ10gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2ZpbHRlck9wdGlvbnNSZXN1bHQsIHNldEZpbHRlck9wdGlvbnNSZXN1bHRdID0gdXNlU3RhdGU8RmlsdGVyT3B0aW9uc1Jlc3VsdD4oKVxuICBjb25zdCBbc2VhcmNoLCBzZXRTZWFyY2hdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc0xvYWRlZEZpcnN0UGFnZSwgc2V0SGFzTG9hZGVkRmlyc3RQYWdlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZW5hYmxlV29yZEJvdW5kYXJ5U2VhcmNoLCBzZXRFbmFibGVXb3JkQm91bmRhcnlTZWFyY2hdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGZpcnN0UnVuID0gdXNlUmVmKHRydWUpXG4gIGNvbnN0IHBhdGhPck5hbWUgPSBwYXRoIHx8IG5hbWVcblxuICBjb25zdCBtZW1vaXplZFZhbGlkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlLCB2YWxpZGF0aW9uT3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIHZhbGlkYXRlKHZhbHVlLCB7IC4uLnZhbGlkYXRpb25PcHRpb25zLCByZXF1aXJlZCB9KVxuICAgIH0sXG4gICAgW3ZhbGlkYXRlLCByZXF1aXJlZF0sXG4gIClcblxuICBjb25zdCB7IGVycm9yTWVzc2FnZSwgaW5pdGlhbFZhbHVlLCBzZXRWYWx1ZSwgc2hvd0Vycm9yLCB2YWx1ZSB9ID0gdXNlRmllbGQ8VmFsdWUgfCBWYWx1ZVtdPih7XG4gICAgY29uZGl0aW9uLFxuICAgIHBhdGg6IHBhdGhPck5hbWUsXG4gICAgdmFsaWRhdGU6IG1lbW9pemVkVmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgW2RyYXdlcklzT3Blbiwgc2V0RHJhd2VySXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGdldFJlc3VsdHM6IEdldFJlc3VsdHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgbGFzdEZ1bGx5TG9hZGVkUmVsYXRpb246IGxhc3RGdWxseUxvYWRlZFJlbGF0aW9uQXJnLFxuICAgICAgb25TdWNjZXNzLFxuICAgICAgc2VhcmNoOiBzZWFyY2hBcmcsXG4gICAgICBzb3J0LFxuICAgICAgdmFsdWU6IHZhbHVlQXJnLFxuICAgIH0pID0+IHtcbiAgICAgIGlmICghcGVybWlzc2lvbnMpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBsYXN0RnVsbHlMb2FkZWRSZWxhdGlvblRvVXNlID1cbiAgICAgICAgdHlwZW9mIGxhc3RGdWxseUxvYWRlZFJlbGF0aW9uQXJnICE9PSAndW5kZWZpbmVkJyA/IGxhc3RGdWxseUxvYWRlZFJlbGF0aW9uQXJnIDogLTFcblxuICAgICAgY29uc3QgcmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSA/IHJlbGF0aW9uVG8gOiBbcmVsYXRpb25Ub11cbiAgICAgIGNvbnN0IHJlbGF0aW9uc1RvRmV0Y2ggPVxuICAgICAgICBsYXN0RnVsbHlMb2FkZWRSZWxhdGlvblRvVXNlID09PSAtMVxuICAgICAgICAgID8gcmVsYXRpb25zXG4gICAgICAgICAgOiByZWxhdGlvbnMuc2xpY2UobGFzdEZ1bGx5TG9hZGVkUmVsYXRpb25Ub1VzZSArIDEpXG5cbiAgICAgIGxldCByZXN1bHRzRmV0Y2hlZCA9IDBcbiAgICAgIGNvbnN0IHJlbGF0aW9uTWFwID0gY3JlYXRlUmVsYXRpb25NYXAoe1xuICAgICAgICBoYXNNYW55LFxuICAgICAgICByZWxhdGlvblRvLFxuICAgICAgICB2YWx1ZTogdmFsdWVBcmcsXG4gICAgICB9KVxuXG4gICAgICBpZiAoIWVycm9yTG9hZGluZykge1xuICAgICAgICByZWxhdGlvbnNUb0ZldGNoLnJlZHVjZShhc3luYyAocHJpb3JSZWxhdGlvbiwgcmVsYXRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCByZWxhdGlvbkZpbHRlck9wdGlvbiA9IGZpbHRlck9wdGlvbnNSZXN1bHQ/LltyZWxhdGlvbl1cbiAgICAgICAgICBsZXQgbGFzdExvYWRlZFBhZ2VUb1VzZVxuICAgICAgICAgIGlmIChzZWFyY2ggIT09IHNlYXJjaEFyZykge1xuICAgICAgICAgICAgbGFzdExvYWRlZFBhZ2VUb1VzZSA9IDFcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFzdExvYWRlZFBhZ2VUb1VzZSA9IGxhc3RMb2FkZWRQYWdlW3JlbGF0aW9uXSArIDFcbiAgICAgICAgICB9XG4gICAgICAgICAgYXdhaXQgcHJpb3JSZWxhdGlvblxuXG4gICAgICAgICAgaWYgKHJlbGF0aW9uRmlsdGVyT3B0aW9uID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb24ocmVsYXRpb25zLmluZGV4T2YocmVsYXRpb24pKVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlc3VsdHNGZXRjaGVkIDwgMTApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9ucy5maW5kKChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IHJlbGF0aW9uKVxuICAgICAgICAgICAgbGV0IGZpZWxkVG9TZWFyY2ggPSBjb2xsZWN0aW9uPy5kZWZhdWx0U29ydCB8fCBjb2xsZWN0aW9uPy5hZG1pbj8udXNlQXNUaXRsZSB8fCAnaWQnXG4gICAgICAgICAgICBpZiAoIXNlYXJjaEFyZykge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHNvcnRPcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZpZWxkVG9TZWFyY2ggPSBzb3J0T3B0aW9uc1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvcnRPcHRpb25zPy5bcmVsYXRpb25dKSB7XG4gICAgICAgICAgICAgICAgZmllbGRUb1NlYXJjaCA9IHNvcnRPcHRpb25zW3JlbGF0aW9uXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5OiB7XG4gICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd25cbiAgICAgICAgICAgICAgd2hlcmU6IFdoZXJlXG4gICAgICAgICAgICB9ID0ge1xuICAgICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgICAgbGltaXQ6IG1heFJlc3VsdHNQZXJSZXF1ZXN0LFxuICAgICAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgICAgIHBhZ2U6IGxhc3RMb2FkZWRQYWdlVG9Vc2UsXG4gICAgICAgICAgICAgIHNvcnQ6IGZpZWxkVG9TZWFyY2gsXG4gICAgICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICAgICAgYW5kOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgbm90X2luOiByZWxhdGlvbk1hcFtyZWxhdGlvbl0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWFyY2hBcmcpIHtcbiAgICAgICAgICAgICAgcXVlcnkud2hlcmUuYW5kLnB1c2goe1xuICAgICAgICAgICAgICAgIFtmaWVsZFRvU2VhcmNoXToge1xuICAgICAgICAgICAgICAgICAgbGlrZTogc2VhcmNoQXJnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChyZWxhdGlvbkZpbHRlck9wdGlvbiAmJiB0eXBlb2YgcmVsYXRpb25GaWx0ZXJPcHRpb24gIT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgICBxdWVyeS53aGVyZS5hbmQucHVzaChyZWxhdGlvbkZpbHRlck9wdGlvbilcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7cmVsYXRpb259PyR7cXMuc3RyaW5naWZ5KHF1ZXJ5KX1gLCB7XG4gICAgICAgICAgICAgIGNyZWRlbnRpYWxzOiAnaW5jbHVkZScsXG4gICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgICBjb25zdCBkYXRhOiBQYWdpbmF0ZWREb2NzPHVua25vd24+ID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgICAgICAgIHNldExhc3RMb2FkZWRQYWdlKChwcmV2U3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgLi4ucHJldlN0YXRlLFxuICAgICAgICAgICAgICAgICAgW3JlbGF0aW9uXTogbGFzdExvYWRlZFBhZ2VUb1VzZSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgICAgaWYgKCFkYXRhLm5leHRQYWdlKSB7XG4gICAgICAgICAgICAgICAgc2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb24ocmVsYXRpb25zLmluZGV4T2YocmVsYXRpb24pKVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgaWYgKGRhdGEuZG9jcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0c0ZldGNoZWQgKz0gZGF0YS5kb2NzLmxlbmd0aFxuXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hPcHRpb25zKHtcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgICBkb2NzOiBkYXRhLmRvY3MsXG4gICAgICAgICAgICAgICAgICBpMThuLFxuICAgICAgICAgICAgICAgICAgc29ydCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdBREQnLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSA0MDMpIHtcbiAgICAgICAgICAgICAgc2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb24ocmVsYXRpb25zLmluZGV4T2YocmVsYXRpb24pKVxuICAgICAgICAgICAgICBkaXNwYXRjaE9wdGlvbnMoe1xuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgICAgIGRvY3M6IFtdLFxuICAgICAgICAgICAgICAgIGkxOG4sXG4gICAgICAgICAgICAgICAgaWRzOiByZWxhdGlvbk1hcFtyZWxhdGlvbl0sXG4gICAgICAgICAgICAgICAgc29ydCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnQUREJyxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHNldEVycm9yTG9hZGluZyh0KCdlcnJvcjp1bnNwZWNpZmljJykpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICBpZiAodHlwZW9mIG9uU3VjY2VzcyA9PT0gJ2Z1bmN0aW9uJykgb25TdWNjZXNzKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtcbiAgICAgIHBlcm1pc3Npb25zLFxuICAgICAgcmVsYXRpb25UbyxcbiAgICAgIGhhc01hbnksXG4gICAgICBlcnJvckxvYWRpbmcsXG4gICAgICBzZWFyY2gsXG4gICAgICBsYXN0TG9hZGVkUGFnZSxcbiAgICAgIGNvbGxlY3Rpb25zLFxuICAgICAgbG9jYWxlLFxuICAgICAgZmlsdGVyT3B0aW9uc1Jlc3VsdCxcbiAgICAgIHNlcnZlclVSTCxcbiAgICAgIHNvcnRPcHRpb25zLFxuICAgICAgYXBpLFxuICAgICAgaTE4bixcbiAgICAgIGNvbmZpZyxcbiAgICAgIHQsXG4gICAgXSxcbiAgKVxuXG4gIGNvbnN0IHVwZGF0ZVNlYXJjaCA9IHVzZURlYm91bmNlZENhbGxiYWNrKChzZWFyY2hBcmc6IHN0cmluZywgdmFsdWVBcmc6IFZhbHVlIHwgVmFsdWVbXSkgPT4ge1xuICAgIGdldFJlc3VsdHMoeyBzZWFyY2g6IHNlYXJjaEFyZywgc29ydDogdHJ1ZSwgdmFsdWU6IHZhbHVlQXJnIH0pXG4gICAgc2V0U2VhcmNoKHNlYXJjaEFyZylcbiAgfSwgMzAwKVxuXG4gIGNvbnN0IGhhbmRsZUlucHV0Q2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKHNlYXJjaEFyZzogc3RyaW5nLCB2YWx1ZUFyZzogVmFsdWUgfCBWYWx1ZVtdKSA9PiB7XG4gICAgICBpZiAoc2VhcmNoICE9PSBzZWFyY2hBcmcpIHtcbiAgICAgICAgc2V0TGFzdExvYWRlZFBhZ2Uoe30pXG4gICAgICAgIHVwZGF0ZVNlYXJjaChzZWFyY2hBcmcsIHZhbHVlQXJnLCBzZWFyY2hBcmcgIT09ICcnKVxuICAgICAgfVxuICAgIH0sXG4gICAgW3NlYXJjaCwgdXBkYXRlU2VhcmNoXSxcbiAgKVxuXG4gIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vIEVuc3VyZSB3ZSBoYXZlIGFuIG9wdGlvbiBmb3IgZWFjaCB2YWx1ZVxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpb25NYXAgPSBjcmVhdGVSZWxhdGlvbk1hcCh7XG4gICAgICBoYXNNYW55LFxuICAgICAgcmVsYXRpb25UbyxcbiAgICAgIHZhbHVlLFxuICAgIH0pXG5cbiAgICBPYmplY3QuZW50cmllcyhyZWxhdGlvbk1hcCkucmVkdWNlKGFzeW5jIChwcmlvclJlbGF0aW9uLCBbcmVsYXRpb24sIGlkc10pID0+IHtcbiAgICAgIGF3YWl0IHByaW9yUmVsYXRpb25cblxuICAgICAgY29uc3QgaWRzVG9Mb2FkID0gaWRzLmZpbHRlcigoaWQpID0+IHtcbiAgICAgICAgcmV0dXJuICFvcHRpb25zLmZpbmQoXG4gICAgICAgICAgKG9wdGlvbkdyb3VwKSA9PlxuICAgICAgICAgICAgb3B0aW9uR3JvdXA/Lm9wdGlvbnM/LmZpbmQoXG4gICAgICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gaWQgJiYgb3B0aW9uLnJlbGF0aW9uVG8gPT09IHJlbGF0aW9uLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgKVxuICAgICAgfSlcblxuICAgICAgaWYgKGlkc1RvTG9hZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgIGxpbWl0OiBpZHNUb0xvYWQubGVuZ3RoLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgaWQ6IHtcbiAgICAgICAgICAgICAgaW46IGlkc1RvTG9hZCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZXJyb3JMb2FkaW5nKSB7XG4gICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChgJHtzZXJ2ZXJVUkx9JHthcGl9LyR7cmVsYXRpb259PyR7cXMuc3RyaW5naWZ5KHF1ZXJ5KX1gLCB7XG4gICAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQWNjZXB0LUxhbmd1YWdlJzogaTE4bi5sYW5ndWFnZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9ucy5maW5kKChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IHJlbGF0aW9uKVxuICAgICAgICAgIGxldCBkb2NzID0gW11cblxuICAgICAgICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgZG9jcyA9IGRhdGEuZG9jc1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGRpc3BhdGNoT3B0aW9ucyh7XG4gICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgZG9jcyxcbiAgICAgICAgICAgIGkxOG4sXG4gICAgICAgICAgICBpZHM6IGlkc1RvTG9hZCxcbiAgICAgICAgICAgIHNvcnQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAnQUREJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG4gIH0sIFtcbiAgICBvcHRpb25zLFxuICAgIHZhbHVlLFxuICAgIGhhc01hbnksXG4gICAgZXJyb3JMb2FkaW5nLFxuICAgIGNvbGxlY3Rpb25zLFxuICAgIGhhc011bHRpcGxlUmVsYXRpb25zLFxuICAgIHNlcnZlclVSTCxcbiAgICBhcGksXG4gICAgaTE4bixcbiAgICByZWxhdGlvblRvLFxuICAgIGxvY2FsZSxcbiAgICBjb25maWcsXG4gIF0pXG5cbiAgLy8gRGV0ZXJtaW5lIGlmIHdlIHNob3VsZCBzd2l0Y2ggdG8gd29yZCBib3VuZGFyeSBzZWFyY2hcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pID8gcmVsYXRpb25UbyA6IFtyZWxhdGlvblRvXVxuICAgIGNvbnN0IGlzSWRPbmx5ID0gcmVsYXRpb25zLnJlZHVjZSgoaWRPbmx5LCByZWxhdGlvbikgPT4ge1xuICAgICAgY29uc3QgY29sbGVjdGlvbiA9IGNvbGxlY3Rpb25zLmZpbmQoKGNvbGwpID0+IGNvbGwuc2x1ZyA9PT0gcmVsYXRpb24pXG4gICAgICBjb25zdCBmaWVsZFRvU2VhcmNoID0gY29sbGVjdGlvbj8uYWRtaW4/LnVzZUFzVGl0bGUgfHwgJ2lkJ1xuICAgICAgcmV0dXJuIGZpZWxkVG9TZWFyY2ggPT09ICdpZCcgJiYgaWRPbmx5XG4gICAgfSwgdHJ1ZSlcbiAgICBzZXRFbmFibGVXb3JkQm91bmRhcnlTZWFyY2goIWlzSWRPbmx5KVxuICB9LCBbcmVsYXRpb25UbywgY29sbGVjdGlvbnNdKVxuXG4gIC8vIFdoZW4gKGByZWxhdGlvblRvYCB8fCBgZmlsdGVyT3B0aW9uc1Jlc3VsdGAgfHwgYGxvY2FsZWApIGNoYW5nZXMsIHJlc2V0IGNvbXBvbmVudFxuICAvLyBOb3RlIC0gZWZmZWN0IHNob3VsZCBub3QgcnVuIG9uIGZpcnN0IHJ1blxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChmaXJzdFJ1bi5jdXJyZW50KSB7XG4gICAgICBmaXJzdFJ1bi5jdXJyZW50ID0gZmFsc2VcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGRpc3BhdGNoT3B0aW9ucyh7IHR5cGU6ICdDTEVBUicgfSlcbiAgICBzZXRMYXN0RnVsbHlMb2FkZWRSZWxhdGlvbigtMSlcbiAgICBzZXRMYXN0TG9hZGVkUGFnZSh7fSlcbiAgICBzZXRIYXNMb2FkZWRGaXJzdFBhZ2UoZmFsc2UpXG4gIH0sIFtyZWxhdGlvblRvLCBmaWx0ZXJPcHRpb25zUmVzdWx0LCBsb2NhbGVdKVxuXG4gIGNvbnN0IG9uU2F2ZSA9IHVzZUNhbGxiYWNrPERvY3VtZW50RHJhd2VyUHJvcHNbJ29uU2F2ZSddPihcbiAgICAoYXJncykgPT4ge1xuICAgICAgZGlzcGF0Y2hPcHRpb25zKHtcbiAgICAgICAgY29sbGVjdGlvbjogYXJncy5jb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICBjb25maWcsXG4gICAgICAgIGRvYzogYXJncy5kb2MsXG4gICAgICAgIGkxOG4sXG4gICAgICAgIHR5cGU6ICdVUERBVEUnLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtpMThuLCBjb25maWddLFxuICApXG5cbiAgY29uc3QgZmlsdGVyT3B0aW9uID0gdXNlQ2FsbGJhY2soKGl0ZW06IE9wdGlvbiwgc2VhcmNoRmlsdGVyOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoIXNlYXJjaEZpbHRlcikge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgY29uc3QgciA9IHdvcmRCb3VuZGFyaWVzUmVnZXgoc2VhcmNoRmlsdGVyIHx8ICcnKVxuICAgIC8vIGJyZWFraW5nIHRoZSBsYWJlbHMgdG8gc2VhcmNoIGludG8gc21hbGxlciBwYXJ0cyBpbmNyZWFzZXMgcGVyZm9ybWFuY2VcbiAgICBjb25zdCBicmVha0FwYXJ0VGhyZXNob2xkID0gMjUwXG4gICAgbGV0IHN0cmluZyA9IGl0ZW0ubGFiZWxcbiAgICAvLyBzdHJpbmdzIGxlc3MgdGhhbiBicmVha0FwYXJ0VGhyZXNob2xkIGxlbmd0aCB3b24ndCBiZSBjaHVua2VkXG4gICAgd2hpbGUgKHN0cmluZy5sZW5ndGggPiBicmVha0FwYXJ0VGhyZXNob2xkKSB7XG4gICAgICAvLyBzbGljaW5nIGJ5IHRoZSBuZXh0IHNwYWNlIGFmdGVyIHRoZSBsZW5ndGggb2YgdGhlIHNlYXJjaCBpbnB1dCBwcmV2ZW50cyBzbGljaW5nIHRoZSBzdHJpbmcgdXAgYnkgcGFydGlhbCB3b3Jkc1xuICAgICAgY29uc3QgaW5kZXhPZlNwYWNlID0gc3RyaW5nLmluZGV4T2YoJyAnLCBzZWFyY2hGaWx0ZXIubGVuZ3RoKVxuICAgICAgaWYgKHIudGVzdChzdHJpbmcuc2xpY2UoMCwgaW5kZXhPZlNwYWNlID09PSAtMSA/IHNlYXJjaEZpbHRlci5sZW5ndGggOiBpbmRleE9mU3BhY2UgKyAxKSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH1cbiAgICAgIHN0cmluZyA9IHN0cmluZy5zbGljZShpbmRleE9mU3BhY2UgPT09IC0xID8gc2VhcmNoRmlsdGVyLmxlbmd0aCA6IGluZGV4T2ZTcGFjZSArIDEpXG4gICAgfVxuICAgIHJldHVybiByLnRlc3Qoc3RyaW5nLnNsaWNlKC1icmVha0FwYXJ0VGhyZXNob2xkKSlcbiAgfSwgW10pXG5cbiAgY29uc3QgdmFsdWVUb1JlbmRlciA9IGZpbmRPcHRpb25zQnlWYWx1ZSh7IG9wdGlvbnMsIHZhbHVlIH0pXG5cbiAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlVG9SZW5kZXIpICYmIHZhbHVlVG9SZW5kZXI/LnZhbHVlID09PSAnbnVsbCcpIHZhbHVlVG9SZW5kZXIudmFsdWUgPSBudWxsXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgZmllbGRCYXNlQ2xhc3MsXG4gICAgICAgIGJhc2VDbGFzcyxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBzaG93RXJyb3IgJiYgJ2Vycm9yJyxcbiAgICAgICAgZXJyb3JMb2FkaW5nICYmICdlcnJvci1sb2FkaW5nJyxcbiAgICAgICAgcmVhZE9ubHkgJiYgYCR7YmFzZUNsYXNzfS0tcmVhZC1vbmx5YCxcbiAgICAgIF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpfVxuICAgICAgaWQ9e2BmaWVsZC0ke3BhdGhPck5hbWUucmVwbGFjZSgvXFwuL2csICdfXycpfWB9XG4gICAgICBzdHlsZT17e1xuICAgICAgICAuLi5zdHlsZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9fVxuICAgID5cbiAgICAgIDxFcnJvckNvbXAgbWVzc2FnZT17ZXJyb3JNZXNzYWdlfSBzaG93RXJyb3I9e3Nob3dFcnJvcn0gLz5cbiAgICAgIDxMYWJlbENvbXAgaHRtbEZvcj17cGF0aE9yTmFtZX0gbGFiZWw9e2xhYmVsfSByZXF1aXJlZD17cmVxdWlyZWR9IC8+XG4gICAgICA8R2V0RmlsdGVyT3B0aW9uc1xuICAgICAgICB7Li4ue1xuICAgICAgICAgIGZpbHRlck9wdGlvbnMsXG4gICAgICAgICAgZmlsdGVyT3B0aW9uc1Jlc3VsdCxcbiAgICAgICAgICBwYXRoOiBwYXRoT3JOYW1lLFxuICAgICAgICAgIHJlbGF0aW9uVG8sXG4gICAgICAgICAgc2V0RmlsdGVyT3B0aW9uc1Jlc3VsdCxcbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgICB7IWVycm9yTG9hZGluZyAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X193cmFwYH0+XG4gICAgICAgICAgPFJlYWN0U2VsZWN0XG4gICAgICAgICAgICBiYWNrc3BhY2VSZW1vdmVzVmFsdWU9eyFkcmF3ZXJJc09wZW59XG4gICAgICAgICAgICBjb21wb25lbnRzPXt7XG4gICAgICAgICAgICAgIE11bHRpVmFsdWVMYWJlbCxcbiAgICAgICAgICAgICAgU2luZ2xlVmFsdWUsXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgY3VzdG9tUHJvcHM9e3tcbiAgICAgICAgICAgICAgZGlzYWJsZUtleURvd246IGRyYXdlcklzT3BlbixcbiAgICAgICAgICAgICAgZGlzYWJsZU1vdXNlRG93bjogZHJhd2VySXNPcGVuLFxuICAgICAgICAgICAgICBvblNhdmUsXG4gICAgICAgICAgICAgIHNldERyYXdlcklzT3BlbixcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBkaXNhYmxlZD17cmVhZE9ubHkgfHwgZm9ybVByb2Nlc3Npbmd9XG4gICAgICAgICAgICBmaWx0ZXJPcHRpb249e2VuYWJsZVdvcmRCb3VuZGFyeVNlYXJjaCA/IGZpbHRlck9wdGlvbiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgIGlzTG9hZGluZz17aXNMb2FkaW5nfVxuICAgICAgICAgICAgaXNNdWx0aT17aGFzTWFueX1cbiAgICAgICAgICAgIGlzU29ydGFibGU9e2lzU29ydGFibGV9XG4gICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgICFyZWFkT25seVxuICAgICAgICAgICAgICAgID8gKHNlbGVjdGVkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKGhhc01hbnkgPyBbXSA6IG51bGwpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzTWFueSkge1xuICAgICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWxlY3RlZC5tYXAoKG9wdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGhhc011bHRpcGxlUmVsYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25Ubzogb3B0aW9uLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9uLnZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChoYXNNdWx0aXBsZVJlbGF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHNlbGVjdGVkLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogc2VsZWN0ZWQudmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzZWxlY3RlZC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbklucHV0Q2hhbmdlPXsobmV3U2VhcmNoKSA9PiBoYW5kbGVJbnB1dENoYW5nZShuZXdTZWFyY2gsIHZhbHVlKX1cbiAgICAgICAgICAgIG9uTWVudU9wZW49eygpID0+IHtcbiAgICAgICAgICAgICAgaWYgKCFoYXNMb2FkZWRGaXJzdFBhZ2UpIHtcbiAgICAgICAgICAgICAgICBzZXRJc0xvYWRpbmcodHJ1ZSlcbiAgICAgICAgICAgICAgICBnZXRSZXN1bHRzKHtcbiAgICAgICAgICAgICAgICAgIG9uU3VjY2VzczogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzZXRIYXNMb2FkZWRGaXJzdFBhZ2UodHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiBpbml0aWFsVmFsdWUsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uTWVudVNjcm9sbFRvQm90dG9tPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGdldFJlc3VsdHMoe1xuICAgICAgICAgICAgICAgIGxhc3RGdWxseUxvYWRlZFJlbGF0aW9uLFxuICAgICAgICAgICAgICAgIHNlYXJjaCxcbiAgICAgICAgICAgICAgICBzb3J0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgICBzaG93RXJyb3I9e3Nob3dFcnJvcn1cbiAgICAgICAgICAgIHZhbHVlPXt2YWx1ZVRvUmVuZGVyID8/IG51bGx9XG4gICAgICAgICAgLz5cbiAgICAgICAgICB7IXJlYWRPbmx5ICYmIGFsbG93Q3JlYXRlICYmIChcbiAgICAgICAgICAgIDxBZGROZXdSZWxhdGlvblxuICAgICAgICAgICAgICB7Li4ue1xuICAgICAgICAgICAgICAgIGRpc3BhdGNoT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBoYXNNYW55LFxuICAgICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgICAgcGF0aDogcGF0aE9yTmFtZSxcbiAgICAgICAgICAgICAgICByZWxhdGlvblRvLFxuICAgICAgICAgICAgICAgIHNldFZhbHVlLFxuICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICl9XG4gICAgICB7ZXJyb3JMb2FkaW5nICYmIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19lcnJvci1sb2FkaW5nYH0+e2Vycm9yTG9hZGluZ308L2Rpdj59XG4gICAgICA8RmllbGREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbj17ZGVzY3JpcHRpb259IHBhdGg9e3BhdGh9IHZhbHVlPXt2YWx1ZX0gLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCB3aXRoQ29uZGl0aW9uKFJlbGF0aW9uc2hpcClcbiJdLCJuYW1lcyI6WyJtYXhSZXN1bHRzUGVyUmVxdWVzdCIsImJhc2VDbGFzcyIsIlJlbGF0aW9uc2hpcCIsInByb3BzIiwibmFtZSIsImFkbWluIiwiYWxsb3dDcmVhdGUiLCJjbGFzc05hbWUiLCJjb21wb25lbnRzIiwiRXJyb3IiLCJMYWJlbCIsImNvbmRpdGlvbiIsImRlc2NyaXB0aW9uIiwiaXNTb3J0YWJsZSIsInJlYWRPbmx5Iiwic29ydE9wdGlvbnMiLCJzdHlsZSIsIndpZHRoIiwiZmlsdGVyT3B0aW9ucyIsImhhc01hbnkiLCJsYWJlbCIsInBhdGgiLCJyZWxhdGlvblRvIiwicmVxdWlyZWQiLCJ2YWxpZGF0ZSIsInJlbGF0aW9uc2hpcCIsIkVycm9yQ29tcCIsIkRlZmF1bHRFcnJvciIsIkxhYmVsQ29tcCIsIkRlZmF1bHRMYWJlbCIsImNvbmZpZyIsInVzZUNvbmZpZyIsImNvbGxlY3Rpb25zIiwicm91dGVzIiwiYXBpIiwic2VydmVyVVJMIiwiaTE4biIsInQiLCJ1c2VUcmFuc2xhdGlvbiIsInBlcm1pc3Npb25zIiwidXNlQXV0aCIsImNvZGUiLCJsb2NhbGUiLCJ1c2VMb2NhbGUiLCJmb3JtUHJvY2Vzc2luZyIsInVzZUZvcm1Qcm9jZXNzaW5nIiwiaGFzTXVsdGlwbGVSZWxhdGlvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJvcHRpb25zIiwiZGlzcGF0Y2hPcHRpb25zIiwidXNlUmVkdWNlciIsIm9wdGlvbnNSZWR1Y2VyIiwibGFzdEZ1bGx5TG9hZGVkUmVsYXRpb24iLCJzZXRMYXN0RnVsbHlMb2FkZWRSZWxhdGlvbiIsInVzZVN0YXRlIiwibGFzdExvYWRlZFBhZ2UiLCJzZXRMYXN0TG9hZGVkUGFnZSIsImVycm9yTG9hZGluZyIsInNldEVycm9yTG9hZGluZyIsImZpbHRlck9wdGlvbnNSZXN1bHQiLCJzZXRGaWx0ZXJPcHRpb25zUmVzdWx0Iiwic2VhcmNoIiwic2V0U2VhcmNoIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwiaGFzTG9hZGVkRmlyc3RQYWdlIiwic2V0SGFzTG9hZGVkRmlyc3RQYWdlIiwiZW5hYmxlV29yZEJvdW5kYXJ5U2VhcmNoIiwic2V0RW5hYmxlV29yZEJvdW5kYXJ5U2VhcmNoIiwiZmlyc3RSdW4iLCJ1c2VSZWYiLCJwYXRoT3JOYW1lIiwibWVtb2l6ZWRWYWxpZGF0ZSIsInVzZUNhbGxiYWNrIiwidmFsdWUiLCJ2YWxpZGF0aW9uT3B0aW9ucyIsImVycm9yTWVzc2FnZSIsImluaXRpYWxWYWx1ZSIsInNldFZhbHVlIiwic2hvd0Vycm9yIiwidXNlRmllbGQiLCJkcmF3ZXJJc09wZW4iLCJzZXREcmF3ZXJJc09wZW4iLCJnZXRSZXN1bHRzIiwibGFzdEZ1bGx5TG9hZGVkUmVsYXRpb25BcmciLCJvblN1Y2Nlc3MiLCJzZWFyY2hBcmciLCJzb3J0IiwidmFsdWVBcmciLCJsYXN0RnVsbHlMb2FkZWRSZWxhdGlvblRvVXNlIiwicmVsYXRpb25zIiwicmVsYXRpb25zVG9GZXRjaCIsInNsaWNlIiwicmVzdWx0c0ZldGNoZWQiLCJyZWxhdGlvbk1hcCIsImNyZWF0ZVJlbGF0aW9uTWFwIiwicmVkdWNlIiwicHJpb3JSZWxhdGlvbiIsInJlbGF0aW9uIiwicmVsYXRpb25GaWx0ZXJPcHRpb24iLCJsYXN0TG9hZGVkUGFnZVRvVXNlIiwiaW5kZXhPZiIsIlByb21pc2UiLCJyZXNvbHZlIiwiY29sbGVjdGlvbiIsImZpbmQiLCJjb2xsIiwic2x1ZyIsImZpZWxkVG9TZWFyY2giLCJkZWZhdWx0U29ydCIsInVzZUFzVGl0bGUiLCJxdWVyeSIsImRlcHRoIiwibGltaXQiLCJwYWdlIiwid2hlcmUiLCJhbmQiLCJpZCIsIm5vdF9pbiIsInB1c2giLCJsaWtlIiwicmVzcG9uc2UiLCJmZXRjaCIsInFzIiwic3RyaW5naWZ5IiwiY3JlZGVudGlhbHMiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJvayIsImRhdGEiLCJqc29uIiwicHJldlN0YXRlIiwibmV4dFBhZ2UiLCJkb2NzIiwibGVuZ3RoIiwidHlwZSIsInN0YXR1cyIsImlkcyIsInVwZGF0ZVNlYXJjaCIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJ1c2VFZmZlY3QiLCJPYmplY3QiLCJlbnRyaWVzIiwiaWRzVG9Mb2FkIiwiZmlsdGVyIiwib3B0aW9uR3JvdXAiLCJvcHRpb24iLCJpbiIsImlzSWRPbmx5IiwiaWRPbmx5IiwiY3VycmVudCIsIm9uU2F2ZSIsImFyZ3MiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZG9jIiwiZmlsdGVyT3B0aW9uIiwiaXRlbSIsInNlYXJjaEZpbHRlciIsInIiLCJ3b3JkQm91bmRhcmllc1JlZ2V4IiwiYnJlYWtBcGFydFRocmVzaG9sZCIsInN0cmluZyIsImluZGV4T2ZTcGFjZSIsInRlc3QiLCJ2YWx1ZVRvUmVuZGVyIiwiZmluZE9wdGlvbnNCeVZhbHVlIiwiZGl2IiwiZmllbGRCYXNlQ2xhc3MiLCJCb29sZWFuIiwiam9pbiIsInJlcGxhY2UiLCJtZXNzYWdlIiwiaHRtbEZvciIsIkdldEZpbHRlck9wdGlvbnMiLCJSZWFjdFNlbGVjdCIsImJhY2tzcGFjZVJlbW92ZXNWYWx1ZSIsIk11bHRpVmFsdWVMYWJlbCIsIlNpbmdsZVZhbHVlIiwiY3VzdG9tUHJvcHMiLCJkaXNhYmxlS2V5RG93biIsImRpc2FibGVNb3VzZURvd24iLCJkaXNhYmxlZCIsInVuZGVmaW5lZCIsImlzTXVsdGkiLCJvbkNoYW5nZSIsInNlbGVjdGVkIiwibWFwIiwib25JbnB1dENoYW5nZSIsIm5ld1NlYXJjaCIsIm9uTWVudU9wZW4iLCJvbk1lbnVTY3JvbGxUb0JvdHRvbSIsIkFkZE5ld1JlbGF0aW9uIiwiRmllbGREZXNjcmlwdGlvbiIsIndpdGhDb25kaXRpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBNGhCQTs7O2VBQUE7OzsyREE1aEJlOytEQUM2RDs4QkFDN0M7NkJBT0Y7NEVB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
509
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JlbGF0aW9uc2hpcC9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHFzIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZVJlZHVjZXIsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAncmVhY3QtaTE4bmV4dCdcblxuaW1wb3J0IHR5cGUgeyBQYWdpbmF0ZWREb2NzIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50RHJhd2VyUHJvcHMgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9Eb2N1bWVudERyYXdlci90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsdGVyT3B0aW9uc1Jlc3VsdCwgR2V0UmVzdWx0cywgT3B0aW9uLCBQcm9wcywgVmFsdWUgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyByZWxhdGlvbnNoaXAgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9maWVsZHMvdmFsaWRhdGlvbnMnXG5pbXBvcnQgd29yZEJvdW5kYXJpZXNSZWdleCBmcm9tICcuLi8uLi8uLi8uLi8uLi91dGlsaXRpZXMvd29yZEJvdW5kYXJpZXNSZWdleCdcbmltcG9ydCB7IHVzZURlYm91bmNlZENhbGxiYWNrIH0gZnJvbSAnLi4vLi4vLi4vLi4vaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snXG5pbXBvcnQgUmVhY3RTZWxlY3QgZnJvbSAnLi4vLi4vLi4vZWxlbWVudHMvUmVhY3RTZWxlY3QnXG5pbXBvcnQgeyB1c2VBdXRoIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL0F1dGgnXG5pbXBvcnQgeyB1c2VDb25maWcgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvQ29uZmlnJ1xuaW1wb3J0IHsgR2V0RmlsdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9HZXRGaWx0ZXJPcHRpb25zJ1xuaW1wb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL0xvY2FsZSdcbmltcG9ydCBEZWZhdWx0RXJyb3IgZnJvbSAnLi4vLi4vRXJyb3InXG5pbXBvcnQgRmllbGREZXNjcmlwdGlvbiBmcm9tICcuLi8uLi9GaWVsZERlc2NyaXB0aW9uJ1xuaW1wb3J0IHsgdXNlRm9ybVByb2Nlc3NpbmcgfSBmcm9tICcuLi8uLi9Gb3JtL2NvbnRleHQnXG5pbXBvcnQgRGVmYXVsdExhYmVsIGZyb20gJy4uLy4uL0xhYmVsJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uL3VzZUZpZWxkJ1xuaW1wb3J0IHdpdGhDb25kaXRpb24gZnJvbSAnLi4vLi4vd2l0aENvbmRpdGlvbidcbmltcG9ydCB7IGZpZWxkQmFzZUNsYXNzIH0gZnJvbSAnLi4vc2hhcmVkJ1xuaW1wb3J0IHsgQWRkTmV3UmVsYXRpb24gfSBmcm9tICcuL0FkZE5ldydcbmltcG9ydCB7IGNyZWF0ZVJlbGF0aW9uTWFwIH0gZnJvbSAnLi9jcmVhdGVSZWxhdGlvbk1hcCdcbmltcG9ydCB7IGZpbmRPcHRpb25zQnlWYWx1ZSB9IGZyb20gJy4vZmluZE9wdGlvbnNCeVZhbHVlJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5pbXBvcnQgb3B0aW9uc1JlZHVjZXIgZnJvbSAnLi9vcHRpb25zUmVkdWNlcidcbmltcG9ydCB7IE11bHRpVmFsdWVMYWJlbCB9IGZyb20gJy4vc2VsZWN0LWNvbXBvbmVudHMvTXVsdGlWYWx1ZUxhYmVsJ1xuaW1wb3J0IHsgU2luZ2xlVmFsdWUgfSBmcm9tICcuL3NlbGVjdC1jb21wb25lbnRzL1NpbmdsZVZhbHVlJ1xuXG5jb25zdCBtYXhSZXN1bHRzUGVyUmVxdWVzdCA9IDEwXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdyZWxhdGlvbnNoaXAnXG5cbmNvbnN0IFJlbGF0aW9uc2hpcDogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIGFkbWluOiB7XG4gICAgICBhbGxvd0NyZWF0ZSA9IHRydWUsXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBjb21wb25lbnRzOiB7IEVycm9yLCBMYWJlbCB9ID0ge30sXG4gICAgICBjb25kaXRpb24sXG4gICAgICBkZXNjcmlwdGlvbixcbiAgICAgIGlzU29ydGFibGUgPSB0cnVlLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBzb3J0T3B0aW9ucyxcbiAgICAgIHN0eWxlLFxuICAgICAgd2lkdGgsXG4gICAgfSA9IHt9LFxuICAgIGZpbHRlck9wdGlvbnMsXG4gICAgaGFzTWFueSxcbiAgICBsYWJlbCxcbiAgICBwYXRoLFxuICAgIHJlbGF0aW9uVG8sXG4gICAgcmVxdWlyZWQsXG4gICAgdmFsaWRhdGUgPSByZWxhdGlvbnNoaXAsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IEVycm9yQ29tcCA9IEVycm9yIHx8IERlZmF1bHRFcnJvclxuICBjb25zdCBMYWJlbENvbXAgPSBMYWJlbCB8fCBEZWZhdWx0TGFiZWxcblxuICBjb25zdCBjb25maWcgPSB1c2VDb25maWcoKVxuXG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9ucyxcbiAgICByb3V0ZXM6IHsgYXBpIH0sXG4gICAgc2VydmVyVVJMLFxuICB9ID0gY29uZmlnXG5cbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZmllbGRzJylcbiAgY29uc3QgeyBwZXJtaXNzaW9ucyB9ID0gdXNlQXV0aCgpXG4gIGNvbnN0IHsgY29kZTogbG9jYWxlIH0gPSB1c2VMb2NhbGUoKVxuICBjb25zdCBmb3JtUHJvY2Vzc2luZyA9IHVzZUZvcm1Qcm9jZXNzaW5nKClcbiAgY29uc3QgaGFzTXVsdGlwbGVSZWxhdGlvbnMgPSBBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pXG4gIGNvbnN0IFtvcHRpb25zLCBkaXNwYXRjaE9wdGlvbnNdID0gdXNlUmVkdWNlcihvcHRpb25zUmVkdWNlciwgW10pXG4gIGNvbnN0IFtsYXN0RnVsbHlMb2FkZWRSZWxhdGlvbiwgc2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb25dID0gdXNlU3RhdGUoLTEpXG4gIGNvbnN0IFtsYXN0TG9hZGVkUGFnZSwgc2V0TGFzdExvYWRlZFBhZ2VdID0gdXNlU3RhdGU8UmVjb3JkPHN0cmluZywgbnVtYmVyPj4oe30pXG4gIGNvbnN0IFtlcnJvckxvYWRpbmcsIHNldEVycm9yTG9hZGluZ10gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2ZpbHRlck9wdGlvbnNSZXN1bHQsIHNldEZpbHRlck9wdGlvbnNSZXN1bHRdID0gdXNlU3RhdGU8RmlsdGVyT3B0aW9uc1Jlc3VsdD4oKVxuICBjb25zdCBbc2VhcmNoLCBzZXRTZWFyY2hdID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc0xvYWRlZEZpcnN0UGFnZSwgc2V0SGFzTG9hZGVkRmlyc3RQYWdlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbZW5hYmxlV29yZEJvdW5kYXJ5U2VhcmNoLCBzZXRFbmFibGVXb3JkQm91bmRhcnlTZWFyY2hdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IGZpcnN0UnVuID0gdXNlUmVmKHRydWUpXG4gIGNvbnN0IHBhdGhPck5hbWUgPSBwYXRoIHx8IG5hbWVcblxuICBjb25zdCBtZW1vaXplZFZhbGlkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlLCB2YWxpZGF0aW9uT3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIHZhbGlkYXRlKHZhbHVlLCB7IC4uLnZhbGlkYXRpb25PcHRpb25zLCByZXF1aXJlZCB9KVxuICAgIH0sXG4gICAgW3ZhbGlkYXRlLCByZXF1aXJlZF0sXG4gIClcblxuICBjb25zdCB7IGVycm9yTWVzc2FnZSwgaW5pdGlhbFZhbHVlLCBzZXRWYWx1ZSwgc2hvd0Vycm9yLCB2YWx1ZSB9ID0gdXNlRmllbGQ8VmFsdWUgfCBWYWx1ZVtdPih7XG4gICAgY29uZGl0aW9uLFxuICAgIHBhdGg6IHBhdGhPck5hbWUsXG4gICAgdmFsaWRhdGU6IG1lbW9pemVkVmFsaWRhdGUsXG4gIH0pXG5cbiAgY29uc3QgW2RyYXdlcklzT3Blbiwgc2V0RHJhd2VySXNPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IGdldFJlc3VsdHM6IEdldFJlc3VsdHMgPSB1c2VDYWxsYmFjayhcbiAgICBhc3luYyAoe1xuICAgICAgbGFzdEZ1bGx5TG9hZGVkUmVsYXRpb246IGxhc3RGdWxseUxvYWRlZFJlbGF0aW9uQXJnLFxuICAgICAgb25TdWNjZXNzLFxuICAgICAgc2VhcmNoOiBzZWFyY2hBcmcsXG4gICAgICBzb3J0LFxuICAgICAgdmFsdWU6IHZhbHVlQXJnLFxuICAgIH0pID0+IHtcbiAgICAgIGlmICghcGVybWlzc2lvbnMpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG4gICAgICBjb25zdCBsYXN0RnVsbHlMb2FkZWRSZWxhdGlvblRvVXNlID1cbiAgICAgICAgdHlwZW9mIGxhc3RGdWxseUxvYWRlZFJlbGF0aW9uQXJnICE9PSAndW5kZWZpbmVkJyA/IGxhc3RGdWxseUxvYWRlZFJlbGF0aW9uQXJnIDogLTFcblxuICAgICAgY29uc3QgcmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSA/IHJlbGF0aW9uVG8gOiBbcmVsYXRpb25Ub11cbiAgICAgIGNvbnN0IHJlbGF0aW9uc1RvRmV0Y2ggPVxuICAgICAgICBsYXN0RnVsbHlMb2FkZWRSZWxhdGlvblRvVXNlID09PSAtMVxuICAgICAgICAgID8gcmVsYXRpb25zXG4gICAgICAgICAgOiByZWxhdGlvbnMuc2xpY2UobGFzdEZ1bGx5TG9hZGVkUmVsYXRpb25Ub1VzZSArIDEpXG5cbiAgICAgIGxldCByZXN1bHRzRmV0Y2hlZCA9IDBcbiAgICAgIGNvbnN0IHJlbGF0aW9uTWFwID0gY3JlYXRlUmVsYXRpb25NYXAoe1xuICAgICAgICBoYXNNYW55LFxuICAgICAgICByZWxhdGlvblRvLFxuICAgICAgICB2YWx1ZTogdmFsdWVBcmcsXG4gICAgICB9KVxuXG4gICAgICBpZiAoIWVycm9yTG9hZGluZykge1xuICAgICAgICByZWxhdGlvbnNUb0ZldGNoLnJlZHVjZShhc3luYyAocHJpb3JSZWxhdGlvbiwgcmVsYXRpb24pID0+IHtcbiAgICAgICAgICBjb25zdCByZWxhdGlvbkZpbHRlck9wdGlvbiA9IGZpbHRlck9wdGlvbnNSZXN1bHQ/LltyZWxhdGlvbl1cbiAgICAgICAgICBsZXQgbGFzdExvYWRlZFBhZ2VUb1VzZVxuICAgICAgICAgIGlmIChzZWFyY2ggIT09IHNlYXJjaEFyZykge1xuICAgICAgICAgICAgbGFzdExvYWRlZFBhZ2VUb1VzZSA9IDFcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGFzdExvYWRlZFBhZ2VUb1VzZSA9IGxhc3RMb2FkZWRQYWdlW3JlbGF0aW9uXSArIDFcbiAgICAgICAgICB9XG4gICAgICAgICAgYXdhaXQgcHJpb3JSZWxhdGlvblxuXG4gICAgICAgICAgaWYgKHJlbGF0aW9uRmlsdGVyT3B0aW9uID09PSBmYWxzZSkge1xuICAgICAgICAgICAgc2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb24ocmVsYXRpb25zLmluZGV4T2YocmVsYXRpb24pKVxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHJlc3VsdHNGZXRjaGVkIDwgMTApIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9ucy5maW5kKChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IHJlbGF0aW9uKVxuICAgICAgICAgICAgbGV0IGZpZWxkVG9TZWFyY2ggPSBjb2xsZWN0aW9uPy5kZWZhdWx0U29ydCB8fCBjb2xsZWN0aW9uPy5hZG1pbj8udXNlQXNUaXRsZSB8fCAnaWQnXG4gICAgICAgICAgICBpZiAoIXNlYXJjaEFyZykge1xuICAgICAgICAgICAgICBpZiAodHlwZW9mIHNvcnRPcHRpb25zID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZpZWxkVG9TZWFyY2ggPSBzb3J0T3B0aW9uc1xuICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNvcnRPcHRpb25zPy5bcmVsYXRpb25dKSB7XG4gICAgICAgICAgICAgICAgZmllbGRUb1NlYXJjaCA9IHNvcnRPcHRpb25zW3JlbGF0aW9uXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5OiB7XG4gICAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IHVua25vd25cbiAgICAgICAgICAgICAgd2hlcmU6IFdoZXJlXG4gICAgICAgICAgICB9ID0ge1xuICAgICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgICAgZHJhZnQ6IHRydWUsXG4gICAgICAgICAgICAgIGxpbWl0OiBtYXhSZXN1bHRzUGVyUmVxdWVzdCxcbiAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICBwYWdlOiBsYXN0TG9hZGVkUGFnZVRvVXNlLFxuICAgICAgICAgICAgICBzb3J0OiBmaWVsZFRvU2VhcmNoLFxuICAgICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAgIGFuZDogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDoge1xuICAgICAgICAgICAgICAgICAgICAgIG5vdF9pbjogcmVsYXRpb25NYXBbcmVsYXRpb25dLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoc2VhcmNoQXJnKSB7XG4gICAgICAgICAgICAgIHF1ZXJ5LndoZXJlLmFuZC5wdXNoKHtcbiAgICAgICAgICAgICAgICBbZmllbGRUb1NlYXJjaF06IHtcbiAgICAgICAgICAgICAgICAgIGxpa2U6IHNlYXJjaEFyZyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocmVsYXRpb25GaWx0ZXJPcHRpb24gJiYgdHlwZW9mIHJlbGF0aW9uRmlsdGVyT3B0aW9uICE9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgcXVlcnkud2hlcmUuYW5kLnB1c2gocmVsYXRpb25GaWx0ZXJPcHRpb24pXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7c2VydmVyVVJMfSR7YXBpfS8ke3JlbGF0aW9ufT8ke3FzLnN0cmluZ2lmeShxdWVyeSl9YCwge1xuICAgICAgICAgICAgICBjcmVkZW50aWFsczogJ2luY2x1ZGUnLFxuICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgY29uc3QgZGF0YTogUGFnaW5hdGVkRG9jczx1bmtub3duPiA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKVxuICAgICAgICAgICAgICBzZXRMYXN0TG9hZGVkUGFnZSgocHJldlN0YXRlKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIC4uLnByZXZTdGF0ZSxcbiAgICAgICAgICAgICAgICAgIFtyZWxhdGlvbl06IGxhc3RMb2FkZWRQYWdlVG9Vc2UsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgIGlmICghZGF0YS5uZXh0UGFnZSkge1xuICAgICAgICAgICAgICAgIHNldExhc3RGdWxseUxvYWRlZFJlbGF0aW9uKHJlbGF0aW9ucy5pbmRleE9mKHJlbGF0aW9uKSlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChkYXRhLmRvY3MubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdHNGZXRjaGVkICs9IGRhdGEuZG9jcy5sZW5ndGhcblxuICAgICAgICAgICAgICAgIGRpc3BhdGNoT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnQUREJyxcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgICAgICAgICBkb2NzOiBkYXRhLmRvY3MsXG4gICAgICAgICAgICAgICAgICBpMThuLFxuICAgICAgICAgICAgICAgICAgc29ydCxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDAzKSB7XG4gICAgICAgICAgICAgIHNldExhc3RGdWxseUxvYWRlZFJlbGF0aW9uKHJlbGF0aW9ucy5pbmRleE9mKHJlbGF0aW9uKSlcbiAgICAgICAgICAgICAgZGlzcGF0Y2hPcHRpb25zKHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnQUREJyxcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIGNvbmZpZyxcbiAgICAgICAgICAgICAgICBkb2NzOiBbXSxcbiAgICAgICAgICAgICAgICBpMThuLFxuICAgICAgICAgICAgICAgIGlkczogcmVsYXRpb25NYXBbcmVsYXRpb25dLFxuICAgICAgICAgICAgICAgIHNvcnQsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBzZXRFcnJvckxvYWRpbmcodCgnZXJyb3I6dW5zcGVjaWZpYycpKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAgICAgaWYgKHR5cGVvZiBvblN1Y2Nlc3MgPT09ICdmdW5jdGlvbicpIG9uU3VjY2VzcygpXG4gICAgICB9XG4gICAgfSxcbiAgICBbXG4gICAgICBwZXJtaXNzaW9ucyxcbiAgICAgIHJlbGF0aW9uVG8sXG4gICAgICBoYXNNYW55LFxuICAgICAgZXJyb3JMb2FkaW5nLFxuICAgICAgc2VhcmNoLFxuICAgICAgbGFzdExvYWRlZFBhZ2UsXG4gICAgICBjb2xsZWN0aW9ucyxcbiAgICAgIGxvY2FsZSxcbiAgICAgIGZpbHRlck9wdGlvbnNSZXN1bHQsXG4gICAgICBzZXJ2ZXJVUkwsXG4gICAgICBzb3J0T3B0aW9ucyxcbiAgICAgIGFwaSxcbiAgICAgIGkxOG4sXG4gICAgICBjb25maWcsXG4gICAgICB0LFxuICAgIF0sXG4gIClcblxuICBjb25zdCB1cGRhdGVTZWFyY2ggPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoc2VhcmNoQXJnOiBzdHJpbmcsIHZhbHVlQXJnOiBWYWx1ZSB8IFZhbHVlW10pID0+IHtcbiAgICBnZXRSZXN1bHRzKHsgc2VhcmNoOiBzZWFyY2hBcmcsIHNvcnQ6IHRydWUsIHZhbHVlOiB2YWx1ZUFyZyB9KVxuICAgIHNldFNlYXJjaChzZWFyY2hBcmcpXG4gIH0sIDMwMClcblxuICBjb25zdCBoYW5kbGVJbnB1dENoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChzZWFyY2hBcmc6IHN0cmluZywgdmFsdWVBcmc6IFZhbHVlIHwgVmFsdWVbXSkgPT4ge1xuICAgICAgaWYgKHNlYXJjaCAhPT0gc2VhcmNoQXJnKSB7XG4gICAgICAgIHNldExhc3RMb2FkZWRQYWdlKHt9KVxuICAgICAgICB1cGRhdGVTZWFyY2goc2VhcmNoQXJnLCB2YWx1ZUFyZywgc2VhcmNoQXJnICE9PSAnJylcbiAgICAgIH1cbiAgICB9LFxuICAgIFtzZWFyY2gsIHVwZGF0ZVNlYXJjaF0sXG4gIClcblxuICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyBFbnN1cmUgd2UgaGF2ZSBhbiBvcHRpb24gZm9yIGVhY2ggdmFsdWVcbiAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHJlbGF0aW9uTWFwID0gY3JlYXRlUmVsYXRpb25NYXAoe1xuICAgICAgaGFzTWFueSxcbiAgICAgIHJlbGF0aW9uVG8sXG4gICAgICB2YWx1ZSxcbiAgICB9KVxuXG4gICAgT2JqZWN0LmVudHJpZXMocmVsYXRpb25NYXApLnJlZHVjZShhc3luYyAocHJpb3JSZWxhdGlvbiwgW3JlbGF0aW9uLCBpZHNdKSA9PiB7XG4gICAgICBhd2FpdCBwcmlvclJlbGF0aW9uXG5cbiAgICAgIGNvbnN0IGlkc1RvTG9hZCA9IGlkcy5maWx0ZXIoKGlkKSA9PiB7XG4gICAgICAgIHJldHVybiAhb3B0aW9ucy5maW5kKFxuICAgICAgICAgIChvcHRpb25Hcm91cCkgPT5cbiAgICAgICAgICAgIG9wdGlvbkdyb3VwPy5vcHRpb25zPy5maW5kKFxuICAgICAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IGlkICYmIG9wdGlvbi5yZWxhdGlvblRvID09PSByZWxhdGlvbixcbiAgICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgIH0pXG5cbiAgICAgIGlmIChpZHNUb0xvYWQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBxdWVyeSA9IHtcbiAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICBkcmFmdDogdHJ1ZSxcbiAgICAgICAgICBsaW1pdDogaWRzVG9Mb2FkLmxlbmd0aCxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgIGlkOiB7XG4gICAgICAgICAgICAgIGluOiBpZHNUb0xvYWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWVycm9yTG9hZGluZykge1xuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2goYCR7c2VydmVyVVJMfSR7YXBpfS8ke3JlbGF0aW9ufT8ke3FzLnN0cmluZ2lmeShxdWVyeSl9YCwge1xuICAgICAgICAgICAgY3JlZGVudGlhbHM6ICdpbmNsdWRlJyxcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5ndWFnZSc6IGkxOG4ubGFuZ3VhZ2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBjb25zdCBjb2xsZWN0aW9uID0gY29sbGVjdGlvbnMuZmluZCgoY29sbCkgPT4gY29sbC5zbHVnID09PSByZWxhdGlvbilcbiAgICAgICAgICBsZXQgZG9jcyA9IFtdXG5cbiAgICAgICAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwb25zZS5qc29uKClcbiAgICAgICAgICAgIGRvY3MgPSBkYXRhLmRvY3NcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkaXNwYXRjaE9wdGlvbnMoe1xuICAgICAgICAgICAgdHlwZTogJ0FERCcsXG4gICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgY29uZmlnLFxuICAgICAgICAgICAgZG9jcyxcbiAgICAgICAgICAgIGkxOG4sXG4gICAgICAgICAgICBpZHM6IGlkc1RvTG9hZCxcbiAgICAgICAgICAgIHNvcnQ6IHRydWUsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuICB9LCBbXG4gICAgb3B0aW9ucyxcbiAgICB2YWx1ZSxcbiAgICBoYXNNYW55LFxuICAgIGVycm9yTG9hZGluZyxcbiAgICBjb2xsZWN0aW9ucyxcbiAgICBoYXNNdWx0aXBsZVJlbGF0aW9ucyxcbiAgICBzZXJ2ZXJVUkwsXG4gICAgYXBpLFxuICAgIGkxOG4sXG4gICAgcmVsYXRpb25UbyxcbiAgICBsb2NhbGUsXG4gICAgY29uZmlnLFxuICBdKVxuXG4gIC8vIERldGVybWluZSBpZiB3ZSBzaG91bGQgc3dpdGNoIHRvIHdvcmQgYm91bmRhcnkgc2VhcmNoXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgcmVsYXRpb25zID0gQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSA/IHJlbGF0aW9uVG8gOiBbcmVsYXRpb25Ub11cbiAgICBjb25zdCBpc0lkT25seSA9IHJlbGF0aW9ucy5yZWR1Y2UoKGlkT25seSwgcmVsYXRpb24pID0+IHtcbiAgICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBjb2xsZWN0aW9ucy5maW5kKChjb2xsKSA9PiBjb2xsLnNsdWcgPT09IHJlbGF0aW9uKVxuICAgICAgY29uc3QgZmllbGRUb1NlYXJjaCA9IGNvbGxlY3Rpb24/LmFkbWluPy51c2VBc1RpdGxlIHx8ICdpZCdcbiAgICAgIHJldHVybiBmaWVsZFRvU2VhcmNoID09PSAnaWQnICYmIGlkT25seVxuICAgIH0sIHRydWUpXG4gICAgc2V0RW5hYmxlV29yZEJvdW5kYXJ5U2VhcmNoKCFpc0lkT25seSlcbiAgfSwgW3JlbGF0aW9uVG8sIGNvbGxlY3Rpb25zXSlcblxuICAvLyBXaGVuIChgcmVsYXRpb25Ub2AgfHwgYGZpbHRlck9wdGlvbnNSZXN1bHRgIHx8IGBsb2NhbGVgKSBjaGFuZ2VzLCByZXNldCBjb21wb25lbnRcbiAgLy8gTm90ZSAtIGVmZmVjdCBzaG91bGQgbm90IHJ1biBvbiBmaXJzdCBydW5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoZmlyc3RSdW4uY3VycmVudCkge1xuICAgICAgZmlyc3RSdW4uY3VycmVudCA9IGZhbHNlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBkaXNwYXRjaE9wdGlvbnMoeyB0eXBlOiAnQ0xFQVInIH0pXG4gICAgc2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb24oLTEpXG4gICAgc2V0TGFzdExvYWRlZFBhZ2Uoe30pXG4gICAgc2V0SGFzTG9hZGVkRmlyc3RQYWdlKGZhbHNlKVxuICB9LCBbcmVsYXRpb25UbywgZmlsdGVyT3B0aW9uc1Jlc3VsdCwgbG9jYWxlXSlcblxuICBjb25zdCBvblNhdmUgPSB1c2VDYWxsYmFjazxEb2N1bWVudERyYXdlclByb3BzWydvblNhdmUnXT4oXG4gICAgKGFyZ3MpID0+IHtcbiAgICAgIGRpc3BhdGNoT3B0aW9ucyh7XG4gICAgICAgIHR5cGU6ICdVUERBVEUnLFxuICAgICAgICBjb2xsZWN0aW9uOiBhcmdzLmNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgZG9jOiBhcmdzLmRvYyxcbiAgICAgICAgaTE4bixcbiAgICAgIH0pXG4gICAgfSxcbiAgICBbaTE4biwgY29uZmlnXSxcbiAgKVxuXG4gIGNvbnN0IGZpbHRlck9wdGlvbiA9IHVzZUNhbGxiYWNrKChpdGVtOiBPcHRpb24sIHNlYXJjaEZpbHRlcjogc3RyaW5nKSA9PiB7XG4gICAgaWYgKCFzZWFyY2hGaWx0ZXIpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGNvbnN0IHIgPSB3b3JkQm91bmRhcmllc1JlZ2V4KHNlYXJjaEZpbHRlciB8fCAnJylcbiAgICAvLyBicmVha2luZyB0aGUgbGFiZWxzIHRvIHNlYXJjaCBpbnRvIHNtYWxsZXIgcGFydHMgaW5jcmVhc2VzIHBlcmZvcm1hbmNlXG4gICAgY29uc3QgYnJlYWtBcGFydFRocmVzaG9sZCA9IDI1MFxuICAgIGxldCBzdHJpbmcgPSBpdGVtLmxhYmVsXG4gICAgLy8gc3RyaW5ncyBsZXNzIHRoYW4gYnJlYWtBcGFydFRocmVzaG9sZCBsZW5ndGggd29uJ3QgYmUgY2h1bmtlZFxuICAgIHdoaWxlIChzdHJpbmcubGVuZ3RoID4gYnJlYWtBcGFydFRocmVzaG9sZCkge1xuICAgICAgLy8gc2xpY2luZyBieSB0aGUgbmV4dCBzcGFjZSBhZnRlciB0aGUgbGVuZ3RoIG9mIHRoZSBzZWFyY2ggaW5wdXQgcHJldmVudHMgc2xpY2luZyB0aGUgc3RyaW5nIHVwIGJ5IHBhcnRpYWwgd29yZHNcbiAgICAgIGNvbnN0IGluZGV4T2ZTcGFjZSA9IHN0cmluZy5pbmRleE9mKCcgJywgc2VhcmNoRmlsdGVyLmxlbmd0aClcbiAgICAgIGlmIChyLnRlc3Qoc3RyaW5nLnNsaWNlKDAsIGluZGV4T2ZTcGFjZSA9PT0gLTEgPyBzZWFyY2hGaWx0ZXIubGVuZ3RoIDogaW5kZXhPZlNwYWNlICsgMSkpKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG4gICAgICBzdHJpbmcgPSBzdHJpbmcuc2xpY2UoaW5kZXhPZlNwYWNlID09PSAtMSA/IHNlYXJjaEZpbHRlci5sZW5ndGggOiBpbmRleE9mU3BhY2UgKyAxKVxuICAgIH1cbiAgICByZXR1cm4gci50ZXN0KHN0cmluZy5zbGljZSgtYnJlYWtBcGFydFRocmVzaG9sZCkpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IHZhbHVlVG9SZW5kZXIgPSBmaW5kT3B0aW9uc0J5VmFsdWUoeyBvcHRpb25zLCB2YWx1ZSB9KVxuXG4gIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZVRvUmVuZGVyKSAmJiB2YWx1ZVRvUmVuZGVyPy52YWx1ZSA9PT0gJ251bGwnKSB2YWx1ZVRvUmVuZGVyLnZhbHVlID0gbnVsbFxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgIGZpZWxkQmFzZUNsYXNzLFxuICAgICAgICBiYXNlQ2xhc3MsXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgc2hvd0Vycm9yICYmICdlcnJvcicsXG4gICAgICAgIGVycm9yTG9hZGluZyAmJiAnZXJyb3ItbG9hZGluZycsXG4gICAgICAgIHJlYWRPbmx5ICYmIGAke2Jhc2VDbGFzc30tLXJlYWQtb25seWAsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIGlkPXtgZmllbGQtJHtwYXRoT3JOYW1lLnJlcGxhY2UoL1xcLi9nLCAnX18nKX1gfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgIHdpZHRoLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8RXJyb3JDb21wIG1lc3NhZ2U9e2Vycm9yTWVzc2FnZX0gc2hvd0Vycm9yPXtzaG93RXJyb3J9IC8+XG4gICAgICA8TGFiZWxDb21wIGh0bWxGb3I9e3BhdGhPck5hbWV9IGxhYmVsPXtsYWJlbH0gcmVxdWlyZWQ9e3JlcXVpcmVkfSAvPlxuICAgICAgPEdldEZpbHRlck9wdGlvbnNcbiAgICAgICAgey4uLntcbiAgICAgICAgICBmaWx0ZXJPcHRpb25zLFxuICAgICAgICAgIGZpbHRlck9wdGlvbnNSZXN1bHQsXG4gICAgICAgICAgcGF0aDogcGF0aE9yTmFtZSxcbiAgICAgICAgICByZWxhdGlvblRvLFxuICAgICAgICAgIHNldEZpbHRlck9wdGlvbnNSZXN1bHQsXG4gICAgICAgIH19XG4gICAgICAvPlxuICAgICAgeyFlcnJvckxvYWRpbmcgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcGB9PlxuICAgICAgICAgIDxSZWFjdFNlbGVjdFxuICAgICAgICAgICAgYmFja3NwYWNlUmVtb3Zlc1ZhbHVlPXshZHJhd2VySXNPcGVufVxuICAgICAgICAgICAgY29tcG9uZW50cz17e1xuICAgICAgICAgICAgICBNdWx0aVZhbHVlTGFiZWwsXG4gICAgICAgICAgICAgIFNpbmdsZVZhbHVlLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIGN1c3RvbVByb3BzPXt7XG4gICAgICAgICAgICAgIGRpc2FibGVLZXlEb3duOiBkcmF3ZXJJc09wZW4sXG4gICAgICAgICAgICAgIGRpc2FibGVNb3VzZURvd246IGRyYXdlcklzT3BlbixcbiAgICAgICAgICAgICAgb25TYXZlLFxuICAgICAgICAgICAgICBzZXREcmF3ZXJJc09wZW4sXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgZGlzYWJsZWQ9e3JlYWRPbmx5IHx8IGZvcm1Qcm9jZXNzaW5nfVxuICAgICAgICAgICAgZmlsdGVyT3B0aW9uPXtlbmFibGVXb3JkQm91bmRhcnlTZWFyY2ggPyBmaWx0ZXJPcHRpb24gOiB1bmRlZmluZWR9XG4gICAgICAgICAgICBpc0xvYWRpbmc9e2lzTG9hZGluZ31cbiAgICAgICAgICAgIGlzTXVsdGk9e2hhc01hbnl9XG4gICAgICAgICAgICBpc1NvcnRhYmxlPXtpc1NvcnRhYmxlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e1xuICAgICAgICAgICAgICAhcmVhZE9ubHlcbiAgICAgICAgICAgICAgICA/IChzZWxlY3RlZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0ZWQgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShoYXNNYW55ID8gW10gOiBudWxsKVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGhhc01hbnkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gc2VsZWN0ZWQubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNNdWx0aXBsZVJlbGF0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IG9wdGlvbi5yZWxhdGlvblRvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzTXVsdGlwbGVSZWxhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBzZWxlY3RlZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHNlbGVjdGVkLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoc2VsZWN0ZWQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25JbnB1dENoYW5nZT17KG5ld1NlYXJjaCkgPT4gaGFuZGxlSW5wdXRDaGFuZ2UobmV3U2VhcmNoLCB2YWx1ZSl9XG4gICAgICAgICAgICBvbk1lbnVPcGVuPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICghaGFzTG9hZGVkRmlyc3RQYWdlKSB7XG4gICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKHRydWUpXG4gICAgICAgICAgICAgICAgZ2V0UmVzdWx0cyh7XG4gICAgICAgICAgICAgICAgICBvblN1Y2Nlc3M6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SGFzTG9hZGVkRmlyc3RQYWdlKHRydWUpXG4gICAgICAgICAgICAgICAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogaW5pdGlhbFZhbHVlLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvbk1lbnVTY3JvbGxUb0JvdHRvbT17KCkgPT4ge1xuICAgICAgICAgICAgICBnZXRSZXN1bHRzKHtcbiAgICAgICAgICAgICAgICBsYXN0RnVsbHlMb2FkZWRSZWxhdGlvbixcbiAgICAgICAgICAgICAgICBzZWFyY2gsXG4gICAgICAgICAgICAgICAgc29ydDogZmFsc2UsXG4gICAgICAgICAgICAgICAgdmFsdWU6IGluaXRpYWxWYWx1ZSxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgICAgICAgICAgc2hvd0Vycm9yPXtzaG93RXJyb3J9XG4gICAgICAgICAgICB2YWx1ZT17dmFsdWVUb1JlbmRlciA/PyBudWxsfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgeyFyZWFkT25seSAmJiBhbGxvd0NyZWF0ZSAmJiAoXG4gICAgICAgICAgICA8QWRkTmV3UmVsYXRpb25cbiAgICAgICAgICAgICAgey4uLntcbiAgICAgICAgICAgICAgICBkaXNwYXRjaE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgaGFzTWFueSxcbiAgICAgICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgICAgIHBhdGg6IHBhdGhPck5hbWUsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZSxcbiAgICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAge2Vycm9yTG9hZGluZyAmJiA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZXJyb3ItbG9hZGluZ2B9PntlcnJvckxvYWRpbmd9PC9kaXY+fVxuICAgICAgPEZpZWxkRGVzY3JpcHRpb24gZGVzY3JpcHRpb249e2Rlc2NyaXB0aW9ufSBwYXRoPXtwYXRofSB2YWx1ZT17dmFsdWV9IC8+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aENvbmRpdGlvbihSZWxhdGlvbnNoaXApXG4iXSwibmFtZXMiOlsibWF4UmVzdWx0c1BlclJlcXVlc3QiLCJiYXNlQ2xhc3MiLCJSZWxhdGlvbnNoaXAiLCJwcm9wcyIsIm5hbWUiLCJhZG1pbiIsImFsbG93Q3JlYXRlIiwiY2xhc3NOYW1lIiwiY29tcG9uZW50cyIsIkVycm9yIiwiTGFiZWwiLCJjb25kaXRpb24iLCJkZXNjcmlwdGlvbiIsImlzU29ydGFibGUiLCJyZWFkT25seSIsInNvcnRPcHRpb25zIiwic3R5bGUiLCJ3aWR0aCIsImZpbHRlck9wdGlvbnMiLCJoYXNNYW55IiwibGFiZWwiLCJwYXRoIiwicmVsYXRpb25UbyIsInJlcXVpcmVkIiwidmFsaWRhdGUiLCJyZWxhdGlvbnNoaXAiLCJFcnJvckNvbXAiLCJEZWZhdWx0RXJyb3IiLCJMYWJlbENvbXAiLCJEZWZhdWx0TGFiZWwiLCJjb25maWciLCJ1c2VDb25maWciLCJjb2xsZWN0aW9ucyIsInJvdXRlcyIsImFwaSIsInNlcnZlclVSTCIsImkxOG4iLCJ0IiwidXNlVHJhbnNsYXRpb24iLCJwZXJtaXNzaW9ucyIsInVzZUF1dGgiLCJjb2RlIiwibG9jYWxlIiwidXNlTG9jYWxlIiwiZm9ybVByb2Nlc3NpbmciLCJ1c2VGb3JtUHJvY2Vzc2luZyIsImhhc011bHRpcGxlUmVsYXRpb25zIiwiQXJyYXkiLCJpc0FycmF5Iiwib3B0aW9ucyIsImRpc3BhdGNoT3B0aW9ucyIsInVzZVJlZHVjZXIiLCJvcHRpb25zUmVkdWNlciIsImxhc3RGdWxseUxvYWRlZFJlbGF0aW9uIiwic2V0TGFzdEZ1bGx5TG9hZGVkUmVsYXRpb24iLCJ1c2VTdGF0ZSIsImxhc3RMb2FkZWRQYWdlIiwic2V0TGFzdExvYWRlZFBhZ2UiLCJlcnJvckxvYWRpbmciLCJzZXRFcnJvckxvYWRpbmciLCJmaWx0ZXJPcHRpb25zUmVzdWx0Iiwic2V0RmlsdGVyT3B0aW9uc1Jlc3VsdCIsInNlYXJjaCIsInNldFNlYXJjaCIsImlzTG9hZGluZyIsInNldElzTG9hZGluZyIsImhhc0xvYWRlZEZpcnN0UGFnZSIsInNldEhhc0xvYWRlZEZpcnN0UGFnZSIsImVuYWJsZVdvcmRCb3VuZGFyeVNlYXJjaCIsInNldEVuYWJsZVdvcmRCb3VuZGFyeVNlYXJjaCIsImZpcnN0UnVuIiwidXNlUmVmIiwicGF0aE9yTmFtZSIsIm1lbW9pemVkVmFsaWRhdGUiLCJ1c2VDYWxsYmFjayIsInZhbHVlIiwidmFsaWRhdGlvbk9wdGlvbnMiLCJlcnJvck1lc3NhZ2UiLCJpbml0aWFsVmFsdWUiLCJzZXRWYWx1ZSIsInNob3dFcnJvciIsInVzZUZpZWxkIiwiZHJhd2VySXNPcGVuIiwic2V0RHJhd2VySXNPcGVuIiwiZ2V0UmVzdWx0cyIsImxhc3RGdWxseUxvYWRlZFJlbGF0aW9uQXJnIiwib25TdWNjZXNzIiwic2VhcmNoQXJnIiwic29ydCIsInZhbHVlQXJnIiwibGFzdEZ1bGx5TG9hZGVkUmVsYXRpb25Ub1VzZSIsInJlbGF0aW9ucyIsInJlbGF0aW9uc1RvRmV0Y2giLCJzbGljZSIsInJlc3VsdHNGZXRjaGVkIiwicmVsYXRpb25NYXAiLCJjcmVhdGVSZWxhdGlvbk1hcCIsInJlZHVjZSIsInByaW9yUmVsYXRpb24iLCJyZWxhdGlvbiIsInJlbGF0aW9uRmlsdGVyT3B0aW9uIiwibGFzdExvYWRlZFBhZ2VUb1VzZSIsImluZGV4T2YiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNvbGxlY3Rpb24iLCJmaW5kIiwiY29sbCIsInNsdWciLCJmaWVsZFRvU2VhcmNoIiwiZGVmYXVsdFNvcnQiLCJ1c2VBc1RpdGxlIiwicXVlcnkiLCJkZXB0aCIsImRyYWZ0IiwibGltaXQiLCJwYWdlIiwid2hlcmUiLCJhbmQiLCJpZCIsIm5vdF9pbiIsInB1c2giLCJsaWtlIiwicmVzcG9uc2UiLCJmZXRjaCIsInFzIiwic3RyaW5naWZ5IiwiY3JlZGVudGlhbHMiLCJoZWFkZXJzIiwibGFuZ3VhZ2UiLCJvayIsImRhdGEiLCJqc29uIiwicHJldlN0YXRlIiwibmV4dFBhZ2UiLCJkb2NzIiwibGVuZ3RoIiwidHlwZSIsInN0YXR1cyIsImlkcyIsInVwZGF0ZVNlYXJjaCIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiaGFuZGxlSW5wdXRDaGFuZ2UiLCJ1c2VFZmZlY3QiLCJPYmplY3QiLCJlbnRyaWVzIiwiaWRzVG9Mb2FkIiwiZmlsdGVyIiwib3B0aW9uR3JvdXAiLCJvcHRpb24iLCJpbiIsImlzSWRPbmx5IiwiaWRPbmx5IiwiY3VycmVudCIsIm9uU2F2ZSIsImFyZ3MiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZG9jIiwiZmlsdGVyT3B0aW9uIiwiaXRlbSIsInNlYXJjaEZpbHRlciIsInIiLCJ3b3JkQm91bmRhcmllc1JlZ2V4IiwiYnJlYWtBcGFydFRocmVzaG9sZCIsInN0cmluZyIsImluZGV4T2ZTcGFjZSIsInRlc3QiLCJ2YWx1ZVRvUmVuZGVyIiwiZmluZE9wdGlvbnNCeVZhbHVlIiwiZGl2IiwiZmllbGRCYXNlQ2xhc3MiLCJCb29sZWFuIiwiam9pbiIsInJlcGxhY2UiLCJtZXNzYWdlIiwiaHRtbEZvciIsIkdldEZpbHRlck9wdGlvbnMiLCJSZWFjdFNlbGVjdCIsImJhY2tzcGFjZVJlbW92ZXNWYWx1ZSIsIk11bHRpVmFsdWVMYWJlbCIsIlNpbmdsZVZhbHVlIiwiY3VzdG9tUHJvcHMiLCJkaXNhYmxlS2V5RG93biIsImRpc2FibGVNb3VzZURvd24iLCJkaXNhYmxlZCIsInVuZGVmaW5lZCIsImlzTXVsdGkiLCJvbkNoYW5nZSIsInNlbGVjdGVkIiwibWFwIiwib25JbnB1dENoYW5nZSIsIm5ld1NlYXJjaCIsIm9uTWVudU9wZW4iLCJvbk1lbnVTY3JvbGxUb0JvdHRvbSIsIkFkZE5ld1JlbGF0aW9uIiwiRmllbGREZXNjcmlwdGlvbiIsIndpdGhDb25kaXRpb24iXSwibWFw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
@@ -13,7 +13,7 @@ export type FieldType<T> = {
13
13
  formSubmitted: boolean;
14
14
  initialValue?: T;
15
15
  rows?: Row[];
16
- setValue: (val: unknown, modifyForm?: boolean) => void;
16
+ setValue: (val: unknown, disableModifyingForm?: boolean) => void;
17
17
  showError: boolean;
18
18
  valid?: boolean;
19
19
  value: T;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/useField/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IACtD,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,CAAC,CAAA;CACT,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/forms/useField/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAExC,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;IACZ,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,oBAAoB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAChE,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,CAAC,CAAA;CACT,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/bin/build.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,QAAa,QAAQ,IAAI,CAS1C,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/bin/build.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,QAAa,QAAQ,IAAI,CAI1C,CAAA"}
package/dist/bin/build.js CHANGED
@@ -8,20 +8,16 @@ Object.defineProperty(exports, "build", {
8
8
  return build;
9
9
  }
10
10
  });
11
- const _ = /*#__PURE__*/ _interop_require_default(require(".."));
11
+ const _load = /*#__PURE__*/ _interop_require_default(require("../config/load"));
12
12
  function _interop_require_default(obj) {
13
13
  return obj && obj.__esModule ? obj : {
14
14
  default: obj
15
15
  };
16
16
  }
17
17
  const build = async ()=>{
18
- await _.default.init({
19
- disableDBConnect: true,
20
- disableOnInit: true,
21
- local: true,
22
- secret: '--unused--'
23
- });
24
- await _.default.config.admin.bundler.build(_.default.config);
18
+ const config = await (0, _load.default)() // Will throw its own error if it fails
19
+ ;
20
+ await config.admin.bundler.build(config);
25
21
  };
26
22
  // when build.js is launched directly
27
23
  if (module.id === require.main.id) {
@@ -29,4 +25,4 @@ if (module.id === require.main.id) {
29
25
  build();
30
26
  }
31
27
 
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vYnVpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBheWxvYWQgZnJvbSAnLi4nXG5cbmV4cG9ydCBjb25zdCBidWlsZCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgYXdhaXQgcGF5bG9hZC5pbml0KHtcbiAgICBkaXNhYmxlREJDb25uZWN0OiB0cnVlLFxuICAgIGRpc2FibGVPbkluaXQ6IHRydWUsXG4gICAgbG9jYWw6IHRydWUsXG4gICAgc2VjcmV0OiAnLS11bnVzZWQtLScsXG4gIH0pXG5cbiAgYXdhaXQgcGF5bG9hZC5jb25maWcuYWRtaW4uYnVuZGxlci5idWlsZChwYXlsb2FkLmNvbmZpZylcbn1cblxuLy8gd2hlbiBidWlsZC5qcyBpcyBsYXVuY2hlZCBkaXJlY3RseVxuaWYgKG1vZHVsZS5pZCA9PT0gcmVxdWlyZS5tYWluLmlkKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgYnVpbGQoKVxufVxuIl0sIm5hbWVzIjpbImJ1aWxkIiwicGF5bG9hZCIsImluaXQiLCJkaXNhYmxlREJDb25uZWN0IiwiZGlzYWJsZU9uSW5pdCIsImxvY2FsIiwic2VjcmV0IiwiY29uZmlnIiwiYWRtaW4iLCJidW5kbGVyIiwibW9kdWxlIiwiaWQiLCJyZXF1aXJlIiwibWFpbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFFYUE7OztlQUFBQTs7O3lEQUZPOzs7Ozs7QUFFYixNQUFNQSxRQUFRO0lBQ25CLE1BQU1DLFNBQU8sQ0FBQ0MsSUFBSSxDQUFDO1FBQ2pCQyxrQkFBa0I7UUFDbEJDLGVBQWU7UUFDZkMsT0FBTztRQUNQQyxRQUFRO0lBQ1Y7SUFFQSxNQUFNTCxTQUFPLENBQUNNLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNULEtBQUssQ0FBQ0MsU0FBTyxDQUFDTSxNQUFNO0FBQ3pEO0FBRUEscUNBQXFDO0FBQ3JDLElBQUlHLE9BQU9DLEVBQUUsS0FBS0MsUUFBUUMsSUFBSSxDQUFDRixFQUFFLEVBQUU7SUFDakMsbUVBQW1FO0lBQ25FWDtBQUNGIn0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vYnVpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvYWRDb25maWcgZnJvbSAnLi4vY29uZmlnL2xvYWQnXG5cbmV4cG9ydCBjb25zdCBidWlsZCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgbG9hZENvbmZpZygpIC8vIFdpbGwgdGhyb3cgaXRzIG93biBlcnJvciBpZiBpdCBmYWlsc1xuXG4gIGF3YWl0IGNvbmZpZy5hZG1pbi5idW5kbGVyLmJ1aWxkKGNvbmZpZylcbn1cblxuLy8gd2hlbiBidWlsZC5qcyBpcyBsYXVuY2hlZCBkaXJlY3RseVxuaWYgKG1vZHVsZS5pZCA9PT0gcmVxdWlyZS5tYWluLmlkKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZmxvYXRpbmctcHJvbWlzZXNcbiAgYnVpbGQoKVxufVxuIl0sIm5hbWVzIjpbImJ1aWxkIiwiY29uZmlnIiwibG9hZENvbmZpZyIsImFkbWluIiwiYnVuZGxlciIsIm1vZHVsZSIsImlkIiwicmVxdWlyZSIsIm1haW4iXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7Ozs2REFGVTs7Ozs7O0FBRWhCLE1BQU1BLFFBQVE7SUFDbkIsTUFBTUMsU0FBUyxNQUFNQyxJQUFBQSxhQUFVLElBQUcsdUNBQXVDOztJQUV6RSxNQUFNRCxPQUFPRSxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osS0FBSyxDQUFDQztBQUNuQztBQUVBLHFDQUFxQztBQUNyQyxJQUFJSSxPQUFPQyxFQUFFLEtBQUtDLFFBQVFDLElBQUksQ0FBQ0YsRUFBRSxFQUFFO0lBQ2pDLG1FQUFtRTtJQUNuRU47QUFDRiJ9
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "mongooseAdapter", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return mongooseAdapter;
9
+ }
10
+ });
11
+ const mongooseAdapter = ()=>({});
12
+
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idW5kbGVycy9tb2Nrcy9kYi1tb25nb2RiLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBtb25nb29zZUFkYXB0ZXIgPSAoKSA9PiAoe30pXG4iXSwibmFtZXMiOlsibW9uZ29vc2VBZGFwdGVyIl0sIm1hcHBpbmdzIjoiOzs7OytCQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxrQkFBa0IsSUFBTyxDQUFBLENBQUMsQ0FBQSJ9
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "postgresAdapter", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return postgresAdapter;
9
+ }
10
+ });
11
+ const postgresAdapter = ()=>({});
12
+
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9idW5kbGVycy9tb2Nrcy9kYi1wb3N0Z3Jlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgcG9zdGdyZXNBZGFwdGVyID0gKCkgPT4gKHt9KVxuIl0sIm5hbWVzIjpbInBvc3RncmVzQWRhcHRlciJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsa0JBQWtCLElBQU8sQ0FBQSxDQUFDLENBQUEifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/collections/graphql/init.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAiC5C,iBAAS,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAwZtD;AAED,eAAe,sBAAsB,CAAA"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/collections/graphql/init.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAkC5C,iBAAS,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2ZtD;AAED,eAAe,sBAAsB,CAAA"}
@@ -36,6 +36,7 @@ const _findVersionByID = /*#__PURE__*/ _interop_require_default(require("./resol
36
36
  const _findVersions = /*#__PURE__*/ _interop_require_default(require("./resolvers/findVersions"));
37
37
  const _restoreVersion = /*#__PURE__*/ _interop_require_default(require("./resolvers/restoreVersion"));
38
38
  const _update = /*#__PURE__*/ _interop_require_default(require("./resolvers/update"));
39
+ const _flattenTopLevelFields = /*#__PURE__*/ _interop_require_default(require("../../utilities/flattenTopLevelFields"));
39
40
  function _interop_require_default(obj) {
40
41
  return obj && obj.__esModule ? obj : {
41
42
  default: obj
@@ -106,13 +107,13 @@ function initCollectionsGraphQL(payload) {
106
107
  pluralName = `all${singularName}`;
107
108
  }
108
109
  collection.graphQL = {};
109
- const idField = fields.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
110
+ const hasIDField = (0, _flattenTopLevelFields.default)(fields).findIndex((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id') > -1;
110
111
  const idType = (0, _buildMutationInputType.getCollectionIDType)(payload, config);
111
112
  const baseFields = {};
112
113
  const whereInputFields = [
113
114
  ...fields
114
115
  ];
115
- if (!idField) {
116
+ if (!hasIDField) {
116
117
  baseFields.id = {
117
118
  type: idType
118
119
  };
@@ -514,4 +515,4 @@ function initCollectionsGraphQL(payload) {
514
515
  }
515
516
  const _default = initCollectionsGraphQL;
516
517
 
517
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9ncmFwaHFsL2luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB7XG4gIEdyYXBoUUxCb29sZWFuLFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTE9iamVjdFR5cGUsXG4gIEdyYXBoUUxTdHJpbmcsXG59IGZyb20gJ2dyYXBocWwnXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPYmplY3RUeXBlQ29uZmlnIH0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vcGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiwgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGZvcmdvdFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvZm9yZ290UGFzc3dvcmQnXG5pbXBvcnQgaW5pdCBmcm9tICcuLi8uLi9hdXRoL2dyYXBocWwvcmVzb2x2ZXJzL2luaXQnXG5pbXBvcnQgbG9naW4gZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dpbidcbmltcG9ydCBsb2dvdXQgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dvdXQnXG5pbXBvcnQgbWUgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9tZSdcbmltcG9ydCByZWZyZXNoIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVmcmVzaCdcbmltcG9ydCByZXNldFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB1bmxvY2sgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy91bmxvY2snXG5pbXBvcnQgdmVyaWZ5RW1haWwgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy92ZXJpZnlFbWFpbCdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUsIHtcbiAgZ2V0Q29sbGVjdGlvbklEVHlwZSxcbn0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRNdXRhdGlvbklucHV0VHlwZSdcbmltcG9ydCBidWlsZE9iamVjdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IGJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSdcbmltcG9ydCB7IGJ1aWxkUG9saWN5VHlwZSB9IGZyb20gJy4uLy4uL2dyYXBocWwvc2NoZW1hL2J1aWxkUG9saWNpZXNUeXBlJ1xuaW1wb3J0IGJ1aWxkV2hlcmVJbnB1dFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uLy4uL2dyYXBocWwvdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgeyBmb3JtYXROYW1lcywgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgeyBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvYnVpbGRDb2xsZWN0aW9uRmllbGRzJ1xuaW1wb3J0IGNyZWF0ZVJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2NyZWF0ZSdcbmltcG9ydCBnZXREZWxldGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9kZWxldGUnXG5pbXBvcnQgeyBkb2NBY2Nlc3NSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzL2RvY0FjY2VzcydcbmltcG9ydCBmaW5kUmVzb2x2ZXIgZnJvbSAnLi9yZXNvbHZlcnMvZmluZCdcbmltcG9ydCBmaW5kQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRCeUlEJ1xuaW1wb3J0IGZpbmRWZXJzaW9uQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRCdcbmltcG9ydCBmaW5kVmVyc2lvbnNSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9maW5kVmVyc2lvbnMnXG5pbXBvcnQgcmVzdG9yZVZlcnNpb25SZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB1cGRhdGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy91cGRhdGUnXG5cbmZ1bmN0aW9uIGluaXRDb2xsZWN0aW9uc0dyYXBoUUwocGF5bG9hZDogUGF5bG9hZCk6IHZvaWQge1xuICBPYmplY3Qua2V5cyhwYXlsb2FkLmNvbGxlY3Rpb25zKS5mb3JFYWNoKChzbHVnKSA9PiB7XG4gICAgY29uc3QgY29sbGVjdGlvbjogQ29sbGVjdGlvbiA9IHBheWxvYWQuY29sbGVjdGlvbnNbc2x1Z11cbiAgICBjb25zdCB7XG4gICAgICBjb25maWcsXG4gICAgICBjb25maWc6IHsgZmllbGRzLCBncmFwaFFMID0ge30gYXMgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1snZ3JhcGhRTCddLCB2ZXJzaW9ucyB9LFxuICAgIH0gPSBjb2xsZWN0aW9uXG5cbiAgICBpZiAoIWdyYXBoUUwpIHJldHVyblxuXG4gICAgbGV0IHNpbmd1bGFyTmFtZVxuICAgIGxldCBwbHVyYWxOYW1lXG4gICAgY29uc3QgZnJvbVNsdWcgPSBmb3JtYXROYW1lcyhjb2xsZWN0aW9uLmNvbmZpZy5zbHVnKVxuICAgIGlmIChncmFwaFFMLnNpbmd1bGFyTmFtZSkge1xuICAgICAgc2luZ3VsYXJOYW1lID0gdG9Xb3JkcyhncmFwaFFMLnNpbmd1bGFyTmFtZSwgdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgc2luZ3VsYXJOYW1lID0gZnJvbVNsdWcuc2luZ3VsYXJcbiAgICB9XG4gICAgaWYgKGdyYXBoUUwucGx1cmFsTmFtZSkge1xuICAgICAgcGx1cmFsTmFtZSA9IHRvV29yZHMoZ3JhcGhRTC5wbHVyYWxOYW1lLCB0cnVlKVxuICAgIH0gZWxzZSB7XG4gICAgICBwbHVyYWxOYW1lID0gZnJvbVNsdWcucGx1cmFsXG4gICAgfVxuXG4gICAgLy8gRm9yIGNvbGxlY3Rpb25zIG5hbWVkICdNZWRpYScgb3Igc2ltaWxhcixcbiAgICAvLyB0aGVyZSBpcyBhIHBvc3NpYmlsaXR5IHRoYXQgdGhlIHNpbmd1bGFyIG5hbWVcbiAgICAvLyB3aWxsIGVxdWFsIHRoZSBwbHVyYWwgbmFtZS4gQXBwZW5kIGBhbGxgIHRvIHRoZSBiZWdpbm5pbmdcbiAgICAvLyBvZiBwb3RlbnRpYWwgY29uZmxpY3RzXG4gICAgaWYgKHNpbmd1bGFyTmFtZSA9PT0gcGx1cmFsTmFtZSkge1xuICAgICAgcGx1cmFsTmFtZSA9IGBhbGwke3Npbmd1bGFyTmFtZX1gXG4gICAgfVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMID0ge30gYXMgQ29sbGVjdGlvblsnZ3JhcGhRTCddXG5cbiAgICBjb25zdCBpZEZpZWxkID0gZmllbGRzLmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuICAgIGNvbnN0IGlkVHlwZSA9IGdldENvbGxlY3Rpb25JRFR5cGUocGF5bG9hZCwgY29uZmlnKVxuXG4gICAgY29uc3QgYmFzZUZpZWxkczogT2JqZWN0VHlwZUNvbmZpZyA9IHt9XG5cbiAgICBjb25zdCB3aGVyZUlucHV0RmllbGRzID0gWy4uLmZpZWxkc11cblxuICAgIGlmICghaWRGaWVsZCkge1xuICAgICAgYmFzZUZpZWxkcy5pZCA9IHsgdHlwZTogaWRUeXBlIH1cbiAgICAgIHdoZXJlSW5wdXRGaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlID0gQm9vbGVhbih2ZXJzaW9ucz8uZHJhZnRzKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUgPSBidWlsZE9iamVjdFR5cGUoe1xuICAgICAgbmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgYmFzZUZpZWxkcyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZvcmNlTnVsbGFibGU6IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlLFxuICAgICAgcGFyZW50TmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgcGF5bG9hZCxcbiAgICB9KVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnBhZ2luYXRlZFR5cGUgPSBidWlsZFBhZ2luYXRlZExpc3RUeXBlKHBsdXJhbE5hbWUsIGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLndoZXJlSW5wdXRUeXBlID0gYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICBuYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBmaWVsZHM6IHdoZXJlSW5wdXRGaWVsZHMsXG4gICAgICBwYXJlbnROYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBwYXlsb2FkLFxuICAgIH0pXG5cbiAgICBpZiAoY29uZmlnLmF1dGggJiYgIWNvbmZpZy5hdXRoLmRpc2FibGVMb2NhbFN0cmF0ZWd5KSB7XG4gICAgICBmaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICAgIGxhYmVsOiAnUGFzc3dvcmQnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgICAgZmllbGRzLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgIClcbiAgICBpZiAoY3JlYXRlTXV0YXRpb25JbnB1dFR5cGUpIHtcbiAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC5tdXRhdGlvbklucHV0VHlwZSA9IG5ldyBHcmFwaFFMTm9uTnVsbChjcmVhdGVNdXRhdGlvbklucHV0VHlwZSlcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgYCR7c2luZ3VsYXJOYW1lfVVwZGF0ZWAsXG4gICAgICBmaWVsZHMuZmlsdGVyKChmaWVsZCkgPT4gIShmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSksXG4gICAgICBgJHtzaW5ndWxhck5hbWV9VXBkYXRlYCxcbiAgICAgIHRydWUsXG4gICAgKVxuICAgIGlmICh1cGRhdGVNdXRhdGlvbklucHV0VHlwZSkge1xuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLnVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlID0gbmV3IEdyYXBoUUxOb25OdWxsKHVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlKVxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW3Npbmd1bGFyTmFtZV0gPSB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIGlkOiB7IHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChpZFR5cGUpIH0sXG4gICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiBmaW5kQnlJRFJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUsXG4gICAgfVxuXG4gICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbcGx1cmFsTmFtZV0gPSB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgIHdoZXJlOiB7IHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC53aGVyZUlucHV0VHlwZSB9LFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgICAgbG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMubG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIGxpbWl0OiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgcGFnZTogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgIHNvcnQ6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGZpbmRSZXNvbHZlcihjb2xsZWN0aW9uKSxcbiAgICAgIHR5cGU6IGJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUocGx1cmFsTmFtZSwgY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUpLFxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2Bkb2NBY2Nlc3Mke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgaWQ6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKGlkVHlwZSkgfSxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiBkb2NBY2Nlc3NSZXNvbHZlcigpLFxuICAgICAgdHlwZTogYnVpbGRQb2xpY3lUeXBlKHtcbiAgICAgICAgZW50aXR5OiBjb25maWcsXG4gICAgICAgIHNjb3BlOiAnZG9jQWNjZXNzJyxcbiAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICB0eXBlU3VmZml4OiAnRG9jQWNjZXNzJyxcbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2BjcmVhdGUke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgLi4uKGNyZWF0ZU11dGF0aW9uSW5wdXRUeXBlXG4gICAgICAgICAgPyB7IGRhdGE6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLm11dGF0aW9uSW5wdXRUeXBlIH0gfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICBkcmFmdDogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGNyZWF0ZVJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUsXG4gICAgfVxuXG4gICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHVwZGF0ZSR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgYXJnczoge1xuICAgICAgICBpZDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoaWRUeXBlKSB9LFxuICAgICAgICBhdXRvc2F2ZTogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAuLi4odXBkYXRlTXV0YXRpb25JbnB1dFR5cGVcbiAgICAgICAgICA/IHsgZGF0YTogeyB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudXBkYXRlTXV0YXRpb25JbnB1dFR5cGUgfSB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMubG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogdXBkYXRlUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICB9XG5cbiAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgZGVsZXRlJHtzaW5ndWxhck5hbWV9YF0gPSB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIGlkOiB7IHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChpZFR5cGUpIH0sXG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogZ2V0RGVsZXRlUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnZlcnNpb25zKSB7XG4gICAgICBjb25zdCB2ZXJzaW9uSURUeXBlID0gcGF5bG9hZC5kYi5kZWZhdWx0SURUeXBlID09PSAndGV4dCcgPyBHcmFwaFFMU3RyaW5nIDogR3JhcGhRTEludFxuICAgICAgY29uc3QgdmVyc2lvbkNvbGxlY3Rpb25GaWVsZHM6IEZpZWxkW10gPSBbXG4gICAgICAgIC4uLmJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMoY29uZmlnKSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgICAgdHlwZTogcGF5bG9hZC5kYi5kZWZhdWx0SURUeXBlIGFzICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgIGxhYmVsOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXG4gICAgICAgICAgbGFiZWw6ICdVcGRhdGVkIEF0JyxcbiAgICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgIH0sXG4gICAgICBdXG5cbiAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgIG5hbWU6IGAke3Npbmd1bGFyTmFtZX1WZXJzaW9uYCxcbiAgICAgICAgZmllbGRzOiB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyxcbiAgICAgICAgZm9yY2VOdWxsYWJsZTogZm9yY2VOdWxsYWJsZU9iamVjdFR5cGUsXG4gICAgICAgIHBhcmVudE5hbWU6IGAke3Npbmd1bGFyTmFtZX1WZXJzaW9uYCxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0pXG5cbiAgICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2B2ZXJzaW9uJHtmb3JtYXROYW1lKHNpbmd1bGFyTmFtZSl9YF0gPSB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBpZDogeyB0eXBlOiB2ZXJzaW9uSURUeXBlIH0sXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZTogZmluZFZlcnNpb25CeUlEUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgICAgIHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSxcbiAgICAgIH1cbiAgICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2B2ZXJzaW9ucyR7cGx1cmFsTmFtZX1gXSA9IHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICB0eXBlOiBidWlsZFdoZXJlSW5wdXRUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgZmllbGRzOiB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyxcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICBsaW1pdDogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgcGFnZTogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgc29ydDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IGZpbmRWZXJzaW9uc1Jlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBidWlsZFBhZ2luYXRlZExpc3RUeXBlKFxuICAgICAgICAgIGB2ZXJzaW9ucyR7Zm9ybWF0TmFtZShwbHVyYWxOYW1lKX1gLFxuICAgICAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSxcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2ByZXN0b3JlVmVyc2lvbiR7Zm9ybWF0TmFtZShzaW5ndWxhck5hbWUpfWBdID0ge1xuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogdmVyc2lvbklEVHlwZSB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiByZXN0b3JlVmVyc2lvblJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmF1dGgpIHtcbiAgICAgIGNvbnN0IGF1dGhGaWVsZHM6IEZpZWxkW10gPSBjb25maWcuYXV0aC5kaXNhYmxlTG9jYWxTdHJhdGVneVxuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnZW1haWwnLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgdHlwZTogJ2VtYWlsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLkpXVCA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgIG5hbWU6IGZvcm1hdE5hbWUoYCR7c2x1Z31KV1RgKSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgLi4uY29uZmlnLmZpZWxkcy5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5zYXZlVG9KV1QpLFxuICAgICAgICAgIC4uLmF1dGhGaWVsZHMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcGFyZW50TmFtZTogZm9ybWF0TmFtZShgJHtzbHVnfUpXVGApLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSlcblxuICAgICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYG1lJHtzaW5ndWxhck5hbWV9YF0gPSB7XG4gICAgICAgIHJlc29sdmU6IG1lKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGZvcm1hdE5hbWUoYCR7c2x1Z31NZWApLFxuICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgY29sbGVjdGlvbjoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cDoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRva2VuOiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9XG5cbiAgICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2Bpbml0aWFsaXplZCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICByZXNvbHZlOiBpbml0KGNvbGxlY3Rpb24uY29uZmlnLnNsdWcpLFxuICAgICAgICB0eXBlOiBHcmFwaFFMQm9vbGVhbixcbiAgICAgIH1cblxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlZnJlc2hUb2tlbiR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgdG9rZW46IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiByZWZyZXNoKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGZvcm1hdE5hbWUoYCR7c2x1Z31SZWZyZXNoZWQke3Npbmd1bGFyTmFtZX1gKSxcbiAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgIGV4cDoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2hlZFRva2VuOiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwuSldULFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIH1cblxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYGxvZ291dCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICByZXNvbHZlOiBsb2dvdXQoY29sbGVjdGlvbiksXG4gICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICB9XG5cbiAgICAgIGlmICghY29uZmlnLmF1dGguZGlzYWJsZUxvY2FsU3RyYXRlZ3kpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5hdXRoLm1heExvZ2luQXR0ZW1wdHMgPiAwKSB7XG4gICAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHVubG9jayR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICBlbWFpbDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTFN0cmluZykgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlOiB1bmxvY2soY29sbGVjdGlvbiksXG4gICAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTEJvb2xlYW4pLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2Bsb2dpbiR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIGVtYWlsOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IGxvZ2luKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9TG9naW5SZXN1bHRgKSxcbiAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgZm9yZ290UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICBkaXNhYmxlRW1haWw6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIGVtYWlsOiB7IHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSB9LFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvbHZlOiBmb3Jnb3RQYXNzd29yZChjb2xsZWN0aW9uKSxcbiAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTEJvb2xlYW4pLFxuICAgICAgICB9XG5cbiAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlc2V0UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICBwYXNzd29yZDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgICAgICB0b2tlbjogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvbHZlOiByZXNldFBhc3N3b3JkKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9UmVzZXRQYXNzd29yZGApLFxuICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgIHRva2VuOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICAgICAgdXNlcjogeyB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2B2ZXJpZnlFbWFpbCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIHRva2VuOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IHZlcmlmeUVtYWlsKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIHR5cGU6IEdyYXBoUUxCb29sZWFuLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0Q29sbGVjdGlvbnNHcmFwaFFMXG4iXSwibmFtZXMiOlsiaW5pdENvbGxlY3Rpb25zR3JhcGhRTCIsInBheWxvYWQiLCJPYmplY3QiLCJrZXlzIiwiY29sbGVjdGlvbnMiLCJmb3JFYWNoIiwic2x1ZyIsImNvbGxlY3Rpb24iLCJjb25maWciLCJmaWVsZHMiLCJncmFwaFFMIiwidmVyc2lvbnMiLCJzaW5ndWxhck5hbWUiLCJwbHVyYWxOYW1lIiwiZnJvbVNsdWciLCJmb3JtYXROYW1lcyIsInRvV29yZHMiLCJzaW5ndWxhciIsInBsdXJhbCIsImlkRmllbGQiLCJmaW5kIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImlkVHlwZSIsImdldENvbGxlY3Rpb25JRFR5cGUiLCJiYXNlRmllbGRzIiwid2hlcmVJbnB1dEZpZWxkcyIsImlkIiwidHlwZSIsInB1c2giLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJmb3JjZU51bGxhYmxlT2JqZWN0VHlwZSIsIkJvb2xlYW4iLCJkcmFmdHMiLCJidWlsZE9iamVjdFR5cGUiLCJmb3JjZU51bGxhYmxlIiwicGFyZW50TmFtZSIsInBhZ2luYXRlZFR5cGUiLCJidWlsZFBhZ2luYXRlZExpc3RUeXBlIiwid2hlcmVJbnB1dFR5cGUiLCJidWlsZFdoZXJlSW5wdXRUeXBlIiwiYXV0aCIsImRpc2FibGVMb2NhbFN0cmF0ZWd5IiwibGFiZWwiLCJyZXF1aXJlZCIsImNyZWF0ZU11dGF0aW9uSW5wdXRUeXBlIiwiYnVpbGRNdXRhdGlvbklucHV0VHlwZSIsIm11dGF0aW9uSW5wdXRUeXBlIiwiR3JhcGhRTE5vbk51bGwiLCJ1cGRhdGVNdXRhdGlvbklucHV0VHlwZSIsImZpbHRlciIsIlF1ZXJ5IiwiYXJncyIsImRyYWZ0IiwiR3JhcGhRTEJvb2xlYW4iLCJsb2NhbGl6YXRpb24iLCJmYWxsYmFja0xvY2FsZSIsInR5cGVzIiwiZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUiLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJyZXNvbHZlIiwiZmluZEJ5SURSZXNvbHZlciIsIndoZXJlIiwibGltaXQiLCJHcmFwaFFMSW50IiwicGFnZSIsInNvcnQiLCJHcmFwaFFMU3RyaW5nIiwiZmluZFJlc29sdmVyIiwiZG9jQWNjZXNzUmVzb2x2ZXIiLCJidWlsZFBvbGljeVR5cGUiLCJlbnRpdHkiLCJzY29wZSIsInR5cGVTdWZmaXgiLCJNdXRhdGlvbiIsImRhdGEiLCJjcmVhdGVSZXNvbHZlciIsImF1dG9zYXZlIiwidXBkYXRlUmVzb2x2ZXIiLCJnZXREZWxldGVSZXNvbHZlciIsInZlcnNpb25JRFR5cGUiLCJ2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyIsImJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJ2ZXJzaW9uVHlwZSIsImZvcm1hdE5hbWUiLCJmaW5kVmVyc2lvbkJ5SURSZXNvbHZlciIsImZpbmRWZXJzaW9uc1Jlc29sdmVyIiwicmVzdG9yZVZlcnNpb25SZXNvbHZlciIsImF1dGhGaWVsZHMiLCJKV1QiLCJzYXZlVG9KV1QiLCJtZSIsIkdyYXBoUUxPYmplY3RUeXBlIiwiZXhwIiwidG9rZW4iLCJ1c2VyIiwiaW5pdCIsInJlZnJlc2giLCJyZWZyZXNoZWRUb2tlbiIsImxvZ291dCIsIm1heExvZ2luQXR0ZW1wdHMiLCJlbWFpbCIsInVubG9jayIsInBhc3N3b3JkIiwibG9naW4iLCJkaXNhYmxlRW1haWwiLCJleHBpcmF0aW9uIiwiZm9yZ290UGFzc3dvcmQiLCJyZXNldFBhc3N3b3JkIiwidmVyaWZ5RW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkFzY3BDOzs7ZUFBQTs7O3lCQS9iTzt1RUFPb0I7NkRBQ1Y7OERBQ0M7K0RBQ0M7MkRBQ0o7Z0VBQ0s7c0VBQ007K0RBQ1A7b0VBQ0s7dUJBQ1M7Z0ZBRzFCO3dFQUNxQjsrRUFDTzttQ0FDSDs0RUFDQTttRUFDVDs4QkFDYzt1Q0FDUTsrREFDbEI7K0RBQ0c7MkJBQ0k7NkRBQ1Q7aUVBQ0k7d0VBQ087cUVBQ0g7dUVBQ0U7K0RBQ1I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUzQixTQUFTQSx1QkFBdUJDLE9BQWdCO0lBQzlDQyxPQUFPQyxJQUFJLENBQUNGLFFBQVFHLFdBQVcsRUFBRUMsT0FBTyxDQUFDLENBQUNDO1FBQ3hDLE1BQU1DLGFBQXlCTixRQUFRRyxXQUFXLENBQUNFLEtBQUs7UUFDeEQsTUFBTSxFQUNKRSxNQUFNLEVBQ05BLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxVQUFVLENBQUMsQ0FBeUMsRUFBRUMsUUFBUSxFQUFFLEVBQ25GLEdBQUdKO1FBRUosSUFBSSxDQUFDRyxTQUFTO1FBRWQsSUFBSUU7UUFDSixJQUFJQztRQUNKLE1BQU1DLFdBQVdDLElBQUFBLHlCQUFXLEVBQUNSLFdBQVdDLE1BQU0sQ0FBQ0YsSUFBSTtRQUNuRCxJQUFJSSxRQUFRRSxZQUFZLEVBQUU7WUFDeEJBLGVBQWVJLElBQUFBLHFCQUFPLEVBQUNOLFFBQVFFLFlBQVksRUFBRTtRQUMvQyxPQUFPO1lBQ0xBLGVBQWVFLFNBQVNHLFFBQVE7UUFDbEM7UUFDQSxJQUFJUCxRQUFRRyxVQUFVLEVBQUU7WUFDdEJBLGFBQWFHLElBQUFBLHFCQUFPLEVBQUNOLFFBQVFHLFVBQVUsRUFBRTtRQUMzQyxPQUFPO1lBQ0xBLGFBQWFD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
518
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9ncmFwaHFsL2luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB7XG4gIEdyYXBoUUxCb29sZWFuLFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTE9iamVjdFR5cGUsXG4gIEdyYXBoUUxTdHJpbmcsXG59IGZyb20gJ2dyYXBocWwnXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPYmplY3RUeXBlQ29uZmlnIH0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vcGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiwgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGZvcmdvdFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvZm9yZ290UGFzc3dvcmQnXG5pbXBvcnQgaW5pdCBmcm9tICcuLi8uLi9hdXRoL2dyYXBocWwvcmVzb2x2ZXJzL2luaXQnXG5pbXBvcnQgbG9naW4gZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dpbidcbmltcG9ydCBsb2dvdXQgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dvdXQnXG5pbXBvcnQgbWUgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9tZSdcbmltcG9ydCByZWZyZXNoIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVmcmVzaCdcbmltcG9ydCByZXNldFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB1bmxvY2sgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy91bmxvY2snXG5pbXBvcnQgdmVyaWZ5RW1haWwgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy92ZXJpZnlFbWFpbCdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUsIHtcbiAgZ2V0Q29sbGVjdGlvbklEVHlwZSxcbn0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRNdXRhdGlvbklucHV0VHlwZSdcbmltcG9ydCBidWlsZE9iamVjdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IGJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSdcbmltcG9ydCB7IGJ1aWxkUG9saWN5VHlwZSB9IGZyb20gJy4uLy4uL2dyYXBocWwvc2NoZW1hL2J1aWxkUG9saWNpZXNUeXBlJ1xuaW1wb3J0IGJ1aWxkV2hlcmVJbnB1dFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uLy4uL2dyYXBocWwvdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgeyBmb3JtYXROYW1lcywgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgeyBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvYnVpbGRDb2xsZWN0aW9uRmllbGRzJ1xuaW1wb3J0IGNyZWF0ZVJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2NyZWF0ZSdcbmltcG9ydCBnZXREZWxldGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9kZWxldGUnXG5pbXBvcnQgeyBkb2NBY2Nlc3NSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzL2RvY0FjY2VzcydcbmltcG9ydCBmaW5kUmVzb2x2ZXIgZnJvbSAnLi9yZXNvbHZlcnMvZmluZCdcbmltcG9ydCBmaW5kQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRCeUlEJ1xuaW1wb3J0IGZpbmRWZXJzaW9uQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRCdcbmltcG9ydCBmaW5kVmVyc2lvbnNSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9maW5kVmVyc2lvbnMnXG5pbXBvcnQgcmVzdG9yZVZlcnNpb25SZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB1cGRhdGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy91cGRhdGUnXG5pbXBvcnQgZmxhdHRlbkZpZWxkcyBmcm9tICcuLi8uLi91dGlsaXRpZXMvZmxhdHRlblRvcExldmVsRmllbGRzJ1xuXG5mdW5jdGlvbiBpbml0Q29sbGVjdGlvbnNHcmFwaFFMKHBheWxvYWQ6IFBheWxvYWQpOiB2b2lkIHtcbiAgT2JqZWN0LmtleXMocGF5bG9hZC5jb2xsZWN0aW9ucykuZm9yRWFjaCgoc2x1ZykgPT4ge1xuICAgIGNvbnN0IGNvbGxlY3Rpb246IENvbGxlY3Rpb24gPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3NsdWddXG4gICAgY29uc3Qge1xuICAgICAgY29uZmlnLFxuICAgICAgY29uZmlnOiB7IGZpZWxkcywgZ3JhcGhRTCA9IHt9IGFzIFNhbml0aXplZENvbGxlY3Rpb25Db25maWdbJ2dyYXBoUUwnXSwgdmVyc2lvbnMgfSxcbiAgICB9ID0gY29sbGVjdGlvblxuXG4gICAgaWYgKCFncmFwaFFMKSByZXR1cm5cblxuICAgIGxldCBzaW5ndWxhck5hbWVcbiAgICBsZXQgcGx1cmFsTmFtZVxuICAgIGNvbnN0IGZyb21TbHVnID0gZm9ybWF0TmFtZXMoY29sbGVjdGlvbi5jb25maWcuc2x1ZylcbiAgICBpZiAoZ3JhcGhRTC5zaW5ndWxhck5hbWUpIHtcbiAgICAgIHNpbmd1bGFyTmFtZSA9IHRvV29yZHMoZ3JhcGhRTC5zaW5ndWxhck5hbWUsIHRydWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNpbmd1bGFyTmFtZSA9IGZyb21TbHVnLnNpbmd1bGFyXG4gICAgfVxuICAgIGlmIChncmFwaFFMLnBsdXJhbE5hbWUpIHtcbiAgICAgIHBsdXJhbE5hbWUgPSB0b1dvcmRzKGdyYXBoUUwucGx1cmFsTmFtZSwgdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcGx1cmFsTmFtZSA9IGZyb21TbHVnLnBsdXJhbFxuICAgIH1cblxuICAgIC8vIEZvciBjb2xsZWN0aW9ucyBuYW1lZCAnTWVkaWEnIG9yIHNpbWlsYXIsXG4gICAgLy8gdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBzaW5ndWxhciBuYW1lXG4gICAgLy8gd2lsbCBlcXVhbCB0aGUgcGx1cmFsIG5hbWUuIEFwcGVuZCBgYWxsYCB0byB0aGUgYmVnaW5uaW5nXG4gICAgLy8gb2YgcG90ZW50aWFsIGNvbmZsaWN0c1xuICAgIGlmIChzaW5ndWxhck5hbWUgPT09IHBsdXJhbE5hbWUpIHtcbiAgICAgIHBsdXJhbE5hbWUgPSBgYWxsJHtzaW5ndWxhck5hbWV9YFxuICAgIH1cblxuICAgIGNvbGxlY3Rpb24uZ3JhcGhRTCA9IHt9IGFzIENvbGxlY3Rpb25bJ2dyYXBoUUwnXVxuXG4gICAgY29uc3QgaGFzSURGaWVsZCA9XG4gICAgICBmbGF0dGVuRmllbGRzKGZpZWxkcykuZmluZEluZGV4KChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJykgPlxuICAgICAgLTFcblxuICAgIGNvbnN0IGlkVHlwZSA9IGdldENvbGxlY3Rpb25JRFR5cGUocGF5bG9hZCwgY29uZmlnKVxuXG4gICAgY29uc3QgYmFzZUZpZWxkczogT2JqZWN0VHlwZUNvbmZpZyA9IHt9XG5cbiAgICBjb25zdCB3aGVyZUlucHV0RmllbGRzID0gWy4uLmZpZWxkc11cblxuICAgIGlmICghaGFzSURGaWVsZCkge1xuICAgICAgYmFzZUZpZWxkcy5pZCA9IHsgdHlwZTogaWRUeXBlIH1cbiAgICAgIHdoZXJlSW5wdXRGaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlID0gQm9vbGVhbih2ZXJzaW9ucz8uZHJhZnRzKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUgPSBidWlsZE9iamVjdFR5cGUoe1xuICAgICAgbmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgYmFzZUZpZWxkcyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZvcmNlTnVsbGFibGU6IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlLFxuICAgICAgcGFyZW50TmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgcGF5bG9hZCxcbiAgICB9KVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnBhZ2luYXRlZFR5cGUgPSBidWlsZFBhZ2luYXRlZExpc3RUeXBlKHBsdXJhbE5hbWUsIGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLndoZXJlSW5wdXRUeXBlID0gYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICBuYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBmaWVsZHM6IHdoZXJlSW5wdXRGaWVsZHMsXG4gICAgICBwYXJlbnROYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBwYXlsb2FkLFxuICAgIH0pXG5cbiAgICBpZiAoY29uZmlnLmF1dGggJiYgIWNvbmZpZy5hdXRoLmRpc2FibGVMb2NhbFN0cmF0ZWd5KSB7XG4gICAgICBmaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICAgIGxhYmVsOiAnUGFzc3dvcmQnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgICAgZmllbGRzLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgIClcbiAgICBpZiAoY3JlYXRlTXV0YXRpb25JbnB1dFR5cGUpIHtcbiAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC5tdXRhdGlvbklucHV0VHlwZSA9IG5ldyBHcmFwaFFMTm9uTnVsbChjcmVhdGVNdXRhdGlvbklucHV0VHlwZSlcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgYCR7c2luZ3VsYXJOYW1lfVVwZGF0ZWAsXG4gICAgICBmaWVsZHMuZmlsdGVyKChmaWVsZCkgPT4gIShmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSksXG4gICAgICBgJHtzaW5ndWxhck5hbWV9VXBkYXRlYCxcbiAgICAgIHRydWUsXG4gICAgKVxuICAgIGlmICh1cGRhdGVNdXRhdGlvbklucHV0VHlwZSkge1xuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLnVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlID0gbmV3IEdyYXBoUUxOb25OdWxsKHVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlKVxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW3Npbmd1bGFyTmFtZV0gPSB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIGlkOiB7IHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChpZFR5cGUpIH0sXG4gICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiBmaW5kQnlJRFJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUsXG4gICAgfVxuXG4gICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbcGx1cmFsTmFtZV0gPSB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgIHdoZXJlOiB7IHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC53aGVyZUlucHV0VHlwZSB9LFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgICAgbG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMubG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIGxpbWl0OiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgcGFnZTogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgIHNvcnQ6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGZpbmRSZXNvbHZlcihjb2xsZWN0aW9uKSxcbiAgICAgIHR5cGU6IGJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUocGx1cmFsTmFtZSwgY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUpLFxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2Bkb2NBY2Nlc3Mke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgaWQ6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKGlkVHlwZSkgfSxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiBkb2NBY2Nlc3NSZXNvbHZlcigpLFxuICAgICAgdHlwZTogYnVpbGRQb2xpY3lUeXBlKHtcbiAgICAgICAgZW50aXR5OiBjb25maWcsXG4gICAgICAgIHNjb3BlOiAnZG9jQWNjZXNzJyxcbiAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICB0eXBlU3VmZml4OiAnRG9jQWNjZXNzJyxcbiAgICAgIH0pLFxuICAgIH1cblxuICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2BjcmVhdGUke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgLi4uKGNyZWF0ZU11dGF0aW9uSW5wdXRUeXBlXG4gICAgICAgICAgPyB7IGRhdGE6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLm11dGF0aW9uSW5wdXRUeXBlIH0gfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICBkcmFmdDogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGNyZWF0ZVJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUsXG4gICAgfVxuXG4gICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHVwZGF0ZSR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgYXJnczoge1xuICAgICAgICBpZDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoaWRUeXBlKSB9LFxuICAgICAgICBhdXRvc2F2ZTogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAuLi4odXBkYXRlTXV0YXRpb25JbnB1dFR5cGVcbiAgICAgICAgICA/IHsgZGF0YTogeyB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudXBkYXRlTXV0YXRpb25JbnB1dFR5cGUgfSB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgbG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMubG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogdXBkYXRlUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICB9XG5cbiAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgZGVsZXRlJHtzaW5ndWxhck5hbWV9YF0gPSB7XG4gICAgICBhcmdzOiB7XG4gICAgICAgIGlkOiB7IHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChpZFR5cGUpIH0sXG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogZ2V0RGVsZXRlUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLnZlcnNpb25zKSB7XG4gICAgICBjb25zdCB2ZXJzaW9uSURUeXBlID0gcGF5bG9hZC5kYi5kZWZhdWx0SURUeXBlID09PSAndGV4dCcgPyBHcmFwaFFMU3RyaW5nIDogR3JhcGhRTEludFxuICAgICAgY29uc3QgdmVyc2lvbkNvbGxlY3Rpb25GaWVsZHM6IEZpZWxkW10gPSBbXG4gICAgICAgIC4uLmJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMoY29uZmlnKSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgICAgdHlwZTogcGF5bG9hZC5kYi5kZWZhdWx0SURUeXBlIGFzICd0ZXh0JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgICAgIGxhYmVsOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXG4gICAgICAgICAgbGFiZWw6ICdVcGRhdGVkIEF0JyxcbiAgICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgIH0sXG4gICAgICBdXG5cbiAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgIG5hbWU6IGAke3Npbmd1bGFyTmFtZX1WZXJzaW9uYCxcbiAgICAgICAgZmllbGRzOiB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyxcbiAgICAgICAgZm9yY2VOdWxsYWJsZTogZm9yY2VOdWxsYWJsZU9iamVjdFR5cGUsXG4gICAgICAgIHBhcmVudE5hbWU6IGAke3Npbmd1bGFyTmFtZX1WZXJzaW9uYCxcbiAgICAgICAgcGF5bG9hZCxcbiAgICAgIH0pXG5cbiAgICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2B2ZXJzaW9uJHtmb3JtYXROYW1lKHNpbmd1bGFyTmFtZSl9YF0gPSB7XG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBpZDogeyB0eXBlOiB2ZXJzaW9uSURUeXBlIH0sXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZTogZmluZFZlcnNpb25CeUlEUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgICAgIHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSxcbiAgICAgIH1cbiAgICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2B2ZXJzaW9ucyR7cGx1cmFsTmFtZX1gXSA9IHtcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICB0eXBlOiBidWlsZFdoZXJlSW5wdXRUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgZmllbGRzOiB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyxcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICBsaW1pdDogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgcGFnZTogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgc29ydDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IGZpbmRWZXJzaW9uc1Jlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBidWlsZFBhZ2luYXRlZExpc3RUeXBlKFxuICAgICAgICAgIGB2ZXJzaW9ucyR7Zm9ybWF0TmFtZShwbHVyYWxOYW1lKX1gLFxuICAgICAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSxcbiAgICAgICAgKSxcbiAgICAgIH1cbiAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2ByZXN0b3JlVmVyc2lvbiR7Zm9ybWF0TmFtZShzaW5ndWxhck5hbWUpfWBdID0ge1xuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogdmVyc2lvbklEVHlwZSB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiByZXN0b3JlVmVyc2lvblJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY29uZmlnLmF1dGgpIHtcbiAgICAgIGNvbnN0IGF1dGhGaWVsZHM6IEZpZWxkW10gPSBjb25maWcuYXV0aC5kaXNhYmxlTG9jYWxTdHJhdGVneVxuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnZW1haWwnLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgdHlwZTogJ2VtYWlsJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLkpXVCA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgIG5hbWU6IGZvcm1hdE5hbWUoYCR7c2x1Z31KV1RgKSxcbiAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgLi4uY29uZmlnLmZpZWxkcy5maWx0ZXIoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5zYXZlVG9KV1QpLFxuICAgICAgICAgIC4uLmF1dGhGaWVsZHMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgICAgcGFyZW50TmFtZTogZm9ybWF0TmFtZShgJHtzbHVnfUpXVGApLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSlcblxuICAgICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYG1lJHtzaW5ndWxhck5hbWV9YF0gPSB7XG4gICAgICAgIHJlc29sdmU6IG1lKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGZvcm1hdE5hbWUoYCR7c2x1Z31NZWApLFxuICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgY29sbGVjdGlvbjoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cDoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRva2VuOiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICB9XG5cbiAgICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2Bpbml0aWFsaXplZCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICByZXNvbHZlOiBpbml0KGNvbGxlY3Rpb24uY29uZmlnLnNsdWcpLFxuICAgICAgICB0eXBlOiBHcmFwaFFMQm9vbGVhbixcbiAgICAgIH1cblxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlZnJlc2hUb2tlbiR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgdG9rZW46IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiByZWZyZXNoKGNvbGxlY3Rpb24pLFxuICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGZvcm1hdE5hbWUoYCR7c2x1Z31SZWZyZXNoZWQke3Npbmd1bGFyTmFtZX1gKSxcbiAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgIGV4cDoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlZnJlc2hlZFRva2VuOiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwuSldULFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgIH1cblxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYGxvZ291dCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICByZXNvbHZlOiBsb2dvdXQoY29sbGVjdGlvbiksXG4gICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICB9XG5cbiAgICAgIGlmICghY29uZmlnLmF1dGguZGlzYWJsZUxvY2FsU3RyYXRlZ3kpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5hdXRoLm1heExvZ2luQXR0ZW1wdHMgPiAwKSB7XG4gICAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHVubG9jayR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgICBlbWFpbDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTFN0cmluZykgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlOiB1bmxvY2soY29sbGVjdGlvbiksXG4gICAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTEJvb2xlYW4pLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2Bsb2dpbiR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIGVtYWlsOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IGxvZ2luKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9TG9naW5SZXN1bHRgKSxcbiAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH1cblxuICAgICAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgZm9yZ290UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICBkaXNhYmxlRW1haWw6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIGVtYWlsOiB7IHR5cGU6IG5ldyBHcmFwaFFMTm9uTnVsbChHcmFwaFFMU3RyaW5nKSB9LFxuICAgICAgICAgICAgZXhwaXJhdGlvbjogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvbHZlOiBmb3Jnb3RQYXNzd29yZChjb2xsZWN0aW9uKSxcbiAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTEJvb2xlYW4pLFxuICAgICAgICB9XG5cbiAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlc2V0UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICBwYXNzd29yZDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgICAgICB0b2tlbjogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXNvbHZlOiByZXNldFBhc3N3b3JkKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9UmVzZXRQYXNzd29yZGApLFxuICAgICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICAgIHRva2VuOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICAgICAgdXNlcjogeyB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2B2ZXJpZnlFbWFpbCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIHRva2VuOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IHZlcmlmeUVtYWlsKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIHR5cGU6IEdyYXBoUUxCb29sZWFuLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0Q29sbGVjdGlvbnNHcmFwaFFMXG4iXSwibmFtZXMiOlsiaW5pdENvbGxlY3Rpb25zR3JhcGhRTCIsInBheWxvYWQiLCJPYmplY3QiLCJrZXlzIiwiY29sbGVjdGlvbnMiLCJmb3JFYWNoIiwic2x1ZyIsImNvbGxlY3Rpb24iLCJjb25maWciLCJmaWVsZHMiLCJncmFwaFFMIiwidmVyc2lvbnMiLCJzaW5ndWxhck5hbWUiLCJwbHVyYWxOYW1lIiwiZnJvbVNsdWciLCJmb3JtYXROYW1lcyIsInRvV29yZHMiLCJzaW5ndWxhciIsInBsdXJhbCIsImhhc0lERmllbGQiLCJmbGF0dGVuRmllbGRzIiwiZmluZEluZGV4IiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsImlkVHlwZSIsImdldENvbGxlY3Rpb25JRFR5cGUiLCJiYXNlRmllbGRzIiwid2hlcmVJbnB1dEZpZWxkcyIsImlkIiwidHlwZSIsInB1c2giLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJmb3JjZU51bGxhYmxlT2JqZWN0VHlwZSIsIkJvb2xlYW4iLCJkcmFmdHMiLCJidWlsZE9iamVjdFR5cGUiLCJmb3JjZU51bGxhYmxlIiwicGFyZW50TmFtZSIsInBhZ2luYXRlZFR5cGUiLCJidWlsZFBhZ2luYXRlZExpc3RUeXBlIiwid2hlcmVJbnB1dFR5cGUiLCJidWlsZFdoZXJlSW5wdXRUeXBlIiwiYXV0aCIsImRpc2FibGVMb2NhbFN0cmF0ZWd5IiwibGFiZWwiLCJyZXF1aXJlZCIsImNyZWF0ZU11dGF0aW9uSW5wdXRUeXBlIiwiYnVpbGRNdXRhdGlvbklucHV0VHlwZSIsIm11dGF0aW9uSW5wdXRUeXBlIiwiR3JhcGhRTE5vbk51bGwiLCJ1cGRhdGVNdXRhdGlvbklucHV0VHlwZSIsImZpbHRlciIsIlF1ZXJ5IiwiYXJncyIsImRyYWZ0IiwiR3JhcGhRTEJvb2xlYW4iLCJsb2NhbGl6YXRpb24iLCJmYWxsYmFja0xvY2FsZSIsInR5cGVzIiwiZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUiLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJyZXNvbHZlIiwiZmluZEJ5SURSZXNvbHZlciIsIndoZXJlIiwibGltaXQiLCJHcmFwaFFMSW50IiwicGFnZSIsInNvcnQiLCJHcmFwaFFMU3RyaW5nIiwiZmluZFJlc29sdmVyIiwiZG9jQWNjZXNzUmVzb2x2ZXIiLCJidWlsZFBvbGljeVR5cGUiLCJlbnRpdHkiLCJzY29wZSIsInR5cGVTdWZmaXgiLCJNdXRhdGlvbiIsImRhdGEiLCJjcmVhdGVSZXNvbHZlciIsImF1dG9zYXZlIiwidXBkYXRlUmVzb2x2ZXIiLCJnZXREZWxldGVSZXNvbHZlciIsInZlcnNpb25JRFR5cGUiLCJ2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyIsImJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJ2ZXJzaW9uVHlwZSIsImZvcm1hdE5hbWUiLCJmaW5kVmVyc2lvbkJ5SURSZXNvbHZlciIsImZpbmRWZXJzaW9uc1Jlc29sdmVyIiwicmVzdG9yZVZlcnNpb25SZXNvbHZlciIsImF1dGhGaWVsZHMiLCJKV1QiLCJzYXZlVG9KV1QiLCJtZSIsIkdyYXBoUUxPYmplY3RUeXBlIiwiZXhwIiwidG9rZW4iLCJ1c2VyIiwiaW5pdCIsInJlZnJlc2giLCJyZWZyZXNoZWRUb2tlbiIsImxvZ291dCIsIm1heExvZ2luQXR0ZW1wdHMiLCJlbWFpbCIsInVubG9jayIsInBhc3N3b3JkIiwibG9naW4iLCJkaXNhYmxlRW1haWwiLCJleHBpcmF0aW9uIiwiZm9yZ290UGFzc3dvcmQiLCJyZXNldFBhc3N3b3JkIiwidmVyaWZ5RW1haWwiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQzs7OzsrQkEwY3BDOzs7ZUFBQTs7O3lCQW5jTzt1RUFPb0I7NkRBQ1Y7OERBQ0M7K0RBQ0M7MkRBQ0o7Z0VBQ0s7c0VBQ007K0RBQ1A7b0VBQ0s7dUJBQ1M7Z0ZBRzFCO3dFQUNxQjsrRUFDTzttQ0FDSDs0RUFDQTttRUFDVDs4QkFDYzt1Q0FDUTsrREFDbEI7K0RBQ0c7MkJBQ0k7NkRBQ1Q7aUVBQ0k7d0VBQ087cUVBQ0g7dUVBQ0U7K0RBQ1I7OEVBQ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUxQixTQUFTQSx1QkFBdUJDLE9BQWdCO0lBQzlDQyxPQUFPQyxJQUFJLENBQUNGLFFBQVFHLFdBQVcsRUFBRUMsT0FBTyxDQUFDLENBQUNDO1FBQ3hDLE1BQU1DLGFBQXlCTixRQUFRRyxXQUFXLENBQUNFLEtBQUs7UUFDeEQsTUFBTSxFQUNKRSxNQUFNLEVBQ05BLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxVQUFVLENBQUMsQ0FBeUMsRUFBRUMsUUFBUSxFQUFFLEVBQ25GLEdBQUdKO1FBRUosSUFBSSxDQUFDRyxTQUFTO1FBRWQsSUFBSUU7UUFDSixJQUFJQztRQUNKLE1BQU1DLFdBQVdDLElBQUFBLHlCQUFXLEVBQUNSLFdBQVdDLE1BQU0sQ0FBQ0YsSUFBSTtRQUNuRCxJQUFJSSxRQUFRRSxZQUFZLEVBQUU7WUFDeEJBLGVBQWVJLElBQUFBLHFCQUFPLEVBQUNOLFFBQVFFLFlB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
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAMjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,iBAAiB,CAAA;AAsBxB,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE7E,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,CAAA;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,aAAa,CAAC,EACrE,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAC5D,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CA8T/C;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAMjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,OAAO,KAAK,EAIV,UAAU,EACX,MAAM,iBAAiB,CAAA;AAuBxB,MAAM,MAAM,gBAAgB,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE7E,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,gBAAgB,IAAI;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,UAAU,CAAA;IACtB,IAAI,EAAE,YAAY,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,WAAW,CAAC,CAAA;IACjE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,GAAG,EAAE,cAAc,CAAA;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,iBAAe,MAAM,CAAC,KAAK,SAAS,MAAM,cAAc,CAAC,aAAa,CAAC,EACrE,YAAY,EAAE,SAAS,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAC5D,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,CA8T/C;AAED,eAAe,MAAM,CAAA"}