payload 2.30.4 → 2.31.0

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 (56) hide show
  1. package/dist/admin/components/elements/DocumentFields/index.d.ts +1 -0
  2. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -1
  3. package/dist/admin/components/elements/DocumentFields/index.js +7 -5
  4. package/dist/admin/components/elements/FieldSelect/index.d.ts +1 -0
  5. package/dist/admin/components/elements/FieldSelect/index.d.ts.map +1 -1
  6. package/dist/admin/components/elements/FieldSelect/index.js +12 -4
  7. package/dist/admin/components/elements/WhereBuilder/index.d.ts +7 -0
  8. package/dist/admin/components/elements/WhereBuilder/index.d.ts.map +1 -1
  9. package/dist/admin/components/elements/WhereBuilder/index.js +45 -10
  10. package/dist/admin/components/forms/RenderFields/index.js +3 -3
  11. package/dist/admin/components/forms/RenderFields/types.d.ts +1 -0
  12. package/dist/admin/components/forms/RenderFields/types.d.ts.map +1 -1
  13. package/dist/admin/components/forms/field-types/Array/index.d.ts.map +1 -1
  14. package/dist/admin/components/forms/field-types/Array/index.js +3 -2
  15. package/dist/admin/components/forms/field-types/Array/types.d.ts +1 -0
  16. package/dist/admin/components/forms/field-types/Array/types.d.ts.map +1 -1
  17. package/dist/admin/components/forms/field-types/Blocks/index.d.ts.map +1 -1
  18. package/dist/admin/components/forms/field-types/Blocks/index.js +11 -10
  19. package/dist/admin/components/forms/field-types/Blocks/types.d.ts +1 -0
  20. package/dist/admin/components/forms/field-types/Blocks/types.d.ts.map +1 -1
  21. package/dist/admin/components/forms/field-types/Group/index.d.ts.map +1 -1
  22. package/dist/admin/components/forms/field-types/Group/index.js +3 -2
  23. package/dist/admin/components/forms/field-types/Group/types.d.ts +1 -0
  24. package/dist/admin/components/forms/field-types/Group/types.d.ts.map +1 -1
  25. package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
  26. package/dist/admin/components/forms/field-types/Row/index.js +3 -2
  27. package/dist/admin/components/forms/field-types/Row/types.d.ts +1 -0
  28. package/dist/admin/components/forms/field-types/Row/types.d.ts.map +1 -1
  29. package/dist/admin/components/forms/field-types/Tabs/index.d.ts.map +1 -1
  30. package/dist/admin/components/forms/field-types/Tabs/index.js +3 -2
  31. package/dist/admin/components/forms/field-types/Tabs/types.d.ts +1 -0
  32. package/dist/admin/components/forms/field-types/Tabs/types.d.ts.map +1 -1
  33. package/dist/admin/components/utilities/Config/index.js +2 -2
  34. package/dist/admin/components/views/Global/Default/index.d.ts.map +1 -1
  35. package/dist/admin/components/views/Global/Default/index.js +3 -2
  36. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  37. package/dist/admin/components/views/LivePreview/index.js +2 -1
  38. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  39. package/dist/admin/components/views/collections/Edit/Default/index.js +3 -2
  40. package/dist/collections/config/schema.d.ts.map +1 -1
  41. package/dist/collections/config/schema.js +2 -1
  42. package/dist/collections/config/types.d.ts +5 -0
  43. package/dist/collections/config/types.d.ts.map +1 -1
  44. package/dist/collections/config/types.js +1 -1
  45. package/dist/collections/operations/update.d.ts.map +1 -1
  46. package/dist/collections/operations/update.js +2 -1
  47. package/dist/globals/config/schema.d.ts.map +1 -1
  48. package/dist/globals/config/schema.js +2 -1
  49. package/dist/globals/config/types.d.ts +5 -0
  50. package/dist/globals/config/types.d.ts.map +1 -1
  51. package/dist/graphql/schema/buildObjectType.js +2 -2
  52. package/dist/translations/index.d.ts +386 -0
  53. package/dist/translations/index.d.ts.map +1 -1
  54. package/dist/translations/index.js +3 -1
  55. package/dist/translations/sl.json +386 -0
  56. package/package.json +1 -1
@@ -87,6 +87,7 @@ async function update(incomingArgs) {
87
87
  });
