obsidian-dev-utils 100.0.0 → 100.2.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.
@@ -513,6 +513,7 @@ import { selectItem } from "./obsidian/modals/select-item.mjs";
513
513
  import { selectOption } from "./obsidian/modals/select-option.mjs";
514
514
  import { SuggestModalCommandBuilder } from "./obsidian/modals/suggest-modal-command-builder.mjs";
515
515
  import {
516
+ filterHighestPriorityNotePaths,
516
517
  findNoPriorityWinnerReason,
517
518
  findNotePriorityRank,
518
519
  NO_PRIORITY_MATCH,
@@ -1077,6 +1078,7 @@ export {
1077
1078
  extractJpegMetadataSegments,
1078
1079
  extractLinkFile,
1079
1080
  extractZipArchive,
1081
+ filterHighestPriorityNotePaths,
1080
1082
  filterInPlace,
1081
1083
  findAttachmentUnitFolderPath,
1082
1084
  findNoPriorityWinnerReason,
@@ -1407,4 +1409,4 @@ export {
1407
1409
  watchPluginApi,
1408
1410
  wrapForCallout
1409
1411
  };
1410
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL19fbWVyZ2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXIsXG4gIGFib3J0U2lnbmFsVGltZW91dCxcbiAgZ2V0U2hhcmVkQWJvcnRDb250cm9sbGVyLFxuICBnZXRTaGFyZWRBYm9ydFNpZ25hbCxcbiAgSU5GSU5JVEVfVElNRU9VVCxcbiAgb25BYm9ydCxcbiAgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcixcbiAgd2FpdEZvckFib3J0XG59IGZyb20gJy4vYWJvcnQtY29udHJvbGxlci50cyc7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICBzbmFwc2hvdCxcbiAgdW5pcXVlLFxuICB1bmlxdWVJblBsYWNlXG59IGZyb20gJy4vYXJyYXkudHMnO1xuZXhwb3J0IHtcbiAgQXN5bmNFdmVudFJlZkRpc3Bvc2FibGUsXG4gIEFzeW5jRXZlbnRzLFxuICBBc3luY0V2ZW50c0Jhc2UsXG4gIG1peGluQXN5bmNFdmVudHMsXG4gIHN1YnNjcmliZUFzeW5jRGlzcG9zYWJsZUV2ZW50XG59IGZyb20gJy4vYXN5bmMtZXZlbnRzLnRzJztcbmV4cG9ydCB7XG4gIGFkZEVycm9ySGFuZGxlcixcbiAgYXN5bmNGaWx0ZXIsXG4gIGFzeW5jRmlsdGVySW5QbGFjZSxcbiAgYXN5bmNGbGF0TWFwLFxuICBhc3luY01hcCxcbiAgY2hhaW4sXG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgY29udmVydFN5bmNUb0FzeW5jLFxuICBkaXNhYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgZW5hYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc0FzeW5jT3BlcmF0aW9uVHJhY2tpbmdFbmFibGVkLFxuICBtYXJrc0FzVGVybWluYXRlUmV0cnksXG4gIG5ldmVyRW5kcyxcbiAgbmV4dFRpY2tBc3luYyxcbiAgbm9ybWFsaXplUHJvbWlzYWJsZSxcbiAgcHJvbWlzZUFsbEFzeW5jRm5zU2VxdWVudGlhbGx5LFxuICBwcm9taXNlQWxsU2VxdWVudGlhbGx5LFxuICBxdWV1ZU1pY3JvdGFza0FzeW5jLFxuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXQsXG4gIHNldEltbWVkaWF0ZUFzeW5jLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5LFxuICB3YWl0Rm9yQWxsQXN5bmNPcGVyYXRpb25zXG59IGZyb20gJy4vYXN5bmMudHMnO1xuZXhwb3J0IHsgQmVlcGVyIH0gZnJvbSAnLi9iZWVwZXIudHMnO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJy4vYmxvYi50cyc7XG5leHBvcnQge1xuICBlbmFibGVMaWJyYXJ5RGVidWdnZXJzLFxuICBnZXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGdldERlYnVnZ2VyLFxuICBnZXRMaWJEZWJ1Z2dlcixcbiAgcHJpbnRXaXRoU3RhY2tUcmFjZSxcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgeyBleHRyYWN0WmlwQXJjaGl2ZSB9IGZyb20gJy4vZGVza3RvcC16aXAtZXh0cmFjdG9yLnRzJztcbmV4cG9ydCB7XG4gIEFzeW5jQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBBc3luY0Rpc3Bvc2FibGVCYXNlLFxuICBDYWxsYmFja0Rpc3Bvc2FibGUsXG4gIENvbWJpbmVBc3luY0Rpc3Bvc2FibGUsXG4gIENvbWJpbmVEaXNwb3NhYmxlLFxuICBEaXNwb3NhYmxlQmFzZSxcbiAgZGlzcG9zZSxcbiAgZGlzcG9zZUFzeW5jLFxuICBEaXNwb3NlRXJyb3JCZWhhdmlvcixcbiAgRGlzcG9zZU9yZGVyLFxuICBpc0FzeW5jRGlzcG9zYWJsZSxcbiAgaXNBc3luY0Rpc3Bvc2FibGVFeCxcbiAgaXNEaXNwb3NhYmxlLFxuICBpc0Rpc3Bvc2FibGVFeCxcbiAgTXVsdGlwbGVEaXNwb3NlQmVoYXZpb3IsXG4gIHRvQXN5bmNEaXNwb3NhYmxlRXgsXG4gIHRvRGlzcG9zYWJsZUV4XG59IGZyb20gJy4vZGlzcG9zYWJsZS50cyc7XG5leHBvcnQge1xuICBnZXRFbnVtS2V5LFxuICBnZXRFbnVtVmFsdWVcbn0gZnJvbSAnLi9lbnVtLnRzJztcbmV4cG9ydCB7XG4gIEFTWU5DX1dSQVBQRVJfRVJST1JfTUVTU0FHRSxcbiAgQ3VzdG9tU3RhY2tUcmFjZUVycm9yLFxuICBkcmFpbkNvbGxlY3RlZFVuaGFuZGxlZEFzeW5jRXJyb3JzLFxuICBlbWl0QXN5bmNFcnJvckV2ZW50LFxuICBlcnJvclRvU3RyaW5nLFxuICBFcnJvcldyYXBwZXIsXG4gIGdldFN0YWNrVHJhY2UsXG4gIGlzQXN5bmNFcnJvcklnbm9yZUNvbnRleHRBY3RpdmUsXG4gIHByaW50RXJyb3IsXG4gIHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcixcbiAgU2lsZW50RXJyb3IsXG4gIHN0YXJ0QXN5bmNFcnJvcklnbm9yZUNvbnRleHQsXG4gIHN0YXJ0Q29sbGVjdGluZ1VuaGFuZGxlZEFzeW5jRXJyb3JzLFxuICBzdG9wQ29sbGVjdGluZ1VuaGFuZGxlZEFzeW5jRXJyb3JzLFxuICB0aHJvd0V4cHJlc3Npb25cbn0gZnJvbSAnLi9lcnJvci50cyc7XG5leHBvcnQge1xuICBjbG9uZUZ1bmN0aW9uLFxuICBjcmVhdGVGdW5jdGlvbixcbiAgZ2V0RnVuY3Rpb25FeHByZXNzaW9uU3RyaW5nLFxuICBub29wLFxuICBub29wQXN5bmMsXG4gIG5vb3BBc3luY1NpbmdsZXRvblByb21pc2UsXG4gIG9taXRBc3luY1JldHVyblR5cGUsXG4gIG9taXRSZXR1cm5UeXBlXG59IGZyb20gJy4vZnVuY3Rpb24udHMnO1xuZXhwb3J0IHtcbiAgTElCUkFSWV9TVFlMRVMsXG4gIExJQlJBUllfVkVSU0lPTlxufSBmcm9tICcuL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuZXhwb3J0IHtcbiAgY3JlYXRlRGl2QXN5bmMsXG4gIGNyZWF0ZUVsQXN5bmMsXG4gIGNyZWF0ZUZyYWdtZW50QXN5bmMsXG4gIGNyZWF0ZVNwYW5Bc3luYyxcbiAgY3JlYXRlU3ZnQXN5bmMsXG4gIGVuc3VyZUxvYWRlZCxcbiAgZ2V0RG9jdW1lbnRXaW5kb3csXG4gIGdldFpJbmRleCxcbiAgaXNFbGVtZW50VmlzaWJsZUluT2Zmc2V0UGFyZW50LFxuICBpc0xvYWRlZCxcbiAgb25BbmNlc3RvclNjcm9sbE9yUmVzaXplLFxuICB0b1B4LFxuICB3YWl0VW50aWxDb25uZWN0ZWRcbn0gZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0IHtcbiAgZXh0cmFjdEpwZWdNZXRhZGF0YVNlZ21lbnRzLFxuICBpbmplY3RKcGVnTWV0YWRhdGFTZWdtZW50c1xufSBmcm9tICcuL2pwZWctbWV0YWRhdGEudHMnO1xuZXhwb3J0IHtcbiAgTGlicmFyeSxcbiAgTElCUkFSWV9OQU1FXG59IGZyb20gJy4vbGlicmFyeS50cyc7XG5leHBvcnQge1xuICBhc3NpZ25XaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGNhc3RUbyxcbiAgY2xvbmVXaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGRlbGV0ZVByb3BlcnRpZXMsXG4gIGRlbGV0ZVByb3BlcnR5LFxuICBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AsXG4gIEZ1bmN0aW9uSGFuZGxpbmdNb2RlLFxuICBnZXRBbGxFbnRyaWVzLFxuICBnZXRBbGxLZXlzLFxuICBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlLFxuICBnZXRQcm90b3R5cGVPZixcbiAgaXNEZWVwRXF1YWwsXG4gIG5hbWVvZixcbiAgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzLFxuICByZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzLFxuICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlLFxuICB0b0pzb25cbn0gZnJvbSAnLi9vYmplY3QtdXRpbHMudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlLFxuICByZXNldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZVxufSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1zdGF0ZS50cyc7XG5leHBvcnQgeyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIgfSBmcm9tICcuL29ic2lkaWFuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCB7IGdldEFwcCB9IGZyb20gJy4vb2JzaWRpYW4vYXBwLnRzJztcbmV4cG9ydCB7XG4gIHJldHJ5V2l0aFRpbWVvdXROb3RpY2UsXG4gIHJ1bldpdGhUaW1lb3V0Tm90aWNlXG59IGZyb20gJy4vb2JzaWRpYW4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuZXhwb3J0IHtcbiAgQXR0YWNobWVudFBhdGhDb250ZXh0LFxuICBEVU1NWV9QQVRILFxuICBnZXRBdHRhY2htZW50RmlsZVBhdGgsXG4gIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGwsXG4gIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyxcbiAgZ2V0Q2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyRnVuY3Rpb24sXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL29ic2lkaWFuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoLFxuICByZWJhc2VQYXRoT250b0ZvbGRlclxufSBmcm9tICcuL29ic2lkaWFuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMnO1xuZXhwb3J0IHtcbiAgcmVuZGVyQmFja2xpbmtzVGFibGUsXG4gIHJlbmRlckRlbGF5ZWRCYWNrbGlua3MsXG4gIHJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJcbn0gZnJvbSAnLi9vYnNpZGlhbi9iYWNrbGluay50cyc7XG5leHBvcnQgeyBQbHVnaW5CYXNlc1ZpZXdSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIENhbGxvdXRNb2RlLFxuICByZW5kZXJDYWxsb3V0LFxuICB3cmFwRm9yQ2FsbG91dFxufSBmcm9tICcuL29ic2lkaWFuL2NhbGxvdXQudHMnO1xuZXhwb3J0IHsgZ2V0Q2FudmFzUmVmZXJlbmNlcyB9IGZyb20gJy4vb2JzaWRpYW4vY2FudmFzLnRzJztcbmV4cG9ydCB7XG4gIENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgZ2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICBzZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIHVuc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4XG59IGZyb20gJy4vb2JzaWRpYW4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LnRzJztcbmV4cG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vb2JzaWRpYW4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCB7IEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEVkaXRvckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2VkaXRvci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEZvbGRlckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZvbGRlci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgR2xvYmFsQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZ2xvYmFsLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuRGVtb1ZhdWx0Q29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1kZW1vLXZhdWx0LWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuU2V0dGluZ3NDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy9vcGVuLXNldHRpbmdzLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvdW5sb2NrLWFjdGl2ZS1ub3RlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4sXG4gIENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdCxcbiAgZGlzYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBnZXRDb21tdW5pdHlQbHVnaW5SZXBvLFxuICBnZXRMYXRlc3RSZWxlYXNlVmVyc2lvbixcbiAgaW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgaW5zdGFsbENvbmZpZ3VyZUVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgc2VhcmNoQ29tbXVuaXR5UGx1Z2lucyxcbiAgdG9nZ2xlRW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICB0b2dnbGVJbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICB1bmluc3RhbGxDb21tdW5pdHlQbHVnaW5cbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJBc3luY0V2ZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBhc0Rpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1iZWRFeHRlbnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEdlbmVyYXRlTWFya2Rvd25MaW5rRGVmYXVsdFBhcmFtc0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50LFxuICBMYXlvdXRSZWFkeUNvbXBvbmVudFxufSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFyb3VuZCxcbiAgaGFzUGF0Y2hUb2tlbixcbiAgTW9ua2V5QXJvdW5kQ29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgUGx1Z2luTm90aWNlTW9kZVxufSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luU3VnZ2VzdGlvbkNvbXBvbmVudCxcbiAgU3VnZ2VzdGVkUGx1Z2luU3RhdGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQb2ludGVyUG9zaXRpb25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVnaXN0cnlDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcmVnaXN0cnktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIEVtcHR5Rm9sZGVyQmVoYXZpb3IsXG4gIFJlbmFtZURlbGV0ZUhhbmRsZXJDb21wb25lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgTk9UX0VNUFRZX0RJUkVDVE9SWV9FUlJPUl9DT0RFLFxuICBSbWRpckd1YXJkQ29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9ybWRpci1ndWFyZC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3N5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL29ic2lkaWFuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4vb2JzaWRpYW4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkRhdGFIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0IHtcbiAgZml4VGl0bGUsXG4gIG1ha2VMaW5rV2l0aFBhdGhcbn0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCB7XG4gIGdldFJlbmRlcmVkQ29udGFpbmVyLFxuICBpbnNlcnRDb2RlQmxvY2ssXG4gIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUsXG4gIHJlbmRlcklmcmFtZSxcbiAgcmVuZGVyUGFnaW5hdGVkTGlzdCxcbiAgcmVuZGVyUGFnaW5hdGVkVGFibGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhdmlldy50cyc7XG5leHBvcnQgeyBib290c3RyYXBEZW1vVmF1bHQgfSBmcm9tICcuL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCB7XG4gIGdldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZSxcbiAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZVxufSBmcm9tICcuL29ic2lkaWFuL2RlbW8tdmF1bHQtbmFtaW5nLnRzJztcbmV4cG9ydCB7IG9wZW5EZW1vVmF1bHQgfSBmcm9tICcuL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0IHsgUGx1Z2luRWRpdG9yRXh0ZW5zaW9uUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JTdWdnZXN0UmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgc3luY09wZW5FZGl0b3JCdWZmZXJzRm9yUGF0aCxcbiAgdG9nZ2xlRWRpdG9yUmVhZE9ubHlcbn0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3IudHMnO1xuZXhwb3J0IHtcbiAgRXZlbnRSZWZEaXNwb3NhYmxlLFxuICBzdWJzY3JpYmVEaXNwb3NhYmxlRXZlbnQsXG4gIHN1YnNjcmliZUV2ZW50XG59IGZyb20gJy4vb2JzaWRpYW4vZXZlbnRzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkV4dGVuc2lvbnNSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGFwcGx5Q29udGVudENoYW5nZXMsXG4gIGFwcGx5RmlsZUNoYW5nZXMsXG4gIGlzQ2FudmFzQ2hhbmdlLFxuICBpc0NhbnZhc0ZpbGVOb2RlQ2hhbmdlLFxuICBpc0NhbnZhc1RleHROb2RlQ2hhbmdlLFxuICBpc0NvbnRlbnRDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vb2JzaWRpYW4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0IHtcbiAgYWRkQWxpYXMsXG4gIGRlbGV0ZUFsaWFzLFxuICBwcm9jZXNzRnJvbnRtYXR0ZXIsXG4gIHdhaXRGb3JQZW5kaW5nTGlua1VwZGF0ZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0IHtcbiAgYXNBcnJheU9mRmlsZXMsXG4gIGFzQXJyYXlPZkZvbGRlcnMsXG4gIGFzRmlsZSxcbiAgYXNGaWxlT3JOdWxsLFxuICBhc0ZvbGRlcixcbiAgYXNGb2xkZXJPck51bGwsXG4gIEJBU0VfRklMRV9FWFRFTlNJT04sXG4gIENBTlZBU19GSUxFX0VYVEVOU0lPTixcbiAgY2hlY2tFeHRlbnNpb24sXG4gIGRvZXNFeGlzdCxcbiAgRmlsZVN5c3RlbVR5cGUsXG4gIGdldEFic3RyYWN0RmlsZSxcbiAgZ2V0QWJzdHJhY3RGaWxlT3JOdWxsLFxuICBnZXRCYXNlbmFtZSxcbiAgZ2V0RXh0ZW5zaW9uLFxuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGdldE9yQ3JlYXRlRmlsZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXIsXG4gIGdldFBhdGgsXG4gIGlzQWJzdHJhY3RGaWxlLFxuICBpc0Jhc2VGaWxlLFxuICBpc0NhbnZhc0ZpbGUsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXIsXG4gIGlzTWFya2Rvd25GaWxlLFxuICBpc05vdGUsXG4gIGlzVHJlYXRlZEFzQXR0YWNobWVudCxcbiAgTUFSS0RPV05fRklMRV9FWFRFTlNJT04sXG4gIE1pc3NpbmdQYXRoVHJlYXRtZW50LFxuICB0cmltTWFya2Rvd25FeHRlbnNpb25cbn0gZnJvbSAnLi9vYnNpZGlhbi9maWxlLXN5c3RlbS50cyc7XG5leHBvcnQge1xuICBGT0xERVJfTk9URVNfUExVR0lOX0lELFxuICBGb2xkZXJOb3RlTG9jYXRpb24sXG4gIHJlc29sdmVGb2xkZXJOb3RlLFxuICByZXNvbHZlRm9sZGVyTm90ZUNvbmZpZ1xufSBmcm9tICcuL29ic2lkaWFuL2ZvbGRlci1ub3RlLnRzJztcbmV4cG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vb2JzaWRpYW4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0IHtcbiAgcGFyc2VGcm9udG1hdHRlcixcbiAgcmVtb3ZlRW1wdHlGcm9udG1hdHRlclZhbHVlcyxcbiAgc2V0RnJvbnRtYXR0ZXJcbn0gZnJvbSAnLi9vYnNpZGlhbi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Ib3ZlckxpbmtTb3VyY2VSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBhcHBlbmRDb2RlQmxvY2sgfSBmcm9tICcuL29ic2lkaWFuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX05TLFxuICBpbml0STE4TixcbiAgdFxufSBmcm9tICcuL29ic2lkaWFuL2kxOG4vaTE4bi50cyc7XG5leHBvcnQgeyBlbiB9IGZyb20gJy4vb2JzaWRpYW4vaTE4bi9sb2NhbGVzL2VuLnRzJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfTEFOR1VBR0UsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXBcbn0gZnJvbSAnLi9vYnNpZGlhbi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zLW1hcC50cyc7XG5leHBvcnQgeyBpc0luT2JzaWRpYW4gfSBmcm9tICcuL29ic2lkaWFuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCB7XG4gIGNvbnZlcnRMaW5rLFxuICBlZGl0QmFja2xpbmtzLFxuICBlZGl0TGlua3MsXG4gIGVkaXRMaW5rc0luQ29udGVudCxcbiAgZXh0cmFjdExpbmtGaWxlLFxuICBmaXhGcm9udG1hdHRlck1hcmtkb3duTGlua3MsXG4gIGdlbmVyYXRlTWFya2Rvd25MaW5rLFxuICBnZW5lcmF0ZVJhd01hcmtkb3duTGluayxcbiAgZ2V0R2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zRm5zLFxuICBoYXNBbmdsZUJyYWNrZXRzLFxuICBoYXNFbWJlZFN5bnRheCxcbiAgaGFzTGVhZGluZ0RvdCxcbiAgaGFzTGVhZGluZ1NsYXNoLFxuICBoYXNXaWtpbGlua1N5bnRheCxcbiAgTGlua1BhdGhTdHlsZSxcbiAgTGlua1N0eWxlLFxuICBzaG91bGRSZXNldEFsaWFzLFxuICBzcGxpdFN1YnBhdGgsXG4gIHVwZGF0ZUZpbGVVcmxMaW5rc0luQ29udGVudCxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5GaWxlLFxuICB1cGRhdGVMaW5rLFxuICB1cGRhdGVMaW5rc0luQ29udGVudCxcbiAgdXBkYXRlTGlua3NJbkZpbGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9saW5rLnRzJztcbmV4cG9ydCB7IGludm9rZUFzeW5jQW5kTG9nIH0gZnJvbSAnLi9vYnNpZGlhbi9sb2dnZXIudHMnO1xuZXhwb3J0IHsgbG9vcCB9IGZyb20gJy4vb2JzaWRpYW4vbG9vcC50cyc7XG5leHBvcnQgeyBQbHVnaW5NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGdldENvZGVCbG9ja01hcmtkb3duSW5mbyxcbiAgaW5zZXJ0QWZ0ZXJDb2RlQmxvY2ssXG4gIGluc2VydEJlZm9yZUNvZGVCbG9jayxcbiAgcmVtb3ZlQ29kZUJsb2NrLFxuICByZXBsYWNlQ29kZUJsb2NrXG59IGZyb20gJy4vb2JzaWRpYW4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0IHsgUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgZ2V0RnVsbENvbnRlbnRIdG1sIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi12aWV3LnRzJztcbmV4cG9ydCB7XG4gIGZ1bGxSZW5kZXIsXG4gIG1hcmtkb3duVG9IdG1sLFxuICByZWdpc3RlckxpbmtIYW5kbGVycyxcbiAgcmVuZGVyRXh0ZXJuYWxMaW5rLFxuICByZW5kZXJJbnRlcm5hbExpbmtcbn0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi50cyc7XG5leHBvcnQge1xuICBDYWNoZWRNZXRhZGF0YUV4RmVhdHVyZSxcbiAgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5LFxuICBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSxcbiAgZ2V0Q2FjaGVTYWZlLFxuICBnZXRGcm9udG1hdHRlclNhZmUsXG4gIGdldExpbmtzLFxuICBpc0NhY2hlZE1ldGFkYXRhRXgsXG4gIHBhcnNlTWV0YWRhdGEsXG4gIHJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICByZWdpc3RlckZpbGVzLFxuICB1bnJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICB1bnJlZ2lzdGVyRmlsZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgeyBhbGVydCB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL2FsZXJ0LnRzJztcbmV4cG9ydCB7IGNvbmZpcm0gfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9jb25maXJtLnRzJztcbmV4cG9ydCB7IE1pbmltaXphYmxlTW9kYWwgfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9taW5pbWl6YWJsZS1tb2RhbC50cyc7XG5leHBvcnQge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgTW9kYWxCYXNlLFxuICBzaG93TW9kYWxcbn0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvbW9kYWwudHMnO1xuZXhwb3J0IHsgcHJvbXB0IH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvcHJvbXB0LnRzJztcbmV4cG9ydCB7IHNlbGVjdEl0ZW0gfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9zZWxlY3QtaXRlbS50cyc7XG5leHBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcbmV4cG9ydCB7IFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvc3VnZ2VzdC1tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgZmluZE5vUHJpb3JpdHlXaW5uZXJSZWFzb24sXG4gIGZpbmROb3RlUHJpb3JpdHlSYW5rLFxuICBOT19QUklPUklUWV9NQVRDSCxcbiAgTm9Qcmlvcml0eVdpbm5lclJlYXNvbixcbiAgcGlja0hpZ2hlc3RQcmlvcml0eU5vdGVQYXRoXG59IGZyb20gJy4vb2JzaWRpYW4vbm90ZS1wcmlvcml0eS50cyc7XG5leHBvcnQge1xuICBOT1RFQk9PS19OQVZJR0FUT1JfTUVOVV9TT1VSQ0UsXG4gIE5PVEVCT09LX05BVklHQVRPUl9QTFVHSU5fSUQsXG4gIHJlc29sdmVOb3RlYm9va05hdmlnYXRvckFwaVxufSBmcm9tICcuL29ic2lkaWFuL25vdGVib29rLW5hdmlnYXRvci50cyc7XG5leHBvcnQgeyBQbHVnaW5PYnNpZGlhblByb3RvY29sSGFuZGxlclJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vb2JzaWRpYW4tcHJvdG9jb2wtaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0TmV3TGlua0Zvcm1hdCxcbiAgaXNTcGVsbGNoZWNrRW5hYmxlZCxcbiAgc2hvdWxkVXNlV2lraWxpbmtzXG59IGZyb20gJy4vb2JzaWRpYW4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuZXhwb3J0IHtcbiAgZXNjYXBlQWxpYXMsXG4gIGlzUGFyc2VMaW5rRnJvbnRtYXR0ZXJSZWZlcmVuY2UsXG4gIGlzUGFyc2VMaW5rUmVmZXJlbmNlLFxuICBwYXJzZUZyb250bWF0dGVyTGlua3MsXG4gIHBhcnNlTGluayxcbiAgcGFyc2VMaW5rcyxcbiAgdG9QYXJzZUxpbmtSZWZlcmVuY2UsXG4gIHVuZXNjYXBlQWxpYXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9wYXJzZS1saW5rLnRzJztcbmV4cG9ydCB7XG4gIFBhdGhTZXR0aW5ncyxcbiAgcGF0aHNWYWxpZGF0b3Jcbn0gZnJvbSAnLi9vYnNpZGlhbi9wYXRoLXNldHRpbmdzLnRzJztcbmV4cG9ydCB7IHByaW50VG9QZGYgfSBmcm9tICcuL29ic2lkaWFuL3BkZi50cyc7XG5leHBvcnQgeyBQbHVnaW5DbGlIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4tY2xpLWhhbmRsZXItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IE9ic2lkaWFuUGx1Z2luUmVwb1BhdGhzIH0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vb2JzaWRpYW4tcGx1Z2luLXJlcG8tcGF0aHMudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luQXBpUGF5bG9hZEtpbmQsXG4gIFBsdWdpbkFwaVJldm9rZWRFcnJvcixcbiAgUGx1Z2luQXBpVW5hdmFpbGFiaWxpdHlSZWFzb24sXG4gIFBsdWdpbkFwaVVuYXZhaWxhYmxlRXJyb3IsXG4gIFBsdWdpbkFwaVZhbGlkYXRpb25FcnJvcixcbiAgcHVibGlzaFBsdWdpbkFwaSxcbiAgd2F0Y2hQbHVnaW5BcGlcbn0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vcGx1Z2luLWFwaS50cyc7XG5leHBvcnQge1xuICBhZGRQbHVnaW5Dc3NDbGFzc2VzLFxuICBpbml0RGVidWdDb250cm9sbGVyLFxuICBpbml0UGx1Z2luQ29udGV4dFxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5leHBvcnQgeyBQbHVnaW5FdmVudFNvdXJjZUltcGwgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tZXZlbnQtc291cmNlLnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpblNldHRpbmdzVGFiQmFzZSxcbiAgU0FWRV9UT19GSUxFX0NPTlRFWFRcbn0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vcGx1Z2luLXNldHRpbmdzLXRhYi50cyc7XG5leHBvcnQge1xuICBQbHVnaW5CYXNlLFxuICByZWxvYWRQbHVnaW4sXG4gIHNob3dFcnJvckFuZERpc2FibGVQbHVnaW5cbn0gZnJvbSAnLi9vYnNpZGlhbi9wbHVnaW4vcGx1Z2luLnRzJztcbmV4cG9ydCB7IGVkaXRGaWVsZHNJblBvcG92ZXIgfSBmcm9tICcuL29ic2lkaWFuL3BvcG92ZXJzL2ZpZWxkLXBvcG92ZXIudHMnO1xuZXhwb3J0IHtcbiAgY3JlYXRlQW5jaG9yRnJvbURvY3VtZW50Q2VudGVyLFxuICBjcmVhdGVBbmNob3JGcm9tRWxlbWVudCxcbiAgY3JlYXRlQW5jaG9yRnJvbVBvaW50LFxuICBjcmVhdGVBbmNob3JGcm9tU2VsZWN0aW9uXG59IGZyb20gJy4vb2JzaWRpYW4vcG9wb3ZlcnMvcG9wb3Zlci1hbmNob3IudHMnO1xuZXhwb3J0IHsgc2hvd1BvcG92ZXIgfSBmcm9tICcuL29ic2lkaWFuL3BvcG92ZXJzL3BvcG92ZXIudHMnO1xuZXhwb3J0IHtcbiAgYWRkVG9RdWV1ZSxcbiAgYWRkVG9RdWV1ZUFuZFdhaXQsXG4gIGZsdXNoUXVldWVcbn0gZnJvbSAnLi9vYnNpZGlhbi9xdWV1ZS50cyc7XG5leHBvcnQge1xuICBBcHBDb250ZXh0LFxuICB1c2VBcHBcbn0gZnJvbSAnLi9vYnNpZGlhbi9yZWFjdC9hcHAtY29udGV4dC50cyc7XG5leHBvcnQge1xuICBpc0NhbnZhc0ZpbGVOb2RlUmVmZXJlbmNlLFxuICBpc0NhbnZhc1JlZmVyZW5jZSxcbiAgaXNDYW52YXNUZXh0Tm9kZVJlZmVyZW5jZSxcbiAgaXNSZWZlcmVuY2VJbk9mZnNldFJhbmdlLFxuICByZWZlcmVuY2VUb0ZpbGVDaGFuZ2UsXG4gIHNvcnRSZWZlcmVuY2VzXG59IGZyb20gJy4vb2JzaWRpYW4vcmVmZXJlbmNlLnRzJztcbmV4cG9ydCB7XG4gIGlzUmVzb3VyY2VMb2NrZWRGb3JQYXRoLFxuICBpc1Jlc291cmNlTG9ja2VkRm9yUGF0aEJ5QW5jZXN0b3IsXG4gIGxvY2tSZXNvdXJjZUZvclBhdGgsXG4gIHJlcXVlc3RSZXNvdXJjZVVubG9ja0ZvclBhdGgsXG4gIFJlc291cmNlTG9ja0NvbXBvbmVudCxcbiAgUmVzb3VyY2VMb2NrZWRFcnJvcixcbiAgdW5sb2NrUmVzb3VyY2VGb3JQYXRoXG59IGZyb20gJy4vb2JzaWRpYW4vcmVzb3VyY2UtbG9jay50cyc7XG5leHBvcnQgeyByZWxhdGl2ZVBhdGhUb1Jlc291cmNlVXJsIH0gZnJvbSAnLi9vYnNpZGlhbi9yZXNvdXJjZS11cmwudHMnO1xuZXhwb3J0IHsgUGx1Z2luUmliYm9uSWNvblJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vcmliYm9uLWljb24tcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvY2hlY2tib3gtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IENvZGVIaWdobGlnaHRlckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2NvZGUtaGlnaGxpZ2h0ZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9kYXRlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1haWxDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9lbWFpbC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2ZpbGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbW9udGgtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWVtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZUZpbGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS1maWxlLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZVRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tdWx0aXBsZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9udW1iZXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBhc3N3b3JkQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvcGFzc3dvcmQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGVuc3VyZVdyYXBwZWQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9zZXR0aW5nLWNvbXBvbmVudC13cmFwcGVyLnRzJztcbmV4cG9ydCB7IFRlbGVwaG9uZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RlbGVwaG9uZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VGV4dEJhc2VkQ29tcG9uZW50VmFsdWUgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90ZXh0LWJhc2VkLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdGltZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHJpU3RhdGVDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RyaS1zdGF0ZS1jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWREcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZE11bHRpcGxlRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1tdWx0aXBsZS1kcm9wZG93bi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgVHlwZWRSYW5nZVRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC1yYW5nZS10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90eXBlZC10ZXh0LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBVcmxDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy91cmwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldFZhbGlkYXRvckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3ZhbGlkYXRvci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgV2Vla0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3dlZWstY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFkb3B0U2V0dGluZ0V4LFxuICBTZXR0aW5nRXhcbn0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWV4LnRzJztcbmV4cG9ydCB7IFNldHRpbmdHcm91cEV4IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWdyb3VwLWV4LnRzJztcbmV4cG9ydCB7IFBsdWdpblN0YXR1c0Jhckl0ZW1SZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3N0YXR1cy1iYXItaXRlbS1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZ2V0VGVtcGxhdGVyRnVuY3Rpb25zLFxuICBnZXRUZW1wbGF0ZXJSZW5kZXJUYXJnZXRGaWxlLFxuICBwYXJzZVRlbXBsYXRlLFxuICByZXF1aXJlVGVtcGxhdGVyQXBpLFxuICByZXNvbHZlVGVtcGxhdGVyQXBpLFxuICBURU1QTEFURVJfUExVR0lOX0lELFxuICBUZW1wbGF0ZXJBY3RpdmVGaWxlUHJvdmlkZXIsXG4gIFRlbXBsYXRlclJ1bk1vZGUsXG4gIFRlbXBsYXRlclVuYXZhaWxhYmlsaXR5UmVhc29uLFxuICBUZW1wbGF0ZXJVbmF2YWlsYWJsZUVycm9yXG59IGZyb20gJy4vb2JzaWRpYW4vdGVtcGxhdGVyLnRzJztcbmV4cG9ydCB7XG4gIGNsaWNrRWxlbWVudCxcbiAgY2xpY2tNb3VzZSxcbiAgaG92ZXJFbGVtZW50LFxuICBtb3ZlTW91c2UsXG4gIHByZXNzS2V5LFxuICB0eXBlSW50b0VkaXRvcixcbiAgdW5ob3ZlckVsZW1lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi90cnVzdGVkLWlucHV0LnRzJztcbmV4cG9ydCB7XG4gIGdldE9zQW5kT2JzaWRpYW5VbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGdldE9zVW5zYWZlUGF0aENoYXJzUmVnRXhwLFxuICBoYXNXaW5kb3dzVHJhaWxpbmdDaGFycyxcbiAgaXNWYWxpZGF0aW9uTWVzc2FnZUhvbGRlcixcbiAgaXNXaW5kb3dzUmVzZXJ2ZWROYW1lLFxuICBPQlNJRElBTl9VTlNBRkVfRklMRU5BTUVfQ0hBUlMsXG4gIHRyaW1XaW5kb3dzVHJhaWxpbmdDaGFycyxcbiAgVU5JWF9VTlNBRkVfUEFUSF9DSEFSUyxcbiAgV0lORE9XU19VTlNBRkVfUEFUSF9DSEFSU1xufSBmcm9tICcuL29ic2lkaWFuL3ZhbGlkYXRpb24udHMnO1xuZXhwb3J0IHtcbiAgZGVsZXRlSWZOb3RVc2VkLFxuICBEZWxldGVJZk5vdFVzZWRSZXN1bHRcbn0gZnJvbSAnLi9vYnNpZGlhbi92YXVsdC1kZWxldGUudHMnO1xuZXhwb3J0IHsgVmF1bHRUcmFuc2FjdGlvbiB9IGZyb20gJy4vb2JzaWRpYW4vdmF1bHQtdHJhbnNhY3Rpb24udHMnO1xuZXhwb3J0IHtcbiAgY2xlYW51cEVtcHR5Rm9sZGVycyxcbiAgY29weVNhZmUsXG4gIGNyZWF0ZUZvbGRlclNhZmUsXG4gIENyZWF0ZUZvbGRlclNhZmVSZXN1bHQsXG4gIGNyZWF0ZVRlbXBvcmFyeUZpbGUsXG4gIGNyZWF0ZVRlbXBvcmFyeUZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXIsXG4gIGRlbGV0ZUVtcHR5Rm9sZGVySGllcmFyY2h5LFxuICBnZXRBYnN0cmFjdEZpbGVQYXRoU2FmZSxcbiAgZ2V0QXZhaWxhYmxlUGF0aCxcbiAgZ2V0RmlsZVBhdGhTYWZlLFxuICBnZXRGb2xkZXJQYXRoU2FmZSxcbiAgZ2V0TWFya2Rvd25GaWxlc1NvcnRlZCxcbiAgZ2V0Tm90ZUZpbGVzU29ydGVkLFxuICBnZXRPckNyZWF0ZUFic3RyYWN0RmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRmlsZVNhZmUsXG4gIGdldE9yQ3JlYXRlRm9sZGVyU2FmZSxcbiAgZ2V0U2FmZVJlbmFtZVBhdGgsXG4gIEludm9rZUZpbGVBY3Rpb25TYWZlUmVzdWx0LFxuICBpbnZva2VXaXRoRmlsZVN5c3RlbUxvY2ssXG4gIGlzQ2hpbGQsXG4gIGlzQ2hpbGRPclNlbGYsXG4gIGlzRW1wdHlGb2xkZXIsXG4gIGxpc3RTYWZlLFxuICBwcm9jZXNzLFxuICByZWFkU2FmZSxcbiAgcmVuYW1lU2FmZSxcbiAgc2F2ZU5vdGUsXG4gIHRyYXNoU2FmZVxufSBmcm9tICcuL29ic2lkaWFuL3ZhdWx0LnRzJztcbmV4cG9ydCB7IFBsdWdpblZpZXdSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3ZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGVuc3VyZUxheW91dFJlYWR5LFxuICBnZXRBbGxDb250YWluZXJzLFxuICBnZXRBbGxEb21XaW5kb3dzLFxuICBnZXRNYWluV2luZG93LFxuICBzd2l0Y2hUb01haW5XaW5kb3csXG4gIHN3aXRjaFRvV2luZG93XG59IGZyb20gJy4vb2JzaWRpYW4vd29ya3NwYWNlLnRzJztcbmV4cG9ydCB7XG4gIGJhc2VuYW1lLFxuICBkZWxpbWl0ZXIsXG4gIGRpcm5hbWUsXG4gIGV4dG5hbWUsXG4gIGZvcm1hdCxcbiAgZ2V0RmlsZU5hbWUsXG4gIGdldEZvbGRlck5hbWUsXG4gIGlzQWJzb2x1dGUsXG4gIGpvaW4sXG4gIG1ha2VGaWxlTmFtZSxcbiAgbm9ybWFsaXplSWZSZWxhdGl2ZSxcbiAgbm9ybWFsaXplUGF0aCxcbiAgcGFyc2UsXG4gIHBvc2l4LFxuICByZWxhdGl2ZSxcbiAgcmVzb2x2ZSxcbiAgc2VwYXJhdG9yLFxuICB0b1Bvc2l4QnVmZmVyLFxuICB0b1Bvc2l4UGF0aFxufSBmcm9tICcuL3BhdGgudHMnO1xuZXhwb3J0IHtcbiAgQUxXQVlTX01BVENIX1JFR19FWFAsXG4gIGVzY2FwZVJlZ0V4cCxcbiAgZ2V0TWFuZGF0b3J5TmFtZWRHcm91cCxcbiAgZ2V0T3B0aW9uYWxOYW1lZEdyb3VwLFxuICBpc1ZhbGlkUmVnRXhwLFxuICBORVZFUl9NQVRDSF9SRUdfRVhQLFxuICBvbmVPZixcbiAgUmVnRXhwTWVyZ2VGbGFnc0NvbmZsaWN0U3RyYXRlZ3lcbn0gZnJvbSAnLi9yZWctZXhwLnRzJztcbmV4cG9ydCB7XG4gIGJ5cGFzc1N0cmljdFByb3h5LFxuICBzdHJpY3RQcm94eVxufSBmcm9tICcuL3N0cmljdC1wcm94eS50cyc7XG5leHBvcnQge1xuICBFTVBUWSxcbiAgZW5zdXJlRW5kc1dpdGgsXG4gIGVuc3VyZUxmRW5kaW5ncyxcbiAgZW5zdXJlU3RhcnRzV2l0aCxcbiAgZXNjYXBlLFxuICBnZXRMZk5vcm1hbGl6ZWRPZmZzZXRUb09yaWdpbmFsT2Zmc2V0TWFwcGVyLFxuICBoYXNTaW5nbGVPY2N1cnJlbmNlLFxuICBpbmRlbnQsXG4gIGluc2VydEF0LFxuICBtYWtlVmFsaWRWYXJpYWJsZU5hbWUsXG4gIG5vcm1hbGl6ZVN0cmluZyxcbiAgcmVwbGFjZSxcbiAgcmVwbGFjZUFsbCxcbiAgcmVwbGFjZUFsbEFzeW5jLFxuICB0cmltRW5kLFxuICB0cmltU3RhcnQsXG4gIHVuZXNjYXBlLFxuICB1bmluZGVudFxufSBmcm9tICcuL3N0cmluZy50cyc7XG5leHBvcnQgeyBEYXRlVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9kYXRlLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IER1cmF0aW9uVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9kdXJhdGlvbi10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBHcm91cFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvZ3JvdXAtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgTWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9tYXAtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgU2V0VHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9zZXQtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgU2tpcFByaXZhdGVQcm9wZXJ0eVRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvc2tpcC1wcml2YXRlLXByb3BlcnR5LXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHdvV2F5TWFwVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy90d28td2F5LW1hcC10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBUeXBlZFRyYW5zZm9ybWVyIH0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvdHlwZWQtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHdvV2F5TWFwIH0gZnJvbSAnLi90d28td2F5LW1hcC50cyc7XG5leHBvcnQge1xuICBhc3NlcnQsXG4gIGFzc2VydEdlbmVyaWNPYmplY3QsXG4gIGFzc2VydE5ldmVyLFxuICBhc3NlcnROb25OdWxsYWJsZSxcbiAgZW5zdXJlR2VuZXJpY09iamVjdCxcbiAgZW5zdXJlTm9uTnVsbGFibGVcbn0gZnJvbSAnLi90eXBlLWd1YXJkcy50cyc7XG5leHBvcnQgeyBUeXBlQXNzZXJ0ZXIgfSBmcm9tICcuL3R5cGUudHMnO1xuZXhwb3J0IHtcbiAgZW5jb2RlVXJsLFxuICBpc0ZpbGVVcmwsXG4gIGlzVXJsLFxuICBub3JtYWxpemVGaWxlVXJsLFxuICBwYXRoVG9GaWxlVXJsXG59IGZyb20gJy4vdXJsLnRzJztcbmV4cG9ydCB7IHJlc29sdmVWYWx1ZSB9IGZyb20gJy4vdmFsdWUtcHJvdmlkZXIudHMnO1xuZXhwb3J0IHsgVmFsdWVXcmFwcGVyIH0gZnJvbSAnLi92YWx1ZS13cmFwcGVyLnRzJztcbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQTtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxjQUFjO0FBQ3ZCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyx5QkFBeUI7QUFDbEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLDZCQUE2QjtBQUN0QyxTQUFTLGNBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFB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QSxPQUNLO0FBQ1AsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxvQ0FBb0M7QUFDN0M7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsd0JBQXdCO0FBQ2pDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUywyQkFBMkI7QUFDcEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGlCQUFpQjtBQUMxQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG9CQUFvQjtBQUM3QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsb0JBQW9COyIsCiAgIm5hbWVzIjogW10KfQo=
1412
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL19fbWVyZ2VkLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKiBUSElTIElTIEEgR0VORVJBVEVEL0JVTkRMRUQgRklMRSBCWSBCVUlMRCBTQ1JJUFQgKi9cblxuZXhwb3J0IHtcbiAgYWJvcnRTaWduYWxBbnksXG4gIGFib3J0U2lnbmFsTmV2ZXIsXG4gIGFib3J0U2lnbmFsVGltZW91dCxcbiAgZ2V0U2hhcmVkQWJvcnRDb250cm9sbGVyLFxuICBnZXRTaGFyZWRBYm9ydFNpZ25hbCxcbiAgSU5GSU5JVEVfVElNRU9VVCxcbiAgb25BYm9ydCxcbiAgUmVzZXR0YWJsZUFib3J0Q29udHJvbGxlcixcbiAgd2FpdEZvckFib3J0XG59IGZyb20gJy4vYWJvcnQtY29udHJvbGxlci50cyc7XG5leHBvcnQge1xuICBmaWx0ZXJJblBsYWNlLFxuICBzbmFwc2hvdCxcbiAgdW5pcXVlLFxuICB1bmlxdWVJblBsYWNlXG59IGZyb20gJy4vYXJyYXkudHMnO1xuZXhwb3J0IHtcbiAgQXN5bmNFdmVudFJlZkRpc3Bvc2FibGUsXG4gIEFzeW5jRXZlbnRzLFxuICBBc3luY0V2ZW50c0Jhc2UsXG4gIG1peGluQXN5bmNFdmVudHMsXG4gIHN1YnNjcmliZUFzeW5jRGlzcG9zYWJsZUV2ZW50XG59IGZyb20gJy4vYXN5bmMtZXZlbnRzLnRzJztcbmV4cG9ydCB7XG4gIGFkZEVycm9ySGFuZGxlcixcbiAgYXN5bmNGaWx0ZXIsXG4gIGFzeW5jRmlsdGVySW5QbGFjZSxcbiAgYXN5bmNGbGF0TWFwLFxuICBhc3luY01hcCxcbiAgY2hhaW4sXG4gIGNvbnZlcnRBc3luY1RvU3luYyxcbiAgY29udmVydFN5bmNUb0FzeW5jLFxuICBkaXNhYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgZW5hYmxlQXN5bmNPcGVyYXRpb25UcmFja2luZyxcbiAgaGFuZGxlU2lsZW50RXJyb3IsXG4gIGlnbm9yZUVycm9yLFxuICBpbnZva2VBc3luY1NhZmVseSxcbiAgaW52b2tlQXN5bmNTYWZlbHlBZnRlckRlbGF5LFxuICBpc0FzeW5jT3BlcmF0aW9uVHJhY2tpbmdFbmFibGVkLFxuICBtYXJrc0FzVGVybWluYXRlUmV0cnksXG4gIG5ldmVyRW5kcyxcbiAgbmV4dFRpY2tBc3luYyxcbiAgbm9ybWFsaXplUHJvbWlzYWJsZSxcbiAgcHJvbWlzZUFsbEFzeW5jRm5zU2VxdWVudGlhbGx5LFxuICBwcm9taXNlQWxsU2VxdWVudGlhbGx5LFxuICBxdWV1ZU1pY3JvdGFza0FzeW5jLFxuICByZXF1ZXN0QW5pbWF0aW9uRnJhbWVBc3luYyxcbiAgcmV0cnlXaXRoVGltZW91dCxcbiAgcnVuV2l0aFRpbWVvdXQsXG4gIHNldEltbWVkaWF0ZUFzeW5jLFxuICBzZXRUaW1lb3V0QXN5bmMsXG4gIHNsZWVwLFxuICB0aW1lb3V0LFxuICB0b0FycmF5LFxuICB3YWl0Rm9yQWxsQXN5bmNPcGVyYXRpb25zXG59IGZyb20gJy4vYXN5bmMudHMnO1xuZXhwb3J0IHsgQmVlcGVyIH0gZnJvbSAnLi9iZWVwZXIudHMnO1xuZXhwb3J0IHtcbiAgYmxvYlRvQXJyYXlCdWZmZXIsXG4gIGJsb2JUb0RhdGFVcmwsXG4gIGJsb2JUb0pwZWdBcnJheUJ1ZmZlcixcbiAgZGF0YVVybFRvQXJyYXlCdWZmZXIsXG4gIGlzSW1hZ2VGaWxlXG59IGZyb20gJy4vYmxvYi50cyc7XG5leHBvcnQge1xuICBlbmFibGVMaWJyYXJ5RGVidWdnZXJzLFxuICBnZXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGdldERlYnVnZ2VyLFxuICBnZXRMaWJEZWJ1Z2dlcixcbiAgcHJpbnRXaXRoU3RhY2tUcmFjZSxcbiAgc2hvd0luaXRpYWxEZWJ1Z01lc3NhZ2Vcbn0gZnJvbSAnLi9kZWJ1Zy50cyc7XG5leHBvcnQgeyBleHRyYWN0WmlwQXJjaGl2ZSB9IGZyb20gJy4vZGVza3RvcC16aXAtZXh0cmFjdG9yLnRzJztcbmV4cG9ydCB7XG4gIEFzeW5jQ2FsbGJhY2tEaXNwb3NhYmxlLFxuICBBc3luY0Rpc3Bvc2FibGVCYXNlLFxuICBDYWxsYmFja0Rpc3Bvc2FibGUsXG4gIENvbWJpbmVBc3luY0Rpc3Bvc2FibGUsXG4gIENvbWJpbmVEaXNwb3NhYmxlLFxuICBEaXNwb3NhYmxlQmFzZSxcbiAgZGlzcG9zZSxcbiAgZGlzcG9zZUFzeW5jLFxuICBEaXNwb3NlRXJyb3JCZWhhdmlvcixcbiAgRGlzcG9zZU9yZGVyLFxuICBpc0FzeW5jRGlzcG9zYWJsZSxcbiAgaXNBc3luY0Rpc3Bvc2FibGVFeCxcbiAgaXNEaXNwb3NhYmxlLFxuICBpc0Rpc3Bvc2FibGVFeCxcbiAgTXVsdGlwbGVEaXNwb3NlQmVoYXZpb3IsXG4gIHRvQXN5bmNEaXNwb3NhYmxlRXgsXG4gIHRvRGlzcG9zYWJsZUV4XG59IGZyb20gJy4vZGlzcG9zYWJsZS50cyc7XG5leHBvcnQge1xuICBnZXRFbnVtS2V5LFxuICBnZXRFbnVtVmFsdWVcbn0gZnJvbSAnLi9lbnVtLnRzJztcbmV4cG9ydCB7XG4gIEFTWU5DX1dSQVBQRVJfRVJST1JfTUVTU0FHRSxcbiAgQ3VzdG9tU3RhY2tUcmFjZUVycm9yLFxuICBkcmFpbkNvbGxlY3RlZFVuaGFuZGxlZEFzeW5jRXJyb3JzLFxuICBlbWl0QXN5bmNFcnJvckV2ZW50LFxuICBlcnJvclRvU3RyaW5nLFxuICBFcnJvcldyYXBwZXIsXG4gIGdldFN0YWNrVHJhY2UsXG4gIGlzQXN5bmNFcnJvcklnbm9yZUNvbnRleHRBY3RpdmUsXG4gIHByaW50RXJyb3IsXG4gIHJlZ2lzdGVyQXN5bmNFcnJvckV2ZW50SGFuZGxlcixcbiAgU2lsZW50RXJyb3IsXG4gIHN0YXJ0QXN5bmNFcnJvcklnbm9yZUNvbnRleHQsXG4gIHN0YXJ0Q29sbGVjdGluZ1VuaGFuZGxlZEFzeW5jRXJyb3JzLFxuICBzdG9wQ29sbGVjdGluZ1VuaGFuZGxlZEFzeW5jRXJyb3JzLFxuICB0aHJvd0V4cHJlc3Npb25cbn0gZnJvbSAnLi9lcnJvci50cyc7XG5leHBvcnQge1xuICBjbG9uZUZ1bmN0aW9uLFxuICBjcmVhdGVGdW5jdGlvbixcbiAgZ2V0RnVuY3Rpb25FeHByZXNzaW9uU3RyaW5nLFxuICBub29wLFxuICBub29wQXN5bmMsXG4gIG5vb3BBc3luY1NpbmdsZXRvblByb21pc2UsXG4gIG9taXRBc3luY1JldHVyblR5cGUsXG4gIG9taXRSZXR1cm5UeXBlXG59IGZyb20gJy4vZnVuY3Rpb24udHMnO1xuZXhwb3J0IHtcbiAgTElCUkFSWV9TVFlMRVMsXG4gIExJQlJBUllfVkVSU0lPTlxufSBmcm9tICcuL2dlbmVyYXRlZC1kdXJpbmctYnVpbGQudHMnO1xuZXhwb3J0IHtcbiAgY3JlYXRlRGl2QXN5bmMsXG4gIGNyZWF0ZUVsQXN5bmMsXG4gIGNyZWF0ZUZyYWdtZW50QXN5bmMsXG4gIGNyZWF0ZVNwYW5Bc3luYyxcbiAgY3JlYXRlU3ZnQXN5bmMsXG4gIGVuc3VyZUxvYWRlZCxcbiAgZ2V0RG9jdW1lbnRXaW5kb3csXG4gIGdldFpJbmRleCxcbiAgaXNFbGVtZW50VmlzaWJsZUluT2Zmc2V0UGFyZW50LFxuICBpc0xvYWRlZCxcbiAgb25BbmNlc3RvclNjcm9sbE9yUmVzaXplLFxuICB0b1B4LFxuICB3YWl0VW50aWxDb25uZWN0ZWRcbn0gZnJvbSAnLi9odG1sLWVsZW1lbnQudHMnO1xuZXhwb3J0IHtcbiAgZXh0cmFjdEpwZWdNZXRhZGF0YVNlZ21lbnRzLFxuICBpbmplY3RKcGVnTWV0YWRhdGFTZWdtZW50c1xufSBmcm9tICcuL2pwZWctbWV0YWRhdGEudHMnO1xuZXhwb3J0IHtcbiAgTGlicmFyeSxcbiAgTElCUkFSWV9OQU1FXG59IGZyb20gJy4vbGlicmFyeS50cyc7XG5leHBvcnQge1xuICBhc3NpZ25XaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGNhc3RUbyxcbiAgY2xvbmVXaXRoTm9uRW51bWVyYWJsZVByb3BlcnRpZXMsXG4gIGRlbGV0ZVByb3BlcnRpZXMsXG4gIGRlbGV0ZVByb3BlcnR5LFxuICBleHRyYWN0RGVmYXVsdEV4cG9ydEludGVyb3AsXG4gIEZ1bmN0aW9uSGFuZGxpbmdNb2RlLFxuICBnZXRBbGxFbnRyaWVzLFxuICBnZXRBbGxLZXlzLFxuICBnZXROZXN0ZWRQcm9wZXJ0eVZhbHVlLFxuICBnZXRQcm90b3R5cGVPZixcbiAgaXNEZWVwRXF1YWwsXG4gIG5hbWVvZixcbiAgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzLFxuICByZW1vdmVVbmRlZmluZWRQcm9wZXJ0aWVzLFxuICBzZXROZXN0ZWRQcm9wZXJ0eVZhbHVlLFxuICB0b0pzb25cbn0gZnJvbSAnLi9vYmplY3QtdXRpbHMudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T2JzaWRpYW5EZXZVdGlsc1N0YXRlLFxuICByZXNldE9ic2lkaWFuRGV2VXRpbHNTdGF0ZVxufSBmcm9tICcuL29ic2lkaWFuLWRldi11dGlscy1zdGF0ZS50cyc7XG5leHBvcnQgeyBBcHBBY3RpdmVGaWxlUHJvdmlkZXIgfSBmcm9tICcuL29ic2lkaWFuL2FjdGl2ZS1maWxlLXByb3ZpZGVyLnRzJztcbmV4cG9ydCB7IGdldEFwcCB9IGZyb20gJy4vb2JzaWRpYW4vYXBwLnRzJztcbmV4cG9ydCB7XG4gIHJldHJ5V2l0aFRpbWVvdXROb3RpY2UsXG4gIHJ1bldpdGhUaW1lb3V0Tm90aWNlXG59IGZyb20gJy4vb2JzaWRpYW4vYXN5bmMtd2l0aC1ub3RpY2UudHMnO1xuZXhwb3J0IHtcbiAgQXR0YWNobWVudFBhdGhDb250ZXh0LFxuICBEVU1NWV9QQVRILFxuICBnZXRBdHRhY2htZW50RmlsZVBhdGgsXG4gIGdldEF0dGFjaG1lbnRGb2xkZXJQYXRoLFxuICBnZXRBdHRhY2htZW50Rm9sZGVyUGF0aFN5bmNPck51bGwsXG4gIGdldEF2YWlsYWJsZVBhdGhGb3JBdHRhY2htZW50cyxcbiAgZ2V0Q2hlY2tJc0F0dGFjaG1lbnRVbml0Rm9sZGVyRnVuY3Rpb24sXG4gIGhhc093bkF0dGFjaG1lbnRGb2xkZXIsXG4gIGlzQXRQcm9wZXJBdHRhY2htZW50UGF0aFxufSBmcm9tICcuL29ic2lkaWFuL2F0dGFjaG1lbnQtcGF0aC50cyc7XG5leHBvcnQge1xuICBmaW5kQXR0YWNobWVudFVuaXRGb2xkZXJQYXRoLFxuICByZWJhc2VQYXRoT250b0ZvbGRlclxufSBmcm9tICcuL29ic2lkaWFuL2F0dGFjaG1lbnQtdW5pdC1mb2xkZXIudHMnO1xuZXhwb3J0IHtcbiAgcmVuZGVyQmFja2xpbmtzVGFibGUsXG4gIHJlbmRlckRlbGF5ZWRCYWNrbGlua3MsXG4gIHJlbmRlckRlbGF5ZWRCYWNrbGlua3NGb3JGb2xkZXJcbn0gZnJvbSAnLi9vYnNpZGlhbi9iYWNrbGluay50cyc7XG5leHBvcnQgeyBQbHVnaW5CYXNlc1ZpZXdSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2Jhc2VzLXZpZXctcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIENhbGxvdXRNb2RlLFxuICByZW5kZXJDYWxsb3V0LFxuICB3cmFwRm9yQ2FsbG91dFxufSBmcm9tICcuL29ic2lkaWFuL2NhbGxvdXQudHMnO1xuZXhwb3J0IHsgZ2V0Q2FudmFzUmVmZXJlbmNlcyB9IGZyb20gJy4vb2JzaWRpYW4vY2FudmFzLnRzJztcbmV4cG9ydCB7XG4gIENhc2VJbnNlbnNpdGl2ZUZpbGVJbmRleCxcbiAgZ2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4LFxuICBzZXRDYXNlSW5zZW5zaXRpdmVGaWxlSW5kZXgsXG4gIHVuc2V0Q2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4XG59IGZyb20gJy4vb2JzaWRpYW4vY2FzZS1pbnNlbnNpdGl2ZS1maWxlLWluZGV4LnRzJztcbmV4cG9ydCB7IGNyZWF0ZUNvZGVCbG9ja1JlZ0V4cCB9IGZyb20gJy4vb2JzaWRpYW4vY29kZS1ibG9jay1yZWctZXhwLnRzJztcbmV4cG9ydCB7IEFic3RyYWN0RmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2Fic3RyYWN0LWZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IENvbW1hbmRIYW5kbGVyQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2NvbW1hbmQtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEVkaXRvckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2VkaXRvci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgRmlsZUNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZpbGUtY29tbWFuZC1oYW5kbGVyLnRzJztcbmV4cG9ydCB7IEZvbGRlckNvbW1hbmRIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLWhhbmRsZXJzL2ZvbGRlci1jb21tYW5kLWhhbmRsZXIudHMnO1xuZXhwb3J0IHsgR2xvYmFsQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvZ2xvYmFsLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuRGVtb1ZhdWx0Q29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvb3Blbi1kZW1vLXZhdWx0LWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBPcGVuU2V0dGluZ3NDb21tYW5kSGFuZGxlciB9IGZyb20gJy4vb2JzaWRpYW4vY29tbWFuZC1oYW5kbGVycy9vcGVuLXNldHRpbmdzLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBVbmxvY2tBY3RpdmVOb3RlQ29tbWFuZEhhbmRsZXIgfSBmcm9tICcuL29ic2lkaWFuL2NvbW1hbmQtaGFuZGxlcnMvdW5sb2NrLWFjdGl2ZS1ub3RlLWNvbW1hbmQtaGFuZGxlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Db21tYW5kUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21tYW5kLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBjb25maWd1cmVDb21tdW5pdHlQbHVnaW4sXG4gIENvbmZpZ3VyZUNvbW11bml0eVBsdWdpblJlc3VsdCxcbiAgZGlzYWJsZUNvbW11bml0eVBsdWdpbixcbiAgZW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICBnZXRDb21tdW5pdHlQbHVnaW5SZXBvLFxuICBnZXRMYXRlc3RSZWxlYXNlVmVyc2lvbixcbiAgaW5zdGFsbENvbW11bml0eVBsdWdpbixcbiAgaW5zdGFsbENvbmZpZ3VyZUVuYWJsZUNvbW11bml0eVBsdWdpbixcbiAgc2VhcmNoQ29tbXVuaXR5UGx1Z2lucyxcbiAgdG9nZ2xlRW5hYmxlQ29tbXVuaXR5UGx1Z2luLFxuICB0b2dnbGVJbnN0YWxsQ29tbXVuaXR5UGx1Z2luLFxuICB1bmluc3RhbGxDb21tdW5pdHlQbHVnaW5cbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21tdW5pdHktcGx1Z2lucy50cyc7XG5leHBvcnQgeyBBYm9ydFNpZ25hbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hYm9ydC1zaWduYWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEFsbFdpbmRvd3NFdmVudENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9hbGwtd2luZG93cy1ldmVudC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQXN5bmNFcnJvckhhbmRsZXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvYXN5bmMtZXJyb3ItaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgcmVnaXN0ZXJBc3luY0V2ZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2FzeW5jLWV2ZW50cy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ2FzZUluc2Vuc2l0aXZlRmlsZUluZGV4Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2Nhc2UtaW5zZW5zaXRpdmUtZmlsZS1pbmRleC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29tcG9uZW50RXggfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvY29tcG9uZW50LWV4LnRzJztcbmV4cG9ydCB7IENvbnNvbGVEZWJ1Z0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9jb25zb2xlLWRlYnVnLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBhc0Rpc3Bvc2FibGVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvZGlzcG9zYWJsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRW1iZWRFeHRlbnNpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL2VtYmVkLWV4dGVuc2lvbnMtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IEdlbmVyYXRlTWFya2Rvd25MaW5rRGVmYXVsdFBhcmFtc0NvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9nZW5lcmF0ZS1tYXJrZG93bi1saW5rLWRlZmF1bHQtcGFyYW1zLWNvbXBvbmVudC50cyc7XG5leHBvcnQge1xuICBDYWxsYmFja0xheW91dFJlYWR5Q29tcG9uZW50LFxuICBMYXlvdXRSZWFkeUNvbXBvbmVudFxufSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbGF5b3V0LXJlYWR5LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNZW51RXZlbnRSZWdpc3RyYXJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIGFyb3VuZCxcbiAgaGFzUGF0Y2hUb2tlbixcbiAgTW9ua2V5QXJvdW5kQ29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9tb25rZXktYXJvdW5kLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBOb3RlYm9va05hdmlnYXRvck1lbnVFdmVudFJlZ2lzdHJhckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9ub3RlYm9vay1uYXZpZ2F0b3ItbWVudS1ldmVudC1yZWdpc3RyYXItY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFBsdWdpbkNvbnRleHRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLWNvbnRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgUGx1Z2luTm90aWNlTW9kZVxufSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NDb21wb25lbnRCYXNlIH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BsdWdpbi1zZXR0aW5ncy1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGx1Z2luU2V0dGluZ3NUYWJDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcGx1Z2luLXNldHRpbmdzLXRhYi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luU3VnZ2VzdGlvbkNvbXBvbmVudCxcbiAgU3VnZ2VzdGVkUGx1Z2luU3RhdGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3BsdWdpbi1zdWdnZXN0aW9uLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBQb2ludGVyUG9zaXRpb25Db21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcG9pbnRlci1wb3NpdGlvbi1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUmVnaXN0cnlDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL2NvbXBvbmVudHMvcmVnaXN0cnktY29tcG9uZW50LnRzJztcbmV4cG9ydCB7XG4gIEVtcHR5Rm9sZGVyQmVoYXZpb3IsXG4gIFJlbmFtZURlbGV0ZUhhbmRsZXJDb21wb25lbnRcbn0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3JlbmFtZS1kZWxldGUtaGFuZGxlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgTk9UX0VNUFRZX0RJUkVDVE9SWV9FUlJPUl9DT0RFLFxuICBSbWRpckd1YXJkQ29tcG9uZW50XG59IGZyb20gJy4vb2JzaWRpYW4vY29tcG9uZW50cy9ybWRpci1ndWFyZC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgU3ludGF4SGlnaGxpZ2h0aW5nQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9jb21wb25lbnRzL3N5bnRheC1oaWdobGlnaHRpbmctY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IGdldERvbUV2ZW50c0hhbmRsZXJzQ29uc3RydWN0b3IgfSBmcm9tICcuL29ic2lkaWFuL2NvbnN0cnVjdG9ycy9nZXQtZG9tLWV2ZW50cy1oYW5kbGVycy1jb25zdHJ1Y3Rvci50cyc7XG5leHBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4vb2JzaWRpYW4vY3NzLWNsYXNzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkRhdGFIYW5kbGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhLWhhbmRsZXIudHMnO1xuZXhwb3J0IHtcbiAgZml4VGl0bGUsXG4gIG1ha2VMaW5rV2l0aFBhdGhcbn0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhdmlldy1saW5rLnRzJztcbmV4cG9ydCB7XG4gIGdldFJlbmRlcmVkQ29udGFpbmVyLFxuICBpbnNlcnRDb2RlQmxvY2ssXG4gIHJlbG9hZEN1cnJlbnRGaWxlQ2FjaGUsXG4gIHJlbmRlcklmcmFtZSxcbiAgcmVuZGVyUGFnaW5hdGVkTGlzdCxcbiAgcmVuZGVyUGFnaW5hdGVkVGFibGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9kYXRhdmlldy50cyc7XG5leHBvcnQgeyBib290c3RyYXBEZW1vVmF1bHQgfSBmcm9tICcuL29ic2lkaWFuL2RlbW8tdmF1bHQtaGVscGVyLnRzJztcbmV4cG9ydCB7XG4gIGdldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZSxcbiAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZVxufSBmcm9tICcuL29ic2lkaWFuL2RlbW8tdmF1bHQtbmFtaW5nLnRzJztcbmV4cG9ydCB7IG9wZW5EZW1vVmF1bHQgfSBmcm9tICcuL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMnO1xuZXhwb3J0IHsgUGx1Z2luRWRpdG9yRXh0ZW5zaW9uUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3ItZXh0ZW5zaW9uLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBQbHVnaW5FZGl0b3JTdWdnZXN0UmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3Itc3VnZ2VzdC1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgc3luY09wZW5FZGl0b3JCdWZmZXJzRm9yUGF0aCxcbiAgdG9nZ2xlRWRpdG9yUmVhZE9ubHlcbn0gZnJvbSAnLi9vYnNpZGlhbi9lZGl0b3IudHMnO1xuZXhwb3J0IHtcbiAgRXZlbnRSZWZEaXNwb3NhYmxlLFxuICBzdWJzY3JpYmVEaXNwb3NhYmxlRXZlbnQsXG4gIHN1YnNjcmliZUV2ZW50XG59IGZyb20gJy4vb2JzaWRpYW4vZXZlbnRzLnRzJztcbmV4cG9ydCB7IFBsdWdpbkV4dGVuc2lvbnNSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2V4dGVuc2lvbnMtcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGFwcGx5Q29udGVudENoYW5nZXMsXG4gIGFwcGx5RmlsZUNoYW5nZXMsXG4gIGlzQ2FudmFzQ2hhbmdlLFxuICBpc0NhbnZhc0ZpbGVOb2RlQ2hhbmdlLFxuICBpc0NhbnZhc1RleHROb2RlQ2hhbmdlLFxuICBpc0NvbnRlbnRDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2UsXG4gIGlzRnJvbnRtYXR0ZXJDaGFuZ2VXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckNoYW5nZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vb2JzaWRpYW4vZmlsZS1jaGFuZ2UudHMnO1xuZXhwb3J0IHtcbiAgYWRkQWxpYXMsXG4gIGRlbGV0ZUFsaWFzLFxuICBwcm9jZXNzRnJvbnRtYXR0ZXIsXG4gIHdhaXRGb3JQZW5kaW5nTGlua1VwZGF0ZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9maWxlLW1hbmFnZXIudHMnO1xuZXhwb3J0IHtcbiAgYXNBcnJheU9mRmlsZXMsXG4gIGFzQXJyYXlPZkZvbGRlcnMsXG4gIGFzRmlsZSxcbiAgYXNGaWxlT3JOdWxsLFxuICBhc0ZvbGRlcixcbiAgYXNGb2xkZXJPck51bGwsXG4gIEJBU0VfRklMRV9FWFRFTlNJT04sXG4gIENBTlZBU19GSUxFX0VYVEVOU0lPTixcbiAgY2hlY2tFeHRlbnNpb24sXG4gIGRvZXNFeGlzdCxcbiAgRmlsZVN5c3RlbVR5cGUsXG4gIGdldEFic3RyYWN0RmlsZSxcbiAgZ2V0QWJzdHJhY3RGaWxlT3JOdWxsLFxuICBnZXRCYXNlbmFtZSxcbiAgZ2V0RXh0ZW5zaW9uLFxuICBnZXRGaWxlLFxuICBnZXRGaWxlT3JOdWxsLFxuICBnZXRGaWxlU3lzdGVtVHlwZSxcbiAgZ2V0Rm9sZGVyLFxuICBnZXRGb2xkZXJPck51bGwsXG4gIGdldE1hcmtkb3duRmlsZXMsXG4gIGdldE9yQ3JlYXRlRmlsZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXIsXG4gIGdldFBhdGgsXG4gIGlzQWJzdHJhY3RGaWxlLFxuICBpc0Jhc2VGaWxlLFxuICBpc0NhbnZhc0ZpbGUsXG4gIGlzRmlsZSxcbiAgaXNGb2xkZXIsXG4gIGlzTWFya2Rvd25GaWxlLFxuICBpc05vdGUsXG4gIGlzVHJlYXRlZEFzQXR0YWNobWVudCxcbiAgTUFSS0RPV05fRklMRV9FWFRFTlNJT04sXG4gIE1pc3NpbmdQYXRoVHJlYXRtZW50LFxuICB0cmltTWFya2Rvd25FeHRlbnNpb25cbn0gZnJvbSAnLi9vYnNpZGlhbi9maWxlLXN5c3RlbS50cyc7XG5leHBvcnQge1xuICBGT0xERVJfTk9URVNfUExVR0lOX0lELFxuICBGb2xkZXJOb3RlTG9jYXRpb24sXG4gIHJlc29sdmVGb2xkZXJOb3RlLFxuICByZXNvbHZlRm9sZGVyTm90ZUNvbmZpZ1xufSBmcm9tICcuL29ic2lkaWFuL2ZvbGRlci1ub3RlLnRzJztcbmV4cG9ydCB7XG4gIGlzRnJvbnRtYXR0ZXJMaW5rQ2FjaGVXaXRoT2Zmc2V0cyxcbiAgdG9Gcm9udG1hdHRlckxpbmtDYWNoZVdpdGhPZmZzZXRzXG59IGZyb20gJy4vb2JzaWRpYW4vZnJvbnRtYXR0ZXItbGluay1jYWNoZS13aXRoLW9mZnNldHMudHMnO1xuZXhwb3J0IHtcbiAgcGFyc2VGcm9udG1hdHRlcixcbiAgcmVtb3ZlRW1wdHlGcm9udG1hdHRlclZhbHVlcyxcbiAgc2V0RnJvbnRtYXR0ZXJcbn0gZnJvbSAnLi9vYnNpZGlhbi9mcm9udG1hdHRlci50cyc7XG5leHBvcnQgeyBQbHVnaW5Ib3ZlckxpbmtTb3VyY2VSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL2hvdmVyLWxpbmstc291cmNlLXJlZ2lzdHJhci50cyc7XG5leHBvcnQgeyBhcHBlbmRDb2RlQmxvY2sgfSBmcm9tICcuL29ic2lkaWFuL2h0bWwtZWxlbWVudC50cyc7XG5leHBvcnQge1xuICBERUZBVUxUX05TLFxuICBpbml0STE4TixcbiAgdFxufSBmcm9tICcuL29ic2lkaWFuL2kxOG4vaTE4bi50cyc7XG5leHBvcnQgeyBlbiB9IGZyb20gJy4vb2JzaWRpYW4vaTE4bi9sb2NhbGVzL2VuLnRzJztcbmV4cG9ydCB7XG4gIERFRkFVTFRfTEFOR1VBR0UsXG4gIGRlZmF1bHRUcmFuc2xhdGlvbnNNYXBcbn0gZnJvbSAnLi9vYnNpZGlhbi9pMThuL2xvY2FsZXMvdHJhbnNsYXRpb25zLW1hcC50cyc7XG5leHBvcnQgeyBpc0luT2JzaWRpYW4gfSBmcm9tICcuL29ic2lkaWFuL2lzLWluLW9ic2lkaWFuLnRzJztcbmV4cG9ydCB7XG4gIGNvbnZlcnRMaW5rLFxuICBlZGl0QmFja2xpbmtzLFxuICBlZGl0TGlua3MsXG4gIGVkaXRMaW5rc0luQ29udGVudCxcbiAgZXh0cmFjdExpbmtGaWxlLFxuICBmaXhGcm9udG1hdHRlck1hcmtkb3duTGlua3MsXG4gIGdlbmVyYXRlTWFya2Rvd25MaW5rLFxuICBnZW5lcmF0ZVJhd01hcmtkb3duTGluayxcbiAgZ2V0R2VuZXJhdGVNYXJrZG93bkxpbmtEZWZhdWx0UGFyYW1zRm5zLFxuICBoYXNBbmdsZUJyYWNrZXRzLFxuICBoYXNFbWJlZFN5bnRheCxcbiAgaGFzTGVhZGluZ0RvdCxcbiAgaGFzTGVhZGluZ1NsYXNoLFxuICBoYXNXaWtpbGlua1N5bnRheCxcbiAgTGlua1BhdGhTdHlsZSxcbiAgTGlua1N0eWxlLFxuICBzaG91bGRSZXNldEFsaWFzLFxuICBzcGxpdFN1YnBhdGgsXG4gIHVwZGF0ZUZpbGVVcmxMaW5rc0luQ29udGVudCxcbiAgdXBkYXRlRmlsZVVybExpbmtzSW5GaWxlLFxuICB1cGRhdGVMaW5rLFxuICB1cGRhdGVMaW5rc0luQ29udGVudCxcbiAgdXBkYXRlTGlua3NJbkZpbGVcbn0gZnJvbSAnLi9vYnNpZGlhbi9saW5rLnRzJztcbmV4cG9ydCB7IGludm9rZUFzeW5jQW5kTG9nIH0gZnJvbSAnLi9vYnNpZGlhbi9sb2dnZXIudHMnO1xuZXhwb3J0IHsgbG9vcCB9IGZyb20gJy4vb2JzaWRpYW4vbG9vcC50cyc7XG5leHBvcnQgeyBQbHVnaW5NYXJrZG93bkNvZGVCbG9ja1Byb2Nlc3NvclJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3ItcmVnaXN0cmFyLnRzJztcbmV4cG9ydCB7XG4gIGdldENvZGVCbG9ja01hcmtkb3duSW5mbyxcbiAgaW5zZXJ0QWZ0ZXJDb2RlQmxvY2ssXG4gIGluc2VydEJlZm9yZUNvZGVCbG9jayxcbiAgcmVtb3ZlQ29kZUJsb2NrLFxuICByZXBsYWNlQ29kZUJsb2NrXG59IGZyb20gJy4vb2JzaWRpYW4vbWFya2Rvd24tY29kZS1ibG9jay1wcm9jZXNzb3IudHMnO1xuZXhwb3J0IHsgUGx1Z2luTWFya2Rvd25Qb3N0UHJvY2Vzc29yUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi1wb3N0LXByb2Nlc3Nvci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgZ2V0RnVsbENvbnRlbnRIdG1sIH0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi12aWV3LnRzJztcbmV4cG9ydCB7XG4gIGZ1bGxSZW5kZXIsXG4gIG1hcmtkb3duVG9IdG1sLFxuICByZWdpc3RlckxpbmtIYW5kbGVycyxcbiAgcmVuZGVyRXh0ZXJuYWxMaW5rLFxuICByZW5kZXJJbnRlcm5hbExpbmtcbn0gZnJvbSAnLi9vYnNpZGlhbi9tYXJrZG93bi50cyc7XG5leHBvcnQge1xuICBDYWNoZWRNZXRhZGF0YUV4RmVhdHVyZSxcbiAgZW5zdXJlTWV0YWRhdGFDYWNoZVJlYWR5LFxuICBnZXRCYWNrbGlua3NGb3JGaWxlT3JQYXRoLFxuICBnZXRCYWNrbGlua3NGb3JGaWxlU2FmZSxcbiAgZ2V0Q2FjaGVTYWZlLFxuICBnZXRGcm9udG1hdHRlclNhZmUsXG4gIGdldExpbmtzLFxuICBpc0NhY2hlZE1ldGFkYXRhRXgsXG4gIHBhcnNlTWV0YWRhdGEsXG4gIHJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICByZWdpc3RlckZpbGVzLFxuICB1bnJlZ2lzdGVyRmlsZUNhY2hlRm9yTm9uRXhpc3RpbmdGaWxlLFxuICB1bnJlZ2lzdGVyRmlsZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9tZXRhZGF0YS1jYWNoZS50cyc7XG5leHBvcnQgeyBhbGVydCB9IGZyb20gJy4vb2JzaWRpYW4vbW9kYWxzL2FsZXJ0LnRzJztcbmV4cG9ydCB7IGNvbmZpcm0gfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9jb25maXJtLnRzJztcbmV4cG9ydCB7IE1pbmltaXphYmxlTW9kYWwgfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9taW5pbWl6YWJsZS1tb2RhbC50cyc7XG5leHBvcnQge1xuICBNb2RhbENvbW1hbmRCdWlsZGVyLFxuICBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZVxufSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgTW9kYWxCYXNlLFxuICBzaG93TW9kYWxcbn0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvbW9kYWwudHMnO1xuZXhwb3J0IHsgcHJvbXB0IH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvcHJvbXB0LnRzJztcbmV4cG9ydCB7IHNlbGVjdEl0ZW0gfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9zZWxlY3QtaXRlbS50cyc7XG5leHBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL29ic2lkaWFuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcbmV4cG9ydCB7IFN1Z2dlc3RNb2RhbENvbW1hbmRCdWlsZGVyIH0gZnJvbSAnLi9vYnNpZGlhbi9tb2RhbHMvc3VnZ2VzdC1tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuZXhwb3J0IHtcbiAgZmlsdGVySGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhzLFxuICBmaW5kTm9Qcmlvcml0eVdpbm5lclJlYXNvbixcbiAgZmluZE5vdGVQcmlvcml0eVJhbmssXG4gIE5PX1BSSU9SSVRZX01BVENILFxuICBOb1ByaW9yaXR5V2lubmVyUmVhc29uLFxuICBwaWNrSGlnaGVzdFByaW9yaXR5Tm90ZVBhdGhcbn0gZnJvbSAnLi9vYnNpZGlhbi9ub3RlLXByaW9yaXR5LnRzJztcbmV4cG9ydCB7XG4gIE5PVEVCT09LX05BVklHQVRPUl9NRU5VX1NPVVJDRSxcbiAgTk9URUJPT0tfTkFWSUdBVE9SX1BMVUdJTl9JRCxcbiAgcmVzb2x2ZU5vdGVib29rTmF2aWdhdG9yQXBpXG59IGZyb20gJy4vb2JzaWRpYW4vbm90ZWJvb2stbmF2aWdhdG9yLnRzJztcbmV4cG9ydCB7IFBsdWdpbk9ic2lkaWFuUHJvdG9jb2xIYW5kbGVyUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9vYnNpZGlhbi1wcm90b2NvbC1oYW5kbGVyLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXROZXdMaW5rRm9ybWF0LFxuICBpc1NwZWxsY2hlY2tFbmFibGVkLFxuICBzaG91bGRVc2VXaWtpbGlua3Ncbn0gZnJvbSAnLi9vYnNpZGlhbi9vYnNpZGlhbi1zZXR0aW5ncy50cyc7XG5leHBvcnQge1xuICBlc2NhcGVBbGlhcyxcbiAgaXNQYXJzZUxpbmtGcm9udG1hdHRlclJlZmVyZW5jZSxcbiAgaXNQYXJzZUxpbmtSZWZlcmVuY2UsXG4gIHBhcnNlRnJvbnRtYXR0ZXJMaW5rcyxcbiAgcGFyc2VMaW5rLFxuICBwYXJzZUxpbmtzLFxuICB0b1BhcnNlTGlua1JlZmVyZW5jZSxcbiAgdW5lc2NhcGVBbGlhc1xufSBmcm9tICcuL29ic2lkaWFuL3BhcnNlLWxpbmsudHMnO1xuZXhwb3J0IHtcbiAgUGF0aFNldHRpbmdzLFxuICBwYXRoc1ZhbGlkYXRvclxufSBmcm9tICcuL29ic2lkaWFuL3BhdGgtc2V0dGluZ3MudHMnO1xuZXhwb3J0IHsgcHJpbnRUb1BkZiB9IGZyb20gJy4vb2JzaWRpYW4vcGRmLnRzJztcbmV4cG9ydCB7IFBsdWdpbkNsaUhhbmRsZXJSZWdpc3RyYXIgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi1jbGktaGFuZGxlci1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgT2JzaWRpYW5QbHVnaW5SZXBvUGF0aHMgfSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9vYnNpZGlhbi1wbHVnaW4tcmVwby1wYXRocy50cyc7XG5leHBvcnQge1xuICBQbHVnaW5BcGlQYXlsb2FkS2luZCxcbiAgUGx1Z2luQXBpUmV2b2tlZEVycm9yLFxuICBQbHVnaW5BcGlVbmF2YWlsYWJpbGl0eVJlYXNvbixcbiAgUGx1Z2luQXBpVW5hdmFpbGFibGVFcnJvcixcbiAgUGx1Z2luQXBpVmFsaWRhdGlvbkVycm9yLFxuICBwdWJsaXNoUGx1Z2luQXBpLFxuICB3YXRjaFBsdWdpbkFwaVxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tYXBpLnRzJztcbmV4cG9ydCB7XG4gIGFkZFBsdWdpbkNzc0NsYXNzZXMsXG4gIGluaXREZWJ1Z0NvbnRyb2xsZXIsXG4gIGluaXRQbHVnaW5Db250ZXh0XG59IGZyb20gJy4vb2JzaWRpYW4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbmV4cG9ydCB7IFBsdWdpbkV2ZW50U291cmNlSW1wbCB9IGZyb20gJy4vb2JzaWRpYW4vcGx1Z2luL3BsdWdpbi1ldmVudC1zb3VyY2UudHMnO1xuZXhwb3J0IHtcbiAgUGx1Z2luU2V0dGluZ3NUYWJCYXNlLFxuICBTQVZFX1RPX0ZJTEVfQ09OVEVYVFxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4tc2V0dGluZ3MtdGFiLnRzJztcbmV4cG9ydCB7XG4gIFBsdWdpbkJhc2UsXG4gIHJlbG9hZFBsdWdpbixcbiAgc2hvd0Vycm9yQW5kRGlzYWJsZVBsdWdpblxufSBmcm9tICcuL29ic2lkaWFuL3BsdWdpbi9wbHVnaW4udHMnO1xuZXhwb3J0IHsgZWRpdEZpZWxkc0luUG9wb3ZlciB9IGZyb20gJy4vb2JzaWRpYW4vcG9wb3ZlcnMvZmllbGQtcG9wb3Zlci50cyc7XG5leHBvcnQge1xuICBjcmVhdGVBbmNob3JGcm9tRG9jdW1lbnRDZW50ZXIsXG4gIGNyZWF0ZUFuY2hvckZyb21FbGVtZW50LFxuICBjcmVhdGVBbmNob3JGcm9tUG9pbnQsXG4gIGNyZWF0ZUFuY2hvckZyb21TZWxlY3Rpb25cbn0gZnJvbSAnLi9vYnNpZGlhbi9wb3BvdmVycy9wb3BvdmVyLWFuY2hvci50cyc7XG5leHBvcnQgeyBzaG93UG9wb3ZlciB9IGZyb20gJy4vb2JzaWRpYW4vcG9wb3ZlcnMvcG9wb3Zlci50cyc7XG5leHBvcnQge1xuICBhZGRUb1F1ZXVlLFxuICBhZGRUb1F1ZXVlQW5kV2FpdCxcbiAgZmx1c2hRdWV1ZVxufSBmcm9tICcuL29ic2lkaWFuL3F1ZXVlLnRzJztcbmV4cG9ydCB7XG4gIEFwcENvbnRleHQsXG4gIHVzZUFwcFxufSBmcm9tICcuL29ic2lkaWFuL3JlYWN0L2FwcC1jb250ZXh0LnRzJztcbmV4cG9ydCB7XG4gIGlzQ2FudmFzRmlsZU5vZGVSZWZlcmVuY2UsXG4gIGlzQ2FudmFzUmVmZXJlbmNlLFxuICBpc0NhbnZhc1RleHROb2RlUmVmZXJlbmNlLFxuICBpc1JlZmVyZW5jZUluT2Zmc2V0UmFuZ2UsXG4gIHJlZmVyZW5jZVRvRmlsZUNoYW5nZSxcbiAgc29ydFJlZmVyZW5jZXNcbn0gZnJvbSAnLi9vYnNpZGlhbi9yZWZlcmVuY2UudHMnO1xuZXhwb3J0IHtcbiAgaXNSZXNvdXJjZUxvY2tlZEZvclBhdGgsXG4gIGlzUmVzb3VyY2VMb2NrZWRGb3JQYXRoQnlBbmNlc3RvcixcbiAgbG9ja1Jlc291cmNlRm9yUGF0aCxcbiAgcmVxdWVzdFJlc291cmNlVW5sb2NrRm9yUGF0aCxcbiAgUmVzb3VyY2VMb2NrQ29tcG9uZW50LFxuICBSZXNvdXJjZUxvY2tlZEVycm9yLFxuICB1bmxvY2tSZXNvdXJjZUZvclBhdGhcbn0gZnJvbSAnLi9vYnNpZGlhbi9yZXNvdXJjZS1sb2NrLnRzJztcbmV4cG9ydCB7IHJlbGF0aXZlUGF0aFRvUmVzb3VyY2VVcmwgfSBmcm9tICcuL29ic2lkaWFuL3Jlc291cmNlLXVybC50cyc7XG5leHBvcnQgeyBQbHVnaW5SaWJib25JY29uUmVnaXN0cmFyIH0gZnJvbSAnLi9vYnNpZGlhbi9yaWJib24taWNvbi1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHsgQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9jaGVja2JveC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgQ29kZUhpZ2hsaWdodGVyQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvY29kZS1oaWdobGlnaHRlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2RhdGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IERhdGVUaW1lQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvZGF0ZS10aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBFbWFpbENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL2VtYWlsLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBGaWxlQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvZmlsZS1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTW9udGhDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9tb250aC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBNdWx0aXBsZUVtYWlsQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvbXVsdGlwbGUtZW1haWwtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlRmlsZUNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLWZpbGUtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE11bHRpcGxlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL211bHRpcGxlLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IE51bWJlckNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL251bWJlci1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgUGFzc3dvcmRDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy9wYXNzd29yZC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZW5zdXJlV3JhcHBlZCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3NldHRpbmctY29tcG9uZW50LXdyYXBwZXIudHMnO1xuZXhwb3J0IHsgVGVsZXBob25lQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdGVsZXBob25lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBnZXRUZXh0QmFzZWRDb21wb25lbnRWYWx1ZSB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3RleHQtYmFzZWQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFRpbWVDb21wb25lbnQgfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctY29tcG9uZW50cy90aW1lLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUcmlTdGF0ZUNoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdHJpLXN0YXRlLWNoZWNrYm94LWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZERyb3Bkb3duQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdHlwZWQtZHJvcGRvd24tY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkTXVsdGlwbGVEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLW11bHRpcGxlLWRyb3Bkb3duLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBUeXBlZFJhbmdlVGV4dENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLXJhbmdlLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFR5cGVkVGV4dENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3R5cGVkLXRleHQtY29tcG9uZW50LnRzJztcbmV4cG9ydCB7IFVybENvbXBvbmVudCB9IGZyb20gJy4vb2JzaWRpYW4vc2V0dGluZy1jb21wb25lbnRzL3VybC1jb21wb25lbnQudHMnO1xuZXhwb3J0IHsgZ2V0VmFsaWRhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvdmFsaWRhdG9yLWNvbXBvbmVudC50cyc7XG5leHBvcnQgeyBXZWVrQ29tcG9uZW50IH0gZnJvbSAnLi9vYnNpZGlhbi9zZXR0aW5nLWNvbXBvbmVudHMvd2Vlay1jb21wb25lbnQudHMnO1xuZXhwb3J0IHtcbiAgYWRvcHRTZXR0aW5nRXgsXG4gIFNldHRpbmdFeFxufSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctZXgudHMnO1xuZXhwb3J0IHsgU2V0dGluZ0dyb3VwRXggfSBmcm9tICcuL29ic2lkaWFuL3NldHRpbmctZ3JvdXAtZXgudHMnO1xuZXhwb3J0IHsgUGx1Z2luU3RhdHVzQmFySXRlbVJlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vc3RhdHVzLWJhci1pdGVtLXJlZ2lzdHJhci50cyc7XG5leHBvcnQge1xuICBnZXRUZW1wbGF0ZXJGdW5jdGlvbnMsXG4gIGdldFRlbXBsYXRlclJlbmRlclRhcmdldEZpbGUsXG4gIHBhcnNlVGVtcGxhdGUsXG4gIHJlcXVpcmVUZW1wbGF0ZXJBcGksXG4gIHJlc29sdmVUZW1wbGF0ZXJBcGksXG4gIFRFTVBMQVRFUl9QTFVHSU5fSUQsXG4gIFRlbXBsYXRlckFjdGl2ZUZpbGVQcm92aWRlcixcbiAgVGVtcGxhdGVyUnVuTW9kZSxcbiAgVGVtcGxhdGVyVW5hdmFpbGFiaWxpdHlSZWFzb24sXG4gIFRlbXBsYXRlclVuYXZhaWxhYmxlRXJyb3Jcbn0gZnJvbSAnLi9vYnNpZGlhbi90ZW1wbGF0ZXIudHMnO1xuZXhwb3J0IHtcbiAgY2xpY2tFbGVtZW50LFxuICBjbGlja01vdXNlLFxuICBob3ZlckVsZW1lbnQsXG4gIG1vdmVNb3VzZSxcbiAgcHJlc3NLZXksXG4gIHR5cGVJbnRvRWRpdG9yLFxuICB1bmhvdmVyRWxlbWVudFxufSBmcm9tICcuL29ic2lkaWFuL3RydXN0ZWQtaW5wdXQudHMnO1xuZXhwb3J0IHtcbiAgZ2V0T3NBbmRPYnNpZGlhblVuc2FmZVBhdGhDaGFyc1JlZ0V4cCxcbiAgZ2V0T3NVbnNhZmVQYXRoQ2hhcnNSZWdFeHAsXG4gIGhhc1dpbmRvd3NUcmFpbGluZ0NoYXJzLFxuICBpc1ZhbGlkYXRpb25NZXNzYWdlSG9sZGVyLFxuICBpc1dpbmRvd3NSZXNlcnZlZE5hbWUsXG4gIE9CU0lESUFOX1VOU0FGRV9GSUxFTkFNRV9DSEFSUyxcbiAgdHJpbVdpbmRvd3NUcmFpbGluZ0NoYXJzLFxuICBVTklYX1VOU0FGRV9QQVRIX0NIQVJTLFxuICBXSU5ET1dTX1VOU0FGRV9QQVRIX0NIQVJTXG59IGZyb20gJy4vb2JzaWRpYW4vdmFsaWRhdGlvbi50cyc7XG5leHBvcnQge1xuICBkZWxldGVJZk5vdFVzZWQsXG4gIERlbGV0ZUlmTm90VXNlZFJlc3VsdFxufSBmcm9tICcuL29ic2lkaWFuL3ZhdWx0LWRlbGV0ZS50cyc7XG5leHBvcnQgeyBWYXVsdFRyYW5zYWN0aW9uIH0gZnJvbSAnLi9vYnNpZGlhbi92YXVsdC10cmFuc2FjdGlvbi50cyc7XG5leHBvcnQge1xuICBjbGVhbnVwRW1wdHlGb2xkZXJzLFxuICBjb3B5U2FmZSxcbiAgY3JlYXRlRm9sZGVyU2FmZSxcbiAgQ3JlYXRlRm9sZGVyU2FmZVJlc3VsdCxcbiAgY3JlYXRlVGVtcG9yYXJ5RmlsZSxcbiAgY3JlYXRlVGVtcG9yYXJ5Rm9sZGVyLFxuICBkZWxldGVFbXB0eUZvbGRlcixcbiAgZGVsZXRlRW1wdHlGb2xkZXJIaWVyYXJjaHksXG4gIGdldEFic3RyYWN0RmlsZVBhdGhTYWZlLFxuICBnZXRBdmFpbGFibGVQYXRoLFxuICBnZXRGaWxlUGF0aFNhZmUsXG4gIGdldEZvbGRlclBhdGhTYWZlLFxuICBnZXRNYXJrZG93bkZpbGVzU29ydGVkLFxuICBnZXROb3RlRmlsZXNTb3J0ZWQsXG4gIGdldE9yQ3JlYXRlQWJzdHJhY3RGaWxlU2FmZSxcbiAgZ2V0T3JDcmVhdGVGaWxlU2FmZSxcbiAgZ2V0T3JDcmVhdGVGb2xkZXJTYWZlLFxuICBnZXRTYWZlUmVuYW1lUGF0aCxcbiAgSW52b2tlRmlsZUFjdGlvblNhZmVSZXN1bHQsXG4gIGludm9rZVdpdGhGaWxlU3lzdGVtTG9jayxcbiAgaXNDaGlsZCxcbiAgaXNDaGlsZE9yU2VsZixcbiAgaXNFbXB0eUZvbGRlcixcbiAgbGlzdFNhZmUsXG4gIHByb2Nlc3MsXG4gIHJlYWRTYWZlLFxuICByZW5hbWVTYWZlLFxuICBzYXZlTm90ZSxcbiAgdHJhc2hTYWZlXG59IGZyb20gJy4vb2JzaWRpYW4vdmF1bHQudHMnO1xuZXhwb3J0IHsgUGx1Z2luVmlld1JlZ2lzdHJhciB9IGZyb20gJy4vb2JzaWRpYW4vdmlldy1yZWdpc3RyYXIudHMnO1xuZXhwb3J0IHtcbiAgZW5zdXJlTGF5b3V0UmVhZHksXG4gIGdldEFsbENvbnRhaW5lcnMsXG4gIGdldEFsbERvbVdpbmRvd3MsXG4gIGdldE1haW5XaW5kb3csXG4gIHN3aXRjaFRvTWFpbldpbmRvdyxcbiAgc3dpdGNoVG9XaW5kb3dcbn0gZnJvbSAnLi9vYnNpZGlhbi93b3Jrc3BhY2UudHMnO1xuZXhwb3J0IHtcbiAgYmFzZW5hbWUsXG4gIGRlbGltaXRlcixcbiAgZGlybmFtZSxcbiAgZXh0bmFtZSxcbiAgZm9ybWF0LFxuICBnZXRGaWxlTmFtZSxcbiAgZ2V0Rm9sZGVyTmFtZSxcbiAgaXNBYnNvbHV0ZSxcbiAgam9pbixcbiAgbWFrZUZpbGVOYW1lLFxuICBub3JtYWxpemVJZlJlbGF0aXZlLFxuICBub3JtYWxpemVQYXRoLFxuICBwYXJzZSxcbiAgcG9zaXgsXG4gIHJlbGF0aXZlLFxuICByZXNvbHZlLFxuICBzZXBhcmF0b3IsXG4gIHRvUG9zaXhCdWZmZXIsXG4gIHRvUG9zaXhQYXRoXG59IGZyb20gJy4vcGF0aC50cyc7XG5leHBvcnQge1xuICBBTFdBWVNfTUFUQ0hfUkVHX0VYUCxcbiAgZXNjYXBlUmVnRXhwLFxuICBnZXRNYW5kYXRvcnlOYW1lZEdyb3VwLFxuICBnZXRPcHRpb25hbE5hbWVkR3JvdXAsXG4gIGlzVmFsaWRSZWdFeHAsXG4gIE5FVkVSX01BVENIX1JFR19FWFAsXG4gIG9uZU9mLFxuICBSZWdFeHBNZXJnZUZsYWdzQ29uZmxpY3RTdHJhdGVneVxufSBmcm9tICcuL3JlZy1leHAudHMnO1xuZXhwb3J0IHtcbiAgYnlwYXNzU3RyaWN0UHJveHksXG4gIHN0cmljdFByb3h5XG59IGZyb20gJy4vc3RyaWN0LXByb3h5LnRzJztcbmV4cG9ydCB7XG4gIEVNUFRZLFxuICBlbnN1cmVFbmRzV2l0aCxcbiAgZW5zdXJlTGZFbmRpbmdzLFxuICBlbnN1cmVTdGFydHNXaXRoLFxuICBlc2NhcGUsXG4gIGdldExmTm9ybWFsaXplZE9mZnNldFRvT3JpZ2luYWxPZmZzZXRNYXBwZXIsXG4gIGhhc1NpbmdsZU9jY3VycmVuY2UsXG4gIGluZGVudCxcbiAgaW5zZXJ0QXQsXG4gIG1ha2VWYWxpZFZhcmlhYmxlTmFtZSxcbiAgbm9ybWFsaXplU3RyaW5nLFxuICByZXBsYWNlLFxuICByZXBsYWNlQWxsLFxuICByZXBsYWNlQWxsQXN5bmMsXG4gIHRyaW1FbmQsXG4gIHRyaW1TdGFydCxcbiAgdW5lc2NhcGUsXG4gIHVuaW5kZW50XG59IGZyb20gJy4vc3RyaW5nLnRzJztcbmV4cG9ydCB7IERhdGVUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2RhdGUtdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgRHVyYXRpb25UcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL2R1cmF0aW9uLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IEdyb3VwVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9ncm91cC10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBNYXBUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL21hcC10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBTZXRUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3NldC10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBTa2lwUHJpdmF0ZVByb3BlcnR5VHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy9za2lwLXByaXZhdGUtcHJvcGVydHktdHJhbnNmb3JtZXIudHMnO1xuZXhwb3J0IHsgVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy90cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBUd29XYXlNYXBUcmFuc2Zvcm1lciB9IGZyb20gJy4vdHJhbnNmb3JtZXJzL3R3by13YXktbWFwLXRyYW5zZm9ybWVyLnRzJztcbmV4cG9ydCB7IFR5cGVkVHJhbnNmb3JtZXIgfSBmcm9tICcuL3RyYW5zZm9ybWVycy90eXBlZC10cmFuc2Zvcm1lci50cyc7XG5leHBvcnQgeyBUd29XYXlNYXAgfSBmcm9tICcuL3R3by13YXktbWFwLnRzJztcbmV4cG9ydCB7XG4gIGFzc2VydCxcbiAgYXNzZXJ0R2VuZXJpY09iamVjdCxcbiAgYXNzZXJ0TmV2ZXIsXG4gIGFzc2VydE5vbk51bGxhYmxlLFxuICBlbnN1cmVHZW5lcmljT2JqZWN0LFxuICBlbnN1cmVOb25OdWxsYWJsZVxufSBmcm9tICcuL3R5cGUtZ3VhcmRzLnRzJztcbmV4cG9ydCB7IFR5cGVBc3NlcnRlciB9IGZyb20gJy4vdHlwZS50cyc7XG5leHBvcnQge1xuICBlbmNvZGVVcmwsXG4gIGlzRmlsZVVybCxcbiAgaXNVcmwsXG4gIG5vcm1hbGl6ZUZpbGVVcmwsXG4gIHBhdGhUb0ZpbGVVcmxcbn0gZnJvbSAnLi91cmwudHMnO1xuZXhwb3J0IHsgcmVzb2x2ZVZhbHVlIH0gZnJvbSAnLi92YWx1ZS1wcm92aWRlci50cyc7XG5leHBvcnQgeyBWYWx1ZVdyYXBwZXIgfSBmcm9tICcuL3ZhbHVlLXdyYXBwZXIudHMnO1xuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLGNBQWM7QUFDdkI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHlCQUF5QjtBQUNsQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsNkJBQTZCO0FBQ3RDLFNBQVMsY0FBYztBQUN2QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFB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Q3RDLFNBQVMscUJBQXFCO0FBQzlCO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUyxzQkFBc0I7QUFDL0IsU0FBUyxvQ0FBb0M7QUFDN0M7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsd0JBQXdCO0FBQ2pDO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1AsU0FBUywyQkFBMkI7QUFDcEM7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBQ1A7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUDtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHVCQUF1QjtBQUNoQyxTQUFTLDJCQUEyQjtBQUNwQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLHNCQUFzQjtBQUMvQixTQUFTLHNCQUFzQjtBQUMvQixTQUFTLHNDQUFzQztBQUMvQyxTQUFTLG1CQUFtQjtBQUM1QixTQUFTLDRCQUE0QjtBQUNyQyxTQUFTLHdCQUF3QjtBQUNqQyxTQUFTLGlCQUFpQjtBQUMxQjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLG9CQUFvQjtBQUM3QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBQzdCLFNBQVMsb0JBQW9COyIsCiAgIm5hbWVzIjogW10KfQo=
@@ -171,4 +171,4 @@ function readEntryData(archive, entry) {
171
171
  export {
172
172
  extractZipArchive
173
173
  };
174
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEV4dHJhY3RzIGEgWklQIGFyY2hpdmUgdG8gZGlzayB1c2luZyBvbmx5IE5vZGUncyBgemxpYmAgXHUyMDE0IHdpdGggbm8gdGhpcmQtcGFydHkgdW56aXAgZGVwZW5kZW5jeS5cbiAqXG4gKiBJdCBleGlzdHMgZm9yIG9uZSBtZWFzdXJlZCByZWFzb24uIFRoZSBkZXBlbmRlbmN5IGl0IHJlcGxhY2VkIG9uIHRoaXMgcGF0aCwgYGFkbS16aXBgLCBidW5kbGVkXG4gKiByb3VnaGx5IDM0IEtCIG9mIG1pbmlmaWVkIEphdmFTY3JpcHQgaW50byBFVkVSWSBPYnNpZGlhbiBwbHVnaW4gYnVpbHQgd2l0aCB0aGlzIGxpYnJhcnk6IGEgcGx1Z2luXG4gKiBzaGlwcyBhIHNpbmdsZSBDSlMgYG1haW4uanNgLCBlc2J1aWxkIGhhcyBubyBjb2RlIHNwbGl0dGluZyB0byBwdXQgYSBkZXBlbmRlbmN5IGJlaGluZCwgYW5kIGFcbiAqIGBhd2FpdCBpbXBvcnQoKWAgb25seSBkZWZlcnMgZXZhbHVhdGlvbiBcdTIwMTQgdGhlIG1vZHVsZSBib2R5IGlzIGlubGluZWQgZWl0aGVyIHdheS4gYG5vZGU6emxpYmAgaXNcbiAqIGFscmVhZHkgYW4gZXNidWlsZCBleHRlcm5hbCwgc28gdGhlIHNhbWUgd29yayBub3cgY29zdHMgYSBwbHVnaW4gYnVuZGxlIG5vdGhpbmcgYXQgYWxsLiBBcmNoaXZlc1xuICogYXJlIHN0aWxsIFdSSVRURU4gd2l0aCBgYWRtLXppcGAgYXQgcmVsZWFzZSB0aW1lIChgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKSwgd2hpY2ggaXMgTm9kZS1zaWRlXG4gKiB0b29saW5nIGFuZCBuZXZlciByZWFjaGVzIGEgcGx1Z2luIGJ1bmRsZS5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgbmFycm93OiBpdCByZWFkcyBleGFjdGx5IHdoYXQgdGhhdCB3cml0ZXIgcHJvZHVjZXMgXHUyMDE0IHN0b3JlZCBhbmQgZGVmbGF0ZWQgZW50cmllcyBpbiBhblxuICogdW5lbmNyeXB0ZWQgYXJjaGl2ZSBiZWxvdyB0aGUgNCBHQiAvIDY1NTM1LWVudHJ5IFpJUDY0IHRocmVzaG9sZCBcdTIwMTQgYW5kIHJhaXNlcyBhIG5hbWVkIGVycm9yIGZvclxuICogYW55dGhpbmcgZWxzZSByYXRoZXIgdGhhbiBndWVzc2luZyBhdCBpdC4gU2l6ZXMgYW5kIG9mZnNldHMgYXJlIHRha2VuIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5LFxuICogd2hpY2ggaXMgYXV0aG9yaXRhdGl2ZSBldmVuIGZvciBhcmNoaXZlcyB3cml0dGVuIHdpdGggZGF0YSBkZXNjcmlwdG9ycy5cbiAqXG4gKiBUaGUgYG5vZGU6YCBpbXBvcnRzIGJlbG93IGFyZSBzYWZlIHRvIG1lcmVseSBFVkFMVUFURSBvbiBtb2JpbGUgXHUyMDE0IGByZXF1aXJlYCBoYW5kcyBiYWNrIGB1bmRlZmluZWRgXG4gKiB0aGVyZSBhbmQgbm90aGluZyByZWFkcyBpdCBhdCBsb2FkIHRpbWUgXHUyMDE0IHNvIHRoaXMgbW9kdWxlIGNhbiBzaXQgaW4gdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHdpdGhvdXRcbiAqIGJyZWFraW5nIHRoZSBsaWJyYXJ5J3MgbG9hZCBvbiBBbmRyb2lkLiBPbmx5IHRoZSBjYWxscyBhcmUgZGVza3RvcC1vbmx5LlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBleHRyYWN0aW9uOyB0aGUgb25seSBjYWxsZXIgaXMgZ2F0ZWQgYnkgYFBsYXRmb3JtLmlzRGVza3RvcEFwcGAsIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCBvbiBtb2JpbGUuICovXG5pbXBvcnQgdHlwZSB7IEJ1ZmZlciB9IGZyb20gJ25vZGU6YnVmZmVyJztcblxuaW1wb3J0IHsgaW5mbGF0ZVJhd1N5bmMgfSBmcm9tICdub2RlOnpsaWInO1xuLyogZXNsaW50LWVuYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZXh0cmFjdGlvbjsgdGhlIG9ubHkgY2FsbGVyIGlzIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgLCBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgb24gbW9iaWxlLiAqL1xuXG5pbXBvcnQge1xuICBkaXJuYW1lLFxuICBqb2luXG59IGZyb20gJy4vcGF0aC50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIGV4dHJhY3RaaXBBcmNoaXZlfS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRyYWN0WmlwQXJjaGl2ZVBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgcmF3IFpJUCBhcmNoaXZlIGJ5dGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl2ZTogQnVmZmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZS1zeXN0ZW0gaW1wbGVtZW50YXRpb24gdGhlIGV4dHJhY3RlZCBlbnRyaWVzIGFyZSB3cml0dGVuIHdpdGguXG4gICAqXG4gICAqIEluamVjdGVkIHJhdGhlciB0aGFuIGltcG9ydGVkIHNvIHRoZSBjYWxsZXIgY2hvb3NlcyB3aGljaCBgZnNgIHdyaXRlcyB0aGUgZmlsZXMuIFRoZSBkZW1vLXZhdWx0XG4gICAqIG9wZW5lciBoYW5kcyBvdmVyIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCAoc2VlIHtAbGluayBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbX0pLlxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZVN5c3RlbTogWmlwRXh0cmFjdGlvbkZpbGVTeXN0ZW07XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgdG8gZXh0cmFjdCBpbnRvLiBDcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0RGlyZWN0b3J5OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHNsaWNlIG9mIGBub2RlOmZzYCBleHRyYWN0aW9uIG5lZWRzLlxuICpcbiAqIE9ubHkgdGhlIHR3byBXUklUSU5HIGNhbGxzIGFyZSByZXF1aXJlZCwgYW5kIHRoYXQgaXMgZGVsaWJlcmF0ZTogRWxlY3Ryb24ncyBhc2FyIGxheWVyIGludGVyY2VwdHNcbiAqIGBmc2AgUkVBRFMgKGFuZCBgZXhpc3RzU3luY2ApIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCwgd2hpY2ggYSBkZW1vIHZhdWx0IG1heSBsZWdpdGltYXRlbHlcbiAqIHNoaXAgYXMgYSBwbGFpbiBmaWxlLiBOZXZlciBwcm9iaW5nIHRoZSB0YXJnZXQgd2l0aCBhIHJlYWQga2VlcHMgdGhhdCBpbnRlcmNlcHRpb24gb3V0IG9mIHRoZVxuICogcGljdHVyZSBlbnRpcmVseSwgYW5kIGEgY2FsbGVyIHRoYXQgaGFuZHMgb3ZlciBFbGVjdHJvbidzIGBvcmlnaW5hbC1mc2AgaXMgc2FmZSBldmVuIGZyb20gdGhlXG4gKiB3cml0ZSBzaWRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBkaXJlY3RvcnksIGluY2x1ZGluZyBhbnkgbWlzc2luZyBwYXJlbnRzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFRoZSBkaXJlY3RvcnkgdG8gY3JlYXRlLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSB7QGxpbmsgWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9uc30uXG4gICAqIEByZXR1cm5zIFRoZSBmaXJzdCBkaXJlY3RvcnkgY3JlYXRlZCwgaWYgYW55LlxuICAgKi9cbiAgbWtkaXJTeW5jKHBhdGg6IHN0cmluZywgb3B0aW9uczogWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucyk6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV3JpdGVzIGEgZmlsZSwgb3ZlcndyaXRpbmcgaXQgaWYgaXQgZXhpc3RzLlxuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAtIFRoZSBmaWxlIHRvIHdyaXRlLlxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBieXRlcyB0byB3cml0ZS5cbiAgICovXG4gIHdyaXRlRmlsZVN5bmMocGF0aDogc3RyaW5nLCBkYXRhOiBCdWZmZXIpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBvcHRpb25zIHtAbGluayBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbS5ta2RpclN5bmN9IGlzIGFsd2F5cyBjYWxsZWQgd2l0aC5cbiAqXG4gKiBFeHRyYWN0aW9uIG5ldmVyIHByb2JlcyBmb3IgYW4gZXhpc3RpbmcgZGlyZWN0b3J5LCBzbyBldmVyeSBjYWxsIGhhcyB0byBjcmVhdGUgdGhlIG1pc3NpbmcgcGFyZW50c1xuICogaXRzZWxmIGFuZCB0b2xlcmF0ZSBhIGRpcmVjdG9yeSB0aGF0IGlzIGFscmVhZHkgdGhlcmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWmlwRXh0cmFjdGlvbk1rZGlyT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBbHdheXMgYHRydWVgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVjdXJzaXZlOiB0cnVlO1xufVxuXG5pbnRlcmZhY2UgWmlwRW50cnkge1xuICByZWFkb25seSBjb21wcmVzc2VkU2l6ZTogbnVtYmVyO1xuICByZWFkb25seSBjb21wcmVzc2lvbk1ldGhvZDogbnVtYmVyO1xuICByZWFkb25seSBsb2NhbEhlYWRlck9mZnNldDogbnVtYmVyO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbmNvbnN0IEVORF9PRl9DRU5UUkFMX0RJUkVDVE9SWV9TSUdOQVRVUkUgPSAweDA2XzA1XzRCXzUwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJR05BVFVSRSA9IDB4MDJfMDFfNEJfNTA7XG5jb25zdCBMT0NBTF9GSUxFX0hFQURFUl9TSUdOQVRVUkUgPSAweDA0XzAzXzRCXzUwO1xuXG5jb25zdCBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0laRSA9IDIyO1xuY29uc3QgTUFYX0FSQ0hJVkVfQ09NTUVOVF9MRU5HVEggPSA2NV81MzU7XG5cbi8vIEEgY291bnQgb3Igb2Zmc2V0IHNhdHVyYXRlZCB0byBhbGwtb25lcyBtZWFucyB0aGUgcmVhbCB2YWx1ZSBsaXZlcyBpbiBhIFpJUDY0IHJlY29yZCB0aGlzIHJlYWRlclxuLy8gRG9lcyBub3QgaW1wbGVtZW50LCBzbyB0aGUgZmllbGQgbXVzdCBuZXZlciBiZSByZWFkIGF0IGZhY2UgdmFsdWUuXG5jb25zdCBTQVRVUkFURURfVUlOVF8xNiA9IDY1XzUzNTtcbmNvbnN0IFNBVFVSQVRFRF9VSU5UXzMyID0gNF8yOTRfOTY3XzI5NTtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gdGhlIGVuZC1vZi1jZW50cmFsLWRpcmVjdG9yeSByZWNvcmQuXG5jb25zdCBBUkNISVZFX0VOVFJZX0NPVU5UX09GRlNFVCA9IDEwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfU1RBUlRfT0ZGU0VUID0gMTY7XG5cbi8vIEZpZWxkIG9mZnNldHMgd2l0aGluIGEgY2VudHJhbC1kaXJlY3RvcnkgaGVhZGVyLlxuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUID0gODtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTSU9OX01FVEhPRF9PRkZTRVQgPSAxMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQgPSAyMDtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX05BTUVfTEVOR1RIX09GRlNFVCA9IDI4O1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVCA9IDMwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NTUVOVF9MRU5HVEhfT0ZGU0VUID0gMzI7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCA9IDQyO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJWkUgPSA0NjtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gYSBsb2NhbCBmaWxlIGhlYWRlci5cbmNvbnN0IExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQgPSAyNjtcbmNvbnN0IExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUID0gMjg7XG5jb25zdCBMT0NBTF9IRUFERVJfU0laRSA9IDMwO1xuXG5jb25zdCBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEID0gMDtcbmNvbnN0IENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRCA9IDg7XG5cbi8vIEJpdCAwIG9mIHRoZSBnZW5lcmFsLXB1cnBvc2UgZmxhZ3MgbWFya3MgYW4gZW5jcnlwdGVkIGVudHJ5LCBhbmQgaXQgaXMgdGhlIGxvd2VzdCBiaXQgXHUyMDE0IHNvIHRoZVxuLy8gUmVtYWluZGVyIHRlc3RzIGl0IHdpdGhvdXQgcmVhY2hpbmcgZm9yIGEgYml0d2lzZSBvcGVyYXRvci5cbmNvbnN0IEVOQ1JZUFRFRF9GTEFHX0RJVklTT1IgPSAyO1xuXG5jb25zdCBFTlRSWV9OQU1FX1NFUEFSQVRPUiA9ICcvJztcbmNvbnN0IFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAgPSAvXltBLVphLXpdOi87XG5cbi8qKlxuICogRXh0cmFjdHMgZXZlcnkgZW50cnkgb2YgYSBaSVAgYXJjaGl2ZSBpbnRvIGEgZGlyZWN0b3J5LlxuICpcbiAqIERpcmVjdG9yeSBlbnRyaWVzIGJlY29tZSBkaXJlY3RvcmllczsgYSBmaWxlIGVudHJ5J3MgcGFyZW50cyBhcmUgY3JlYXRlZCB3aGV0aGVyIG9yIG5vdCB0aGUgYXJjaGl2ZVxuICogZGVjbGFyZWQgdGhlbS4gQW4gZW50cnkgd2hvc2UgbmFtZSB3b3VsZCBlc2NhcGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zLnRhcmdldERpcmVjdG9yeX0gaXNcbiAqIHJlZnVzZWQgcmF0aGVyIHRoYW4gd3JpdHRlbiAodGhlIFwiemlwIHNsaXBcIiB0cmF2ZXJzYWwpLCBhcyBpcyBhbiBlbmNyeXB0ZWQsIFpJUDY0LCBvclxuICogdW5rbm93bi1jb21wcmVzc2lvbiBhcmNoaXZlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zfS5cbiAqIEB0aHJvd3MgQW4ge0BsaW5rIEVycm9yfSBuYW1pbmcgdGhlIHJlYXNvbiB3aGVuIHRoZSBhcmNoaXZlIGNhbm5vdCBiZSByZWFkIGFzIHdyaXR0ZW4uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0WmlwQXJjaGl2ZShwYXJhbXM6IEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zKTogdm9pZCB7XG4gIGNvbnN0IHtcbiAgICBhcmNoaXZlLFxuICAgIGZpbGVTeXN0ZW0sXG4gICAgdGFyZ2V0RGlyZWN0b3J5XG4gIH0gPSBwYXJhbXM7XG5cbiAgZmlsZVN5c3RlbS5ta2RpclN5bmModGFyZ2V0RGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBmb3IgKGNvbnN0IGVudHJ5IG9mIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmUpKSB7XG4gICAgYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeS5uYW1lKTtcblxuICAgIGlmIChlbnRyeS5uYW1lLmVuZHNXaXRoKEVOVFJZX05BTUVfU0VQQVJBVE9SKSkge1xuICAgICAgLy8gTmFtZWQgd2l0aG91dCBpdHMgdHJhaWxpbmcgc2VwYXJhdG9yLCBzbyB0aGUgY3JlYXRlZCBwYXRoIHJlYWRzIHRoZSBzYW1lIGFzIGV2ZXJ5IG90aGVyIG9uZS5cbiAgICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGpvaW4odGFyZ2V0RGlyZWN0b3J5LCBlbnRyeS5uYW1lLnNsaWNlKDAsIC0xKSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbih0YXJnZXREaXJlY3RvcnksIGVudHJ5Lm5hbWUpO1xuICAgIGZpbGVTeXN0ZW0ubWtkaXJTeW5jKGRpcm5hbWUoZW50cnlQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgZmlsZVN5c3RlbS53cml0ZUZpbGVTeW5jKGVudHJ5UGF0aCwgcmVhZEVudHJ5RGF0YShhcmNoaXZlLCBlbnRyeSkpO1xuICB9XG59XG5cbi8qKlxuICogUmVmdXNlcyBhbiBlbnRyeSBuYW1lIHRoYXQgd291bGQgcGxhY2UgdGhlIGV4dHJhY3RlZCBmaWxlIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuXG4gKlxuICogQW4gYXJjaGl2ZSBpcyB1bnRydXN0ZWQgaW5wdXQgZXZlbiB3aGVuIHdlIHB1Ymxpc2hlZCBpdCBvdXJzZWx2ZXMsIGFuZCBldmVyeSBvbmUgb2YgdGhlc2Ugc2hhcGVzXG4gKiBlc2NhcGVzIHRoZSB0YXJnZXQ6IGFuIGFic29sdXRlIFBPU0lYIHBhdGgsIGEgV2luZG93cyBkcml2ZS1xdWFsaWZpZWQgcGF0aCwgYSBiYWNrc2xhc2ggKHdoaWNoIHRoZVxuICogWklQIHNwZWNpZmljYXRpb24gZm9yYmlkcyBhcyBhIHNlcGFyYXRvciwgc28gaXRzIG9ubHkgdXNlIGhlcmUgaXMgdG8gc211Z2dsZSBvbmUgcGFzdCBhXG4gKiBmb3J3YXJkLXNsYXNoIGNoZWNrKSwgYW5kIGEgYC4uYCBzZWdtZW50LlxuICpcbiAqIEBwYXJhbSBlbnRyeU5hbWUgLSBUaGUgZW50cnkgbmFtZSBhcyByZWNvcmRlZCBpbiB0aGUgYXJjaGl2ZS5cbiAqL1xuZnVuY3Rpb24gYXNzZXJ0U2FmZUVudHJ5TmFtZShlbnRyeU5hbWU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoZW50cnlOYW1lLnN0YXJ0c1dpdGgoRU5UUllfTkFNRV9TRVBBUkFUT1IpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhYnNvbHV0ZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLmApO1xuICB9XG5cbiAgaWYgKFdJTkRPV1NfRFJJVkVfUFJFRklYX1JFR19FWFAudGVzdChlbnRyeU5hbWUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBkcml2ZS1xdWFsaWZpZWQgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jy5gKTtcbiAgfVxuXG4gIGlmIChlbnRyeU5hbWUuaW5jbHVkZXMoJ1xcXFwnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggdXNlcyBhIGJhY2tzbGFzaCBzZXBhcmF0b3IuYCk7XG4gIH1cblxuICBpZiAoZW50cnlOYW1lLnNwbGl0KEVOVFJZX05BTUVfU0VQQVJBVE9SKS5pbmNsdWRlcygnLi4nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgUmVmdXNpbmcgdG8gZXh0cmFjdCB0aGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeU5hbWV9Jywgd2hpY2ggcG9pbnRzIG91dHNpZGUgdGhlIHRhcmdldCBkaXJlY3RvcnkuYCk7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2NhdGVzIHRoZSBlbmQtb2YtY2VudHJhbC1kaXJlY3RvcnkgcmVjb3JkIGFuZCByZXR1cm5zIGl0cyBvZmZzZXQuXG4gKlxuICogVGhlIHJlY29yZCBzaXRzIGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgYXJjaGl2ZSB1bmxlc3MgYSB0cmFpbGluZyBjb21tZW50IGZvbGxvd3MgaXQsIHNvIGl0IGlzIGZvdW5kXG4gKiBieSBzY2FubmluZyBiYWNrd2FyZHMgb3ZlciB0aGUgY29tbWVudCdzIG1heGltdW0gbGVuZ3RoIHJhdGhlciB0aGFuIGFzc3VtZWQgdG8gYmUgYXQgYSBmaXhlZCBwbGFjZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgWklQIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcmV0dXJucyBUaGUgcmVjb3JkJ3Mgb2Zmc2V0LlxuICovXG5mdW5jdGlvbiBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmU6IEJ1ZmZlcik6IG51bWJlciB7XG4gIGNvbnN0IGxhc3RQb3NzaWJsZU9mZnNldCA9IGFyY2hpdmUubGVuZ3RoIC0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJWkU7XG4gIGNvbnN0IGZpcnN0UG9zc2libGVPZmZzZXQgPSBNYXRoLm1heCgwLCBsYXN0UG9zc2libGVPZmZzZXQgLSBNQVhfQVJDSElWRV9DT01NRU5UX0xFTkdUSCk7XG5cbiAgZm9yIChsZXQgb2Zmc2V0ID0gbGFzdFBvc3NpYmxlT2Zmc2V0OyBvZmZzZXQgPj0gZmlyc3RQb3NzaWJsZU9mZnNldDsgb2Zmc2V0LS0pIHtcbiAgICBpZiAoYXJjaGl2ZS5yZWFkVUludDMyTEUob2Zmc2V0KSA9PT0gRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJR05BVFVSRSkge1xuICAgICAgcmV0dXJuIG9mZnNldDtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBhcmNoaXZlIGlzIG5vdCBhIFpJUCBmaWxlOiBpdHMgZW5kLW9mLWNlbnRyYWwtZGlyZWN0b3J5IHJlY29yZCBpcyBtaXNzaW5nLicpO1xufVxuXG4vKipcbiAqIFJlYWRzIHRoZSBjZW50cmFsIGRpcmVjdG9yeSwgd2hpY2ggaXMgdGhlIGFyY2hpdmUncyBhdXRob3JpdGF0aXZlIGluZGV4IG9mIGl0cyBlbnRyaWVzLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEByZXR1cm5zIE9uZSB7QGxpbmsgWmlwRW50cnl9IHBlciBlbnRyeSwgaW4gdGhlIG9yZGVyIHRoZSBhcmNoaXZlIGxpc3RzIHRoZW0uXG4gKi9cbmZ1bmN0aW9uIHJlYWRDZW50cmFsRGlyZWN0b3J5KGFyY2hpdmU6IEJ1ZmZlcik6IFppcEVudHJ5W10ge1xuICBjb25zdCBlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgPSBmaW5kRW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0KGFyY2hpdmUpO1xuICBjb25zdCBlbnRyeUNvdW50ID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW5kT2ZDZW50cmFsRGlyZWN0b3J5T2Zmc2V0ICsgQVJDSElWRV9FTlRSWV9DT1VOVF9PRkZTRVQpO1xuICBsZXQgZW50cnlPZmZzZXQgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9TVEFSVF9PRkZTRVQpO1xuXG4gIGlmIChlbnRyeUNvdW50ID09PSBTQVRVUkFURURfVUlOVF8xNiB8fCBlbnRyeU9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1pJUDY0IGFyY2hpdmVzIGFyZSBub3Qgc3VwcG9ydGVkLicpO1xuICB9XG5cbiAgY29uc3QgZW50cmllczogWmlwRW50cnlbXSA9IFtdO1xuICBmb3IgKGxldCBlbnRyeUluZGV4ID0gMDsgZW50cnlJbmRleCA8IGVudHJ5Q291bnQ7IGVudHJ5SW5kZXgrKykge1xuICAgIGlmIChhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCkgIT09IENFTlRSQUxfRElSRUNUT1JZX0hFQURFUl9TSUdOQVRVUkUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUncyBjZW50cmFsIGRpcmVjdG9yeSBpcyBjb3JydXB0IGF0IGVudHJ5ICR7U3RyaW5nKGVudHJ5SW5kZXgpfS5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBmbGFncyA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRkxBR1NfT0ZGU0VUKTtcbiAgICBpZiAoZmxhZ3MgJSBFTkNSWVBURURfRkxBR19ESVZJU09SID09PSAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VuY3J5cHRlZCBaSVAgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcHJlc3NlZFNpemUgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTRURfU0laRV9PRkZTRVQpO1xuICAgIGNvbnN0IGxvY2FsSGVhZGVyT2Zmc2V0ID0gYXJjaGl2ZS5yZWFkVUludDMyTEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9MT0NBTF9IRUFERVJfT0ZGU0VUX09GRlNFVCk7XG4gICAgaWYgKGNvbXByZXNzZWRTaXplID09PSBTQVRVUkFURURfVUlOVF8zMiB8fCBsb2NhbEhlYWRlck9mZnNldCA9PT0gU0FUVVJBVEVEX1VJTlRfMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWklQNjQgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gICAgfVxuXG4gICAgY29uc3QgbmFtZUxlbmd0aCA9IGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfTkFNRV9MRU5HVEhfT0ZGU0VUKTtcbiAgICBjb25zdCBuYW1lT2Zmc2V0ID0gZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0laRTtcbiAgICBlbnRyaWVzLnB1c2goe1xuICAgICAgY29tcHJlc3NlZFNpemUsXG4gICAgICBjb21wcmVzc2lvbk1ldGhvZDogYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01QUkVTU0lPTl9NRVRIT0RfT0ZGU0VUKSxcbiAgICAgIGxvY2FsSGVhZGVyT2Zmc2V0LFxuICAgICAgbmFtZTogYXJjaGl2ZS50b1N0cmluZygndXRmLTgnLCBuYW1lT2Zmc2V0LCBuYW1lT2Zmc2V0ICsgbmFtZUxlbmd0aClcbiAgICB9KTtcblxuICAgIGVudHJ5T2Zmc2V0ID0gbmFtZU9mZnNldFxuICAgICAgKyBuYW1lTGVuZ3RoXG4gICAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfRVhUUkFfTEVOR1RIX09GRlNFVClcbiAgICAgICsgYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9DT01NRU5UX0xFTkdUSF9PRkZTRVQpO1xuICB9XG5cbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbi8qKlxuICogUmVhZHMgYW5kIGRlY29tcHJlc3NlcyBvbmUgZW50cnkncyBieXRlcy5cbiAqXG4gKiBUaGUgZGF0YSdzIHN0YXJ0IGlzIGNvbXB1dGVkIGZyb20gdGhlIExPQ0FMIGhlYWRlciByYXRoZXIgdGhhbiB0aGUgY2VudHJhbCBvbmU6IHRoZSB0d28gY2FycnlcbiAqIGluZGVwZW5kZW50IG5hbWUgYW5kIGV4dHJhLWZpZWxkIGxlbmd0aHMsIGFuZCBvbmx5IHRoZSBsb2NhbCBwYWlyIGRlc2NyaWJlcyB3aGVyZSB0aGUgYnl0ZXNcbiAqIGFjdHVhbGx5IGJlZ2luLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEBwYXJhbSBlbnRyeSAtIFRoZSBlbnRyeSwgYXMgcmVhZCBmcm9tIHRoZSBjZW50cmFsIGRpcmVjdG9yeS5cbiAqIEByZXR1cm5zIFRoZSBlbnRyeSdzIHVuY29tcHJlc3NlZCBjb250ZW50LlxuICovXG5mdW5jdGlvbiByZWFkRW50cnlEYXRhKGFyY2hpdmU6IEJ1ZmZlciwgZW50cnk6IFppcEVudHJ5KTogQnVmZmVyIHtcbiAgaWYgKGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0KSAhPT0gTE9DQUxfRklMRV9IRUFERVJfU0lHTkFUVVJFKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeS5uYW1lfScgaGFzIGEgY29ycnVwdCBsb2NhbCBoZWFkZXIuYCk7XG4gIH1cblxuICBjb25zdCBkYXRhT2Zmc2V0ID0gZW50cnkubG9jYWxIZWFkZXJPZmZzZXRcbiAgICArIExPQ0FMX0hFQURFUl9TSVpFXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9OQU1FX0xFTkdUSF9PRkZTRVQpXG4gICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeS5sb2NhbEhlYWRlck9mZnNldCArIExPQ0FMX0hFQURFUl9FWFRSQV9MRU5HVEhfT0ZGU0VUKTtcbiAgY29uc3QgZGF0YUVuZCA9IGRhdGFPZmZzZXQgKyBlbnRyeS5jb21wcmVzc2VkU2l6ZTtcbiAgaWYgKGRhdGFFbmQgPiBhcmNoaXZlLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgaXMgdHJ1bmNhdGVkOiBlbnRyeSAnJHtlbnRyeS5uYW1lfScgcnVucyBwYXN0IGl0cyBlbmQuYCk7XG4gIH1cblxuICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IGFyY2hpdmUuc3ViYXJyYXkoZGF0YU9mZnNldCwgZGF0YUVuZCk7XG4gIHN3aXRjaCAoZW50cnkuY29tcHJlc3Npb25NZXRob2QpIHtcbiAgICBjYXNlIENPTVBSRVNTSU9OX01FVEhPRF9ERUZMQVRFRDoge1xuICAgICAgcmV0dXJuIGluZmxhdGVSYXdTeW5jKGNvbXByZXNzZWREYXRhKTtcbiAgICB9XG4gICAgY2FzZSBDT01QUkVTU0lPTl9NRVRIT0RfU1RPUkVEOiB7XG4gICAgICByZXR1cm4gY29tcHJlc3NlZERhdGE7XG4gICAgfVxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIGFyY2hpdmUgZW50cnkgJyR7ZW50cnkubmFtZX0nIHVzZXMgdW5zdXBwb3J0ZWQgY29tcHJlc3Npb24gbWV0aG9kICR7U3RyaW5nKGVudHJ5LmNvbXByZXNzaW9uTWV0aG9kKX0uYCk7XG4gICAgfVxuICB9XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEJBLFNBQVMsc0JBQXNCO0FBRy9CO0FBQUEsRUFDRTtBQUFBLEVBQ0E7QUFBQSxPQUNLO0FBeUVQLE1BQU0scUNB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
174
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIEV4dHJhY3RzIGEgWklQIGFyY2hpdmUgdG8gZGlzayB1c2luZyBvbmx5IE5vZGUncyBgemxpYmAgXHUyMDE0IHdpdGggbm8gdGhpcmQtcGFydHkgdW56aXAgZGVwZW5kZW5jeS5cbiAqXG4gKiBJdCBleGlzdHMgZm9yIG9uZSBtZWFzdXJlZCByZWFzb24uIFRoZSBkZXBlbmRlbmN5IGl0IHJlcGxhY2VkIG9uIHRoaXMgcGF0aCwgYGFkbS16aXBgLCBidW5kbGVkXG4gKiByb3VnaGx5IDM0IEtCIG9mIG1pbmlmaWVkIEphdmFTY3JpcHQgaW50byBFVkVSWSBPYnNpZGlhbiBwbHVnaW4gYnVpbHQgd2l0aCB0aGlzIGxpYnJhcnk6IGEgcGx1Z2luXG4gKiBzaGlwcyBhIHNpbmdsZSBDSlMgYG1haW4uanNgLCBlc2J1aWxkIGhhcyBubyBjb2RlIHNwbGl0dGluZyB0byBwdXQgYSBkZXBlbmRlbmN5IGJlaGluZCwgYW5kIGFcbiAqIGBhd2FpdCBpbXBvcnQoKWAgb25seSBkZWZlcnMgZXZhbHVhdGlvbiBcdTIwMTQgdGhlIG1vZHVsZSBib2R5IGlzIGlubGluZWQgZWl0aGVyIHdheS4gYG5vZGU6emxpYmAgaXNcbiAqIGFscmVhZHkgYW4gZXNidWlsZCBleHRlcm5hbCwgc28gdGhlIHNhbWUgd29yayBub3cgY29zdHMgYSBwbHVnaW4gYnVuZGxlIG5vdGhpbmcgYXQgYWxsLiBBcmNoaXZlc1xuICogYXJlIHN0aWxsIFdSSVRURU4gd2l0aCBgYWRtLXppcGAgYXQgcmVsZWFzZSB0aW1lIChgc2NyaXB0LXV0aWxzL2RlbW8tdmF1bHQudHNgKSwgd2hpY2ggaXMgTm9kZS1zaWRlXG4gKiB0b29saW5nIGFuZCBuZXZlciByZWFjaGVzIGEgcGx1Z2luIGJ1bmRsZS5cbiAqXG4gKiBEZWxpYmVyYXRlbHkgbmFycm93OiBpdCByZWFkcyBleGFjdGx5IHdoYXQgdGhhdCB3cml0ZXIgcHJvZHVjZXMgXHUyMDE0IHN0b3JlZCBhbmQgZGVmbGF0ZWQgZW50cmllcyBpbiBhblxuICogdW5lbmNyeXB0ZWQgYXJjaGl2ZSBiZWxvdyB0aGUgNCBHQiAvIDY1NTM1LWVudHJ5IFpJUDY0IHRocmVzaG9sZCBcdTIwMTQgYW5kIHJhaXNlcyBhIG5hbWVkIGVycm9yIGZvclxuICogYW55dGhpbmcgZWxzZSByYXRoZXIgdGhhbiBndWVzc2luZyBhdCBpdC4gU2l6ZXMgYW5kIG9mZnNldHMgYXJlIHRha2VuIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5LFxuICogd2hpY2ggaXMgYXV0aG9yaXRhdGl2ZSBldmVuIGZvciBhcmNoaXZlcyB3cml0dGVuIHdpdGggZGF0YSBkZXNjcmlwdG9ycy5cbiAqXG4gKiBUaGUgYG5vZGU6YCBpbXBvcnRzIGJlbG93IGFyZSBzYWZlIHRvIG1lcmVseSBFVkFMVUFURSBvbiBtb2JpbGUgXHUyMDE0IGByZXF1aXJlYCBoYW5kcyBiYWNrIGB1bmRlZmluZWRgXG4gKiB0aGVyZSBhbmQgbm90aGluZyByZWFkcyBpdCBhdCBsb2FkIHRpbWUgXHUyMDE0IHNvIHRoaXMgbW9kdWxlIGNhbiBzaXQgaW4gdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHdpdGhvdXRcbiAqIGJyZWFraW5nIHRoZSBsaWJyYXJ5J3MgbG9hZCBvbiBBbmRyb2lkLiBPbmx5IHRoZSBjYWxscyBhcmUgZGVza3RvcC1vbmx5LlxuICovXG5cbmltcG9ydCB0eXBlIHsgQnVmZmVyIH0gZnJvbSAnbm9kZTpidWZmZXInO1xuXG5pbXBvcnQgeyBpbmZsYXRlUmF3U3luYyB9IGZyb20gJ25vZGU6emxpYic7XG5cbmltcG9ydCB7XG4gIGRpcm5hbWUsXG4gIGpvaW5cbn0gZnJvbSAnLi9wYXRoLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgZXh0cmFjdFppcEFyY2hpdmV9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dHJhY3RaaXBBcmNoaXZlUGFyYW1zIHtcbiAgLyoqXG4gICAqIFRoZSByYXcgWklQIGFyY2hpdmUgYnl0ZXMuXG4gICAqL1xuICByZWFkb25seSBhcmNoaXZlOiBCdWZmZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWxlLXN5c3RlbSBpbXBsZW1lbnRhdGlvbiB0aGUgZXh0cmFjdGVkIGVudHJpZXMgYXJlIHdyaXR0ZW4gd2l0aC5cbiAgICpcbiAgICogSW5qZWN0ZWQgcmF0aGVyIHRoYW4gaW1wb3J0ZWQgc28gdGhlIGNhbGxlciBjaG9vc2VzIHdoaWNoIGBmc2Agd3JpdGVzIHRoZSBmaWxlcy4gVGhlIGRlbW8tdmF1bHRcbiAgICogb3BlbmVyIGhhbmRzIG92ZXIgRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIChzZWUge0BsaW5rIFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtfSkuXG4gICAqL1xuICByZWFkb25seSBmaWxlU3lzdGVtOiBaaXBFeHRyYWN0aW9uRmlsZVN5c3RlbTtcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB0byBleHRyYWN0IGludG8uIENyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QuXG4gICAqL1xuICByZWFkb25seSB0YXJnZXREaXJlY3Rvcnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgc2xpY2Ugb2YgYG5vZGU6ZnNgIGV4dHJhY3Rpb24gbmVlZHMuXG4gKlxuICogT25seSB0aGUgdHdvIFdSSVRJTkcgY2FsbHMgYXJlIHJlcXVpcmVkLCBhbmQgdGhhdCBpcyBkZWxpYmVyYXRlOiBFbGVjdHJvbidzIGFzYXIgbGF5ZXIgaW50ZXJjZXB0c1xuICogYGZzYCBSRUFEUyAoYW5kIGBleGlzdHNTeW5jYCkgb24gYW55IHBhdGggY29udGFpbmluZyBgLmFzYXJgLCB3aGljaCBhIGRlbW8gdmF1bHQgbWF5IGxlZ2l0aW1hdGVseVxuICogc2hpcCBhcyBhIHBsYWluIGZpbGUuIE5ldmVyIHByb2JpbmcgdGhlIHRhcmdldCB3aXRoIGEgcmVhZCBrZWVwcyB0aGF0IGludGVyY2VwdGlvbiBvdXQgb2YgdGhlXG4gKiBwaWN0dXJlIGVudGlyZWx5LCBhbmQgYSBjYWxsZXIgdGhhdCBoYW5kcyBvdmVyIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCBpcyBzYWZlIGV2ZW4gZnJvbSB0aGVcbiAqIHdyaXRlIHNpZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgWmlwRXh0cmFjdGlvbkZpbGVTeXN0ZW0ge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGRpcmVjdG9yeSwgaW5jbHVkaW5nIGFueSBtaXNzaW5nIHBhcmVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIGRpcmVjdG9yeSB0byBjcmVhdGUuXG4gICAqIEBwYXJhbSBvcHRpb25zIC0gVGhlIHtAbGluayBaaXBFeHRyYWN0aW9uTWtkaXJPcHRpb25zfS5cbiAgICogQHJldHVybnMgVGhlIGZpcnN0IGRpcmVjdG9yeSBjcmVhdGVkLCBpZiBhbnkuXG4gICAqL1xuICBta2RpclN5bmMocGF0aDogc3RyaW5nLCBvcHRpb25zOiBaaXBFeHRyYWN0aW9uTWtkaXJPcHRpb25zKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXcml0ZXMgYSBmaWxlLCBvdmVyd3JpdGluZyBpdCBpZiBpdCBleGlzdHMuXG4gICAqXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIGZpbGUgdG8gd3JpdGUuXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIGJ5dGVzIHRvIHdyaXRlLlxuICAgKi9cbiAgd3JpdGVGaWxlU3luYyhwYXRoOiBzdHJpbmcsIGRhdGE6IEJ1ZmZlcik6IHZvaWQ7XG59XG5cbi8qKlxuICogVGhlIG9wdGlvbnMge0BsaW5rIFppcEV4dHJhY3Rpb25GaWxlU3lzdGVtLm1rZGlyU3luY30gaXMgYWx3YXlzIGNhbGxlZCB3aXRoLlxuICpcbiAqIEV4dHJhY3Rpb24gbmV2ZXIgcHJvYmVzIGZvciBhbiBleGlzdGluZyBkaXJlY3RvcnksIHNvIGV2ZXJ5IGNhbGwgaGFzIHRvIGNyZWF0ZSB0aGUgbWlzc2luZyBwYXJlbnRzXG4gKiBpdHNlbGYgYW5kIHRvbGVyYXRlIGEgZGlyZWN0b3J5IHRoYXQgaXMgYWxyZWFkeSB0aGVyZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBaaXBFeHRyYWN0aW9uTWtkaXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFsd2F5cyBgdHJ1ZWAuXG4gICAqL1xuICByZWFkb25seSByZWN1cnNpdmU6IHRydWU7XG59XG5cbmludGVyZmFjZSBaaXBFbnRyeSB7XG4gIHJlYWRvbmx5IGNvbXByZXNzZWRTaXplOiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvbXByZXNzaW9uTWV0aG9kOiBudW1iZXI7XG4gIHJlYWRvbmx5IGxvY2FsSGVhZGVyT2Zmc2V0OiBudW1iZXI7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuY29uc3QgRU5EX09GX0NFTlRSQUxfRElSRUNUT1JZX1NJR05BVFVSRSA9IDB4MDZfMDVfNEJfNTA7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0lHTkFUVVJFID0gMHgwMl8wMV80Ql81MDtcbmNvbnN0IExPQ0FMX0ZJTEVfSEVBREVSX1NJR05BVFVSRSA9IDB4MDRfMDNfNEJfNTA7XG5cbmNvbnN0IEVORF9PRl9DRU5UUkFMX0RJUkVDVE9SWV9TSVpFID0gMjI7XG5jb25zdCBNQVhfQVJDSElWRV9DT01NRU5UX0xFTkdUSCA9IDY1XzUzNTtcblxuLy8gQSBjb3VudCBvciBvZmZzZXQgc2F0dXJhdGVkIHRvIGFsbC1vbmVzIG1lYW5zIHRoZSByZWFsIHZhbHVlIGxpdmVzIGluIGEgWklQNjQgcmVjb3JkIHRoaXMgcmVhZGVyXG4vLyBEb2VzIG5vdCBpbXBsZW1lbnQsIHNvIHRoZSBmaWVsZCBtdXN0IG5ldmVyIGJlIHJlYWQgYXQgZmFjZSB2YWx1ZS5cbmNvbnN0IFNBVFVSQVRFRF9VSU5UXzE2ID0gNjVfNTM1O1xuY29uc3QgU0FUVVJBVEVEX1VJTlRfMzIgPSA0XzI5NF85NjdfMjk1O1xuXG4vLyBGaWVsZCBvZmZzZXRzIHdpdGhpbiB0aGUgZW5kLW9mLWNlbnRyYWwtZGlyZWN0b3J5IHJlY29yZC5cbmNvbnN0IEFSQ0hJVkVfRU5UUllfQ09VTlRfT0ZGU0VUID0gMTA7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9TVEFSVF9PRkZTRVQgPSAxNjtcblxuLy8gRmllbGQgb2Zmc2V0cyB3aXRoaW4gYSBjZW50cmFsLWRpcmVjdG9yeSBoZWFkZXIuXG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9GTEFHU19PRkZTRVQgPSA4O1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NUFJFU1NJT05fTUVUSE9EX09GRlNFVCA9IDEwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NUFJFU1NFRF9TSVpFX09GRlNFVCA9IDIwO1xuY29uc3QgQ0VOVFJBTF9ESVJFQ1RPUllfTkFNRV9MRU5HVEhfT0ZGU0VUID0gMjg7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9FWFRSQV9MRU5HVEhfT0ZGU0VUID0gMzA7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9DT01NRU5UX0xFTkdUSF9PRkZTRVQgPSAzMjtcbmNvbnN0IENFTlRSQUxfRElSRUNUT1JZX0xPQ0FMX0hFQURFUl9PRkZTRVRfT0ZGU0VUID0gNDI7XG5jb25zdCBDRU5UUkFMX0RJUkVDVE9SWV9IRUFERVJfU0laRSA9IDQ2O1xuXG4vLyBGaWVsZCBvZmZzZXRzIHdpdGhpbiBhIGxvY2FsIGZpbGUgaGVhZGVyLlxuY29uc3QgTE9DQUxfSEVBREVSX05BTUVfTEVOR1RIX09GRlNFVCA9IDI2O1xuY29uc3QgTE9DQUxfSEVBREVSX0VYVFJBX0xFTkdUSF9PRkZTRVQgPSAyODtcbmNvbnN0IExPQ0FMX0hFQURFUl9TSVpFID0gMzA7XG5cbmNvbnN0IENPTVBSRVNTSU9OX01FVEhPRF9TVE9SRUQgPSAwO1xuY29uc3QgQ09NUFJFU1NJT05fTUVUSE9EX0RFRkxBVEVEID0gODtcblxuLy8gQml0IDAgb2YgdGhlIGdlbmVyYWwtcHVycG9zZSBmbGFncyBtYXJrcyBhbiBlbmNyeXB0ZWQgZW50cnksIGFuZCBpdCBpcyB0aGUgbG93ZXN0IGJpdCBcdTIwMTQgc28gdGhlXG4vLyBSZW1haW5kZXIgdGVzdHMgaXQgd2l0aG91dCByZWFjaGluZyBmb3IgYSBiaXR3aXNlIG9wZXJhdG9yLlxuY29uc3QgRU5DUllQVEVEX0ZMQUdfRElWSVNPUiA9IDI7XG5cbmNvbnN0IEVOVFJZX05BTUVfU0VQQVJBVE9SID0gJy8nO1xuY29uc3QgV0lORE9XU19EUklWRV9QUkVGSVhfUkVHX0VYUCA9IC9eW0EtWmEtel06LztcblxuLyoqXG4gKiBFeHRyYWN0cyBldmVyeSBlbnRyeSBvZiBhIFpJUCBhcmNoaXZlIGludG8gYSBkaXJlY3RvcnkuXG4gKlxuICogRGlyZWN0b3J5IGVudHJpZXMgYmVjb21lIGRpcmVjdG9yaWVzOyBhIGZpbGUgZW50cnkncyBwYXJlbnRzIGFyZSBjcmVhdGVkIHdoZXRoZXIgb3Igbm90IHRoZSBhcmNoaXZlXG4gKiBkZWNsYXJlZCB0aGVtLiBBbiBlbnRyeSB3aG9zZSBuYW1lIHdvdWxkIGVzY2FwZSB7QGxpbmsgRXh0cmFjdFppcEFyY2hpdmVQYXJhbXMudGFyZ2V0RGlyZWN0b3J5fSBpc1xuICogcmVmdXNlZCByYXRoZXIgdGhhbiB3cml0dGVuICh0aGUgXCJ6aXAgc2xpcFwiIHRyYXZlcnNhbCksIGFzIGlzIGFuIGVuY3J5cHRlZCwgWklQNjQsIG9yXG4gKiB1bmtub3duLWNvbXByZXNzaW9uIGFyY2hpdmUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgRXh0cmFjdFppcEFyY2hpdmVQYXJhbXN9LlxuICogQHRocm93cyBBbiB7QGxpbmsgRXJyb3J9IG5hbWluZyB0aGUgcmVhc29uIHdoZW4gdGhlIGFyY2hpdmUgY2Fubm90IGJlIHJlYWQgYXMgd3JpdHRlbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RaaXBBcmNoaXZlKHBhcmFtczogRXh0cmFjdFppcEFyY2hpdmVQYXJhbXMpOiB2b2lkIHtcbiAgY29uc3Qge1xuICAgIGFyY2hpdmUsXG4gICAgZmlsZVN5c3RlbSxcbiAgICB0YXJnZXREaXJlY3RvcnlcbiAgfSA9IHBhcmFtcztcblxuICBmaWxlU3lzdGVtLm1rZGlyU3luYyh0YXJnZXREaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGZvciAoY29uc3QgZW50cnkgb2YgcmVhZENlbnRyYWxEaXJlY3RvcnkoYXJjaGl2ZSkpIHtcbiAgICBhc3NlcnRTYWZlRW50cnlOYW1lKGVudHJ5Lm5hbWUpO1xuXG4gICAgaWYgKGVudHJ5Lm5hbWUuZW5kc1dpdGgoRU5UUllfTkFNRV9TRVBBUkFUT1IpKSB7XG4gICAgICAvLyBOYW1lZCB3aXRob3V0IGl0cyB0cmFpbGluZyBzZXBhcmF0b3IsIHNvIHRoZSBjcmVhdGVkIHBhdGggcmVhZHMgdGhlIHNhbWUgYXMgZXZlcnkgb3RoZXIgb25lLlxuICAgICAgZmlsZVN5c3RlbS5ta2RpclN5bmMoam9pbih0YXJnZXREaXJlY3RvcnksIGVudHJ5Lm5hbWUuc2xpY2UoMCwgLTEpKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyeVBhdGggPSBqb2luKHRhcmdldERpcmVjdG9yeSwgZW50cnkubmFtZSk7XG4gICAgZmlsZVN5c3RlbS5ta2RpclN5bmMoZGlybmFtZShlbnRyeVBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICBmaWxlU3lzdGVtLndyaXRlRmlsZVN5bmMoZW50cnlQYXRoLCByZWFkRW50cnlEYXRhKGFyY2hpdmUsIGVudHJ5KSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZWZ1c2VzIGFuIGVudHJ5IG5hbWUgdGhhdCB3b3VsZCBwbGFjZSB0aGUgZXh0cmFjdGVkIGZpbGUgb3V0c2lkZSB0aGUgdGFyZ2V0IGRpcmVjdG9yeS5cbiAqXG4gKiBBbiBhcmNoaXZlIGlzIHVudHJ1c3RlZCBpbnB1dCBldmVuIHdoZW4gd2UgcHVibGlzaGVkIGl0IG91cnNlbHZlcywgYW5kIGV2ZXJ5IG9uZSBvZiB0aGVzZSBzaGFwZXNcbiAqIGVzY2FwZXMgdGhlIHRhcmdldDogYW4gYWJzb2x1dGUgUE9TSVggcGF0aCwgYSBXaW5kb3dzIGRyaXZlLXF1YWxpZmllZCBwYXRoLCBhIGJhY2tzbGFzaCAod2hpY2ggdGhlXG4gKiBaSVAgc3BlY2lmaWNhdGlvbiBmb3JiaWRzIGFzIGEgc2VwYXJhdG9yLCBzbyBpdHMgb25seSB1c2UgaGVyZSBpcyB0byBzbXVnZ2xlIG9uZSBwYXN0IGFcbiAqIGZvcndhcmQtc2xhc2ggY2hlY2spLCBhbmQgYSBgLi5gIHNlZ21lbnQuXG4gKlxuICogQHBhcmFtIGVudHJ5TmFtZSAtIFRoZSBlbnRyeSBuYW1lIGFzIHJlY29yZGVkIGluIHRoZSBhcmNoaXZlLlxuICovXG5mdW5jdGlvbiBhc3NlcnRTYWZlRW50cnlOYW1lKGVudHJ5TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChlbnRyeU5hbWUuc3RhcnRzV2l0aChFTlRSWV9OQU1FX1NFUEFSQVRPUikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlZnVzaW5nIHRvIGV4dHJhY3QgdGhlIGFic29sdXRlIGFyY2hpdmUgZW50cnkgJyR7ZW50cnlOYW1lfScuYCk7XG4gIH1cblxuICBpZiAoV0lORE9XU19EUklWRV9QUkVGSVhfUkVHX0VYUC50ZXN0KGVudHJ5TmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFJlZnVzaW5nIHRvIGV4dHJhY3QgdGhlIGRyaXZlLXF1YWxpZmllZCBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLmApO1xuICB9XG5cbiAgaWYgKGVudHJ5TmFtZS5pbmNsdWRlcygnXFxcXCcpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLCB3aGljaCB1c2VzIGEgYmFja3NsYXNoIHNlcGFyYXRvci5gKTtcbiAgfVxuXG4gIGlmIChlbnRyeU5hbWUuc3BsaXQoRU5UUllfTkFNRV9TRVBBUkFUT1IpLmluY2x1ZGVzKCcuLicpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBSZWZ1c2luZyB0byBleHRyYWN0IHRoZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5TmFtZX0nLCB3aGljaCBwb2ludHMgb3V0c2lkZSB0aGUgdGFyZ2V0IGRpcmVjdG9yeS5gKTtcbiAgfVxufVxuXG4vKipcbiAqIExvY2F0ZXMgdGhlIGVuZC1vZi1jZW50cmFsLWRpcmVjdG9yeSByZWNvcmQgYW5kIHJldHVybnMgaXRzIG9mZnNldC5cbiAqXG4gKiBUaGUgcmVjb3JkIHNpdHMgYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBhcmNoaXZlIHVubGVzcyBhIHRyYWlsaW5nIGNvbW1lbnQgZm9sbG93cyBpdCwgc28gaXQgaXMgZm91bmRcbiAqIGJ5IHNjYW5uaW5nIGJhY2t3YXJkcyBvdmVyIHRoZSBjb21tZW50J3MgbWF4aW11bSBsZW5ndGggcmF0aGVyIHRoYW4gYXNzdW1lZCB0byBiZSBhdCBhIGZpeGVkIHBsYWNlLlxuICpcbiAqIEBwYXJhbSBhcmNoaXZlIC0gVGhlIHJhdyBaSVAgYXJjaGl2ZSBieXRlcy5cbiAqIEByZXR1cm5zIFRoZSByZWNvcmQncyBvZmZzZXQuXG4gKi9cbmZ1bmN0aW9uIGZpbmRFbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQoYXJjaGl2ZTogQnVmZmVyKTogbnVtYmVyIHtcbiAgY29uc3QgbGFzdFBvc3NpYmxlT2Zmc2V0ID0gYXJjaGl2ZS5sZW5ndGggLSBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0laRTtcbiAgY29uc3QgZmlyc3RQb3NzaWJsZU9mZnNldCA9IE1hdGgubWF4KDAsIGxhc3RQb3NzaWJsZU9mZnNldCAtIE1BWF9BUkNISVZFX0NPTU1FTlRfTEVOR1RIKTtcblxuICBmb3IgKGxldCBvZmZzZXQgPSBsYXN0UG9zc2libGVPZmZzZXQ7IG9mZnNldCA+PSBmaXJzdFBvc3NpYmxlT2Zmc2V0OyBvZmZzZXQtLSkge1xuICAgIGlmIChhcmNoaXZlLnJlYWRVSW50MzJMRShvZmZzZXQpID09PSBFTkRfT0ZfQ0VOVFJBTF9ESVJFQ1RPUllfU0lHTkFUVVJFKSB7XG4gICAgICByZXR1cm4gb2Zmc2V0O1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBFcnJvcignVGhlIGFyY2hpdmUgaXMgbm90IGEgWklQIGZpbGU6IGl0cyBlbmQtb2YtY2VudHJhbC1kaXJlY3RvcnkgcmVjb3JkIGlzIG1pc3NpbmcuJyk7XG59XG5cbi8qKlxuICogUmVhZHMgdGhlIGNlbnRyYWwgZGlyZWN0b3J5LCB3aGljaCBpcyB0aGUgYXJjaGl2ZSdzIGF1dGhvcml0YXRpdmUgaW5kZXggb2YgaXRzIGVudHJpZXMuXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IFpJUCBhcmNoaXZlIGJ5dGVzLlxuICogQHJldHVybnMgT25lIHtAbGluayBaaXBFbnRyeX0gcGVyIGVudHJ5LCBpbiB0aGUgb3JkZXIgdGhlIGFyY2hpdmUgbGlzdHMgdGhlbS5cbiAqL1xuZnVuY3Rpb24gcmVhZENlbnRyYWxEaXJlY3RvcnkoYXJjaGl2ZTogQnVmZmVyKTogWmlwRW50cnlbXSB7XG4gIGNvbnN0IGVuZE9mQ2VudHJhbERpcmVjdG9yeU9mZnNldCA9IGZpbmRFbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQoYXJjaGl2ZSk7XG4gIGNvbnN0IGVudHJ5Q291bnQgPSBhcmNoaXZlLnJlYWRVSW50MTZMRShlbmRPZkNlbnRyYWxEaXJlY3RvcnlPZmZzZXQgKyBBUkNISVZFX0VOVFJZX0NPVU5UX09GRlNFVCk7XG4gIGxldCBlbnRyeU9mZnNldCA9IGFyY2hpdmUucmVhZFVJbnQzMkxFKGVuZE9mQ2VudHJhbERpcmVjdG9yeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX1NUQVJUX09GRlNFVCk7XG5cbiAgaWYgKGVudHJ5Q291bnQgPT09IFNBVFVSQVRFRF9VSU5UXzE2IHx8IGVudHJ5T2Zmc2V0ID09PSBTQVRVUkFURURfVUlOVF8zMikge1xuICAgIHRocm93IG5ldyBFcnJvcignWklQNjQgYXJjaGl2ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuJyk7XG4gIH1cblxuICBjb25zdCBlbnRyaWVzOiBaaXBFbnRyeVtdID0gW107XG4gIGZvciAobGV0IGVudHJ5SW5kZXggPSAwOyBlbnRyeUluZGV4IDwgZW50cnlDb3VudDsgZW50cnlJbmRleCsrKSB7XG4gICAgaWYgKGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5T2Zmc2V0KSAhPT0gQ0VOVFJBTF9ESVJFQ1RPUllfSEVBREVSX1NJR05BVFVSRSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSdzIGNlbnRyYWwgZGlyZWN0b3J5IGlzIGNvcnJ1cHQgYXQgZW50cnkgJHtTdHJpbmcoZW50cnlJbmRleCl9LmApO1xuICAgIH1cblxuICAgIGNvbnN0IGZsYWdzID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9GTEFHU19PRkZTRVQpO1xuICAgIGlmIChmbGFncyAlIEVOQ1JZUFRFRF9GTEFHX0RJVklTT1IgPT09IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRW5jcnlwdGVkIFpJUCBhcmNoaXZlcyBhcmUgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wcmVzc2VkU2l6ZSA9IGFyY2hpdmUucmVhZFVJbnQzMkxFKGVudHJ5T2Zmc2V0ICsgQ0VOVFJBTF9ESVJFQ1RPUllfQ09NUFJFU1NFRF9TSVpFX09GRlNFVCk7XG4gICAgY29uc3QgbG9jYWxIZWFkZXJPZmZzZXQgPSBhcmNoaXZlLnJlYWRVSW50MzJMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0xPQ0FMX0hFQURFUl9PRkZTRVRfT0ZGU0VUKTtcbiAgICBpZiAoY29tcHJlc3NlZFNpemUgPT09IFNBVFVSQVRFRF9VSU5UXzMyIHx8IGxvY2FsSGVhZGVyT2Zmc2V0ID09PSBTQVRVUkFURURfVUlOVF8zMikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdaSVA2NCBhcmNoaXZlcyBhcmUgbm90IHN1cHBvcnRlZC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBuYW1lTGVuZ3RoID0gYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9OQU1FX0xFTkdUSF9PRkZTRVQpO1xuICAgIGNvbnN0IG5hbWVPZmZzZXQgPSBlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0hFQURFUl9TSVpFO1xuICAgIGVudHJpZXMucHVzaCh7XG4gICAgICBjb21wcmVzc2VkU2l6ZSxcbiAgICAgIGNvbXByZXNzaW9uTWV0aG9kOiBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTVBSRVNTSU9OX01FVEhPRF9PRkZTRVQpLFxuICAgICAgbG9jYWxIZWFkZXJPZmZzZXQsXG4gICAgICBuYW1lOiBhcmNoaXZlLnRvU3RyaW5nKCd1dGYtOCcsIG5hbWVPZmZzZXQsIG5hbWVPZmZzZXQgKyBuYW1lTGVuZ3RoKVxuICAgIH0pO1xuXG4gICAgZW50cnlPZmZzZXQgPSBuYW1lT2Zmc2V0XG4gICAgICArIG5hbWVMZW5ndGhcbiAgICAgICsgYXJjaGl2ZS5yZWFkVUludDE2TEUoZW50cnlPZmZzZXQgKyBDRU5UUkFMX0RJUkVDVE9SWV9FWFRSQV9MRU5HVEhfT0ZGU0VUKVxuICAgICAgKyBhcmNoaXZlLnJlYWRVSW50MTZMRShlbnRyeU9mZnNldCArIENFTlRSQUxfRElSRUNUT1JZX0NPTU1FTlRfTEVOR1RIX09GRlNFVCk7XG4gIH1cblxuICByZXR1cm4gZW50cmllcztcbn1cblxuLyoqXG4gKiBSZWFkcyBhbmQgZGVjb21wcmVzc2VzIG9uZSBlbnRyeSdzIGJ5dGVzLlxuICpcbiAqIFRoZSBkYXRhJ3Mgc3RhcnQgaXMgY29tcHV0ZWQgZnJvbSB0aGUgTE9DQUwgaGVhZGVyIHJhdGhlciB0aGFuIHRoZSBjZW50cmFsIG9uZTogdGhlIHR3byBjYXJyeVxuICogaW5kZXBlbmRlbnQgbmFtZSBhbmQgZXh0cmEtZmllbGQgbGVuZ3RocywgYW5kIG9ubHkgdGhlIGxvY2FsIHBhaXIgZGVzY3JpYmVzIHdoZXJlIHRoZSBieXRlc1xuICogYWN0dWFsbHkgYmVnaW4uXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IFpJUCBhcmNoaXZlIGJ5dGVzLlxuICogQHBhcmFtIGVudHJ5IC0gVGhlIGVudHJ5LCBhcyByZWFkIGZyb20gdGhlIGNlbnRyYWwgZGlyZWN0b3J5LlxuICogQHJldHVybnMgVGhlIGVudHJ5J3MgdW5jb21wcmVzc2VkIGNvbnRlbnQuXG4gKi9cbmZ1bmN0aW9uIHJlYWRFbnRyeURhdGEoYXJjaGl2ZTogQnVmZmVyLCBlbnRyeTogWmlwRW50cnkpOiBCdWZmZXIge1xuICBpZiAoYXJjaGl2ZS5yZWFkVUludDMyTEUoZW50cnkubG9jYWxIZWFkZXJPZmZzZXQpICE9PSBMT0NBTF9GSUxFX0hFQURFUl9TSUdOQVRVUkUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBhcmNoaXZlIGVudHJ5ICcke2VudHJ5Lm5hbWV9JyBoYXMgYSBjb3JydXB0IGxvY2FsIGhlYWRlci5gKTtcbiAgfVxuXG4gIGNvbnN0IGRhdGFPZmZzZXQgPSBlbnRyeS5sb2NhbEhlYWRlck9mZnNldFxuICAgICsgTE9DQUxfSEVBREVSX1NJWkVcbiAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0ICsgTE9DQUxfSEVBREVSX05BTUVfTEVOR1RIX09GRlNFVClcbiAgICArIGFyY2hpdmUucmVhZFVJbnQxNkxFKGVudHJ5LmxvY2FsSGVhZGVyT2Zmc2V0ICsgTE9DQUxfSEVBREVSX0VYVFJBX0xFTkdUSF9PRkZTRVQpO1xuICBjb25zdCBkYXRhRW5kID0gZGF0YU9mZnNldCArIGVudHJ5LmNvbXByZXNzZWRTaXplO1xuICBpZiAoZGF0YUVuZCA+IGFyY2hpdmUubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBpcyB0cnVuY2F0ZWQ6IGVudHJ5ICcke2VudHJ5Lm5hbWV9JyBydW5zIHBhc3QgaXRzIGVuZC5gKTtcbiAgfVxuXG4gIGNvbnN0IGNvbXByZXNzZWREYXRhID0gYXJjaGl2ZS5zdWJhcnJheShkYXRhT2Zmc2V0LCBkYXRhRW5kKTtcbiAgc3dpdGNoIChlbnRyeS5jb21wcmVzc2lvbk1ldGhvZCkge1xuICAgIGNhc2UgQ09NUFJFU1NJT05fTUVUSE9EX0RFRkxBVEVEOiB7XG4gICAgICByZXR1cm4gaW5mbGF0ZVJhd1N5bmMoY29tcHJlc3NlZERhdGEpO1xuICAgIH1cbiAgICBjYXNlIENPTVBSRVNTSU9OX01FVEhPRF9TVE9SRUQ6IHtcbiAgICAgIHJldHVybiBjb21wcmVzc2VkRGF0YTtcbiAgICB9XG4gICAgZGVmYXVsdDoge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgYXJjaGl2ZSBlbnRyeSAnJHtlbnRyeS5uYW1lfScgdXNlcyB1bnN1cHBvcnRlZCBjb21wcmVzc2lvbiBtZXRob2QgJHtTdHJpbmcoZW50cnkuY29tcHJlc3Npb25NZXRob2QpfS5gKTtcbiAgICB9XG4gIH1cbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF5QkEsU0FBUyxzQkFBc0I7QUFFL0I7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUF5RVAsTUFBTSxxQ0FBcUM7QUFDM0MsTUFBTSxxQ0FBcUM7QUFDM0MsTUFBTSw4QkFBOEI7QUFFcEMsTUFBTSxnQ0FBZ0M7QUFDdEMsTUFBTSw2QkFBNkI7QUFJbkMsTUFBTSxvQkFBb0I7QUFDMUIsTUFBTSxvQkFBb0I7QUFHMUIsTUFBTSw2QkFBNkI7QUFDbkMsTUFBTSxpQ0FBaUM7QUFHdkMsTUFBTSxpQ0FBaUM7QUFDdkMsTUFBTSw4Q0FBOEM7QUFDcEQsTUFBTSwyQ0FBMkM7QUFDakQsTUFBTSx1Q0FBdUM7QUFDN0MsTUFBTSx3Q0FBd0M7QUFDOUMsTUFBTSwwQ0FBMEM7QUFDaEQsTUFBTSwrQ0FBK0M7QUFDckQsTUFBTSxnQ0FBZ0M7QUFHdEMsTUFBTSxrQ0FBa0M7QUFDeEMsTUFBTSxtQ0FBbUM7QUFDekMsTUFBTSxvQkFBb0I7QUFFMUIsTUFB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
@@ -41,7 +41,7 @@ function ensureBrowserProcess() {
41
41
  })();
42
42
  })();
