@kepler.gl/components 3.3.0-alpha.6 → 3.3.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. package/dist/cjs/common/data-table/cell-size.js +40 -23
  2. package/dist/cjs/common/data-table/column-statistics-categoric.js +40 -0
  3. package/dist/cjs/common/data-table/column-statistics-components.js +65 -0
  4. package/dist/cjs/common/data-table/column-statistics-numeric.js +87 -0
  5. package/dist/cjs/common/data-table/column-statistics-time.js +69 -0
  6. package/dist/cjs/common/data-table/grid.js +2 -2
  7. package/dist/cjs/common/data-table/header-cell.js +123 -44
  8. package/dist/cjs/common/data-table/index.js +104 -31
  9. package/dist/cjs/common/file-uploader/file-upload.js +250 -40
  10. package/dist/cjs/common/histogram-plot.js +1 -1
  11. package/dist/cjs/common/icons/circle.js +54 -0
  12. package/dist/cjs/common/icons/{arrow-down-solid.js → draw-point.js} +21 -11
  13. package/dist/cjs/common/icons/index.js +22 -1
  14. package/dist/cjs/common/icons/line-string.js +60 -0
  15. package/dist/cjs/common/item-selector/item-selector.js +2 -2
  16. package/dist/cjs/common/portaled.js +3 -3
  17. package/dist/cjs/common/time-range-slider.js +2 -2
  18. package/dist/cjs/common/timeline-slider.js +2 -2
  19. package/dist/cjs/common/toolbar-item.js +24 -3
  20. package/dist/cjs/editor/editor.js +27 -9
  21. package/dist/cjs/editor/feature-action-panel.js +34 -12
  22. package/dist/cjs/editor/feature-properties-editor.js +215 -0
  23. package/dist/cjs/editor/filter-feature-badges.js +92 -0
  24. package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +2 -2
  25. package/dist/cjs/filters/time-widget.js +2 -2
  26. package/dist/cjs/index.js +33 -1
  27. package/dist/cjs/kepler-gl.js +20 -3
  28. package/dist/cjs/map/layer-hover-info.js +2 -2
  29. package/dist/cjs/map/map-control-toolbar.js +2 -2
  30. package/dist/cjs/map/map-control.js +14 -8
  31. package/dist/cjs/map/map-draw-panel.js +74 -15
  32. package/dist/cjs/map/theme-toggle-button.js +64 -0
  33. package/dist/cjs/map-container.js +17 -6
  34. package/dist/cjs/map-view-state-context.js +3 -3
  35. package/dist/cjs/modal-container.js +3 -2
  36. package/dist/cjs/modals/cloud-components/cloud-item.js +55 -7
  37. package/dist/cjs/modals/cloud-components/cloud-item.spec.js +75 -3
  38. package/dist/cjs/modals/cloud-components/cloud-maps.js +2 -1
  39. package/dist/cjs/modals/cloud-components/cloud-storage-disclaimer.js +24 -0
  40. package/dist/cjs/modals/cloud-tile.js +82 -39
  41. package/dist/cjs/modals/data-table-modal.js +37 -25
  42. package/dist/cjs/modals/export-video-modal.js +28 -1
  43. package/dist/cjs/modals/export-video-modal.spec.js +56 -10
  44. package/dist/cjs/modals/globe-export-video-container.js +19 -3
  45. package/dist/cjs/modals/globe-export-video-preview.js +25 -7
  46. package/dist/cjs/modals/hubble-utils.js +8 -3
  47. package/dist/cjs/modals/image-modal-container.js +2 -2
  48. package/dist/cjs/modals/load-data-modal.js +3 -3
  49. package/dist/cjs/modals/load-storage-map.js +9 -6
  50. package/dist/cjs/modals/save-map-modal.js +4 -3
  51. package/dist/cjs/modals/share-map-modal.js +5 -4
  52. package/dist/cjs/modals/swipe-composite-utils.js +9 -1
  53. package/dist/cjs/modals/swipe-composite-utils.spec.js +69 -0
  54. package/dist/cjs/modals/swipe-export-video-preview.js +9 -5
  55. package/dist/cjs/plot-container.js +12 -5
  56. package/dist/cjs/side-panel/common/dataset-info.js +2 -2
  57. package/dist/cjs/side-panel/filter-panel/filter-panel.js +2 -2
  58. package/dist/cjs/side-panel/layer-manager.js +11 -3
  59. package/dist/cjs/side-panel/layer-panel/custom-palette.js +2 -2
  60. package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +11 -3
  61. package/dist/cjs/side-panel/layer-panel/layer-configurator.js +74 -31
  62. package/dist/cjs/side-panel/map-style-panel/globe-config-panel.js +90 -25
  63. package/dist/common/data-table/column-statistics-categoric.d.ts +9 -0
  64. package/dist/common/data-table/column-statistics-components.d.ts +31 -0
  65. package/dist/common/data-table/column-statistics-numeric.d.ts +18 -0
  66. package/dist/common/data-table/column-statistics-time.d.ts +19 -0
  67. package/dist/common/data-table/header-cell.d.ts +7 -5
  68. package/dist/common/data-table/index.d.ts +7 -24
  69. package/dist/common/histogram-plot.d.ts +24 -1
  70. package/dist/common/icons/{arrow-down-solid.d.ts → circle.d.ts} +2 -1
  71. package/dist/common/icons/draw-point.d.ts +10 -0
  72. package/dist/common/icons/index.d.ts +3 -0
  73. package/dist/common/icons/line-string.d.ts +10 -0
  74. package/dist/common/toolbar-item.d.ts +2 -0
  75. package/dist/editor/editor.d.ts +1 -0
  76. package/dist/editor/feature-action-panel.d.ts +1 -0
  77. package/dist/editor/feature-properties-editor.d.ts +8 -0
  78. package/dist/editor/filter-feature-badges.d.ts +12 -0
  79. package/dist/esm/common/data-table/cell-size.js +40 -23
  80. package/dist/esm/common/data-table/column-statistics-categoric.js +33 -0
  81. package/dist/esm/common/data-table/column-statistics-components.js +59 -0
  82. package/dist/esm/common/data-table/column-statistics-numeric.js +78 -0
  83. package/dist/esm/common/data-table/column-statistics-time.js +60 -0
  84. package/dist/esm/common/data-table/grid.js +2 -2
  85. package/dist/esm/common/data-table/header-cell.js +125 -46
  86. package/dist/esm/common/data-table/index.js +104 -31
  87. package/dist/esm/common/file-uploader/file-upload.js +251 -41
  88. package/dist/esm/common/histogram-plot.js +1 -1
  89. package/dist/esm/common/icons/circle.js +48 -0
  90. package/dist/esm/common/icons/draw-point.js +44 -0
  91. package/dist/esm/common/icons/index.js +4 -1
  92. package/dist/esm/common/icons/line-string.js +54 -0
  93. package/dist/esm/common/item-selector/item-selector.js +2 -2
  94. package/dist/esm/common/portaled.js +3 -3
  95. package/dist/esm/common/time-range-slider.js +2 -2
  96. package/dist/esm/common/timeline-slider.js +2 -2
  97. package/dist/esm/common/toolbar-item.js +24 -3
  98. package/dist/esm/editor/editor.js +27 -9
  99. package/dist/esm/editor/feature-action-panel.js +37 -15
  100. package/dist/esm/editor/feature-properties-editor.js +208 -0
  101. package/dist/esm/editor/filter-feature-badges.js +85 -0
  102. package/dist/esm/filters/filter-panels/polygon-filter-panel.js +2 -2
  103. package/dist/esm/filters/time-widget.js +2 -2
  104. package/dist/esm/index.js +5 -1
  105. package/dist/esm/kepler-gl.js +20 -3
  106. package/dist/esm/map/layer-hover-info.js +2 -2
  107. package/dist/esm/map/map-control-toolbar.js +2 -2
  108. package/dist/esm/map/map-control.js +14 -8
  109. package/dist/esm/map/map-draw-panel.js +72 -11
  110. package/dist/esm/map/theme-toggle-button.js +55 -0
  111. package/dist/esm/map-container.js +17 -6
  112. package/dist/esm/map-view-state-context.js +3 -3
  113. package/dist/esm/modal-container.js +3 -2
  114. package/dist/esm/modals/cloud-components/cloud-item.js +53 -7
  115. package/dist/esm/modals/cloud-components/cloud-item.spec.js +76 -4
  116. package/dist/esm/modals/cloud-components/cloud-maps.js +2 -1
  117. package/dist/esm/modals/cloud-components/cloud-storage-disclaimer.js +19 -0
  118. package/dist/esm/modals/cloud-tile.js +82 -39
  119. package/dist/esm/modals/data-table-modal.js +38 -26
  120. package/dist/esm/modals/export-video-modal.js +29 -2
  121. package/dist/esm/modals/export-video-modal.spec.js +56 -10
  122. package/dist/esm/modals/globe-export-video-container.js +20 -4
  123. package/dist/esm/modals/globe-export-video-preview.js +26 -8
  124. package/dist/esm/modals/hubble-utils.js +8 -3
  125. package/dist/esm/modals/image-modal-container.js +2 -2
  126. package/dist/esm/modals/load-data-modal.js +3 -3
  127. package/dist/esm/modals/load-storage-map.js +8 -3
  128. package/dist/esm/modals/save-map-modal.js +4 -3
  129. package/dist/esm/modals/share-map-modal.js +5 -4
  130. package/dist/esm/modals/swipe-composite-utils.js +9 -1
  131. package/dist/esm/modals/swipe-composite-utils.spec.js +67 -0
  132. package/dist/esm/modals/swipe-export-video-preview.js +8 -4
  133. package/dist/esm/plot-container.js +12 -5
  134. package/dist/esm/side-panel/common/dataset-info.js +2 -2
  135. package/dist/esm/side-panel/filter-panel/filter-panel.js +2 -2
  136. package/dist/esm/side-panel/layer-manager.js +11 -3
  137. package/dist/esm/side-panel/layer-panel/custom-palette.js +2 -2
  138. package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +11 -3
  139. package/dist/esm/side-panel/layer-panel/layer-configurator.js +74 -31
  140. package/dist/esm/side-panel/map-style-panel/globe-config-panel.js +90 -25
  141. package/dist/index.d.ts +8 -0
  142. package/dist/kepler-gl.d.ts +3 -0
  143. package/dist/map/map-control.d.ts +6 -2
  144. package/dist/map/map-draw-panel.d.ts +1 -0
  145. package/dist/map/theme-toggle-button.d.ts +18 -0
  146. package/dist/map-container.d.ts +1 -0
  147. package/dist/modals/cloud-components/cloud-item.d.ts +2 -1
  148. package/dist/modals/cloud-components/cloud-storage-disclaimer.d.ts +2 -0
  149. package/dist/modals/data-table-modal.d.ts +1 -0
  150. package/dist/modals/globe-export-video-container.d.ts +2 -0
  151. package/dist/modals/globe-export-video-preview.d.ts +3 -0
  152. package/dist/modals/hubble-utils.d.ts +2 -1
  153. package/dist/modals/swipe-composite-utils.d.ts +1 -1
  154. package/dist/modals/swipe-composite-utils.spec.d.ts +1 -0
  155. package/package.json +20 -21
  156. package/dist/cjs/modals/cloud-components/provider-loading.js +0 -20
  157. package/dist/cjs/modals/storage-map-viewer.js +0 -98
  158. package/dist/cjs/side-panel/cloud-storage-dropdown.js +0 -40
  159. package/dist/esm/common/icons/arrow-down-solid.js +0 -34
  160. package/dist/esm/modals/cloud-components/provider-loading.js +0 -15
  161. package/dist/esm/modals/storage-map-viewer.js +0 -93
  162. package/dist/esm/side-panel/cloud-storage-dropdown.js +0 -33
  163. package/dist/modals/cloud-components/provider-loading.d.ts +0 -2
  164. package/dist/modals/storage-map-viewer.d.ts +0 -21
  165. package/dist/side-panel/cloud-storage-dropdown.d.ts +0 -6
@@ -19,7 +19,7 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
19
19
 
20
20
  import classnames from 'classnames';
21
21
  import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