88
88
  const query = await payload.db.queryDrafts({
89
89
  collection: collectionConfig.slug,
90
+ limit: 0,
90
91
  locale,
91
92
  req,
92
93
  where: versionsWhere
@@ -340,4 +341,4 @@ async function update(incomingArgs) {
340
341
  }
341
342
  const _default = update;
342
343
 
343
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZXBQYXJ0aWFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IGh0dHBTdGF0dXMgZnJvbSAnaHR0cC1zdGF0dXMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8nXG5pbXBvcnQgdHlwZSB7IEFjY2Vzc1Jlc3VsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWxrT3BlcmF0aW9uUmVzdWx0LCBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVVcGRhdGVUeXBlIH0gZnJvbSAnLi9jcmVhdGUnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyB2YWxpZGF0ZVF1ZXJ5UGF0aHMgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS9xdWVyeVZhbGlkYXRpb24vdmFsaWRhdGVRdWVyeVBhdGhzJ1xuaW1wb3J0IHsgQVBJRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBhZnRlckNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlckNoYW5nZSdcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBiZWZvcmVDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlJ1xuaW1wb3J0IHsgYmVmb3JlVmFsaWRhdGUgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUnXG5pbXBvcnQgeyBkZWxldGVBc3NvY2lhdGVkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL2RlbGV0ZUFzc29jaWF0ZWRGaWxlcydcbmltcG9ydCB7IGdlbmVyYXRlRmlsZURhdGEgfSBmcm9tICcuLi8uLi91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEnXG5pbXBvcnQgeyB1bmxpbmtUZW1wRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VubGlua1RlbXBGaWxlcydcbmltcG9ydCB7IHVwbG9hZEZpbGVzIH0gZnJvbSAnLi4vLi4vdXBsb2Fkcy91cGxvYWRGaWxlcydcbmltcG9ydCB7IGNvbW1pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvYnVpbGRDb2xsZWN0aW9uRmllbGRzJ1xuaW1wb3J0IHsgYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkgfSBmcm9tICcuLi8uLi92ZXJzaW9ucy9kcmFmdHMvYXBwZW5kVmVyc2lvblRvUXVlcnlLZXknXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgQ3JlYXRlVXBkYXRlVHlwZT4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgZGF0YTogRGVlcFBhcnRpYWw8VD5cbiAgZGVwdGg/OiBudW1iZXJcbiAgZGlzYWJsZVZlcmlmaWNhdGlvbkVtYWlsPzogYm9vbGVhblxuICBkcmFmdD86IGJvb2xlYW5cbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbiAgd2hlcmU6IFdoZXJlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZTxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUU2x1Zz4+IHtcbiAgbGV0IGFyZ3MgPSBpbmNvbWluZ0FyZ3NcblxuICB0cnkge1xuICAgIGNvbnN0IHNob3VsZENvbW1pdCA9IGF3YWl0IGluaXRUcmFuc2FjdGlvbihhcmdzLnJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVPcGVyYXRpb24gLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgYXJncy5jb2xsZWN0aW9uLmNvbmZpZy5ob29rcy5iZWZvcmVPcGVyYXRpb24ucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBhcmdzID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgY29sbGVjdGlvbjogYXJncy5jb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiBhcmdzLnJlcS5jb250ZXh0LFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgcmVxOiBhcmdzLnJlcSxcbiAgICAgICAgfSkpIHx8IGFyZ3NcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIGNvbnN0IHtcbiAgICAgIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZGVwdGgsXG4gICAgICBkcmFmdDogZHJhZnRBcmcgPSBmYWxzZSxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IGZhbHNlLFxuICAgICAgcmVxOiB7XG4gICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHBheWxvYWQ6IHsgY29uZmlnIH0sXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHQsXG4gICAgICB9LFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgIHdoZXJlLFxuICAgIH0gPSBhcmdzXG5cbiAgICBpZiAoIXdoZXJlKSB7XG4gICAgICB0aHJvdyBuZXcgQVBJRXJyb3IoXCJNaXNzaW5nICd3aGVyZScgcXVlcnkgb2YgZG9jdW1lbnRzIHRvIHVwZGF0ZS5cIiwgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBjb25zdCB7IGRhdGE6IGJ1bGtVcGRhdGVEYXRhIH0gPSBhcmdzXG4gICAgY29uc3Qgc2hvdWxkU2F2ZURyYWZ0ID0gQm9vbGVhbihkcmFmdEFyZyAmJiBjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zLmRyYWZ0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcbiAgICBpZiAoIW92ZXJyaWRlQWNjZXNzKSB7XG4gICAgICBhY2Nlc3NSZXN1bHQgPSBhd2FpdCBleGVjdXRlQWNjZXNzKHsgcmVxIH0sIGNvbGxlY3Rpb25Db25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICB9XG5cbiAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBmdWxsV2hlcmUgPSBjb21iaW5lUXVlcmllcyh3aGVyZSwgYWNjZXNzUmVzdWx0KVxuXG4gICAgbGV0IGRvY3NcblxuICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zPy5kcmFmdHMgJiYgc2hvdWxkU2F2ZURyYWZ0KSB7XG4gICAgICBjb25zdCB2ZXJzaW9uc1doZXJlID0gYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkoZnVsbFdoZXJlKVxuXG4gICAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgICBjb2xsZWN0aW9uQ29uZmlnOiBjb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgdmVyc2lvbkZpZWxkczogYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb2xsZWN0aW9uLmNvbmZpZyksXG4gICAgICAgIHdoZXJlOiB2ZXJzaW9uc1doZXJlLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBwYXlsb2FkLmRiLnF1ZXJ5RHJhZnRzPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aGVyZTogdmVyc2lvbnNXaGVyZSxcbiAgICAgIH0pXG5cbiAgICAgIGRvY3MgPSBxdWVyeS5kb2NzXG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGRiQXJncyA9IHtcbiAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICBsaW1pdDogMCxcbiAgICAgICAgbG9jYWxlLFxuICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgcmVxLFxuICAgICAgICB3aGVyZTogZnVsbFdoZXJlLFxuICAgICAgfVxuXG4gICAgICBsZXQgcXVlcnlcbiAgICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnPy5kYj8uZmluZCkge1xuICAgICAgICBxdWVyeSA9IGF3YWl0IGNvbGxlY3Rpb25Db25maWcuZGIuZmluZChkYkFyZ3MpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBxdWVyeSA9IGF3YWl0IHBheWxvYWQuZGIuZmluZChkYkFyZ3MpXG4gICAgICB9XG5cbiAgICAgIGRvY3MgPSBxdWVyeS5kb2NzXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIEdlbmVyYXRlIGRhdGEgZm9yIGFsbCBmaWxlcyBhbmQgc2l6ZXNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCB7IGRhdGE6IG5ld0ZpbGVEYXRhLCBmaWxlczogZmlsZXNUb1VwbG9hZCB9ID0gYXdhaXQgZ2VuZXJhdGVGaWxlRGF0YSh7XG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgY29uZmlnLFxuICAgICAgZGF0YTogYnVsa1VwZGF0ZURhdGEsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyxcbiAgICAgIHJlcSxcbiAgICAgIHRocm93T25NaXNzaW5nRmlsZTogZmFsc2UsXG4gICAgfSlcblxuICAgIGNvbnN0IGVycm9ycyA9IFtdXG5cbiAgICBjb25zdCBwcm9taXNlcyA9IGRvY3MubWFwKGFzeW5jIChkb2MpID0+IHtcbiAgICAgIGNvbnN0IHsgaWQgfSA9IGRvY1xuICAgICAgbGV0IGRhdGEgPSB7XG4gICAgICAgIC4uLm5ld0ZpbGVEYXRhLFxuICAgICAgICAuLi5idWxrVXBkYXRlRGF0YSxcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgb3JpZ2luYWxEb2MgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIGRyYWZ0OiBkcmFmdEFyZyxcbiAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICBnbG9iYWw6IG51bGwsXG4gICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzOiB0cnVlLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBzaG93SGlkZGVuRmllbGRzOiB0cnVlLFxuICAgICAgICB9KVxuXG4gICAgICAgIGF3YWl0IGRlbGV0ZUFzc29jaWF0ZWRGaWxlcyh7XG4gICAgICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgZG9jLFxuICAgICAgICAgIGZpbGVzOiBmaWxlc1RvVXBsb2FkLFxuICAgICAgICAgIG92ZXJyaWRlRGVsZXRlOiBmYWxzZSxcbiAgICAgICAgICB0LFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYmVmb3JlVmFsaWRhdGUgLSBGaWVsZHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGRhdGEgPSBhd2FpdCBiZWZvcmVWYWxpZGF0ZTxEZWVwUGFydGlhbDxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+Pih7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYmVmb3JlVmFsaWRhdGUgLSBDb2xsZWN0aW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmJlZm9yZVZhbGlkYXRlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICBkYXRhID1cbiAgICAgICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgZGF0YVxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIFdyaXRlIGZpbGVzIHRvIGxvY2FsIHN0b3JhZ2VcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGlmICghY29sbGVjdGlvbkNvbmZpZy51cGxvYWQuZGlzYWJsZUxvY2FsU3RvcmFnZSkge1xuICAgICAgICAgIGF3YWl0IHVwbG9hZEZpbGVzKHBheWxvYWQsIGZpbGVzVG9VcGxvYWQsIHQpXG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGJlZm9yZUNoYW5nZSAtIENvbGxlY3Rpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYmVmb3JlQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICBkYXRhID1cbiAgICAgICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICAgIG9yaWdpbmFsRG9jLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgZGF0YVxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGJlZm9yZUNoYW5nZSAtIEZpZWxkc1xuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGJlZm9yZUNoYW5nZTxHZW5lcmF0ZWRUeXBlc1snY29sbGVjdGlvbnMnXVtUU2x1Z10+KHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgZG9jOiBvcmlnaW5hbERvYyxcbiAgICAgICAgICBkb2NXaXRoTG9jYWxlczogZG9jLFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBza2lwVmFsaWRhdGlvbjpcbiAgICAgICAgICAgIHNob3VsZFNhdmVEcmFmdCAmJlxuICAgICAgICAgICAgY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucy5kcmFmdHMgJiZcbiAgICAgICAgICAgICFjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zLmRyYWZ0cy52YWxpZGF0ZSAmJlxuICAgICAgICAgICAgZGF0YS5fc3RhdHVzICE9PSAncHVibGlzaGVkJyxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIFVwZGF0ZVxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgaWYgKCFzaG91bGRTYXZlRHJhZnQgfHwgZGF0YS5fc3RhdHVzID09PSAncHVibGlzaGVkJykge1xuICAgICAgICAgIGNvbnN0IGRiQXJncyA9IHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZy5zbHVnLFxuICAgICAgICAgICAgZGF0YTogcmVzdWx0LFxuICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoY29sbGVjdGlvbkNvbmZpZz8uZGI/LnVwZGF0ZU9uZSkge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5kYi51cGRhdGVPbmUoZGJBcmdzKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHQgPSBhd2FpdCByZXEucGF5bG9hZC5kYi51cGRhdGVPbmUoZGJBcmdzKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gQ3JlYXRlIHZlcnNpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zKSB7XG4gICAgICAgICAgcmVzdWx0ID0gYXdhaXQgc2F2ZVZlcnNpb24oe1xuICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgZG9jV2l0aExvY2FsZXM6IHtcbiAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICBjcmVhdGVkQXQ6IGRvYy5jcmVhdGVkQXQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlclJlYWQgLSBGaWVsZHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGFmdGVyUmVhZCh7XG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkZXB0aCxcbiAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICBkcmFmdDogZHJhZnRBcmcsXG4gICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IG51bGwsXG4gICAgICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGFmdGVyUmVhZCAtIENvbGxlY3Rpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYWZ0ZXJSZWFkLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIH0pKSB8fCByZXN1bHRcbiAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlckNoYW5nZSAtIEZpZWxkc1xuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgYWZ0ZXJDaGFuZ2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPih7XG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIHByZXZpb3VzRG9jOiBvcmlnaW5hbERvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlckNoYW5nZSAtIENvbGxlY3Rpb25cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGF3YWl0IGNvbGxlY3Rpb25Db25maWcuaG9va3MuYWZ0ZXJDaGFuZ2UucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICAgIHJlc3VsdCA9XG4gICAgICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgcHJldmlvdXNEb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgIGF3YWl0IHVubGlua1RlbXBGaWxlcyh7XG4gICAgICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gUmV0dXJuIHJlc3VsdHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIHJldHVybiByZXN1bHRcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBtZXNzYWdlOiBlcnJvci5tZXNzYWdlLFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9KVxuXG4gICAgY29uc3QgYXdhaXRlZERvY3MgPSBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcblxuICAgIGxldCByZXN1bHQgPSB7XG4gICAgICBkb2NzOiBhd2FpdGVkRG9jcy5maWx0ZXIoQm9vbGVhbiksXG4gICAgICBlcnJvcnMsXG4gICAgfVxuXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgIC8vIGFmdGVyT3BlcmF0aW9uIC0gQ29sbGVjdGlvblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgIHJlc3VsdCA9IGF3YWl0IGJ1aWxkQWZ0ZXJPcGVyYXRpb248R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPih7XG4gICAgICBhcmdzLFxuICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICByZXN1bHQsXG4gICAgfSlcblxuICAgIGlmIChzaG91bGRDb21taXQpIGF3YWl0IGNvbW1pdFRyYW5zYWN0aW9uKHJlcSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBhd2FpdCBraWxsVHJhbnNhY3Rpb24oYXJncy5yZXEpXG4gICAgdGhyb3cgZXJyb3JcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCB1cGRhdGVcbiJdLCJuYW1lcyI6WyJ1cGRhdGUiLCJpbmNvbWluZ0FyZ3MiLCJhcmdzIiwic2hvdWxkQ29tbWl0IiwiaW5pdFRyYW5zYWN0aW9uIiwicmVxIiwiY29sbGVjdGlvbiIsImNvbmZpZyIsImhvb2tzIiwiYmVmb3JlT3BlcmF0aW9uIiwicmVkdWNlIiwicHJpb3JIb29rIiwiaG9vayIsImNvbnRleHQiLCJvcGVyYXRpb24iLCJQcm9taXNlIiwicmVzb2x2ZSIsImNvbGxlY3Rpb25Db25maWciLCJkZXB0aCIsImRyYWZ0IiwiZHJhZnRBcmciLCJvdmVycmlkZUFjY2VzcyIsIm92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMiLCJmYWxsYmFja0xvY2FsZSIsImxvY2FsZSIsInBheWxvYWQiLCJ0Iiwic2hvd0hpZGRlbkZpZWxkcyIsIndoZXJlIiwiQVBJRXJyb3IiLCJodHRwU3RhdHVzIiwiQkFEX1JFUVVFU1QiLCJkYXRhIiwiYnVsa1VwZGF0ZURhdGEiLCJzaG91bGRTYXZlRHJhZnQiLCJCb29sZWFuIiwidmVyc2lvbnMiLCJkcmFmdHMiLCJhY2Nlc3NSZXN1bHQiLCJleGVjdXRlQWNjZXNzIiwiYWNjZXNzIiwidmFsaWRhdGVRdWVyeVBhdGhzIiwiZnVsbFdoZXJlIiwiY29tYmluZVF1ZXJpZXMiLCJkb2NzIiwidmVyc2lvbnNXaGVyZSIsImFwcGVuZFZlcnNpb25Ub1F1ZXJ5S2V5IiwidmVyc2lvbkZpZWxkcyIsImJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJxdWVyeSIsImRiIiwicXVlcnlEcmFmdHMiLCJzbHVnIiwiZGJBcmdzIiwibGltaXQiLCJwYWdpbmF0aW9uIiwiZmluZCIsIm5ld0ZpbGVEYXRhIiwiZmlsZXMiLCJmaWxlc1RvVXBsb2FkIiwiZ2VuZXJhdGVGaWxlRGF0YSIsInRocm93T25NaXNzaW5nRmlsZSIsImVycm9ycyIsInByb21pc2VzIiwibWFwIiwiZG9jIiwiaWQiLCJvcmlnaW5hbERvYyIsImFmdGVyUmVhZCIsImdsb2JhbCIsImRlbGV0ZUFzc29jaWF0ZWRGaWxlcyIsIm92ZXJyaWRlRGVsZXRlIiwiYmVmb3JlVmFsaWRhdGUiLCJ1cGxvYWQiLCJkaXNhYmxlTG9jYWxTdG9yYWdlIiwidXBsb2FkRmlsZXMiLCJiZWZvcmVDaGFuZ2UiLCJyZXN1bHQiLCJkb2NXaXRoTG9jYWxlcyIsInNraXBWYWxpZGF0aW9uIiwidmFsaWRhdGUiLCJfc3RhdHVzIiwidXBkYXRlT25lIiwic2F2ZVZlcnNpb24iLCJjcmVhdGVkQXQiLCJhZnRlckNoYW5nZSIsInByZXZpb3VzRG9jIiwidW5saW5rVGVtcEZpbGVzIiwiZXJyb3IiLCJwdXNoIiwibWVzc2FnZSIsImF3YWl0ZWREb2NzIiwiYWxsIiwiZmlsdGVyIiwiYnVpbGRBZnRlck9wZXJhdGlvbiIsImNvbW1pdFRyYW5zYWN0aW9uIiwia2lsbFRyYW5zYWN0aW9uIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
344
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9vcGVyYXRpb25zL3VwZGF0ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERlZXBQYXJ0aWFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IGh0dHBTdGF0dXMgZnJvbSAnaHR0cC1zdGF0dXMnXG5cbmltcG9ydCB0eXBlIHsgR2VuZXJhdGVkVHlwZXMgfSBmcm9tICcuLi8uLi8nXG5pbXBvcnQgdHlwZSB7IEFjY2Vzc1Jlc3VsdCB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWxrT3BlcmF0aW9uUmVzdWx0LCBDb2xsZWN0aW9uIH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDcmVhdGVVcGRhdGVUeXBlIH0gZnJvbSAnLi9jcmVhdGUnXG5cbmltcG9ydCBleGVjdXRlQWNjZXNzIGZyb20gJy4uLy4uL2F1dGgvZXhlY3V0ZUFjY2VzcydcbmltcG9ydCB7IGNvbWJpbmVRdWVyaWVzIH0gZnJvbSAnLi4vLi4vZGF0YWJhc2UvY29tYmluZVF1ZXJpZXMnXG5pbXBvcnQgeyB2YWxpZGF0ZVF1ZXJ5UGF0aHMgfSBmcm9tICcuLi8uLi9kYXRhYmFzZS9xdWVyeVZhbGlkYXRpb24vdmFsaWRhdGVRdWVyeVBhdGhzJ1xuaW1wb3J0IHsgQVBJRXJyb3IgfSBmcm9tICcuLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBhZnRlckNoYW5nZSB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlckNoYW5nZSdcbmltcG9ydCB7IGFmdGVyUmVhZCB9IGZyb20gJy4uLy4uL2ZpZWxkcy9ob29rcy9hZnRlclJlYWQnXG5pbXBvcnQgeyBiZWZvcmVDaGFuZ2UgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlJ1xuaW1wb3J0IHsgYmVmb3JlVmFsaWRhdGUgfSBmcm9tICcuLi8uLi9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUnXG5pbXBvcnQgeyBkZWxldGVBc3NvY2lhdGVkRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL2RlbGV0ZUFzc29jaWF0ZWRGaWxlcydcbmltcG9ydCB7IGdlbmVyYXRlRmlsZURhdGEgfSBmcm9tICcuLi8uLi91cGxvYWRzL2dlbmVyYXRlRmlsZURhdGEnXG5pbXBvcnQgeyB1bmxpbmtUZW1wRmlsZXMgfSBmcm9tICcuLi8uLi91cGxvYWRzL3VubGlua1RlbXBGaWxlcydcbmltcG9ydCB7IHVwbG9hZEZpbGVzIH0gZnJvbSAnLi4vLi4vdXBsb2Fkcy91cGxvYWRGaWxlcydcbmltcG9ydCB7IGNvbW1pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgaW5pdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2luaXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IGtpbGxUcmFuc2FjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9raWxsVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vLi4vdmVyc2lvbnMvYnVpbGRDb2xsZWN0aW9uRmllbGRzJ1xuaW1wb3J0IHsgYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkgfSBmcm9tICcuLi8uLi92ZXJzaW9ucy9kcmFmdHMvYXBwZW5kVmVyc2lvblRvUXVlcnlLZXknXG5pbXBvcnQgeyBzYXZlVmVyc2lvbiB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL3NhdmVWZXJzaW9uJ1xuaW1wb3J0IHsgYnVpbGRBZnRlck9wZXJhdGlvbiB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCB0eXBlIEFyZ3VtZW50czxUIGV4dGVuZHMgQ3JlYXRlVXBkYXRlVHlwZT4gPSB7XG4gIGNvbGxlY3Rpb246IENvbGxlY3Rpb25cbiAgZGF0YTogRGVlcFBhcnRpYWw8VD5cbiAgZGVwdGg/OiBudW1iZXJcbiAgZGlzYWJsZVZlcmlmaWNhdGlvbkVtYWlsPzogYm9vbGVhblxuICBkcmFmdD86IGJvb2xlYW5cbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXM/OiBib29sZWFuXG4gIHJlcTogUGF5bG9hZFJlcXVlc3RcbiAgc2hvd0hpZGRlbkZpZWxkcz86IGJvb2xlYW5cbiAgd2hlcmU6IFdoZXJlXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHVwZGF0ZTxUU2x1ZyBleHRlbmRzIGtleW9mIEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddPihcbiAgaW5jb21pbmdBcmdzOiBBcmd1bWVudHM8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPixcbik6IFByb21pc2U8QnVsa09wZXJhdGlvblJlc3VsdDxUU2x1Zz4+IHtcbiAgbGV0IGFyZ3MgPSBpbmNvbWluZ0FyZ3NcblxuICB0cnkge1xuICAgIGNvbnN0IHNob3VsZENvbW1pdCA9IGF3YWl0IGluaXRUcmFuc2FjdGlvbihhcmdzLnJlcSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBiZWZvcmVPcGVyYXRpb24gLSBDb2xsZWN0aW9uXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgYXdhaXQgYXJncy5jb2xsZWN0aW9uLmNvbmZpZy5ob29rcy5iZWZvcmVPcGVyYXRpb24ucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGhvb2spID0+IHtcbiAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICBhcmdzID1cbiAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgIGFyZ3MsXG4gICAgICAgICAgY29sbGVjdGlvbjogYXJncy5jb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiBhcmdzLnJlcS5jb250ZXh0LFxuICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgcmVxOiBhcmdzLnJlcSxcbiAgICAgICAgfSkpIHx8IGFyZ3NcbiAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgIGNvbnN0IHtcbiAgICAgIGNvbGxlY3Rpb246IHsgY29uZmlnOiBjb2xsZWN0aW9uQ29uZmlnIH0sXG4gICAgICBjb2xsZWN0aW9uLFxuICAgICAgZGVwdGgsXG4gICAgICBkcmFmdDogZHJhZnRBcmcgPSBmYWxzZSxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgb3ZlcndyaXRlRXhpc3RpbmdGaWxlcyA9IGZhbHNlLFxuICAgICAgcmVxOiB7XG4gICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHBheWxvYWQ6IHsgY29uZmlnIH0sXG4gICAgICAgIHBheWxvYWQsXG4gICAgICAgIHQsXG4gICAgICB9LFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkcyxcbiAgICAgIHdoZXJlLFxuICAgIH0gPSBhcmdzXG5cbiAgICBpZiAoIXdoZXJlKSB7XG4gICAgICB0aHJvdyBuZXcgQVBJRXJyb3IoXCJNaXNzaW5nICd3aGVyZScgcXVlcnkgb2YgZG9jdW1lbnRzIHRvIHVwZGF0ZS5cIiwgaHR0cFN0YXR1cy5CQURfUkVRVUVTVClcbiAgICB9XG5cbiAgICBjb25zdCB7IGRhdGE6IGJ1bGtVcGRhdGVEYXRhIH0gPSBhcmdzXG4gICAgY29uc3Qgc2hvdWxkU2F2ZURyYWZ0ID0gQm9vbGVhbihkcmFmdEFyZyAmJiBjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zLmRyYWZ0cylcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBBY2Nlc3NcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBsZXQgYWNjZXNzUmVzdWx0OiBBY2Nlc3NSZXN1bHRcbiAgICBpZiAoIW92ZXJyaWRlQWNjZXNzKSB7XG4gICAgICBhY2Nlc3NSZXN1bHQgPSBhd2FpdCBleGVjdXRlQWNjZXNzKHsgcmVxIH0sIGNvbGxlY3Rpb25Db25maWcuYWNjZXNzLnVwZGF0ZSlcbiAgICB9XG5cbiAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgcmVxLFxuICAgICAgd2hlcmUsXG4gICAgfSlcblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBSZXRyaWV2ZSBkb2N1bWVudHNcbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICBjb25zdCBmdWxsV2hlcmUgPSBjb21iaW5lUXVlcmllcyh3aGVyZSwgYWNjZXNzUmVzdWx0KVxuXG4gICAgbGV0IGRvY3NcblxuICAgIGlmIChjb2xsZWN0aW9uQ29uZmlnLnZlcnNpb25zPy5kcmFmdHMgJiYgc2hvdWxkU2F2ZURyYWZ0KSB7XG4gICAgICBjb25zdCB2ZXJzaW9uc1doZXJlID0gYXBwZW5kVmVyc2lvblRvUXVlcnlLZXkoZnVsbFdoZXJlKVxuXG4gICAgICBhd2FpdCB2YWxpZGF0ZVF1ZXJ5UGF0aHMoe1xuICAgICAgICBjb2xsZWN0aW9uQ29uZmlnOiBjb2xsZWN0aW9uLmNvbmZpZyxcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgdmVyc2lvbkZpZWxkczogYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb2xsZWN0aW9uLmNvbmZpZyksXG4gICAgICAgIHdoZXJlOiB2ZXJzaW9uc1doZXJlLFxuICAgICAgfSlcblxuICAgICAgY29uc3QgcXVlcnkgPSBhd2FpdCBwYXlsb2FkLmRiLnF1ZXJ5RHJhZnRzPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLnNsdWcsXG4gICAgICAgIGxpbWl0OiAwLFxuICAgICAgICBsb2NhbGUsXG4gICAgICAgIHJlcSxcbiAgICAgICAgd2hlcmU6IHZlcnNpb25zV2hlcmUsXG4gICAgICB9KVxuXG4gICAgICBkb2NzID0gcXVlcnkuZG9jc1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBkYkFyZ3MgPSB7XG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgIGxvY2FsZSxcbiAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgIHJlcSxcbiAgICAgICAgd2hlcmU6IGZ1bGxXaGVyZSxcbiAgICAgIH1cblxuICAgICAgbGV0IHF1ZXJ5XG4gICAgICBpZiAoY29sbGVjdGlvbkNvbmZpZz8uZGI/LmZpbmQpIHtcbiAgICAgICAgcXVlcnkgPSBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmRiLmZpbmQoZGJBcmdzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcXVlcnkgPSBhd2FpdCBwYXlsb2FkLmRiLmZpbmQoZGJBcmdzKVxuICAgICAgfVxuXG4gICAgICBkb2NzID0gcXVlcnkuZG9jc1xuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBHZW5lcmF0ZSBkYXRhIGZvciBhbGwgZmlsZXMgYW5kIHNpemVzXG4gICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgY29uc3QgeyBkYXRhOiBuZXdGaWxlRGF0YSwgZmlsZXM6IGZpbGVzVG9VcGxvYWQgfSA9IGF3YWl0IGdlbmVyYXRlRmlsZURhdGEoe1xuICAgICAgY29sbGVjdGlvbixcbiAgICAgIGNvbmZpZyxcbiAgICAgIGRhdGE6IGJ1bGtVcGRhdGVEYXRhLFxuICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgIG92ZXJ3cml0ZUV4aXN0aW5nRmlsZXMsXG4gICAgICByZXEsXG4gICAgICB0aHJvd09uTWlzc2luZ0ZpbGU6IGZhbHNlLFxuICAgIH0pXG5cbiAgICBjb25zdCBlcnJvcnMgPSBbXVxuXG4gICAgY29uc3QgcHJvbWlzZXMgPSBkb2NzLm1hcChhc3luYyAoZG9jKSA9PiB7XG4gICAgICBjb25zdCB7IGlkIH0gPSBkb2NcbiAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICAuLi5uZXdGaWxlRGF0YSxcbiAgICAgICAgLi4uYnVsa1VwZGF0ZURhdGEsXG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsRG9jID0gYXdhaXQgYWZ0ZXJSZWFkKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgIGRvYyxcbiAgICAgICAgICBkcmFmdDogZHJhZnRBcmcsXG4gICAgICAgICAgZmFsbGJhY2tMb2NhbGUsXG4gICAgICAgICAgZ2xvYmFsOiBudWxsLFxuICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICBvdmVycmlkZUFjY2VzczogdHJ1ZSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2hvd0hpZGRlbkZpZWxkczogdHJ1ZSxcbiAgICAgICAgfSlcblxuICAgICAgICBhd2FpdCBkZWxldGVBc3NvY2lhdGVkRmlsZXMoe1xuICAgICAgICAgIGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIGRvYyxcbiAgICAgICAgICBmaWxlczogZmlsZXNUb1VwbG9hZCxcbiAgICAgICAgICBvdmVycmlkZURlbGV0ZTogZmFsc2UsXG4gICAgICAgICAgdCxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gRmllbGRzXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBkYXRhID0gYXdhaXQgYmVmb3JlVmFsaWRhdGU8RGVlcFBhcnRpYWw8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPj4oe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBkb2M6IG9yaWdpbmFsRG9jLFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIGJlZm9yZVZhbGlkYXRlIC0gQ29sbGVjdGlvblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICAgICAgYXdhaXQgY29sbGVjdGlvbkNvbmZpZy5ob29rcy5iZWZvcmVWYWxpZGF0ZS5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgICAgZGF0YSA9XG4gICAgICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgICAgICBvcmlnaW5hbERvYyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgfSkpIHx8IGRhdGFcbiAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBXcml0ZSBmaWxlcyB0byBsb2NhbCBzdG9yYWdlXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBpZiAoIWNvbGxlY3Rpb25Db25maWcudXBsb2FkLmRpc2FibGVMb2NhbFN0b3JhZ2UpIHtcbiAgICAgICAgICBhd2FpdCB1cGxvYWRGaWxlcyhwYXlsb2FkLCBmaWxlc1RvVXBsb2FkLCB0KVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBiZWZvcmVDaGFuZ2UgLSBDb2xsZWN0aW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmJlZm9yZUNoYW5nZS5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgICAgZGF0YSA9XG4gICAgICAgICAgICAoYXdhaXQgaG9vayh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgICAgIGNvbnRleHQ6IHJlcS5jb250ZXh0LFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgICAgICAgICBvcmlnaW5hbERvYyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgfSkpIHx8IGRhdGFcbiAgICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBiZWZvcmVDaGFuZ2UgLSBGaWVsZHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBiZWZvcmVDaGFuZ2U8R2VuZXJhdGVkVHlwZXNbJ2NvbGxlY3Rpb25zJ11bVFNsdWddPih7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGRvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgZG9jV2l0aExvY2FsZXM6IGRvYyxcbiAgICAgICAgICBnbG9iYWw6IG51bGwsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2tpcFZhbGlkYXRpb246XG4gICAgICAgICAgICBzaG91bGRTYXZlRHJhZnQgJiZcbiAgICAgICAgICAgIGNvbGxlY3Rpb25Db25maWcudmVyc2lvbnMuZHJhZnRzICYmXG4gICAgICAgICAgICAhY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucy5kcmFmdHMudmFsaWRhdGUgJiZcbiAgICAgICAgICAgIGRhdGEuX3N0YXR1cyAhPT0gJ3B1Ymxpc2hlZCcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBVcGRhdGVcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIGlmICghc2hvdWxkU2F2ZURyYWZ0IHx8IGRhdGEuX3N0YXR1cyA9PT0gJ3B1Ymxpc2hlZCcpIHtcbiAgICAgICAgICBjb25zdCBkYkFyZ3MgPSB7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcuc2x1ZyxcbiAgICAgICAgICAgIGRhdGE6IHJlc3VsdCxcbiAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGNvbGxlY3Rpb25Db25maWc/LmRiPy51cGRhdGVPbmUpIHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IGNvbGxlY3Rpb25Db25maWcuZGIudXBkYXRlT25lKGRiQXJncylcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgcmVxLnBheWxvYWQuZGIudXBkYXRlT25lKGRiQXJncylcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIENyZWF0ZSB2ZXJzaW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBpZiAoY29sbGVjdGlvbkNvbmZpZy52ZXJzaW9ucykge1xuICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHNhdmVWZXJzaW9uKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgIGRvY1dpdGhMb2NhbGVzOiB7XG4gICAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgICAgY3JlYXRlZEF0OiBkb2MuY3JlYXRlZEF0LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYWZ0ZXJSZWFkIC0gRmllbGRzXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICByZXN1bHQgPSBhd2FpdCBhZnRlclJlYWQoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGVwdGgsXG4gICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgZHJhZnQ6IGRyYWZ0QXJnLFxuICAgICAgICAgIGZhbGxiYWNrTG9jYWxlOiBudWxsLFxuICAgICAgICAgIGdsb2JhbDogbnVsbCxcbiAgICAgICAgICBsb2NhbGUsXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNob3dIaWRkZW5GaWVsZHMsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgICAvLyBhZnRlclJlYWQgLSBDb2xsZWN0aW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyUmVhZC5yZWR1Y2UoYXN5bmMgKHByaW9ySG9vaywgaG9vaykgPT4ge1xuICAgICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgICAgcmVzdWx0ID1cbiAgICAgICAgICAgIChhd2FpdCBob29rKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbkNvbmZpZyxcbiAgICAgICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgICAgIGRvYzogcmVzdWx0LFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KSkgfHwgcmVzdWx0XG4gICAgICAgIH0sIFByb21pc2UucmVzb2x2ZSgpKVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYWZ0ZXJDaGFuZ2UgLSBGaWVsZHNcbiAgICAgICAgLy8gLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IGFmdGVyQ2hhbmdlPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29udGV4dDogcmVxLmNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBkb2M6IHJlc3VsdCxcbiAgICAgICAgICBnbG9iYWw6IG51bGwsXG4gICAgICAgICAgb3BlcmF0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICBwcmV2aW91c0RvYzogb3JpZ2luYWxEb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgICAgLy8gYWZ0ZXJDaGFuZ2UgLSBDb2xsZWN0aW9uXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICBhd2FpdCBjb2xsZWN0aW9uQ29uZmlnLmhvb2tzLmFmdGVyQ2hhbmdlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBob29rKSA9PiB7XG4gICAgICAgICAgYXdhaXQgcHJpb3JIb29rXG5cbiAgICAgICAgICByZXN1bHQgPVxuICAgICAgICAgICAgKGF3YWl0IGhvb2soe1xuICAgICAgICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uQ29uZmlnLFxuICAgICAgICAgICAgICBjb250ZXh0OiByZXEuY29udGV4dCxcbiAgICAgICAgICAgICAgZG9jOiByZXN1bHQsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbjogJ3VwZGF0ZScsXG4gICAgICAgICAgICAgIHByZXZpb3VzRG9jOiBvcmlnaW5hbERvYyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgfSkpIHx8IHJlc3VsdFxuICAgICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcblxuICAgICAgICBhd2FpdCB1bmxpbmtUZW1wRmlsZXMoe1xuICAgICAgICAgIGNvbGxlY3Rpb25Db25maWcsXG4gICAgICAgICAgY29uZmlnLFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSlcblxuICAgICAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAgIC8vIFJldHVybiByZXN1bHRzXG4gICAgICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAgICAgICByZXR1cm4gcmVzdWx0XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgaWQsXG4gICAgICAgICAgbWVzc2FnZTogZXJyb3IubWVzc2FnZSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsXG4gICAgfSlcblxuICAgIGNvbnN0IGF3YWl0ZWREb2NzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG5cbiAgICBsZXQgcmVzdWx0ID0ge1xuICAgICAgZG9jczogYXdhaXRlZERvY3MuZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgZXJyb3JzLFxuICAgIH1cblxuICAgIC8vIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAvLyBhZnRlck9wZXJhdGlvbiAtIENvbGxlY3Rpb25cbiAgICAvLyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbiAgICByZXN1bHQgPSBhd2FpdCBidWlsZEFmdGVyT3BlcmF0aW9uPEdlbmVyYXRlZFR5cGVzWydjb2xsZWN0aW9ucyddW1RTbHVnXT4oe1xuICAgICAgYXJncyxcbiAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25Db25maWcsXG4gICAgICBvcGVyYXRpb246ICd1cGRhdGUnLFxuICAgICAgcmVzdWx0LFxuICAgIH0pXG5cbiAgICBpZiAoc2hvdWxkQ29tbWl0KSBhd2FpdCBjb21taXRUcmFuc2FjdGlvbihyZXEpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgYXdhaXQga2lsbFRyYW5zYWN0aW9uKGFyZ3MucmVxKVxuICAgIHRocm93IGVycm9yXG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgdXBkYXRlXG4iXSwibmFtZXMiOlsidXBkYXRlIiwiaW5jb21pbmdBcmdzIiwiYXJncyIsInNob3VsZENvbW1pdCIsImluaXRUcmFuc2FjdGlvbiIsInJlcSIsImNvbGxlY3Rpb24iLCJjb25maWciLCJob29rcyIsImJlZm9yZU9wZXJhdGlvbiIsInJlZHVjZSIsInByaW9ySG9vayIsImhvb2siLCJjb250ZXh0Iiwib3BlcmF0aW9uIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZGVwdGgiLCJkcmFmdCIsImRyYWZ0QXJnIiwib3ZlcnJpZGVBY2Nlc3MiLCJvdmVyd3JpdGVFeGlzdGluZ0ZpbGVzIiwiZmFsbGJhY2tMb2NhbGUiLCJsb2NhbGUiLCJwYXlsb2FkIiwidCIsInNob3dIaWRkZW5GaWVsZHMiLCJ3aGVyZSIsIkFQSUVycm9yIiwiaHR0cFN0YXR1cyIsIkJBRF9SRVFVRVNUIiwiZGF0YSIsImJ1bGtVcGRhdGVEYXRhIiwic2hvdWxkU2F2ZURyYWZ0IiwiQm9vbGVhbiIsInZlcnNpb25zIiwiZHJhZnRzIiwiYWNjZXNzUmVzdWx0IiwiZXhlY3V0ZUFjY2VzcyIsImFjY2VzcyIsInZhbGlkYXRlUXVlcnlQYXRocyIsImZ1bGxXaGVyZSIsImNvbWJpbmVRdWVyaWVzIiwiZG9jcyIsInZlcnNpb25zV2hlcmUiLCJhcHBlbmRWZXJzaW9uVG9RdWVyeUtleSIsInZlcnNpb25GaWVsZHMiLCJidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIiwicXVlcnkiLCJkYiIsInF1ZXJ5RHJhZnRzIiwic2x1ZyIsImxpbWl0IiwiZGJBcmdzIiwicGFnaW5hdGlvbiIsImZpbmQiLCJuZXdGaWxlRGF0YSIsImZpbGVzIiwiZmlsZXNUb1VwbG9hZCIsImdlbmVyYXRlRmlsZURhdGEiLCJ0aHJvd09uTWlzc2luZ0ZpbGUiLCJlcnJvcnMiLCJwcm9taXNlcyIsIm1hcCIsImRvYyIsImlkIiwib3JpZ2luYWxEb2MiLCJhZnRlclJlYWQiLCJnbG9iYWwiLCJkZWxldGVBc3NvY2lhdGVkRmlsZXMiLCJvdmVycmlkZURlbGV0ZSIsImJlZm9yZVZhbGlkYXRlIiwidXBsb2FkIiwiZGlzYWJsZUxvY2FsU3RvcmFnZSIsInVwbG9hZEZpbGVzIiwiYmVmb3JlQ2hhbmdlIiwicmVzdWx0IiwiZG9jV2l0aExvY2FsZXMiLCJza2lwVmFsaWRhdGlvbiIsInZhbGlkYXRlIiwiX3N0YXR1cyIsInVwZGF0ZU9uZSIsInNhdmVWZXJzaW9uIiwiY3JlYXRlZEF0IiwiYWZ0ZXJDaGFuZ2UiLCJwcmV2aW91c0RvYyIsInVubGlua1RlbXBGaWxlcyIsImVycm9yIiwicHVzaCIsIm1lc3NhZ2UiLCJhd2FpdGVkRG9jcyIsImFsbCIsImZpbHRlciIsImJ1aWxkQWZ0ZXJPcGVyYXRpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImtpbGxUcmFuc2FjdGlvbiJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,uBAiFN,CAAA;AAEZ,eAAe,YAAY,CAAA"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,uBAkFN,CAAA;AAEZ,eAAe,YAAY,CAAA"}
@@ -42,6 +42,7 @@ const globalSchema = _joi.default.object().keys({
42
42
  })
43
43
  }),