43
43
 
44
- const LIBRARY_VERSION = "100.0.0";
44
+ const LIBRARY_VERSION = "100.2.0";
45
45
  const LIBRARY_STYLES = ".obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component pre, .obsidian-dev-utils.code-highlighter-component code {\n font-family: var(--font-monospace);\n line-height: var(--line-height-normal);\n margin: 0;\n}\n.obsidian-dev-utils.code-highlighter-component textarea, .obsidian-dev-utils.code-highlighter-component code {\n font-size: var(--code-size);\n}\n.obsidian-dev-utils.code-highlighter-component textarea {\n background: transparent;\n color: transparent;\n z-index: 2;\n width: 20em;\n height: 10em;\n}\n.obsidian-dev-utils.code-highlighter-component pre {\n position: absolute;\n pointer-events: none;\n border: var(--input-border-width) solid transparent;\n overflow: auto;\n inset: 0;\n padding: var(--size-4-1) var(--size-4-2);\n z-index: 1;\n}\n.obsidian-dev-utils.code-highlighter-component pre::after {\n content: \"\";\n display: block;\n height: var(--bottom-gap, 0);\n}\n.obsidian-dev-utils.code-highlighter-component pre.is-placeholder {\n opacity: 0.6;\n}\n.obsidian-dev-utils.code-highlighter-component code {\n display: block;\n padding: 0;\n}\n\n.obsidian-dev-utils-lock-indicator {\n display: inline-flex;\n align-items: center;\n color: var(--text-muted);\n}\n.obsidian-dev-utils-lock-indicator .svg-icon {\n width: var(--icon-s);\n height: var(--icon-s);\n}\n\n@keyframes obsidian-dev-utils-lock-indicator-flash {\n 40% {\n color: var(--text-error);\n transform: scale(1.4);\n }\n}\n.obsidian-dev-utils-lock-indicator-flash {\n animation: obsidian-dev-utils-lock-indicator-flash 0.35s ease-in-out;\n}\n\n.obsidian-dev-utils input[type=url] {\n height: var(--input-height);\n}\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=tel],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=url],\n.obsidian-dev-utils input[type=week] {\n -webkit-app-region: no-drag;\n background: var(--background-modifier-form-field);\n border: var(--input-border-width) solid var(--background-modifier-border);\n color: var(--text-normal);\n font-family: inherit;\n padding: var(--size-4-1) var(--size-4-2);\n font-size: var(--font-ui-small);\n border-radius: var(--input-radius);\n outline: none;\n}\n@media (hover: hover) {\n .obsidian-dev-utils input[type=month]:hover,\n .obsidian-dev-utils input[type=tel]:hover,\n .obsidian-dev-utils input[type=time]:hover,\n .obsidian-dev-utils input[type=url]:hover,\n .obsidian-dev-utils input[type=week]:hover {\n border-color: var(--background-modifier-border-hover);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n }\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus {\n border-color: var(--background-modifier-border-focus);\n transition: box-shadow 0.15s ease-in-out, border 0.15s ease-in-out;\n}\n.obsidian-dev-utils input[type=month]:active, .obsidian-dev-utils input[type=month]:focus, .obsidian-dev-utils input[type=month]:focus-visible,\n.obsidian-dev-utils input[type=tel]:active,\n.obsidian-dev-utils input[type=tel]:focus,\n.obsidian-dev-utils input[type=tel]:focus-visible,\n.obsidian-dev-utils input[type=time]:active,\n.obsidian-dev-utils input[type=time]:focus,\n.obsidian-dev-utils input[type=time]:focus-visible,\n.obsidian-dev-utils input[type=url]:active,\n.obsidian-dev-utils input[type=url]:focus,\n.obsidian-dev-utils input[type=url]:focus-visible,\n.obsidian-dev-utils input[type=week]:active,\n.obsidian-dev-utils input[type=week]:focus,\n.obsidian-dev-utils input[type=week]:focus-visible {\n box-shadow: 0 0 0 2px var(--background-modifier-border-focus);\n}\n.obsidian-dev-utils input[type=month]::placeholder,\n.obsidian-dev-utils input[type=tel]::placeholder,\n.obsidian-dev-utils input[type=time]::placeholder,\n.obsidian-dev-utils input[type=url]::placeholder,\n.obsidian-dev-utils input[type=week]::placeholder {\n color: var(--text-faint);\n}\n.mod-rtl input[type=month],\n.mod-rtl input[type=time],\n.mod-rtl input[type=week],\n.is-rtl input[type=month],\n.is-rtl input[type=time],\n.is-rtl input[type=week],\n.rtl input[type=month],\n.rtl input[type=time],\n.rtl input[type=week] {\n direction: rtl;\n}\n.mod-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=month]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl input[type=week]::-webkit-calendar-picker-indicator,\n.rtl input[type=month]::-webkit-calendar-picker-indicator,\n.rtl input[type=time]::-webkit-calendar-picker-indicator,\n.rtl input[type=week]::-webkit-calendar-picker-indicator {\n right: var(--size-4-1);\n left: auto;\n}\n\n.obsidian-dev-utils input[type=month],\n.obsidian-dev-utils input[type=time],\n.obsidian-dev-utils input[type=week] {\n font-variant-numeric: tabular-nums;\n position: relative;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-text,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-text {\n color: var(--text-faint);\n padding-inline-end: 0;\n}\n.obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n position: absolute;\n left: var(--size-4-1);\n right: auto;\n opacity: 0.5;\n}\n.obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-month-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-day-field:focus, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:active, .obsidian-dev-utils input[type=month]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=time]::-webkit-datetime-edit-year-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-month-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-day-field:focus,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:active,\n.obsidian-dev-utils input[type=week]::-webkit-datetime-edit-year-field:focus {\n background-color: var(--text-selection);\n color: var(--text-normal);\n cursor: text;\n}\n.mod-rtl .obsidian-dev-utils input[type=month], .is-rtl .obsidian-dev-utils input[type=month], .rtl .obsidian-dev-utils input[type=month],\n.mod-rtl .obsidian-dev-utils input[type=time],\n.is-rtl .obsidian-dev-utils input[type=time],\n.rtl .obsidian-dev-utils input[type=time],\n.mod-rtl .obsidian-dev-utils input[type=week],\n.is-rtl .obsidian-dev-utils input[type=week],\n.rtl .obsidian-dev-utils input[type=week] {\n direction: rtl;\n}\n.mod-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .is-rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator, .rtl .obsidian-dev-utils input[type=month]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator,\n.mod-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.is-rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator,\n.rtl .obsidian-dev-utils input[type=week]::-webkit-calendar-picker-indicator {\n left: auto;\n right: var(--size-4-1);\n}\n\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=month],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=time],\nbody:not(.is-ios):not(.is-android) .obsidian-dev-utils input[type=week] {\n padding-inline-start: var(--size-4-6);\n}\n\n.obsidian-dev-utils input[type=time]::-webkit-calendar-picker-indicator {\n margin-inline-start: 0;\n}\n\n.obsidian-dev-utilsprogress.loop {\n min-width: 200px;\n}\n\n@keyframes obsidian-dev-utils-minimized-modal-bar-pulse {\n 0%, 100% {\n box-shadow: var(--shadow-s);\n }\n 50% {\n box-shadow: 0 0 0 2px var(--interactive-accent);\n }\n}\n@keyframes obsidian-dev-utils-minimized-modal-bar-attention {\n 0% {\n box-shadow: 0 0 0 0 var(--interactive-accent);\n }\n 40% {\n box-shadow: 0 0 0 4px var(--interactive-accent);\n }\n 100% {\n box-shadow: var(--shadow-s);\n }\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button {\n position: absolute;\n top: var(--size-4-2);\n right: calc(var(--size-4-2) + var(--size-4-9));\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimizable-modal .minimize-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n.obsidian-dev-utils.minimized-modal-bar {\n position: fixed;\n right: var(--size-4-4);\n bottom: calc(var(--size-4-4) + var(--size-4-8));\n z-index: var(--layer-modal);\n display: flex;\n align-items: center;\n gap: var(--size-4-2);\n padding: var(--size-4-2) var(--size-4-3);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-m);\n background: var(--background-secondary);\n box-shadow: var(--shadow-s);\n cursor: pointer;\n animation: obsidian-dev-utils-minimized-modal-bar-pulse 2s ease-in-out infinite;\n}\n.obsidian-dev-utils.minimized-modal-bar:hover {\n background-image: linear-gradient(var(--background-modifier-hover), var(--background-modifier-hover));\n}\n.obsidian-dev-utils.minimized-modal-bar.minimized-modal-bar-attention {\n animation: obsidian-dev-utils-minimized-modal-bar-attention 0.35s ease-out;\n}\n.obsidian-dev-utils.minimized-modal-bar .minimized-modal-bar-title {\n font-weight: var(--font-medium);\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button,\n.obsidian-dev-utils.minimized-modal-bar .cancel-button {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--size-2-2);\n border: none;\n border-radius: var(--radius-s);\n background: transparent;\n color: var(--icon-color);\n cursor: pointer;\n box-shadow: none;\n}\n.obsidian-dev-utils.minimized-modal-bar .restore-button:hover,\n.obsidian-dev-utils.minimized-modal-bar .cancel-button:hover {\n background: var(--background-modifier-hover);\n color: var(--icon-color-hover);\n}\n\n.obsidian-dev-utils.modal-commands {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-2-2);\n padding: var(--size-4-2) var(--size-4-3);\n border-top: 1px solid var(--background-modifier-border);\n}\n.obsidian-dev-utils.modal-command {\n display: inline-flex;\n align-items: baseline;\n gap: var(--size-2-2);\n min-height: var(--size-4-8);\n padding: var(--size-2-1) var(--size-4-2);\n border: 1px solid var(--background-modifier-border);\n border-radius: var(--radius-s);\n background-color: var(--background-secondary);\n color: var(--text-muted);\n font-size: var(--font-ui-smaller);\n white-space: nowrap;\n cursor: pointer;\n}\n.obsidian-dev-utils.modal-command:hover:not(:disabled) {\n background-color: var(--background-modifier-hover);\n color: var(--text-normal);\n}\n.obsidian-dev-utils.modal-command.is-active {\n border-color: var(--interactive-accent);\n background-color: var(--interactive-accent);\n color: var(--text-on-accent);\n}\n.obsidian-dev-utils.modal-command:disabled {\n opacity: 0.5;\n cursor: default;\n}\n.obsidian-dev-utils.modal-command-hotkey {\n color: var(--text-faint);\n font-size: var(--font-smallest);\n}\n.modal-command.is-active .obsidian-dev-utils.modal-command-hotkey {\n opacity: 0.7;\n color: var(--text-on-accent);\n}\n\n.obsidian-dev-utils.modal-container .ok-button {\n margin-right: 10px;\n margin-top: 20px;\n}\n\n.obsidian-dev-utils .multiple-dropdown-component select,\n.obsidian-dev-utils .multiple-dropdown-component select:focus,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown {\n height: auto;\n padding-top: 3px;\n}\n.obsidian-dev-utils .multiple-dropdown-component select option:checked,\n.obsidian-dev-utils .multiple-dropdown-component select:focus option:checked,\n.obsidian-dev-utils .multiple-dropdown-component .dropdown option:checked {\n background-color: #1967d2;\n color: #fff;\n}\n\n.obsidian-dev-utils.plugin-notice-name {\n color: var(--text-accent);\n display: inline-block;\n font-weight: var(--font-bold);\n margin-bottom: var(--size-4-2);\n}\n.obsidian-dev-utils.plugin-notice-content {\n padding-right: var(--size-4-5);\n position: relative;\n}\n.obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.cancel-button {\n display: block;\n margin-top: var(--size-4-2);\n width: fit-content;\n}\n.obsidian-dev-utils.plugin-notice-content .obsidian-dev-utils.plugin-notice-close-button {\n position: absolute;\n right: var(--size-4-3);\n top: var(--size-4-3);\n}\n.obsidian-dev-utils.plugin-notice-requires-explicit-close.notice {\n padding: 0;\n}\n.obsidian-dev-utils.plugin-notice-requires-explicit-close.notice .obsidian-dev-utils.plugin-notice-content {\n padding: var(--size-4-3) var(--size-4-4);\n}\n\n.obsidian-dev-utils.plugin-settings-tab a:focus {\n outline: 2px solid var(--link-color);\n}\n\n.obsidian-dev-utils.plugin-suggestion-banner {\n background-color: var(--background-secondary);\n border-left: var(--size-2-1) solid var(--text-accent);\n border-radius: var(--radius-s);\n display: flex;\n flex-direction: column;\n gap: var(--size-4-2);\n margin-bottom: var(--size-4-4);\n padding: var(--size-4-3) var(--size-4-4);\n}\n.obsidian-dev-utils.plugin-suggestion-banner button {\n width: fit-content;\n}\n\n.obsidian-dev-utils.popover {\n max-width: min(420px, 90vw);\n min-width: 320px;\n padding: var(--size-4-2) var(--size-4-3);\n position: absolute;\n z-index: var(--layer-menu);\n}\n.obsidian-dev-utils.popover .setting-item {\n align-items: center;\n border-top: none;\n gap: var(--size-4-2);\n padding: var(--size-2-1) 0;\n}\n.obsidian-dev-utils.popover .setting-item-info {\n margin-right: 0;\n}\n.obsidian-dev-utils.popover .setting-item-control {\n flex-grow: 1;\n justify-content: flex-end;\n}\n.obsidian-dev-utils.popover input[type=text] {\n width: 100%;\n}\n\n.obsidian-dev-utils.prompt-modal .text-box {\n width: 100%;\n}\n\nbody button:not(.clickable-icon) {\n color: var(--text-color);\n}\n\n.obsidian-dev-utils.tri-state-checkbox-component input[type=checkbox]:indeterminate {\n appearance: checkbox;\n}\n\n.obsidian-dev-utils :invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils input.metadata-input-text:active:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus-visible:invalid:not(.untouched), .obsidian-dev-utils input.metadata-input-text:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=date]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=datetime-local]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=email]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=number]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=password]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=search]:focus:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:active:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils input[type=text]:focus:invalid:not(.untouched),\n.obsidian-dev-utils textarea:active:invalid:not(.untouched),\n.obsidian-dev-utils textarea:focus-visible:invalid:not(.untouched),\n.obsidian-dev-utils textarea:focus:invalid:not(.untouched) {\n box-shadow: 0 0 0 2px var(--text-error);\n}\n.obsidian-dev-utils.setting-component-wrapper {\n position: relative;\n display: inline-flex;\n}\n.obsidian-dev-utils.overlay-validator {\n caret-color: transparent;\n cursor: default;\n position: absolute;\n background-color: transparent;\n border: none;\n outline: none;\n pointer-events: none;\n z-index: 9999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n}\n.obsidian-dev-utils.tooltip.tooltip-validator {\n position: absolute;\n top: calc(100% + 8px);\n width: max-content;\n}\n\n/*# sourceMappingURL=data:application/json;charset=utf-8,%7B%22version%22:3,%22sourceRoot%22:%22%22,%22sources%22:%5B%22../src/styles/code-highlighter-component.scss%22,%22../src/styles/editor-lock.scss%22,%22../src/styles/input.scss%22,%22../src/styles/input-time.scss%22,%22../src/styles/loop.scss%22,%22../src/styles/minimizable-modal.scss%22,%22../src/styles/modal-commands.scss%22,%22../src/styles/modal-container.scss%22,%22../src/styles/multiple-dropdown-component.scss%22,%22../src/styles/plugin-notice.scss%22,%22../src/styles/plugin-settings-tab.scss%22,%22../src/styles/plugin-suggestion.scss%22,%22../src/styles/popover.scss%22,%22../src/styles/prompt-modal.scss%22,%22../src/styles/tldraw-button-color-workaround.scss%22,%22../src/styles/tri-state-checkbox-component.scss%22,%22../src/styles/validation.scss%22%5D,%22names%22:%5B%5D,%22mappings%22:%22AAEI;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;;ACvCN;EACE;EACA;EACA;;AAEA;EACE;EACA;;;AAMJ;EACE;IACE;IACA;;;AAIJ;EACE;;;ACvBA;EACE;;AAGF;AAAA;AAAA;AAAA;AAAA;EAKE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGE;EACE;AAAA;AAAA;AAAA;AAAA;IACE;IACA,YACE;;;AAMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA,YACE;;AAIJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;AAAA;EACE;;AASE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AC7DV;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;AAGF;AAAA;AAAA;EACE;EACA;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAIK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGP;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACE;EACA;;;AAKF;AAAA;AAAA;EACE;;;AAMJ;EACE;;;ACjDJ;EACE;;;ACFJ;EACE;IAEE;;EAGF;IACE;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE;;;AAOA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AASN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAOA;EACE;;AAOF;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACE;EACA;;;ACpGN;EACE;EACA;EACA;EACA;EACA;;AAMF;EACE;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAKF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAIJ;EACE;EACA;;AAGA;EACE;EACA;;;AC3DF;EACE;EACA;;;ACFF;AAAA;AAAA;EAGE;EACA;;AAEA;AAAA;AAAA;EACE;EACA;;;ACTN;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAOJ;EACE;;AAEA;EACE;;;AChCF;EACE;;;ACFJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;ACRJ;EAIE;EACA;EACA;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AC9BF;EACE;;;ACON;EACE;;;ACTE;EACE;;;ACKJ;EAPA;;AAuBI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAvBJ;;AA6BA;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA%22,%22file%22:%22styles.css%22,%22sourcesContent%22:%5B%22.obsidian-dev-utils%20%7B%5Cn%20%20&.code-highlighter-component%20%7B%5Cn%20%20%20%20textarea,%20pre,%20code%20%7B%5Cn%20%20%20%20%20%20font-family:%20var(--font-monospace);%5Cn%20%20%20%20%20%20line-height:%20var(--line-height-normal);%5Cn%20%20%20%20%20%20margin:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea,%20code%20%7B%5Cn%20%20%20%20%20%20font-size:%20var(--code-size);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20textarea%20%7B%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20transparent;%5Cn%20%20%20%20%20%20z-index:%202;%5Cn%20%20%20%20%20%20width:%2020em;%5Cn%20%20%20%20%20%20height:%2010em;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20%20%20border:%20var(--input-border-width)%20solid%20transparent;%5Cn%20%20%20%20%20%20overflow:%20auto;%5Cn%20%20%20%20%20%20inset:%200;%5Cn%20%20%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20%20%20z-index:%201;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre::after%20%7B%5Cn%20%20%20%20%20%20content:%20%5C%22%5C%22;%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20height:%20var(--bottom-gap,%200);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20pre.is-placeholder%20%7B%5Cn%20%20%20%20%20%20opacity:%200.6;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20code%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20padding:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20Lock%20indicators%20shown%20in%20the%20tab%20header%20and%20the%20status%20bar%20while%20a%20note%20is%20locked.%20These%20live%20in%5Cn//%20global%20Obsidian%20DOM%20(tab%20header%20/%20status%20bar),%20so%20they%20are%20styled%20with%20a%20global%20class%20rather%20than%5Cn//%20scoped%20under%20%60.obsidian-dev-utils%60.%5Cn.obsidian-dev-utils-lock-indicator%20%7B%5Cn%20%20display:%20inline-flex;%5Cn%20%20align-items:%20center;%5Cn%20%20color:%20var(--text-muted);%5Cn%5Cn%20%20.svg-icon%20%7B%5Cn%20%20%20%20width:%20var(--icon-s);%5Cn%20%20%20%20height:%20var(--icon-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn//%20Flashed%20on%20every%20lock%20indicator%20(tab%20header,%20view%20action,%20status%20bar)%20when%20the%20user%20attempts%20to%5Cn//%20type%20in%20a%20locked%20note,%20to%20make%20clear%20the%20note%20is%20read-only.%20Re-added%20per%20rejected%20keystroke.%5Cn@keyframes%20obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20color:%20var(--text-error);%5Cn%20%20%20%20transform:%20scale(1.4);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils-lock-indicator-flash%20%7B%5Cn%20%20animation:%20obsidian-dev-utils-lock-indicator-flash%200.35s%20ease-in-out;%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='url'%5D%20%7B%5Cn%20%20%20%20height:%20var(--input-height)%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='tel'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='url'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20-webkit-app-region:%20no-drag;%5Cn%20%20%20%20background:%20var(--background-modifier-form-field);%5Cn%20%20%20%20border:%20var(--input-border-width)%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20font-family:%20inherit;%5Cn%20%20%20%20padding:%20var(--size-4-1)%20var(--size-4-2);%5Cn%20%20%20%20font-size:%20var(--font-ui-small);%5Cn%20%20%20%20border-radius:%20var(--input-radius);%5Cn%20%20%20%20outline:%20none;%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20@media%20(hover:%20hover)%20%7B%5Cn%20%20%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20border-color:%20var(--background-modifier-border-hover);%5Cn%20%20%20%20%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%20%20transition:%5Cn%20%20%20%20%20%20%20%20box-shadow%200.15s%20ease-in-out,%5Cn%20%20%20%20%20%20%20%20border%200.15s%20ease-in-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus,%5Cn%20%20%20%20&:focus-visible%20%7B%5Cn%20%20%20%20%20%20box-shadow:%200%200%200%202px%20var(--background-modifier-border-focus);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::placeholder%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20@at-root%20%7B%5Cn%20%20%20%20.mod-rtl,%5Cn%20%20%20%20.is-rtl,%5Cn%20%20%20%20.rtl%20%7B%5Cn%20%20%20%20%20%20&%20%7B%5Cn%20%20%20%20%20%20%20%20input%5Btype='month'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='time'%5D,%5Cn%20%20%20%20%20%20%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%20%20%7D%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20input%5Btype='month'%5D,%5Cn%20%20input%5Btype='time'%5D,%5Cn%20%20input%5Btype='week'%5D%20%7B%5Cn%20%20%20%20font-variant-numeric:%20tabular-nums;%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-text%20%7B%5Cn%20%20%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20%20%20padding-inline-end:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20left:%20var(--size-4-1);%5Cn%20%20%20%20%20%20right:%20auto;%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20&::-webkit-datetime-edit-month-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-day-field,%5Cn%20%20%20%20&::-webkit-datetime-edit-year-field%20%7B%5Cn%20%20%20%20%20%20&:active,%5Cn%20%20%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20var(--text-selection);%5Cn%20%20%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%20%20%20%20cursor:%20text;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20.mod-rtl%20&,%5Cn%20%20%20%20%20%20.is-rtl%20&,%5Cn%20%20%20%20%20%20.rtl%20&%20%7B%5Cn%20%20%20%20%20%20direction:%20rtl;%5Cn%5Cn%20%20%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20%20%20left:%20auto;%5Cn%20%20%20%20%20%20%20%20right:%20var(--size-4-1);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20@at-root%20%7B%5Cn%20%20%20%20%20%20body:not(.is-ios):not(.is-android)%20&%20%7B%5Cn%20%20%20%20%20%20%20%20padding-inline-start:%20var(--size-4-6);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20input%5Btype='time'%5D%20%7B%5Cn%20%20%20%20&::-webkit-calendar-picker-indicator%20%7B%5Cn%20%20%20%20%20%20margin-inline-start:%200;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&progress.loop%20%7B%5Cn%20%20%20%20min-width:%20200px;%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@keyframes%20obsidian-dev-utils-minimized-modal-bar-pulse%20%7B%5Cn%20%200%25,%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%5Cn%20%2050%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%202px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn@keyframes%20obsidian-dev-utils-minimized-modal-bar-attention%20%7B%5Cn%20%200%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%200%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%2040%25%20%7B%5Cn%20%20%20%20box-shadow:%200%200%200%204px%20var(--interactive-accent);%5Cn%20%20%7D%5Cn%5Cn%20%20100%25%20%7B%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%7D%5Cn%7D%5Cn%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20minimize%20button%20lives%20inside%20the%20modal%20container,%20left%20of%20Obsidian's%20close%20button.%5Cn%20%20&.minimizable-modal%20%7B%5Cn%20%20%20%20.minimize-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20right:%20calc(var(--size-4-2)%20+%20var(--size-4-9));%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20The%20minimized%20bar%20is%20appended%20to%20document.body.%20It%20floats%20at%20the%20bottom-right%20while%20minimized,%5Cn%20%20//%20and%20gently%20pulses%20an%20accent%20ring%20so%20the%20user%20does%20not%20forget%20about%20the%20minimized%20operation.%5Cn%20%20//%20It%20floats%20a%20status-bar's%20height%20above%20the%20bottom%20edge%20so%20it%20never%20covers%20the%20bottom-right%5Cn%20%20//%20status-bar%20items%20(e.g.%20the%20editor-lock%20unlock%20indicator,%20which%20lives%20in%20the%20same%20corner).%5Cn%20%20&.minimized-modal-bar%20%7B%5Cn%20%20%20%20position:%20fixed;%5Cn%20%20%20%20right:%20var(--size-4-4);%5Cn%20%20%20%20bottom:%20calc(var(--size-4-4)%20+%20var(--size-4-8));%5Cn%20%20%20%20z-index:%20var(--layer-modal);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20align-items:%20center;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-m);%5Cn%20%20%20%20background:%20var(--background-secondary);%5Cn%20%20%20%20box-shadow:%20var(--shadow-s);%5Cn%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-pulse%202s%20ease-in-out%20infinite;%5Cn%5Cn%20%20%20%20//%20Layer%20the%20translucent%20hover%20tint%20over%20the%20opaque%20%60background%60%20(%60--background-secondary%60)%20via%5Cn%20%20%20%20//%20%60background-image%60%20instead%20of%20replacing%20the%20background-color.%20%60--background-modifier-hover%60%20is%5Cn%20%20%20%20//%20translucent,%20so%20setting%20it%20as%20%60background%60%20would%20let%20the%20editor%20content%20behind%20the%20floating%20bar%5Cn%20%20%20%20//%20bleed%20through%20and%20make%20the%20title%20unreadable.%20A%20gradient%20of%20the%20tint%20composited%20over%20the%20opaque%5Cn%20%20%20%20//%20base%20keeps%20the%20bar%20opaque%20while%20preserving%20the%20subtle%20hover%20highlight.%5Cn%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20background-image:%20linear-gradient(var(--background-modifier-hover),%20var(--background-modifier-hover));%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20one-shot,%20more%20pronounced%20flash%20played%20when%20the%20user%20attempts%20a%20blocked%20action%20(a%20keystroke,%5Cn%20%20%20%20//%20right-click,%20or%20opening%20another%20modal)%20while%20this%20modal%20is%20minimized,%20so%20the%20block%20is%20not%5Cn%20%20%20%20//%20silent.%20Its%20higher%20specificity%20overrides%20the%20gentle%20infinite%20idle%20pulse%20while%20it%20plays;%20the%5Cn%20%20%20%20//%20class%20is%20removed%20on%20%60animationend%60,%20restoring%20the%20idle%20pulse.%5Cn%20%20%20%20&.minimized-modal-bar-attention%20%7B%5Cn%20%20%20%20%20%20animation:%20obsidian-dev-utils-minimized-modal-bar-attention%200.35s%20ease-out;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.minimized-modal-bar-title%20%7B%5Cn%20%20%20%20%20%20font-weight:%20var(--font-medium);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.restore-button,%5Cn%20%20%20%20.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20flex;%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20justify-content:%20center;%5Cn%20%20%20%20%20%20padding:%20var(--size-2-2);%5Cn%20%20%20%20%20%20border:%20none;%5Cn%20%20%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20%20%20background:%20transparent;%5Cn%20%20%20%20%20%20color:%20var(--icon-color);%5Cn%20%20%20%20%20%20cursor:%20pointer;%5Cn%20%20%20%20%20%20box-shadow:%20none;%5Cn%5Cn%20%20%20%20%20%20&:hover%20%7B%5Cn%20%20%20%20%20%20%20%20background:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20%20%20color:%20var(--icon-color-hover);%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20//%20The%20strip%20of%20commands%20along%20the%20bottom%20of%20a%20modal.%5Cn%20%20//%5Cn%20%20//%20In%20%60Instructions%60%20render%20mode%20it%20also%20carries%20Obsidian's%20own%20%60.prompt-instructions%60,%20so%20this%20rule%20only%5Cn%20%20//%20has%20to%20supply%20the%20separator%20and%20the%20wrapping%20that%20a%20self-created%20bar%20does%20not%20inherit;%20in%20%60Buttons%60%5Cn%20%20//%20mode%20it%20is%20the%20whole%20strip.%5Cn%20%20&.modal-commands%20%7B%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-wrap:%20wrap;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20border-top:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%7D%5Cn%5Cn%20%20//%20One%20command%20button.%20Replaces%20the%20instruction%20bar%20rather%20than%20supplementing%20it:%20the%20bar%20can%20only%20ever%5Cn%20%20//%20say%20which%20key%20to%20press,%20and%20on%20a%20phone%20there%20is%20no%20modifier%20key%20to%20press,%20so%20every%20control%20it%20names%5Cn%20%20//%20is%20unreachable%20there.%5Cn%20%20&.modal-command%20%7B%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%20%20align-items:%20baseline;%5Cn%20%20%20%20gap:%20var(--size-2-2);%5Cn%5Cn%20%20%20%20//%20Comfortably%20tappable%20on%20a%20phone,%20where%20this%20strip%20is%20the%20only%20way%20in.%5Cn%20%20%20%20min-height:%20var(--size-4-8);%5Cn%20%20%20%20padding:%20var(--size-2-1)%20var(--size-4-2);%5Cn%20%20%20%20border:%201px%20solid%20var(--background-modifier-border);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20color:%20var(--text-muted);%5Cn%20%20%20%20font-size:%20var(--font-ui-smaller);%5Cn%20%20%20%20white-space:%20nowrap;%5Cn%20%20%20%20cursor:%20pointer;%5Cn%5Cn%20%20%20%20&:hover:not(:disabled)%20%7B%5Cn%20%20%20%20%20%20background-color:%20var(--background-modifier-hover);%5Cn%20%20%20%20%20%20color:%20var(--text-normal);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20A%20toggle%20that%20is%20ON.%20An%20action%20never%20carries%20it%20%E2%80%94%20it%20does%20something%20and%20is%20done,%20so%20there%20is%20no%5Cn%20%20%20%20//%20state%20for%20it%20to%20show.%5Cn%20%20%20%20&.is-active%20%7B%5Cn%20%20%20%20%20%20border-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20background-color:%20var(--interactive-accent);%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20Disabled%20rather%20than%20removed:%20a%20strip%20that%20lost%20buttons%20as%20modes%20change%20would%20reflow%20under%20the%5Cn%20%20%20%20//%20pointer,%20which%20on%20a%20phone%20means%20a%20mis-tap.%5Cn%20%20%20%20&:disabled%20%7B%5Cn%20%20%20%20%20%20opacity:%200.5;%5Cn%20%20%20%20%20%20cursor:%20default;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.modal-command-hotkey%20%7B%5Cn%20%20%20%20color:%20var(--text-faint);%5Cn%20%20%20%20font-size:%20var(--font-smallest);%5Cn%5Cn%20%20%20%20//%20Faint%20against%20the%20surface%20is%20right;%20faint%20against%20the%20accent%20fill%20is%20invisible.%5Cn%20%20%20%20.modal-command.is-active%20&%20%7B%5Cn%20%20%20%20%20%20opacity:%200.7;%5Cn%20%20%20%20%20%20color:%20var(--text-on-accent);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.modal-container%20%7B%5Cn%20%20%20%20.ok-button%20%7B%5Cn%20%20%20%20%20%20margin-right:%2010px;%5Cn%20%20%20%20%20%20margin-top:%2020px;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20.multiple-dropdown-component%20%7B%5Cn%20%20%20%20select,%5Cn%20%20%20%20select:focus,%5Cn%20%20%20%20.dropdown%20%7B%5Cn%20%20%20%20%20%20height:%20auto;%5Cn%20%20%20%20%20%20padding-top:%203px;%5Cn%5Cn%20%20%20%20%20%20option:checked%20%7B%5Cn%20%20%20%20%20%20%20%20background-color:%20%231967d2;%5Cn%20%20%20%20%20%20%20%20color:%20%23fff;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-notice-name%20%7B%5Cn%20%20%20%20color:%20var(--text-accent);%5Cn%20%20%20%20display:%20inline-block;%5Cn%20%20%20%20font-weight:%20var(--font-bold);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-2);%5Cn%20%20%7D%5Cn%5Cn%20%20&.plugin-notice-content%20%7B%5Cn%20%20%20%20padding-right:%20var(--size-4-5);%5Cn%20%20%20%20position:%20relative;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.cancel-button%20%7B%5Cn%20%20%20%20%20%20display:%20block;%5Cn%20%20%20%20%20%20margin-top:%20var(--size-4-2);%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20//%20The%20close%20button%20reuses%20Obsidian's%20%60modal-header-button%60%20+%20%60clickable-icon%60%20classes%20so%20it%20matches%5Cn%20%20%20%20//%20The%20native%20modal%20close%20button%20(box%20+%20hover);%20only%20its%20corner%20position%20is%20set%20here.%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-close-button%20%7B%5Cn%20%20%20%20%20%20position:%20absolute;%5Cn%20%20%20%20%20%20right:%20var(--size-4-3);%5Cn%20%20%20%20%20%20top:%20var(--size-4-3);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20//%20Move%20the%20notice's%20own%20padding%20onto%20the%20content%20wrapper%20so%20the%20wrapper%20covers%20the%20whole%20clickable%5Cn%20%20//%20Area%20%E2%80%94%20otherwise%20a%20click%20landing%20on%20the%20notice's%20bare%20padding%20(outside%20the%20wrapper)%20would%20bypass%20the%5Cn%20%20//%20Stop-propagation%20guard%20and%20dismiss%20the%20hard-to-close%20notice.%5Cn%20%20&.plugin-notice-requires-explicit-close.notice%20%7B%5Cn%20%20%20%20padding:%200;%5Cn%5Cn%20%20%20%20.obsidian-dev-utils.plugin-notice-content%20%7B%5Cn%20%20%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-settings-tab%20%7B%5Cn%20%20%20%20a:focus%20%7B%5Cn%20%20%20%20%20%20outline:%202px%20solid%20var(--link-color);%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.plugin-suggestion-banner%20%7B%5Cn%20%20%20%20background-color:%20var(--background-secondary);%5Cn%20%20%20%20border-left:%20var(--size-2-1)%20solid%20var(--text-accent);%5Cn%20%20%20%20border-radius:%20var(--radius-s);%5Cn%20%20%20%20display:%20flex;%5Cn%20%20%20%20flex-direction:%20column;%5Cn%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20margin-bottom:%20var(--size-4-4);%5Cn%20%20%20%20padding:%20var(--size-4-3)%20var(--size-4-4);%5Cn%5Cn%20%20%20%20button%20%7B%5Cn%20%20%20%20%20%20width:%20fit-content;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20A%20popover%20is%20anchored%20at%20a%20point%20and%20appended%20to%20the%20document%20body,%20outside%20any%20plugin-scoped%5Cn//%20container,%20so%20it%20is%20positioned%20absolutely%20at%20the%20top%20level.%20It%20borrows%20Obsidian's%20%60.menu%60%20look,%5Cn//%20which%20already%20carries%20the%20popup%20background,%20border%20and%20shadow%20%E2%80%94%20only%20layout%20is%20set%20here.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20&.popover%20%7B%5Cn%20%20%20%20//%20Deliberately%20not%20%60calc(100vw%20-%2016px)%60:%20the%20SCSS%20compiler%20strips%20the%20%60calc(%60%20wrapper%20inside%5Cn%20%20%20%20//%20%60min()%60,%20which%20yields%20invalid%20CSS.%20A%20viewport%20percentage%20keeps%20a%20narrow%20window's%20popover%20on%5Cn%20%20%20%20//%20screen.%5Cn%20%20%20%20max-width:%20min(420px,%2090vw);%5Cn%20%20%20%20min-width:%20320px;%5Cn%20%20%20%20padding:%20var(--size-4-2)%20var(--size-4-3);%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20z-index:%20var(--layer-menu);%5Cn%5Cn%20%20%20%20//%20Setting%20rows%20are%20built%20for%20a%20full-width%20settings%20tab;%20compact%20them%20for%20a%20popover.%5Cn%20%20%20%20.setting-item%20%7B%5Cn%20%20%20%20%20%20align-items:%20center;%5Cn%20%20%20%20%20%20border-top:%20none;%5Cn%20%20%20%20%20%20gap:%20var(--size-4-2);%5Cn%20%20%20%20%20%20padding:%20var(--size-2-1)%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-info%20%7B%5Cn%20%20%20%20%20%20margin-right:%200;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20.setting-item-control%20%7B%5Cn%20%20%20%20%20%20flex-grow:%201;%5Cn%20%20%20%20%20%20justify-content:%20flex-end;%5Cn%20%20%20%20%7D%5Cn%5Cn%20%20%20%20input%5Btype='text'%5D%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.prompt-modal%20%7B%5Cn%20%20%20%20.text-box%20%7B%5Cn%20%20%20%20%20%20width:%20100%25;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22//%20The%20tldraw%20Obsidian%20plugin%20(tldraw/obsidian-plugin)%20ships%20an%20unscoped%20global%20rule%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20currentColor%20%7D%60%20that%20overrides%20Obsidian's%20own%5Cn//%20%60button:not(.clickable-icon)%20%7B%20color:%20var(--text-color)%20%7D%60%20app-wide.%20Obsidian%20sets%5Cn//%20%60--text-color%60%20contextually%20per%20button%20variant%20(%60--text-normal%60%20by%20default,%5Cn//%20%60--text-on-accent%60%20for%20%60.mod-cta%60,%20%60--text-error%60%20for%20%60.mod-warning%60),%20so%20tldraw's%5Cn//%20%60currentColor%60%20discards%20that%20and%20breaks%20button%20contrast%20outside%20tldraw%20%E2%80%94%20e.g.%5Cn//%20White-on-white%20action%20buttons%20inside%20a%20Notice.%20Re-assert%20Obsidian's%20own%20value%20with%20a%5Cn//%20%60body%60-prefixed%20selector%20(specificity%200,1,2)%20so%20it%20wins%20over%20tldraw's%20(0,1,1)%20while%5Cn//%20Staying%20correct%20for%20every%20button%20variant%20(it%20reuses%20the%20same%20contextual%20%60--text-color%60).%5Cn//%20Defensive%20workaround%20%E2%80%94%20remove%20once%20the%20upstream%20fix%20ships%20(tldraw/obsidian-plugin%23210).%5Cnbody%20button:not(.clickable-icon)%20%7B%5Cn%20%20color:%20var(--text-color);%5Cn%7D%5Cn%22,%22.obsidian-dev-utils%20%7B%5Cn%20%20&.tri-state-checkbox-component%20%7B%5Cn%20%20%20%20input%5Btype='checkbox'%5D:indeterminate%20%7B%5Cn%20%20%20%20%20%20appearance:%20checkbox;%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%7D%5Cn%22,%22@mixin%20invalid%20%7B%5Cn%20%20box-shadow:%200%200%200%202px%20var(--text-error);%5Cn%7D%5Cn%5Cn//%20An%20input%20the%20user%20has%20not%20interacted%20with%20yet%20carries%20%60.untouched%60%20(set%20by%20%60PromptModal%60),%20so%20a%20modal%20that%5Cn//%20opens%20invalid%20by%20design%20does%20not%20greet%20the%20user%20in%20red.%20Both%20blocks%20below%20must%20be%20gated:%20the%20input%20is%5Cn//%20focused%20on%20open,%20so%20the%20focus%20block%20alone%20would%20keep%20painting%20it.%5Cn.obsidian-dev-utils%20%7B%5Cn%20%20:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20@include%20invalid;%5Cn%20%20%7D%5Cn%5Cn%20%20input.metadata-input-text,%5Cn%20%20input%5Btype='date'%5D,%5Cn%20%20input%5Btype='datetime-local'%5D,%5Cn%20%20input%5Btype='email'%5D,%5Cn%20%20input%5Btype='number'%5D,%5Cn%20%20input%5Btype='password'%5D,%5Cn%20%20input%5Btype='search'%5D,%5Cn%20%20input%5Btype='text'%5D,%5Cn%20%20textarea%20%7B%5Cn%20%20%20%20&:active,%5Cn%20%20%20%20&:focus-visible,%5Cn%20%20%20%20&:focus%20%7B%5Cn%20%20%20%20%20%20&:invalid:not(.untouched)%20%7B%5Cn%20%20%20%20%20%20%20%20@include%20invalid;%5Cn%20%20%20%20%20%20%7D%5Cn%20%20%20%20%7D%5Cn%20%20%7D%5Cn%5Cn%20%20&.setting-component-wrapper%20%7B%5Cn%20%20%20%20position:%20relative;%5Cn%20%20%20%20display:%20inline-flex;%5Cn%20%20%7D%5Cn%5Cn%20%20&.overlay-validator%20%7B%5Cn%20%20%20%20caret-color:%20transparent;%5Cn%20%20%20%20cursor:%20default;%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20background-color:%20transparent;%5Cn%20%20%20%20border:%20none;%5Cn%20%20%20%20outline:%20none;%5Cn%20%20%20%20pointer-events:%20none;%5Cn%20%20%20%20z-index:%209999;%5Cn%20%20%20%20left:%200;%5Cn%20%20%20%20top:%200;%5Cn%20%20%20%20width:%20100%25;%5Cn%20%20%20%20height:%20100%25;%5Cn%20%20%7D%5Cn%5Cn%20%20&.tooltip.tooltip-validator%20%7B%5Cn%20%20%20%20position:%20absolute;%5Cn%20%20%20%20top:%20calc(100%25%20+%208px);%5Cn%20%20%20%20width:%20max-content;%5Cn%20%20%7D%5Cn%7D%5Cn%22%5D%7D */\n";