22
- import uniq from 'lodash/uniq';
22
+ import uniq from 'es-toolkit/compat/uniq';
23
23
  import { DndContext, closestCenter, KeyboardSensor, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';
24
24
  import { SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable';
25
25
  import { CSS } from '@dnd-kit/utilities';
@@ -780,4 +780,4 @@ function CustomPaletteFactory() {
780
780
  return CustomPalette;
781
781
  }
782
782
  export default CustomPaletteFactory;
783
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbGFzc25hbWVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVuaXEiLCJEbmRDb250ZXh0IiwiY2xvc2VzdENlbnRlciIsIktleWJvYXJkU2Vuc29yIiwiUG9pbnRlclNlbnNvciIsInVzZVNlbnNvciIsInVzZVNlbnNvcnMiLCJTb3J0YWJsZUNvbnRleHQiLCJ1c2VTb3J0YWJsZSIsInZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneSIsIkNTUyIsInN0eWxlZCIsImNzcyIsIlBvcnRhbGVkIiwiVG9vbHRpcCIsIlR5cGVhaGVhZCIsIkNoaWNrbGV0ZWRJbnB1dCIsIkRyb3Bkb3duTGlzdCIsIkxpc3RJdGVtIiwic2hvdWxkRm9yd2FyZFByb3AiLCJ0b0FycmF5IiwiS2V5RXZlbnQiLCJhZGRDYXRlZ29yaWNhbFZhbHVlc1RvQ29sb3JNYXAiLCJhZGRDdXN0b21QYWxldHRlQ29sb3IiLCJjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyIsImNvbG9yTWFwVG9Db2xvckJyZWFrcyIsImlzTnVtZXJpY0NvbG9yQnJlYWtzIiwicmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleCIsInJlbW92ZUNhdGVnb3JpY2FsVmFsdWVGcm9tQ29sb3JNYXAiLCJyZW1vdmVDdXN0b21QYWxldHRlQ29sb3IiLCJzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgiLCJzb3J0Q3VzdG9tUGFsZXR0ZUNvbG9yIiwidXBkYXRlQ3VzdG9tUGFsZXR0ZUNvbG9yIiwiQWRkIiwiVHJhc2giLCJWZXJ0RG90cyIsIkJ1dHRvbiIsIklucHV0IiwiQ3VzdG9tUGlja2VyIiwiZGVmYXVsdEFjdGlvbkljb25zIiwic29ydCIsImFkZCIsImRyYWdIYW5kbGVBY3RpdmUiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvckhsIiwiQ29sb3JQYWxldHRlSXRlbSIsImRpdiIsIl90ZW1wbGF0ZU9iamVjdDIiLCJkcm9wZG93bldyYXBwZXJaIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJTdHlsZWREcmFnSGFuZGxlIiwiX3RlbXBsYXRlT2JqZWN0MyIsIlN0eWxlZEFjdGlvbiIsIl90ZW1wbGF0ZU9iamVjdDQiLCJzdWJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3JBY3RpdmUiLCJEaXZpZGVyTGluZSIsIl90ZW1wbGF0ZU9iamVjdDUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3AiLCJDb2xvclN3YXRjaCIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RlbXBsYXRlT2JqZWN0NiIsImNvbG9yIiwiYm94U2hhZG93IiwiU3R5bGVkQnV0dG9uQ29udGFpbmVyIiwiX3RlbXBsYXRlT2JqZWN0NyIsIlN0eWxlZEFkZFN0ZXBDb250YWluZXIiLCJfdGVtcGxhdGVPYmplY3Q4IiwiaW5wdXRDb2xvciIsIlN0eWxlZElucHV0Iiwid2l0aENvbmZpZyIsIl90ZW1wbGF0ZU9iamVjdDkiLCJfcHJvcHMkd2lkdGgiLCJ3aWR0aCIsIl9wcm9wcyR0ZXh0QWxpZ24iLCJ0ZXh0QWxpZ24iLCJkaXNhYmxlZCIsIklucHV0VGV4dCIsIl90ZW1wbGF0ZU9iamVjdDAiLCJpbnB1dCIsIl9wcm9wcyR3aWR0aDIiLCJfcHJvcHMkdGV4dEFsaWduMiIsIlNvcnRhYmxlSXRlbSIsIl9yZWYiLCJpZCIsImNoaWxkcmVuIiwiaXNTb3J0aW5nIiwiX3VzZVNvcnRhYmxlIiwiYXR0cmlidXRlcyIsImxpc3RlbmVycyIsInNldE5vZGVSZWYiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwiaXNEcmFnZ2luZyIsInN0eWxlIiwiVHJhbnNmb3JtIiwidG9TdHJpbmciLCJ6SW5kZXgiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJyZWYiLCJzb3J0aW5nIiwiV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyIiwiX3JlZjIiLCJvblNvcnRFbmQiLCJvblNvcnRTdGFydCIsInNlbnNvcnMiLCJjb2xsaXNpb25EZXRlY3Rpb24iLCJvbkRyYWdFbmQiLCJvbkRyYWdTdGFydCIsIml0ZW1zIiwiQ2hpbGRyZW4iLCJtYXAiLCJfIiwiaW5kZXgiLCJjb25jYXQiLCJzdHJhdGVneSIsIkRyYWdIYW5kbGUiLCJfcmVmMyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkNvbG9yUGFsZXR0ZUlucHV0IiwiX3JlZjQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiZWRpdGFibGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzdGF0ZVZhbHVlIiwic2V0VmFsdWUiLCJpbnB1dFJlZiIsIm9uS2V5RG93biIsImUiLCJrZXlDb2RlIiwiRE9NX1ZLX0VOVEVSIiwiRE9NX1ZLX1JFVFVSTiIsImN1cnJlbnQiLCJibHVyIiwiX29uQ2hhbmdlIiwidGFyZ2V0Iiwib25CbHVyIiwic2Vjb25kYXJ5IiwiRGFzaCIsIl90ZW1wbGF0ZU9iamVjdDEiLCJTdHlsZWRSYW5nZUlucHV0IiwiX3RlbXBsYXRlT2JqZWN0MTAiLCJTdHlsZWRDb2xvckhleElucHV0IiwiX3RlbXBsYXRlT2JqZWN0MTEiLCJFZGl0YWJsZUNvbG9yUmFuZ2UiLCJfcmVmNSIsIml0ZW0iLCJpc0xhc3QiLCJlZGl0Q29sb3JNYXAiLCJoYXNJbnB1dHMiLCJBcnJheSIsImlzQXJyYXkiLCJpbnB1dHMiLCJsZWZ0SW5wdXQiLCJ1bmRlZmluZWQiLCJyaWdodElucHV0Iiwibm9NaW5Cb3VuZCIsIk51bWJlciIsImlzRmluaXRlIiwibm9NYXhCb3VuZCIsIm9uQ2hhbmdlTGVmdCIsInZhbCIsInBhcnNlRmxvYXQiLCJvbkNoYW5nZVJpZ2h0IiwiU3RyaW5nIiwiQWRkQ29sb3JTdG9wIiwiX3JlZjYiLCJvbkNvbG9yQWRkIiwiSWNvbkNvbXBvbmVudCIsIm9uQ2xpY2siLCJoZWlnaHQiLCJEZWxldGVDb2xvclN0b3AiLCJfcmVmNyIsIm9uQ29sb3JEZWxldGUiLCJDdXN0b21QYWxldHRlSW5wdXQiLCJfcmVmOCIsImNvbG9yQnJlYWtzIiwiaW5wdXRDb2xvckhleCIsImVkaXRDb2xvck1hcFZhbHVlIiwiX3JlZjgkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsImRpc2FibGVBcHBlbmQiLCJkaXNhYmxlRGVsZXRlIiwib25EZWxldGUiLCJvbkFkZCIsIm9uVG9nZ2xlU2tldGNoZXIiLCJvbkNsaWNrU3d0YWNoIiwib25Db2xvcklucHV0IiwidiIsInNob3dIZXhJbnB1dCIsIkZyYWdtZW50IiwidG9VcHBlckNhc2UiLCJsZW5ndGgiLCJTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDEyIiwiU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlciIsIl90ZW1wbGF0ZU9iamVjdDEzIiwibm9Cb3JkZXIiLCJEcm9wZG93blZhbHVlc1dyYXBwZXIiLCJfdGVtcGxhdGVPYmplY3QxNCIsIlNlbGVjdGVkVmFsdWVzV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDE1IiwiU3R5bGVkRHJvcGRvd25IZWFkZXIiLCJfdGVtcGxhdGVPYmplY3QxNiIsIlN0eWxlZFRvb2x0aXBDb250ZW50IiwiX3RlbXBsYXRlT2JqZWN0MTciLCJOVU1CRVJfVkFMVUVTX0lOX1RPT0xUSVAiLCJDYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJvblNlbGVjdFJlc3QiLCJvblJlc2V0IiwiTW9kaWZpZWREcm9wZG93bkxpc3QiLCJfRHJvcGRvd25MaXN0IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2NhbGxTdXBlciIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInJlbmRlciIsIl90aGlzIiwiQ29uc3VtZXIiLCJjb250ZXh0IiwibGluayIsInNpemUiLCJDYXRlZ29yaWNhbFNlbGVjdG9yIiwiX3JlZjkiLCJzZWxlY3RlZFZhbHVlcyIsImFsbFZhbHVlcyIsImFkZENvbG9yTWFwVmFsdWUiLCJyZW1vdmVDb2xvck1hcFZhbHVlIiwicmVzZXRDb2xvck1hcFZhbHVlIiwic2VsZWN0UmVzdENvbG9yTWFwVmFsdWUiLCJfcmVmOSRlZGl0YWJsZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd1R5cGVhaGVhZCIsInNldFNob3dUeXBlYWhlYWQiLCJvbk9wdGlvblNlbGVjdGVkIiwicHJldmlvdXNTZWxlY3RlZCIsIm9uT3BlbkRyb3Bkb3duIiwib25DbG9zZURyb3Bkb3duIiwib25SZW1vdmVJdGVtIiwicGxhY2UiLCJpbnRlcmFjdGl2ZSIsInNsaWNlIiwiaSIsImxlZnQiLCJ0b3AiLCJpc09wZW5lZCIsIm9uQ2xvc2UiLCJzZWxlY3RlZEl0ZW1zIiwicGxhY2Vob2xkZXIiLCJyZW1vdmVJdGVtIiwiQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQiLCJwb3NpdGlvbiIsIlByb3ZpZGVyIiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJsaXN0SXRlbSIsImxpc3RBbmNob3IiLCJvcHRpb25zIiwiZGlzcGxheU9wdGlvbiIsIm8iLCJmaWx0ZXJPcHRpb24iLCJpbmNsdWRlcyIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsInNlYXJjaGFibGUiLCJzaG93T3B0aW9uc1doZW5FbXB0eSIsIkNhdGVnb3JpY2FsQ3VzdG9tUGFsZXR0ZUlucHV0IiwiX3JlZjAiLCJjb2xvck1hcCIsIl9yZWYwJGFjdGlvbkljb25zIiwidmFsdWVzIiwiQm90dG9tQWN0aW9uIiwiX3JlZjEiLCJvbkNhbmNlbCIsIm9uQ29uZmlybSIsInNtYWxsIiwiU3R5bGVkQ3VzdG9tUGFsZXR0ZSIsIl90ZW1wbGF0ZU9iamVjdDE4IiwiQ3VzdG9tUGFsZXR0ZUZhY3RvcnkiLCJDdXN0b21QYWxldHRlIiwiX3JlZjEwIiwib3JkaW5hbERvbWFpbiIsImN1c3RvbVBhbGV0dGUiLCJzZXRDb2xvclBhbGV0dGVVSSIsInNob3dTa2V0Y2hlciIsIl9yZWYxMCRhY3Rpb25JY29ucyIsIm9uQXBwbHkiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldElzU29ydGluZyIsImNvbG9ycyIsInR5cGUiLCJvblBpY2tlclVwZGF0ZSIsIm5ld0N1c3RvbVBhbGV0dGUiLCJoZXgiLCJvbkFkZENhdGVnb3JpY2FsU3RlcCIsIm9uU3dhdGNoQ2xvc2UiLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwiYWN0aXZlIiwib3ZlciIsIm9sZEluZGV4IiwiZmluZEluZGV4IiwibmV3SW5kZXgiLCJuZXdDb2xvck1hcCIsImNtIiwiYnJlYWtzIiwiYSIsImIiLCJzb3J0ZWROZXdDb2xvck1hcCIsIl9vYmplY3RTcHJlYWQiLCJyZW1vdmVDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUiLCJhZGRDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUiLCJyZXNldENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSIsInNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY3VzdG9tLXBhbGV0dGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIEVsZW1lbnRUeXBlLFxuICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZVxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5pbXBvcnQge1xuICBEbmRDb250ZXh0LFxuICBjbG9zZXN0Q2VudGVyLFxuICBLZXlib2FyZFNlbnNvcixcbiAgUG9pbnRlclNlbnNvcixcbiAgdXNlU2Vuc29yLFxuICB1c2VTZW5zb3JzLFxuICBEcmFnRW5kRXZlbnRcbn0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5pbXBvcnQge1NvcnRhYmxlQ29udGV4dCwgdXNlU29ydGFibGUsIHZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneX0gZnJvbSAnQGRuZC1raXQvc29ydGFibGUnO1xuaW1wb3J0IHtDU1N9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQgc3R5bGVkLCB7Y3NzfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgUG9ydGFsZWQgZnJvbSAnLi4vLi4vY29tbW9uL3BvcnRhbGVkJztcbmltcG9ydCB7VG9vbHRpcH0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBUeXBlYWhlYWQgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvdHlwZWFoZWFkJztcbmltcG9ydCBDaGlja2xldGVkSW5wdXQgZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvY2hpY2tsZXRlZC1pbnB1dCc7XG5pbXBvcnQgRHJvcGRvd25MaXN0LCB7TGlzdEl0ZW19IGZyb20gJy4uLy4uL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QnO1xuaW1wb3J0IHtzaG91bGRGb3J3YXJkUHJvcH0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7dG9BcnJheX0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtLZXlFdmVudH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtDb2xvck1hcCwgQ29sb3JVSSwgSGV4Q29sb3IsIE5lc3RlZFBhcnRpYWx9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtcbiAgYWRkQ2F0ZWdvcmljYWxWYWx1ZXNUb0NvbG9yTWFwLFxuICBhZGRDdXN0b21QYWxldHRlQ29sb3IsXG4gIGNvbG9yTWFwVG9DYXRlZ29yaWNhbENvbG9yQnJlYWtzLFxuICBjb2xvck1hcFRvQ29sb3JCcmVha3MsXG4gIGlzTnVtZXJpY0NvbG9yQnJlYWtzLFxuICByZXNldENhdGVnb3JpY2FsQ29sb3JNYXBCeUluZGV4LFxuICByZW1vdmVDYXRlZ29yaWNhbFZhbHVlRnJvbUNvbG9yTWFwLFxuICByZW1vdmVDdXN0b21QYWxldHRlQ29sb3IsXG4gIHNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleCxcbiAgc29ydEN1c3RvbVBhbGV0dGVDb2xvcixcbiAgdXBkYXRlQ3VzdG9tUGFsZXR0ZUNvbG9yXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtDb2xvckJyZWFrLCBDb2xvckJyZWFrT3JkaW5hbH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0FkZCwgVHJhc2gsIFZlcnREb3RzfSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtCdXR0b24sIElucHV0fSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEN1c3RvbVBpY2tlciBmcm9tICcuL2N1c3RvbS1waWNrZXInO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25JY29ucyA9IHtcbiAgZGVsZXRlOiBFbGVtZW50VHlwZTtcbiAgc29ydDogRWxlbWVudFR5cGU7XG4gIGFkZDogRWxlbWVudFR5cGU7XG59O1xuXG5leHBvcnQgdHlwZSBFZGl0Q29sb3JNYXBGdW5jID0gKHY6IG51bWJlciwgaTogbnVtYmVyKSA9PiB2b2lkO1xuZXhwb3J0IHR5cGUgU2V0Q29sb3JVSUZ1bmMgPSAobmV3Q29uZmlnOiBOZXN0ZWRQYXJ0aWFsPENvbG9yVUk+KSA9PiB2b2lkO1xuXG4vKipcbiAqIEVkaXRhYmxlQ29sb3JSYW5nZVxuICovXG5leHBvcnQgdHlwZSBFZGl0YWJsZUNvbG9yUmFuZ2VQcm9wcyA9IHtcbiAgaXRlbTogQ29sb3JCcmVhaztcbiAgaXNMYXN0OiBib29sZWFuO1xuICBpbmRleDogbnVtYmVyO1xuICBlZGl0Q29sb3JNYXA/OiBFZGl0Q29sb3JNYXBGdW5jO1xuICBlZGl0YWJsZTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVBhbGV0dGVQcm9wcyA9IHtcbiAgY3VzdG9tUGFsZXR0ZTogQ29sb3JVSVsnY3VzdG9tUGFsZXR0ZSddO1xuICBzZXRDb2xvclBhbGV0dGVVSTogU2V0Q29sb3JVSUZ1bmM7XG4gIHNob3dTa2V0Y2hlcjogbnVtYmVyIHwgYm9vbGVhbjtcbiAgb3JkaW5hbERvbWFpbj86IHN0cmluZ1tdIHwgbnVtYmVyW107XG4gIGFjdGlvbkljb25zPzogQWN0aW9uSWNvbnM7XG4gIG9uQXBwbHk6IChlOiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBvbkNhbmNlbDogKCkgPT4gdm9pZDtcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbVBhbGV0dGVJbnB1dFByb3BzID0ge1xuICBpbmRleDogbnVtYmVyO1xuICBpc1NvcnRpbmc6IGJvb2xlYW47XG4gIGNvbG9yOiBIZXhDb2xvcjtcbiAgY29sb3JCcmVha3M6IENvbG9yQnJlYWtPcmRpbmFsW10gfCBDb2xvckJyZWFrW10gfCBudWxsO1xuICBpbnB1dENvbG9ySGV4OiAoaW5kZXg6IG51bWJlciwgdjogSGV4Q29sb3IpID0+IHZvaWQ7XG4gIGVkaXRDb2xvck1hcFZhbHVlOiBFZGl0Q29sb3JNYXBGdW5jO1xuICBhY3Rpb25JY29ucz86IEFjdGlvbkljb25zO1xuICBkaXNhYmxlQXBwZW5kPzogYm9vbGVhbjtcbiAgZGlzYWJsZURlbGV0ZT86IGJvb2xlYW47XG4gIG9uRGVsZXRlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgb25BZGQ6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICBvblRvZ2dsZVNrZXRjaGVyOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbn07XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgZGVsZXRlOiBUcmFzaCxcbiAgc29ydDogVmVydERvdHMsXG4gIGFkZDogQWRkXG59O1xuXG5jb25zdCBkcmFnSGFuZGxlQWN0aXZlID0gY3NzYFxuICAubGF5ZXJfX2RyYWctaGFuZGxlIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgb3BhY2l0eTogMTtcbiAgICBjdXJzb3I6IG1vdmU7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDb2xvclBhbGV0dGVJdGVtID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZy10b3A6IDJweDtcbiAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJaICsgMX07XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAuY3VzdG9tLXBhbGV0dGUtaW5wdXRfX2xlZnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5jdXN0b20tcGFsZXR0ZS1pbnB1dF9fcmlnaHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2cHg7XG4gIH1cblxuICAmOm5vdCguc29ydGluZyk6bm90KC5kaXNhYmxlZCkge1xuICAgICY6aG92ZXIge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgICAke2RyYWdIYW5kbGVBY3RpdmV9O1xuICAgIH1cbiAgfVxuXG4gICYuc29ydGluZy1jb2xvcnMge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICAgICR7ZHJhZ0hhbmRsZUFjdGl2ZX07XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERyYWdIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuYDtcblxuY29uc3QgU3R5bGVkQWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgc3ZnIHtcbiAgICAmOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvckFjdGl2ZX07XG4gICAgfVxuICB9XG5cbiAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlckxpbmUgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDFweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3B9O1xuICBtYXJnaW4tdG9wOiA4cHg7XG5gO1xuXG5leHBvcnQgY29uc3QgQ29sb3JTd2F0Y2ggPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY3VzdG9tLXBhbGV0dGVfX3N3YXRjaCdcbn0pYFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLmNvbG9yfTtcbiAgd2lkdGg6IDMycHg7XG4gIGhlaWdodDogMThweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAmOmhvdmVyIHtcbiAgICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmJveFNoYWRvd307XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRCdXR0b25Db250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tdG9wOiAxMXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBkaXJlY3Rpb246IHJ0bDtcbiAgcGFkZGluZzogMCAxMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkQWRkU3RlcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDExcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgcGFkZGluZzogMCAxMnB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dENvbG9yfTtcbiAgLmFkZGNvbG9yIHtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZElucHV0ID0gc3R5bGVkKElucHV0KS53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcH0pPHtcbiAgd2lkdGg6IHN0cmluZztcbiAgdGV4dEFsaWduOiBzdHJpbmc7XG59PmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGggPz8gJzEwMCUnfTtcbiAgdGV4dC1hbGlnbjogJHtwcm9wcyA9PiBwcm9wcy50ZXh0QWxpZ24gPz8gJ2VuZCd9O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAnbm9uZScgOiAnYWxsJyl9O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG5gO1xuXG5jb25zdCBJbnB1dFRleHQgPSBzdHlsZWQuZGl2LndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wfSk8e3dpZHRoOiBzdHJpbmc7IHRleHRBbGlnbjogc3RyaW5nfT5gXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXR9O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGggPz8gJzEwMCUnfTtcbiAgdGV4dC1hbGlnbjogJHtwcm9wcyA9PiBwcm9wcy50ZXh0QWxpZ24gPz8gJ2VuZCd9O1xuICBmb250LXNpemU6IDEwcHg7XG4gIHBhZGRpbmctbGVmdDogNHB4O1xuICBwYWRkaW5nLXJpZ2h0OiA0cHg7XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBhdXRvO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbmA7XG5cbnR5cGUgU29ydGFibGVJdGVtUHJvcHMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGNoaWxkcmVuOiAobGlzdGVuZXJzOiBhbnkpID0+IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBpc1NvcnRpbmc6IGJvb2xlYW47XG59O1xuXG5jb25zdCBTb3J0YWJsZUl0ZW0gPSAoe2lkLCBjaGlsZHJlbiwgaXNTb3J0aW5nfTogU29ydGFibGVJdGVtUHJvcHMpID0+IHtcbiAgY29uc3Qge2F0dHJpYnV0ZXMsIGxpc3RlbmVycywgc2V0Tm9kZVJlZiwgdHJhbnNmb3JtLCB0cmFuc2l0aW9uLCBpc0RyYWdnaW5nfSA9IHVzZVNvcnRhYmxlKHtpZH0pO1xuICBjb25zdCBzdHlsZSA9IHtcbiAgICB0cmFuc2Zvcm06IENTUy5UcmFuc2Zvcm0udG9TdHJpbmcodHJhbnNmb3JtKSxcbiAgICB0cmFuc2l0aW9uLFxuICAgIHpJbmRleDogaXNEcmFnZ2luZyA/IDEgOiAwXG4gIH07XG4gIHJldHVybiAoXG4gICAgPENvbG9yUGFsZXR0ZUl0ZW1cbiAgICAgIHJlZj17c2V0Tm9kZVJlZn1cbiAgICAgIHN0eWxlPXtzdHlsZX1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnY3VzdG9tLXBhbGV0dGVfX3NvcnRhYmxlLWl0ZW1zJywge3NvcnRpbmc6IGlzU29ydGluZyB8fCBpc0RyYWdnaW5nfSl9XG4gICAgICB7Li4uYXR0cmlidXRlc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW4obGlzdGVuZXJzKX1cbiAgICA8L0NvbG9yUGFsZXR0ZUl0ZW0+XG4gICk7XG59O1xuXG50eXBlIFdyYXBwZWRTb3J0YWJsZUNvbnRhaW5lclByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBvblNvcnRFbmQ6IChldmVudDogRHJhZ0VuZEV2ZW50KSA9PiB2b2lkO1xuICBvblNvcnRTdGFydDogKCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IFdyYXBwZWRTb3J0YWJsZUNvbnRhaW5lciA9ICh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG9uU29ydEVuZCxcbiAgb25Tb3J0U3RhcnRcbn06IFdyYXBwZWRTb3J0YWJsZUNvbnRhaW5lclByb3BzKSA9PiB7XG4gIGNvbnN0IHNlbnNvcnMgPSB1c2VTZW5zb3JzKHVzZVNlbnNvcihQb2ludGVyU2Vuc29yKSwgdXNlU2Vuc29yKEtleWJvYXJkU2Vuc29yKSk7XG4gIHJldHVybiAoXG4gICAgPERuZENvbnRleHRcbiAgICAgIHNlbnNvcnM9e3NlbnNvcnN9XG4gICAgICBjb2xsaXNpb25EZXRlY3Rpb249e2Nsb3Nlc3RDZW50ZXJ9XG4gICAgICBvbkRyYWdFbmQ9e29uU29ydEVuZH1cbiAgICAgIG9uRHJhZ1N0YXJ0PXtvblNvcnRTdGFydH1cbiAgICA+XG4gICAgICA8U29ydGFibGVDb250ZXh0XG4gICAgICAgIGl0ZW1zPXtSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChfLCBpbmRleCkgPT4gYCR7aW5kZXh9YCkgfHwgW119XG4gICAgICAgIHN0cmF0ZWd5PXt2ZXJ0aWNhbExpc3RTb3J0aW5nU3RyYXRlZ3l9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWV9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgIDwvRG5kQ29udGV4dD5cbiAgKTtcbn07XG5cbnR5cGUgRHJhZ0hhbmRsZVByb3BzID0gUHJvcHNXaXRoQ2hpbGRyZW48e2NsYXNzTmFtZT86IHN0cmluZ30+O1xuY29uc3QgRHJhZ0hhbmRsZSA9ICh7Y2xhc3NOYW1lLCBjaGlsZHJlbiwgLi4ubGlzdGVuZXJzfTogRHJhZ0hhbmRsZVByb3BzKSA9PiAoXG4gIDxTdHlsZWREcmFnSGFuZGxlIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB7Li4ubGlzdGVuZXJzfT5cbiAgICB7Y2hpbGRyZW59XG4gIDwvU3R5bGVkRHJhZ0hhbmRsZT5cbik7XG5cbmV4cG9ydCB0eXBlIENvbG9yUGFsZXR0ZUlucHV0UHJvcHMgPSB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIG9uQ2hhbmdlOiAodmFsOiB1bmtub3duKSA9PiB2b2lkO1xuICBpZDogc3RyaW5nO1xuICB3aWR0aDogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbiAgZWRpdGFibGU6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgQ29sb3JQYWxldHRlSW5wdXQgPSAoe1xuICB2YWx1ZSxcbiAgb25DaGFuZ2UsXG4gIGlkLFxuICB3aWR0aCxcbiAgdGV4dEFsaWduLFxuICBlZGl0YWJsZVxufTogQ29sb3JQYWxldHRlSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCBbc3RhdGVWYWx1ZSwgc2V0VmFsdWVdID0gdXNlU3RhdGUodmFsdWUpO1xuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRWYWx1ZSh2YWx1ZSk7XG4gIH0sIFt2YWx1ZV0pO1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZUNhbGxiYWNrKFxuICAgIGUgPT4ge1xuICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHtcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfRU5URVI6XG4gICAgICAgIGNhc2UgS2V5RXZlbnQuRE9NX1ZLX1JFVFVSTjpcbiAgICAgICAgICBvbkNoYW5nZShzdGF0ZVZhbHVlKTtcbiAgICAgICAgICBpZiAoaW5wdXRSZWYgIT09IG51bGwpIHtcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIGlucHV0UmVmPy5jdXJyZW50LmJsdXIoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSxcbiAgICBbb25DaGFuZ2UsIHN0YXRlVmFsdWVdXG4gICk7XG5cbiAgY29uc3QgX29uQ2hhbmdlID0gdXNlQ2FsbGJhY2soZSA9PiBzZXRWYWx1ZShlLnRhcmdldC52YWx1ZSksIFtzZXRWYWx1ZV0pO1xuICBjb25zdCBvbkJsdXIgPSB1c2VDYWxsYmFjaygoKSA9PiBvbkNoYW5nZShzdGF0ZVZhbHVlKSwgW29uQ2hhbmdlLCBzdGF0ZVZhbHVlXSk7XG5cbiAgcmV0dXJuIGVkaXRhYmxlID8gKFxuICAgIDxTdHlsZWRJbnB1dFxuICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgIGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWhleF9faW5wdXRcIlxuICAgICAgdmFsdWU9e3N0YXRlVmFsdWV9XG4gICAgICBvbkNoYW5nZT17X29uQ2hhbmdlfVxuICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICBvbktleURvd249e29uS2V5RG93bn1cbiAgICAgIGlkPXtpZH1cbiAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgIHRleHRBbGlnbj17dGV4dEFsaWdufVxuICAgICAgc2Vjb25kYXJ5XG4gICAgLz5cbiAgKSA6IChcbiAgICA8SW5wdXRUZXh0IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWhleF9faW5wdXRfX3RleHRcIiB3aWR0aD17d2lkdGh9IHRleHRBbGlnbj17dGV4dEFsaWdufT5cbiAgICAgIHt2YWx1ZX1cbiAgICA8L0lucHV0VGV4dD5cbiAgKTtcbn07XG5cbmNvbnN0IERhc2ggPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogNnB4O1xuICBib3JkZXItdG9wOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICBtYXJnaW4tbGVmdDogNHB4O1xuICBtYXJnaW4tcmlnaHQ6IDRweDtcbmA7XG5cbmNvbnN0IFN0eWxlZFJhbmdlSW5wdXQgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogMTJweDtcbmA7XG5cbmNvbnN0IFN0eWxlZENvbG9ySGV4SW5wdXQgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tbGVmdDogMTJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBFZGl0YWJsZUNvbG9yUmFuZ2U6IFJlYWN0LkZDPEVkaXRhYmxlQ29sb3JSYW5nZVByb3BzPiA9ICh7XG4gIGl0ZW0sXG4gIGlzTGFzdCxcbiAgaW5kZXgsXG4gIGVkaXRDb2xvck1hcCxcbiAgZWRpdGFibGVcbn0pID0+IHtcbiAgY29uc3QgaGFzSW5wdXRzID0gQXJyYXkuaXNBcnJheShpdGVtPy5pbnB1dHMpO1xuICBjb25zdCBsZWZ0SW5wdXQgPSBoYXNJbnB1dHMgPyBpdGVtLmlucHV0c1swXSA6IHVuZGVmaW5lZDtcbiAgY29uc3QgcmlnaHRJbnB1dCA9IGhhc0lucHV0cyA/IGl0ZW0uaW5wdXRzWzFdIDogdW5kZWZpbmVkO1xuICBjb25zdCBub01pbkJvdW5kID0gIU51bWJlci5pc0Zpbml0ZShsZWZ0SW5wdXQpICYmIGluZGV4ID09PSAwO1xuICBjb25zdCBub01heEJvdW5kID0gIU51bWJlci5pc0Zpbml0ZShyaWdodElucHV0KSAmJiBpc0xhc3Q7XG4gIGNvbnN0IG9uQ2hhbmdlTGVmdCA9IHVzZUNhbGxiYWNrKFxuICAgIHZhbCA9PiB7XG4gICAgICBpZiAoZWRpdGFibGUgJiYgZWRpdENvbG9yTWFwKSBlZGl0Q29sb3JNYXAocGFyc2VGbG9hdCh2YWwpLCBpbmRleCAtIDEpO1xuICAgIH0sXG4gICAgW2VkaXRDb2xvck1hcCwgaW5kZXgsIGVkaXRhYmxlXVxuICApO1xuICBjb25zdCBvbkNoYW5nZVJpZ2h0ID0gdXNlQ2FsbGJhY2soXG4gICAgdmFsID0+IHtcbiAgICAgIGlmIChlZGl0YWJsZSAmJiBlZGl0Q29sb3JNYXApIGVkaXRDb2xvck1hcChwYXJzZUZsb2F0KHZhbCksIGluZGV4KTtcbiAgICB9LFxuICAgIFtlZGl0Q29sb3JNYXAsIGluZGV4LCBlZGl0YWJsZV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRSYW5nZUlucHV0PlxuICAgICAgPENvbG9yUGFsZXR0ZUlucHV0XG4gICAgICAgIHZhbHVlPXtub01pbkJvdW5kID8gJ0xlc3MnIDogU3RyaW5nKGxlZnRJbnB1dCA/PyAnJyl9XG4gICAgICAgIGlkPXtgY29sb3ItcGFsZXR0ZS1pbnB1dC0ke2luZGV4fS1sZWZ0YH1cbiAgICAgICAgd2lkdGg9XCI1NHB4XCJcbiAgICAgICAgdGV4dEFsaWduPVwiZW5kXCJcbiAgICAgICAgZWRpdGFibGU9e25vTWluQm91bmQgPyBmYWxzZSA6IGVkaXRhYmxlfVxuICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2VMZWZ0fVxuICAgICAgLz5cbiAgICAgIDxEYXNoIC8+XG4gICAgICA8Q29sb3JQYWxldHRlSW5wdXRcbiAgICAgICAgdmFsdWU9e25vTWF4Qm91bmQgPyAnTW9yZScgOiBTdHJpbmcocmlnaHRJbnB1dCA/PyAnJyl9XG4gICAgICAgIGlkPXtgY29sb3ItcGFsZXR0ZS1pbnB1dC0ke2luZGV4fS1yaWdodGB9XG4gICAgICAgIHdpZHRoPVwiNTRweFwiXG4gICAgICAgIHRleHRBbGlnbj1cImVuZFwiXG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZVJpZ2h0fVxuICAgICAgICBlZGl0YWJsZT17bm9NYXhCb3VuZCA/IGZhbHNlIDogZWRpdGFibGV9XG4gICAgICAvPlxuICAgIDwvU3R5bGVkUmFuZ2VJbnB1dD5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBBZGRDb2xvclN0b3AgPSAoe29uQ29sb3JBZGQsIEljb25Db21wb25lbnR9KSA9PiAoXG4gIDxTdHlsZWRBY3Rpb24gb25DbGljaz17b25Db2xvckFkZH0gY2xhc3NOYW1lPVwiYWRkY29sb3JcIj5cbiAgICA8SWNvbkNvbXBvbmVudCBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgPC9TdHlsZWRBY3Rpb24+XG4pO1xuXG5leHBvcnQgY29uc3QgRGVsZXRlQ29sb3JTdG9wID0gKHtvbkNvbG9yRGVsZXRlLCBJY29uQ29tcG9uZW50fSkgPT4gKFxuICA8U3R5bGVkQWN0aW9uIG9uQ2xpY2s9e29uQ29sb3JEZWxldGV9IGNsYXNzTmFtZT1cInRyYXNoYmluXCI+XG4gICAgPEljb25Db21wb25lbnQgaGVpZ2h0PVwiMTRweFwiIC8+XG4gIDwvU3R5bGVkQWN0aW9uPlxuKTtcblxuZXhwb3J0IGNvbnN0IEN1c3RvbVBhbGV0dGVJbnB1dDogUmVhY3QuRkM8Q3VzdG9tUGFsZXR0ZUlucHV0UHJvcHM+ID0gKHtcbiAgaW5kZXgsXG4gIGlzU29ydGluZyxcbiAgY29sb3IsXG4gIGNvbG9yQnJlYWtzLFxuICBpbnB1dENvbG9ySGV4LFxuICBlZGl0Q29sb3JNYXBWYWx1ZSxcbiAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gIGRpc2FibGVBcHBlbmQsXG4gIGRpc2FibGVEZWxldGUsXG4gIG9uRGVsZXRlLFxuICBvbkFkZCxcbiAgb25Ub2dnbGVTa2V0Y2hlclxufSkgPT4ge1xuICBjb25zdCBvbkNsaWNrU3d0YWNoID0gdXNlQ2FsbGJhY2soKCkgPT4gb25Ub2dnbGVTa2V0Y2hlcihpbmRleCksIFtvblRvZ2dsZVNrZXRjaGVyLCBpbmRleF0pO1xuICBjb25zdCBvbkNvbG9ySW5wdXQgPSB1c2VDYWxsYmFjayh2ID0+IGlucHV0Q29sb3JIZXgoaW5kZXgsIHYpLCBbaW5wdXRDb2xvckhleCwgaW5kZXhdKTtcbiAgY29uc3Qgb25Db2xvckRlbGV0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IG9uRGVsZXRlKGluZGV4KSwgW29uRGVsZXRlLCBpbmRleF0pO1xuICBjb25zdCBvbkNvbG9yQWRkID0gdXNlQ2FsbGJhY2soKCkgPT4gb25BZGQoaW5kZXgpLCBbb25BZGQsIGluZGV4XSk7XG4gIGNvbnN0IHNob3dIZXhJbnB1dCA9ICFjb2xvckJyZWFrcztcblxuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUl0ZW0gaWQ9e2Ake2luZGV4fWB9IGlzU29ydGluZz17aXNTb3J0aW5nfT5cbiAgICAgIHtsaXN0ZW5lcnMgPT4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX2xlZnRcIj5cbiAgICAgICAgICAgIDxEcmFnSGFuZGxlIGNsYXNzTmFtZT1cImxheWVyX19kcmFnLWhhbmRsZVwiIHsuLi5saXN0ZW5lcnN9PlxuICAgICAgICAgICAgICA8YWN0aW9uSWNvbnMuc29ydCBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgICAgIDwvRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgIDxDb2xvclN3YXRjaCBjb2xvcj17Y29sb3J9IG9uQ2xpY2s9e29uQ2xpY2tTd3RhY2h9IC8+XG4gICAgICAgICAgICB7c2hvd0hleElucHV0ID8gKFxuICAgICAgICAgICAgICA8U3R5bGVkQ29sb3JIZXhJbnB1dD5cbiAgICAgICAgICAgICAgICA8Q29sb3JQYWxldHRlSW5wdXRcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtjb2xvci50b1VwcGVyQ2FzZSgpfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ29sb3JJbnB1dH1cbiAgICAgICAgICAgICAgICAgIGlkPXtgaW5wdXQtbGF5ZXItbGFiZWwtJHtpbmRleH1gfVxuICAgICAgICAgICAgICAgICAgZWRpdGFibGVcbiAgICAgICAgICAgICAgICAgIHRleHRBbGlnbj1cImxlZnRcIlxuICAgICAgICAgICAgICAgICAgd2lkdGg9XCI3MHB4XCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N0eWxlZENvbG9ySGV4SW5wdXQ+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHtjb2xvckJyZWFrcyAmJiBpbmRleCA8IGNvbG9yQnJlYWtzLmxlbmd0aCAmJiBpc051bWVyaWNDb2xvckJyZWFrcyhjb2xvckJyZWFrcykgPyAoXG4gICAgICAgICAgICAgIDxFZGl0YWJsZUNvbG9yUmFuZ2VcbiAgICAgICAgICAgICAgICBpdGVtPXtjb2xvckJyZWFrc1tpbmRleF19XG4gICAgICAgICAgICAgICAgaXNMYXN0PXtpbmRleCA9PT0gY29sb3JCcmVha3MubGVuZ3RoIC0gMX1cbiAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgICAgZWRpdENvbG9yTWFwPXtlZGl0Q29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICBlZGl0YWJsZVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1pbnB1dF9fcmlnaHRcIj5cbiAgICAgICAgICAgIHshZGlzYWJsZUFwcGVuZCA/IChcbiAgICAgICAgICAgICAgPEFkZENvbG9yU3RvcCBvbkNvbG9yQWRkPXtvbkNvbG9yQWRkfSBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5hZGR9IC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIHshZGlzYWJsZURlbGV0ZSA/IChcbiAgICAgICAgICAgICAgPERlbGV0ZUNvbG9yU3RvcCBvbkNvbG9yRGVsZXRlPXtvbkNvbG9yRGVsZXRlfSBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5kZWxldGV9IC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgICApfVxuICAgIDwvU29ydGFibGVJdGVtPlxuICApO1xufTtcblxuY29uc3QgU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcldyYXBwZXIgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY2F0ZWdvcmljYWwtdmFsdWUtcGlja2VyJ1xufSlgXG4gIHdpZHRoOiAxNTBweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuaW5wdXRDb2xvcn07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGNvbHVtbi1nYXA6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuYDtcblxudHlwZSBTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyUHJvcHMgPSB7bm9Cb3JkZXI6IGJvb2xlYW59O1xuY29uc3QgU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlciA9IHN0eWxlZC5kaXY8U3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlclByb3BzPmBcbiAgd2lkdGg6IGZpdC1jb250ZW50O1xuICBmb250LXNpemU6IDExcHg7XG4gIGJvcmRlci1ib3R0b206ICR7cHJvcHMgPT4gKHByb3BzLm5vQm9yZGVyID8gJycgOiAnMXB4IGRhc2hlZCcpfTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgbWF4LXdpZHRoOiAxMDBweDtcbmA7XG5cbnR5cGUgRHJvcGRvd25WYWx1ZXNXcmFwcGVyUHJvcHMgPSB7d2lkdGg6IG51bWJlcn07XG5jb25zdCBEcm9wZG93blZhbHVlc1dyYXBwZXIgPSBzdHlsZWQuZGl2PERyb3Bkb3duVmFsdWVzV3JhcHBlclByb3BzPmBcbiAgYm9yZGVyOiAwO1xuICB3aWR0aDogMTAwJTtcbiAgbGVmdDogMDtcbiAgei1pbmRleDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG5gO1xuXG50eXBlIFNlbGVjdGVkVmFsdWVzV3JhcHBlclByb3BzID0ge3dpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyfTtcbmNvbnN0IFNlbGVjdGVkVmFsdWVzV3JhcHBlciA9IHN0eWxlZChEcm9wZG93blZhbHVlc1dyYXBwZXIpPFNlbGVjdGVkVmFsdWVzV3JhcHBlclByb3BzPmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaGVpZ2h0fXB4O1xuICBvdmVyZmxvdzogYXV0bztcblxuICAuY3VzdG9tLXBhbGV0dGUtY2hpY2tsZXRlZC1pbnB1dCB7XG4gICAgcGFkZGluZzogOHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERyb3Bkb3duSGVhZGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dENvbG9yfTtcbiAgcGFkZGluZzogMCA4cHg7XG4gIGZvbnQtc2l6ZTogMTBweDtcblxuICAuYnV0dG9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRvb2x0aXBDb250ZW50ID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZzogOHB4O1xuICB3aWR0aDogMTUwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcblxuICBkaXYge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgfVxuYDtcblxuY29uc3QgTlVNQkVSX1ZBTFVFU19JTl9UT09MVElQID0gMTA7XG5cbmNvbnN0IENhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0ID0gUmVhY3QuY3JlYXRlQ29udGV4dCh7XG4gIG9uU2VsZWN0UmVzdDogKCkgPT4gbnVsbCxcbiAgb25SZXNldDogKCkgPT4gbnVsbFxufSk7XG5cbi8vIENhdGVnb3JpY2FsIHZhbHVlcyBkcm9wZG93bmxpc3Q6XG4vLyBleHRlbmRpbmcgRHJvcGRvd25MaXN0IGFuZCBhZGRpbmcgJ1NlbGVjdCB0aGUgUmVzdCcgYW5kICdSZXNldCcgYnV0dG9uc1xuY2xhc3MgTW9kaWZpZWREcm9wZG93bkxpc3QgZXh0ZW5kcyBEcm9wZG93bkxpc3Qge1xuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPENhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICAgIHtjb250ZXh0ID0+IChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIDxTdHlsZWREcm9wZG93bkhlYWRlcj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIGxpbmsgc2l6ZT1cInNtYWxcIiBvbkNsaWNrPXtjb250ZXh0Lm9uU2VsZWN0UmVzdH0+XG4gICAgICAgICAgICAgICAgICBTZWxlY3QgdGhlIFJlc3RcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8QnV0dG9uIGxpbmsgc2l6ZT1cInNtYWxcIiBvbkNsaWNrPXtjb250ZXh0Lm9uUmVzZXR9PlxuICAgICAgICAgICAgICAgICAgUmVzZXRcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgPC9TdHlsZWREcm9wZG93bkhlYWRlcj5cbiAgICAgICAgICAgICAgPERpdmlkZXJMaW5lIC8+XG4gICAgICAgICAgICAgIDxEcm9wZG93bkxpc3Qgey4uLnRoaXMucHJvcHN9IC8+XG4gICAgICAgICAgICA8Lz5cbiAgICAgICAgICApfVxuICAgICAgICA8L0NhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBDYXRlZ29yaWNhbFNlbGVjdG9yUHJvcHMgPSB7XG4gIGluZGV4OiBudW1iZXI7XG4gIHNlbGVjdGVkVmFsdWVzOiAoc3RyaW5nIHwgbnVtYmVyIHwgbnVsbClbXTtcbiAgYWxsVmFsdWVzOiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBhZGRDb2xvck1hcFZhbHVlPzogKHY6IChudW1iZXIgfCBzdHJpbmcgfCBudWxsKVtdLCBpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlbW92ZUNvbG9yTWFwVmFsdWU/OiAodjogbnVtYmVyIHwgc3RyaW5nLCBpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlc2V0Q29sb3JNYXBWYWx1ZT86IChpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPzogKGk6IG51bWJlcikgPT4gdm9pZDtcbiAgZWRpdGFibGU/OiBib29sZWFuO1xufTtcblxuLy8gQ2F0ZWdvcmljYWwgdmFsdWVzIHNlbGVjdG9yIGZvciBlZGl0aW5nIGNhdGVnb3JpY2FsIHZhbHVlc1xuZXhwb3J0IGNvbnN0IENhdGVnb3JpY2FsU2VsZWN0b3I6IFJlYWN0LkZDPENhdGVnb3JpY2FsU2VsZWN0b3JQcm9wcz4gPSAoe1xuICBpbmRleCxcbiAgc2VsZWN0ZWRWYWx1ZXMsXG4gIGFsbFZhbHVlcyxcbiAgYWRkQ29sb3JNYXBWYWx1ZSxcbiAgcmVtb3ZlQ29sb3JNYXBWYWx1ZSxcbiAgcmVzZXRDb2xvck1hcFZhbHVlLFxuICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZSxcbiAgZWRpdGFibGUgPSB0cnVlXG59OiBDYXRlZ29yaWNhbFNlbGVjdG9yUHJvcHMpID0+IHtcbiAgY29uc3QgW3Nob3dUeXBlYWhlYWQsIHNldFNob3dUeXBlYWhlYWRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gIGNvbnN0IG9uT3B0aW9uU2VsZWN0ZWQgPSB1c2VDYWxsYmFjayhcbiAgICB2YWx1ZSA9PiB7XG4gICAgICBjb25zdCBwcmV2aW91c1NlbGVjdGVkID0gdG9BcnJheShzZWxlY3RlZFZhbHVlcyk7XG4gICAgICBjb25zdCBpdGVtcyA9IHVuaXEocHJldmlvdXNTZWxlY3RlZC5jb25jYXQodG9BcnJheSh2YWx1ZSkpKTtcbiAgICAgIGFkZENvbG9yTWFwVmFsdWU/LihpdGVtcywgaW5kZXgpO1xuICAgIH0sXG4gICAgW3NlbGVjdGVkVmFsdWVzLCBpbmRleCwgYWRkQ29sb3JNYXBWYWx1ZV1cbiAgKTtcblxuICBjb25zdCBvbk9wZW5Ecm9wZG93biA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRTaG93VHlwZWFoZWFkKHRydWUpO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25DbG9zZURyb3Bkb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNob3dUeXBlYWhlYWQoZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3Qgb25SZW1vdmVJdGVtID0gdXNlQ2FsbGJhY2soXG4gICAgdmFsdWUgPT4ge1xuICAgICAgcmVtb3ZlQ29sb3JNYXBWYWx1ZT8uKHZhbHVlLCBpbmRleCk7XG4gICAgfSxcbiAgICBbaW5kZXgsIHJlbW92ZUNvbG9yTWFwVmFsdWVdXG4gICk7XG5cbiAgY29uc3Qgb25SZXNldCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICByZXNldENvbG9yTWFwVmFsdWU/LihpbmRleCk7XG4gICAgc2V0U2hvd1R5cGVhaGVhZChmYWxzZSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtyZXNldENvbG9yTWFwVmFsdWUsIGluZGV4XSk7XG5cbiAgY29uc3Qgb25TZWxlY3RSZXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPy4oaW5kZXgpO1xuICAgIHNldFNob3dUeXBlYWhlYWQoZmFsc2UpO1xuICAgIHJldHVybiBudWxsO1xuICB9LCBbc2VsZWN0UmVzdENvbG9yTWFwVmFsdWUsIGluZGV4XSk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcldyYXBwZXI+XG4gICAgICB7ZWRpdGFibGUgJiYgPEFkZCBoZWlnaHQ9XCIxMnB4XCIgb25DbGljaz17b25PcGVuRHJvcGRvd259IC8+fVxuICAgICAgPFN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJcbiAgICAgICAgbm9Cb3JkZXI9e3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMCB8fCAhZWRpdGFibGV9XG4gICAgICAgIG9uQ2xpY2s9e29uT3BlbkRyb3Bkb3dufVxuICAgICAgICBkYXRhLXRpcFxuICAgICAgICBkYXRhLWZvcj17YGNhdGVnb3J5LXZhbHVlcy0ke2luZGV4fWB9XG4gICAgICA+XG4gICAgICAgIHtzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDBcbiAgICAgICAgICA/ICdBZGQgVmFsdWUnXG4gICAgICAgICAgOiBzZWxlY3RlZFZhbHVlcy5sZW5ndGggPT09IDFcbiAgICAgICAgICA/IHNlbGVjdGVkVmFsdWVzWzBdXG4gICAgICAgICAgOiBgJHtzZWxlY3RlZFZhbHVlcy5sZW5ndGh9IHNlbGVjdGVkYH1cbiAgICAgICAge3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICAgIDxUb29sdGlwIGlkPXtgY2F0ZWdvcnktdmFsdWVzLSR7aW5kZXh9YH0gcGxhY2U9XCJ0b3BcIiBpbnRlcmFjdGl2ZT17dHJ1ZX0+XG4gICAgICAgICAgICA8U3R5bGVkVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFZhbHVlcy5zbGljZSgwLCBOVU1CRVJfVkFMVUVTX0lOX1RPT0xUSVApLm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17aX0+e3ZhbHVlfTwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAge3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IE5VTUJFUl9WQUxVRVNfSU5fVE9PTFRJUCAmJiA8ZGl2Pi4uLjwvZGl2Pn1cbiAgICAgICAgICAgIDwvU3R5bGVkVG9vbHRpcENvbnRlbnQ+XG4gICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICApfVxuICAgICAgPC9TdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyPlxuICAgICAge2VkaXRhYmxlICYmIChcbiAgICAgICAgPFBvcnRhbGVkIGxlZnQ9ezB9IHRvcD17MH0gaXNPcGVuZWQ9e3Nob3dUeXBlYWhlYWR9IG9uQ2xvc2U9e29uQ2xvc2VEcm9wZG93bn0+XG4gICAgICAgICAge3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICAgICAgPFNlbGVjdGVkVmFsdWVzV3JhcHBlciB3aWR0aD17MjUwfSBoZWlnaHQ9ezIwMH0+XG4gICAgICAgICAgICAgIDxDaGlja2xldGVkSW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9eydjdXN0b20tcGFsZXR0ZS1jaGlja2xldGVkLWlucHV0J31cbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZFZhbHVlc31cbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17Jyd9XG4gICAgICAgICAgICAgICAgcmVtb3ZlSXRlbT17b25SZW1vdmVJdGVtfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG51bGx9XG4gICAgICAgICAgICAgICAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ9e251bGx9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L1NlbGVjdGVkVmFsdWVzV3JhcHBlcj5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxEcm9wZG93blZhbHVlc1dyYXBwZXIgd2lkdGg9ezI1MH0+XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7cG9zaXRpb246ICdyZWxhdGl2ZSd9fT5cbiAgICAgICAgICAgICAgPENhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LlByb3ZpZGVyXG4gICAgICAgICAgICAgICAgdmFsdWU9e3tcbiAgICAgICAgICAgICAgICAgIG9uUmVzZXQsXG4gICAgICAgICAgICAgICAgICBvblNlbGVjdFJlc3RcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3Nlcz17e1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRzOiAnbGlzdC1zZWxlY3RvcicsXG4gICAgICAgICAgICAgICAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICAgICAgICAgICAgICAgIGxpc3RJdGVtOiAnbGlzdF9faXRlbScsXG4gICAgICAgICAgICAgICAgICAgIGxpc3RBbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgb3B0aW9ucz17YWxsVmFsdWVzfVxuICAgICAgICAgICAgICAgICAgLy8gYWRkIHNhZmUgc3RyaW5nIGNhc3RpbmcgZm9yIHRoZSBUeXBlYWhlYWQsIHNvIGZ1enp5IHNlYXJjaCBuZXZlciByZWNlaXZlcyBub24tc3RyaW5ncywgcHJldmVudGluZyB0aGUgdG9Mb3dlckNhc2UgY3Jhc2hcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e28gPT4gU3RyaW5nKG8gPz8gJycpfVxuICAgICAgICAgICAgICAgICAgZmlsdGVyT3B0aW9uPXsoaW5wdXQsIG8pID0+IFN0cmluZyhvID8/ICcnKS5pbmNsdWRlcyhTdHJpbmcoaW5wdXQgPz8gJycpKX1cbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXsnU2VhcmNoJ31cbiAgICAgICAgICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e29uT3B0aW9uU2VsZWN0ZWR9XG4gICAgICAgICAgICAgICAgICBjdXN0b21MaXN0Q29tcG9uZW50PXtNb2RpZmllZERyb3Bkb3duTGlzdH1cbiAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXtMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgIHNlYXJjaGFibGU9e3RydWV9XG4gICAgICAgICAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17c2VsZWN0ZWRWYWx1ZXN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9DYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dC5Qcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvRHJvcGRvd25WYWx1ZXNXcmFwcGVyPlxuICAgICAgICA8L1BvcnRhbGVkPlxuICAgICAgKX1cbiAgICA8L1N0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJXcmFwcGVyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgQ2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXRQcm9wcyA9IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgaXNTb3J0aW5nOiBib29sZWFuO1xuICBjb2xvcjogSGV4Q29sb3I7XG4gIGNvbG9yTWFwPzogQ29sb3JNYXAgfCBudWxsO1xuICBhZGRDb2xvck1hcFZhbHVlOiAodjogKG51bWJlciB8IHN0cmluZyB8IG51bGwpW10sIGk6IG51bWJlcikgPT4gdm9pZDtcbiAgcmVtb3ZlQ29sb3JNYXBWYWx1ZTogKHY6IG51bWJlciB8IHN0cmluZywgaTogbnVtYmVyKSA9PiB2b2lkO1xuICByZXNldENvbG9yTWFwVmFsdWU6IChpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlOiAoaTogbnVtYmVyKSA9PiB2b2lkO1xuICBhY3Rpb25JY29ucz86IEFjdGlvbkljb25zO1xuICBvbkRlbGV0ZTogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uQWRkOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgb25Ub2dnbGVTa2V0Y2hlcjogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIGFsbFZhbHVlczogc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgZGlzYWJsZURlbGV0ZT86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgQ2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXQ6IFJlYWN0LkZDPENhdGVnb3JpY2FsQ3VzdG9tUGFsZXR0ZUlucHV0UHJvcHM+ID0gKHtcbiAgaW5kZXgsXG4gIGlzU29ydGluZyxcbiAgY29sb3IsXG4gIGNvbG9yTWFwLFxuICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgb25EZWxldGUsXG4gIGRpc2FibGVEZWxldGUsXG4gIG9uVG9nZ2xlU2tldGNoZXIsXG4gIGFkZENvbG9yTWFwVmFsdWUsXG4gIHJlbW92ZUNvbG9yTWFwVmFsdWUsXG4gIHJlc2V0Q29sb3JNYXBWYWx1ZSxcbiAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWUsXG4gIGFsbFZhbHVlc1xufTogQ2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXRQcm9wcykgPT4ge1xuICBjb25zdCBzZWxlY3RlZFZhbHVlczogKG51bWJlciB8IHN0cmluZyB8IG51bGwpW10gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoIWNvbG9yTWFwIHx8ICFjb2xvck1hcFtpbmRleF0pIHJldHVybiBbXTtcbiAgICBjb25zdCB2YWx1ZSA9IGNvbG9yTWFwW2luZGV4XVswXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogdmFsdWUgIT09IG51bGwgPyBbdmFsdWVdIDogW107XG4gICAgcmV0dXJuIHZhbHVlcztcbiAgfSwgW2NvbG9yTWFwLCBpbmRleF0pO1xuXG4gIGNvbnN0IG9uQ2xpY2tTd3RhY2ggPSB1c2VDYWxsYmFjaygoKSA9PiBvblRvZ2dsZVNrZXRjaGVyKGluZGV4KSwgW29uVG9nZ2xlU2tldGNoZXIsIGluZGV4XSk7XG4gIGNvbnN0IG9uQ29sb3JEZWxldGUgPSB1c2VDYWxsYmFjaygoKSA9PiBvbkRlbGV0ZShpbmRleCksIFtvbkRlbGV0ZSwgaW5kZXhdKTtcblxuICByZXR1cm4gKFxuICAgIDxTb3J0YWJsZUl0ZW0gaWQ9e2Ake2luZGV4fWB9IGlzU29ydGluZz17aXNTb3J0aW5nfT5cbiAgICAgIHtsaXN0ZW5lcnMgPT4gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX2xlZnRcIj5cbiAgICAgICAgICAgIDxEcmFnSGFuZGxlIGNsYXNzTmFtZT1cImxheWVyX19kcmFnLWhhbmRsZVwiIHsuLi5saXN0ZW5lcnN9PlxuICAgICAgICAgICAgICA8YWN0aW9uSWNvbnMuc29ydCBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgICAgIDwvRHJhZ0hhbmRsZT5cbiAgICAgICAgICAgIDxDb2xvclN3YXRjaCBjb2xvcj17Y29sb3J9IG9uQ2xpY2s9e29uQ2xpY2tTd3RhY2h9IC8+XG4gICAgICAgICAgICB7Y29sb3JNYXAgJiYgY29sb3JNYXBbaW5kZXhdICYmIChcbiAgICAgICAgICAgICAgPENhdGVnb3JpY2FsU2VsZWN0b3JcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFZhbHVlcz17c2VsZWN0ZWRWYWx1ZXN9XG4gICAgICAgICAgICAgICAgYWxsVmFsdWVzPXthbGxWYWx1ZXN9XG4gICAgICAgICAgICAgICAgYWRkQ29sb3JNYXBWYWx1ZT17YWRkQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICByZW1vdmVDb2xvck1hcFZhbHVlPXtyZW1vdmVDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgIHJlc2V0Q29sb3JNYXBWYWx1ZT17cmVzZXRDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPXtzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICBpbmRleD17aW5kZXh9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaW5wdXRfX3JpZ2h0XCI+XG4gICAgICAgICAgICB7IWRpc2FibGVEZWxldGUgPyAoXG4gICAgICAgICAgICAgIDxEZWxldGVDb2xvclN0b3Agb25Db2xvckRlbGV0ZT17b25Db2xvckRlbGV0ZX0gSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuZGVsZXRlfSAvPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICAgKX1cbiAgICA8L1NvcnRhYmxlSXRlbT5cbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBCb3R0b21BY3Rpb24gPSAoe29uQ2FuY2VsLCBvbkNvbmZpcm19KSA9PiAoXG4gIDxTdHlsZWRCdXR0b25Db250YWluZXI+XG4gICAgPEJ1dHRvbiBjbGFzc05hbWU9XCJjb25maXJtLWFwcGx5X19idXR0b25cIiBzbWFsbCBvbkNsaWNrPXtvbkNvbmZpcm19PlxuICAgICAgQ29uZmlybVxuICAgIDwvQnV0dG9uPlxuICAgIDxCdXR0b24gbGluayBzbWFsbCBvbkNsaWNrPXtvbkNhbmNlbH0+XG4gICAgICBDYW5jZWxcbiAgICA8L0J1dHRvbj5cbiAgPC9TdHlsZWRCdXR0b25Db250YWluZXI+XG4pO1xuXG5jb25zdCBTdHlsZWRDdXN0b21QYWxldHRlID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2N1c3RvbS1wYWxldHRlJ1xufSlgXG4gIG1hcmdpbi10b3A6IDhweDtcbmA7XG5cbmZ1bmN0aW9uIEN1c3RvbVBhbGV0dGVGYWN0b3J5KCk6IFJlYWN0LkZDPEN1c3RvbVBhbGV0dGVQcm9wcz4ge1xuICBjb25zdCBDdXN0b21QYWxldHRlOiBSZWFjdC5GQzxDdXN0b21QYWxldHRlUHJvcHM+ID0gKHtcbiAgICBvcmRpbmFsRG9tYWluLFxuICAgIGN1c3RvbVBhbGV0dGUsXG4gICAgc2V0Q29sb3JQYWxldHRlVUksXG4gICAgc2hvd1NrZXRjaGVyLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICAgIG9uQ2FuY2VsLFxuICAgIG9uQXBwbHlcbiAgfSkgPT4ge1xuICAgIGNvbnN0IFtpc1NvcnRpbmcsIHNldElzU29ydGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qge2NvbG9ycywgY29sb3JNYXB9ID0gY3VzdG9tUGFsZXR0ZTtcbiAgICBjb25zdCBjb2xvckJyZWFrcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PlxuICAgICAgICBjb2xvck1hcFxuICAgICAgICAgID8gY3VzdG9tUGFsZXR0ZS50eXBlID09PSAnY3VzdG9tJ1xuICAgICAgICAgICAgPyBjb2xvck1hcFRvQ29sb3JCcmVha3MoY29sb3JNYXApXG4gICAgICAgICAgICA6IGNvbG9yTWFwVG9DYXRlZ29yaWNhbENvbG9yQnJlYWtzKGNvbG9yTWFwKVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgIFtjdXN0b21QYWxldHRlLnR5cGUsIGNvbG9yTWFwXVxuICAgICk7XG5cbiAgICBjb25zdCBvblBpY2tlclVwZGF0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgY29sb3IgPT4ge1xuICAgICAgICBpZiAoY29sb3IgJiYgTnVtYmVyLmlzRmluaXRlKHNob3dTa2V0Y2hlcikpIHtcbiAgICAgICAgICBjb25zdCBuZXdDdXN0b21QYWxldHRlID0gdXBkYXRlQ3VzdG9tUGFsZXR0ZUNvbG9yKFxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZSxcbiAgICAgICAgICAgIE51bWJlcihzaG93U2tldGNoZXIpLFxuICAgICAgICAgICAgY29sb3IuaGV4XG4gICAgICAgICAgKTtcbiAgICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgICBjdXN0b21QYWxldHRlOiBuZXdDdXN0b21QYWxldHRlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2hvd1NrZXRjaGVyLCBzZXRDb2xvclBhbGV0dGVVSV1cbiAgICApO1xuICAgIGNvbnN0IG9uVG9nZ2xlU2tldGNoZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgIHZhbCA9PiB7XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBzaG93U2tldGNoZXI6IHZhbFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcbiAgICBjb25zdCBvbkRlbGV0ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgaW5kZXggPT4ge1xuICAgICAgICBjb25zdCBuZXdDdXN0b21QYWxldHRlID0gcmVtb3ZlQ3VzdG9tUGFsZXR0ZUNvbG9yKGN1c3RvbVBhbGV0dGUsIGluZGV4KTtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW2N1c3RvbVBhbGV0dGUsIHNldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkFkZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgaW5kZXggPT4ge1xuICAgICAgICAvLyBhZGQgY29sb3IgYXQgdGhlIGVuZFxuICAgICAgICBjb25zdCBuZXdDdXN0b21QYWxldHRlID0gYWRkQ3VzdG9tUGFsZXR0ZUNvbG9yKGN1c3RvbVBhbGV0dGUsIGluZGV4KTtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW2N1c3RvbVBhbGV0dGUsIHNldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkFkZENhdGVnb3JpY2FsU3RlcCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uQWRkKGNvbG9ycy5sZW5ndGggLSAxKTtcbiAgICB9LCBbY29sb3JzLmxlbmd0aCwgb25BZGRdKTtcblxuICAgIGNvbnN0IG9uU3dhdGNoQ2xvc2UgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvblRvZ2dsZVNrZXRjaGVyKGZhbHNlKTtcbiAgICB9LCBbb25Ub2dnbGVTa2V0Y2hlcl0pO1xuXG4gICAgY29uc3Qgb25Db25maXJtID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBvbkNhbmNlbCgpO1xuICAgICAgICBvbkFwcGx5KGV2ZW50KTtcbiAgICAgIH0sXG4gICAgICBbb25DYW5jZWwsIG9uQXBwbHldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uU29ydEVuZCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGV2ZW50OiBEcmFnRW5kRXZlbnQpID0+IHtcbiAgICAgICAgY29uc3Qge2FjdGl2ZSwgb3Zlcn0gPSBldmVudDtcbiAgICAgICAgaWYgKG92ZXIgJiYgYWN0aXZlLmlkICE9PSBvdmVyLmlkKSB7XG4gICAgICAgICAgY29uc3Qgb2xkSW5kZXggPSBjb2xvcnMuZmluZEluZGV4KChfLCBpbmRleCkgPT4gYCR7aW5kZXh9YCA9PT0gYWN0aXZlLmlkKTtcbiAgICAgICAgICBjb25zdCBuZXdJbmRleCA9IGNvbG9ycy5maW5kSW5kZXgoKF8sIGluZGV4KSA9PiBgJHtpbmRleH1gID09PSBvdmVyLmlkKTtcbiAgICAgICAgICBjb25zdCBuZXdDdXN0b21QYWxldHRlID0gc29ydEN1c3RvbVBhbGV0dGVDb2xvcihjdXN0b21QYWxldHRlLCBvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBzZXRJc1NvcnRpbmcoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIFtjb2xvcnMsIGN1c3RvbVBhbGV0dGUsIHNldElzU29ydGluZywgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uU29ydFN0YXJ0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNTb3J0aW5nKHRydWUpO1xuICAgIH0sIFtzZXRJc1NvcnRpbmddKTtcblxuICAgIGNvbnN0IGlucHV0Q29sb3JIZXggPSB1c2VDYWxsYmFjayhcbiAgICAgIChpbmRleCwgdmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgbmV3Q3VzdG9tUGFsZXR0ZSA9IHVwZGF0ZUN1c3RvbVBhbGV0dGVDb2xvcihjdXN0b21QYWxldHRlLCBpbmRleCwgdmFsdWUpO1xuICAgICAgICAvLyBzZXRDb2xvcnMobmV3Q29sb3JzKTtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW2N1c3RvbVBhbGV0dGUsIHNldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG5cbiAgICBjb25zdCBlZGl0Q29sb3JNYXBWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKHZhbHVlLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWN1c3RvbVBhbGV0dGUuY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV3Q29sb3JNYXAgPSBjdXN0b21QYWxldHRlLmNvbG9yTWFwLm1hcChcbiAgICAgICAgICAoY20sIGkpID0+IChpID09PSBpbmRleCA/IFt2YWx1ZSwgY21bMV1dIDogY20pIGFzIFtzdHJpbmcsIHN0cmluZ11cbiAgICAgICAgKTtcblxuICAgICAgICAvLyBzb3J0IHRoZSB1c2VyIGlucHV0cyBpbiBjYXNlIHRoZSBicmVhayB2YWx1ZXMgYXJlIG5vdCBvcmRlcmVkXG4gICAgICAgIGNvbnN0IGJyZWFrcyA9IG5ld0NvbG9yTWFwXG4gICAgICAgICAgLm1hcChjbSA9PiBjbVswXSBhcyBzdHJpbmcgfCBudWxsKVxuICAgICAgICAgIC5zbGljZSgwLCAtMSlcbiAgICAgICAgICAuc29ydCgoYSwgYikgPT4gTnVtYmVyKGEpIC0gTnVtYmVyKGIpKVxuICAgICAgICAgIC5jb25jYXQobnVsbCk7XG4gICAgICAgIGNvbnN0IHNvcnRlZE5ld0NvbG9yTWFwOiBDb2xvck1hcCA9IG5ld0NvbG9yTWFwLm1hcCgoY20sIGkpID0+IFticmVha3NbaV0sIGNtWzFdXSk7XG5cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogc29ydGVkTmV3Q29sb3JNYXBcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSSwgY3VzdG9tUGFsZXR0ZV1cbiAgICApO1xuXG4gICAgLy8gcmVtb3ZlIGEgc2VsZWN0ZWQgY2F0ZWdvcnkgaXRlbSBmcm9tIGEgY29sb3IgbWFwXG4gICAgY29uc3QgcmVtb3ZlQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFjb2xvck1hcCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZToge1xuICAgICAgICAgICAgLi4uY3VzdG9tUGFsZXR0ZSxcbiAgICAgICAgICAgIGNvbG9yTWFwOiByZW1vdmVDYXRlZ29yaWNhbFZhbHVlRnJvbUNvbG9yTWFwKGNvbG9yTWFwLCBpdGVtLCBpbmRleClcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSSwgY3VzdG9tUGFsZXR0ZSwgY29sb3JNYXBdXG4gICAgKTtcblxuICAgIC8vIGFkZCBzZWxlY3RlZCBjYXRlZ29yaWNhbCBpdGVtcyB0byBhIGNvbG9yIG1hcFxuICAgIGNvbnN0IGFkZENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGl0ZW1zLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IGFkZENhdGVnb3JpY2FsVmFsdWVzVG9Db2xvck1hcChjb2xvck1hcCwgaXRlbXMsIGluZGV4KVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlLCBjb2xvck1hcF1cbiAgICApO1xuXG4gICAgLy8gcmVzZXQgYSBjb2xvciBtYXBcbiAgICBjb25zdCByZXNldENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgaW5kZXggPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IHJlc2V0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgoY29sb3JNYXAsIGluZGV4KVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlLCBjb2xvck1hcF1cbiAgICApO1xuXG4gICAgLy8gc2VsZWN0IHRoZSByZXN0IHZhbHVlcyBmb3IgYSBjb2xvciBtYXBcbiAgICBjb25zdCBzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcCA9IHVzZUNhbGxiYWNrKFxuICAgICAgaW5kZXggPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IHNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleChjb2xvck1hcCwgaW5kZXgsIG9yZGluYWxEb21haW4pXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JQYWxldHRlVUksIGN1c3RvbVBhbGV0dGUsIGNvbG9yTWFwLCBvcmRpbmFsRG9tYWluXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEN1c3RvbVBhbGV0dGU+XG4gICAgICAgIDxXcmFwcGVkU29ydGFibGVDb250YWluZXJcbiAgICAgICAgICBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZV9fc29ydGFibGUtY29udGFpbmVyXCJcbiAgICAgICAgICBvblNvcnRFbmQ9e29uU29ydEVuZH1cbiAgICAgICAgICBvblNvcnRTdGFydD17b25Tb3J0U3RhcnR9XG4gICAgICAgID5cbiAgICAgICAgICB7Y29sb3JzLm1hcCgoY29sb3IsIGluZGV4KSA9PlxuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZS50eXBlID09PSAnY3VzdG9tJyA/IChcbiAgICAgICAgICAgICAgPEN1c3RvbVBhbGV0dGVJbnB1dFxuICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgY29sb3JCcmVha3M9e2NvbG9yQnJlYWtzfVxuICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICBpc1NvcnRpbmc9e2lzU29ydGluZ31cbiAgICAgICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICAgICAgaW5wdXRDb2xvckhleD17aW5wdXRDb2xvckhleH1cbiAgICAgICAgICAgICAgICBkaXNhYmxlQXBwZW5kPXtjb2xvcnMubGVuZ3RoID49IDIwfVxuICAgICAgICAgICAgICAgIGRpc2FibGVEZWxldGU9e2NvbG9ycy5sZW5ndGggPD0gMn1cbiAgICAgICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgICAgICAgb25BZGQ9e29uQWRkfVxuICAgICAgICAgICAgICAgIG9uRGVsZXRlPXtvbkRlbGV0ZX1cbiAgICAgICAgICAgICAgICBvblRvZ2dsZVNrZXRjaGVyPXtvblRvZ2dsZVNrZXRjaGVyfVxuICAgICAgICAgICAgICAgIGVkaXRDb2xvck1hcFZhbHVlPXtlZGl0Q29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIG9yZGluYWxEb21haW4gJiYgKFxuICAgICAgICAgICAgICAgIDxDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dFxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGNvbG9yTWFwPXtjb2xvck1hcH1cbiAgICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgIGlzU29ydGluZz17aXNTb3J0aW5nfVxuICAgICAgICAgICAgICAgICAgY29sb3I9e2NvbG9yfVxuICAgICAgICAgICAgICAgICAgYWN0aW9uSWNvbnM9e2FjdGlvbkljb25zfVxuICAgICAgICAgICAgICAgICAgb25BZGQ9e29uQWRkfVxuICAgICAgICAgICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZURlbGV0ZT17Y29sb3JzLmxlbmd0aCA8PSAyfVxuICAgICAgICAgICAgICAgICAgb25Ub2dnbGVTa2V0Y2hlcj17b25Ub2dnbGVTa2V0Y2hlcn1cbiAgICAgICAgICAgICAgICAgIGFkZENvbG9yTWFwVmFsdWU9e2FkZENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIHJlbW92ZUNvbG9yTWFwVmFsdWU9e3JlbW92ZUNhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIHJlc2V0Q29sb3JNYXBWYWx1ZT17cmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICAgICAgICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZT17c2VsZWN0UmVzdENhdGVnb3JpY2FsQ29sb3JNYXB9XG4gICAgICAgICAgICAgICAgICBhbGxWYWx1ZXM9e29yZGluYWxEb21haW59XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICl9XG4gICAgICAgIDwvV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyPlxuICAgICAgICB7Y3VzdG9tUGFsZXR0ZS50eXBlID09PSAnY3VzdG9tT3JkaW5hbCcgJiYgKFxuICAgICAgICAgIDxTdHlsZWRBZGRTdGVwQ29udGFpbmVyPlxuICAgICAgICAgICAgPEFkZENvbG9yU3RvcCBvbkNvbG9yQWRkPXtvbkFkZENhdGVnb3JpY2FsU3RlcH0gSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuYWRkfSAvPlxuICAgICAgICAgICAgPEJ1dHRvbiBsaW5rIHNpemU9XCJzbWFsXCIgb25DbGljaz17b25BZGRDYXRlZ29yaWNhbFN0ZXB9PlxuICAgICAgICAgICAgICBBZGQgU3RlcFxuICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgPC9TdHlsZWRBZGRTdGVwQ29udGFpbmVyPlxuICAgICAgICApfVxuICAgICAgICA8RGl2aWRlckxpbmUgLz5cbiAgICAgICAgey8qIENhbmNlbCBvciBDb25maXJtIEJ1dHRvbnMgKi99XG4gICAgICAgIDxCb3R0b21BY3Rpb24gb25DYW5jZWw9e29uQ2FuY2VsfSBvbkNvbmZpcm09e29uQ29uZmlybX0gLz5cbiAgICAgICAgPFBvcnRhbGVkIGlzT3BlbmVkPXtzaG93U2tldGNoZXIgIT09IGZhbHNlfSBsZWZ0PXsyODB9IHRvcD17LTMwMH0gb25DbG9zZT17b25Td2F0Y2hDbG9zZX0+XG4gICAgICAgICAgPEN1c3RvbVBpY2tlciBjb2xvcj17Y29sb3JzW051bWJlcihzaG93U2tldGNoZXIpXX0gb25DaGFuZ2U9e29uUGlja2VyVXBkYXRlfSAvPlxuICAgICAgICA8L1BvcnRhbGVkPlxuICAgICAgPC9TdHlsZWRDdXN0b21QYWxldHRlPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIEN1c3RvbVBhbGV0dGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEN1c3RvbVBhbGV0dGVGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxVQUFVLE1BQU0sWUFBWTtBQUNuQyxPQUFPQyxLQUFLLElBR1ZDLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsUUFBUSxRQUNILE9BQU87QUFDZCxPQUFPQyxJQUFJLE1BQU0sYUFBYTtBQUM5QixTQUNFQyxVQUFVLEVBQ1ZDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxhQUFhLEVBQ2JDLFNBQVMsRUFDVEMsVUFBVSxRQUVMLGVBQWU7QUFDdEIsU0FBUUMsZUFBZSxFQUFFQyxXQUFXLEVBQUVDLDJCQUEyQixRQUFPLG1CQUFtQjtBQUMzRixTQUFRQyxHQUFHLFFBQU8sb0JBQW9CO0FBQ3RDLE9BQU9DLE1BQU0sSUFBR0MsR0FBRyxRQUFPLG1CQUFtQjtBQUM3QyxPQUFPQyxRQUFRLE1BQU0sdUJBQXVCO0FBQzVDLFNBQVFDLE9BQU8sUUFBTyxnQ0FBZ0M7QUFDdEQsT0FBT0Ms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
783
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjbGFzc25hbWVzIiwiUmVhY3QiLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsInVuaXEiLCJEbmRDb250ZXh0IiwiY2xvc2VzdENlbnRlciIsIktleWJvYXJkU2Vuc29yIiwiUG9pbnRlclNlbnNvciIsInVzZVNlbnNvciIsInVzZVNlbnNvcnMiLCJTb3J0YWJsZUNvbnRleHQiLCJ1c2VTb3J0YWJsZSIsInZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneSIsIkNTUyIsInN0eWxlZCIsImNzcyIsIlBvcnRhbGVkIiwiVG9vbHRpcCIsIlR5cGVhaGVhZCIsIkNoaWNrbGV0ZWRJbnB1dCIsIkRyb3Bkb3duTGlzdCIsIkxpc3RJdGVtIiwic2hvdWxkRm9yd2FyZFByb3AiLCJ0b0FycmF5IiwiS2V5RXZlbnQiLCJhZGRDYXRlZ29yaWNhbFZhbHVlc1RvQ29sb3JNYXAiLCJhZGRDdXN0b21QYWxldHRlQ29sb3IiLCJjb2xvck1hcFRvQ2F0ZWdvcmljYWxDb2xvckJyZWFrcyIsImNvbG9yTWFwVG9Db2xvckJyZWFrcyIsImlzTnVtZXJpY0NvbG9yQnJlYWtzIiwicmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleCIsInJlbW92ZUNhdGVnb3JpY2FsVmFsdWVGcm9tQ29sb3JNYXAiLCJyZW1vdmVDdXN0b21QYWxldHRlQ29sb3IiLCJzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgiLCJzb3J0Q3VzdG9tUGFsZXR0ZUNvbG9yIiwidXBkYXRlQ3VzdG9tUGFsZXR0ZUNvbG9yIiwiQWRkIiwiVHJhc2giLCJWZXJ0RG90cyIsIkJ1dHRvbiIsIklucHV0IiwiQ3VzdG9tUGlja2VyIiwiZGVmYXVsdEFjdGlvbkljb25zIiwic29ydCIsImFkZCIsImRyYWdIYW5kbGVBY3RpdmUiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwicHJvcHMiLCJ0aGVtZSIsInRleHRDb2xvckhsIiwiQ29sb3JQYWxldHRlSXRlbSIsImRpdiIsIl90ZW1wbGF0ZU9iamVjdDIiLCJkcm9wZG93bldyYXBwZXJaIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJTdHlsZWREcmFnSGFuZGxlIiwiX3RlbXBsYXRlT2JqZWN0MyIsIlN0eWxlZEFjdGlvbiIsIl90ZW1wbGF0ZU9iamVjdDQiLCJzdWJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3JBY3RpdmUiLCJEaXZpZGVyTGluZSIsIl90ZW1wbGF0ZU9iamVjdDUiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3AiLCJDb2xvclN3YXRjaCIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RlbXBsYXRlT2JqZWN0NiIsImNvbG9yIiwiYm94U2hhZG93IiwiU3R5bGVkQnV0dG9uQ29udGFpbmVyIiwiX3RlbXBsYXRlT2JqZWN0NyIsIlN0eWxlZEFkZFN0ZXBDb250YWluZXIiLCJfdGVtcGxhdGVPYmplY3Q4IiwiaW5wdXRDb2xvciIsIlN0eWxlZElucHV0Iiwid2l0aENvbmZpZyIsIl90ZW1wbGF0ZU9iamVjdDkiLCJfcHJvcHMkd2lkdGgiLCJ3aWR0aCIsIl9wcm9wcyR0ZXh0QWxpZ24iLCJ0ZXh0QWxpZ24iLCJkaXNhYmxlZCIsIklucHV0VGV4dCIsIl90ZW1wbGF0ZU9iamVjdDAiLCJpbnB1dCIsIl9wcm9wcyR3aWR0aDIiLCJfcHJvcHMkdGV4dEFsaWduMiIsIlNvcnRhYmxlSXRlbSIsIl9yZWYiLCJpZCIsImNoaWxkcmVuIiwiaXNTb3J0aW5nIiwiX3VzZVNvcnRhYmxlIiwiYXR0cmlidXRlcyIsImxpc3RlbmVycyIsInNldE5vZGVSZWYiLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwiaXNEcmFnZ2luZyIsInN0eWxlIiwiVHJhbnNmb3JtIiwidG9TdHJpbmciLCJ6SW5kZXgiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMiLCJyZWYiLCJzb3J0aW5nIiwiV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyIiwiX3JlZjIiLCJvblNvcnRFbmQiLCJvblNvcnRTdGFydCIsInNlbnNvcnMiLCJjb2xsaXNpb25EZXRlY3Rpb24iLCJvbkRyYWdFbmQiLCJvbkRyYWdTdGFydCIsIml0ZW1zIiwiQ2hpbGRyZW4iLCJtYXAiLCJfIiwiaW5kZXgiLCJjb25jYXQiLCJzdHJhdGVneSIsIkRyYWdIYW5kbGUiLCJfcmVmMyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIkNvbG9yUGFsZXR0ZUlucHV0IiwiX3JlZjQiLCJ2YWx1ZSIsIm9uQ2hhbmdlIiwiZWRpdGFibGUiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJzdGF0ZVZhbHVlIiwic2V0VmFsdWUiLCJpbnB1dFJlZiIsIm9uS2V5RG93biIsImUiLCJrZXlDb2RlIiwiRE9NX1ZLX0VOVEVSIiwiRE9NX1ZLX1JFVFVSTiIsImN1cnJlbnQiLCJibHVyIiwiX29uQ2hhbmdlIiwidGFyZ2V0Iiwib25CbHVyIiwic2Vjb25kYXJ5IiwiRGFzaCIsIl90ZW1wbGF0ZU9iamVjdDEiLCJTdHlsZWRSYW5nZUlucHV0IiwiX3RlbXBsYXRlT2JqZWN0MTAiLCJTdHlsZWRDb2xvckhleElucHV0IiwiX3RlbXBsYXRlT2JqZWN0MTEiLCJFZGl0YWJsZUNvbG9yUmFuZ2UiLCJfcmVmNSIsIml0ZW0iLCJpc0xhc3QiLCJlZGl0Q29sb3JNYXAiLCJoYXNJbnB1dHMiLCJBcnJheSIsImlzQXJyYXkiLCJpbnB1dHMiLCJsZWZ0SW5wdXQiLCJ1bmRlZmluZWQiLCJyaWdodElucHV0Iiwibm9NaW5Cb3VuZCIsIk51bWJlciIsImlzRmluaXRlIiwibm9NYXhCb3VuZCIsIm9uQ2hhbmdlTGVmdCIsInZhbCIsInBhcnNlRmxvYXQiLCJvbkNoYW5nZVJpZ2h0IiwiU3RyaW5nIiwiQWRkQ29sb3JTdG9wIiwiX3JlZjYiLCJvbkNvbG9yQWRkIiwiSWNvbkNvbXBvbmVudCIsIm9uQ2xpY2siLCJoZWlnaHQiLCJEZWxldGVDb2xvclN0b3AiLCJfcmVmNyIsIm9uQ29sb3JEZWxldGUiLCJDdXN0b21QYWxldHRlSW5wdXQiLCJfcmVmOCIsImNvbG9yQnJlYWtzIiwiaW5wdXRDb2xvckhleCIsImVkaXRDb2xvck1hcFZhbHVlIiwiX3JlZjgkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsImRpc2FibGVBcHBlbmQiLCJkaXNhYmxlRGVsZXRlIiwib25EZWxldGUiLCJvbkFkZCIsIm9uVG9nZ2xlU2tldGNoZXIiLCJvbkNsaWNrU3d0YWNoIiwib25Db2xvcklucHV0IiwidiIsInNob3dIZXhJbnB1dCIsIkZyYWdtZW50IiwidG9VcHBlckNhc2UiLCJsZW5ndGgiLCJTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDEyIiwiU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlciIsIl90ZW1wbGF0ZU9iamVjdDEzIiwibm9Cb3JkZXIiLCJEcm9wZG93blZhbHVlc1dyYXBwZXIiLCJfdGVtcGxhdGVPYmplY3QxNCIsIlNlbGVjdGVkVmFsdWVzV3JhcHBlciIsIl90ZW1wbGF0ZU9iamVjdDE1IiwiU3R5bGVkRHJvcGRvd25IZWFkZXIiLCJfdGVtcGxhdGVPYmplY3QxNiIsIlN0eWxlZFRvb2x0aXBDb250ZW50IiwiX3RlbXBsYXRlT2JqZWN0MTciLCJOVU1CRVJfVkFMVUVTX0lOX1RPT0xUSVAiLCJDYXRlZ29yaWNhbFNlbGVjdG9yQ29udGV4dCIsImNyZWF0ZUNvbnRleHQiLCJvblNlbGVjdFJlc3QiLCJvblJlc2V0IiwiTW9kaWZpZWREcm9wZG93bkxpc3QiLCJfRHJvcGRvd25MaXN0IiwiX2NsYXNzQ2FsbENoZWNrIiwiX2NhbGxTdXBlciIsIl9pbmhlcml0cyIsIl9jcmVhdGVDbGFzcyIsImtleSIsInJlbmRlciIsIl90aGlzIiwiQ29uc3VtZXIiLCJjb250ZXh0IiwibGluayIsInNpemUiLCJDYXRlZ29yaWNhbFNlbGVjdG9yIiwiX3JlZjkiLCJzZWxlY3RlZFZhbHVlcyIsImFsbFZhbHVlcyIsImFkZENvbG9yTWFwVmFsdWUiLCJyZW1vdmVDb2xvck1hcFZhbHVlIiwicmVzZXRDb2xvck1hcFZhbHVlIiwic2VsZWN0UmVzdENvbG9yTWFwVmFsdWUiLCJfcmVmOSRlZGl0YWJsZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0Iiwic2hvd1R5cGVhaGVhZCIsInNldFNob3dUeXBlYWhlYWQiLCJvbk9wdGlvblNlbGVjdGVkIiwicHJldmlvdXNTZWxlY3RlZCIsIm9uT3BlbkRyb3Bkb3duIiwib25DbG9zZURyb3Bkb3duIiwib25SZW1vdmVJdGVtIiwicGxhY2UiLCJpbnRlcmFjdGl2ZSIsInNsaWNlIiwiaSIsImxlZnQiLCJ0b3AiLCJpc09wZW5lZCIsIm9uQ2xvc2UiLCJzZWxlY3RlZEl0ZW1zIiwicGxhY2Vob2xkZXIiLCJyZW1vdmVJdGVtIiwiQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQiLCJwb3NpdGlvbiIsIlByb3ZpZGVyIiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJsaXN0SXRlbSIsImxpc3RBbmNob3IiLCJvcHRpb25zIiwiZGlzcGxheU9wdGlvbiIsIm8iLCJmaWx0ZXJPcHRpb24iLCJpbmNsdWRlcyIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsInNlYXJjaGFibGUiLCJzaG93T3B0aW9uc1doZW5FbXB0eSIsIkNhdGVnb3JpY2FsQ3VzdG9tUGFsZXR0ZUlucHV0IiwiX3JlZjAiLCJjb2xvck1hcCIsIl9yZWYwJGFjdGlvbkljb25zIiwidmFsdWVzIiwiQm90dG9tQWN0aW9uIiwiX3JlZjEiLCJvbkNhbmNlbCIsIm9uQ29uZmlybSIsInNtYWxsIiwiU3R5bGVkQ3VzdG9tUGFsZXR0ZSIsIl90ZW1wbGF0ZU9iamVjdDE4IiwiQ3VzdG9tUGFsZXR0ZUZhY3RvcnkiLCJDdXN0b21QYWxldHRlIiwiX3JlZjEwIiwib3JkaW5hbERvbWFpbiIsImN1c3RvbVBhbGV0dGUiLCJzZXRDb2xvclBhbGV0dGVVSSIsInNob3dTa2V0Y2hlciIsIl9yZWYxMCRhY3Rpb25JY29ucyIsIm9uQXBwbHkiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsInNldElzU29ydGluZyIsImNvbG9ycyIsInR5cGUiLCJvblBpY2tlclVwZGF0ZSIsIm5ld0N1c3RvbVBhbGV0dGUiLCJoZXgiLCJvbkFkZENhdGVnb3JpY2FsU3RlcCIsIm9uU3dhdGNoQ2xvc2UiLCJldmVudCIsInN0b3BQcm9wYWdhdGlvbiIsInByZXZlbnREZWZhdWx0IiwiYWN0aXZlIiwib3ZlciIsIm9sZEluZGV4IiwiZmluZEluZGV4IiwibmV3SW5kZXgiLCJuZXdDb2xvck1hcCIsImNtIiwiYnJlYWtzIiwiYSIsImIiLCJzb3J0ZWROZXdDb2xvck1hcCIsIl9vYmplY3RTcHJlYWQiLCJyZW1vdmVDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUiLCJhZGRDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUiLCJyZXNldENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZSIsInNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY3VzdG9tLXBhbGV0dGUudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IFJlYWN0LCB7XG4gIEVsZW1lbnRUeXBlLFxuICBQcm9wc1dpdGhDaGlsZHJlbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZVxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdW5pcSBmcm9tICdlcy10b29sa2l0L2NvbXBhdC91bmlxJztcbmltcG9ydCB7XG4gIERuZENvbnRleHQsXG4gIGNsb3Nlc3RDZW50ZXIsXG4gIEtleWJvYXJkU2Vuc29yLFxuICBQb2ludGVyU2Vuc29yLFxuICB1c2VTZW5zb3IsXG4gIHVzZVNlbnNvcnMsXG4gIERyYWdFbmRFdmVudFxufSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7U29ydGFibGVDb250ZXh0LCB1c2VTb3J0YWJsZSwgdmVydGljYWxMaXN0U29ydGluZ1N0cmF0ZWd5fSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQge0NTU30gZnJvbSAnQGRuZC1raXQvdXRpbGl0aWVzJztcbmltcG9ydCBzdHlsZWQsIHtjc3N9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBQb3J0YWxlZCBmcm9tICcuLi8uLi9jb21tb24vcG9ydGFsZWQnO1xuaW1wb3J0IHtUb29sdGlwfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQnO1xuaW1wb3J0IENoaWNrbGV0ZWRJbnB1dCBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9jaGlja2xldGVkLWlucHV0JztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi4vLi4vY29tbW9uL2l0ZW0tc2VsZWN0b3IvZHJvcGRvd24tbGlzdCc7XG5pbXBvcnQge3Nob3VsZEZvcndhcmRQcm9wfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHt0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge0tleUV2ZW50fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0NvbG9yTWFwLCBDb2xvclVJLCBIZXhDb2xvciwgTmVzdGVkUGFydGlhbH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBhZGRDYXRlZ29yaWNhbFZhbHVlc1RvQ29sb3JNYXAsXG4gIGFkZEN1c3RvbVBhbGV0dGVDb2xvcixcbiAgY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MsXG4gIGNvbG9yTWFwVG9Db2xvckJyZWFrcyxcbiAgaXNOdW1lcmljQ29sb3JCcmVha3MsXG4gIHJlc2V0Q2F0ZWdvcmljYWxDb2xvck1hcEJ5SW5kZXgsXG4gIHJlbW92ZUNhdGVnb3JpY2FsVmFsdWVGcm9tQ29sb3JNYXAsXG4gIHJlbW92ZUN1c3RvbVBhbGV0dGVDb2xvcixcbiAgc2VsZWN0UmVzdENhdGVnb3JpY2FsQ29sb3JNYXBCeUluZGV4LFxuICBzb3J0Q3VzdG9tUGFsZXR0ZUNvbG9yLFxuICB1cGRhdGVDdXN0b21QYWxldHRlQ29sb3Jcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0NvbG9yQnJlYWssIENvbG9yQnJlYWtPcmRpbmFsfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7QWRkLCBUcmFzaCwgVmVydERvdHN9IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge0J1dHRvbiwgSW5wdXR9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgQ3VzdG9tUGlja2VyIGZyb20gJy4vY3VzdG9tLXBpY2tlcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkljb25zID0ge1xuICBkZWxldGU6IEVsZW1lbnRUeXBlO1xuICBzb3J0OiBFbGVtZW50VHlwZTtcbiAgYWRkOiBFbGVtZW50VHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEVkaXRDb2xvck1hcEZ1bmMgPSAodjogbnVtYmVyLCBpOiBudW1iZXIpID0+IHZvaWQ7XG5leHBvcnQgdHlwZSBTZXRDb2xvclVJRnVuYyA9IChuZXdDb25maWc6IE5lc3RlZFBhcnRpYWw8Q29sb3JVST4pID0+IHZvaWQ7XG5cbi8qKlxuICogRWRpdGFibGVDb2xvclJhbmdlXG4gKi9cbmV4cG9ydCB0eXBlIEVkaXRhYmxlQ29sb3JSYW5nZVByb3BzID0ge1xuICBpdGVtOiBDb2xvckJyZWFrO1xuICBpc0xhc3Q6IGJvb2xlYW47XG4gIGluZGV4OiBudW1iZXI7XG4gIGVkaXRDb2xvck1hcD86IEVkaXRDb2xvck1hcEZ1bmM7XG4gIGVkaXRhYmxlOiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tUGFsZXR0ZVByb3BzID0ge1xuICBjdXN0b21QYWxldHRlOiBDb2xvclVJWydjdXN0b21QYWxldHRlJ107XG4gIHNldENvbG9yUGFsZXR0ZVVJOiBTZXRDb2xvclVJRnVuYztcbiAgc2hvd1NrZXRjaGVyOiBudW1iZXIgfCBib29sZWFuO1xuICBvcmRpbmFsRG9tYWluPzogc3RyaW5nW10gfCBudW1iZXJbXTtcbiAgYWN0aW9uSWNvbnM/OiBBY3Rpb25JY29ucztcbiAgb25BcHBseTogKGU6IFJlYWN0Lk1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIG9uQ2FuY2VsOiAoKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tUGFsZXR0ZUlucHV0UHJvcHMgPSB7XG4gIGluZGV4OiBudW1iZXI7XG4gIGlzU29ydGluZzogYm9vbGVhbjtcbiAgY29sb3I6IEhleENvbG9yO1xuICBjb2xvckJyZWFrczogQ29sb3JCcmVha09yZGluYWxbXSB8IENvbG9yQnJlYWtbXSB8IG51bGw7XG4gIGlucHV0Q29sb3JIZXg6IChpbmRleDogbnVtYmVyLCB2OiBIZXhDb2xvcikgPT4gdm9pZDtcbiAgZWRpdENvbG9yTWFwVmFsdWU6IEVkaXRDb2xvck1hcEZ1bmM7XG4gIGFjdGlvbkljb25zPzogQWN0aW9uSWNvbnM7XG4gIGRpc2FibGVBcHBlbmQ/OiBib29sZWFuO1xuICBkaXNhYmxlRGVsZXRlPzogYm9vbGVhbjtcbiAgb25EZWxldGU6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICBvbkFkZDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU2tldGNoZXI6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xufTtcblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICBkZWxldGU6IFRyYXNoLFxuICBzb3J0OiBWZXJ0RG90cyxcbiAgYWRkOiBBZGRcbn07XG5cbmNvbnN0IGRyYWdIYW5kbGVBY3RpdmUgPSBjc3NgXG4gIC5sYXllcl9fZHJhZy1oYW5kbGUge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGN1cnNvcjogbW92ZTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IENvbG9yUGFsZXR0ZUl0ZW0gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nLXRvcDogMnB4O1xuICBwYWRkaW5nLWJvdHRvbTogMnB4O1xuICB6LWluZGV4OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclogKyAxfTtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gIC5jdXN0b20tcGFsZXR0ZS1pbnB1dF9fbGVmdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLmN1c3RvbS1wYWxldHRlLWlucHV0X19yaWdodCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmctcmlnaHQ6IDZweDtcbiAgfVxuXG4gICY6bm90KC5zb3J0aW5nKTpub3QoLmRpc2FibGVkKSB7XG4gICAgJjpob3ZlciB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICAgICR7ZHJhZ0hhbmRsZUFjdGl2ZX07XG4gICAgfVxuICB9XG5cbiAgJi5zb3J0aW5nLWNvbG9ycyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgJHtkcmFnSGFuZGxlQWN0aXZlfTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRHJhZ0hhbmRsZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG5gO1xuXG5jb25zdCBTdHlsZWRBY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICBzdmcge1xuICAgICY6aG92ZXIge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yQWN0aXZlfTtcbiAgICB9XG4gIH1cblxuICBtYXJnaW4tbGVmdDogNHB4O1xuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBEaXZpZGVyTGluZSA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG4gIG1hcmdpbi10b3A6IDhweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBDb2xvclN3YXRjaCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjdXN0b20tcGFsZXR0ZV9fc3dhdGNoJ1xufSlgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMuY29sb3J9O1xuICB3aWR0aDogMzJweDtcbiAgaGVpZ2h0OiAxOHB4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICY6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYm94U2hhZG93fTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZEJ1dHRvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi10b3A6IDExcHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGRpcmVjdGlvbjogcnRsO1xuICBwYWRkaW5nOiAwIDEycHg7XG5gO1xuXG5jb25zdCBTdHlsZWRBZGRTdGVwQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMTFweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAwIDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICAuYWRkY29sb3Ige1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkSW5wdXQgPSBzdHlsZWQoSW5wdXQpLndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wfSk8e1xuICB3aWR0aDogc3RyaW5nO1xuICB0ZXh0QWxpZ246IHN0cmluZztcbn0+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aCA/PyAnMTAwJSd9O1xuICB0ZXh0LWFsaWduOiAke3Byb3BzID0+IHByb3BzLnRleHRBbGlnbiA/PyAnZW5kJ307XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhbGwnKX07XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcbmA7XG5cbmNvbnN0IElucHV0VGV4dCA9IHN0eWxlZC5kaXYud2l0aENvbmZpZyh7c2hvdWxkRm9yd2FyZFByb3B9KTx7d2lkdGg6IHN0cmluZzsgdGV4dEFsaWduOiBzdHJpbmd9PmBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dH07XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aCA/PyAnMTAwJSd9O1xuICB0ZXh0LWFsaWduOiAke3Byb3BzID0+IHByb3BzLnRleHRBbGlnbiA/PyAnZW5kJ307XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gIHBhZGRpbmctcmlnaHQ6IDRweDtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IGF1dG87XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuYDtcblxudHlwZSBTb3J0YWJsZUl0ZW1Qcm9wcyA9IHtcbiAgaWQ6IHN0cmluZztcbiAgY2hpbGRyZW46IChsaXN0ZW5lcnM6IGFueSkgPT4gUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzU29ydGluZzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IFNvcnRhYmxlSXRlbSA9ICh7aWQsIGNoaWxkcmVuLCBpc1NvcnRpbmd9OiBTb3J0YWJsZUl0ZW1Qcm9wcykgPT4ge1xuICBjb25zdCB7YXR0cmlidXRlcywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb24sIGlzRHJhZ2dpbmd9ID0gdXNlU29ydGFibGUoe2lkfSk7XG4gIGNvbnN0IHN0eWxlID0ge1xuICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgIHRyYW5zaXRpb24sXG4gICAgekluZGV4OiBpc0RyYWdnaW5nID8gMSA6IDBcbiAgfTtcbiAgcmV0dXJuIChcbiAgICA8Q29sb3JQYWxldHRlSXRlbVxuICAgICAgcmVmPXtzZXROb2RlUmVmfVxuICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdjdXN0b20tcGFsZXR0ZV9fc29ydGFibGUtaXRlbXMnLCB7c29ydGluZzogaXNTb3J0aW5nIHx8IGlzRHJhZ2dpbmd9KX1cbiAgICAgIHsuLi5hdHRyaWJ1dGVzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbihsaXN0ZW5lcnMpfVxuICAgIDwvQ29sb3JQYWxldHRlSXRlbT5cbiAgKTtcbn07XG5cbnR5cGUgV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIG9uU29ydEVuZDogKGV2ZW50OiBEcmFnRW5kRXZlbnQpID0+IHZvaWQ7XG4gIG9uU29ydFN0YXJ0OiAoKSA9PiB2b2lkO1xufTtcblxuY29uc3QgV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyID0gKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgb25Tb3J0RW5kLFxuICBvblNvcnRTdGFydFxufTogV3JhcHBlZFNvcnRhYmxlQ29udGFpbmVyUHJvcHMpID0+IHtcbiAgY29uc3Qgc2Vuc29ycyA9IHVzZVNlbnNvcnModXNlU2Vuc29yKFBvaW50ZXJTZW5zb3IpLCB1c2VTZW5zb3IoS2V5Ym9hcmRTZW5zb3IpKTtcbiAgcmV0dXJuIChcbiAgICA8RG5kQ29udGV4dFxuICAgICAgc2Vuc29ycz17c2Vuc29yc31cbiAgICAgIGNvbGxpc2lvbkRldGVjdGlvbj17Y2xvc2VzdENlbnRlcn1cbiAgICAgIG9uRHJhZ0VuZD17b25Tb3J0RW5kfVxuICAgICAgb25EcmFnU3RhcnQ9e29uU29ydFN0YXJ0fVxuICAgID5cbiAgICAgIDxTb3J0YWJsZUNvbnRleHRcbiAgICAgICAgaXRlbXM9e1JlYWN0LkNoaWxkcmVuLm1hcChjaGlsZHJlbiwgKF8sIGluZGV4KSA9PiBgJHtpbmRleH1gKSB8fCBbXX1cbiAgICAgICAgc3RyYXRlZ3k9e3ZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneX1cbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZX0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPC9Tb3J0YWJsZUNvbnRleHQ+XG4gICAgPC9EbmRDb250ZXh0PlxuICApO1xufTtcblxudHlwZSBEcmFnSGFuZGxlUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7Y2xhc3NOYW1lPzogc3RyaW5nfT47XG5jb25zdCBEcmFnSGFuZGxlID0gKHtjbGFzc05hbWUsIGNoaWxkcmVuLCAuLi5saXN0ZW5lcnN9OiBEcmFnSGFuZGxlUHJvcHMpID0+IChcbiAgPFN0eWxlZERyYWdIYW5kbGUgY2xhc3NOYW1lPXtjbGFzc05hbWV9IHsuLi5saXN0ZW5lcnN9PlxuICAgIHtjaGlsZHJlbn1cbiAgPC9TdHlsZWREcmFnSGFuZGxlPlxuKTtcblxuZXhwb3J0IHR5cGUgQ29sb3JQYWxldHRlSW5wdXRQcm9wcyA9IHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgb25DaGFuZ2U6ICh2YWw6IHVua25vd24pID0+IHZvaWQ7XG4gIGlkOiBzdHJpbmc7XG4gIHdpZHRoOiBzdHJpbmc7XG4gIHRleHRBbGlnbjogc3RyaW5nO1xuICBlZGl0YWJsZTogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDb2xvclBhbGV0dGVJbnB1dCA9ICh7XG4gIHZhbHVlLFxuICBvbkNoYW5nZSxcbiAgaWQsXG4gIHdpZHRoLFxuICB0ZXh0QWxpZ24sXG4gIGVkaXRhYmxlXG59OiBDb2xvclBhbGV0dGVJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IFtzdGF0ZVZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZSh2YWx1ZSk7XG4gIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFZhbHVlKHZhbHVlKTtcbiAgfSwgW3ZhbHVlXSk7XG5cbiAgY29uc3Qgb25LZXlEb3duID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBzd2l0Y2ggKGUua2V5Q29kZSkge1xuICAgICAgICBjYXNlIEtleUV2ZW50LkRPTV9WS19FTlRFUjpcbiAgICAgICAgY2FzZSBLZXlFdmVudC5ET01fVktfUkVUVVJOOlxuICAgICAgICAgIG9uQ2hhbmdlKHN0YXRlVmFsdWUpO1xuICAgICAgICAgIGlmIChpbnB1dFJlZiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgaW5wdXRSZWY/LmN1cnJlbnQuYmx1cigpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9LFxuICAgIFtvbkNoYW5nZSwgc3RhdGVWYWx1ZV1cbiAgKTtcblxuICBjb25zdCBfb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhlID0+IHNldFZhbHVlKGUudGFyZ2V0LnZhbHVlKSwgW3NldFZhbHVlXSk7XG4gIGNvbnN0IG9uQmx1ciA9IHVzZUNhbGxiYWNrKCgpID0+IG9uQ2hhbmdlKHN0YXRlVmFsdWUpLCBbb25DaGFuZ2UsIHN0YXRlVmFsdWVdKTtcblxuICByZXR1cm4gZWRpdGFibGUgPyAoXG4gICAgPFN0eWxlZElucHV0XG4gICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaGV4X19pbnB1dFwiXG4gICAgICB2YWx1ZT17c3RhdGVWYWx1ZX1cbiAgICAgIG9uQ2hhbmdlPXtfb25DaGFuZ2V9XG4gICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgIG9uS2V5RG93bj17b25LZXlEb3dufVxuICAgICAgaWQ9e2lkfVxuICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgdGV4dEFsaWduPXt0ZXh0QWxpZ259XG4gICAgICBzZWNvbmRhcnlcbiAgICAvPlxuICApIDogKFxuICAgIDxJbnB1dFRleHQgY2xhc3NOYW1lPVwiY3VzdG9tLXBhbGV0dGUtaGV4X19pbnB1dF9fdGV4dFwiIHdpZHRoPXt3aWR0aH0gdGV4dEFsaWduPXt0ZXh0QWxpZ259PlxuICAgICAge3ZhbHVlfVxuICAgIDwvSW5wdXRUZXh0PlxuICApO1xufTtcblxuY29uc3QgRGFzaCA9IHN0eWxlZC5kaXZgXG4gIHdpZHRoOiA2cHg7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG4gIG1hcmdpbi1yaWdodDogNHB4O1xuYDtcblxuY29uc3QgU3R5bGVkUmFuZ2VJbnB1dCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JIZXhJbnB1dCA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1sZWZ0OiAxMnB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IEVkaXRhYmxlQ29sb3JSYW5nZTogUmVhY3QuRkM8RWRpdGFibGVDb2xvclJhbmdlUHJvcHM+ID0gKHtcbiAgaXRlbSxcbiAgaXNMYXN0LFxuICBpbmRleCxcbiAgZWRpdENvbG9yTWFwLFxuICBlZGl0YWJsZVxufSkgPT4ge1xuICBjb25zdCBoYXNJbnB1dHMgPSBBcnJheS5pc0FycmF5KGl0ZW0/LmlucHV0cyk7XG4gIGNvbnN0IGxlZnRJbnB1dCA9IGhhc0lucHV0cyA/IGl0ZW0uaW5wdXRzWzBdIDogdW5kZWZpbmVkO1xuICBjb25zdCByaWdodElucHV0ID0gaGFzSW5wdXRzID8gaXRlbS5pbnB1dHNbMV0gOiB1bmRlZmluZWQ7XG4gIGNvbnN0IG5vTWluQm91bmQgPSAhTnVtYmVyLmlzRmluaXRlKGxlZnRJbnB1dCkgJiYgaW5kZXggPT09IDA7XG4gIGNvbnN0IG5vTWF4Qm91bmQgPSAhTnVtYmVyLmlzRmluaXRlKHJpZ2h0SW5wdXQpICYmIGlzTGFzdDtcbiAgY29uc3Qgb25DaGFuZ2VMZWZ0ID0gdXNlQ2FsbGJhY2soXG4gICAgdmFsID0+IHtcbiAgICAgIGlmIChlZGl0YWJsZSAmJiBlZGl0Q29sb3JNYXApIGVkaXRDb2xvck1hcChwYXJzZUZsb2F0KHZhbCksIGluZGV4IC0gMSk7XG4gICAgfSxcbiAgICBbZWRpdENvbG9yTWFwLCBpbmRleCwgZWRpdGFibGVdXG4gICk7XG4gIGNvbnN0IG9uQ2hhbmdlUmlnaHQgPSB1c2VDYWxsYmFjayhcbiAgICB2YWwgPT4ge1xuICAgICAgaWYgKGVkaXRhYmxlICYmIGVkaXRDb2xvck1hcCkgZWRpdENvbG9yTWFwKHBhcnNlRmxvYXQodmFsKSwgaW5kZXgpO1xuICAgIH0sXG4gICAgW2VkaXRDb2xvck1hcCwgaW5kZXgsIGVkaXRhYmxlXVxuICApO1xuXG4gIHJldHVybiAoXG4gICAgPFN0eWxlZFJhbmdlSW5wdXQ+XG4gICAgICA8Q29sb3JQYWxldHRlSW5wdXRcbiAgICAgICAgdmFsdWU9e25vTWluQm91bmQgPyAnTGVzcycgOiBTdHJpbmcobGVmdElucHV0ID8/ICcnKX1cbiAgICAgICAgaWQ9e2Bjb2xvci1wYWxldHRlLWlucHV0LSR7aW5kZXh9LWxlZnRgfVxuICAgICAgICB3aWR0aD1cIjU0cHhcIlxuICAgICAgICB0ZXh0QWxpZ249XCJlbmRcIlxuICAgICAgICBlZGl0YWJsZT17bm9NaW5Cb3VuZCA/IGZhbHNlIDogZWRpdGFibGV9XG4gICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZUxlZnR9XG4gICAgICAvPlxuICAgICAgPERhc2ggLz5cbiAgICAgIDxDb2xvclBhbGV0dGVJbnB1dFxuICAgICAgICB2YWx1ZT17bm9NYXhCb3VuZCA/ICdNb3JlJyA6IFN0cmluZyhyaWdodElucHV0ID8/ICcnKX1cbiAgICAgICAgaWQ9e2Bjb2xvci1wYWxldHRlLWlucHV0LSR7aW5kZXh9LXJpZ2h0YH1cbiAgICAgICAgd2lkdGg9XCI1NHB4XCJcbiAgICAgICAgdGV4dEFsaWduPVwiZW5kXCJcbiAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlUmlnaHR9XG4gICAgICAgIGVkaXRhYmxlPXtub01heEJvdW5kID8gZmFsc2UgOiBlZGl0YWJsZX1cbiAgICAgIC8+XG4gICAgPC9TdHlsZWRSYW5nZUlucHV0PlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEFkZENvbG9yU3RvcCA9ICh7b25Db2xvckFkZCwgSWNvbkNvbXBvbmVudH0pID0+IChcbiAgPFN0eWxlZEFjdGlvbiBvbkNsaWNrPXtvbkNvbG9yQWRkfSBjbGFzc05hbWU9XCJhZGRjb2xvclwiPlxuICAgIDxJY29uQ29tcG9uZW50IGhlaWdodD1cIjE0cHhcIiAvPlxuICA8L1N0eWxlZEFjdGlvbj5cbik7XG5cbmV4cG9ydCBjb25zdCBEZWxldGVDb2xvclN0b3AgPSAoe29uQ29sb3JEZWxldGUsIEljb25Db21wb25lbnR9KSA9PiAoXG4gIDxTdHlsZWRBY3Rpb24gb25DbGljaz17b25Db2xvckRlbGV0ZX0gY2xhc3NOYW1lPVwidHJhc2hiaW5cIj5cbiAgICA8SWNvbkNvbXBvbmVudCBoZWlnaHQ9XCIxNHB4XCIgLz5cbiAgPC9TdHlsZWRBY3Rpb24+XG4pO1xuXG5leHBvcnQgY29uc3QgQ3VzdG9tUGFsZXR0ZUlucHV0OiBSZWFjdC5GQzxDdXN0b21QYWxldHRlSW5wdXRQcm9wcz4gPSAoe1xuICBpbmRleCxcbiAgaXNTb3J0aW5nLFxuICBjb2xvcixcbiAgY29sb3JCcmVha3MsXG4gIGlucHV0Q29sb3JIZXgsXG4gIGVkaXRDb2xvck1hcFZhbHVlLFxuICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29ucyxcbiAgZGlzYWJsZUFwcGVuZCxcbiAgZGlzYWJsZURlbGV0ZSxcbiAgb25EZWxldGUsXG4gIG9uQWRkLFxuICBvblRvZ2dsZVNrZXRjaGVyXG59KSA9PiB7XG4gIGNvbnN0IG9uQ2xpY2tTd3RhY2ggPSB1c2VDYWxsYmFjaygoKSA9PiBvblRvZ2dsZVNrZXRjaGVyKGluZGV4KSwgW29uVG9nZ2xlU2tldGNoZXIsIGluZGV4XSk7XG4gIGNvbnN0IG9uQ29sb3JJbnB1dCA9IHVzZUNhbGxiYWNrKHYgPT4gaW5wdXRDb2xvckhleChpbmRleCwgdiksIFtpbnB1dENvbG9ySGV4LCBpbmRleF0pO1xuICBjb25zdCBvbkNvbG9yRGVsZXRlID0gdXNlQ2FsbGJhY2soKCkgPT4gb25EZWxldGUoaW5kZXgpLCBbb25EZWxldGUsIGluZGV4XSk7XG4gIGNvbnN0IG9uQ29sb3JBZGQgPSB1c2VDYWxsYmFjaygoKSA9PiBvbkFkZChpbmRleCksIFtvbkFkZCwgaW5kZXhdKTtcbiAgY29uc3Qgc2hvd0hleElucHV0ID0gIWNvbG9yQnJlYWtzO1xuXG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSXRlbSBpZD17YCR7aW5kZXh9YH0gaXNTb3J0aW5nPXtpc1NvcnRpbmd9PlxuICAgICAge2xpc3RlbmVycyA9PiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1pbnB1dF9fbGVmdFwiPlxuICAgICAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCIgey4uLmxpc3RlbmVyc30+XG4gICAgICAgICAgICAgIDxhY3Rpb25JY29ucy5zb3J0IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICAgICAgPC9EcmFnSGFuZGxlPlxuICAgICAgICAgICAgPENvbG9yU3dhdGNoIGNvbG9yPXtjb2xvcn0gb25DbGljaz17b25DbGlja1N3dGFjaH0gLz5cbiAgICAgICAgICAgIHtzaG93SGV4SW5wdXQgPyAoXG4gICAgICAgICAgICAgIDxTdHlsZWRDb2xvckhleElucHV0PlxuICAgICAgICAgICAgICAgIDxDb2xvclBhbGV0dGVJbnB1dFxuICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbG9yLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25Db2xvcklucHV0fVxuICAgICAgICAgICAgICAgICAgaWQ9e2BpbnB1dC1sYXllci1sYWJlbC0ke2luZGV4fWB9XG4gICAgICAgICAgICAgICAgICBlZGl0YWJsZVxuICAgICAgICAgICAgICAgICAgdGV4dEFsaWduPVwibGVmdFwiXG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjcwcHhcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvU3R5bGVkQ29sb3JIZXhJbnB1dD5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAge2NvbG9yQnJlYWtzICYmIGluZGV4IDwgY29sb3JCcmVha3MubGVuZ3RoICYmIGlzTnVtZXJpY0NvbG9yQnJlYWtzKGNvbG9yQnJlYWtzKSA/IChcbiAgICAgICAgICAgICAgPEVkaXRhYmxlQ29sb3JSYW5nZVxuICAgICAgICAgICAgICAgIGl0ZW09e2NvbG9yQnJlYWtzW2luZGV4XX1cbiAgICAgICAgICAgICAgICBpc0xhc3Q9e2luZGV4ID09PSBjb2xvckJyZWFrcy5sZW5ndGggLSAxfVxuICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgICBlZGl0Q29sb3JNYXA9e2VkaXRDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgIGVkaXRhYmxlXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlLWlucHV0X19yaWdodFwiPlxuICAgICAgICAgICAgeyFkaXNhYmxlQXBwZW5kID8gKFxuICAgICAgICAgICAgICA8QWRkQ29sb3JTdG9wIG9uQ29sb3JBZGQ9e29uQ29sb3JBZGR9IEljb25Db21wb25lbnQ9e2FjdGlvbkljb25zLmFkZH0gLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgeyFkaXNhYmxlRGVsZXRlID8gKFxuICAgICAgICAgICAgICA8RGVsZXRlQ29sb3JTdG9wIG9uQ29sb3JEZWxldGU9e29uQ29sb3JEZWxldGV9IEljb25Db21wb25lbnQ9e2FjdGlvbkljb25zLmRlbGV0ZX0gLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8Lz5cbiAgICAgICl9XG4gICAgPC9Tb3J0YWJsZUl0ZW0+XG4gICk7XG59O1xuXG5jb25zdCBTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjYXRlZ29yaWNhbC12YWx1ZS1waWNrZXInXG59KWBcbiAgd2lkdGg6IDE1MHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dENvbG9yfTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgY29sdW1uLWdhcDogOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjdXJzb3I6IHBvaW50ZXI7XG5gO1xuXG50eXBlIFN0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXJQcm9wcyA9IHtub0JvcmRlcjogYm9vbGVhbn07XG5jb25zdCBTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyID0gc3R5bGVkLmRpdjxTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyUHJvcHM+YFxuICB3aWR0aDogZml0LWNvbnRlbnQ7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYm9yZGVyLWJvdHRvbTogJHtwcm9wcyA9PiAocHJvcHMubm9Cb3JkZXIgPyAnJyA6ICcxcHggZGFzaGVkJyl9O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBtYXgtd2lkdGg6IDEwMHB4O1xuYDtcblxudHlwZSBEcm9wZG93blZhbHVlc1dyYXBwZXJQcm9wcyA9IHt3aWR0aDogbnVtYmVyfTtcbmNvbnN0IERyb3Bkb3duVmFsdWVzV3JhcHBlciA9IHN0eWxlZC5kaXY8RHJvcGRvd25WYWx1ZXNXcmFwcGVyUHJvcHM+YFxuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclp9O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aH1weDtcbmA7XG5cbnR5cGUgU2VsZWN0ZWRWYWx1ZXNXcmFwcGVyUHJvcHMgPSB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9O1xuY29uc3QgU2VsZWN0ZWRWYWx1ZXNXcmFwcGVyID0gc3R5bGVkKERyb3Bkb3duVmFsdWVzV3JhcHBlcik8U2VsZWN0ZWRWYWx1ZXNXcmFwcGVyUHJvcHM+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aH1weDtcbiAgbWF4LWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy5oZWlnaHR9cHg7XG4gIG92ZXJmbG93OiBhdXRvO1xuXG4gIC5jdXN0b20tcGFsZXR0ZS1jaGlja2xldGVkLWlucHV0IHtcbiAgICBwYWRkaW5nOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5kcm9wZG93bldyYXBwZXJafTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRHJvcGRvd25IZWFkZXIgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0Q29sb3J9O1xuICBwYWRkaW5nOiAwIDhweDtcbiAgZm9udC1zaXplOiAxMHB4O1xuXG4gIC5idXR0b24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiBmaXQtY29udGVudDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkVG9vbHRpcENvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiA4cHg7XG4gIHdpZHRoOiAxNTBweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuXG4gIGRpdiB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5gO1xuXG5jb25zdCBOVU1CRVJfVkFMVUVTX0lOX1RPT0xUSVAgPSAxMDtcblxuY29uc3QgQ2F0ZWdvcmljYWxTZWxlY3RvckNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KHtcbiAgb25TZWxlY3RSZXN0OiAoKSA9PiBudWxsLFxuICBvblJlc2V0OiAoKSA9PiBudWxsXG59KTtcblxuLy8gQ2F0ZWdvcmljYWwgdmFsdWVzIGRyb3Bkb3dubGlzdDpcbi8vIGV4dGVuZGluZyBEcm9wZG93bkxpc3QgYW5kIGFkZGluZyAnU2VsZWN0IHRoZSBSZXN0JyBhbmQgJ1Jlc2V0JyBidXR0b25zXG5jbGFzcyBNb2RpZmllZERyb3Bkb3duTGlzdCBleHRlbmRzIERyb3Bkb3duTGlzdCB7XG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8Q2F0ZWdvcmljYWxTZWxlY3RvckNvbnRleHQuQ29uc3VtZXI+XG4gICAgICAgICAge2NvbnRleHQgPT4gKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgPFN0eWxlZERyb3Bkb3duSGVhZGVyPlxuICAgICAgICAgICAgICAgIDxCdXR0b24gbGluayBzaXplPVwic21hbFwiIG9uQ2xpY2s9e2NvbnRleHQub25TZWxlY3RSZXN0fT5cbiAgICAgICAgICAgICAgICAgIFNlbGVjdCB0aGUgUmVzdFxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgIDxCdXR0b24gbGluayBzaXplPVwic21hbFwiIG9uQ2xpY2s9e2NvbnRleHQub25SZXNldH0+XG4gICAgICAgICAgICAgICAgICBSZXNldFxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8L1N0eWxlZERyb3Bkb3duSGVhZGVyPlxuICAgICAgICAgICAgICA8RGl2aWRlckxpbmUgLz5cbiAgICAgICAgICAgICAgPERyb3Bkb3duTGlzdCB7Li4udGhpcy5wcm9wc30gLz5cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvQ2F0ZWdvcmljYWxTZWxlY3RvckNvbnRleHQuQ29uc3VtZXI+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIENhdGVnb3JpY2FsU2VsZWN0b3JQcm9wcyA9IHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgc2VsZWN0ZWRWYWx1ZXM6IChzdHJpbmcgfCBudW1iZXIgfCBudWxsKVtdO1xuICBhbGxWYWx1ZXM6IHN0cmluZ1tdIHwgbnVtYmVyW107XG4gIGFkZENvbG9yTWFwVmFsdWU/OiAodjogKG51bWJlciB8IHN0cmluZyB8IG51bGwpW10sIGk6IG51bWJlcikgPT4gdm9pZDtcbiAgcmVtb3ZlQ29sb3JNYXBWYWx1ZT86ICh2OiBudW1iZXIgfCBzdHJpbmcsIGk6IG51bWJlcikgPT4gdm9pZDtcbiAgcmVzZXRDb2xvck1hcFZhbHVlPzogKGk6IG51bWJlcikgPT4gdm9pZDtcbiAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWU/OiAoaTogbnVtYmVyKSA9PiB2b2lkO1xuICBlZGl0YWJsZT86IGJvb2xlYW47XG59O1xuXG4vLyBDYXRlZ29yaWNhbCB2YWx1ZXMgc2VsZWN0b3IgZm9yIGVkaXRpbmcgY2F0ZWdvcmljYWwgdmFsdWVzXG5leHBvcnQgY29uc3QgQ2F0ZWdvcmljYWxTZWxlY3RvcjogUmVhY3QuRkM8Q2F0ZWdvcmljYWxTZWxlY3RvclByb3BzPiA9ICh7XG4gIGluZGV4LFxuICBzZWxlY3RlZFZhbHVlcyxcbiAgYWxsVmFsdWVzLFxuICBhZGRDb2xvck1hcFZhbHVlLFxuICByZW1vdmVDb2xvck1hcFZhbHVlLFxuICByZXNldENvbG9yTWFwVmFsdWUsXG4gIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlLFxuICBlZGl0YWJsZSA9IHRydWVcbn06IENhdGVnb3JpY2FsU2VsZWN0b3JQcm9wcykgPT4ge1xuICBjb25zdCBbc2hvd1R5cGVhaGVhZCwgc2V0U2hvd1R5cGVhaGVhZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3Qgb25PcHRpb25TZWxlY3RlZCA9IHVzZUNhbGxiYWNrKFxuICAgIHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IHByZXZpb3VzU2VsZWN0ZWQgPSB0b0FycmF5KHNlbGVjdGVkVmFsdWVzKTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdW5pcShwcmV2aW91c1NlbGVjdGVkLmNvbmNhdCh0b0FycmF5KHZhbHVlKSkpO1xuICAgICAgYWRkQ29sb3JNYXBWYWx1ZT8uKGl0ZW1zLCBpbmRleCk7XG4gICAgfSxcbiAgICBbc2VsZWN0ZWRWYWx1ZXMsIGluZGV4LCBhZGRDb2xvck1hcFZhbHVlXVxuICApO1xuXG4gIGNvbnN0IG9uT3BlbkRyb3Bkb3duID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHNldFNob3dUeXBlYWhlYWQodHJ1ZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBvbkNsb3NlRHJvcGRvd24gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2V0U2hvd1R5cGVhaGVhZChmYWxzZSk7XG4gIH0sIFtdKTtcblxuICBjb25zdCBvblJlbW92ZUl0ZW0gPSB1c2VDYWxsYmFjayhcbiAgICB2YWx1ZSA9PiB7XG4gICAgICByZW1vdmVDb2xvck1hcFZhbHVlPy4odmFsdWUsIGluZGV4KTtcbiAgICB9LFxuICAgIFtpbmRleCwgcmVtb3ZlQ29sb3JNYXBWYWx1ZV1cbiAgKTtcblxuICBjb25zdCBvblJlc2V0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIHJlc2V0Q29sb3JNYXBWYWx1ZT8uKGluZGV4KTtcbiAgICBzZXRTaG93VHlwZWFoZWFkKGZhbHNlKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW3Jlc2V0Q29sb3JNYXBWYWx1ZSwgaW5kZXhdKTtcblxuICBjb25zdCBvblNlbGVjdFJlc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWU/LihpbmRleCk7XG4gICAgc2V0U2hvd1R5cGVhaGVhZChmYWxzZSk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZSwgaW5kZXhdKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDYXRlZ29yaWNhbFZhbHVlUGlja2VyV3JhcHBlcj5cbiAgICAgIHtlZGl0YWJsZSAmJiA8QWRkIGhlaWdodD1cIjEycHhcIiBvbkNsaWNrPXtvbk9wZW5Ecm9wZG93bn0gLz59XG4gICAgICA8U3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlclxuICAgICAgICBub0JvcmRlcj17c2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwIHx8ICFlZGl0YWJsZX1cbiAgICAgICAgb25DbGljaz17b25PcGVuRHJvcGRvd259XG4gICAgICAgIGRhdGEtdGlwXG4gICAgICAgIGRhdGEtZm9yPXtgY2F0ZWdvcnktdmFsdWVzLSR7aW5kZXh9YH1cbiAgICAgID5cbiAgICAgICAge3NlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMFxuICAgICAgICAgID8gJ0FkZCBWYWx1ZSdcbiAgICAgICAgICA6IHNlbGVjdGVkVmFsdWVzLmxlbmd0aCA9PT0gMVxuICAgICAgICAgID8gc2VsZWN0ZWRWYWx1ZXNbMF1cbiAgICAgICAgICA6IGAke3NlbGVjdGVkVmFsdWVzLmxlbmd0aH0gc2VsZWN0ZWRgfVxuICAgICAgICB7c2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgPFRvb2x0aXAgaWQ9e2BjYXRlZ29yeS12YWx1ZXMtJHtpbmRleH1gfSBwbGFjZT1cInRvcFwiIGludGVyYWN0aXZlPXt0cnVlfT5cbiAgICAgICAgICAgIDxTdHlsZWRUb29sdGlwQ29udGVudD5cbiAgICAgICAgICAgICAge3NlbGVjdGVkVmFsdWVzLnNsaWNlKDAsIE5VTUJFUl9WQUxVRVNfSU5fVE9PTFRJUCkubWFwKCh2YWx1ZSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpfT57dmFsdWV9PC9kaXY+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICB7c2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID4gTlVNQkVSX1ZBTFVFU19JTl9UT09MVElQICYmIDxkaXY+Li4uPC9kaXY+fVxuICAgICAgICAgICAgPC9TdHlsZWRUb29sdGlwQ29udGVudD5cbiAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZENhdGVnb3JpY2FsVmFsdWVQaWNrZXI+XG4gICAgICB7ZWRpdGFibGUgJiYgKFxuICAgICAgICA8UG9ydGFsZWQgbGVmdD17MH0gdG9wPXswfSBpc09wZW5lZD17c2hvd1R5cGVhaGVhZH0gb25DbG9zZT17b25DbG9zZURyb3Bkb3dufT5cbiAgICAgICAgICB7c2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID4gMSAmJiAoXG4gICAgICAgICAgICA8U2VsZWN0ZWRWYWx1ZXNXcmFwcGVyIHdpZHRoPXsyNTB9IGhlaWdodD17MjAwfT5cbiAgICAgICAgICAgICAgPENoaWNrbGV0ZWRJbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J2N1c3RvbS1wYWxldHRlLWNoaWNrbGV0ZWQtaW5wdXQnfVxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3NlbGVjdGVkVmFsdWVzfVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXsnJ31cbiAgICAgICAgICAgICAgICByZW1vdmVJdGVtPXtvblJlbW92ZUl0ZW19XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gbnVsbH1cbiAgICAgICAgICAgICAgICBDdXN0b21DaGlja2xldENvbXBvbmVudD17bnVsbH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvU2VsZWN0ZWRWYWx1ZXNXcmFwcGVyPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPERyb3Bkb3duVmFsdWVzV3JhcHBlciB3aWR0aD17MjUwfT5cbiAgICAgICAgICAgIDxkaXYgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319PlxuICAgICAgICAgICAgICA8Q2F0ZWdvcmljYWxTZWxlY3RvckNvbnRleHQuUHJvdmlkZXJcbiAgICAgICAgICAgICAgICB2YWx1ZT17e1xuICAgICAgICAgICAgICAgICAgb25SZXNldCxcbiAgICAgICAgICAgICAgICAgIG9uU2VsZWN0UmVzdFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VHlwZWFoZWFkXG4gICAgICAgICAgICAgICAgICBjdXN0b21DbGFzc2VzPXt7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdHM6ICdsaXN0LXNlbGVjdG9yJyxcbiAgICAgICAgICAgICAgICAgICAgaW5wdXQ6ICd0eXBlYWhlYWRfX2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgICAgICAgICAgICAgICAgICAgbGlzdEFuY2hvcjogJ2xpc3RfX2l0ZW1fX2FuY2hvcidcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICBvcHRpb25zPXthbGxWYWx1ZXN9XG4gICAgICAgICAgICAgICAgICAvLyBhZGQgc2FmZSBzdHJpbmcgY2FzdGluZyBmb3IgdGhlIFR5cGVhaGVhZCwgc28gZnV6enkgc2VhcmNoIG5ldmVyIHJlY2VpdmVzIG5vbi1zdHJpbmdzLCBwcmV2ZW50aW5nIHRoZSB0b0xvd2VyQ2FzZSBjcmFzaFxuICAgICAgICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17byA9PiBTdHJpbmcobyA/PyAnJyl9XG4gICAgICAgICAgICAgICAgICBmaWx0ZXJPcHRpb249eyhpbnB1dCwgbykgPT4gU3RyaW5nKG8gPz8gJycpLmluY2x1ZGVzKFN0cmluZyhpbnB1dCA/PyAnJykpfVxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9eydTZWFyY2gnfVxuICAgICAgICAgICAgICAgICAgb25PcHRpb25TZWxlY3RlZD17b25PcHRpb25TZWxlY3RlZH1cbiAgICAgICAgICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e01vZGlmaWVkRHJvcGRvd25MaXN0fVxuICAgICAgICAgICAgICAgICAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ9e0xpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJ1ZX1cbiAgICAgICAgICAgICAgICAgIHNob3dPcHRpb25zV2hlbkVtcHR5XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZFZhbHVlc31cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L0NhdGVnb3JpY2FsU2VsZWN0b3JDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9Ecm9wZG93blZhbHVlc1dyYXBwZXI+XG4gICAgICAgIDwvUG9ydGFsZWQ+XG4gICAgICApfVxuICAgIDwvU3R5bGVkQ2F0ZWdvcmljYWxWYWx1ZVBpY2tlcldyYXBwZXI+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dFByb3BzID0ge1xuICBpbmRleDogbnVtYmVyO1xuICBpc1NvcnRpbmc6IGJvb2xlYW47XG4gIGNvbG9yOiBIZXhDb2xvcjtcbiAgY29sb3JNYXA/OiBDb2xvck1hcCB8IG51bGw7XG4gIGFkZENvbG9yTWFwVmFsdWU6ICh2OiAobnVtYmVyIHwgc3RyaW5nIHwgbnVsbClbXSwgaTogbnVtYmVyKSA9PiB2b2lkO1xuICByZW1vdmVDb2xvck1hcFZhbHVlOiAodjogbnVtYmVyIHwgc3RyaW5nLCBpOiBudW1iZXIpID0+IHZvaWQ7XG4gIHJlc2V0Q29sb3JNYXBWYWx1ZTogKGk6IG51bWJlcikgPT4gdm9pZDtcbiAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWU6IChpOiBudW1iZXIpID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zPzogQWN0aW9uSWNvbnM7XG4gIG9uRGVsZXRlOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgb25BZGQ6IChpbmRleDogbnVtYmVyKSA9PiB2b2lkO1xuICBvblRvZ2dsZVNrZXRjaGVyOiAoaW5kZXg6IG51bWJlcikgPT4gdm9pZDtcbiAgYWxsVmFsdWVzOiBzdHJpbmdbXSB8IG51bWJlcltdO1xuICBkaXNhYmxlRGVsZXRlPzogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCBjb25zdCBDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dDogUmVhY3QuRkM8Q2F0ZWdvcmljYWxDdXN0b21QYWxldHRlSW5wdXRQcm9wcz4gPSAoe1xuICBpbmRleCxcbiAgaXNTb3J0aW5nLFxuICBjb2xvcixcbiAgY29sb3JNYXAsXG4gIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICBvbkRlbGV0ZSxcbiAgZGlzYWJsZURlbGV0ZSxcbiAgb25Ub2dnbGVTa2V0Y2hlcixcbiAgYWRkQ29sb3JNYXBWYWx1ZSxcbiAgcmVtb3ZlQ29sb3JNYXBWYWx1ZSxcbiAgcmVzZXRDb2xvck1hcFZhbHVlLFxuICBzZWxlY3RSZXN0Q29sb3JNYXBWYWx1ZSxcbiAgYWxsVmFsdWVzXG59OiBDYXRlZ29yaWNhbEN1c3RvbVBhbGV0dGVJbnB1dFByb3BzKSA9PiB7XG4gIGNvbnN0IHNlbGVjdGVkVmFsdWVzOiAobnVtYmVyIHwgc3RyaW5nIHwgbnVsbClbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmICghY29sb3JNYXAgfHwgIWNvbG9yTWFwW2luZGV4XSkgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHZhbHVlID0gY29sb3JNYXBbaW5kZXhdWzBdO1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiB2YWx1ZSAhPT0gbnVsbCA/IFt2YWx1ZV0gOiBbXTtcbiAgICByZXR1cm4gdmFsdWVzO1xuICB9LCBbY29sb3JNYXAsIGluZGV4XSk7XG5cbiAgY29uc3Qgb25DbGlja1N3dGFjaCA9IHVzZUNhbGxiYWNrKCgpID0+IG9uVG9nZ2xlU2tldGNoZXIoaW5kZXgpLCBbb25Ub2dnbGVTa2V0Y2hlciwgaW5kZXhdKTtcbiAgY29uc3Qgb25Db2xvckRlbGV0ZSA9IHVzZUNhbGxiYWNrKCgpID0+IG9uRGVsZXRlKGluZGV4KSwgW29uRGVsZXRlLCBpbmRleF0pO1xuXG4gIHJldHVybiAoXG4gICAgPFNvcnRhYmxlSXRlbSBpZD17YCR7aW5kZXh9YH0gaXNTb3J0aW5nPXtpc1NvcnRpbmd9PlxuICAgICAge2xpc3RlbmVycyA9PiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1pbnB1dF9fbGVmdFwiPlxuICAgICAgICAgICAgPERyYWdIYW5kbGUgY2xhc3NOYW1lPVwibGF5ZXJfX2RyYWctaGFuZGxlXCIgey4uLmxpc3RlbmVyc30+XG4gICAgICAgICAgICAgIDxhY3Rpb25JY29ucy5zb3J0IGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICAgICAgPC9EcmFnSGFuZGxlPlxuICAgICAgICAgICAgPENvbG9yU3dhdGNoIGNvbG9yPXtjb2xvcn0gb25DbGljaz17b25DbGlja1N3dGFjaH0gLz5cbiAgICAgICAgICAgIHtjb2xvck1hcCAmJiBjb2xvck1hcFtpbmRleF0gJiYgKFxuICAgICAgICAgICAgICA8Q2F0ZWdvcmljYWxTZWxlY3RvclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWVzPXtzZWxlY3RlZFZhbHVlc31cbiAgICAgICAgICAgICAgICBhbGxWYWx1ZXM9e2FsbFZhbHVlc31cbiAgICAgICAgICAgICAgICBhZGRDb2xvck1hcFZhbHVlPXthZGRDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgIHJlbW92ZUNvbG9yTWFwVmFsdWU9e3JlbW92ZUNvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICAgICAgcmVzZXRDb2xvck1hcFZhbHVlPXtyZXNldENvbG9yTWFwVmFsdWV9XG4gICAgICAgICAgICAgICAgc2VsZWN0UmVzdENvbG9yTWFwVmFsdWU9e3NlbGVjdFJlc3RDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgIGluZGV4PXtpbmRleH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdXN0b20tcGFsZXR0ZS1pbnB1dF9fcmlnaHRcIj5cbiAgICAgICAgICAgIHshZGlzYWJsZURlbGV0ZSA/IChcbiAgICAgICAgICAgICAgPERlbGV0ZUNvbG9yU3RvcCBvbkNvbG9yRGVsZXRlPXtvbkNvbG9yRGVsZXRlfSBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5kZWxldGV9IC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC8+XG4gICAgICApfVxuICAgIDwvU29ydGFibGVJdGVtPlxuICApO1xufTtcblxuZXhwb3J0IGNvbnN0IEJvdHRvbUFjdGlvbiA9ICh7b25DYW5jZWwsIG9uQ29uZmlybX0pID0+IChcbiAgPFN0eWxlZEJ1dHRvbkNvbnRhaW5lcj5cbiAgICA8QnV0dG9uIGNsYXNzTmFtZT1cImNvbmZpcm0tYXBwbHlfX2J1dHRvblwiIHNtYWxsIG9uQ2xpY2s9e29uQ29uZmlybX0+XG4gICAgICBDb25maXJtXG4gICAgPC9CdXR0b24+XG4gICAgPEJ1dHRvbiBsaW5rIHNtYWxsIG9uQ2xpY2s9e29uQ2FuY2VsfT5cbiAgICAgIENhbmNlbFxuICAgIDwvQnV0dG9uPlxuICA8L1N0eWxlZEJ1dHRvbkNvbnRhaW5lcj5cbik7XG5cbmNvbnN0IFN0eWxlZEN1c3RvbVBhbGV0dGUgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnY3VzdG9tLXBhbGV0dGUnXG59KWBcbiAgbWFyZ2luLXRvcDogOHB4O1xuYDtcblxuZnVuY3Rpb24gQ3VzdG9tUGFsZXR0ZUZhY3RvcnkoKTogUmVhY3QuRkM8Q3VzdG9tUGFsZXR0ZVByb3BzPiB7XG4gIGNvbnN0IEN1c3RvbVBhbGV0dGU6IFJlYWN0LkZDPEN1c3RvbVBhbGV0dGVQcm9wcz4gPSAoe1xuICAgIG9yZGluYWxEb21haW4sXG4gICAgY3VzdG9tUGFsZXR0ZSxcbiAgICBzZXRDb2xvclBhbGV0dGVVSSxcbiAgICBzaG93U2tldGNoZXIsXG4gICAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gICAgb25DYW5jZWwsXG4gICAgb25BcHBseVxuICB9KSA9PiB7XG4gICAgY29uc3QgW2lzU29ydGluZywgc2V0SXNTb3J0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB7Y29sb3JzLCBjb2xvck1hcH0gPSBjdXN0b21QYWxldHRlO1xuICAgIGNvbnN0IGNvbG9yQnJlYWtzID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGNvbG9yTWFwXG4gICAgICAgICAgPyBjdXN0b21QYWxldHRlLnR5cGUgPT09ICdjdXN0b20nXG4gICAgICAgICAgICA/IGNvbG9yTWFwVG9Db2xvckJyZWFrcyhjb2xvck1hcClcbiAgICAgICAgICAgIDogY29sb3JNYXBUb0NhdGVnb3JpY2FsQ29sb3JCcmVha3MoY29sb3JNYXApXG4gICAgICAgICAgOiBudWxsLFxuICAgICAgW2N1c3RvbVBhbGV0dGUudHlwZSwgY29sb3JNYXBdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uUGlja2VyVXBkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvciA9PiB7XG4gICAgICAgIGlmIChjb2xvciAmJiBOdW1iZXIuaXNGaW5pdGUoc2hvd1NrZXRjaGVyKSkge1xuICAgICAgICAgIGNvbnN0IG5ld0N1c3RvbVBhbGV0dGUgPSB1cGRhdGVDdXN0b21QYWxldHRlQ29sb3IoXG4gICAgICAgICAgICBjdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgTnVtYmVyKHNob3dTa2V0Y2hlciksXG4gICAgICAgICAgICBjb2xvci5oZXhcbiAgICAgICAgICApO1xuICAgICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IG5ld0N1c3RvbVBhbGV0dGVcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjdXN0b21QYWxldHRlLCBzaG93U2tldGNoZXIsIHNldENvbG9yUGFsZXR0ZVVJXVxuICAgICk7XG4gICAgY29uc3Qgb25Ub2dnbGVTa2V0Y2hlciA9IHVzZUNhbGxiYWNrKFxuICAgICAgdmFsID0+IHtcbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIHNob3dTa2V0Y2hlcjogdmFsXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSV1cbiAgICApO1xuICAgIGNvbnN0IG9uRGVsZXRlID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0N1c3RvbVBhbGV0dGUgPSByZW1vdmVDdXN0b21QYWxldHRlQ29sb3IoY3VzdG9tUGFsZXR0ZSwgaW5kZXgpO1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQWRkID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIC8vIGFkZCBjb2xvciBhdCB0aGUgZW5kXG4gICAgICAgIGNvbnN0IG5ld0N1c3RvbVBhbGV0dGUgPSBhZGRDdXN0b21QYWxldHRlQ29sb3IoY3VzdG9tUGFsZXR0ZSwgaW5kZXgpO1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcblxuICAgIGNvbnN0IG9uQWRkQ2F0ZWdvcmljYWxTdGVwID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25BZGQoY29sb3JzLmxlbmd0aCAtIDEpO1xuICAgIH0sIFtjb2xvcnMubGVuZ3RoLCBvbkFkZF0pO1xuXG4gICAgY29uc3Qgb25Td2F0Y2hDbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uVG9nZ2xlU2tldGNoZXIoZmFsc2UpO1xuICAgIH0sIFtvblRvZ2dsZVNrZXRjaGVyXSk7XG5cbiAgICBjb25zdCBvbkNvbmZpcm0gPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIG9uQ2FuY2VsKCk7XG4gICAgICAgIG9uQXBwbHkoZXZlbnQpO1xuICAgICAgfSxcbiAgICAgIFtvbkNhbmNlbCwgb25BcHBseV1cbiAgICApO1xuXG4gICAgY29uc3Qgb25Tb3J0RW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZXZlbnQ6IERyYWdFbmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCB7YWN0aXZlLCBvdmVyfSA9IGV2ZW50O1xuICAgICAgICBpZiAob3ZlciAmJiBhY3RpdmUuaWQgIT09IG92ZXIuaWQpIHtcbiAgICAgICAgICBjb25zdCBvbGRJbmRleCA9IGNvbG9ycy5maW5kSW5kZXgoKF8sIGluZGV4KSA9PiBgJHtpbmRleH1gID09PSBhY3RpdmUuaWQpO1xuICAgICAgICAgIGNvbnN0IG5ld0luZGV4ID0gY29sb3JzLmZpbmRJbmRleCgoXywgaW5kZXgpID0+IGAke2luZGV4fWAgPT09IG92ZXIuaWQpO1xuICAgICAgICAgIGNvbnN0IG5ld0N1c3RvbVBhbGV0dGUgPSBzb3J0Q3VzdG9tUGFsZXR0ZUNvbG9yKGN1c3RvbVBhbGV0dGUsIG9sZEluZGV4LCBuZXdJbmRleCk7XG4gICAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHNldElzU29ydGluZyhmYWxzZSk7XG4gICAgICB9LFxuICAgICAgW2NvbG9ycywgY3VzdG9tUGFsZXR0ZSwgc2V0SXNTb3J0aW5nLCBzZXRDb2xvclBhbGV0dGVVSV1cbiAgICApO1xuXG4gICAgY29uc3Qgb25Tb3J0U3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRJc1NvcnRpbmcodHJ1ZSk7XG4gICAgfSwgW3NldElzU29ydGluZ10pO1xuXG4gICAgY29uc3QgaW5wdXRDb2xvckhleCA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGluZGV4LCB2YWx1ZSkgPT4ge1xuICAgICAgICBjb25zdCBuZXdDdXN0b21QYWxldHRlID0gdXBkYXRlQ3VzdG9tUGFsZXR0ZUNvbG9yKGN1c3RvbVBhbGV0dGUsIGluZGV4LCB2YWx1ZSk7XG4gICAgICAgIC8vIHNldENvbG9ycyhuZXdDb2xvcnMpO1xuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZTogbmV3Q3VzdG9tUGFsZXR0ZVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbY3VzdG9tUGFsZXR0ZSwgc2V0Q29sb3JQYWxldHRlVUldXG4gICAgKTtcblxuICAgIGNvbnN0IGVkaXRDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICAodmFsdWUsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY3VzdG9tUGFsZXR0ZS5jb2xvck1hcCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXdDb2xvck1hcCA9IGN1c3RvbVBhbGV0dGUuY29sb3JNYXAubWFwKFxuICAgICAgICAgIChjbSwgaSkgPT4gKGkgPT09IGluZGV4ID8gW3ZhbHVlLCBjbVsxXV0gOiBjbSkgYXMgW3N0cmluZywgc3RyaW5nXVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIHNvcnQgdGhlIHVzZXIgaW5wdXRzIGluIGNhc2UgdGhlIGJyZWFrIHZhbHVlcyBhcmUgbm90IG9yZGVyZWRcbiAgICAgICAgY29uc3QgYnJlYWtzID0gbmV3Q29sb3JNYXBcbiAgICAgICAgICAubWFwKGNtID0+IGNtWzBdIGFzIHN0cmluZyB8IG51bGwpXG4gICAgICAgICAgLnNsaWNlKDAsIC0xKVxuICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBOdW1iZXIoYSkgLSBOdW1iZXIoYikpXG4gICAgICAgICAgLmNvbmNhdChudWxsKTtcbiAgICAgICAgY29uc3Qgc29ydGVkTmV3Q29sb3JNYXA6IENvbG9yTWFwID0gbmV3Q29sb3JNYXAubWFwKChjbSwgaSkgPT4gW2JyZWFrc1tpXSwgY21bMV1dKTtcblxuICAgICAgICBzZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgICAgY3VzdG9tUGFsZXR0ZToge1xuICAgICAgICAgICAgLi4uY3VzdG9tUGFsZXR0ZSxcbiAgICAgICAgICAgIGNvbG9yTWFwOiBzb3J0ZWROZXdDb2xvck1hcFxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlXVxuICAgICk7XG5cbiAgICAvLyByZW1vdmUgYSBzZWxlY3RlZCBjYXRlZ29yeSBpdGVtIGZyb20gYSBjb2xvciBtYXBcbiAgICBjb25zdCByZW1vdmVDYXRlZ29yaWNhbENvbG9yTWFwVmFsdWUgPSB1c2VDYWxsYmFjayhcbiAgICAgIChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoIWNvbG9yTWFwKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgICBjdXN0b21QYWxldHRlOiB7XG4gICAgICAgICAgICAuLi5jdXN0b21QYWxldHRlLFxuICAgICAgICAgICAgY29sb3JNYXA6IHJlbW92ZUNhdGVnb3JpY2FsVmFsdWVGcm9tQ29sb3JNYXAoY29sb3JNYXAsIGl0ZW0sIGluZGV4KVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbG9yUGFsZXR0ZVVJLCBjdXN0b21QYWxldHRlLCBjb2xvck1hcF1cbiAgICApO1xuXG4gICAgLy8gYWRkIHNlbGVjdGVkIGNhdGVnb3JpY2FsIGl0ZW1zIHRvIGEgY29sb3IgbWFwXG4gICAgY29uc3QgYWRkQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXRlbXMsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogYWRkQ2F0ZWdvcmljYWxWYWx1ZXNUb0NvbG9yTWFwKGNvbG9yTWFwLCBpdGVtcywgaW5kZXgpXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JQYWxldHRlVUksIGN1c3RvbVBhbGV0dGUsIGNvbG9yTWFwXVxuICAgICk7XG5cbiAgICAvLyByZXNldCBhIGNvbG9yIG1hcFxuICAgIGNvbnN0IHJlc2V0Q2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIGlmICghY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogcmVzZXRDYXRlZ29yaWNhbENvbG9yTWFwQnlJbmRleChjb2xvck1hcCwgaW5kZXgpXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbc2V0Q29sb3JQYWxldHRlVUksIGN1c3RvbVBhbGV0dGUsIGNvbG9yTWFwXVxuICAgICk7XG5cbiAgICAvLyBzZWxlY3QgdGhlIHJlc3QgdmFsdWVzIGZvciBhIGNvbG9yIG1hcFxuICAgIGNvbnN0IHNlbGVjdFJlc3RDYXRlZ29yaWNhbENvbG9yTWFwID0gdXNlQ2FsbGJhY2soXG4gICAgICBpbmRleCA9PiB7XG4gICAgICAgIGlmICghY29sb3JNYXApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICAgIGN1c3RvbVBhbGV0dGU6IHtcbiAgICAgICAgICAgIC4uLmN1c3RvbVBhbGV0dGUsXG4gICAgICAgICAgICBjb2xvck1hcDogc2VsZWN0UmVzdENhdGVnb3JpY2FsQ29sb3JNYXBCeUluZGV4KGNvbG9yTWFwLCBpbmRleCwgb3JkaW5hbERvbWFpbilcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2xvclBhbGV0dGVVSSwgY3VzdG9tUGFsZXR0ZSwgY29sb3JNYXAsIG9yZGluYWxEb21haW5dXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkQ3VzdG9tUGFsZXR0ZT5cbiAgICAgICAgPFdyYXBwZWRTb3J0YWJsZUNvbnRhaW5lclxuICAgICAgICAgIGNsYXNzTmFtZT1cImN1c3RvbS1wYWxldHRlX19zb3J0YWJsZS1jb250YWluZXJcIlxuICAgICAgICAgIG9uU29ydEVuZD17b25Tb3J0RW5kfVxuICAgICAgICAgIG9uU29ydFN0YXJ0PXtvblNvcnRTdGFydH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjb2xvcnMubWFwKChjb2xvciwgaW5kZXgpID0+XG4gICAgICAgICAgICBjdXN0b21QYWxldHRlLnR5cGUgPT09ICdjdXN0b20nID8gKFxuICAgICAgICAgICAgICA8Q3VzdG9tUGFsZXR0ZUlucHV0XG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICBjb2xvckJyZWFrcz17Y29sb3JCcmVha3N9XG4gICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgIGlzU29ydGluZz17aXNTb3J0aW5nfVxuICAgICAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgICAgICBpbnB1dENvbG9ySGV4PXtpbnB1dENvbG9ySGV4fVxuICAgICAgICAgICAgICAgIGRpc2FibGVBcHBlbmQ9e2NvbG9ycy5sZW5ndGggPj0gMjB9XG4gICAgICAgICAgICAgICAgZGlzYWJsZURlbGV0ZT17Y29sb3JzLmxlbmd0aCA8PSAyfVxuICAgICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgICAgICBvbkFkZD17b25BZGR9XG4gICAgICAgICAgICAgICAgb25EZWxldGU9e29uRGVsZXRlfVxuICAgICAgICAgICAgICAgIG9uVG9nZ2xlU2tldGNoZXI9e29uVG9nZ2xlU2tldGNoZXJ9XG4gICAgICAgICAgICAgICAgZWRpdENvbG9yTWFwVmFsdWU9e2VkaXRDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgb3JkaW5hbERvbWFpbiAmJiAoXG4gICAgICAgICAgICAgICAgPENhdGVnb3JpY2FsQ3VzdG9tUGFsZXR0ZUlucHV0XG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgY29sb3JNYXA9e2NvbG9yTWFwfVxuICAgICAgICAgICAgICAgICAgaW5kZXg9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgaXNTb3J0aW5nPXtpc1NvcnRpbmd9XG4gICAgICAgICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgICAgICAgICBvbkFkZD17b25BZGR9XG4gICAgICAgICAgICAgICAgICBvbkRlbGV0ZT17b25EZWxldGV9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRGVsZXRlPXtjb2xvcnMubGVuZ3RoIDw9IDJ9XG4gICAgICAgICAgICAgICAgICBvblRvZ2dsZVNrZXRjaGVyPXtvblRvZ2dsZVNrZXRjaGVyfVxuICAgICAgICAgICAgICAgICAgYWRkQ29sb3JNYXBWYWx1ZT17YWRkQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgICAgcmVtb3ZlQ29sb3JNYXBWYWx1ZT17cmVtb3ZlQ2F0ZWdvcmljYWxDb2xvck1hcFZhbHVlfVxuICAgICAgICAgICAgICAgICAgcmVzZXRDb2xvck1hcFZhbHVlPXtyZXNldENhdGVnb3JpY2FsQ29sb3JNYXBWYWx1ZX1cbiAgICAgICAgICAgICAgICAgIHNlbGVjdFJlc3RDb2xvck1hcFZhbHVlPXtzZWxlY3RSZXN0Q2F0ZWdvcmljYWxDb2xvck1hcH1cbiAgICAgICAgICAgICAgICAgIGFsbFZhbHVlcz17b3JkaW5hbERvbWFpbn1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApXG4gICAgICAgICAgKX1cbiAgICAgICAgPC9XcmFwcGVkU29ydGFibGVDb250YWluZXI+XG4gICAgICAgIHtjdXN0b21QYWxldHRlLnR5cGUgPT09ICdjdXN0b21PcmRpbmFsJyAmJiAoXG4gICAgICAgICAgPFN0eWxlZEFkZFN0ZXBDb250YWluZXI+XG4gICAgICAgICAgICA8QWRkQ29sb3JTdG9wIG9uQ29sb3JBZGQ9e29uQWRkQ2F0ZWdvcmljYWxTdGVwfSBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5hZGR9IC8+XG4gICAgICAgICAgICA8QnV0dG9uIGxpbmsgc2l6ZT1cInNtYWxcIiBvbkNsaWNrPXtvbkFkZENhdGVnb3JpY2FsU3RlcH0+XG4gICAgICAgICAgICAgIEFkZCBTdGVwXG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICA8L1N0eWxlZEFkZFN0ZXBDb250YWluZXI+XG4gICAgICAgICl9XG4gICAgICAgIDxEaXZpZGVyTGluZSAvPlxuICAgICAgICB7LyogQ2FuY2VsIG9yIENvbmZpcm0gQnV0dG9ucyAqL31cbiAgICAgICAgPEJvdHRvbUFjdGlvbiBvbkNhbmNlbD17b25DYW5jZWx9IG9uQ29uZmlybT17b25Db25maXJtfSAvPlxuICAgICAgICA8UG9ydGFsZWQgaXNPcGVuZWQ9e3Nob3dTa2V0Y2hlciAhPT0gZmFsc2V9IGxlZnQ9ezI4MH0gdG9wPXstMzAwfSBvbkNsb3NlPXtvblN3YXRjaENsb3NlfT5cbiAgICAgICAgICA8Q3VzdG9tUGlja2VyIGNvbG9yPXtjb2xvcnNbTnVtYmVyKHNob3dTa2V0Y2hlcildfSBvbkNoYW5nZT17b25QaWNrZXJVcGRhdGV9IC8+XG4gICAgICAgIDwvUG9ydGFsZWQ+XG4gICAgICA8L1N0eWxlZEN1c3RvbVBhbGV0dGU+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gQ3VzdG9tUGFsZXR0ZTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ3VzdG9tUGFsZXR0ZUZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLFVBQVUsTUFBTSxZQUFZO0FBQ25DLE9BQU9DLEtBQUssSUFHVkMsV0FBVyxFQUNYQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsTUFBTSxFQUNOQyxRQUFRLFFBQ0gsT0FBTztBQUNkLE9BQU9DLElBQUksTUFBTSx3QkFBd0I7QUFDekMsU0FDRUMsVUFBVSxFQUNWQyxhQUFhLEVBQ2JDLGNBQWMsRUFDZEMsYUFBYSxFQUNiQyxTQUFTLEVBQ1RDLFVBQVUsUUFFTCxlQUFlO0FBQ3RCLFNBQVFDLGVBQWUsRUFBRUMsV0FBVyxFQUFFQywyQkFBMkIsUUFBTyxtQkFBbUI7QUFDM0YsU0FBUUMsR0FBRyxRQUFPLG9CQUFvQjtBQUN0QyxPQUFPQyxNQUFNLElBQUdDLEdBQUcsUUFBTyxtQkFBbUI7QUFDN0MsT0FBT0MsUUFBUSxNQUFNLHVCQUF1QjtBQUM1QyxTQUFRQyxPQUFPLFFBQU8sZ0NBQWdD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
@@ -4,7 +4,8 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLit
4
4
  var _excluded = ["rasterTile"],
5
5
  _excluded2 = ["wms"],
6
6
  _excluded3 = ["flow"],
7
- _excluded4 = ["bitmap"];
7
+ _excluded4 = ["bitmap"],
8
+ _excluded5 = ["a5"];
8
9
  var _templateObject;
9
10
  // SPDX-License-Identifier: MIT
10
11
  // Copyright contributors to the kepler.gl project
@@ -42,6 +43,7 @@ function DatasetLayerSectionFactory(SourceDataCatalog, LayerList) {
42
43
  var enableWMSLayer = getApplicationConfig().enableWMSLayer;
43
44
  var enableFlowLayer = getApplicationConfig().enableFlowLayer;
44
45
  var enableBitmapLayer = getApplicationConfig().enableBitmapLayer;
46
+ var enableA5Layer = getApplicationConfig().enableA5Layer;
45
47
  var filteredLayerClasses = useMemo(function () {
46
48
  var filteredClasses = layerClasses;
47
49
  if (!enableRasterTileLayer) {
@@ -68,8 +70,14 @@ function DatasetLayerSectionFactory(SourceDataCatalog, LayerList) {
68
70
  _rest3 = _objectWithoutProperties(_filteredClasses4, _excluded4);
69
71
  filteredClasses = _rest3;
70
72
  }
73
+ if (!enableA5Layer) {
74
+ var _filteredClasses5 = filteredClasses,
75
+ _a5 = _filteredClasses5.a5,
76
+ _rest4 = _objectWithoutProperties(_filteredClasses5, _excluded5);
77
+ filteredClasses = _rest4;
78
+ }
71
79
  return filteredClasses;
72
- }, [enableRasterTileLayer, enableWMSLayer, enableFlowLayer, enableBitmapLayer, layerClasses]);
80
+ }, [enableRasterTileLayer, enableWMSLayer, enableFlowLayer, enableBitmapLayer, enableA5Layer, layerClasses]);
73
81
  return /*#__PURE__*/React.createElement(DatasetLayerSectionWrapper, null, /*#__PURE__*/React.createElement(SourceDataCatalog, {
74
82
  datasets: datasetCatalog,
75
83
  showDatasetTable: showDatasetTable,
@@ -91,4 +99,4 @@ function DatasetLayerSectionFactory(SourceDataCatalog, LayerList) {
91
99
  return DatasetLayerSection;
92
100
  }
93
101
  export default DatasetLayerSectionFactory;
94
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJzdHlsZWQiLCJTb3VyY2VEYXRhQ2F0YWxvZ0ZhY3RvcnkiLCJMYXllckxpc3RGYWN0b3J5IiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJEYXRhc2V0TGF5ZXJTZWN0aW9uV3JhcHBlciIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsIkRhdGFzZXRMYXllclNlY3Rpb25GYWN0b3J5IiwiZGVwcyIsIlNvdXJjZURhdGFDYXRhbG9nIiwiTGF5ZXJMaXN0IiwiRGF0YXNldExheWVyU2VjdGlvbiIsInByb3BzIiwiZGF0YXNldCIsImRhdGFzZXRzIiwic2hvd0RhdGFzZXRUYWJsZSIsImxheWVycyIsInVwZGF0ZVRhYmxlQ29sb3IiLCJzaG93RGVsZXRlRGF0YXNldCIsInJlbW92ZURhdGFzZXQiLCJsYXllck9yZGVyIiwibGF5ZXJDbGFzc2VzIiwidWlTdGF0ZUFjdGlvbnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZSIsImRhdGFzZXRDYXRhbG9nIiwiX2RlZmluZVByb3BlcnR5IiwiaWQiLCJlbmFibGVSYXN0ZXJUaWxlTGF5ZXIiLCJlbmFibGVXTVNMYXllciIsImVuYWJsZUZsb3dMYXllciIsImVuYWJsZUJpdG1hcExheWVyIiwiZmlsdGVyZWRMYXllckNsYXNzZXMiLCJmaWx0ZXJlZENsYXNzZXMiLCJfZmlsdGVyZWRDbGFzc2VzIiwiX3Jhc3RlclRpbGUiLCJyYXN0ZXJUaWxlIiwicmVzdCIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIl9maWx0ZXJlZENsYXNzZXMyIiwiX3dtcyIsIndtcyIsIl9leGNsdWRlZDIiLCJfZmlsdGVyZWRDbGFzc2VzMyIsIl9mbG93IiwiZmxvdyIsIl9leGNsdWRlZDMiLCJfZmlsdGVyZWRDbGFzc2VzNCIsIl9iaXRtYXAiLCJiaXRtYXAiLCJfZXhjbHVkZWQ0IiwiY3JlYXRlRWxlbWVudCIsImlzU29ydGFibGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLXNlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgU291cmNlRGF0YUNhdGFsb2dGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9zb3VyY2UtZGF0YS1jYXRhbG9nJztcbmltcG9ydCBMYXllckxpc3RGYWN0b3J5IGZyb20gJy4vbGF5ZXItbGlzdCc7XG5pbXBvcnQge0xheWVyLCBMYXllckNsYXNzZXNUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge1VJU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyLCBWaXNTdGF0ZUFjdGlvbnMsIE1hcFN0YXRlQWN0aW9uc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7S2VwbGVyVGFibGUsIERhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtMYXllck9yZGVyLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgRGF0YXNldExheWVyU2VjdGlvblByb3BzID0ge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xuICBsYXllcnM6IExheWVyW107XG4gIGxheWVyT3JkZXI6IExheWVyT3JkZXI7XG4gIGxheWVyQ2xhc3NlczogTGF5ZXJDbGFzc2VzVHlwZTtcbiAgc2hvd0RlbGV0ZURhdGFzZXQ6IGJvb2xlYW47XG4gIHNob3dEYXRhc2V0VGFibGU6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy5zaG93RGF0YXNldFRhYmxlPjtcbiAgdXBkYXRlVGFibGVDb2xvcjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVRhYmxlQ29sb3I+O1xuICByZW1vdmVEYXRhc2V0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBVSVN0YXRlQWN0aW9ucy5vcGVuRGVsZXRlTW9kYWw+O1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbn07XG5cbmNvbnN0IERhdGFzZXRMYXllclNlY3Rpb25XcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2RhdGFzZXQtbGF5ZXItc2VjdGlvbidcbn0pYFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuYDtcblxuRGF0YXNldExheWVyU2VjdGlvbkZhY3RvcnkuZGVwcyA9IFtTb3VyY2VEYXRhQ2F0YWxvZ0ZhY3RvcnksIExheWVyTGlzdEZhY3RvcnldO1xuXG5mdW5jdGlvbiBEYXRhc2V0TGF5ZXJTZWN0aW9uRmFjdG9yeShcbiAgU291cmNlRGF0YUNhdGFsb2c6IFJldHVyblR5cGU8dHlwZW9mIFNvdXJjZURhdGFDYXRhbG9nRmFjdG9yeT4sXG4gIExheWVyTGlzdDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMaXN0RmFjdG9yeT5cbikge1xuICBjb25zdCBEYXRhc2V0TGF5ZXJTZWN0aW9uOiBSZWFjdC5GQzxEYXRhc2V0TGF5ZXJTZWN0aW9uUHJvcHM+ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGRhdGFzZXQsXG4gICAgICBkYXRhc2V0cyxcbiAgICAgIHNob3dEYXRhc2V0VGFibGUsXG4gICAgICBsYXllcnMsXG4gICAgICB1cGRhdGVUYWJsZUNvbG9yLFxuICAgICAgc2hvd0RlbGV0ZURhdGFzZXQsXG4gICAgICByZW1vdmVEYXRhc2V0LFxuICAgICAgbGF5ZXJPcmRlcixcbiAgICAgIGxheWVyQ2xhc3NlcyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBkYXRhc2V0Q2F0YWxvZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIHtbZGF0YXNldC5pZF06IGRhdGFzZXR9O1xuICAgIH0sIFtkYXRhc2V0XSk7XG5cbiAgICAvLyB0ZW1wIHBhdGNoIHRvIGhpZGUgbGF5ZXJzIHRoYXQgYXJlIGluIGRldmVsb3BtZW50XG4gICAgY29uc3QgZW5hYmxlUmFzdGVyVGlsZUxheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVSYXN0ZXJUaWxlTGF5ZXI7XG4gICAgY29uc3QgZW5hYmxlV01TTGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZVdNU0xheWVyO1xuICAgIGNvbnN0IGVuYWJsZUZsb3dMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlRmxvd0xheWVyO1xuICAgIGNvbnN0IGVuYWJsZUJpdG1hcExheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVCaXRtYXBMYXllcjtcblxuICAgIGNvbnN0IGZpbHRlcmVkTGF5ZXJDbGFzc2VzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBsZXQgZmlsdGVyZWRDbGFzc2VzID0gbGF5ZXJDbGFzc2VzO1xuICAgICAgaWYgKCFlbmFibGVSYXN0ZXJUaWxlTGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge3Jhc3RlclRpbGU6IF9yYXN0ZXJUaWxlLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVXTVNMYXllcikge1xuICAgICAgICBjb25zdCB7d21zOiBfd21zLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVGbG93TGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge2Zsb3c6IF9mbG93LCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgaWYgKCFlbmFibGVCaXRtYXBMYXllcikge1xuICAgICAgICBjb25zdCB7Yml0bWFwOiBfYml0bWFwLCAuLi5yZXN0fSA9IGZpbHRlcmVkQ2xhc3NlcztcbiAgICAgICAgZmlsdGVyZWRDbGFzc2VzID0gcmVzdCBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZpbHRlcmVkQ2xhc3NlcyBhcyBMYXllckNsYXNzZXNUeXBlO1xuICAgIH0sIFtlbmFibGVSYXN0ZXJUaWxlTGF5ZXIsIGVuYWJsZVdNU0xheWVyLCBlbmFibGVGbG93TGF5ZXIsIGVuYWJsZUJpdG1hcExheWVyLCBsYXllckNsYXNzZXNdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RGF0YXNldExheWVyU2VjdGlvbldyYXBwZXI+XG4gICAgICAgIDxTb3VyY2VEYXRhQ2F0YWxvZ1xuICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0Q2F0YWxvZ31cbiAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICBzaG93RGVsZXRlRGF0YXNldD17c2hvd0RlbGV0ZURhdGFzZXR9XG4gICAgICAgIC8+XG4gICAgICAgIDxMYXllckxpc3RcbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICBsYXllckNsYXNzZXM9e2ZpbHRlcmVkTGF5ZXJDbGFzc2VzfVxuICAgICAgICAgIHVpU3RhdGVBY3Rpb25zPXt1aVN0YXRlQWN0aW9uc31cbiAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICBtYXBTdGF0ZUFjdGlvbnM9e21hcFN0YXRlQWN0aW9uc31cbiAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgaXNTb3J0YWJsZT17ZmFsc2V9XG4gICAgICAgIC8+XG4gICAgICA8L0RhdGFzZXRMYXllclNlY3Rpb25XcmFwcGVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIERhdGFzZXRMYXllclNlY3Rpb247XG59XG5cbmV4cG9ydCBkZWZhdWx0IERhdGFzZXRMYXllclNlY3Rpb25GYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxPQUFPLFFBQU8sT0FBTztBQUNwQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBRXRDLE9BQU9DLHdCQUF3QixNQUFNLCtCQUErQjtBQUNwRSxPQUFPQyxnQkFBZ0IsTUFBTSxjQUFjO0FBSTNDLFNBQVFDLG9CQUFvQixRQUFPLGtCQUFrQjtBQW1CckQsSUFBTUMsMEJBQTBCLEdBQUdKLE1BQU0sQ0FBQ0ssR0FBRyxDQUFDQyxLQUFLLENBQUM7RUFDbERDLFNBQVMsRUFBRTtBQUNiLENBQUMsQ0FB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
102
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZU1lbW8iLCJzdHlsZWQiLCJTb3VyY2VEYXRhQ2F0YWxvZ0ZhY3RvcnkiLCJMYXllckxpc3RGYWN0b3J5IiwiZ2V0QXBwbGljYXRpb25Db25maWciLCJEYXRhc2V0TGF5ZXJTZWN0aW9uV3JhcHBlciIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsIkRhdGFzZXRMYXllclNlY3Rpb25GYWN0b3J5IiwiZGVwcyIsIlNvdXJjZURhdGFDYXRhbG9nIiwiTGF5ZXJMaXN0IiwiRGF0YXNldExheWVyU2VjdGlvbiIsInByb3BzIiwiZGF0YXNldCIsImRhdGFzZXRzIiwic2hvd0RhdGFzZXRUYWJsZSIsImxheWVycyIsInVwZGF0ZVRhYmxlQ29sb3IiLCJzaG93RGVsZXRlRGF0YXNldCIsInJlbW92ZURhdGFzZXQiLCJsYXllck9yZGVyIiwibGF5ZXJDbGFzc2VzIiwidWlTdGF0ZUFjdGlvbnMiLCJ2aXNTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZUFjdGlvbnMiLCJtYXBTdGF0ZSIsImRhdGFzZXRDYXRhbG9nIiwiX2RlZmluZVByb3BlcnR5IiwiaWQiLCJlbmFibGVSYXN0ZXJUaWxlTGF5ZXIiLCJlbmFibGVXTVNMYXllciIsImVuYWJsZUZsb3dMYXllciIsImVuYWJsZUJpdG1hcExheWVyIiwiZW5hYmxlQTVMYXllciIsImZpbHRlcmVkTGF5ZXJDbGFzc2VzIiwiZmlsdGVyZWRDbGFzc2VzIiwiX2ZpbHRlcmVkQ2xhc3NlcyIsIl9yYXN0ZXJUaWxlIiwicmFzdGVyVGlsZSIsInJlc3QiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJfZmlsdGVyZWRDbGFzc2VzMiIsIl93bXMiLCJ3bXMiLCJfZXhjbHVkZWQyIiwiX2ZpbHRlcmVkQ2xhc3NlczMiLCJfZmxvdyIsImZsb3ciLCJfZXhjbHVkZWQzIiwiX2ZpbHRlcmVkQ2xhc3NlczQiLCJfYml0bWFwIiwiYml0bWFwIiwiX2V4Y2x1ZGVkNCIsIl9maWx0ZXJlZENsYXNzZXM1IiwiX2E1IiwiYTUiLCJfZXhjbHVkZWQ1IiwiY3JlYXRlRWxlbWVudCIsImlzU29ydGFibGUiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9kYXRhc2V0LWxheWVyLXNlY3Rpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgU291cmNlRGF0YUNhdGFsb2dGYWN0b3J5IGZyb20gJy4uL2NvbW1vbi9zb3VyY2UtZGF0YS1jYXRhbG9nJztcbmltcG9ydCBMYXllckxpc3RGYWN0b3J5IGZyb20gJy4vbGF5ZXItbGlzdCc7XG5pbXBvcnQge0xheWVyLCBMYXllckNsYXNzZXNUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge1VJU3RhdGVBY3Rpb25zLCBBY3Rpb25IYW5kbGVyLCBWaXNTdGF0ZUFjdGlvbnMsIE1hcFN0YXRlQWN0aW9uc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7S2VwbGVyVGFibGUsIERhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7Z2V0QXBwbGljYXRpb25Db25maWd9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtMYXllck9yZGVyLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgRGF0YXNldExheWVyU2VjdGlvblByb3BzID0ge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlO1xuICBsYXllcnM6IExheWVyW107XG4gIGxheWVyT3JkZXI6IExheWVyT3JkZXI7XG4gIGxheWVyQ2xhc3NlczogTGF5ZXJDbGFzc2VzVHlwZTtcbiAgc2hvd0RlbGV0ZURhdGFzZXQ6IGJvb2xlYW47XG4gIHNob3dEYXRhc2V0VGFibGU6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIFZpc1N0YXRlQWN0aW9ucy5zaG93RGF0YXNldFRhYmxlPjtcbiAgdXBkYXRlVGFibGVDb2xvcjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgVmlzU3RhdGVBY3Rpb25zLnVwZGF0ZVRhYmxlQ29sb3I+O1xuICByZW1vdmVEYXRhc2V0OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiBVSVN0YXRlQWN0aW9ucy5vcGVuRGVsZXRlTW9kYWw+O1xuICB1aVN0YXRlQWN0aW9uczogdHlwZW9mIFVJU3RhdGVBY3Rpb25zO1xuICB2aXNTdGF0ZUFjdGlvbnM6IHR5cGVvZiBWaXNTdGF0ZUFjdGlvbnM7XG4gIG1hcFN0YXRlQWN0aW9uczogdHlwZW9mIE1hcFN0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbn07XG5cbmNvbnN0IERhdGFzZXRMYXllclNlY3Rpb25XcmFwcGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2RhdGFzZXQtbGF5ZXItc2VjdGlvbidcbn0pYFxuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuYDtcblxuRGF0YXNldExheWVyU2VjdGlvbkZhY3RvcnkuZGVwcyA9IFtTb3VyY2VEYXRhQ2F0YWxvZ0ZhY3RvcnksIExheWVyTGlzdEZhY3RvcnldO1xuXG5mdW5jdGlvbiBEYXRhc2V0TGF5ZXJTZWN0aW9uRmFjdG9yeShcbiAgU291cmNlRGF0YUNhdGFsb2c6IFJldHVyblR5cGU8dHlwZW9mIFNvdXJjZURhdGFDYXRhbG9nRmFjdG9yeT4sXG4gIExheWVyTGlzdDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMaXN0RmFjdG9yeT5cbikge1xuICBjb25zdCBEYXRhc2V0TGF5ZXJTZWN0aW9uOiBSZWFjdC5GQzxEYXRhc2V0TGF5ZXJTZWN0aW9uUHJvcHM+ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGRhdGFzZXQsXG4gICAgICBkYXRhc2V0cyxcbiAgICAgIHNob3dEYXRhc2V0VGFibGUsXG4gICAgICBsYXllcnMsXG4gICAgICB1cGRhdGVUYWJsZUNvbG9yLFxuICAgICAgc2hvd0RlbGV0ZURhdGFzZXQsXG4gICAgICByZW1vdmVEYXRhc2V0LFxuICAgICAgbGF5ZXJPcmRlcixcbiAgICAgIGxheWVyQ2xhc3NlcyxcbiAgICAgIHVpU3RhdGVBY3Rpb25zLFxuICAgICAgdmlzU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVBY3Rpb25zLFxuICAgICAgbWFwU3RhdGVcbiAgICB9ID0gcHJvcHM7XG5cbiAgICBjb25zdCBkYXRhc2V0Q2F0YWxvZyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgcmV0dXJuIHtbZGF0YXNldC5pZF06IGRhdGFzZXR9O1xuICAgIH0sIFtkYXRhc2V0XSk7XG5cbiAgICAvLyB0ZW1wIHBhdGNoIHRvIGhpZGUgbGF5ZXJzIHRoYXQgYXJlIGluIGRldmVsb3BtZW50XG4gICAgY29uc3QgZW5hYmxlUmFzdGVyVGlsZUxheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVSYXN0ZXJUaWxlTGF5ZXI7XG4gICAgY29uc3QgZW5hYmxlV01TTGF5ZXIgPSBnZXRBcHBsaWNhdGlvbkNvbmZpZygpLmVuYWJsZVdNU0xheWVyO1xuICAgIGNvbnN0IGVuYWJsZUZsb3dMYXllciA9IGdldEFwcGxpY2F0aW9uQ29uZmlnKCkuZW5hYmxlRmxvd0xheWVyO1xuICAgIGNvbnN0IGVuYWJsZUJpdG1hcExheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVCaXRtYXBMYXllcjtcbiAgICBjb25zdCBlbmFibGVBNUxheWVyID0gZ2V0QXBwbGljYXRpb25Db25maWcoKS5lbmFibGVBNUxheWVyO1xuXG4gICAgY29uc3QgZmlsdGVyZWRMYXllckNsYXNzZXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGxldCBmaWx0ZXJlZENsYXNzZXMgPSBsYXllckNsYXNzZXM7XG4gICAgICBpZiAoIWVuYWJsZVJhc3RlclRpbGVMYXllcikge1xuICAgICAgICBjb25zdCB7cmFzdGVyVGlsZTogX3Jhc3RlclRpbGUsIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICBpZiAoIWVuYWJsZVdNU0xheWVyKSB7XG4gICAgICAgIGNvbnN0IHt3bXM6IF93bXMsIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICBpZiAoIWVuYWJsZUZsb3dMYXllcikge1xuICAgICAgICBjb25zdCB7ZmxvdzogX2Zsb3csIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICBpZiAoIWVuYWJsZUJpdG1hcExheWVyKSB7XG4gICAgICAgIGNvbnN0IHtiaXRtYXA6IF9iaXRtYXAsIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICBpZiAoIWVuYWJsZUE1TGF5ZXIpIHtcbiAgICAgICAgY29uc3Qge2E1OiBfYTUsIC4uLnJlc3R9ID0gZmlsdGVyZWRDbGFzc2VzO1xuICAgICAgICBmaWx0ZXJlZENsYXNzZXMgPSByZXN0IGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmlsdGVyZWRDbGFzc2VzIGFzIExheWVyQ2xhc3Nlc1R5cGU7XG4gICAgfSwgW1xuICAgICAgZW5hYmxlUmFzdGVyVGlsZUxheWVyLFxuICAgICAgZW5hYmxlV01TTGF5ZXIsXG4gICAgICBlbmFibGVGbG93TGF5ZXIsXG4gICAgICBlbmFibGVCaXRtYXBMYXllcixcbiAgICAgIGVuYWJsZUE1TGF5ZXIsXG4gICAgICBsYXllckNsYXNzZXNcbiAgICBdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RGF0YXNldExheWVyU2VjdGlvbldyYXBwZXI+XG4gICAgICAgIDxTb3VyY2VEYXRhQ2F0YWxvZ1xuICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0Q2F0YWxvZ31cbiAgICAgICAgICBzaG93RGF0YXNldFRhYmxlPXtzaG93RGF0YXNldFRhYmxlfVxuICAgICAgICAgIHVwZGF0ZVRhYmxlQ29sb3I9e3VwZGF0ZVRhYmxlQ29sb3J9XG4gICAgICAgICAgcmVtb3ZlRGF0YXNldD17cmVtb3ZlRGF0YXNldH1cbiAgICAgICAgICBzaG93RGVsZXRlRGF0YXNldD17c2hvd0RlbGV0ZURhdGFzZXR9XG4gICAgICAgIC8+XG4gICAgICAgIDxMYXllckxpc3RcbiAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICBsYXllckNsYXNzZXM9e2ZpbHRlcmVkTGF5ZXJDbGFzc2VzfVxuICAgICAgICAgIHVpU3RhdGVBY3Rpb25zPXt1aVN0YXRlQWN0aW9uc31cbiAgICAgICAgICB2aXNTdGF0ZUFjdGlvbnM9e3Zpc1N0YXRlQWN0aW9uc31cbiAgICAgICAgICBtYXBTdGF0ZUFjdGlvbnM9e21hcFN0YXRlQWN0aW9uc31cbiAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgaXNTb3J0YWJsZT17ZmFsc2V9XG4gICAgICAgIC8+XG4gICAgICA8L0RhdGFzZXRMYXllclNlY3Rpb25XcmFwcGVyPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIERhdGFzZXRMYXllclNlY3Rp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