44
44
  description: _joi.default.alternatives().try(_joi.default.string(), _componentSchema.componentSchema),
45
+ forceRenderAllFields: _joi.default.boolean(),
45
46
  group: _joi.default.alternatives().try(_joi.default.string(), _joi.default.object().pattern(_joi.default.string(), [
46
47
  _joi.default.string()
47
48
  ])),
@@ -82,4 +83,4 @@ const globalSchema = _joi.default.object().keys({
82
83
  }).unknown();
83
84
  const _default = globalSchema;
84
85
 
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2NvbmZpZy9zY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpvaSBmcm9tICdqb2knXG5cbmltcG9ydCB7IGVuZHBvaW50c1NjaGVtYSB9IGZyb20gJy4uLy4uL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQge1xuICBjb21wb25lbnRTY2hlbWEsXG4gIGN1c3RvbVZpZXdTY2hlbWEsXG4gIGxpdmVQcmV2aWV3U2NoZW1hLFxufSBmcm9tICcuLi8uLi9jb25maWcvc2hhcmVkL2NvbXBvbmVudFNjaGVtYSdcblxuY29uc3QgZ2xvYmFsU2NoZW1hID0gam9pXG4gIC5vYmplY3QoKVxuICAua2V5cyh7XG4gICAgc2x1Zzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgYWNjZXNzOiBqb2kub2JqZWN0KHtcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICByZWFkVmVyc2lvbnM6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGpvaS5vYmplY3Qoe1xuICAgICAgY29tcG9uZW50czogam9pLm9iamVjdCh7XG4gICAgICAgIGVsZW1lbnRzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBQcmV2aWV3QnV0dG9uOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgICAgUHVibGlzaEJ1dHRvbjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgIFNhdmVCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgICBTYXZlRHJhZnRCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHZpZXdzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBFZGl0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgICAgY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgICAgIEFQSTogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBEZWZhdWx0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGNvbXBvbmVudFNjaGVtYSwgY3VzdG9tVmlld1NjaGVtYSksXG4gICAgICAgICAgICAgIFByZXZpZXc6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoY29tcG9uZW50U2NoZW1hLCBjdXN0b21WaWV3U2NoZW1hKSxcbiAgICAgICAgICAgICAgVmVyc2lvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBWZXJzaW9uczogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICAvLyBSZWxhdGlvbnNoaXBzXG4gICAgICAgICAgICAgIC8vIFJlZmVyZW5jZXNcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBkZXNjcmlwdGlvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBncm91cDogam9pXG4gICAgICAgIC5hbHRlcm5hdGl2ZXMoKVxuICAgICAgICAudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgICAgaGlkZGVuOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5ib29sZWFuKCksIGpvaS5mdW5jKCkpLFxuICAgICAgaGlkZUFQSVVSTDogam9pLmJvb2xlYW4oKSxcbiAgICAgIGxpdmVQcmV2aWV3OiBqb2kub2JqZWN0KGxpdmVQcmV2aWV3U2NoZW1hKSxcbiAgICAgIHByZXZpZXc6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgY3VzdG9tOiBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIGpvaS5hbnkoKSksXG4gICAgZGJOYW1lOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLmZ1bmMoKSksXG4gICAgZW5kcG9pbnRzOiBlbmRwb2ludHNTY2hlbWEsXG4gICAgZmllbGRzOiBqb2kuYXJyYXkoKSxcbiAgICBncmFwaFFMOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgICBuYW1lOiBqb2kuc3RyaW5nKCksXG4gICAgICB9KSxcbiAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgKSxcbiAgICBob29rczogam9pLm9iamVjdCh7XG4gICAgICBhZnRlckNoYW5nZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gICAgICBhZnRlclJlYWQ6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgICAgYmVmb3JlQ2hhbmdlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKSxcbiAgICAgIGJlZm9yZVJlYWQ6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgICAgYmVmb3JlVmFsaWRhdGU6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgIH0pLFxuICAgIGxhYmVsOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGpvaS5zdHJpbmcoKSwgam9pLm9iamVjdCgpLnBhdHRlcm4oam9pLnN0cmluZygpLCBbam9pLnN0cmluZygpXSkpLFxuICAgIHR5cGVzY3JpcHQ6IGpvaS5vYmplY3QoKS5rZXlzKHtcbiAgICAgIGludGVyZmFjZTogam9pLnN0cmluZygpLFxuICAgIH0pLFxuICAgIHZlcnNpb25zOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgIGRyYWZ0czogam9pLmFsdGVybmF0aXZlcygpLnRyeShcbiAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgIGF1dG9zYXZlOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgICAgICBqb2kuYm9vbGVhbigpLFxuICAgICAgICAgICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgICAgICAgICBpbnRlcnZhbDogam9pLm51bWJlcigpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB2YWxpZGF0ZTogam9pLmJvb2xlYW4oKSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBqb2kuYm9vbGVhbigpLFxuICAgICAgICApLFxuICAgICAgICBtYXg6IGpvaS5udW1iZXIoKSxcbiAgICAgIH0pLFxuICAgICAgam9pLmJvb2xlYW4oKSxcbiAgICApLFxuICB9KVxuICAudW5rbm93bigpXG5cbmV4cG9ydCBkZWZhdWx0IGdsb2JhbFNjaGVtYVxuIl0sIm5hbWVzIjpbImdsb2JhbFNjaGVtYSIsImpvaSIsIm9iamVjdCIsImtleXMiLCJzbHVnIiwic3RyaW5nIiwicmVxdWlyZWQiLCJhY2Nlc3MiLCJyZWFkIiwiZnVuYyIsInJlYWRWZXJzaW9ucyIsInVwZGF0ZSIsImFkbWluIiwiY29tcG9uZW50cyIsImVsZW1lbnRzIiwiUHJldmlld0J1dHRvbiIsImNvbXBvbmVudFNjaGVtYSIsIlB1Ymxpc2hCdXR0b24iLCJTYXZlQnV0dG9uIiwiU2F2ZURyYWZ0QnV0dG9uIiwidmlld3MiLCJFZGl0IiwiYWx0ZXJuYXRpdmVzIiwidHJ5IiwiQVBJIiwiY3VzdG9tVmlld1NjaGVtYSIsIkRlZmF1bHQiLCJQcmV2aWV3IiwiVmVyc2lvbiIsIlZlcnNpb25zIiwiZGVzY3JpcHRpb24iLCJncm91cCIsInBhdHRlcm4iLCJoaWRkZW4iLCJib29sZWFuIiwiaGlkZUFQSVVSTCIsImxpdmVQcmV2aWV3IiwibGl2ZVByZXZpZXdTY2hlbWEiLCJwcmV2aWV3IiwiY3VzdG9tIiwiYW55IiwiZGJOYW1lIiwiZW5kcG9pbnRzIiwiZW5kcG9pbnRzU2NoZW1hIiwiZmllbGRzIiwiYXJyYXkiLCJncmFwaFFMIiwibmFtZSIsImhvb2tzIiwiYWZ0ZXJDaGFuZ2UiLCJpdGVtcyIsImFmdGVyUmVhZCIsImJlZm9yZUNoYW5nZSIsImJlZm9yZVJlYWQiLCJiZWZvcmVWYWxpZGF0ZSIsImxhYmVsIiwidHlwZXNjcmlwdCIsImludGVyZmFjZSIsInZlcnNpb25zIiwiZHJhZnRzIiwiYXV0b3NhdmUiLCJpbnRlcnZhbCIsIm51bWJlciIsInZhbGlkYXRlIiwibWF4IiwidW5rbm93biJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiOzs7OytCQTRGQTs7O2VBQUE7Ozs0REE1RmdCO3dCQUVnQjtpQ0FLekI7Ozs7OztBQUVQLE1BQU1BLGVBQWVDLFlBQUcsQ0FDckJDLE1BQU0sR0FDTkMsSUFBSSxDQUFDO0lBQ0pDLE1BQU1ILFlBQUcsQ0FBQ0ksTUFBTSxHQUFHQyxRQUFRO0lBQzNCQyxRQUFRTixZQUFHLENBQUNDLE1BQU0sQ0FBQztRQUNqQk0sTUFBTVAsWUFBRyxDQUFDUSxJQUFJO1FBQ2RDLGNBQWNULFlBQUcsQ0FBQ1EsSUFBSTtRQUN0QkUsUUFBUVYsWUFBRyxDQUFDUSxJQUFJO0lBQ2xCO0lBQ0FHLE9BQU9YLFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO1FBQ2hCVyxZQUFZWixZQUFHLENBQUNDLE1BQU0sQ0FBQztZQUNyQlksVUFBVWIsWUFBRyxDQUFDQyxNQUFNLENBQUM7Z0JBQ25CYSxlQUFlQyxnQ0FBZTtnQkFDOUJDLGVBQWVELGdDQUFlO2dCQUM5QkUsWUFBWUYsZ0NBQWU7Z0JBQzNCRyxpQkFBaUJILGdDQUFlO1lBQ2xDO1lBQ0FJLE9BQU9uQixZQUFHLENBQUNDLE1BQU0sQ0FBQztnQkFDaEJtQixNQUFNcEIsWUFBRyxDQUFDcUIsWUFBWSxHQUFHQyxHQUFHLENBQzFCUCxnQ0FBZSxFQUNm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
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9nbG9iYWxzL2NvbmZpZy9zY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGpvaSBmcm9tICdqb2knXG5cbmltcG9ydCB7IGVuZHBvaW50c1NjaGVtYSB9IGZyb20gJy4uLy4uL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQge1xuICBjb21wb25lbnRTY2hlbWEsXG4gIGN1c3RvbVZpZXdTY2hlbWEsXG4gIGxpdmVQcmV2aWV3U2NoZW1hLFxufSBmcm9tICcuLi8uLi9jb25maWcvc2hhcmVkL2NvbXBvbmVudFNjaGVtYSdcblxuY29uc3QgZ2xvYmFsU2NoZW1hID0gam9pXG4gIC5vYmplY3QoKVxuICAua2V5cyh7XG4gICAgc2x1Zzogam9pLnN0cmluZygpLnJlcXVpcmVkKCksXG4gICAgYWNjZXNzOiBqb2kub2JqZWN0KHtcbiAgICAgIHJlYWQ6IGpvaS5mdW5jKCksXG4gICAgICByZWFkVmVyc2lvbnM6IGpvaS5mdW5jKCksXG4gICAgICB1cGRhdGU6IGpvaS5mdW5jKCksXG4gICAgfSksXG4gICAgYWRtaW46IGpvaS5vYmplY3Qoe1xuICAgICAgY29tcG9uZW50czogam9pLm9iamVjdCh7XG4gICAgICAgIGVsZW1lbnRzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBQcmV2aWV3QnV0dG9uOiBjb21wb25lbnRTY2hlbWEsXG4gICAgICAgICAgUHVibGlzaEJ1dHRvbjogY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgIFNhdmVCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgICBTYXZlRHJhZnRCdXR0b246IGNvbXBvbmVudFNjaGVtYSxcbiAgICAgICAgfSksXG4gICAgICAgIHZpZXdzOiBqb2kub2JqZWN0KHtcbiAgICAgICAgICBFZGl0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgICAgY29tcG9uZW50U2NoZW1hLFxuICAgICAgICAgICAgam9pLm9iamVjdCh7XG4gICAgICAgICAgICAgIEFQSTogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBEZWZhdWx0OiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KGNvbXBvbmVudFNjaGVtYSwgY3VzdG9tVmlld1NjaGVtYSksXG4gICAgICAgICAgICAgIFByZXZpZXc6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoY29tcG9uZW50U2NoZW1hLCBjdXN0b21WaWV3U2NoZW1hKSxcbiAgICAgICAgICAgICAgVmVyc2lvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICBWZXJzaW9uczogam9pLmFsdGVybmF0aXZlcygpLnRyeShjb21wb25lbnRTY2hlbWEsIGN1c3RvbVZpZXdTY2hlbWEpLFxuICAgICAgICAgICAgICAvLyBSZWxhdGlvbnNoaXBzXG4gICAgICAgICAgICAgIC8vIFJlZmVyZW5jZXNcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBkZXNjcmlwdGlvbjogam9pLmFsdGVybmF0aXZlcygpLnRyeShqb2kuc3RyaW5nKCksIGNvbXBvbmVudFNjaGVtYSksXG4gICAgICBmb3JjZVJlbmRlckFsbEZpZWxkczogam9pLmJvb2xlYW4oKSxcbiAgICAgIGdyb3VwOiBqb2lcbiAgICAgICAgLmFsdGVybmF0aXZlcygpXG4gICAgICAgIC50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gICAgICBoaWRkZW46IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLmJvb2xlYW4oKSwgam9pLmZ1bmMoKSksXG4gICAgICBoaWRlQVBJVVJMOiBqb2kuYm9vbGVhbigpLFxuICAgICAgbGl2ZVByZXZpZXc6IGpvaS5vYmplY3QobGl2ZVByZXZpZXdTY2hlbWEpLFxuICAgICAgcHJldmlldzogam9pLmZ1bmMoKSxcbiAgICB9KSxcbiAgICBjdXN0b206IGpvaS5vYmplY3QoKS5wYXR0ZXJuKGpvaS5zdHJpbmcoKSwgam9pLmFueSgpKSxcbiAgICBkYk5hbWU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kuZnVuYygpKSxcbiAgICBlbmRwb2ludHM6IGVuZHBvaW50c1NjaGVtYSxcbiAgICBmaWVsZHM6IGpvaS5hcnJheSgpLFxuICAgIGdyYXBoUUw6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoXG4gICAgICBqb2kub2JqZWN0KCkua2V5cyh7XG4gICAgICAgIG5hbWU6IGpvaS5zdHJpbmcoKSxcbiAgICAgIH0pLFxuICAgICAgam9pLmJvb2xlYW4oKSxcbiAgICApLFxuICAgIGhvb2tzOiBqb2kub2JqZWN0KHtcbiAgICAgIGFmdGVyQ2hhbmdlOiBqb2kuYXJyYXkoKS5pdGVtcyhqb2kuZnVuYygpKSxcbiAgICAgIGFmdGVyUmVhZDogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gICAgICBiZWZvcmVDaGFuZ2U6IGpvaS5hcnJheSgpLml0ZW1zKGpvaS5mdW5jKCkpLFxuICAgICAgYmVmb3JlUmVhZDogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gICAgICBiZWZvcmVWYWxpZGF0ZTogam9pLmFycmF5KCkuaXRlbXMoam9pLmZ1bmMoKSksXG4gICAgfSksXG4gICAgbGFiZWw6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoam9pLnN0cmluZygpLCBqb2kub2JqZWN0KCkucGF0dGVybihqb2kuc3RyaW5nKCksIFtqb2kuc3RyaW5nKCldKSksXG4gICAgdHlwZXNjcmlwdDogam9pLm9iamVjdCgpLmtleXMoe1xuICAgICAgaW50ZXJmYWNlOiBqb2kuc3RyaW5nKCksXG4gICAgfSksXG4gICAgdmVyc2lvbnM6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoXG4gICAgICBqb2kub2JqZWN0KHtcbiAgICAgICAgZHJhZnRzOiBqb2kuYWx0ZXJuYXRpdmVzKCkudHJ5KFxuICAgICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgICAgYXV0b3NhdmU6IGpvaS5hbHRlcm5hdGl2ZXMoKS50cnkoXG4gICAgICAgICAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgICAgICAgICAgIGpvaS5vYmplY3Qoe1xuICAgICAgICAgICAgICAgIGludGVydmFsOiBqb2kubnVtYmVyKCksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHZhbGlkYXRlOiBqb2kuYm9vbGVhbigpLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIGpvaS5ib29sZWFuKCksXG4gICAgICAgICksXG4gICAgICAgIG1heDogam9pLm51bWJlcigpLFxuICAgICAgfSksXG4gICAgICBqb2kuYm9vbGVhbigpLFxuICAgICksXG4gIH0pXG4gIC51bmtub3duKClcblxuZXhwb3J0IGRlZmF1bHQgZ2xvYmFsU2NoZW1hXG4iXSwibmFtZXMiOlsiZ2xvYmFsU2NoZW1hIiwiam9pIiwib2JqZWN0Iiwia2V5cyIsInNsdWciLCJzdHJpbmciLCJyZXF1aXJlZCIsImFjY2VzcyIsInJlYWQiLCJmdW5jIiwicmVhZFZlcnNpb25zIiwidXBkYXRlIiwiYWRtaW4iLCJjb21wb25lbnRzIiwiZWxlbWVudHMiLCJQcmV2aWV3QnV0dG9uIiwiY29tcG9uZW50U2NoZW1hIiwiUHVibGlzaEJ1dHRvbiIsIlNhdmVCdXR0b24iLCJTYXZlRHJhZnRCdXR0b24iLCJ2aWV3cyIsIkVkaXQiLCJhbHRlcm5hdGl2ZXMiLCJ0cnkiLCJBUEkiLCJjdXN0b21WaWV3U2NoZW1hIiwiRGVmYXVsdCIsIlByZXZpZXciLCJWZXJzaW9uIiwiVmVyc2lvbnMiLCJkZXNjcmlwdGlvbiIsImZvcmNlUmVuZGVyQWxsRmllbGRzIiwiYm9vbGVhbiIsImdyb3VwIiwicGF0dGVybiIsImhpZGRlbiIsImhpZGVBUElVUkwiLCJsaXZlUHJldmlldyIsImxpdmVQcmV2aWV3U2NoZW1hIiwicHJldmlldyIsImN1c3RvbSIsImFueSIsImRiTmFtZSIsImVuZHBvaW50cyIsImVuZHBvaW50c1NjaGVtYSIsImZpZWxkcyIsImFycmF5IiwiZ3JhcGhRTCIsIm5hbWUiLCJob29rcyIsImFmdGVyQ2hhbmdlIiwiaXRlbXMiLCJhZnRlclJlYWQiLCJiZWZvcmVDaGFuZ2UiLCJiZWZvcmVSZWFkIiwiYmVmb3JlVmFsaWRhdGUiLCJsYWJlbCIsInR5cGVzY3JpcHQiLCJpbnRlcmZhY2UiLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsImF1dG9zYXZlIiwiaW50ZXJ2YWwiLCJudW1iZXIiLCJ2YWxpZGF0ZSIsIm1heCIsInVua25vd24iXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBNkZBOzs7ZUFBQTs7OzREQTdGZ0I7d0JBRWdCO2lDQUt6Qjs7Ozs7O0FBRVAsTUFBTUEsZUFBZUMsWUFBRyxDQUNyQkMsTUFBTSxHQUNOQyxJQUFJLENBQUM7SUFDSkMsTUFBTUgsWUFBRyxDQUFDSSxNQUFNLEdBQUdDLFFBQVE7SUFDM0JDLFFBQVFOLFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO1FBQ2pCTSxNQUFNUCxZQUFHLENBQUNRLElBQUk7UUFDZEMsY0FBY1QsWUFBRyxDQUFDUSxJQUFJO1FBQ3RCRSxRQUFRVixZQUFHLENBQUNRLElBQUk7SUFDbEI7SUFDQUcsT0FBT1gsWUFBRyxDQUFDQyxNQUFNLENBQUM7UUFDaEJXLFlBQVlaLFlBQUcsQ0FBQ0MsTUFBTSxDQUFDO1lBQ3JCWSxVQUFVYixZQUFHLENBQUNDLE1BQU0sQ0FBQztnQkFDbkJhLGVBQWVDLGdDQUFlO2dCQUM5QkMsZUFBZUQsZ0NBQWU7Z0JBQzlCRSxZQUFZRixnQ0FBZTtnQkFDM0JHLGlCQUFpQkgsZ0NBQWU7WUFDbEM7WUFDQUksT0FBT25CLFlBQUcsQ0FBQ0MsTUFB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
@@ -109,6 +109,11 @@ export type GlobalAdminOptions = {
109
109
  * Custom description for collection
110
110
  */
111
111
  description?: EntityDescription;
112
+ /**
113
+ * Forces all fields in the Edit view to render immediately, regardless of scroll position
114
+ * @default false
115
+ */
116
+ forceRenderAllFields?: boolean;
112
117
  /**
113
118
  * Place globals into a navigational group
114
119
  * */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAChE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,OAAO,KAAK,EACV,wBAAwB,EACxB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC3B,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAE3F,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,CAAC,EAAE,GAAG,CAAA;IACV,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,GAAG,CAAA;IACT,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,WAAW,CAAC,EAAE,GAAG,CAAA;IACjB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE;IACnC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,WAAW,EAAE,GAAG,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE;IAClC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,OAAO,EAAE,cAAc,CAAA;IACvB,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,iDAAiD;IACjD,MAAM,EAAE,qBAAqB,CAAA;IAC7B,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,GAAG,EAAE,cAAc,CAAA;CACpB,KAAK,GAAG,CAAA;AAET,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;OAEG;IACH,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE;YACT;;eAEG;YACH,aAAa,CAAC,EAAE,wBAAwB,CAAA;YACxC;;;eAGG;YACH,aAAa,CAAC,EAAE,uBAAuB,CAAA;YACvC;;;eAGG;YACH,UAAU,CAAC,EAAE,qBAAqB,CAAA;YAClC;;;;eAIG;YACH,eAAe,CAAC,EAAE,0BAA0B,CAAA;SAC7C,CAAA;QACD,KAAK,CAAC,EAAE;YACN;;;eAGG;YACH,IAAI,CAAC,EACD,CACI;gBACE;;;;;;;;;;mBAUG;gBACH,GAAG,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;gBAClD,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;gBACtD,WAAW,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;gBAC1D,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;gBACtD,QAAQ,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;aAIxD,GACD;gBACE,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAAA;aAC/B,CACJ,GACD,kBAAkB,CAAA;SACvB,CAAA;KACF,CAAA;IACD;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;SAEK;IACL,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACvC;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,KAAK,OAAO,CAAC,GAAG,OAAO,CAAA;IACtD;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,WAAW,CAAC,EAAE,iBAAiB,CAAA;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,KAAK,CAAC,EAAE,kBAAkB,CAAA;IAC1B,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC5B;;OAEG;IACH,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,CAAA;IAC5C,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,OAAO,CAAC,EACJ;QACE,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,GACD,KAAK,CAAA;IACT,KAAK,CAAC,EAAE;QACN,WAAW,CAAC,EAAE,eAAe,EAAE,CAAA;QAC/B,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;QAC3B,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAA;QACjC,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;QAC7B,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAA;KACtC,CAAA;IACD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAA;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,UAAU,CAAC,EAAE;QACX;;WAEG;QACH,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,QAAQ,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAA;CAC5C,CAAA;AAED,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC7E,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,KAAK,CAAA;IAC3C,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,QAAQ,EAAE,uBAAuB,CAAA;CAClC;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,qBAAqB,EAAE,CAAA;IAC/B,OAAO,CAAC,EACJ;QACE,CAAC,IAAI,EAAE,MAAM,GAAG;YACd,iBAAiB,EAAE,cAAc,CAAC,GAAG,CAAC,CAAA;YACtC,IAAI,EAAE,iBAAiB,CAAA;YACvB,WAAW,CAAC,EAAE,iBAAiB,CAAA;SAChC,CAAA;KACF,GACD,KAAK,CAAA;CACV,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/globals/config/types.ts"],"names":[],"mappings":"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"}
@@ -290,7 +290,7 @@ function buildObjectType({ name, baseFields = {}, fields, forceNullable, parentN
290
290
  });
291
291
  }