46
46
  export {
47
47
  LIBRARY_STYLES,
@@ -265,4 +265,4 @@ async function resolveDemoVaultArchive(params) {
265
265
  export {
266
266
  openDemoVault
267
267
  };
268
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQuemlwYCBhcmNoaXZlIHRvIGVhY2ggR2l0SHViIHJlbGVhc2UgKHNlZVxuICogYGFyY2hpdmVQbHVnaW5EZW1vVmF1bHRgIGluIGBzY3JpcHQtdXRpbHMvZGVtby12YXVsdC50c2A7IGV2ZXJ5IG5hbWUgc2hhcmVkIHdpdGggaXQgY29tZXMgZnJvbVxuICogYGRlbW8tdmF1bHQtbmFtaW5nLnRzYCkuIFRoaXMgcmVzb2x2ZXMgdGhlIHBsdWdpbidzIHJlcG9zaXRvcnkgZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSxcbiAqIGRvd25sb2FkcyB0aGUgYXJjaGl2ZSBmb3IgdGhlIGNob3NlbiB2ZXJzaW9uLCBhbmQgb3BlbnMgaXQgYXMgYSB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlXG4gKiBpbnN0YWxsZWQgcGx1Z2luIHZlcnNpb24gaXMgYmVoaW5kIHRoZSBsYXRlc3QgcmVsZWFzZSwgdGhlIHVzZXIgaXMgb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d29cbiAqIHZlcnNpb25zLlxuICpcbiAqIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duIGltbWVkaWF0ZWx5IChkb3dubG9hZCArIGV4dHJhY3Rpb24gY2FuIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWVcbiAqIHNvbWV0aGluZyBpcyBoYXBwZW5pbmcgcmlnaHQgYXdheSkuIE9ubHkgdGhlIGRvd25sb2FkZWQgQVJDSElWRSBpcyBjYWNoZWQgKHVuZGVyIHRoZSBPUyB0ZW1wXG4gKiBkaXJlY3RvcnkpOyBldmVyeSBpbnZvY2F0aW9uIGV4dHJhY3RzIGEgRlJFU0ggY29weSBpbnRvIGl0cyBvd24gdGVtcG9yYXJ5IGZvbGRlciBhbmQgb3BlbnMgdGhhdCwgc28gYVxuICogcHJldmlvdXMgc2Vzc2lvbidzIGVkaXRzIG5ldmVyIGxlYWsgaW50byBhIG5ldyBvbmUuIFRoZSB2YXVsdCBmb2xkZXIgaXMgdGhlIGFyY2hpdmUncyBvd24gc2luZ2xlXG4gKiB0b3AtbGV2ZWwgZm9sZGVyLCBgPHBsdWdpbi1pZD4tZGVtby12YXVsdC08dmVyc2lvbj5gLCB3aGljaCByZWFkcyBuaWNlbHkgaW4gT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlclxuICogYW5kIGlzIHRoZSBzYW1lIG5hbWUgYSBoYW5kLXVuemlwcGVkIGFyY2hpdmUgcHJvZHVjZXMuIE9ycGhhbmVkIGV4dHJhY3RlZCBmb2xkZXJzIGxlZnQgb3ZlciBmcm9tXG4gKiBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICpcbiAqICoqTm90aGluZyBoZXJlIG1heSB0b3VjaCBhIHBsYXRmb3JtLW9ubHkgQVBJIHdoaWxlIHRoZSBtb2R1bGUgSU5JVElBTElaRVMuKiogVGhlIGBub2RlOmAgaW1wb3J0cyBiZWxvd1xuICogYXJlIHNhZmUgdG8gbWVyZWx5IGV2YWx1YXRlIG9uIG1vYmlsZSBcdTIwMTQgYHJlcXVpcmVgIGhhbmRzIGJhY2sgYHVuZGVmaW5lZGAgdGhlcmUgYW5kIG5vdGhpbmcgcmVhZHMgaXQgYXRcbiAqIGxvYWQgdGltZSBcdTIwMTQgYW5kIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHJlLWV4cG9ydCB0aGlzIG1vZHVsZSwgdGhhdCBpcyBhIGxvYWQtYmVhcmluZyBwcm9wZXJ0eSBvZlxuICogdGhlIHdob2xlIGxpYnJhcnkgcmF0aGVyIHRoYW4gYSBkZXRhaWwgb2YgdGhpcyBmaWxlLiBJdCB3YXMgbGVhcm5lZCB0aGUgaGFyZCB3YXk6IHRoaXMgbW9kdWxlIG9uY2VcbiAqIGltcG9ydGVkIGBhZG0temlwYCwgd2hvc2UgemlwLWNyeXB0byBtZXRob2Qgb3BlbnMgd2l0aCBhIHRvcC1sZXZlbFxuICogYGNvbnN0IHsgcmFuZG9tRmlsbFN5bmMgfSA9IHJlcXVpcmUoJ2NyeXB0bycpYCwgYW5kIGEgc3RhdGljIGBpbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnYCB0aGVyZWZvcmVcbiAqIGtpbGxlZCB0aGUgbGlicmFyeSdzIGxvYWQgb24gQW5kcm9pZCAoc2VlIHRoZSBtb2JpbGUtbG9hZCBjaGVjayBpblxuICogYHNjcmlwdHMvaGVscGVycy9hc3NlcnQtbW9iaWxlLWxvYWRhYmxlLWJ1bmRsZS50c2AsIHdoaWNoIGZhaWxzIHRoZSBidWlsZCBvbiBleGFjdGx5IHRoYXQpLiBFeHRyYWN0aW9uXG4gKiBub3cgZ29lcyB0aHJvdWdoIGBkZXNrdG9wLXppcC1leHRyYWN0b3IudHNgLCB3aGljaCBuZWVkcyBubyBkZXBlbmRlbmN5IGF0IGFsbCBcdTIwMTQgYnV0IGFueSBmdXR1cmVcbiAqIGRlcGVuZGVuY3kgdGhhdCBpbml0aWFsaXplcyBhZ2FpbnN0IGEgcGxhdGZvcm0tb25seSBBUEkgc3RpbGwgaGFzIHRvIGJlIGRlZmVycmVkIGJlaGluZCBhIGNhbGwtdGltZVxuICogYGltcG9ydCgpYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQteC9uby1ub2RlanMtbW9kdWxlcyAtLSBEZXNrdG9wLW9ubHkgZmVhdHVyZSBnYXRlZCBieSBgUGxhdGZvcm0uaXNEZXNrdG9wQXBwYDsgdGhlIGNvbW1hbmQgaXMgaGlkZGVuIG9uIG1vYmlsZSBzbyB0aGVzZSBOb2RlIEFQSXMgYXJlIG5ldmVyIHJlYWNoZWQgdGhlcmUuICovXG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG4vKiBlc2xpbnQtZW5hYmxlIGltcG9ydC14L25vLW5vZGVqcy1tb2R1bGVzIC0tIERlc2t0b3Atb25seSBmZWF0dXJlIGdhdGVkIGJ5IGBQbGF0Zm9ybS5pc0Rlc2t0b3BBcHBgOyB0aGUgY29tbWFuZCBpcyBoaWRkZW4gb24gbW9iaWxlIHNvIHRoZXNlIE5vZGUgQVBJcyBhcmUgbmV2ZXIgcmVhY2hlZCB0aGVyZS4gKi9cbmltcG9ydCB7IHJlcXVlc3RVcmwgfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHtcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlXG59IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5cbmltcG9ydCB7IGV4dHJhY3RaaXBBcmNoaXZlIH0gZnJvbSAnLi4vZGVza3RvcC16aXAtZXh0cmFjdG9yLnRzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICcuLi9wYXRoLnRzJztcbmltcG9ydCB7XG4gIGdldENvbW11bml0eVBsdWdpblJlcG8sXG4gIGdldExhdGVzdFJlbGVhc2VWZXJzaW9uXG59IGZyb20gJy4vY29tbXVuaXR5LXBsdWdpbnMudHMnO1xuaW1wb3J0IHsgUGx1Z2luTm90aWNlTW9kZSB9IGZyb20gJy4vY29tcG9uZW50cy9wbHVnaW4tbm90aWNlLWNvbXBvbmVudC50cyc7XG5pbXBvcnQge1xuICBnZXREZW1vVmF1bHRBcmNoaXZlRmlsZU5hbWUsXG4gIGdldERlbW9WYXVsdEZvbGRlck5hbWVcbn0gZnJvbSAnLi9kZW1vLXZhdWx0LW5hbWluZy50cyc7XG5pbXBvcnQgeyBzZWxlY3RPcHRpb24gfSBmcm9tICcuL21vZGFscy9zZWxlY3Qtb3B0aW9uLnRzJztcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB7QGxpbmsgb3BlbkRlbW9WYXVsdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkRlbW9WYXVsdFBhcmFtcyB7XG4gIC8qKlxuICAgKiBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYXBwOiBBcHA7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gaWQsIHVzZWQgdG8gbG9jYXRlIHRoZSBHaXRIdWIgcmVwb3NpdG9yeSwgdG8gbmFtZSB0aGUgYXJjaGl2ZSBhc3NldCwgYW5kIHRvIG5hbWUgdGhlXG4gICAqIGNhY2hlZCBhcmNoaXZlIGFuZCB0aGUgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwbHVnaW4gZGlzcGxheSBuYW1lLCB1c2VkIHRvIGxhYmVsIHRoZSBub3RpY2VzIGFuZCB0aGUgdmVyc2lvbi1jaG9pY2UgZGlhbG9nLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbm90aWNlIGNvbXBvbmVudCB1c2VkIHRvIHJlcG9ydCBwcm9ncmVzcyBhbmQgcHJvYmxlbXMgKHBsdWdpbiBub3QgaW4gdGhlIHJlZ2lzdHJ5LCBtaXNzaW5nXG4gICAqIGFyY2hpdmUpLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50bHkgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uLCBvZmZlcmVkIGFzIG9uZSBvZiB0aGUgdmVyc2lvbiBjaG9pY2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgcGx1Z2luVmVyc2lvbjogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXMge1xuICByZWFkb25seSBhcmNoaXZlOiBCdWZmZXI7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFJlc29sdmVEZW1vVmF1bHRBcmNoaXZlUGFyYW1zIHtcbiAgcmVhZG9ubHkgcGx1Z2luSWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBwbHVnaW5Ob3RpY2VDb21wb25lbnQ6IFBsdWdpbk5vdGljZUNvbXBvbmVudDtcbiAgcmVhZG9ubHkgcHJvZ3Jlc3NOb3RpY2U6IFBsdWdpbk5vdGljZUNvbXBvbmVudERlbGF5ZWROb3RpY2U7XG4gIHJlYWRvbmx5IHJlcG86IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nO1xufVxuXG5jb25zdCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIgPSAnb2JzaWRpYW4tZGVtby12YXVsdHMnO1xuY29uc3QgQVJDSElWRVNfU1VCRk9MREVSID0gJ2FyY2hpdmVzJztcbmNvbnN0IEVYVFJBQ1RFRF9WQVVMVFNfU1VCRk9MREVSID0gJ2V4dHJhY3RlZCc7XG5jb25zdCBIVFRQX1NUQVRVU19PSyA9IDIwMDtcbi8vIE9uZSBkYXkgaW4gbWlsbGlzZWNvbmRzICgyNCAqIDYwICogNjAgKiAxMDAwKS5cbmNvbnN0IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUyA9IDg2XzQwMF8wMDA7XG5cbi8qKlxuICogRG93bmxvYWRzIGFuZCBvcGVucyB0aGUgcGx1Z2luJ3MgZGVtbyB2YXVsdCBpbiBhIG5ldyBPYnNpZGlhbiB3aW5kb3cuIERlc2t0b3Agb25seS5cbiAqXG4gKiBJZiB0aGUgaW5zdGFsbGVkIHBsdWdpbiB2ZXJzaW9uIGlzIHRoZSBsYXRlc3QgKG9yIG5ld2VyKSwgaXRzIGRlbW8gdmF1bHQgb3BlbnMgZGlyZWN0bHk7IG90aGVyd2lzZVxuICogdGhlIHVzZXIgY2hvb3NlcyBiZXR3ZWVuIHRoZSBsYXRlc3QgYW5kIHRoZSBjdXJyZW50bHktaW5zdGFsbGVkIHZlcnNpb24uIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duXG4gKiBpbW1lZGlhdGVseS4gVGhlIGNob3NlbiB2ZXJzaW9uJ3MgYXJjaGl2ZSBpcyBkb3dubG9hZGVkIG9uY2UgKHRoZW4gcmV1c2VkIGZyb20gdGhlIGFyY2hpdmUgY2FjaGUpLFxuICogYnV0IGEgZnJlc2ggY29weSBpcyBleHRyYWN0ZWQgaW50byBpdHMgb3duIHRlbXBvcmFyeSBmb2xkZXIgb24gZXZlcnkgb3BlbiBcdTIwMTQgdGhlIHZhdWx0IGlzIG5ldmVyIHJldXNlZFxuICogYWNyb3NzIHNlc3Npb25zLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIE9wZW5EZW1vVmF1bHRQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyBvbmNlIHRoZSB2YXVsdCBoYXMgYmVlbiBvcGVuZWQsIG9yIG9uY2UgdGhlIG9wZXJhdGlvbiBoYXNcbiAqIGJlZW4gcmVwb3J0ZWQgYXMgbm90IHBvc3NpYmxlIChub3RpY2Ugc2hvd24pIG9yIGNhbmNlbGxlZCBieSB0aGUgdXNlci5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG9wZW5EZW1vVmF1bHQocGFyYW1zOiBPcGVuRGVtb1ZhdWx0UGFyYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcGx1Z2luVmVyc2lvblxuICB9ID0gcGFyYW1zO1xuXG4gIC8vIFNob3duIGltbWVkaWF0ZWx5IChgZGVsYXlJbk1pbGxpc2Vjb25kczogMGApOiByZXNvbHZpbmcgdGhlIHJlbGVhc2UsIGRvd25sb2FkaW5nIGFuZCBleHRyYWN0aW5nIGNhblxuICAvLyBFYWNoIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWUgcHJvZ3Jlc3MgdGhlIG1vbWVudCB0aGUgY29tbWFuZCBpcyBpbnZva2VkLlxuICAvL1xuICAvLyBLZXB0IG91dCBvZiB0aGUgc2hhcmVkIHNsb3QgKGBTZXBhcmF0ZWApLCBiZWNhdXNlIHRoaXMgdmVyeSBmdW5jdGlvbiByYWlzZXMgb3JkaW5hcnkgbm90aWNlcyB3aGlsZVxuICAvLyBUaGUgb3BlcmF0aW9uIGlzIHN0aWxsIHJ1bm5pbmcgXHUyMDE0IFwibm90IGluIHRoZSByZWdpc3RyeVwiLCBcIm5vIGRlbW8gdmF1bHQgZm9yIHRoaXMgdmVyc2lvblwiIFx1MjAxNCBhbmQgYVxuICAvLyBTbG90IG5vdGljZSB3b3VsZCBoaWRlIHRoZSBwcm9ncmVzcyBub3RpY2UgcmF0aGVyIHRoYW4gYXBwZWFyIGJlc2lkZSBpdC5cbiAgdXNpbmcgcHJvZ3Jlc3NOb3RpY2UgPSBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZUFmdGVyRGVsYXkoe1xuICAgIGNvbnRlbnQ6IGBPcGVuaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX1cdTIwMjZgLFxuICAgIGRlbGF5SW5NaWxsaXNlY29uZHM6IDAsXG4gICAgbW9kZTogUGx1Z2luTm90aWNlTW9kZS5TZXBhcmF0ZVxuICB9KTtcblxuICBjb25zdCByZXBvID0gYXdhaXQgZ2V0Q29tbXVuaXR5UGx1Z2luUmVwbyhwbHVnaW5JZCk7XG4gIGlmICghcmVwbykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBDb3VsZCBub3QgZmluZCBwbHVnaW4gJHtwbHVnaW5OYW1lfSBpbiB0aGUgY29tbXVuaXR5IHBsdWdpbnMgcmVnaXN0cnkuYCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgY3VycmVudFZlcnNpb24gPSBwbHVnaW5WZXJzaW9uO1xuICBjb25zdCBsYXRlc3RWZXJzaW9uID0gYXdhaXQgZ2V0TGF0ZXN0UmVsZWFzZVZlcnNpb24ocmVwbyk7XG5cbiAgbGV0IHZlcnNpb25Ub09wZW46IHN0cmluZztcbiAgaWYgKGNvbXBhcmVWZXJzaW9ucyhjdXJyZW50VmVyc2lvbiwgbGF0ZXN0VmVyc2lvbikgPj0gMCkge1xuICAgIHZlcnNpb25Ub09wZW4gPSBjdXJyZW50VmVyc2lvbjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjaG9zZW5WZXJzaW9uID0gYXdhaXQgc2VsZWN0T3B0aW9uPG51bGwgfCBzdHJpbmc+KHtcbiAgICAgIGFwcCxcbiAgICAgIG1lc3NhZ2U6IGBDdXJyZW50IHZlcnNpb24gb2YgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7Y3VycmVudFZlcnNpb259IGlzIG5vdCB0aGUgbGF0ZXN0ICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgb3B0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgaXNDdGE6IHRydWUsXG4gICAgICAgICAgdGV4dDogYE9wZW4gZGVtbyB2YXVsdCBmb3IgbGF0ZXN0IHZlcnNpb24gKHYke2xhdGVzdFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGxhdGVzdFZlcnNpb25cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGN1cnJlbnQgdmVyc2lvbiAodiR7Y3VycmVudFZlcnNpb259KWAsXG4gICAgICAgICAgdmFsdWU6IGN1cnJlbnRWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiAnQ2FuY2VsJyxcbiAgICAgICAgICB2YWx1ZTogbnVsbFxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgdGl0bGU6IHBsdWdpbk5hbWVcbiAgICB9KTtcbiAgICBpZiAoY2hvc2VuVmVyc2lvbiA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2ZXJzaW9uVG9PcGVuID0gY2hvc2VuVmVyc2lvbjtcbiAgfVxuXG4gIGNvbnN0IGFyY2hpdmUgPSBhd2FpdCByZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZSh7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uOiB2ZXJzaW9uVG9PcGVuXG4gIH0pO1xuICBpZiAoIWFyY2hpdmUpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBwcm9ncmVzc05vdGljZS5zZXRDb250ZW50KGBFeHRyYWN0aW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvblRvT3Blbn1cdTIwMjZgKTtcbiAgY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk7XG4gIGNvbnN0IHZhdWx0RGlyZWN0b3J5ID0gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIoe1xuICAgIGFyY2hpdmUsXG4gICAgcGx1Z2luSWQsXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcblxuICB3aW5kb3cuZWxlY3Ryb24uaXBjUmVuZGVyZXIuc2VuZFN5bmMoJ3ZhdWx0LW9wZW4nLCB2YXVsdERpcmVjdG9yeSwgZmFsc2UpO1xufVxuXG4vKipcbiAqIFJlbW92ZXMgZXh0cmFjdGVkIGRlbW8tdmF1bHQgZm9sZGVycyBsZWZ0IG92ZXIgZnJvbSBlYXJsaWVyIHNlc3Npb25zIChiZXN0LWVmZm9ydCkuXG4gKlxuICogRXZlcnkgb3BlbiBleHRyYWN0cyBhIGZyZXNoIGNvcHkgaW50byBpdHMgb3duIGZvbGRlciBhbmQgbmV2ZXIgZGVsZXRlcyBpdCBhZnRlcndhcmRzICh0aGUgdmF1bHQgc3RheXNcbiAqIG9wZW4gaW4gaXRzIHdpbmRvdyksIHNvIHRoZXNlIGFjY3VtdWxhdGUuIFRoaXMgZHJvcHMgZm9sZGVycyBvbGRlciB0aGFuXG4gKiB7QGxpbmsgT1JQSEFORURfRVhUUkFDVEVEX1ZBVUxUX01BWF9BR0VfSU5fTUlMTElTRUNPTkRTfS4gQSBmb2xkZXIgd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiBpbiBhbm90aGVyXG4gKiB3aW5kb3cgaXMgbG9ja2VkIG9uIFdpbmRvd3MgYW5kIGNhbm5vdCBiZSByZW1vdmVkIFx1MjAxNCB0aGUgcmVtb3ZhbCBpcyB3cmFwcGVkIHNvIHN1Y2ggYSBmb2xkZXIgaXMgc2ltcGx5XG4gKiBza2lwcGVkIGFuZCByZXRyaWVkIG9uIGEgbGF0ZXIgb3Blbi5cbiAqL1xuZnVuY3Rpb24gY2xlYW51cE9ycGhhbmVkRXh0cmFjdGVkVmF1bHRzKCk6IHZvaWQge1xuICBjb25zdCBleHRyYWN0ZWRWYXVsdHNSb290ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUik7XG4gIGlmICghZXhpc3RzU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGZvciAoY29uc3QgZW50cnlOYW1lIG9mIHJlYWRkaXJTeW5jKGV4dHJhY3RlZFZhdWx0c1Jvb3QpKSB7XG4gICAgY29uc3QgZW50cnlQYXRoID0gam9pbihleHRyYWN0ZWRWYXVsdHNSb290LCBlbnRyeU5hbWUpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGF0cyA9IHN0YXRTeW5jKGVudHJ5UGF0aCk7XG4gICAgICBpZiAobm93IC0gc3RhdHMubXRpbWVNcyA8IE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EUykge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHJtU3luYyhlbnRyeVBhdGgsIHsgZm9yY2U6IHRydWUsIHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEJlc3QtZWZmb3J0IGNsZWFudXA6IGFuIG9ycGhhbiB3aG9zZSB2YXVsdCBpcyBzdGlsbCBvcGVuIChsb2NrZWQgb24gV2luZG93cykgY2Fubm90IGJlIHJlbW92ZWQ7IHNraXAgaXQgYW5kIHJldHJ5IG9uIGEgbGF0ZXIgb3Blbi5cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBhIGRvd25sb2FkZWQgZGVtby12YXVsdCBhcmNoaXZlIHRvIGRpc2suXG4gKlxuICogRXh0cmFjdGlvbiBpcyB3cml0dGVuIHdpdGggRWxlY3Ryb24ncyBgb3JpZ2luYWwtZnNgIFx1MjAxNCB0aGUgcmVhbCBgZnNgIHdpdGggYXNhciBpbnRlcmNlcHRpb24gZGlzYWJsZWQgXHUyMDE0XG4gKiByYXRoZXIgdGhhbiB3aXRoIGBub2RlOmZzYC4gQSBkZW1vIHZhdWx0IG1heSBzaGlwIGEgZmlsZSB0aGF0IG1lcmVseSBMT09LUyBsaWtlIGFuIEVsZWN0cm9uIGFyY2hpdmVcbiAqIChlLmcuIGBfYXNzZXRzL0NvZGVTY3JpcHRUb29sa2l0L21vZHVsZS5hc2FyYCBkZW1vbnN0cmF0aW5nIHRoZSBBU0FSIHJlcXVpcmUgZmVhdHVyZSksIGFuZCBFbGVjdHJvbidzXG4gKiBhc2FyIGxheWVyIGludGVyY2VwdHMgYGZzYCBvcGVyYXRpb25zIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCwgdHJlYXRpbmcgaXQgYXMgYW4gYXJjaGl2ZSByb290XG4gKiByYXRoZXIgdGhhbiBhIHBsYWluIGZpbGUuIFRoYXQgYWxyZWFkeSBjb3N0IG9uZSBwcm9kdWN0aW9uIGJ1ZyB3aGVuIHRoZSBleHRyYWN0b3IgYGNobW9kYC1lZCBzdWNoIGFcbiAqIGZpbGUgYW5kIGdvdCBgRU5PRU5UYDsgbm90aGluZyBgY2htb2RgcyBhbnkgbW9yZSwgYnV0IHdyaXRpbmcgdGhvc2UgYnl0ZXMgdGhyb3VnaCB0aGUgY29weSB0aGF0IGhhcyBub1xuICogYXNhciBsYXllciBjb3N0cyBub3RoaW5nIGFuZCBrZWVwcyB0aGUgd2hvbGUgY2xhc3Mgb2YgZmFpbHVyZSBvZmYgdGhpcyBwYXRoLiBgb3JpZ2luYWwtZnNgIGlzIGEgZGVza3RvcC1vbmx5XG4gKiBFbGVjdHJvbiBtb2R1bGUgd2l0aCBubyBidW5kbGVkIHR5cGVzLCBzbyBpdCBpcyBsb2FkZWQgdmlhIGB3aW5kb3cucmVxdWlyZWAgYW5kIHR5cGVkIGFzIGBub2RlOmZzYCdzXG4gKiBzaGFwZS5cbiAqXG4gKiBAcGFyYW0gYXJjaGl2ZSAtIFRoZSByYXcgemlwIGFyY2hpdmUgYnl0ZXMuXG4gKiBAcGFyYW0gdGFyZ2V0RGlyZWN0b3J5IC0gVGhlIGRpcmVjdG9yeSB0byBleHRyYWN0IGludG8uXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REZW1vVmF1bHRBcmNoaXZlKGFyY2hpdmU6IEJ1ZmZlciwgdGFyZ2V0RGlyZWN0b3J5OiBzdHJpbmcpOiB2b2lkIHtcbiAgY29uc3Qgb3JpZ2luYWxGcyA9IHdpbmRvdy5yZXF1aXJlKCdub2RlOm9yaWdpbmFsLWZzJykgYXMgdHlwZW9mIGltcG9ydCgnbm9kZTpmcycpO1xuICBleHRyYWN0WmlwQXJjaGl2ZSh7XG4gICAgYXJjaGl2ZSxcbiAgICBmaWxlU3lzdGVtOiBvcmlnaW5hbEZzLFxuICAgIHRhcmdldERpcmVjdG9yeVxuICB9KTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgYXJjaGl2ZSBpbnRvIGEgZnJlc2gsIHVuaXF1ZWx5LW5hbWVkIHRlbXBvcmFyeSBmb2xkZXIgYW5kIHJldHVybnMgdGhlIHZhdWx0IHBhdGguXG4gKlxuICogQSB1bmlxdWUgcGFyZW50IGZvbGRlciAoYG1rZHRlbXBTeW5jYCkgZ3VhcmFudGVlcyBhIGJyYW5kLW5ldyBleHRyYWN0aW9uIGV2ZXJ5IHRpbWUgXHUyMDE0IHRoZSBkZW1vIHZhdWx0XG4gKiBpcyBuZXZlciByZXVzZWQgYWNyb3NzIG9wZW5zLCBzbyBhIHByZXZpb3VzIHNlc3Npb24ncyBlZGl0cyBuZXZlciBsZWFrIGluLiBUaGUgYXJjaGl2ZSBpcyBleHRyYWN0ZWRcbiAqIGludG8gdGhhdCBwYXJlbnQgYW5kIHRoZSB2YXVsdCBpcyB0aGUgc2luZ2xlIGA8cGx1Z2luLWlkPi1kZW1vLXZhdWx0LTx2ZXJzaW9uPmAgZm9sZGVyIGl0IGNvbnRhaW5zLCBzb1xuICogT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlciBzaG93cyBhIGZyaWVuZGx5IG5hbWUgKGl0cyBiYXNlbmFtZSkgcmF0aGVyIHRoYW4gdGhlIHJhbmRvbSB0ZW1wIGlkLlxuICpcbiAqIFRoYXQgZm9sZGVyIGlzIG5vdCBzZWFyY2hlZCBmb3I6IHtAbGluayBnZXREZW1vVmF1bHRGb2xkZXJOYW1lfSBuYW1lcyBpdCBvbiBib3RoIHNpZGVzLCBzbyB0aGUgcGF0aCBpc1xuICoga25vd24gYmVmb3JlIGEgYnl0ZSBpcyB3cml0dGVuLiBXaGljaCBrZWVwcyB0aGUgZXh0cmFjdG9yIGZyZWUgb2YgYW55IHJlYWQgXHUyMDE0IGRlbGliZXJhdGUsIGJlY2F1c2VcbiAqIEVsZWN0cm9uJ3MgYXNhciBsYXllciBpbnRlcmNlcHRzIGBmc2AgcmVhZHMgb24gYW55IHBhdGggY29udGFpbmluZyBgLmFzYXJgLCBhbmQgYSBkZW1vIHZhdWx0IG1heVxuICogbGVnaXRpbWF0ZWx5IHNoaXAgc3VjaCBhIGZpbGUuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXN9LlxuICogQHJldHVybnMgVGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGZyZXNobHkgZXh0cmFjdGVkIHZhdWx0IGZvbGRlci5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXIocGFyYW1zOiBFeHRyYWN0RGVtb1ZhdWx0VG9GcmVzaEZvbGRlclBhcmFtcyk6IHN0cmluZyB7XG4gIGNvbnN0IHsgYXJjaGl2ZSwgcGx1Z2luSWQsIHZlcnNpb24gfSA9IHBhcmFtcztcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBta2RpclN5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGNvbnN0IHVuaXF1ZVBhcmVudERpcmVjdG9yeSA9IG1rZHRlbXBTeW5jKGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0tYCkpO1xuICBleHRyYWN0RGVtb1ZhdWx0QXJjaGl2ZShhcmNoaXZlLCB1bmlxdWVQYXJlbnREaXJlY3RvcnkpO1xuICByZXR1cm4gam9pbihcbiAgICB1bmlxdWVQYXJlbnREaXJlY3RvcnksXG4gICAgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZSh7XG4gICAgICBwbHVnaW5JZCxcbiAgICAgIHZlcnNpb25cbiAgICB9KVxuICApO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBkZW1vLXZhdWx0IGFyY2hpdmUgYnl0ZXMgZm9yIGEgdmVyc2lvbiwgZG93bmxvYWRpbmcgYW5kIGNhY2hpbmcgdGhlbSBvbiBmaXJzdCB1c2UuXG4gKlxuICogT25seSB0aGUgYXJjaGl2ZSBpcyBjYWNoZWQgKGtleWVkIGJ5IHBsdWdpbiBpZCArIHZlcnNpb24pOyB0aGUgZXh0cmFjdGVkIHZhdWx0IGlzIG5vdC4gQSBjYWNoZSBoaXQgaXNcbiAqIHJldHVybmVkIHdpdGhvdXQgYW55IG5ldHdvcmsgcmVxdWVzdDsgYSBtaXNzIGRvd25sb2FkcyB0aGUgcmVsZWFzZSBhc3NldCwgd3JpdGVzIGl0IHRvIHRoZSBhcmNoaXZlXG4gKiBjYWNoZSwgYW5kIHJldHVybnMgdGhlIGZyZXNobHkgZG93bmxvYWRlZCBieXRlcy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtc30uXG4gKiBAcmV0dXJucyBBIHtAbGluayBQcm9taXNlfSByZXNvbHZpbmcgdG8gdGhlIGFyY2hpdmUgYnl0ZXMsIG9yIGBudWxsYCB3aGVuIG5vIGFyY2hpdmUgaXMgYXZhaWxhYmxlIGZvclxuICogdGhlIHZlcnNpb24gKGEgbm90aWNlIGhhcyBiZWVuIHNob3duKS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUocGFyYW1zOiBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyk6IFByb21pc2U8QnVmZmVyIHwgbnVsbD4ge1xuICBjb25zdCB7XG4gICAgcGx1Z2luSWQsXG4gICAgcGx1Z2luTmFtZSxcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQsXG4gICAgcHJvZ3Jlc3NOb3RpY2UsXG4gICAgcmVwbyxcbiAgICB2ZXJzaW9uXG4gIH0gPSBwYXJhbXM7XG5cbiAgY29uc3QgYXJjaGl2ZXNEaXJlY3RvcnkgPSBqb2luKHRtcGRpcigpLCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIsIEFSQ0hJVkVTX1NVQkZPTERFUik7XG4gIGNvbnN0IGFyY2hpdmVQYXRoID0gam9pbihhcmNoaXZlc0RpcmVjdG9yeSwgYCR7cGx1Z2luSWR9LSR7dmVyc2lvbn0uemlwYCk7XG4gIGlmIChleGlzdHNTeW5jKGFyY2hpdmVQYXRoKSkge1xuICAgIHJldHVybiByZWFkRmlsZVN5bmMoYXJjaGl2ZVBhdGgpO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRG93bmxvYWRpbmcgZGVtbyB2YXVsdCBmb3IgJHtwbHVnaW5OYW1lfSB2JHt2ZXJzaW9ufVx1MjAyNmApO1xuICBjb25zdCBhc3NldFVybCA9IGBodHRwczovL2dpdGh1Yi5jb20vJHtyZXBvfS9yZWxlYXNlcy9kb3dubG9hZC8ke3ZlcnNpb259LyR7Z2V0RGVtb1ZhdWx0QXJjaGl2ZUZpbGVOYW1lKHBsdWdpbklkKX1gO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RVcmwoe1xuICAgIHRocm93OiBmYWxzZSxcbiAgICB1cmw6IGFzc2V0VXJsXG4gIH0pO1xuICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9PSBIVFRQX1NUQVRVU19PSykge1xuICAgIHBsdWdpbk5vdGljZUNvbXBvbmVudC5zaG93Tm90aWNlKGBObyBkZW1vIHZhdWx0IGlzIGF2YWlsYWJsZSBmb3IgcGx1Z2luICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvbn0uYCk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gQnVmZmVyLmZyb20ocmVzcG9uc2UuYXJyYXlCdWZmZXIpO1xuICBta2RpclN5bmMoYXJjaGl2ZXNEaXJlY3RvcnksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB3cml0ZUZpbGVTeW5jKGFyY2hpdmVQYXRoLCBhcmNoaXZlKTtcbiAgcmV0dXJuIGFyY2hpdmU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBbUNBLFNBQVMsdUJBQXVCO0FBRWhDLFNBQVMsVUFBQUEsZUFBYztBQUN2QjtBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsY0FBYztBQUV2QixTQUFTLGtCQUFrQjtBQU8zQixTQUFTLHlCQUF5QjtBQUNsQyxTQUFTLFlBQVk7QUFDckI7QUFBQSxFQUNFO0FBQUEsRUFDQTtBQUFBLE9BQ0s7QUFDUCxTQUFTLHdCQUF3QjtBQUNqQztBQUFBLEVBQ0U7QUFBQSxFQUNBO0FBQUEsT0FDSztBQUNQLFNBQVMsb0JBQW9CO0FBaUQ3QixNQUFNLDJCQUEyQjtBQUNqQyxNQUFNLHFCQUFxQjtBQUMzQixNQUFNLDZCQUE2QjtBQUNuQyxNQUFNLGlCQUFpQjtBQUV2QixNQUFNLG1EQUFtRDtBQWV6RCxlQUFzQixjQUFjLFFBQTRDO0FBZTlFO0FBQUE7QUFkQSxVQUFNO0FBQUEsTUFDSjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGLElBQUk7QUFRSixV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
268
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL2Rlc2t0b3AtZGVtby12YXVsdC1vcGVuZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBEb3dubG9hZHMgYW5kIG9wZW5zIGEgcGx1Z2luJ3Mgc2hpcHBlZCBkZW1vIHZhdWx0IGluIGEgbmV3IE9ic2lkaWFuIHdpbmRvdyAoZGVza3RvcCBvbmx5KS5cbiAqXG4gKiBBIHBsdWdpbiBjYW4gYXR0YWNoIGEgYDxwbHVnaW4taWQ+LWRlbW8tdmF1bHQuemlwYCBhcmNoaXZlIHRvIGVhY2ggR2l0SHViIHJlbGVhc2UgKHNlZVxuICogYGFyY2hpdmVQbHVnaW5EZW1vVmF1bHRgIGluIGBzY3JpcHQtdXRpbHMvZGVtby12YXVsdC50c2A7IGV2ZXJ5IG5hbWUgc2hhcmVkIHdpdGggaXQgY29tZXMgZnJvbVxuICogYGRlbW8tdmF1bHQtbmFtaW5nLnRzYCkuIFRoaXMgcmVzb2x2ZXMgdGhlIHBsdWdpbidzIHJlcG9zaXRvcnkgZnJvbSBPYnNpZGlhbidzIGNvbW11bml0eSByZWdpc3RyeSxcbiAqIGRvd25sb2FkcyB0aGUgYXJjaGl2ZSBmb3IgdGhlIGNob3NlbiB2ZXJzaW9uLCBhbmQgb3BlbnMgaXQgYXMgYSB2YXVsdCBpbiBhIG5ldyB3aW5kb3cuIFdoZW4gdGhlXG4gKiBpbnN0YWxsZWQgcGx1Z2luIHZlcnNpb24gaXMgYmVoaW5kIHRoZSBsYXRlc3QgcmVsZWFzZSwgdGhlIHVzZXIgaXMgb2ZmZXJlZCBhIGNob2ljZSBiZXR3ZWVuIHRoZSB0d29cbiAqIHZlcnNpb25zLlxuICpcbiAqIEEgcHJvZ3Jlc3Mgbm90aWNlIGlzIHNob3duIGltbWVkaWF0ZWx5IChkb3dubG9hZCArIGV4dHJhY3Rpb24gY2FuIHRha2UgYSB3aGlsZSwgc28gdGhlIHVzZXIgbXVzdCBzZWVcbiAqIHNvbWV0aGluZyBpcyBoYXBwZW5pbmcgcmlnaHQgYXdheSkuIE9ubHkgdGhlIGRvd25sb2FkZWQgQVJDSElWRSBpcyBjYWNoZWQgKHVuZGVyIHRoZSBPUyB0ZW1wXG4gKiBkaXJlY3RvcnkpOyBldmVyeSBpbnZvY2F0aW9uIGV4dHJhY3RzIGEgRlJFU0ggY29weSBpbnRvIGl0cyBvd24gdGVtcG9yYXJ5IGZvbGRlciBhbmQgb3BlbnMgdGhhdCwgc28gYVxuICogcHJldmlvdXMgc2Vzc2lvbidzIGVkaXRzIG5ldmVyIGxlYWsgaW50byBhIG5ldyBvbmUuIFRoZSB2YXVsdCBmb2xkZXIgaXMgdGhlIGFyY2hpdmUncyBvd24gc2luZ2xlXG4gKiB0b3AtbGV2ZWwgZm9sZGVyLCBgPHBsdWdpbi1pZD4tZGVtby12YXVsdC08dmVyc2lvbj5gLCB3aGljaCByZWFkcyBuaWNlbHkgaW4gT2JzaWRpYW4ncyB2YXVsdCBzd2l0Y2hlclxuICogYW5kIGlzIHRoZSBzYW1lIG5hbWUgYSBoYW5kLXVuemlwcGVkIGFyY2hpdmUgcHJvZHVjZXMuIE9ycGhhbmVkIGV4dHJhY3RlZCBmb2xkZXJzIGxlZnQgb3ZlciBmcm9tXG4gKiBlYXJsaWVyIHNlc3Npb25zIGFyZSBjbGVhbmVkIHVwIChiZXN0LWVmZm9ydCkgb24gZWFjaCBvcGVuLlxuICpcbiAqICoqTm90aGluZyBoZXJlIG1heSB0b3VjaCBhIHBsYXRmb3JtLW9ubHkgQVBJIHdoaWxlIHRoZSBtb2R1bGUgSU5JVElBTElaRVMuKiogVGhlIGBub2RlOmAgaW1wb3J0cyBiZWxvd1xuICogYXJlIHNhZmUgdG8gbWVyZWx5IGV2YWx1YXRlIG9uIG1vYmlsZSBcdTIwMTQgYHJlcXVpcmVgIGhhbmRzIGJhY2sgYHVuZGVmaW5lZGAgdGhlcmUgYW5kIG5vdGhpbmcgcmVhZHMgaXQgYXRcbiAqIGxvYWQgdGltZSBcdTIwMTQgYW5kIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBiYXJyZWxzIHJlLWV4cG9ydCB0aGlzIG1vZHVsZSwgdGhhdCBpcyBhIGxvYWQtYmVhcmluZyBwcm9wZXJ0eSBvZlxuICogdGhlIHdob2xlIGxpYnJhcnkgcmF0aGVyIHRoYW4gYSBkZXRhaWwgb2YgdGhpcyBmaWxlLiBJdCB3YXMgbGVhcm5lZCB0aGUgaGFyZCB3YXk6IHRoaXMgbW9kdWxlIG9uY2VcbiAqIGltcG9ydGVkIGBhZG0temlwYCwgd2hvc2UgemlwLWNyeXB0byBtZXRob2Qgb3BlbnMgd2l0aCBhIHRvcC1sZXZlbFxuICogYGNvbnN0IHsgcmFuZG9tRmlsbFN5bmMgfSA9IHJlcXVpcmUoJ2NyeXB0bycpYCwgYW5kIGEgc3RhdGljIGBpbXBvcnQgQWRtWmlwIGZyb20gJ2FkbS16aXAnYCB0aGVyZWZvcmVcbiAqIGtpbGxlZCB0aGUgbGlicmFyeSdzIGxvYWQgb24gQW5kcm9pZCAoc2VlIHRoZSBtb2JpbGUtbG9hZCBjaGVjayBpblxuICogYHNjcmlwdHMvaGVscGVycy9hc3NlcnQtbW9iaWxlLWxvYWRhYmxlLWJ1bmRsZS50c2AsIHdoaWNoIGZhaWxzIHRoZSBidWlsZCBvbiBleGFjdGx5IHRoYXQpLiBFeHRyYWN0aW9uXG4gKiBub3cgZ29lcyB0aHJvdWdoIGBkZXNrdG9wLXppcC1leHRyYWN0b3IudHNgLCB3aGljaCBuZWVkcyBubyBkZXBlbmRlbmN5IGF0IGFsbCBcdTIwMTQgYnV0IGFueSBmdXR1cmVcbiAqIGRlcGVuZGVuY3kgdGhhdCBpbml0aWFsaXplcyBhZ2FpbnN0IGEgcGxhdGZvcm0tb25seSBBUEkgc3RpbGwgaGFzIHRvIGJlIGRlZmVycmVkIGJlaGluZCBhIGNhbGwtdGltZVxuICogYGltcG9ydCgpYC5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgY29tcGFyZVZlcnNpb25zIH0gZnJvbSAnY29tcGFyZS12ZXJzaW9ucyc7XG5pbXBvcnQgeyBCdWZmZXIgfSBmcm9tICdub2RlOmJ1ZmZlcic7XG5pbXBvcnQge1xuICBleGlzdHNTeW5jLFxuICBta2RpclN5bmMsXG4gIG1rZHRlbXBTeW5jLFxuICByZWFkZGlyU3luYyxcbiAgcmVhZEZpbGVTeW5jLFxuICBybVN5bmMsXG4gIHN0YXRTeW5jLFxuICB3cml0ZUZpbGVTeW5jXG59IGZyb20gJ25vZGU6ZnMnO1xuaW1wb3J0IHsgdG1wZGlyIH0gZnJvbSAnbm9kZTpvcyc7XG5pbXBvcnQgeyByZXF1ZXN0VXJsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7XG4gIFBsdWdpbk5vdGljZUNvbXBvbmVudCxcbiAgUGx1Z2luTm90aWNlQ29tcG9uZW50RGVsYXllZE5vdGljZVxufSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgeyBleHRyYWN0WmlwQXJjaGl2ZSB9IGZyb20gJy4uL2Rlc2t0b3AtemlwLWV4dHJhY3Rvci50cyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAnLi4vcGF0aC50cyc7XG5pbXBvcnQge1xuICBnZXRDb21tdW5pdHlQbHVnaW5SZXBvLFxuICBnZXRMYXRlc3RSZWxlYXNlVmVyc2lvblxufSBmcm9tICcuL2NvbW11bml0eS1wbHVnaW5zLnRzJztcbmltcG9ydCB7IFBsdWdpbk5vdGljZU1vZGUgfSBmcm9tICcuL2NvbXBvbmVudHMvcGx1Z2luLW5vdGljZS1jb21wb25lbnQudHMnO1xuaW1wb3J0IHtcbiAgZ2V0RGVtb1ZhdWx0QXJjaGl2ZUZpbGVOYW1lLFxuICBnZXREZW1vVmF1bHRGb2xkZXJOYW1lXG59IGZyb20gJy4vZGVtby12YXVsdC1uYW1pbmcudHMnO1xuaW1wb3J0IHsgc2VsZWN0T3B0aW9uIH0gZnJvbSAnLi9tb2RhbHMvc2VsZWN0LW9wdGlvbi50cyc7XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3Ige0BsaW5rIG9wZW5EZW1vVmF1bHR9LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZW5EZW1vVmF1bHRQYXJhbXMge1xuICAvKipcbiAgICogVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGFwcDogQXBwO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGlkLCB1c2VkIHRvIGxvY2F0ZSB0aGUgR2l0SHViIHJlcG9zaXRvcnksIHRvIG5hbWUgdGhlIGFyY2hpdmUgYXNzZXQsIGFuZCB0byBuYW1lIHRoZVxuICAgKiBjYWNoZWQgYXJjaGl2ZSBhbmQgdGhlIGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIuXG4gICAqL1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGx1Z2luIGRpc3BsYXkgbmFtZSwgdXNlZCB0byBsYWJlbCB0aGUgbm90aWNlcyBhbmQgdGhlIHZlcnNpb24tY2hvaWNlIGRpYWxvZy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5vdGljZSBjb21wb25lbnQgdXNlZCB0byByZXBvcnQgcHJvZ3Jlc3MgYW5kIHByb2JsZW1zIChwbHVnaW4gbm90IGluIHRoZSByZWdpc3RyeSwgbWlzc2luZ1xuICAgKiBhcmNoaXZlKS5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpbk5vdGljZUNvbXBvbmVudDogUGx1Z2luTm90aWNlQ29tcG9uZW50O1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudGx5IGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiwgb2ZmZXJlZCBhcyBvbmUgb2YgdGhlIHZlcnNpb24gY2hvaWNlcy5cbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblZlcnNpb246IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zIHtcbiAgcmVhZG9ubHkgYXJjaGl2ZTogQnVmZmVyO1xuICByZWFkb25seSBwbHVnaW5JZDogc3RyaW5nO1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBSZXNvbHZlRGVtb1ZhdWx0QXJjaGl2ZVBhcmFtcyB7XG4gIHJlYWRvbmx5IHBsdWdpbklkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBsdWdpbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGx1Z2luTm90aWNlQ29tcG9uZW50OiBQbHVnaW5Ob3RpY2VDb21wb25lbnQ7XG4gIHJlYWRvbmx5IHByb2dyZXNzTm90aWNlOiBQbHVnaW5Ob3RpY2VDb21wb25lbnREZWxheWVkTm90aWNlO1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcbn1cblxuY29uc3QgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSID0gJ29ic2lkaWFuLWRlbW8tdmF1bHRzJztcbmNvbnN0IEFSQ0hJVkVTX1NVQkZPTERFUiA9ICdhcmNoaXZlcyc7XG5jb25zdCBFWFRSQUNURURfVkFVTFRTX1NVQkZPTERFUiA9ICdleHRyYWN0ZWQnO1xuY29uc3QgSFRUUF9TVEFUVVNfT0sgPSAyMDA7XG4vLyBPbmUgZGF5IGluIG1pbGxpc2Vjb25kcyAoMjQgKiA2MCAqIDYwICogMTAwMCkuXG5jb25zdCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMgPSA4Nl80MDBfMDAwO1xuXG4vKipcbiAqIERvd25sb2FkcyBhbmQgb3BlbnMgdGhlIHBsdWdpbidzIGRlbW8gdmF1bHQgaW4gYSBuZXcgT2JzaWRpYW4gd2luZG93LiBEZXNrdG9wIG9ubHkuXG4gKlxuICogSWYgdGhlIGluc3RhbGxlZCBwbHVnaW4gdmVyc2lvbiBpcyB0aGUgbGF0ZXN0IChvciBuZXdlciksIGl0cyBkZW1vIHZhdWx0IG9wZW5zIGRpcmVjdGx5OyBvdGhlcndpc2VcbiAqIHRoZSB1c2VyIGNob29zZXMgYmV0d2VlbiB0aGUgbGF0ZXN0IGFuZCB0aGUgY3VycmVudGx5LWluc3RhbGxlZCB2ZXJzaW9uLiBBIHByb2dyZXNzIG5vdGljZSBpcyBzaG93blxuICogaW1tZWRpYXRlbHkuIFRoZSBjaG9zZW4gdmVyc2lvbidzIGFyY2hpdmUgaXMgZG93bmxvYWRlZCBvbmNlICh0aGVuIHJldXNlZCBmcm9tIHRoZSBhcmNoaXZlIGNhY2hlKSxcbiAqIGJ1dCBhIGZyZXNoIGNvcHkgaXMgZXh0cmFjdGVkIGludG8gaXRzIG93biB0ZW1wb3JhcnkgZm9sZGVyIG9uIGV2ZXJ5IG9wZW4gXHUyMDE0IHRoZSB2YXVsdCBpcyBuZXZlciByZXVzZWRcbiAqIGFjcm9zcyBzZXNzaW9ucy5cbiAqXG4gKiBAcGFyYW0gcGFyYW1zIC0gVGhlIHtAbGluayBPcGVuRGVtb1ZhdWx0UGFyYW1zfS5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgb25jZSB0aGUgdmF1bHQgaGFzIGJlZW4gb3BlbmVkLCBvciBvbmNlIHRoZSBvcGVyYXRpb24gaGFzXG4gKiBiZWVuIHJlcG9ydGVkIGFzIG5vdCBwb3NzaWJsZSAobm90aWNlIHNob3duKSBvciBjYW5jZWxsZWQgYnkgdGhlIHVzZXIuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBvcGVuRGVtb1ZhdWx0KHBhcmFtczogT3BlbkRlbW9WYXVsdFBhcmFtcyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7XG4gICAgYXBwLFxuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHBsdWdpblZlcnNpb25cbiAgfSA9IHBhcmFtcztcblxuICAvLyBTaG93biBpbW1lZGlhdGVseSAoYGRlbGF5SW5NaWxsaXNlY29uZHM6IDBgKTogcmVzb2x2aW5nIHRoZSByZWxlYXNlLCBkb3dubG9hZGluZyBhbmQgZXh0cmFjdGluZyBjYW5cbiAgLy8gRWFjaCB0YWtlIGEgd2hpbGUsIHNvIHRoZSB1c2VyIG11c3Qgc2VlIHByb2dyZXNzIHRoZSBtb21lbnQgdGhlIGNvbW1hbmQgaXMgaW52b2tlZC5cbiAgLy9cbiAgLy8gS2VwdCBvdXQgb2YgdGhlIHNoYXJlZCBzbG90IChgU2VwYXJhdGVgKSwgYmVjYXVzZSB0aGlzIHZlcnkgZnVuY3Rpb24gcmFpc2VzIG9yZGluYXJ5IG5vdGljZXMgd2hpbGVcbiAgLy8gVGhlIG9wZXJhdGlvbiBpcyBzdGlsbCBydW5uaW5nIFx1MjAxNCBcIm5vdCBpbiB0aGUgcmVnaXN0cnlcIiwgXCJubyBkZW1vIHZhdWx0IGZvciB0aGlzIHZlcnNpb25cIiBcdTIwMTQgYW5kIGFcbiAgLy8gU2xvdCBub3RpY2Ugd291bGQgaGlkZSB0aGUgcHJvZ3Jlc3Mgbm90aWNlIHJhdGhlciB0aGFuIGFwcGVhciBiZXNpZGUgaXQuXG4gIHVzaW5nIHByb2dyZXNzTm90aWNlID0gcGx1Z2luTm90aWNlQ29tcG9uZW50LnNob3dOb3RpY2VBZnRlckRlbGF5KHtcbiAgICBjb250ZW50OiBgT3BlbmluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9XHUyMDI2YCxcbiAgICBkZWxheUluTWlsbGlzZWNvbmRzOiAwLFxuICAgIG1vZGU6IFBsdWdpbk5vdGljZU1vZGUuU2VwYXJhdGVcbiAgfSk7XG5cbiAgY29uc3QgcmVwbyA9IGF3YWl0IGdldENvbW11bml0eVBsdWdpblJlcG8ocGx1Z2luSWQpO1xuICBpZiAoIXJlcG8pIHtcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShgQ291bGQgbm90IGZpbmQgcGx1Z2luICR7cGx1Z2luTmFtZX0gaW4gdGhlIGNvbW11bml0eSBwbHVnaW5zIHJlZ2lzdHJ5LmApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRWZXJzaW9uID0gcGx1Z2luVmVyc2lvbjtcbiAgY29uc3QgbGF0ZXN0VmVyc2lvbiA9IGF3YWl0IGdldExhdGVzdFJlbGVhc2VWZXJzaW9uKHJlcG8pO1xuXG4gIGxldCB2ZXJzaW9uVG9PcGVuOiBzdHJpbmc7XG4gIGlmIChjb21wYXJlVmVyc2lvbnMoY3VycmVudFZlcnNpb24sIGxhdGVzdFZlcnNpb24pID49IDApIHtcbiAgICB2ZXJzaW9uVG9PcGVuID0gY3VycmVudFZlcnNpb247XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2hvc2VuVmVyc2lvbiA9IGF3YWl0IHNlbGVjdE9wdGlvbjxudWxsIHwgc3RyaW5nPih7XG4gICAgICBhcHAsXG4gICAgICBtZXNzYWdlOiBgQ3VycmVudCB2ZXJzaW9uIG9mIHBsdWdpbiAke3BsdWdpbk5hbWV9IHYke2N1cnJlbnRWZXJzaW9ufSBpcyBub3QgdGhlIGxhdGVzdCAodiR7bGF0ZXN0VmVyc2lvbn0pYCxcbiAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGlzQ3RhOiB0cnVlLFxuICAgICAgICAgIHRleHQ6IGBPcGVuIGRlbW8gdmF1bHQgZm9yIGxhdGVzdCB2ZXJzaW9uICh2JHtsYXRlc3RWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBsYXRlc3RWZXJzaW9uXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICB0ZXh0OiBgT3BlbiBkZW1vIHZhdWx0IGZvciBjdXJyZW50IHZlcnNpb24gKHYke2N1cnJlbnRWZXJzaW9ufSlgLFxuICAgICAgICAgIHZhbHVlOiBjdXJyZW50VmVyc2lvblxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgdGV4dDogJ0NhbmNlbCcsXG4gICAgICAgICAgdmFsdWU6IG51bGxcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIHRpdGxlOiBwbHVnaW5OYW1lXG4gICAgfSk7XG4gICAgaWYgKGNob3NlblZlcnNpb24gPT09IG51bGwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmVyc2lvblRvT3BlbiA9IGNob3NlblZlcnNpb247XG4gIH1cblxuICBjb25zdCBhcmNoaXZlID0gYXdhaXQgcmVzb2x2ZURlbW9WYXVsdEFyY2hpdmUoe1xuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHByb2dyZXNzTm90aWNlLFxuICAgIHJlcG8sXG4gICAgdmVyc2lvbjogdmVyc2lvblRvT3BlblxuICB9KTtcbiAgaWYgKCFhcmNoaXZlKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgcHJvZ3Jlc3NOb3RpY2Uuc2V0Q29udGVudChgRXh0cmFjdGluZyBkZW1vIHZhdWx0IGZvciAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb25Ub09wZW59XHUyMDI2YCk7XG4gIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpO1xuICBjb25zdCB2YXVsdERpcmVjdG9yeSA9IGV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyKHtcbiAgICBhcmNoaXZlLFxuICAgIHBsdWdpbklkLFxuICAgIHZlcnNpb246IHZlcnNpb25Ub09wZW5cbiAgfSk7XG5cbiAgd2luZG93LmVsZWN0cm9uLmlwY1JlbmRlcmVyLnNlbmRTeW5jKCd2YXVsdC1vcGVuJywgdmF1bHREaXJlY3RvcnksIGZhbHNlKTtcbn1cblxuLyoqXG4gKiBSZW1vdmVzIGV4dHJhY3RlZCBkZW1vLXZhdWx0IGZvbGRlcnMgbGVmdCBvdmVyIGZyb20gZWFybGllciBzZXNzaW9ucyAoYmVzdC1lZmZvcnQpLlxuICpcbiAqIEV2ZXJ5IG9wZW4gZXh0cmFjdHMgYSBmcmVzaCBjb3B5IGludG8gaXRzIG93biBmb2xkZXIgYW5kIG5ldmVyIGRlbGV0ZXMgaXQgYWZ0ZXJ3YXJkcyAodGhlIHZhdWx0IHN0YXlzXG4gKiBvcGVuIGluIGl0cyB3aW5kb3cpLCBzbyB0aGVzZSBhY2N1bXVsYXRlLiBUaGlzIGRyb3BzIGZvbGRlcnMgb2xkZXIgdGhhblxuICoge0BsaW5rIE9SUEhBTkVEX0VYVFJBQ1RFRF9WQVVMVF9NQVhfQUdFX0lOX01JTExJU0VDT05EU30uIEEgZm9sZGVyIHdob3NlIHZhdWx0IGlzIHN0aWxsIG9wZW4gaW4gYW5vdGhlclxuICogd2luZG93IGlzIGxvY2tlZCBvbiBXaW5kb3dzIGFuZCBjYW5ub3QgYmUgcmVtb3ZlZCBcdTIwMTQgdGhlIHJlbW92YWwgaXMgd3JhcHBlZCBzbyBzdWNoIGEgZm9sZGVyIGlzIHNpbXBseVxuICogc2tpcHBlZCBhbmQgcmV0cmllZCBvbiBhIGxhdGVyIG9wZW4uXG4gKi9cbmZ1bmN0aW9uIGNsZWFudXBPcnBoYW5lZEV4dHJhY3RlZFZhdWx0cygpOiB2b2lkIHtcbiAgY29uc3QgZXh0cmFjdGVkVmF1bHRzUm9vdCA9IGpvaW4odG1wZGlyKCksIERFTU9fVkFVTFRTX0NBQ0hFX0ZPTERFUiwgRVhUUkFDVEVEX1ZBVUxUU19TVUJGT0xERVIpO1xuICBpZiAoIWV4aXN0c1N5bmMoZXh0cmFjdGVkVmF1bHRzUm9vdCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICBmb3IgKGNvbnN0IGVudHJ5TmFtZSBvZiByZWFkZGlyU3luYyhleHRyYWN0ZWRWYXVsdHNSb290KSkge1xuICAgIGNvbnN0IGVudHJ5UGF0aCA9IGpvaW4oZXh0cmFjdGVkVmF1bHRzUm9vdCwgZW50cnlOYW1lKTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc3RhdHMgPSBzdGF0U3luYyhlbnRyeVBhdGgpO1xuICAgICAgaWYgKG5vdyAtIHN0YXRzLm10aW1lTXMgPCBPUlBIQU5FRF9FWFRSQUNURURfVkFVTFRfTUFYX0FHRV9JTl9NSUxMSVNFQ09ORFMpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBybVN5bmMoZW50cnlQYXRoLCB7IGZvcmNlOiB0cnVlLCByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBCZXN0LWVmZm9ydCBjbGVhbnVwOiBhbiBvcnBoYW4gd2hvc2UgdmF1bHQgaXMgc3RpbGwgb3BlbiAobG9ja2VkIG9uIFdpbmRvd3MpIGNhbm5vdCBiZSByZW1vdmVkOyBza2lwIGl0IGFuZCByZXRyeSBvbiBhIGxhdGVyIG9wZW4uXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogRXh0cmFjdHMgYSBkb3dubG9hZGVkIGRlbW8tdmF1bHQgYXJjaGl2ZSB0byBkaXNrLlxuICpcbiAqIEV4dHJhY3Rpb24gaXMgd3JpdHRlbiB3aXRoIEVsZWN0cm9uJ3MgYG9yaWdpbmFsLWZzYCBcdTIwMTQgdGhlIHJlYWwgYGZzYCB3aXRoIGFzYXIgaW50ZXJjZXB0aW9uIGRpc2FibGVkIFx1MjAxNFxuICogcmF0aGVyIHRoYW4gd2l0aCBgbm9kZTpmc2AuIEEgZGVtbyB2YXVsdCBtYXkgc2hpcCBhIGZpbGUgdGhhdCBtZXJlbHkgTE9PS1MgbGlrZSBhbiBFbGVjdHJvbiBhcmNoaXZlXG4gKiAoZS5nLiBgX2Fzc2V0cy9Db2RlU2NyaXB0VG9vbGtpdC9tb2R1bGUuYXNhcmAgZGVtb25zdHJhdGluZyB0aGUgQVNBUiByZXF1aXJlIGZlYXR1cmUpLCBhbmQgRWxlY3Ryb24nc1xuICogYXNhciBsYXllciBpbnRlcmNlcHRzIGBmc2Agb3BlcmF0aW9ucyBvbiBhbnkgcGF0aCBjb250YWluaW5nIGAuYXNhcmAsIHRyZWF0aW5nIGl0IGFzIGFuIGFyY2hpdmUgcm9vdFxuICogcmF0aGVyIHRoYW4gYSBwbGFpbiBmaWxlLiBUaGF0IGFscmVhZHkgY29zdCBvbmUgcHJvZHVjdGlvbiBidWcgd2hlbiB0aGUgZXh0cmFjdG9yIGBjaG1vZGAtZWQgc3VjaCBhXG4gKiBmaWxlIGFuZCBnb3QgYEVOT0VOVGA7IG5vdGhpbmcgYGNobW9kYHMgYW55IG1vcmUsIGJ1dCB3cml0aW5nIHRob3NlIGJ5dGVzIHRocm91Z2ggdGhlIGNvcHkgdGhhdCBoYXMgbm9cbiAqIGFzYXIgbGF5ZXIgY29zdHMgbm90aGluZyBhbmQga2VlcHMgdGhlIHdob2xlIGNsYXNzIG9mIGZhaWx1cmUgb2ZmIHRoaXMgcGF0aC4gYG9yaWdpbmFsLWZzYCBpcyBhIGRlc2t0b3Atb25seVxuICogRWxlY3Ryb24gbW9kdWxlIHdpdGggbm8gYnVuZGxlZCB0eXBlcywgc28gaXQgaXMgbG9hZGVkIHZpYSBgd2luZG93LnJlcXVpcmVgIGFuZCB0eXBlZCBhcyBgbm9kZTpmc2Anc1xuICogc2hhcGUuXG4gKlxuICogQHBhcmFtIGFyY2hpdmUgLSBUaGUgcmF3IHppcCBhcmNoaXZlIGJ5dGVzLlxuICogQHBhcmFtIHRhcmdldERpcmVjdG9yeSAtIFRoZSBkaXJlY3RvcnkgdG8gZXh0cmFjdCBpbnRvLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RGVtb1ZhdWx0QXJjaGl2ZShhcmNoaXZlOiBCdWZmZXIsIHRhcmdldERpcmVjdG9yeTogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG9yaWdpbmFsRnMgPSB3aW5kb3cucmVxdWlyZSgnbm9kZTpvcmlnaW5hbC1mcycpIGFzIHR5cGVvZiBpbXBvcnQoJ25vZGU6ZnMnKTtcbiAgZXh0cmFjdFppcEFyY2hpdmUoe1xuICAgIGFyY2hpdmUsXG4gICAgZmlsZVN5c3RlbTogb3JpZ2luYWxGcyxcbiAgICB0YXJnZXREaXJlY3RvcnlcbiAgfSk7XG59XG5cbi8qKlxuICogRXh0cmFjdHMgdGhlIGFyY2hpdmUgaW50byBhIGZyZXNoLCB1bmlxdWVseS1uYW1lZCB0ZW1wb3JhcnkgZm9sZGVyIGFuZCByZXR1cm5zIHRoZSB2YXVsdCBwYXRoLlxuICpcbiAqIEEgdW5pcXVlIHBhcmVudCBmb2xkZXIgKGBta2R0ZW1wU3luY2ApIGd1YXJhbnRlZXMgYSBicmFuZC1uZXcgZXh0cmFjdGlvbiBldmVyeSB0aW1lIFx1MjAxNCB0aGUgZGVtbyB2YXVsdFxuICogaXMgbmV2ZXIgcmV1c2VkIGFjcm9zcyBvcGVucywgc28gYSBwcmV2aW91cyBzZXNzaW9uJ3MgZWRpdHMgbmV2ZXIgbGVhayBpbi4gVGhlIGFyY2hpdmUgaXMgZXh0cmFjdGVkXG4gKiBpbnRvIHRoYXQgcGFyZW50IGFuZCB0aGUgdmF1bHQgaXMgdGhlIHNpbmdsZSBgPHBsdWdpbi1pZD4tZGVtby12YXVsdC08dmVyc2lvbj5gIGZvbGRlciBpdCBjb250YWlucywgc29cbiAqIE9ic2lkaWFuJ3MgdmF1bHQgc3dpdGNoZXIgc2hvd3MgYSBmcmllbmRseSBuYW1lIChpdHMgYmFzZW5hbWUpIHJhdGhlciB0aGFuIHRoZSByYW5kb20gdGVtcCBpZC5cbiAqXG4gKiBUaGF0IGZvbGRlciBpcyBub3Qgc2VhcmNoZWQgZm9yOiB7QGxpbmsgZ2V0RGVtb1ZhdWx0Rm9sZGVyTmFtZX0gbmFtZXMgaXQgb24gYm90aCBzaWRlcywgc28gdGhlIHBhdGggaXNcbiAqIGtub3duIGJlZm9yZSBhIGJ5dGUgaXMgd3JpdHRlbi4gV2hpY2gga2VlcHMgdGhlIGV4dHJhY3RvciBmcmVlIG9mIGFueSByZWFkIFx1MjAxNCBkZWxpYmVyYXRlLCBiZWNhdXNlXG4gKiBFbGVjdHJvbidzIGFzYXIgbGF5ZXIgaW50ZXJjZXB0cyBgZnNgIHJlYWRzIG9uIGFueSBwYXRoIGNvbnRhaW5pbmcgYC5hc2FyYCwgYW5kIGEgZGVtbyB2YXVsdCBtYXlcbiAqIGxlZ2l0aW1hdGVseSBzaGlwIHN1Y2ggYSBmaWxlLlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUge0BsaW5rIEV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyUGFyYW1zfS5cbiAqIEByZXR1cm5zIFRoZSBhYnNvbHV0ZSBwYXRoIG9mIHRoZSBmcmVzaGx5IGV4dHJhY3RlZCB2YXVsdCBmb2xkZXIuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3REZW1vVmF1bHRUb0ZyZXNoRm9sZGVyKHBhcmFtczogRXh0cmFjdERlbW9WYXVsdFRvRnJlc2hGb2xkZXJQYXJhbXMpOiBzdHJpbmcge1xuICBjb25zdCB7IGFyY2hpdmUsIHBsdWdpbklkLCB2ZXJzaW9uIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGV4dHJhY3RlZFZhdWx0c1Jvb3QgPSBqb2luKHRtcGRpcigpLCBERU1PX1ZBVUxUU19DQUNIRV9GT0xERVIsIEVYVFJBQ1RFRF9WQVVMVFNfU1VCRk9MREVSKTtcbiAgbWtkaXJTeW5jKGV4dHJhY3RlZFZhdWx0c1Jvb3QsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCB1bmlxdWVQYXJlbnREaXJlY3RvcnkgPSBta2R0ZW1wU3luYyhqb2luKGV4dHJhY3RlZFZhdWx0c1Jvb3QsIGAke3BsdWdpbklkfS0ke3ZlcnNpb259LWApKTtcbiAgZXh0cmFjdERlbW9WYXVsdEFyY2hpdmUoYXJjaGl2ZSwgdW5pcXVlUGFyZW50RGlyZWN0b3J5KTtcbiAgcmV0dXJuIGpvaW4oXG4gICAgdW5pcXVlUGFyZW50RGlyZWN0b3J5LFxuICAgIGdldERlbW9WYXVsdEZvbGRlck5hbWUoe1xuICAgICAgcGx1Z2luSWQsXG4gICAgICB2ZXJzaW9uXG4gICAgfSlcbiAgKTtcbn1cblxuLyoqXG4gKiBSZXNvbHZlcyB0aGUgZGVtby12YXVsdCBhcmNoaXZlIGJ5dGVzIGZvciBhIHZlcnNpb24sIGRvd25sb2FkaW5nIGFuZCBjYWNoaW5nIHRoZW0gb24gZmlyc3QgdXNlLlxuICpcbiAqIE9ubHkgdGhlIGFyY2hpdmUgaXMgY2FjaGVkIChrZXllZCBieSBwbHVnaW4gaWQgKyB2ZXJzaW9uKTsgdGhlIGV4dHJhY3RlZCB2YXVsdCBpcyBub3QuIEEgY2FjaGUgaGl0IGlzXG4gKiByZXR1cm5lZCB3aXRob3V0IGFueSBuZXR3b3JrIHJlcXVlc3Q7IGEgbWlzcyBkb3dubG9hZHMgdGhlIHJlbGVhc2UgYXNzZXQsIHdyaXRlcyBpdCB0byB0aGUgYXJjaGl2ZVxuICogY2FjaGUsIGFuZCByZXR1cm5zIHRoZSBmcmVzaGx5IGRvd25sb2FkZWQgYnl0ZXMuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSB7QGxpbmsgUmVzb2x2ZURlbW9WYXVsdEFyY2hpdmVQYXJhbXN9LlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gcmVzb2x2aW5nIHRvIHRoZSBhcmNoaXZlIGJ5dGVzLCBvciBgbnVsbGAgd2hlbiBubyBhcmNoaXZlIGlzIGF2YWlsYWJsZSBmb3JcbiAqIHRoZSB2ZXJzaW9uIChhIG5vdGljZSBoYXMgYmVlbiBzaG93bikuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVEZW1vVmF1bHRBcmNoaXZlKHBhcmFtczogUmVzb2x2ZURlbW9WYXVsdEFyY2hpdmVQYXJhbXMpOiBQcm9taXNlPEJ1ZmZlciB8IG51bGw+IHtcbiAgY29uc3Qge1xuICAgIHBsdWdpbklkLFxuICAgIHBsdWdpbk5hbWUsXG4gICAgcGx1Z2luTm90aWNlQ29tcG9uZW50LFxuICAgIHByb2dyZXNzTm90aWNlLFxuICAgIHJlcG8sXG4gICAgdmVyc2lvblxuICB9ID0gcGFyYW1zO1xuXG4gIGNvbnN0IGFyY2hpdmVzRGlyZWN0b3J5ID0gam9pbih0bXBkaXIoKSwgREVNT19WQVVMVFNfQ0FDSEVfRk9MREVSLCBBUkNISVZFU19TVUJGT0xERVIpO1xuICBjb25zdCBhcmNoaXZlUGF0aCA9IGpvaW4oYXJjaGl2ZXNEaXJlY3RvcnksIGAke3BsdWdpbklkfS0ke3ZlcnNpb259LnppcGApO1xuICBpZiAoZXhpc3RzU3luYyhhcmNoaXZlUGF0aCkpIHtcbiAgICByZXR1cm4gcmVhZEZpbGVTeW5jKGFyY2hpdmVQYXRoKTtcbiAgfVxuXG4gIHByb2dyZXNzTm90aWNlLnNldENvbnRlbnQoYERvd25sb2FkaW5nIGRlbW8gdmF1bHQgZm9yICR7cGx1Z2luTmFtZX0gdiR7dmVyc2lvbn1cdTIwMjZgKTtcbiAgY29uc3QgYXNzZXRVcmwgPSBgaHR0cHM6Ly9naXRodWIuY29tLyR7cmVwb30vcmVsZWFzZXMvZG93bmxvYWQvJHt2ZXJzaW9ufS8ke2dldERlbW9WYXVsdEFyY2hpdmVGaWxlTmFtZShwbHVnaW5JZCl9YDtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0VXJsKHtcbiAgICB0aHJvdzogZmFsc2UsXG4gICAgdXJsOiBhc3NldFVybFxuICB9KTtcbiAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPT0gSFRUUF9TVEFUVVNfT0spIHtcbiAgICBwbHVnaW5Ob3RpY2VDb21wb25lbnQuc2hvd05vdGljZShgTm8gZGVtbyB2YXVsdCBpcyBhdmFpbGFibGUgZm9yIHBsdWdpbiAke3BsdWdpbk5hbWV9IHYke3ZlcnNpb259LmApO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgYXJjaGl2ZSA9IEJ1ZmZlci5mcm9tKHJlc3BvbnNlLmFycmF5QnVmZmVyKTtcbiAgbWtkaXJTeW5jKGFyY2hpdmVzRGlyZWN0b3J5LCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgd3JpdGVGaWxlU3luYyhhcmNoaXZlUGF0aCwgYXJjaGl2ZSk7XG4gIHJldHVybiBhcmNoaXZlO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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