292
292
  await Promise.all(resultPromises);
293
- return results;
293
+ return results.filter((doc)=>doc != null);
294
294
  }
295
295
  let id = value;
296
296
  if (isRelatedToManyCollections && value) {
@@ -517,4 +517,4 @@ function buildObjectType({ name, baseFields = {}, fields, forceNullable, parentN
517
517
  }
518
518
  const _default = buildObjectType;
519
519
 
520
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE9iamVjdFR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFMRmllbGRDb25maWcsIEdyYXBoUUxUeXBlIH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHtcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxPYmplY3RUeXBlLFxuICBHcmFwaFFMU3RyaW5nLFxuICBHcmFwaFFMVW5pb25UeXBlLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHsgR3JhcGhRTEpTT04gfSBmcm9tICdncmFwaHFsLXR5cGUtanNvbidcblxuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEdyb3VwRmllbGQsXG4gIEpTT05GaWVsZCxcbiAgTnVtYmVyRmllbGQsXG4gIFBvaW50RmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFJlbGF0aW9uc2hpcEZpZWxkLFxuICBSaWNoVGV4dEZpZWxkLFxuICBSb3dGaWVsZCxcbiAgU2VsZWN0RmllbGQsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5cbmltcG9ydCB7IHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHsgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgY29tYmluZVBhcmVudE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2NvbWJpbmVQYXJlbnROYW1lJ1xuaW1wb3J0IGZvcm1hdE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZm9ybWF0T3B0aW9ucyBmcm9tICcuLi91dGlsaXRpZXMvZm9ybWF0T3B0aW9ucydcbmltcG9ydCBidWlsZFdoZXJlSW5wdXRUeXBlIGZyb20gJy4vYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBpc0ZpZWxkTnVsbGFibGUgZnJvbSAnLi9pc0ZpZWxkTnVsbGFibGUnXG5pbXBvcnQgd2l0aE51bGxhYmxlVHlwZSBmcm9tICcuL3dpdGhOdWxsYWJsZVR5cGUnXG5cbnR5cGUgTG9jYWxlSW5wdXRUeXBlID0ge1xuICBmYWxsYmFja0xvY2FsZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbiAgbG9jYWxlOiB7XG4gICAgdHlwZTogR3JhcGhRTFR5cGVcbiAgfVxuICB3aGVyZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZUNvbmZpZyA9IHtcbiAgW3BhdGg6IHN0cmluZ106IEdyYXBoUUxGaWVsZENvbmZpZzxhbnksIGFueT5cbn1cblxudHlwZSBBcmdzID0ge1xuICBiYXNlRmllbGRzPzogT2JqZWN0VHlwZUNvbmZpZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VOdWxsYWJsZT86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudE5hbWU6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG59XG5cbmZ1bmN0aW9uIGJ1aWxkT2JqZWN0VHlwZSh7XG4gIG5hbWUsXG4gIGJhc2VGaWVsZHMgPSB7fSxcbiAgZmllbGRzLFxuICBmb3JjZU51bGxhYmxlLFxuICBwYXJlbnROYW1lLFxuICBwYXlsb2FkLFxufTogQXJncyk6IEdyYXBoUUxPYmplY3RUeXBlIHtcbiAgY29uc3QgZmllbGRUb1NjaGVtYU1hcCA9IHtcbiAgICBhcnJheTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBBcnJheUZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0VHlwZSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoT2JqZWN0LmtleXMob2JqZWN0VHlwZS5nZXRGaWVsZHMoKSkubGVuZ3RoKSB7XG4gICAgICAgICAgcGF5bG9hZC50eXBlcy5hcnJheVR5cGVzW2ludGVyZmFjZU5hbWVdID0gb2JqZWN0VHlwZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghcGF5bG9hZC50eXBlcy5hcnJheVR5cGVzW2ludGVyZmFjZU5hbWVdKSB7XG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFycmF5VHlwZSA9IG5ldyBHcmFwaFFMTGlzdChuZXcgR3JhcGhRTE5vbk51bGwocGF5bG9hZC50eXBlcy5hcnJheVR5cGVzW2ludGVyZmFjZU5hbWVdKSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIGFycmF5VHlwZSkgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGJsb2NrczogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBCbG9ja0ZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1R5cGVzOiBHcmFwaFFMT2JqZWN0VHlwZTxhbnksIGFueT5bXSA9IGZpZWxkLmJsb2Nrcy5yZWR1Y2UoKGFjYywgYmxvY2spID0+IHtcbiAgICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmJsb2NrVHlwZXNbYmxvY2suc2x1Z10pIHtcbiAgICAgICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgICAgIGJsb2NrPy5pbnRlcmZhY2VOYW1lIHx8IGJsb2NrPy5ncmFwaFFMPy5zaW5ndWxhck5hbWUgfHwgdG9Xb3JkcyhibG9jay5zbHVnLCB0cnVlKVxuXG4gICAgICAgICAgY29uc3Qgb2JqZWN0VHlwZSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgIC4uLmJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdibG9ja1R5cGUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICAgICAgcGFyZW50TmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmplY3RUeXBlLmdldEZpZWxkcygpKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXSA9IG9iamVjdFR5cGVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddKSB7XG4gICAgICAgICAgYWNjLnB1c2gocGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pXG5cbiAgICAgIGlmIChibG9ja1R5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0VHlwZUNvbmZpZ1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIHRvV29yZHMoZmllbGQubmFtZSwgdHJ1ZSkpXG5cbiAgICAgIGNvbnN0IHR5cGUgPSBuZXcgR3JhcGhRTExpc3QoXG4gICAgICAgIG5ldyBHcmFwaFFMTm9uTnVsbChcbiAgICAgICAgICBuZXcgR3JhcGhRTFVuaW9uVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgICAgIHJlc29sdmVUeXBlOiAoZGF0YSkgPT4gcGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2RhdGEuYmxvY2tUeXBlXS5uYW1lLFxuICAgICAgICAgICAgdHlwZXM6IGJsb2NrVHlwZXMsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCB0eXBlKSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgY2hlY2tib3g6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ2hlY2tib3hGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTEJvb2xlYW4sIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgY29kZTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBDb2RlRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgY29sbGFwc2libGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29sbGFwc2libGVGaWVsZCkgPT5cbiAgICAgIGZpZWxkLmZpZWxkcy5yZWR1Y2UoKG9iamVjdFR5cGVDb25maWdXaXRoQ29sbGFwc2libGVGaWVsZHMsIHN1YkZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzLCBzdWJGaWVsZClcbiAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdXaXRoQ29sbGFwc2libGVGaWVsZHNcbiAgICAgIH0sIG9iamVjdFR5cGVDb25maWcpLFxuICAgIGRhdGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogRGF0ZUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBEYXRlVGltZVJlc29sdmVyLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGVtYWlsOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEVtYWlsRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEVtYWlsQWRkcmVzc1Jlc29sdmVyLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGdyb3VwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEdyb3VwRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGludGVyZmFjZU5hbWUgPVxuICAgICAgICBmaWVsZD8uaW50ZXJmYWNlTmFtZSB8fCBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpKVxuXG4gICAgICBpZiAoIXBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICBjb25zdCBvYmplY3RUeXBlID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGU6IGlzRmllbGROdWxsYWJsZShmaWVsZCwgZm9yY2VOdWxsYWJsZSksXG4gICAgICAgICAgcGFyZW50TmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmplY3RUeXBlLmdldEZpZWxkcygpKS5sZW5ndGgpIHtcbiAgICAgICAgICBwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0gPSBvYmplY3RUeXBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAganNvbjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIG51bWJlcjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZmllbGQ/Lmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUG9pbnRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxGbG9hdCkpLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJhZGlvOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKSxcbiAgICAgICAgICAgIHZhbHVlczogZm9ybWF0T3B0aW9ucyhmaWVsZCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVsYXRpb25zaGlwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICBjb25zdCBpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkocmVsYXRpb25UbylcbiAgICAgIGNvbnN0IGhhc01hbnlWYWx1ZXMgPSBmaWVsZC5oYXNNYW55XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgbGV0IHR5cGVcbiAgICAgIGxldCByZWxhdGlvblRvVHlwZSA9IG51bGxcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykpIHtcbiAgICAgICAgcmVsYXRpb25Ub1R5cGUgPSBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxhdGlvbnNoaXBOYW1lfV9SZWxhdGlvblRvYCxcbiAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgcmVsYXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnJlbGF0aW9ucyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUocmVsYXRpb24pXToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZWxhdGlvbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCB0eXBlcyA9IHJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4gcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvbl0uZ3JhcGhRTC50eXBlKVxuXG4gICAgICAgIHR5cGUgPSBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGAke3JlbGF0aW9uc2hpcE5hbWV9X1JlbGF0aW9uc2hpcGAsXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICByZWxhdGlvblRvOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHJlbGF0aW9uVG9UeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMVW5pb25UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiByZWxhdGlvbnNoaXBOYW1lLFxuICAgICAgICAgICAgICAgIGFzeW5jIHJlc29sdmVUeXBlKGRhdGEsIHsgcmVxIH0pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkLmNvbGxlY3Rpb25zW2RhdGEuY29sbGVjdGlvbl0uZ3JhcGhRTC50eXBlLm5hbWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGVzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsoeyB0eXBlIH0gPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dLmdyYXBoUUwpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSByZWxhdGlvbnNoaXBUeXBlIGlzIHVuZGVmaW5lZCBhdCB0aGlzIHBvaW50LFxuICAgICAgLy8gaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGlzIGJsb2NrVHlwZSBjYW4gaGF2ZSBhIHJlbGF0aW9uc2hpcFxuICAgICAgLy8gdG8gaXRzZWxmLiBUaGVyZWZvcmUsIHdlIHNldCB0aGUgcmVsYXRpb25zaGlwVHlwZSBlcXVhbCB0byB0aGUgYmxvY2tUeXBlXG4gICAgICAvLyB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjcmVhdGVkLlxuXG4gICAgICB0eXBlID0gdHlwZSB8fCBuZXdseUNyZWF0ZWRCbG9ja1R5cGVcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwQXJnczoge1xuICAgICAgICBkcmFmdD86IHVua25vd25cbiAgICAgICAgZmFsbGJhY2tMb2NhbGU/OiB1bmtub3duXG4gICAgICAgIGxpbWl0PzogdW5rbm93blxuICAgICAgICBsb2NhbGU/OiB1bmtub3duXG4gICAgICAgIHBhZ2U/OiB1bmtub3duXG4gICAgICAgIHdoZXJlPzogdW5rbm93blxuICAgICAgfSA9IHt9XG5cbiAgICAgIGNvbnN0IHJlbGF0aW9uc1VzZURyYWZ0cyA9IChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pID8gcmVsYXRpb25UbyA6IFtyZWxhdGlvblRvXSkuc29tZShcbiAgICAgICAgKHJlbGF0aW9uKSA9PiBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uXS5jb25maWcudmVyc2lvbnM/LmRyYWZ0cyxcbiAgICAgIClcblxuICAgICAgaWYgKHJlbGF0aW9uc1VzZURyYWZ0cykge1xuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmRyYWZ0ID0ge1xuICAgICAgICAgIHR5cGU6IEdyYXBoUUxCb29sZWFuLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgcmVsYXRpb25zaGlwQXJncy5sb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cblxuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmZhbGxiYWNrTG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwID0ge1xuICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGhhc01hbnlWYWx1ZXMgPyBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKHR5cGUpKSA6IHR5cGUsXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgICAgYXJnczogcmVsYXRpb25zaGlwQXJncyxcbiAgICAgICAgZXh0ZW5zaW9uczogeyBjb21wbGV4aXR5OiAxMCB9LFxuICAgICAgICBhc3luYyByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dCkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyZW50W2ZpZWxkLm5hbWVdXG4gICAgICAgICAgY29uc3QgbG9jYWxlID0gYXJncy5sb2NhbGUgfHwgY29udGV4dC5yZXEubG9jYWxlXG4gICAgICAgICAgY29uc3QgZmFsbGJhY2tMb2NhbGUgPSBhcmdzLmZhbGxiYWNrTG9jYWxlIHx8IGNvbnRleHQucmVxLmZhbGxiYWNrTG9jYWxlXG4gICAgICAgICAgbGV0IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyA9IGZpZWxkLnJlbGF0aW9uVG9cbiAgICAgICAgICBjb25zdCBkcmFmdCA9IGFyZ3MuZHJhZnQgPz8gY29udGV4dC5yZXEucXVlcnk/LmRyYWZ0XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjb25zdCByZXN1bHRQcm9taXNlcyA9IFtdXG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVBvcHVsYXRpb25Qcm9taXNlID0gYXN5bmMgKHJlbGF0ZWREb2MsIGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGlkID0gcmVsYXRlZERvY1xuICAgICAgICAgICAgICBsZXQgY29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGVkRG9jLnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBpZCA9IHJlbGF0ZWREb2MudmFsdWVcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIGRyYWZ0LFxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0c1tpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRzW2ldID0gcmVzdWx0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChyZWxhdGVkRG9jLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0UHJvbWlzZXMucHVzaChjcmVhdGVQb3B1bGF0aW9uUHJvbWlzZShyZWxhdGVkRG9jLCBpKSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocmVzdWx0UHJvbWlzZXMpXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0c1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBpZCA9IHZhbHVlXG4gICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zICYmIHZhbHVlKSB7XG4gICAgICAgICAgICBpZCA9IHZhbHVlLnZhbHVlXG4gICAgICAgICAgICByZWxhdGVkQ29sbGVjdGlvblNsdWcgPSB2YWx1ZS5yZWxhdGlvblRvXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBjb25zdCByZWxhdGVkRG9jdW1lbnQgPSBhd2FpdCBjb250ZXh0LnJlcS5wYXlsb2FkRGF0YUxvYWRlci5sb2FkKFxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICByZWxhdGVkQ29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBkcmFmdCxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIGlmIChyZWxhdGVkRG9jdW1lbnQpIHtcbiAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnJlbGF0ZWREb2N1bWVudCxcbiAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbjogcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gcmVsYXRlZERvY3VtZW50XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiByZWxhdGlvbnNoaXAsXG4gICAgICB9XG4gICAgfSxcbiAgICByaWNoVGV4dDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBSaWNoVGV4dEZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXToge1xuICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMSlNPTiwgZm9yY2VOdWxsYWJsZSksXG4gICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICBkZXB0aDoge1xuICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBhc3luYyByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dCkge1xuICAgICAgICAgIGxldCBkZXB0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHREZXB0aFxuICAgICAgICAgIGlmICh0eXBlb2YgYXJncy5kZXB0aCAhPT0gJ3VuZGVmaW5lZCcpIGRlcHRoID0gYXJncy5kZXB0aFxuICAgICAgICAgIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gZmllbGQ/LmVkaXRvclxuXG4gICAgICAgICAgLy8gUmljaFRleHQgZmllbGRzIGhhdmUgdGhlaXIgb3duIGRlcHRoIGFyZ3VtZW50IGluIEdyYXBoUUwuXG4gICAgICAgICAgLy8gVGhpcyBpcyB3aHkgdGhlIHBvcHVsYXRpb25Qcm9taXNlICh3aGljaCBwb3B1bGF0ZXMgcmljaHRleHQgZmllbGRzIGxpa2UgdXBsb2FkcyBhbmQgcmVsYXRpb25zaGlwcylcbiAgICAgICAgICAvLyBpcyBydW4gaGVyZSBhZ2Fpbiwgd2l0aCB0aGUgcHJvdmlkZWQgZGVwdGguXG4gICAgICAgICAgLy8gSW4gdGhlIGdyYXBocWwgZmluZC50cyByZXNvbHZlciwgdGhlIGRlcHRoIGlzIHRoZW4gaGFyZC1jb2RlZCB0byAwLlxuICAgICAgICAgIC8vIEVmZmVjdGl2ZWx5LCB0aGlzIG1lYW5zIHRoYXQgdGhlIHBvcHVsYXRpb25Qcm9taXNlIGZvciBHcmFwaFFMIGlzIG9ubHkgcnVuIGhlcmUsIGFuZCBub3QgaW4gdGhlIGZpbmQudHMgcmVzb2x2ZXIgLyBub3JtYWwgcG9wdWxhdGlvbiBwcm9taXNlLlxuICAgICAgICAgIGlmIChlZGl0b3I/LnBvcHVsYXRpb25Qcm9taXNlKSB7XG4gICAgICAgICAgICBjb25zdCBwb3B1bGF0ZURlcHRoID1cbiAgICAgICAgICAgICAgZmllbGQ/Lm1heERlcHRoICE9PSB1bmRlZmluZWQgJiYgZmllbGQ/Lm1heERlcHRoIDwgZGVwdGggPyBmaWVsZD8ubWF4RGVwdGggOiBkZXB0aFxuXG4gICAgICAgICAgICBhd2FpdCBlZGl0b3I/LnBvcHVsYXRpb25Qcm9taXNlKHtcbiAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgZGVwdGg6IHBvcHVsYXRlRGVwdGgsXG4gICAgICAgICAgICAgIGRyYWZ0OiBhcmdzLmRyYWZ0LFxuICAgICAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICAgICAgZmluZE1hbnk6IGZhbHNlLFxuICAgICAgICAgICAgICBmbGF0dGVuTG9jYWxlczogZmFsc2UsXG4gICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgICAgcG9wdWxhdGlvblByb21pc2VzOiBbXSxcbiAgICAgICAgICAgICAgcmVxOiBjb250ZXh0LnJlcSxcbiAgICAgICAgICAgICAgc2hvd0hpZGRlbkZpZWxkczogZmFsc2UsXG4gICAgICAgICAgICAgIHNpYmxpbmdEb2M6IHBhcmVudCxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KSxcbiAgICByb3c6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUm93RmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChvYmplY3RUeXBlQ29uZmlnV2l0aFJvd0ZpZWxkcywgc3ViRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRTdWJGaWVsZCkgcmV0dXJuIGFkZFN1YkZpZWxkKG9iamVjdFR5cGVDb25maWdXaXRoUm93RmllbGRzLCBzdWJGaWVsZClcbiAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdXaXRoUm93RmllbGRzXG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICBzZWxlY3Q6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogU2VsZWN0RmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgZmllbGQubmFtZSlcblxuICAgICAgbGV0IHR5cGU6IEdyYXBoUUxUeXBlID0gbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgIG5hbWU6IGZ1bGxOYW1lLFxuICAgICAgICB2YWx1ZXM6IGZvcm1hdE9wdGlvbnMoZmllbGQpLFxuICAgICAgfSlcblxuICAgICAgdHlwZSA9IGZpZWxkLmhhc01hbnkgPyBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKHR5cGUpKSA6IHR5cGVcbiAgICAgIHR5cGUgPSB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCB0eXBlLCBmb3JjZU51bGxhYmxlKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgdGFiczogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUYWJzRmllbGQpID0+XG4gICAgICBmaWVsZC50YWJzLnJlZHVjZSgodGFiU2NoZW1hLCB0YWIpID0+IHtcbiAgICAgICAgaWYgKHRhYkhhc05hbWUodGFiKSkge1xuICAgICAgICAgIGNvbnN0IGludGVyZmFjZU5hbWUgPVxuICAgICAgICAgICAgdGFiPy5pbnRlcmZhY2VOYW1lIHx8IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIHRvV29yZHModGFiLm5hbWUsIHRydWUpKVxuXG4gICAgICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgICAgIGNvbnN0IG9iamVjdFR5cGUgPSBidWlsZE9iamVjdFR5cGUoe1xuICAgICAgICAgICAgICBuYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMob2JqZWN0VHlwZS5nZXRGaWVsZHMoKSkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgIHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSA9IG9iamVjdFR5cGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoIXBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICAgICAgcmV0dXJuIHRhYlNjaGVtYVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi50YWJTY2hlbWEsXG4gICAgICAgICAgICBbdGFiLm5hbWVdOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4udGFiU2NoZW1hLFxuICAgICAgICAgIC4uLnRhYi5maWVsZHMucmVkdWNlKChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICAgICAgaWYgKGFkZFN1YkZpZWxkKSByZXR1cm4gYWRkU3ViRmllbGQoc3ViRmllbGRTY2hlbWEsIHN1YkZpZWxkKVxuICAgICAgICAgICAgcmV0dXJuIHN1YkZpZWxkU2NoZW1hXG4gICAgICAgICAgfSwgdGFiU2NoZW1hKSxcbiAgICAgICAgfVxuICAgICAgfSwgb2JqZWN0VHlwZUNvbmZpZyksXG4gICAgdGV4dDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSA/IG5ldyBHcmFwaFFMTGlzdChHcmFwaFFMU3RyaW5nKSA6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgdGV4dGFyZWE6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGV4dGFyZWFGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICB1cGxvYWQ6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVXBsb2FkRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHsgcmVsYXRpb25UbyB9ID0gZmllbGRcblxuICAgICAgY29uc3QgdXBsb2FkTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIHRvV29yZHMoZmllbGQubmFtZSwgdHJ1ZSkpXG5cbiAgICAgIC8vIElmIHRoZSByZWxhdGlvbnNoaXBUeXBlIGlzIHVuZGVmaW5lZCBhdCB0aGlzIHBvaW50LFxuICAgICAgLy8gaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGlzIGJsb2NrVHlwZSBjYW4gaGF2ZSBhIHJlbGF0aW9uc2hpcFxuICAgICAgLy8gdG8gaXRzZWxmLiBUaGVyZWZvcmUsIHdlIHNldCB0aGUgcmVsYXRpb25zaGlwVHlwZSBlcXVhbCB0byB0aGUgYmxvY2tUeXBlXG4gICAgICAvLyB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjcmVhdGVkLlxuXG4gICAgICBjb25zdCB0eXBlID0gd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgZmllbGQsXG4gICAgICAgIHBheWxvYWQuY29sbGVjdGlvbnNbcmVsYXRpb25Ub10uZ3JhcGhRTC50eXBlIHx8IG5ld2x5Q3JlYXRlZEJsb2NrVHlwZSxcbiAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgIClcblxuICAgICAgY29uc3QgdXBsb2FkQXJncyA9IHt9IGFzIExvY2FsZUlucHV0VHlwZVxuXG4gICAgICBpZiAocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uKSB7XG4gICAgICAgIHVwbG9hZEFyZ3MubG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMubG9jYWxlSW5wdXRUeXBlLFxuICAgICAgICB9XG5cbiAgICAgICAgdXBsb2FkQXJncy5mYWxsYmFja0xvY2FsZSA9IHtcbiAgICAgICAgICB0eXBlOiBwYXlsb2FkLnR5cGVzLmZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyA9IGZpZWxkLnJlbGF0aW9uVG9cblxuICAgICAgY29uc3QgdXBsb2FkID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICBhcmdzOiB1cGxvYWRBcmdzLFxuICAgICAgICBleHRlbnNpb25zOiB7IGNvbXBsZXhpdHk6IDIwIH0sXG4gICAgICAgIGFzeW5jIHJlc29sdmUocGFyZW50LCBhcmdzLCBjb250ZXh0KSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJlbnRbZmllbGQubmFtZV1cbiAgICAgICAgICBjb25zdCBsb2NhbGUgPSBhcmdzLmxvY2FsZSB8fCBjb250ZXh0LnJlcS5sb2NhbGVcbiAgICAgICAgICBjb25zdCBmYWxsYmFja0xvY2FsZSA9IGFyZ3MuZmFsbGJhY2tMb2NhbGUgfHwgY29udGV4dC5yZXEuZmFsbGJhY2tMb2NhbGVcbiAgICAgICAgICBjb25zdCBpZCA9IHZhbHVlXG4gICAgICAgICAgY29uc3QgZHJhZnQgPSBhcmdzLmRyYWZ0ID8/IGNvbnRleHQucmVxLnF1ZXJ5Py5kcmFmdFxuXG4gICAgICAgICAgaWYgKGlkKSB7XG4gICAgICAgICAgICBjb25zdCByZWxhdGVkRG9jdW1lbnQgPSBhd2FpdCBjb250ZXh0LnJlcS5wYXlsb2FkRGF0YUxvYWRlci5sb2FkKFxuICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShbXG4gICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICByZWxhdGVkQ29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZSxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICBCb29sZWFuKGRyYWZ0KSxcbiAgICAgICAgICAgICAgXSksXG4gICAgICAgICAgICApXG5cbiAgICAgICAgICAgIHJldHVybiByZWxhdGVkRG9jdW1lbnQgfHwgbnVsbFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBudWxsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdoZXJlRmllbGRzID0gcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5jb25maWcuZmllbGRzXG5cbiAgICAgIHVwbG9hZC5hcmdzLndoZXJlID0ge1xuICAgICAgICB0eXBlOiBidWlsZFdoZXJlSW5wdXRUeXBlKHtcbiAgICAgICAgICBuYW1lOiB1cGxvYWROYW1lLFxuICAgICAgICAgIGZpZWxkczogd2hlcmVGaWVsZHMsXG4gICAgICAgICAgcGFyZW50TmFtZTogdXBsb2FkTmFtZSxcbiAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICB9KSxcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB1cGxvYWQsXG4gICAgICB9XG4gICAgfSxcbiAgfVxuXG4gIGNvbnN0IG9iamVjdFNjaGVtYSA9IHtcbiAgICBuYW1lLFxuICAgIGZpZWxkczogKCkgPT5cbiAgICAgIGZpZWxkcy5yZWR1Y2UoKG9iamVjdFR5cGVDb25maWcsIGZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkU2NoZW1hID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgICAgIGlmICh0eXBlb2YgZmllbGRTY2hlbWEgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICByZXR1cm4gb2JqZWN0VHlwZUNvbmZpZ1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICAgIC4uLmZpZWxkU2NoZW1hKG9iamVjdFR5cGVDb25maWcsIGZpZWxkKSxcbiAgICAgICAgfVxuICAgICAgfSwgYmFzZUZpZWxkcyksXG4gIH1cblxuICBjb25zdCBuZXdseUNyZWF0ZWRCbG9ja1R5cGUgPSBuZXcgR3JhcGhRTE9iamVjdFR5cGUob2JqZWN0U2NoZW1hKVxuXG4gIHJldHVybiBuZXdseUNyZWF0ZWRCbG9ja1R5cGVcbn1cblxuZXhwb3J0IGRlZmF1bHQgYnVpbGRPYmplY3RUeXBlXG4iXSwibmFtZXMiOlsiYnVpbGRPYmplY3RUeXBlIiwibmFtZSIsImJhc2VGaWVsZHMiLCJmaWVsZHMiLCJmb3JjZU51bGxhYmxlIiwicGFyZW50TmFtZSIsInBheWxvYWQiLCJmaWVsZFRvU2NoZW1hTWFwIiwiYXJyYXkiLCJvYmplY3RUeXBlQ29uZmlnIiwiZmllbGQiLCJpbnRlcmZhY2VOYW1lIiwiY29tYmluZVBhcmVudE5hbWUiLCJ0b1dvcmRzIiwidHlwZXMiLCJhcnJheVR5cGVzIiwib2JqZWN0VHlwZSIsImlzRmllbGROdWxsYWJsZSIsIk9iamVjdCIsImtleXMiLCJnZXRGaWVsZHMiLCJsZW5ndGgiLCJhcnJheVR5cGUiLCJHcmFwaFFMTGlzdCIsIkdyYXBoUUxOb25OdWxsIiwidHlwZSIsIndpdGhOdWxsYWJsZVR5cGUiLCJibG9ja3MiLCJibG9ja1R5cGVzIiwicmVkdWNlIiwiYWNjIiwiYmxvY2siLCJzbHVnIiwiZ3JhcGhRTCIsInNpbmd1bGFyTmFtZSIsInB1c2giLCJmdWxsTmFtZSIsIkdyYXBoUUxVbmlvblR5cGUiLCJyZXNvbHZlVHlwZSIsImRhdGEiLCJibG9ja1R5cGUiLCJjaGVja2JveCIsIkdyYXBoUUxCb29sZWFuIiwiY29kZSIsIkdyYXBoUUxTdHJpbmciLCJjb2xsYXBzaWJsZSIsIm9iamVjdFR5cGVDb25maWdXaXRoQ29sbGFwc2libGVGaWVsZHMiLCJzdWJGaWVsZCIsImFkZFN1YkZpZWxkIiwiZGF0ZSIsIkRhdGVUaW1lUmVzb2x2ZXIiLCJlbWFpbCIsIkVtYWlsQWRkcmVzc1Jlc29sdmVyIiwiZ3JvdXAiLCJncm91cFR5cGVzIiwianNvbiIsIkdyYXBoUUxKU09OIiwibnVtYmVyIiwiR3JhcGhRTEludCIsIkdyYXBoUUxGbG9hdCIsImhhc01hbnkiLCJwb2ludCIsInJhZGlvIiwiR3JhcGhRTEVudW1UeXBlIiwidmFsdWVzIiwiZm9ybWF0T3B0aW9ucyIsInJlbGF0aW9uc2hpcCIsInJlbGF0aW9uVG8iLCJpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImhhc01hbnlWYWx1ZXMiLCJyZWxhdGlvbnNoaXBOYW1lIiwicmVsYXRpb25Ub1R5cGUiLCJyZWxhdGlvbnMiLCJyZWxhdGlvbiIsImZvcm1hdE5hbWUiLCJ2YWx1ZSIsIm1hcCIsImNvbGxlY3Rpb25zIiwiR3JhcGhRTE9iamVjdFR5cGUiLCJyZXEiLCJjb2xsZWN0aW9uIiwibmV3bHlDcmVhdGVkQmxvY2tUeXBlIiwicmVsYXRpb25zaGlwQXJncyIsInJlbGF0aW9uc1VzZURyYWZ0cyIsInNvbWUiLCJjb25maWciLCJ2ZXJzaW9ucyIsImRyYWZ0cyIsImRyYWZ0IiwibG9jYWxpemF0aW9uIiwibG9jYWxlIiwibG9jYWxlSW5wdXRUeXBlIiwiZmFsbGJhY2tMb2NhbGUiLCJmYWxsYmFja0xvY2FsZUlucHV0VHlwZSIsImFyZ3MiLCJleHRlbnNpb25zIiwiY29tcGxleGl0eSIsInJlc29sdmUiLCJwYXJlbnQiLCJjb250ZXh0IiwicmVsYXRlZENvbGxlY3Rpb25TbHVnIiwicXVlcnkiLCJyZXN1bHRzIiwicmVzdWx0UHJvbWlzZXMiLCJjcmVhdGVQb3B1bGF0aW9uUHJvbWlzZSIsInJlbGF0ZWREb2MiLCJpIiwiaWQiLCJjb2xsZWN0aW9uU2x1ZyIsInJlc3VsdCIsInBheWxvYWREYXRhTG9hZGVyIiwibG9hZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJ0cmFuc2FjdGlvbklEIiwiZm9yRWFjaCIsIlByb21pc2UiLCJhbGwiLCJyZWxhdGVkRG9jdW1lbnQiLCJyaWNoVGV4dCIsImRlcHRoIiwiZGVmYXVsdERlcHRoIiwiZWRpdG9yIiwicG9wdWxhdGlvblByb21pc2UiLCJwb3B1bGF0ZURlcHRoIiwibWF4RGVwdGgiLCJ1bmRlZmluZWQiLCJmaW5kTWFueSIsImZsYXR0ZW5Mb2NhbGVzIiwib3ZlcnJpZGVBY2Nlc3MiLCJwb3B1bGF0aW9uUHJvbWlzZXMiLCJzaG93SGlkZGVuRmllbGRzIiwic2libGluZ0RvYyIsInJvdyIsIm9iamVjdFR5cGVDb25maWdXaXRoUm93RmllbGRzIiwic2VsZWN0IiwidGFicyIsInRhYlNjaGVtYSIsInRhYiIsInRhYkhhc05hbWUiLCJzdWJGaWVsZFNjaGVtYSIsInRleHQiLCJ0ZXh0YXJlYSIsInVwbG9hZCIsInVwbG9hZE5hbWUiLCJ1cGxvYWRBcmdzIiwiQm9vbGVhbiIsIndoZXJlRmllbGRzIiwid2hlcmUiLCJidWlsZFdoZXJlSW5wdXRUeXBlIiwib2JqZWN0U2NoZW1hIiwiZmllbGRTY2hlbWEiXSwicmFuZ2VNYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsiLCJtYXBwaW5ncyI6IkFBQUEsMERBQTBELEdBQzFELG1DQUFtQyxHQUNuQyx1Q0FBdUM7Ozs7K0JBcXFCdkM7OztlQUFBOzs7eUJBeHBCTztnQ0FDZ0Q7aUNBRTNCO3VCQTRCRDs4QkFDSDswRUFDTTttRUFDUDtzRUFDRzs0RUFDTTt3RUFDSjt5RUFDQzs7Ozs7O0FBMkI3QixTQUFTQSxnQkFBZ0IsRUFDdkJDLElBQUksRUFDSkMsYUFBYSxDQUFDLENBQUMsRUFDZkMsTUFBTSxFQUNOQyxhQUFhLEVBQ2JDLFVBQVUsRUFDVkMsT0FBTyxFQUNGO0lBQ0wsTUFBTUMsbUJBQW1CO1FB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
520
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9ncmFwaHFsL3NjaGVtYS9idWlsZE9iamVjdFR5cGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1hd2FpdC1pbi1sb29wICovXG4vKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFMRmllbGRDb25maWcsIEdyYXBoUUxUeXBlIH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHtcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxPYmplY3RUeXBlLFxuICBHcmFwaFFMU3RyaW5nLFxuICBHcmFwaFFMVW5pb25UeXBlLFxufSBmcm9tICdncmFwaHFsJ1xuaW1wb3J0IHsgRGF0ZVRpbWVSZXNvbHZlciwgRW1haWxBZGRyZXNzUmVzb2x2ZXIgfSBmcm9tICdncmFwaHFsLXNjYWxhcnMnXG4vKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHsgR3JhcGhRTEpTT04gfSBmcm9tICdncmFwaHFsLXR5cGUtanNvbidcblxuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIENvbGxhcHNpYmxlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgRmllbGQsXG4gIEdyb3VwRmllbGQsXG4gIEpTT05GaWVsZCxcbiAgTnVtYmVyRmllbGQsXG4gIFBvaW50RmllbGQsXG4gIFJhZGlvRmllbGQsXG4gIFJlbGF0aW9uc2hpcEZpZWxkLFxuICBSaWNoVGV4dEZpZWxkLFxuICBSb3dGaWVsZCxcbiAgU2VsZWN0RmllbGQsXG4gIFRhYnNGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uLy4uL3BheWxvYWQnXG5cbmltcG9ydCB7IHRhYkhhc05hbWUgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHsgdG9Xb3JkcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5pbXBvcnQgY29tYmluZVBhcmVudE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2NvbWJpbmVQYXJlbnROYW1lJ1xuaW1wb3J0IGZvcm1hdE5hbWUgZnJvbSAnLi4vdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZm9ybWF0T3B0aW9ucyBmcm9tICcuLi91dGlsaXRpZXMvZm9ybWF0T3B0aW9ucydcbmltcG9ydCBidWlsZFdoZXJlSW5wdXRUeXBlIGZyb20gJy4vYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBpc0ZpZWxkTnVsbGFibGUgZnJvbSAnLi9pc0ZpZWxkTnVsbGFibGUnXG5pbXBvcnQgd2l0aE51bGxhYmxlVHlwZSBmcm9tICcuL3dpdGhOdWxsYWJsZVR5cGUnXG5cbnR5cGUgTG9jYWxlSW5wdXRUeXBlID0ge1xuICBmYWxsYmFja0xvY2FsZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbiAgbG9jYWxlOiB7XG4gICAgdHlwZTogR3JhcGhRTFR5cGVcbiAgfVxuICB3aGVyZToge1xuICAgIHR5cGU6IEdyYXBoUUxUeXBlXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgT2JqZWN0VHlwZUNvbmZpZyA9IHtcbiAgW3BhdGg6IHN0cmluZ106IEdyYXBoUUxGaWVsZENvbmZpZzxhbnksIGFueT5cbn1cblxudHlwZSBBcmdzID0ge1xuICBiYXNlRmllbGRzPzogT2JqZWN0VHlwZUNvbmZpZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZm9yY2VOdWxsYWJsZT86IGJvb2xlYW5cbiAgbmFtZTogc3RyaW5nXG4gIHBhcmVudE5hbWU6IHN0cmluZ1xuICBwYXlsb2FkOiBQYXlsb2FkXG59XG5cbmZ1bmN0aW9uIGJ1aWxkT2JqZWN0VHlwZSh7XG4gIG5hbWUsXG4gIGJhc2VGaWVsZHMgPSB7fSxcbiAgZmllbGRzLFxuICBmb3JjZU51bGxhYmxlLFxuICBwYXJlbnROYW1lLFxuICBwYXlsb2FkLFxufTogQXJncyk6IEdyYXBoUUxPYmplY3RUeXBlIHtcbiAgY29uc3QgZmllbGRUb1NjaGVtYU1hcCA9IHtcbiAgICBhcnJheTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBBcnJheUZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgZmllbGQ/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmFycmF5VHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgY29uc3Qgb2JqZWN0VHlwZSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgbmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlOiBpc0ZpZWxkTnVsbGFibGUoZmllbGQsIGZvcmNlTnVsbGFibGUpLFxuICAgICAgICAgIHBhcmVudE5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoT2JqZWN0LmtleXMob2JqZWN0VHlwZS5nZXRGaWVsZHMoKSkubGVuZ3RoKSB7XG4gICAgICAgICAgcGF5bG9hZC50eXBlcy5hcnJheVR5cGVzW2ludGVyZmFjZU5hbWVdID0gb2JqZWN0VHlwZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghcGF5bG9hZC50eXBlcy5hcnJheVR5cGVzW2ludGVyZmFjZU5hbWVdKSB7XG4gICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFycmF5VHlwZSA9IG5ldyBHcmFwaFFMTGlzdChuZXcgR3JhcGhRTE5vbk51bGwocGF5bG9hZC50eXBlcy5hcnJheVR5cGVzW2ludGVyZmFjZU5hbWVdKSlcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIGFycmF5VHlwZSkgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGJsb2NrczogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBCbG9ja0ZpZWxkKSA9PiB7XG4gICAgICBjb25zdCBibG9ja1R5cGVzOiBHcmFwaFFMT2JqZWN0VHlwZTxhbnksIGFueT5bXSA9IGZpZWxkLmJsb2Nrcy5yZWR1Y2UoKGFjYywgYmxvY2spID0+IHtcbiAgICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmJsb2NrVHlwZXNbYmxvY2suc2x1Z10pIHtcbiAgICAgICAgICBjb25zdCBpbnRlcmZhY2VOYW1lID1cbiAgICAgICAgICAgIGJsb2NrPy5pbnRlcmZhY2VOYW1lIHx8IGJsb2NrPy5ncmFwaFFMPy5zaW5ndWxhck5hbWUgfHwgdG9Xb3JkcyhibG9jay5zbHVnLCB0cnVlKVxuXG4gICAgICAgICAgY29uc3Qgb2JqZWN0VHlwZSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgIC4uLmJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdibG9ja1R5cGUnLFxuICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICAgICAgcGFyZW50TmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmplY3RUeXBlLmdldEZpZWxkcygpKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHBheWxvYWQudHlwZXMuYmxvY2tUeXBlc1tibG9jay5zbHVnXSA9IG9iamVjdFR5cGVcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddKSB7XG4gICAgICAgICAgYWNjLnB1c2gocGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2Jsb2NrLnNsdWddKVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pXG5cbiAgICAgIGlmIChibG9ja1R5cGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gb2JqZWN0VHlwZUNvbmZpZ1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIHRvV29yZHMoZmllbGQubmFtZSwgdHJ1ZSkpXG5cbiAgICAgIGNvbnN0IHR5cGUgPSBuZXcgR3JhcGhRTExpc3QoXG4gICAgICAgIG5ldyBHcmFwaFFMTm9uTnVsbChcbiAgICAgICAgICBuZXcgR3JhcGhRTFVuaW9uVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgICAgIHJlc29sdmVUeXBlOiAoZGF0YSkgPT4gcGF5bG9hZC50eXBlcy5ibG9ja1R5cGVzW2RhdGEuYmxvY2tUeXBlXS5uYW1lLFxuICAgICAgICAgICAgdHlwZXM6IGJsb2NrVHlwZXMsXG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgICApXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCB0eXBlKSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgY2hlY2tib3g6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ2hlY2tib3hGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTEJvb2xlYW4sIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgY29kZTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBDb2RlRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgY29sbGFwc2libGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29sbGFwc2libGVGaWVsZCkgPT5cbiAgICAgIGZpZWxkLmZpZWxkcy5yZWR1Y2UoKG9iamVjdFR5cGVDb25maWdXaXRoQ29sbGFwc2libGVGaWVsZHMsIHN1YkZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChvYmplY3RUeXBlQ29uZmlnV2l0aENvbGxhcHNpYmxlRmllbGRzLCBzdWJGaWVsZClcbiAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdXaXRoQ29sbGFwc2libGVGaWVsZHNcbiAgICAgIH0sIG9iamVjdFR5cGVDb25maWcpLFxuICAgIGRhdGU6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogRGF0ZUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBEYXRlVGltZVJlc29sdmVyLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGVtYWlsOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEVtYWlsRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEVtYWlsQWRkcmVzc1Jlc29sdmVyLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGdyb3VwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEdyb3VwRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGludGVyZmFjZU5hbWUgPVxuICAgICAgICBmaWVsZD8uaW50ZXJmYWNlTmFtZSB8fCBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKGZpZWxkLm5hbWUsIHRydWUpKVxuXG4gICAgICBpZiAoIXBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICBjb25zdCBvYmplY3RUeXBlID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBpbnRlcmZhY2VOYW1lLFxuICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGU6IGlzRmllbGROdWxsYWJsZShmaWVsZCwgZm9yY2VOdWxsYWJsZSksXG4gICAgICAgICAgcGFyZW50TmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICBwYXlsb2FkLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmplY3RUeXBlLmdldEZpZWxkcygpKS5sZW5ndGgpIHtcbiAgICAgICAgICBwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0gPSBvYmplY3RUeXBlXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCFwYXlsb2FkLnR5cGVzLmdyb3VwVHlwZXNbaW50ZXJmYWNlTmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdFR5cGVDb25maWdcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAganNvbjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBKU09ORmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIG51bWJlcjogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBOdW1iZXJGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgdHlwZSA9IGZpZWxkPy5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgZmllbGQ/Lmhhc01hbnkgPT09IHRydWUgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlLFxuICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH0sXG4gICAgcG9pbnQ6IChvYmplY3RUeXBlQ29uZmlnOiBPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUG9pbnRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxGbG9hdCkpLFxuICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICksXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJhZGlvOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJhZGlvRmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKSxcbiAgICAgICAgICAgIHZhbHVlczogZm9ybWF0T3B0aW9ucyhmaWVsZCksXG4gICAgICAgICAgfSksXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgcmVsYXRpb25zaGlwOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJlbGF0aW9uc2hpcEZpZWxkKSA9PiB7XG4gICAgICBjb25zdCB7IHJlbGF0aW9uVG8gfSA9IGZpZWxkXG4gICAgICBjb25zdCBpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucyA9IEFycmF5LmlzQXJyYXkocmVsYXRpb25UbylcbiAgICAgIGNvbnN0IGhhc01hbnlWYWx1ZXMgPSBmaWVsZC5oYXNNYW55XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXBOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgbGV0IHR5cGVcbiAgICAgIGxldCByZWxhdGlvblRvVHlwZSA9IG51bGxcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykpIHtcbiAgICAgICAgcmVsYXRpb25Ub1R5cGUgPSBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgICBuYW1lOiBgJHtyZWxhdGlvbnNoaXBOYW1lfV9SZWxhdGlvblRvYCxcbiAgICAgICAgICB2YWx1ZXM6IHJlbGF0aW9uVG8ucmVkdWNlKFxuICAgICAgICAgICAgKHJlbGF0aW9ucywgcmVsYXRpb24pID0+ICh7XG4gICAgICAgICAgICAgIC4uLnJlbGF0aW9ucyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUocmVsYXRpb24pXToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiByZWxhdGlvbixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCB0eXBlcyA9IHJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4gcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvbl0uZ3JhcGhRTC50eXBlKVxuXG4gICAgICAgIHR5cGUgPSBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgIG5hbWU6IGAke3JlbGF0aW9uc2hpcE5hbWV9X1JlbGF0aW9uc2hpcGAsXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICByZWxhdGlvblRvOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHJlbGF0aW9uVG9UeXBlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMVW5pb25UeXBlKHtcbiAgICAgICAgICAgICAgICBuYW1lOiByZWxhdGlvbnNoaXBOYW1lLFxuICAgICAgICAgICAgICAgIGFzeW5jIHJlc29sdmVUeXBlKGRhdGEsIHsgcmVxIH0pIHtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXlsb2FkLmNvbGxlY3Rpb25zW2RhdGEuY29sbGVjdGlvbl0uZ3JhcGhRTC50eXBlLm5hbWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHR5cGVzLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsoeyB0eXBlIH0gPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dLmdyYXBoUUwpXG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZSByZWxhdGlvbnNoaXBUeXBlIGlzIHVuZGVmaW5lZCBhdCB0aGlzIHBvaW50LFxuICAgICAgLy8gaXQgY2FuIGJlIGFzc3VtZWQgdGhhdCB0aGlzIGJsb2NrVHlwZSBjYW4gaGF2ZSBhIHJlbGF0aW9uc2hpcFxuICAgICAgLy8gdG8gaXRzZWxmLiBUaGVyZWZvcmUsIHdlIHNldCB0aGUgcmVsYXRpb25zaGlwVHlwZSBlcXVhbCB0byB0aGUgYmxvY2tUeXBlXG4gICAgICAvLyB0aGF0IGlzIGN1cnJlbnRseSBiZWluZyBjcmVhdGVkLlxuXG4gICAgICB0eXBlID0gdHlwZSB8fCBuZXdseUNyZWF0ZWRCbG9ja1R5cGVcblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwQXJnczoge1xuICAgICAgICBkcmFmdD86IHVua25vd25cbiAgICAgICAgZmFsbGJhY2tMb2NhbGU/OiB1bmtub3duXG4gICAgICAgIGxpbWl0PzogdW5rbm93blxuICAgICAgICBsb2NhbGU/OiB1bmtub3duXG4gICAgICAgIHBhZ2U/OiB1bmtub3duXG4gICAgICAgIHdoZXJlPzogdW5rbm93blxuICAgICAgfSA9IHt9XG5cbiAgICAgIGNvbnN0IHJlbGF0aW9uc1VzZURyYWZ0cyA9IChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pID8gcmVsYXRpb25UbyA6IFtyZWxhdGlvblRvXSkuc29tZShcbiAgICAgICAgKHJlbGF0aW9uKSA9PiBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uXS5jb25maWcudmVyc2lvbnM/LmRyYWZ0cyxcbiAgICAgIClcblxuICAgICAgaWYgKHJlbGF0aW9uc1VzZURyYWZ0cykge1xuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmRyYWZ0ID0ge1xuICAgICAgICAgIHR5cGU6IEdyYXBoUUxCb29sZWFuLFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgcmVsYXRpb25zaGlwQXJncy5sb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cblxuICAgICAgICByZWxhdGlvbnNoaXBBcmdzLmZhbGxiYWNrTG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRpb25zaGlwID0ge1xuICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGhhc01hbnlWYWx1ZXMgPyBuZXcgR3JhcGhRTExpc3QobmV3IEdyYXBoUUxOb25OdWxsKHR5cGUpKSA6IHR5cGUsXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgICAgYXJnczogcmVsYXRpb25zaGlwQXJncyxcbiAgICAgICAgZXh0ZW5zaW9uczogeyBjb21wbGV4aXR5OiAxMCB9LFxuICAgICAgICBhc3luYyByZXNvbHZlKHBhcmVudCwgYXJncywgY29udGV4dCkge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyZW50W2ZpZWxkLm5hbWVdXG4gICAgICAgICAgY29uc3QgbG9jYWxlID0gYXJncy5sb2NhbGUgfHwgY29udGV4dC5yZXEubG9jYWxlXG4gICAgICAgICAgY29uc3QgZmFsbGJhY2tMb2NhbGUgPSBhcmdzLmZhbGxiYWNrTG9jYWxlIHx8IGNvbnRleHQucmVxLmZhbGxiYWNrTG9jYWxlXG4gICAgICAgICAgbGV0IHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyA9IGZpZWxkLnJlbGF0aW9uVG9cbiAgICAgICAgICBjb25zdCBkcmFmdCA9IGFyZ3MuZHJhZnQgPz8gY29udGV4dC5yZXEucXVlcnk/LmRyYWZ0XG5cbiAgICAgICAgICBpZiAoaGFzTWFueVZhbHVlcykge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IFtdXG4gICAgICAgICAgICBjb25zdCByZXN1bHRQcm9taXNlcyA9IFtdXG5cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZVBvcHVsYXRpb25Qcm9taXNlID0gYXN5bmMgKHJlbGF0ZWREb2MsIGkpID0+IHtcbiAgICAgICAgICAgICAgbGV0IGlkID0gcmVsYXRlZERvY1xuICAgICAgICAgICAgICBsZXQgY29sbGVjdGlvblNsdWcgPSBmaWVsZC5yZWxhdGlvblRvXG5cbiAgICAgICAgICAgICAgaWYgKGlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGVkRG9jLnJlbGF0aW9uVG9cbiAgICAgICAgICAgICAgICBpZCA9IHJlbGF0ZWREb2MudmFsdWVcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoW1xuICAgICAgICAgICAgICAgICAgY29udGV4dC5yZXEudHJhbnNhY3Rpb25JRCxcbiAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICAgMCxcbiAgICAgICAgICAgICAgICAgIGxvY2FsZSxcbiAgICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgIGRyYWZ0LFxuICAgICAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIGlmIChpc1JlbGF0ZWRUb01hbnlDb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgcmVzdWx0c1tpXSA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogY29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgLi4ucmVzdWx0LFxuICAgICAgICAgICAgICAgICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICByZXN1bHRzW2ldID0gcmVzdWx0XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChyZWxhdGVkRG9jLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzdWx0UHJvbWlzZXMucHVzaChjcmVhdGVQb3B1bGF0aW9uUHJvbWlzZShyZWxhdGVkRG9jLCBpKSlcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocmVzdWx0UHJvbWlzZXMpXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0cy5maWx0ZXIoKGRvYykgPT4gZG9jICE9IG51bGwpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbGV0IGlkID0gdmFsdWVcbiAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMgJiYgdmFsdWUpIHtcbiAgICAgICAgICAgIGlkID0gdmFsdWUudmFsdWVcbiAgICAgICAgICAgIHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyA9IHZhbHVlLnJlbGF0aW9uVG9cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWREb2N1bWVudCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcS50cmFuc2FjdGlvbklELFxuICAgICAgICAgICAgICAgIHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIGRyYWZ0LFxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgaWYgKHJlbGF0ZWREb2N1bWVudCkge1xuICAgICAgICAgICAgICBpZiAoaXNSZWxhdGVkVG9NYW55Q29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgcmVsYXRpb25UbzogcmVsYXRlZENvbGxlY3Rpb25TbHVnLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVsYXRlZERvY3VtZW50LFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uOiByZWxhdGVkQ29sbGVjdGlvblNsdWcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHJldHVybiByZWxhdGVkRG9jdW1lbnRcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHJlbGF0aW9uc2hpcCxcbiAgICAgIH1cbiAgICB9LFxuICAgIHJpY2hUZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJpY2hUZXh0RmllbGQpID0+ICh7XG4gICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSxcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIGRlcHRoOiB7XG4gICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIHJlc29sdmUocGFyZW50LCBhcmdzLCBjb250ZXh0KSB7XG4gICAgICAgICAgbGV0IGRlcHRoID0gcGF5bG9hZC5jb25maWcuZGVmYXVsdERlcHRoXG4gICAgICAgICAgaWYgKHR5cGVvZiBhcmdzLmRlcHRoICE9PSAndW5kZWZpbmVkJykgZGVwdGggPSBhcmdzLmRlcHRoXG4gICAgICAgICAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBmaWVsZD8uZWRpdG9yXG5cbiAgICAgICAgICAvLyBSaWNoVGV4dCBmaWVsZHMgaGF2ZSB0aGVpciBvd24gZGVwdGggYXJndW1lbnQgaW4gR3JhcGhRTC5cbiAgICAgICAgICAvLyBUaGlzIGlzIHdoeSB0aGUgcG9wdWxhdGlvblByb21pc2UgKHdoaWNoIHBvcHVsYXRlcyByaWNodGV4dCBmaWVsZHMgbGlrZSB1cGxvYWRzIGFuZCByZWxhdGlvbnNoaXBzKVxuICAgICAgICAgIC8vIGlzIHJ1biBoZXJlIGFnYWluLCB3aXRoIHRoZSBwcm92aWRlZCBkZXB0aC5cbiAgICAgICAgICAvLyBJbiB0aGUgZ3JhcGhxbCBmaW5kLnRzIHJlc29sdmVyLCB0aGUgZGVwdGggaXMgdGhlbiBoYXJkLWNvZGVkIHRvIDAuXG4gICAgICAgICAgLy8gRWZmZWN0aXZlbHksIHRoaXMgbWVhbnMgdGhhdCB0aGUgcG9wdWxhdGlvblByb21pc2UgZm9yIEdyYXBoUUwgaXMgb25seSBydW4gaGVyZSwgYW5kIG5vdCBpbiB0aGUgZmluZC50cyByZXNvbHZlciAvIG5vcm1hbCBwb3B1bGF0aW9uIHByb21pc2UuXG4gICAgICAgICAgaWYgKGVkaXRvcj8ucG9wdWxhdGlvblByb21pc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvcHVsYXRlRGVwdGggPVxuICAgICAgICAgICAgICBmaWVsZD8ubWF4RGVwdGggIT09IHVuZGVmaW5lZCAmJiBmaWVsZD8ubWF4RGVwdGggPCBkZXB0aCA/IGZpZWxkPy5tYXhEZXB0aCA6IGRlcHRoXG5cbiAgICAgICAgICAgIGF3YWl0IGVkaXRvcj8ucG9wdWxhdGlvblByb21pc2Uoe1xuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkZXB0aDogcG9wdWxhdGVEZXB0aCxcbiAgICAgICAgICAgICAgZHJhZnQ6IGFyZ3MuZHJhZnQsXG4gICAgICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgICAgICBmaW5kTWFueTogZmFsc2UsXG4gICAgICAgICAgICAgIGZsYXR0ZW5Mb2NhbGVzOiBmYWxzZSxcbiAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IGZhbHNlLFxuICAgICAgICAgICAgICBwb3B1bGF0aW9uUHJvbWlzZXM6IFtdLFxuICAgICAgICAgICAgICByZXE6IGNvbnRleHQucmVxLFxuICAgICAgICAgICAgICBzaG93SGlkZGVuRmllbGRzOiBmYWxzZSxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogcGFyZW50LFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gcGFyZW50W2ZpZWxkLm5hbWVdXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pLFxuICAgIHJvdzogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBSb3dGaWVsZCkgPT5cbiAgICAgIGZpZWxkLmZpZWxkcy5yZWR1Y2UoKG9iamVjdFR5cGVDb25maWdXaXRoUm93RmllbGRzLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBhZGRTdWJGaWVsZCA9IGZpZWxkVG9TY2hlbWFNYXBbc3ViRmllbGQudHlwZV1cbiAgICAgICAgaWYgKGFkZFN1YkZpZWxkKSByZXR1cm4gYWRkU3ViRmllbGQob2JqZWN0VHlwZUNvbmZpZ1dpdGhSb3dGaWVsZHMsIHN1YkZpZWxkKVxuICAgICAgICByZXR1cm4gb2JqZWN0VHlwZUNvbmZpZ1dpdGhSb3dGaWVsZHNcbiAgICAgIH0sIG9iamVjdFR5cGVDb25maWcpLFxuICAgIHNlbGVjdDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBTZWxlY3RGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCBmaWVsZC5uYW1lKVxuXG4gICAgICBsZXQgdHlwZTogR3JhcGhRTFR5cGUgPSBuZXcgR3JhcGhRTEVudW1UeXBlKHtcbiAgICAgICAgbmFtZTogZnVsbE5hbWUsXG4gICAgICAgIHZhbHVlczogZm9ybWF0T3B0aW9ucyhmaWVsZCksXG4gICAgICB9KVxuXG4gICAgICB0eXBlID0gZmllbGQuaGFzTWFueSA/IG5ldyBHcmFwaFFMTGlzdChuZXcgR3JhcGhRTE5vbk51bGwodHlwZSkpIDogdHlwZVxuICAgICAgdHlwZSA9IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIHR5cGUsIGZvcmNlTnVsbGFibGUpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlIH0sXG4gICAgICB9XG4gICAgfSxcbiAgICB0YWJzOiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRhYnNGaWVsZCkgPT5cbiAgICAgIGZpZWxkLnRhYnMucmVkdWNlKCh0YWJTY2hlbWEsIHRhYikgPT4ge1xuICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgY29uc3QgaW50ZXJmYWNlTmFtZSA9XG4gICAgICAgICAgICB0YWI/LmludGVyZmFjZU5hbWUgfHwgY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3Jkcyh0YWIubmFtZSwgdHJ1ZSkpXG5cbiAgICAgICAgICBpZiAoIXBheWxvYWQudHlwZXMuZ3JvdXBUeXBlc1tpbnRlcmZhY2VOYW1lXSkge1xuICAgICAgICAgICAgY29uc3Qgb2JqZWN0VHlwZSA9IGJ1aWxkT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICAgIG5hbWU6IGludGVyZmFjZU5hbWUsXG4gICAgICAgICAgICAgIGZpZWxkczogdGFiLmZpZWxkcyxcbiAgICAgICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogaW50ZXJmYWNlTmFtZSxcbiAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIH0pXG5cbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhvYmplY3RUeXBlLmdldEZpZWxkcygpKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgcGF5bG9hZC50eXBlcy5ncm91cFR5cGVzW2ludGVyZmFjZU5hbWVdID0gb2JqZWN0VHlwZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICghcGF5bG9hZC50eXBlcy5ncm91cFR5cGVzW2ludGVyZmFjZU5hbWVdKSB7XG4gICAgICAgICAgICByZXR1cm4gdGFiU2NoZW1hXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnRhYlNjaGVtYSxcbiAgICAgICAgICAgIFt0YWIubmFtZV06IHsgdHlwZTogcGF5bG9hZC50eXBlcy5ncm91cFR5cGVzW2ludGVyZmFjZU5hbWVdIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50YWJTY2hlbWEsXG4gICAgICAgICAgLi4udGFiLmZpZWxkcy5yZWR1Y2UoKHN1YkZpZWxkU2NoZW1hLCBzdWJGaWVsZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpXG4gICAgICAgICAgICByZXR1cm4gc3ViRmllbGRTY2hlbWFcbiAgICAgICAgICB9LCB0YWJTY2hlbWEpLFxuICAgICAgICB9XG4gICAgICB9LCBvYmplY3RUeXBlQ29uZmlnKSxcbiAgICB0ZXh0OiAob2JqZWN0VHlwZUNvbmZpZzogT2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlVHlwZShcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBmaWVsZC5oYXNNYW55ID09PSB0cnVlID8gbmV3IEdyYXBoUUxMaXN0KEdyYXBoUUxTdHJpbmcpIDogR3JhcGhRTFN0cmluZyxcbiAgICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgICApLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICB0ZXh0YXJlYTogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBUZXh0YXJlYUZpZWxkKSA9PiAoe1xuICAgICAgLi4ub2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHVwbG9hZDogKG9iamVjdFR5cGVDb25maWc6IE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBVcGxvYWRGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgeyByZWxhdGlvblRvIH0gPSBmaWVsZFxuXG4gICAgICBjb25zdCB1cGxvYWROYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcblxuICAgICAgLy8gSWYgdGhlIHJlbGF0aW9uc2hpcFR5cGUgaXMgdW5kZWZpbmVkIGF0IHRoaXMgcG9pbnQsXG4gICAgICAvLyBpdCBjYW4gYmUgYXNzdW1lZCB0aGF0IHRoaXMgYmxvY2tUeXBlIGNhbiBoYXZlIGEgcmVsYXRpb25zaGlwXG4gICAgICAvLyB0byBpdHNlbGYuIFRoZXJlZm9yZSwgd2Ugc2V0IHRoZSByZWxhdGlvbnNoaXBUeXBlIGVxdWFsIHRvIHRoZSBibG9ja1R5cGVcbiAgICAgIC8vIHRoYXQgaXMgY3VycmVudGx5IGJlaW5nIGNyZWF0ZWQuXG5cbiAgICAgIGNvbnN0IHR5cGUgPSB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgcGF5bG9hZC5jb2xsZWN0aW9uc1tyZWxhdGlvblRvXS5ncmFwaFFMLnR5cGUgfHwgbmV3bHlDcmVhdGVkQmxvY2tUeXBlLFxuICAgICAgICBmb3JjZU51bGxhYmxlLFxuICAgICAgKVxuXG4gICAgICBjb25zdCB1cGxvYWRBcmdzID0ge30gYXMgTG9jYWxlSW5wdXRUeXBlXG5cbiAgICAgIGlmIChwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb24pIHtcbiAgICAgICAgdXBsb2FkQXJncy5sb2NhbGUgPSB7XG4gICAgICAgICAgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cblxuICAgICAgICB1cGxvYWRBcmdzLmZhbGxiYWNrTG9jYWxlID0ge1xuICAgICAgICAgIHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb25TbHVnID0gZmllbGQucmVsYXRpb25Ub1xuXG4gICAgICBjb25zdCB1cGxvYWQgPSB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIGFyZ3M6IHVwbG9hZEFyZ3MsXG4gICAgICAgIGV4dGVuc2lvbnM6IHsgY29tcGxleGl0eTogMjAgfSxcbiAgICAgICAgYXN5bmMgcmVzb2x2ZShwYXJlbnQsIGFyZ3MsIGNvbnRleHQpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmVudFtmaWVsZC5uYW1lXVxuICAgICAgICAgIGNvbnN0IGxvY2FsZSA9IGFyZ3MubG9jYWxlIHx8IGNvbnRleHQucmVxLmxvY2FsZVxuICAgICAgICAgIGNvbnN0IGZhbGxiYWNrTG9jYWxlID0gYXJncy5mYWxsYmFja0xvY2FsZSB8fCBjb250ZXh0LnJlcS5mYWxsYmFja0xvY2FsZVxuICAgICAgICAgIGNvbnN0IGlkID0gdmFsdWVcbiAgICAgICAgICBjb25zdCBkcmFmdCA9IGFyZ3MuZHJhZnQgPz8gY29udGV4dC5yZXEucXVlcnk/LmRyYWZ0XG5cbiAgICAgICAgICBpZiAoaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWREb2N1bWVudCA9IGF3YWl0IGNvbnRleHQucmVxLnBheWxvYWREYXRhTG9hZGVyLmxvYWQoXG4gICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KFtcbiAgICAgICAgICAgICAgICBjb250ZXh0LnJlcS50cmFuc2FjdGlvbklELFxuICAgICAgICAgICAgICAgIHJlbGF0ZWRDb2xsZWN0aW9uU2x1ZyxcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgIDAsXG4gICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlLFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgICAgIEJvb2xlYW4oZHJhZnQpLFxuICAgICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIClcblxuICAgICAgICAgICAgcmV0dXJuIHJlbGF0ZWREb2N1bWVudCB8fCBudWxsXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgfSxcbiAgICAgIH1cblxuICAgICAgY29uc3Qgd2hlcmVGaWVsZHMgPSBwYXlsb2FkLmNvbGxlY3Rpb25zW3JlbGF0aW9uVG9dLmNvbmZpZy5maWVsZHNcblxuICAgICAgdXBsb2FkLmFyZ3Mud2hlcmUgPSB7XG4gICAgICAgIHR5cGU6IGJ1aWxkV2hlcmVJbnB1dFR5cGUoe1xuICAgICAgICAgIG5hbWU6IHVwbG9hZE5hbWUsXG4gICAgICAgICAgZmllbGRzOiB3aGVyZUZpZWxkcyxcbiAgICAgICAgICBwYXJlbnROYW1lOiB1cGxvYWROYW1lLFxuICAgICAgICAgIHBheWxvYWQsXG4gICAgICAgIH0pLFxuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5vYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHVwbG9hZCxcbiAgICAgIH1cbiAgICB9LFxuICB9XG5cbiAgY29uc3Qgb2JqZWN0U2NoZW1hID0ge1xuICAgIG5hbWUsXG4gICAgZmllbGRzOiAoKSA9PlxuICAgICAgZmllbGRzLnJlZHVjZSgob2JqZWN0VHlwZUNvbmZpZywgZmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgZmllbGRTY2hlbWEgPSBmaWVsZFRvU2NoZW1hTWFwW2ZpZWxkLnR5cGVdXG5cbiAgICAgICAgaWYgKHR5cGVvZiBmaWVsZFNjaGVtYSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHJldHVybiBvYmplY3RUeXBlQ29uZmlnXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLm9iamVjdFR5cGVDb25maWcsXG4gICAgICAgICAgLi4uZmllbGRTY2hlbWEob2JqZWN0VHlwZUNvbmZpZywgZmllbGQpLFxuICAgICAgICB9XG4gICAgICB9LCBiYXNlRmllbGRzKSxcbiAgfVxuXG4gIGNvbnN0IG5ld2x5Q3JlYXRlZEJsb2NrVHlwZSA9IG5ldyBHcmFwaFFMT2JqZWN0VHlwZShvYmplY3RTY2hlbWEpXG5cbiAgcmV0dXJuIG5ld2x5Q3JlYXRlZEJsb2NrVHlwZVxufVxuXG5leHBvcnQgZGVmYXVsdCBidWlsZE9iamVjdFR5cGVcbiJdLCJuYW1lcyI6WyJidWlsZE9iamVjdFR5cGUiLCJuYW1lIiwiYmFzZUZpZWxkcyIsImZpZWxkcyIsImZvcmNlTnVsbGFibGUiLCJwYXJlbnROYW1lIiwicGF5bG9hZCIsImZpZWxkVG9TY2hlbWFNYXAiLCJhcnJheSIsIm9iamVjdFR5cGVDb25maWciLCJmaWVsZCIsImludGVyZmFjZU5hbWUiLCJjb21iaW5lUGFyZW50TmFtZSIsInRvV29yZHMiLCJ0eXBlcyIsImFycmF5VHlwZXMiLCJvYmplY3RUeXBlIiwiaXNGaWVsZE51bGxhYmxlIiwiT2JqZWN0Iiwia2V5cyIsImdldEZpZWxkcyIsImxlbmd0aCIsImFycmF5VHlwZSIsIkdyYXBoUUxMaXN0IiwiR3JhcGhRTE5vbk51bGwiLCJ0eXBlIiwid2l0aE51bGxhYmxlVHlwZSIsImJsb2NrcyIsImJsb2NrVHlwZXMiLCJyZWR1Y2UiLCJhY2MiLCJibG9jayIsInNsdWciLCJncmFwaFFMIiwic2luZ3VsYXJOYW1lIiwicHVzaCIsImZ1bGxOYW1lIiwiR3JhcGhRTFVuaW9uVHlwZSIsInJlc29sdmVUeXBlIiwiZGF0YSIsImJsb2NrVHlwZSIsImNoZWNrYm94IiwiR3JhcGhRTEJvb2xlYW4iLCJjb2RlIiwiR3JhcGhRTFN0cmluZyIsImNvbGxhcHNpYmxlIiwib2JqZWN0VHlwZUNvbmZpZ1dpdGhDb2xsYXBzaWJsZUZpZWxkcyIsInN1YkZpZWxkIiwiYWRkU3ViRmllbGQiLCJkYXRlIiwiRGF0ZVRpbWVSZXNvbHZlciIsImVtYWlsIiwiRW1haWxBZGRyZXNzUmVzb2x2ZXIiLCJncm91cCIsImdyb3VwVHlwZXMiLCJqc29uIiwiR3JhcGhRTEpTT04iLCJudW1iZXIiLCJHcmFwaFFMSW50IiwiR3JhcGhRTEZsb2F0IiwiaGFzTWFueSIsInBvaW50IiwicmFkaW8iLCJHcmFwaFFMRW51bVR5cGUiLCJ2YWx1ZXMiLCJmb3JtYXRPcHRpb25zIiwicmVsYXRpb25zaGlwIiwicmVsYXRpb25UbyIsImlzUmVsYXRlZFRvTWFueUNvbGxlY3Rpb25zIiwiQXJyYXkiLCJpc0FycmF5IiwiaGFzTWFueVZhbHVlcyIsInJlbGF0aW9uc2hpcE5hbWUiLCJyZWxhdGlvblRvVHlwZSIsInJlbGF0aW9ucyIsInJlbGF0aW9uIiwiZm9ybWF0TmFtZSIsInZhbHVlIiwibWFwIiwiY29sbGVjdGlvbnMiLCJHcmFwaFFMT2JqZWN0VHlwZSIsInJlcSIsImNvbGxlY3Rpb24iLCJuZXdseUNyZWF0ZWRCbG9ja1R5cGUiLCJyZWxhdGlvbnNoaXBBcmdzIiwicmVsYXRpb25zVXNlRHJhZnRzIiwic29tZSIsImNvbmZpZyIsInZlcnNpb25zIiwiZHJhZnRzIiwiZHJhZnQiLCJsb2NhbGl6YXRpb24iLCJsb2NhbGUiLCJsb2NhbGVJbnB1dFR5cGUiLCJmYWxsYmFja0xvY2FsZSIsImZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwiYXJncyIsImV4dGVuc2lvbnMiLCJjb21wbGV4aXR5IiwicmVzb2x2ZSIsInBhcmVudCIsImNvbnRleHQiLCJyZWxhdGVkQ29sbGVjdGlvblNsdWciLCJxdWVyeSIsInJlc3VsdHMiLCJyZXN1bHRQcm9taXNlcyIsImNyZWF0ZVBvcHVsYXRpb25Qcm9taXNlIiwicmVsYXRlZERvYyIsImkiLCJpZCIsImNvbGxlY3Rpb25TbHVnIiwicmVzdWx0IiwicGF5bG9hZERhdGFMb2FkZXIiLCJsb2FkIiwiSlNPTiIsInN0cmluZ2lmeSIsInRyYW5zYWN0aW9uSUQiLCJmb3JFYWNoIiwiUHJvbWlzZSIsImFsbCIsImZpbHRlciIsImRvYyIsInJlbGF0ZWREb2N1bWVudCIsInJpY2hUZXh0IiwiZGVwdGgiLCJkZWZhdWx0RGVwdGgiLCJlZGl0b3IiLCJwb3B1bGF0aW9uUHJvbWlzZSIsInBvcHVsYXRlRGVwdGgiLCJtYXhEZXB0aCIsInVuZGVmaW5lZCIsImZpbmRNYW55IiwiZmxhdHRlbkxvY2FsZXMiLCJvdmVycmlkZUFjY2VzcyIsInBvcHVsYXRpb25Qcm9taXNlcyIsInNob3dIaWRkZW5GaWVsZHMiLCJzaWJsaW5nRG9jIiwicm93Iiwib2JqZWN0VHlwZUNvbmZpZ1dpdGhSb3dGaWVsZHMiLCJzZWxlY3QiLCJ0YWJzIiwidGFiU2NoZW1hIiwidGFiIiwidGFiSGFzTmFtZSIsInN1YkZpZWxkU2NoZW1hIiwidGV4dCIsInRleHRhcmVhIiwidXBsb2FkIiwidXBsb2FkTmFtZSIsInVwbG9hZEFyZ3MiLCJCb29sZWFuIiwid2hlcmVGaWVsZHMiLCJ3aGVyZSIsImJ1aWxkV2hlcmVJbnB1dFR5cGUiLCJvYmplY3RTY2hlbWEiLCJmaWVsZFNjaGVtYSJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQsR0FDMUQsbUNBQW1DLEdBQ25DLHVDQUF1Qzs7OzsrQkFxcUJ2Qzs7O2VBQUE7Ozt5QkF4cEJPO2dDQUNnRDtpQ0FFM0I7dUJBNEJEOzhCQUNIOzBFQUNNO21FQUNQO3NFQUNHOzRFQUNNO3dFQUNKO3lFQUNDOzs7Ozs7QUEyQjdCLFNBQVNBLGdCQUFnQixFQUN2QkMsSUFBSSxFQUNKQyxhQUFhLENBQUMsQ0FBQyxFQUNmQyxNQUFNLEVBQ05DLGFBQWEsRUFD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