@microsoft/terraform-cdk-constructs 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/.jsii +60999 -15780
  2. package/API.md +54947 -10610
  3. package/README.md +72 -36
  4. package/docs/monitoring-guide.md +206 -0
  5. package/docs/testing.md +84 -1
  6. package/lib/azure-actiongroup/index.d.ts +11 -0
  7. package/lib/azure-actiongroup/index.js +28 -0
  8. package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
  9. package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
  10. package/lib/azure-actiongroup/lib/action-group.d.ts +312 -0
  11. package/lib/azure-actiongroup/lib/action-group.js +201 -0
  12. package/lib/azure-actiongroup/lib/index.d.ts +5 -0
  13. package/lib/azure-actiongroup/lib/index.js +22 -0
  14. package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
  15. package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
  16. package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
  17. package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
  18. package/lib/azure-activitylogalert/index.d.ts +11 -0
  19. package/lib/azure-activitylogalert/index.js +28 -0
  20. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
  21. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
  22. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +236 -0
  23. package/lib/azure-activitylogalert/lib/activity-log-alert.js +212 -0
  24. package/lib/azure-activitylogalert/lib/index.d.ts +5 -0
  25. package/lib/azure-activitylogalert/lib/index.js +22 -0
  26. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
  27. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
  28. package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
  29. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
  30. package/lib/azure-aks/index.d.ts +9 -0
  31. package/lib/azure-aks/index.js +28 -0
  32. package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
  33. package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
  34. package/lib/azure-aks/lib/aks-cluster.d.ts +395 -0
  35. package/lib/azure-aks/lib/aks-cluster.js +489 -0
  36. package/lib/azure-aks/lib/index.d.ts +11 -0
  37. package/lib/azure-aks/lib/index.js +38 -0
  38. package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
  39. package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
  40. package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
  41. package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
  42. package/lib/azure-diagnosticsettings/index.d.ts +7 -0
  43. package/lib/azure-diagnosticsettings/index.js +24 -0
  44. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
  45. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
  46. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +193 -0
  47. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +200 -0
  48. package/lib/azure-diagnosticsettings/lib/index.d.ts +8 -0
  49. package/lib/azure-diagnosticsettings/lib/index.js +25 -0
  50. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
  51. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
  52. package/lib/azure-metricalert/index.d.ts +11 -0
  53. package/lib/azure-metricalert/index.js +28 -0
  54. package/lib/azure-metricalert/lib/index.d.ts +5 -0
  55. package/lib/azure-metricalert/lib/index.js +22 -0
  56. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  57. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  58. package/lib/azure-metricalert/lib/metric-alert.d.ts +344 -0
  59. package/lib/azure-metricalert/lib/metric-alert.js +252 -0
  60. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  61. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  62. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  63. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  64. package/lib/azure-networkinterface/index.d.ts +4 -0
  65. package/lib/azure-networkinterface/index.js +21 -0
  66. package/lib/azure-networkinterface/lib/index.d.ts +6 -0
  67. package/lib/azure-networkinterface/lib/index.js +22 -0
  68. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  69. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  70. package/lib/azure-networkinterface/lib/network-interface.d.ts +265 -0
  71. package/lib/azure-networkinterface/lib/network-interface.js +228 -0
  72. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  73. package/lib/azure-networkinterface/test/network-interface.integ.js +102 -0
  74. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  75. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  76. package/lib/azure-networksecuritygroup/index.d.ts +6 -0
  77. package/lib/azure-networksecuritygroup/index.js +23 -0
  78. package/lib/azure-networksecuritygroup/lib/index.d.ts +5 -0
  79. package/lib/azure-networksecuritygroup/lib/index.js +16 -0
  80. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  81. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  82. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +268 -0
  83. package/lib/azure-networksecuritygroup/lib/network-security-group.js +248 -0
  84. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  85. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  86. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  87. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  88. package/lib/azure-publicipaddress/index.d.ts +6 -0
  89. package/lib/azure-publicipaddress/index.js +23 -0
  90. package/lib/azure-publicipaddress/lib/index.d.ts +9 -0
  91. package/lib/azure-publicipaddress/lib/index.js +19 -0
  92. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  93. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  94. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +256 -0
  95. package/lib/azure-publicipaddress/lib/public-ip-address.js +267 -0
  96. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  97. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  98. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  99. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  100. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  101. package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
  102. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
  103. package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
  104. package/lib/azure-storageaccount/lib/storage-account.d.ts +38 -1
  105. package/lib/azure-storageaccount/lib/storage-account.js +138 -2
  106. package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
  107. package/lib/azure-subnet/index.d.ts +4 -0
  108. package/lib/azure-subnet/index.js +21 -0
  109. package/lib/azure-subnet/lib/index.d.ts +5 -0
  110. package/lib/azure-subnet/lib/index.js +22 -0
  111. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  112. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  113. package/lib/azure-subnet/lib/subnet.d.ts +285 -0
  114. package/lib/azure-subnet/lib/subnet.js +254 -0
  115. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  116. package/lib/azure-subnet/test/subnet.integ.js +80 -0
  117. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  118. package/lib/azure-subnet/test/subnet.spec.js +396 -0
  119. package/lib/azure-virtualmachine/index.d.ts +7 -0
  120. package/lib/azure-virtualmachine/index.js +24 -0
  121. package/lib/azure-virtualmachine/lib/index.d.ts +11 -0
  122. package/lib/azure-virtualmachine/lib/index.js +38 -0
  123. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  124. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  125. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +377 -0
  126. package/lib/azure-virtualmachine/lib/virtual-machine.js +462 -0
  127. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  128. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  129. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  130. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  131. package/lib/azure-virtualnetwork/index.d.ts +10 -0
  132. package/lib/azure-virtualnetwork/index.js +28 -0
  133. package/lib/azure-virtualnetwork/lib/index.d.ts +9 -0
  134. package/lib/azure-virtualnetwork/lib/index.js +22 -0
  135. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  136. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  137. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +213 -0
  138. package/lib/azure-virtualnetwork/lib/virtual-network.js +245 -0
  139. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  140. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  141. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  142. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  143. package/lib/azure-vmss/index.d.ts +6 -0
  144. package/lib/azure-vmss/index.js +23 -0
  145. package/lib/azure-vmss/lib/index.d.ts +9 -0
  146. package/lib/azure-vmss/lib/index.js +39 -0
  147. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +258 -0
  148. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +503 -0
  149. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  150. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  151. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  152. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  153. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  154. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  155. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +95 -27
  156. package/lib/core-azure/lib/azapi/azapi-resource.js +95 -58
  157. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
  158. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
  159. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
  160. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
  161. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
  162. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
  163. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
  164. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
  165. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
  166. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
  167. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
  168. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
  169. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
  170. package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
  171. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  172. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  173. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
  174. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +274 -14
  175. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
  176. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
  177. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
  178. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
  179. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
  180. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
  181. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +4 -2
  182. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  183. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  184. package/lib/index.d.ts +37 -0
  185. package/lib/index.js +40 -2
  186. package/lib/testing/index.d.ts +92 -2
  187. package/lib/testing/index.js +258 -18
  188. package/lib/testing/lib/cleanup.d.ts +229 -0
  189. package/lib/testing/lib/cleanup.js +331 -0
  190. package/lib/testing/lib/metadata.d.ts +151 -0
  191. package/lib/testing/lib/metadata.js +180 -0
  192. package/lib/testing/lib/naming.d.ts +96 -0
  193. package/lib/testing/lib/naming.js +336 -0
  194. package/node_modules/uuid/LICENSE.md +9 -0
  195. package/node_modules/uuid/README.md +510 -0
  196. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  197. package/node_modules/uuid/dist/cjs/index.js +31 -0
  198. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  199. package/node_modules/uuid/dist/cjs/max.js +3 -0
  200. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  201. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  202. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  203. package/node_modules/uuid/dist/cjs/native.js +4 -0
  204. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  205. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  206. package/node_modules/uuid/dist/cjs/package.json +1 -0
  207. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  208. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  209. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  210. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  211. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  212. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  213. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  214. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  215. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  216. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  217. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  218. package/node_modules/uuid/dist/cjs/types.js +2 -0
  219. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  220. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  221. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  222. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  223. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  224. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  225. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  226. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  227. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  228. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  229. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  230. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  231. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  232. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  233. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  234. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  235. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  236. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  237. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  238. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  239. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  240. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  241. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  242. package/node_modules/uuid/dist/cjs/version.js +10 -0
  243. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  244. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  245. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  246. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  247. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  248. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  249. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  250. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  251. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  252. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  253. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  254. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  255. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  256. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  257. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  258. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  259. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  260. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  261. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  262. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  263. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  264. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  265. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  266. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  267. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  268. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  269. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  270. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  271. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  272. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  273. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  274. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  275. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  276. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  277. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  278. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  279. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  280. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  281. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  282. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  283. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  284. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  285. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  286. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  287. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  288. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  289. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  290. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  291. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  292. package/node_modules/uuid/dist/esm/index.js +14 -0
  293. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  294. package/node_modules/uuid/dist/esm/max.js +1 -0
  295. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  296. package/node_modules/uuid/dist/esm/md5.js +11 -0
  297. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  298. package/node_modules/uuid/dist/esm/native.js +2 -0
  299. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  300. package/node_modules/uuid/dist/esm/nil.js +1 -0
  301. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  302. package/node_modules/uuid/dist/esm/parse.js +9 -0
  303. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  304. package/node_modules/uuid/dist/esm/regex.js +1 -0
  305. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  306. package/node_modules/uuid/dist/esm/rng.js +10 -0
  307. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  308. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  309. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  310. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  311. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  312. package/node_modules/uuid/dist/esm/types.js +1 -0
  313. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  314. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  315. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  316. package/node_modules/uuid/dist/esm/v1.js +83 -0
  317. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  318. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  319. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  320. package/node_modules/uuid/dist/esm/v3.js +9 -0
  321. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  322. package/node_modules/uuid/dist/esm/v35.js +36 -0
  323. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  324. package/node_modules/uuid/dist/esm/v4.js +27 -0
  325. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  326. package/node_modules/uuid/dist/esm/v5.js +9 -0
  327. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  328. package/node_modules/uuid/dist/esm/v6.js +17 -0
  329. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  330. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  331. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  332. package/node_modules/uuid/dist/esm/v7.js +65 -0
  333. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  334. package/node_modules/uuid/dist/esm/validate.js +5 -0
  335. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  336. package/node_modules/uuid/dist/esm/version.js +8 -0
  337. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  338. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  339. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  340. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  341. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  342. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  343. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  344. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  345. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  346. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  347. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  348. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  349. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  350. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  351. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  352. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  353. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  354. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  355. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  356. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  357. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  358. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  359. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  360. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  361. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  362. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  363. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  364. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  365. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  366. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  367. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  368. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  369. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  370. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  371. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  372. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  373. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  374. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  375. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  376. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  377. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  378. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  379. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  380. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  381. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  382. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  383. package/node_modules/uuid/package.json +132 -0
  384. package/package.json +17 -12
  385. package/scripts/cleanup-test-resources.ts +369 -0
@@ -0,0 +1,572 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Kubernetes Service (AKS) across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.ContainerService/managedClusters
6
+ * across all supported API versions. The schemas are used by the VersionedAzapiResource
7
+ * framework for validation, transformation, and version management.
8
+ *
9
+ * API Versions verified from Azure REST API Specifications:
10
+ * - 2024-10-01: https://github.com/Azure/azure-rest-api-specs/.../2024-10-01/managedClusters.json
11
+ * - 2025-01-01: https://github.com/Azure/azure-rest-api-specs/.../2025-01-01/managedClusters.json
12
+ * - 2025-07-01: https://github.com/Azure/azure-rest-api-specs/.../2025-07-01/managedClusters.json
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.AKS_CLUSTER_TYPE = exports.ALL_AKS_CLUSTER_VERSIONS = exports.AKS_CLUSTER_VERSION_2025_07_01 = exports.AKS_CLUSTER_VERSION_2025_01_01 = exports.AKS_CLUSTER_VERSION_2024_10_01 = exports.AKS_CLUSTER_SCHEMA_2025_07_01 = exports.AKS_CLUSTER_SCHEMA_2025_01_01 = exports.AKS_CLUSTER_SCHEMA_2024_10_01 = void 0;
16
+ const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
17
+ // =============================================================================
18
+ // COMMON PROPERTY DEFINITIONS
19
+ // =============================================================================
20
+ /**
21
+ * Common property definitions shared across all AKS Cluster versions
22
+ */
23
+ const COMMON_PROPERTIES = {
24
+ location: {
25
+ dataType: version_interfaces_1.PropertyType.STRING,
26
+ required: true,
27
+ description: "The Azure region where the AKS cluster will be created",
28
+ validation: [
29
+ {
30
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
31
+ message: "Location is required for AKS clusters",
32
+ },
33
+ {
34
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
35
+ value: "^[a-z0-9]+$",
36
+ message: "Location must contain only lowercase letters and numbers",
37
+ },
38
+ ],
39
+ },
40
+ tags: {
41
+ dataType: version_interfaces_1.PropertyType.OBJECT,
42
+ required: false,
43
+ defaultValue: {},
44
+ description: "A dictionary of tags to apply to the AKS cluster",
45
+ validation: [
46
+ {
47
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
48
+ value: version_interfaces_1.PropertyType.OBJECT,
49
+ message: "Tags must be an object with string key-value pairs",
50
+ },
51
+ ],
52
+ },
53
+ name: {
54
+ dataType: version_interfaces_1.PropertyType.STRING,
55
+ required: true,
56
+ description: "The name of the AKS cluster",
57
+ validation: [
58
+ {
59
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
60
+ message: "AKS cluster name is required",
61
+ },
62
+ {
63
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
64
+ value: "^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?$",
65
+ message: "AKS cluster name must be 1-63 characters, start and end with alphanumeric, and can contain hyphens",
66
+ },
67
+ ],
68
+ },
69
+ sku: {
70
+ dataType: version_interfaces_1.PropertyType.OBJECT,
71
+ required: false,
72
+ description: "The SKU (pricing tier) for the AKS cluster",
73
+ },
74
+ identity: {
75
+ dataType: version_interfaces_1.PropertyType.OBJECT,
76
+ required: false,
77
+ description: "The identity configuration for the AKS cluster",
78
+ },
79
+ kubernetesVersion: {
80
+ dataType: version_interfaces_1.PropertyType.STRING,
81
+ required: false,
82
+ description: "The Kubernetes version for the cluster",
83
+ validation: [
84
+ {
85
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
86
+ value: "^\\d+\\.\\d+\\.\\d+$",
87
+ message: "Kubernetes version must be in format X.Y.Z (e.g., 1.28.3)",
88
+ },
89
+ ],
90
+ },
91
+ dnsPrefix: {
92
+ dataType: version_interfaces_1.PropertyType.STRING,
93
+ required: true,
94
+ description: "DNS prefix for the cluster",
95
+ validation: [
96
+ {
97
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
98
+ message: "DNS prefix is required for AKS clusters",
99
+ },
100
+ {
101
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
102
+ value: "^[a-zA-Z0-9]([a-zA-Z0-9-]{0,52}[a-zA-Z0-9])?$",
103
+ message: "DNS prefix must be 1-54 characters, start and end with alphanumeric, and can contain hyphens",
104
+ },
105
+ ],
106
+ },
107
+ fqdn: {
108
+ dataType: version_interfaces_1.PropertyType.STRING,
109
+ required: false,
110
+ description: "The FQDN for the cluster (read-only)",
111
+ },
112
+ privateFQDN: {
113
+ dataType: version_interfaces_1.PropertyType.STRING,
114
+ required: false,
115
+ description: "The private FQDN for the cluster (read-only)",
116
+ },
117
+ agentPoolProfiles: {
118
+ dataType: version_interfaces_1.PropertyType.ARRAY,
119
+ required: true,
120
+ description: "The agent pool profiles for the cluster node pools",
121
+ validation: [
122
+ {
123
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
124
+ message: "At least one agent pool profile is required",
125
+ },
126
+ ],
127
+ },
128
+ servicePrincipalProfile: {
129
+ dataType: version_interfaces_1.PropertyType.OBJECT,
130
+ required: false,
131
+ description: "The service principal profile for the cluster",
132
+ },
133
+ networkProfile: {
134
+ dataType: version_interfaces_1.PropertyType.OBJECT,
135
+ required: false,
136
+ description: "The network configuration for the cluster",
137
+ },
138
+ aadProfile: {
139
+ dataType: version_interfaces_1.PropertyType.OBJECT,
140
+ required: false,
141
+ description: "The Azure Active Directory integration configuration",
142
+ },
143
+ autoScalerProfile: {
144
+ dataType: version_interfaces_1.PropertyType.OBJECT,
145
+ required: false,
146
+ description: "The auto-scaler configuration for the cluster",
147
+ },
148
+ apiServerAccessProfile: {
149
+ dataType: version_interfaces_1.PropertyType.OBJECT,
150
+ required: false,
151
+ description: "The API server access configuration",
152
+ },
153
+ diskEncryptionSetID: {
154
+ dataType: version_interfaces_1.PropertyType.STRING,
155
+ required: false,
156
+ description: "The resource ID of the disk encryption set for encrypting disks",
157
+ },
158
+ enableRBAC: {
159
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
160
+ required: false,
161
+ defaultValue: true,
162
+ description: "Whether to enable Kubernetes Role-Based Access Control",
163
+ },
164
+ nodeResourceGroup: {
165
+ dataType: version_interfaces_1.PropertyType.STRING,
166
+ required: false,
167
+ description: "The name of the resource group for cluster nodes",
168
+ },
169
+ addonProfiles: {
170
+ dataType: version_interfaces_1.PropertyType.OBJECT,
171
+ required: false,
172
+ description: "The addon profiles for cluster addons",
173
+ },
174
+ linuxProfile: {
175
+ dataType: version_interfaces_1.PropertyType.OBJECT,
176
+ required: false,
177
+ description: "The Linux profile for SSH access",
178
+ },
179
+ windowsProfile: {
180
+ dataType: version_interfaces_1.PropertyType.OBJECT,
181
+ required: false,
182
+ description: "The Windows profile for Windows node pools",
183
+ },
184
+ oidcIssuerProfile: {
185
+ dataType: version_interfaces_1.PropertyType.OBJECT,
186
+ required: false,
187
+ description: "The OIDC issuer profile for workload identity",
188
+ },
189
+ securityProfile: {
190
+ dataType: version_interfaces_1.PropertyType.OBJECT,
191
+ required: false,
192
+ description: "The security profile for the cluster",
193
+ },
194
+ storageProfile: {
195
+ dataType: version_interfaces_1.PropertyType.OBJECT,
196
+ required: false,
197
+ description: "The storage profile for CSI drivers",
198
+ },
199
+ httpProxyConfig: {
200
+ dataType: version_interfaces_1.PropertyType.OBJECT,
201
+ required: false,
202
+ description: "The HTTP proxy configuration",
203
+ },
204
+ workloadAutoScalerProfile: {
205
+ dataType: version_interfaces_1.PropertyType.OBJECT,
206
+ required: false,
207
+ description: "The workload auto-scaler profile",
208
+ },
209
+ disableLocalAccounts: {
210
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
211
+ required: false,
212
+ defaultValue: false,
213
+ description: "Whether to disable local accounts",
214
+ },
215
+ publicNetworkAccess: {
216
+ dataType: version_interfaces_1.PropertyType.STRING,
217
+ required: false,
218
+ description: "Whether the cluster is accessible from the public internet",
219
+ validation: [
220
+ {
221
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
222
+ value: "^(Enabled|Disabled)$",
223
+ message: "Public network access must be either 'Enabled' or 'Disabled'",
224
+ },
225
+ ],
226
+ },
227
+ supportPlan: {
228
+ dataType: version_interfaces_1.PropertyType.STRING,
229
+ required: false,
230
+ description: "The support plan for the cluster",
231
+ validation: [
232
+ {
233
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
234
+ value: "^(KubernetesOfficial|AKSLongTermSupport)$",
235
+ message: "Support plan must be 'KubernetesOfficial' or 'AKSLongTermSupport'",
236
+ },
237
+ ],
238
+ },
239
+ ignoreChanges: {
240
+ dataType: version_interfaces_1.PropertyType.ARRAY,
241
+ required: false,
242
+ description: "Array of property names to ignore during updates",
243
+ validation: [
244
+ {
245
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
246
+ value: version_interfaces_1.PropertyType.ARRAY,
247
+ message: "IgnoreChanges must be an array of strings",
248
+ },
249
+ ],
250
+ },
251
+ };
252
+ // =============================================================================
253
+ // VERSION-SPECIFIC SCHEMAS
254
+ // =============================================================================
255
+ /**
256
+ * API Schema for AKS Cluster version 2024-10-01
257
+ */
258
+ exports.AKS_CLUSTER_SCHEMA_2024_10_01 = {
259
+ resourceType: "Microsoft.ContainerService/managedClusters",
260
+ version: "2024-10-01",
261
+ properties: {
262
+ ...COMMON_PROPERTIES,
263
+ },
264
+ required: ["location", "name", "dnsPrefix", "agentPoolProfiles"],
265
+ optional: [
266
+ "tags",
267
+ "sku",
268
+ "identity",
269
+ "kubernetesVersion",
270
+ "fqdn",
271
+ "privateFQDN",
272
+ "servicePrincipalProfile",
273
+ "networkProfile",
274
+ "aadProfile",
275
+ "autoScalerProfile",
276
+ "apiServerAccessProfile",
277
+ "diskEncryptionSetID",
278
+ "enableRBAC",
279
+ "nodeResourceGroup",
280
+ "addonProfiles",
281
+ "linuxProfile",
282
+ "windowsProfile",
283
+ "oidcIssuerProfile",
284
+ "securityProfile",
285
+ "storageProfile",
286
+ "httpProxyConfig",
287
+ "workloadAutoScalerProfile",
288
+ "disableLocalAccounts",
289
+ "publicNetworkAccess",
290
+ "supportPlan",
291
+ "ignoreChanges",
292
+ ],
293
+ deprecated: [],
294
+ transformationRules: {},
295
+ validationRules: [
296
+ {
297
+ property: "location",
298
+ rules: [
299
+ {
300
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
301
+ message: "Location is required for AKS clusters",
302
+ },
303
+ ],
304
+ },
305
+ {
306
+ property: "name",
307
+ rules: [
308
+ {
309
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
310
+ message: "Name is required for AKS clusters",
311
+ },
312
+ ],
313
+ },
314
+ {
315
+ property: "dnsPrefix",
316
+ rules: [
317
+ {
318
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
319
+ message: "DNS prefix is required for AKS clusters",
320
+ },
321
+ ],
322
+ },
323
+ {
324
+ property: "agentPoolProfiles",
325
+ rules: [
326
+ {
327
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
328
+ message: "At least one agent pool profile is required",
329
+ },
330
+ ],
331
+ },
332
+ ],
333
+ };
334
+ /**
335
+ * API Schema for AKS Cluster version 2025-01-01
336
+ */
337
+ exports.AKS_CLUSTER_SCHEMA_2025_01_01 = {
338
+ resourceType: "Microsoft.ContainerService/managedClusters",
339
+ version: "2025-01-01",
340
+ properties: {
341
+ ...COMMON_PROPERTIES,
342
+ },
343
+ required: ["location", "name", "dnsPrefix", "agentPoolProfiles"],
344
+ optional: [
345
+ "tags",
346
+ "sku",
347
+ "identity",
348
+ "kubernetesVersion",
349
+ "fqdn",
350
+ "privateFQDN",
351
+ "servicePrincipalProfile",
352
+ "networkProfile",
353
+ "aadProfile",
354
+ "autoScalerProfile",
355
+ "apiServerAccessProfile",
356
+ "diskEncryptionSetID",
357
+ "enableRBAC",
358
+ "nodeResourceGroup",
359
+ "addonProfiles",
360
+ "linuxProfile",
361
+ "windowsProfile",
362
+ "oidcIssuerProfile",
363
+ "securityProfile",
364
+ "storageProfile",
365
+ "httpProxyConfig",
366
+ "workloadAutoScalerProfile",
367
+ "disableLocalAccounts",
368
+ "publicNetworkAccess",
369
+ "supportPlan",
370
+ "ignoreChanges",
371
+ ],
372
+ deprecated: [],
373
+ transformationRules: {},
374
+ validationRules: [
375
+ {
376
+ property: "location",
377
+ rules: [
378
+ {
379
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
380
+ message: "Location is required for AKS clusters",
381
+ },
382
+ ],
383
+ },
384
+ {
385
+ property: "name",
386
+ rules: [
387
+ {
388
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
389
+ message: "Name is required for AKS clusters",
390
+ },
391
+ ],
392
+ },
393
+ {
394
+ property: "dnsPrefix",
395
+ rules: [
396
+ {
397
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
398
+ message: "DNS prefix is required for AKS clusters",
399
+ },
400
+ ],
401
+ },
402
+ {
403
+ property: "agentPoolProfiles",
404
+ rules: [
405
+ {
406
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
407
+ message: "At least one agent pool profile is required",
408
+ },
409
+ ],
410
+ },
411
+ ],
412
+ };
413
+ /**
414
+ * API Schema for AKS Cluster version 2025-07-01
415
+ */
416
+ exports.AKS_CLUSTER_SCHEMA_2025_07_01 = {
417
+ resourceType: "Microsoft.ContainerService/managedClusters",
418
+ version: "2025-07-01",
419
+ properties: {
420
+ ...COMMON_PROPERTIES,
421
+ },
422
+ required: ["location", "name", "dnsPrefix", "agentPoolProfiles"],
423
+ optional: [
424
+ "tags",
425
+ "sku",
426
+ "identity",
427
+ "kubernetesVersion",
428
+ "fqdn",
429
+ "privateFQDN",
430
+ "servicePrincipalProfile",
431
+ "networkProfile",
432
+ "aadProfile",
433
+ "autoScalerProfile",
434
+ "apiServerAccessProfile",
435
+ "diskEncryptionSetID",
436
+ "enableRBAC",
437
+ "nodeResourceGroup",
438
+ "addonProfiles",
439
+ "linuxProfile",
440
+ "windowsProfile",
441
+ "oidcIssuerProfile",
442
+ "securityProfile",
443
+ "storageProfile",
444
+ "httpProxyConfig",
445
+ "workloadAutoScalerProfile",
446
+ "disableLocalAccounts",
447
+ "publicNetworkAccess",
448
+ "supportPlan",
449
+ "ignoreChanges",
450
+ ],
451
+ deprecated: [],
452
+ transformationRules: {},
453
+ validationRules: [
454
+ {
455
+ property: "location",
456
+ rules: [
457
+ {
458
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
459
+ message: "Location is required for AKS clusters",
460
+ },
461
+ ],
462
+ },
463
+ {
464
+ property: "name",
465
+ rules: [
466
+ {
467
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
468
+ message: "Name is required for AKS clusters",
469
+ },
470
+ ],
471
+ },
472
+ {
473
+ property: "dnsPrefix",
474
+ rules: [
475
+ {
476
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
477
+ message: "DNS prefix is required for AKS clusters",
478
+ },
479
+ ],
480
+ },
481
+ {
482
+ property: "agentPoolProfiles",
483
+ rules: [
484
+ {
485
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
486
+ message: "At least one agent pool profile is required",
487
+ },
488
+ ],
489
+ },
490
+ ],
491
+ };
492
+ // =============================================================================
493
+ // VERSION CONFIGURATIONS
494
+ // =============================================================================
495
+ /**
496
+ * Version configuration for AKS Cluster 2024-10-01
497
+ */
498
+ exports.AKS_CLUSTER_VERSION_2024_10_01 = {
499
+ version: "2024-10-01",
500
+ schema: exports.AKS_CLUSTER_SCHEMA_2024_10_01,
501
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
502
+ releaseDate: "2024-10-01",
503
+ deprecationDate: undefined,
504
+ sunsetDate: undefined,
505
+ breakingChanges: [],
506
+ migrationGuide: "/docs/aks-cluster/migration-2024-10-01",
507
+ changeLog: [
508
+ {
509
+ changeType: "added",
510
+ description: "Stable release with comprehensive AKS features including workload auto-scaler and support plans",
511
+ breaking: false,
512
+ },
513
+ ],
514
+ };
515
+ /**
516
+ * Version configuration for AKS Cluster 2025-01-01
517
+ */
518
+ exports.AKS_CLUSTER_VERSION_2025_01_01 = {
519
+ version: "2025-01-01",
520
+ schema: exports.AKS_CLUSTER_SCHEMA_2025_01_01,
521
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
522
+ releaseDate: "2025-01-01",
523
+ deprecationDate: undefined,
524
+ sunsetDate: undefined,
525
+ breakingChanges: [],
526
+ migrationGuide: "/docs/aks-cluster/migration-2025-01-01",
527
+ changeLog: [
528
+ {
529
+ changeType: "updated",
530
+ description: "Enhanced security and performance features",
531
+ breaking: false,
532
+ },
533
+ {
534
+ changeType: "updated",
535
+ description: "Improved workload identity and security profile configurations",
536
+ breaking: false,
537
+ },
538
+ ],
539
+ };
540
+ /**
541
+ * Version configuration for AKS Cluster 2025-07-01
542
+ */
543
+ exports.AKS_CLUSTER_VERSION_2025_07_01 = {
544
+ version: "2025-07-01",
545
+ schema: exports.AKS_CLUSTER_SCHEMA_2025_07_01,
546
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
547
+ releaseDate: "2025-07-01",
548
+ deprecationDate: undefined,
549
+ sunsetDate: undefined,
550
+ breakingChanges: [],
551
+ migrationGuide: "/docs/aks-cluster/migration-2025-07-01",
552
+ changeLog: [
553
+ {
554
+ changeType: "updated",
555
+ description: "Latest API version with newest features and improvements",
556
+ breaking: false,
557
+ },
558
+ ],
559
+ };
560
+ /**
561
+ * All supported AKS Cluster versions for registration
562
+ */
563
+ exports.ALL_AKS_CLUSTER_VERSIONS = [
564
+ exports.AKS_CLUSTER_VERSION_2024_10_01,
565
+ exports.AKS_CLUSTER_VERSION_2025_01_01,
566
+ exports.AKS_CLUSTER_VERSION_2025_07_01,
567
+ ];
568
+ /**
569
+ * Resource type constant
570
+ */
571
+ exports.AKS_CLUSTER_TYPE = "Microsoft.ContainerService/managedClusters";
572
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWtzLWNsdXN0ZXItc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1ha3MvbGliL2Frcy1jbHVzdGVyLXNjaGVtYXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFFSCwyR0FPNEU7QUErZjVFLGdGQUFnRjtBQUNoRiw4QkFBOEI7QUFDOUIsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ0gsTUFBTSxpQkFBaUIsR0FBMEM7SUFDL0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSx3REFBd0Q7UUFDckUsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSx1Q0FBdUM7YUFDakQ7WUFDRDtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsYUFBYTtnQkFDMUMsS0FBSyxFQUFFLGFBQWE7Z0JBQ3BCLE9BQU8sRUFBRSwwREFBMEQ7YUFDcEU7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFlBQVksRUFBRSxFQUFFO1FBQ2hCLFdBQVcsRUFBRSxrREFBa0Q7UUFDL0QsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFVBQVU7Z0JBQ3ZDLEtBQUssRUFBRSxpQ0FBWSxDQUFDLE1BQU07Z0JBQzFCLE9BQU8sRUFBRSxvREFBb0Q7YUFDOUQ7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSw2QkFBNkI7UUFDMUMsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFr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WSxFQUFFLHdDQUFtQixDQUFDLE1BQU07SUFDeEMsV0FBVyxFQUFFLFlBQVk7SUFDekIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsY0FBYyxFQUFFLHdDQUF3QztJQUN4RCxTQUFTLEVBQUU7UUFDVDtZQUNFLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSw0Q0FBNEM7WUFDekQsUUFBUSxFQUFFLEtBQUs7U0FDaEI7UUFDRDtZQUNFLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFDVCxnRUFBZ0U7WUFDbEUsUUFBUSxFQUFFLEtBQUs7U0FDaEI7S0FDRjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsOEJBQThCLEdBQWtCO0lBQzNELE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE1BQU0sRUFBRSxxQ0FBNkI7SUFDckMsWUFBWSxFQUFFLHdDQUFtQixDQUFDLE1BQU07SUFDeEMsV0FBVyxFQUFFLFlBQVk7SUFDekIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsY0FBYyxFQUFFLHdDQUF3QztJQUN4RCxTQUFTLEVBQUU7UUFDVDtZQUNFLFVBQVUsRUFBRSxTQUFTO1lBQ3JCLFdBQVcsRUFBRSwwREFBMEQ7WUFDdkUsUUFBUSxFQUFFLEtBQUs7U0FDaEI7S0FDRjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsd0JBQXdCLEdBQW9CO0lBQ3ZELHNDQUE4QjtJQUM5QixzQ0FBOEI7SUFDOUIsc0NBQThCO0NBQy9CLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsZ0JBQWdCLEdBQUcsNENBQTRDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFQSSBzY2hlbWFzIGZvciBBenVyZSBLdWJlcm5ldGVzIFNlcnZpY2UgKEFLUykgYWNyb3NzIGFsbCBzdXBwb3J0ZWQgdmVyc2lvbnNcbiAqXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0aGUgY29tcGxldGUgQVBJIHNjaGVtYXMgZm9yIE1pY3Jvc29mdC5Db250YWluZXJTZXJ2aWNlL21hbmFnZWRDbHVzdGVyc1xuICogYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVxuICogZnJhbWV3b3JrIGZvciB2YWxpZGF0aW9uLCB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqXG4gKiBBUEkgVmVyc2lvbnMgdmVyaWZpZWQgZnJvbSBBenVyZSBSRVNUIEFQSSBTcGVjaWZpY2F0aW9uczpcbiAqIC0gMjAyNC0xMC0wMTogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlL2F6dXJlLXJlc3QtYXBpLXNwZWNzLy4uLi8yMDI0LTEwLTAxL21hbmFnZWRDbHVzdGVycy5qc29uXG4gKiAtIDIwMjUtMDEtMDE6IGh0dHBzOi8vZ2l0aHViLmNvbS9BenVyZS9henVyZS1yZXN0LWFwaS1zcGVjcy8uLi4vMjAyNS0wMS0wMS9tYW5hZ2VkQ2x1c3RlcnMuanNvblxuICogLSAyMDI1LTA3LTAxOiBodHRwczovL2dpdGh1Yi5jb20vQXp1cmUvYXp1cmUtcmVzdC1hcGktc3BlY3MvLi4uLzIwMjUtMDctMDEvbWFuYWdlZENsdXN0ZXJzLmpzb25cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRZUEVTQ1JJUFQgSU5URVJGQUNFUyBGT1IgTkVTVEVEIE9CSkVDVFNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogU0tVIGZvciBBenVyZSBLdWJlcm5ldGVzIFNlcnZpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyU2t1IHtcbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcbiAgcmVhZG9ubHkgdGllcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciBBS1MgQ2x1c3RlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJJZGVudGl0eSB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlckFzc2lnbmVkSWRlbnRpdGllcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogQWdlbnQgcG9vbCBwcm9maWxlIGZvciBBS1Mgbm9kZSBwb29sc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJBZ2VudFBvb2xQcm9maWxlIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBjb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgdm1TaXplOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG9zRGlza1NpemVHQj86IG51bWJlcjtcbiAgcmVhZG9ubHkgb3NEaXNrVHlwZT86IHN0cmluZztcbiAgcmVhZG9ubHkgb3NUeXBlPzogc3RyaW5nO1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xuICByZWFkb25seSBtb2RlPzogc3RyaW5nO1xuICByZWFkb25seSBhdmFpbGFiaWxpdHlab25lcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBlbmFibGVBdXRvU2NhbGluZz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG1pbkNvdW50PzogbnVtYmVyO1xuICByZWFkb25seSBtYXhDb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbWF4UG9kcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgdm5ldFN1Ym5ldElEPzogc3RyaW5nO1xuICByZWFkb25seSBwb2RTdWJuZXRJRD86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlTm9kZVB1YmxpY0lQPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbm9kZVB1YmxpY0lQUHJlZml4SUQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjYWxlU2V0UHJpb3JpdHk/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjYWxlU2V0RXZpY3Rpb25Qb2xpY3k/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNwb3RNYXhQcmljZT86IG51bWJlcjtcbiAgcmVhZG9ubHkgbm9kZVRhaW50cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBub2RlTGFiZWxzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkga3ViZWxldENvbmZpZz86IEFrc0NsdXN0ZXJLdWJlbGV0Q29uZmlnO1xuICByZWFkb25seSBsaW51eE9TQ29uZmlnPzogQWtzQ2x1c3RlckxpbnV4T1NDb25maWc7XG4gIHJlYWRvbmx5IGVuYWJsZUVuY3J5cHRpb25BdEhvc3Q/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVVbHRyYVNTRD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGVuYWJsZUZJUFM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEt1YmVsZXQgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJLdWJlbGV0Q29uZmlnIHtcbiAgcmVhZG9ubHkgY3B1TWFuYWdlclBvbGljeT86IHN0cmluZztcbiAgcmVhZG9ubHkgY3B1Q2ZzUXVvdGE/OiBib29sZWFuO1xuICByZWFkb25seSBjcHVDZnNRdW90YVBlcmlvZD86IHN0cmluZztcbiAgcmVhZG9ubHkgaW1hZ2VHY0hpZ2hUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGltYWdlR2NMb3dUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHRvcG9sb2d5TWFuYWdlclBvbGljeT86IHN0cmluZztcbiAgcmVhZG9ubHkgYWxsb3dlZFVuc2FmZVN5c2N0bHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZmFpbFN3YXBPbj86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGNvbnRhaW5lckxvZ01heFNpemVNQj86IG51bWJlcjtcbiAgcmVhZG9ubHkgY29udGFpbmVyTG9nTWF4RmlsZXM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IHBvZE1heFBpZHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTGludXggT1MgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJMaW51eE9TQ29uZmlnIHtcbiAgcmVhZG9ubHkgc3lzY3Rscz86IEFrc0NsdXN0ZXJTeXNjdGxDb25maWc7XG4gIHJlYWRvbmx5IHRyYW5zcGFyZW50SHVnZVBhZ2VFbmFibGVkPzogc3RyaW5nO1xuICByZWFkb25seSB0cmFuc3BhcmVudEh1Z2VQYWdlRGVmcmFnPzogc3RyaW5nO1xuICByZWFkb25seSBzd2FwRmlsZVNpemVNQj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBTeXNjdGwgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJTeXNjdGxDb25maWcge1xuICByZWFkb25seSBuZXRDb3JlU29tYXhjb25uPzogbnVtYmVyO1xuICByZWFkb25seSBuZXRDb3JlTmV0ZGV2TWF4QmFja2xvZz86IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV0Q29yZVJtZW1EZWZhdWx0PzogbnVtYmVyO1xuICByZWFkb25seSBuZXRDb3JlUm1lbU1heD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV0Q29yZVdtZW1EZWZhdWx0PzogbnVtYmVyO1xuICByZWFkb25seSBuZXRDb3JlV21lbU1heD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV0Q29yZU9wdG1lbU1heD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV0SXB2NFRjcE1heFN5bkJhY2tsb2c/OiBudW1iZXI7XG4gIHJlYWRvbmx5IG5ldElwdjRUY3BGaW5UaW1lb3V0PzogbnVtYmVyO1xuICByZWFkb25seSBuZXRJcHY0VGNwS2VlcGFsaXZlVGltZT86IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV0SXB2NFRjcEtlZXBhbGl2ZVByb2Jlcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV0SXB2NFRjcGtlZXBhbGl2ZUludHZsPzogbnVtYmVyO1xuICByZWFkb25seSBuZXRJcHY0VGNwVHdSZXVzZT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5ldElwdjRJcExvY2FsUG9ydFJhbmdlPzogc3RyaW5nO1xuICByZWFkb25seSBuZXRJcHY0TmVpZ2hEZWZhdWx0R2NUaHJlc2gxPzogbnVtYmVyO1xuICByZWFkb25seSBuZXRJcHY0TmVpZ2hEZWZhdWx0R2NUaHJlc2gyPzogbnVtYmVyO1xuICByZWFkb25seSBuZXRJcHY0TmVpZ2hEZWZhdWx0R2NUaHJlc2gzPzogbnVtYmVyO1xuICByZWFkb25seSBuZXROZXRmaWx0ZXJOZkNvbm50cmFja01heD86IG51bWJlcjtcbiAgcmVhZG9ubHkgbmV0TmV0ZmlsdGVyTmZDb25udHJhY2tCdWNrZXRzPzogbnVtYmVyO1xuICByZWFkb25seSBmc0lub3RpZnlNYXhVc2VyV2F0Y2hlcz86IG51bWJlcjtcbiAgcmVhZG9ubHkgZnNGaWxlTWF4PzogbnVtYmVyO1xuICByZWFkb25seSBmc0Fpb01heE5yPzogbnVtYmVyO1xuICByZWFkb25seSBmc05yT3Blbj86IG51bWJlcjtcbiAgcmVhZG9ubHkga2VybmVsVGhyZWFkc01heD86IG51bWJlcjtcbiAgcmVhZG9ubHkgdm1NYXhNYXBDb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgdm1Td2FwcGluZXNzPzogbnVtYmVyO1xuICByZWFkb25seSB2bVZmc0NhY2hlUHJlc3N1cmU/OiBudW1iZXI7XG59XG5cbi8qKlxuICogTmV0d29yayBwcm9maWxlIGZvciBBS1MgY2x1c3RlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJOZXR3b3JrUHJvZmlsZSB7XG4gIHJlYWRvbmx5IG5ldHdvcmtQbHVnaW4/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldHdvcmtQb2xpY3k/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5ldHdvcmtNb2RlPzogc3RyaW5nO1xuICByZWFkb25seSBwb2RDaWRyPzogc3RyaW5nO1xuICByZWFkb25seSBzZXJ2aWNlQ2lkcj86IHN0cmluZztcbiAgcmVhZG9ubHkgZG5zU2VydmljZUlQPzogc3RyaW5nO1xuICByZWFkb25seSBkb2NrZXJCcmlkZ2VDaWRyPzogc3RyaW5nO1xuICByZWFkb25seSBvdXRib3VuZFR5cGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxvYWRCYWxhbmNlclNrdT86IHN0cmluZztcbiAgcmVhZG9ubHkgbG9hZEJhbGFuY2VyUHJvZmlsZT86IEFrc0NsdXN0ZXJMb2FkQmFsYW5jZXJQcm9maWxlO1xuICByZWFkb25seSBuYXRHYXRld2F5UHJvZmlsZT86IEFrc0NsdXN0ZXJOYXRHYXRld2F5UHJvZmlsZTtcbiAgcmVhZG9ubHkgcG9kQ2lkcnM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc2VydmljZUNpZHJzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGlwRmFtaWxpZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBMb2FkIGJhbGFuY2VyIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyTG9hZEJhbGFuY2VyUHJvZmlsZSB7XG4gIHJlYWRvbmx5IG1hbmFnZWRPdXRib3VuZElQcz86IEFrc0NsdXN0ZXJNYW5hZ2VkT3V0Ym91bmRJUHM7XG4gIHJlYWRvbmx5IG91dGJvdW5kSVBQcmVmaXhlcz86IEFrc0NsdXN0ZXJPdXRib3VuZElQUHJlZml4ZXM7XG4gIHJlYWRvbmx5IG91dGJvdW5kSVBzPzogQWtzQ2x1c3Rlck91dGJvdW5kSVBzO1xuICByZWFkb25seSBlZmZlY3RpdmVPdXRib3VuZElQcz86IEFrc0NsdXN0ZXJFZmZlY3RpdmVPdXRib3VuZElQW107XG4gIHJlYWRvbmx5IGFsbG9jYXRlZE91dGJvdW5kUG9ydHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGlkbGVUaW1lb3V0SW5NaW51dGVzPzogbnVtYmVyO1xuICByZWFkb25seSBlbmFibGVNdWx0aXBsZVN0YW5kYXJkTG9hZEJhbGFuY2Vycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogTWFuYWdlZCBvdXRib3VuZCBJUHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyTWFuYWdlZE91dGJvdW5kSVBzIHtcbiAgcmVhZG9ubHkgY291bnQ/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvdW50SVB2Nj86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBPdXRib3VuZCBJUCBwcmVmaXhlc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJPdXRib3VuZElQUHJlZml4ZXMge1xuICByZWFkb25seSBwdWJsaWNJUFByZWZpeGVzPzogQWtzQ2x1c3RlclJlc291cmNlUmVmZXJlbmNlW107XG59XG5cbi8qKlxuICogT3V0Ym91bmQgSVBzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3Rlck91dGJvdW5kSVBzIHtcbiAgcmVhZG9ubHkgcHVibGljSVBzPzogQWtzQ2x1c3RlclJlc291cmNlUmVmZXJlbmNlW107XG59XG5cbi8qKlxuICogRWZmZWN0aXZlIG91dGJvdW5kIElQXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlckVmZmVjdGl2ZU91dGJvdW5kSVAge1xuICByZWFkb25seSBpZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBOQVQgR2F0ZXdheSBwcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3Rlck5hdEdhdGV3YXlQcm9maWxlIHtcbiAgcmVhZG9ubHkgbWFuYWdlZE91dGJvdW5kSVBQcm9maWxlPzogQWtzQ2x1c3Rlck1hbmFnZWRPdXRib3VuZElQUHJvZmlsZTtcbiAgcmVhZG9ubHkgZWZmZWN0aXZlT3V0Ym91bmRJUHM/OiBBa3NDbHVzdGVyRWZmZWN0aXZlT3V0Ym91bmRJUFtdO1xuICByZWFkb25seSBpZGxlVGltZW91dEluTWludXRlcz86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIG91dGJvdW5kIElQIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyTWFuYWdlZE91dGJvdW5kSVBQcm9maWxlIHtcbiAgcmVhZG9ubHkgY291bnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVzb3VyY2UgcmVmZXJlbmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlclJlc291cmNlUmVmZXJlbmNlIHtcbiAgcmVhZG9ubHkgaWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU2VydmljZSBwcmluY2lwYWwgcHJvZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJTZXJ2aWNlUHJpbmNpcGFsUHJvZmlsZSB7XG4gIHJlYWRvbmx5IGNsaWVudElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBUEkgc2VydmVyIGFjY2VzcyBwcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlckFwaVNlcnZlckFjY2Vzc1Byb2ZpbGUge1xuICByZWFkb25seSBhdXRob3JpemVkSVBSYW5nZXM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZW5hYmxlUHJpdmF0ZUNsdXN0ZXI/OiBib29sZWFuO1xuICByZWFkb25seSBwcml2YXRlRE5TWm9uZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlUHJpdmF0ZUNsdXN0ZXJQdWJsaWNGUUROPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGlzYWJsZVJ1bkNvbW1hbmQ/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVWbmV0SW50ZWdyYXRpb24/OiBib29sZWFuO1xuICByZWFkb25seSBzdWJuZXRJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBdXRvLXNjYWxlciBwcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlckF1dG9TY2FsZXJQcm9maWxlIHtcbiAgcmVhZG9ubHkgYmFsYW5jZVNpbWlsYXJOb2RlR3JvdXBzPzogc3RyaW5nO1xuICByZWFkb25seSBleHBhbmRlcj86IHN0cmluZztcbiAgcmVhZG9ubHkgbWF4RW1wdHlCdWxrRGVsZXRlPzogc3RyaW5nO1xuICByZWFkb25seSBtYXhHcmFjZWZ1bFRlcm1pbmF0aW9uU2VjPzogc3RyaW5nO1xuICByZWFkb25seSBtYXhOb2RlUHJvdmlzaW9uVGltZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbWF4VG90YWxVbnJlYWR5UGVyY2VudGFnZT86IHN0cmluZztcbiAgcmVhZG9ubHkgbmV3UG9kU2NhbGVVcERlbGF5Pzogc3RyaW5nO1xuICByZWFkb25seSBva1RvdGFsVW5yZWFkeUNvdW50Pzogc3RyaW5nO1xuICByZWFkb25seSBzY2FuSW50ZXJ2YWw/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjYWxlRG93bkRlbGF5QWZ0ZXJBZGQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjYWxlRG93bkRlbGF5QWZ0ZXJEZWxldGU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjYWxlRG93bkRlbGF5QWZ0ZXJGYWlsdXJlPzogc3RyaW5nO1xuICByZWFkb25seSBzY2FsZURvd25Vbm5lZWRlZFRpbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNjYWxlRG93blVucmVhZHlUaW1lPzogc3RyaW5nO1xuICByZWFkb25seSBzY2FsZURvd25VdGlsaXphdGlvblRocmVzaG9sZD86IHN0cmluZztcbiAgcmVhZG9ubHkgc2tpcE5vZGVzV2l0aExvY2FsU3RvcmFnZT86IHN0cmluZztcbiAgcmVhZG9ubHkgc2tpcE5vZGVzV2l0aFN5c3RlbVBvZHM/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV2luZG93cyBwcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlcldpbmRvd3NQcm9maWxlIHtcbiAgcmVhZG9ubHkgYWRtaW5Vc2VybmFtZTogc3RyaW5nO1xuICByZWFkb25seSBhZG1pblBhc3N3b3JkPzogc3RyaW5nO1xuICByZWFkb25seSBsaWNlbnNlVHlwZT86IHN0cmluZztcbiAgcmVhZG9ubHkgZW5hYmxlQ1NJUHJveHk/OiBib29sZWFuO1xuICByZWFkb25seSBnbXNhUHJvZmlsZT86IEFrc0NsdXN0ZXJHbXNhUHJvZmlsZTtcbn1cblxuLyoqXG4gKiBHTVNBIHByb2ZpbGUgZm9yIFdpbmRvd3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyR21zYVByb2ZpbGUge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZG5zU2VydmVyPzogc3RyaW5nO1xuICByZWFkb25seSByb290RG9tYWluTmFtZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBMaW51eCBwcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlckxpbnV4UHJvZmlsZSB7XG4gIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3NoOiBBa3NDbHVzdGVyU3NoQ29uZmlndXJhdGlvbjtcbn1cblxuLyoqXG4gKiBTU0ggY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJTc2hDb25maWd1cmF0aW9uIHtcbiAgcmVhZG9ubHkgcHVibGljS2V5czogQWtzQ2x1c3RlclNzaFB1YmxpY0tleVtdO1xufVxuXG4vKipcbiAqIFNTSCBwdWJsaWMga2V5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlclNzaFB1YmxpY0tleSB7XG4gIHJlYWRvbmx5IGtleURhdGE6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBQUQgKEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkpIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyQWFkUHJvZmlsZSB7XG4gIHJlYWRvbmx5IG1hbmFnZWQ/OiBib29sZWFuO1xuICByZWFkb25seSBlbmFibGVBenVyZVJCQUM/OiBib29sZWFuO1xuICByZWFkb25seSBhZG1pbkdyb3VwT2JqZWN0SURzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHRlbmFudElEPzogc3RyaW5nO1xuICByZWFkb25seSBjbGllbnRBcHBJRD86IHN0cmluZztcbiAgcmVhZG9ubHkgc2VydmVyQXBwSUQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlcnZlckFwcFNlY3JldD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBZGRvbiBwcm9maWxlcyAtIGEgZGljdGlvbmFyeSBvZiBhZGRvbiBuYW1lcyB0byB0aGVpciBjb25maWd1cmF0aW9uc1xuICovXG5leHBvcnQgdHlwZSBBa3NDbHVzdGVyQWRkb25Qcm9maWxlcyA9IFJlY29yZDxzdHJpbmcsIEFrc0NsdXN0ZXJBZGRvblByb2ZpbGU+O1xuXG4vKipcbiAqIEluZGl2aWR1YWwgYWRkb24gcHJvZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJBZGRvblByb2ZpbGUge1xuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuICByZWFkb25seSBjb25maWc/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG4vKipcbiAqIE9JREMgaXNzdWVyIHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyT2lkY0lzc3VlclByb2ZpbGUge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgaXNzdWVyVVJMPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlY3VyaXR5IHByb2ZpbGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyU2VjdXJpdHlQcm9maWxlIHtcbiAgcmVhZG9ubHkgZGVmZW5kZXI/OiBBa3NDbHVzdGVyRGVmZW5kZXJTZWN1cml0eU1vbml0b3Jpbmc7XG4gIHJlYWRvbmx5IGltYWdlQ2xlYW5lcj86IEFrc0NsdXN0ZXJJbWFnZUNsZWFuZXI7XG4gIHJlYWRvbmx5IHdvcmtsb2FkSWRlbnRpdHk/OiBBa3NDbHVzdGVyV29ya2xvYWRJZGVudGl0eTtcbiAgcmVhZG9ubHkgYXp1cmVLZXlWYXVsdEttcz86IEFrc0NsdXN0ZXJBenVyZUtleVZhdWx0S21zO1xufVxuXG4vKipcbiAqIERlZmVuZGVyIHNlY3VyaXR5IG1vbml0b3JpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyRGVmZW5kZXJTZWN1cml0eU1vbml0b3Jpbmcge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbG9nQW5hbHl0aWNzV29ya3NwYWNlUmVzb3VyY2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbWFnZSBjbGVhbmVyIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVySW1hZ2VDbGVhbmVyIHtcbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG4gIHJlYWRvbmx5IGludGVydmFsSG91cnM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV29ya2xvYWQgaWRlbnRpdHkgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJXb3JrbG9hZElkZW50aXR5IHtcbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQXp1cmUgS2V5IFZhdWx0IEtNUyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlckF6dXJlS2V5VmF1bHRLbXMge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkga2V5SWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGtleVZhdWx0TmV0d29ya0FjY2Vzcz86IHN0cmluZztcbiAgcmVhZG9ubHkga2V5VmF1bHRSZXNvdXJjZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFN0b3JhZ2UgcHJvZmlsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJTdG9yYWdlUHJvZmlsZSB7XG4gIHJlYWRvbmx5IGRpc2tDU0lEcml2ZXI/OiBBa3NDbHVzdGVyRGlza0NTSURyaXZlcjtcbiAgcmVhZG9ubHkgZmlsZUNTSURyaXZlcj86IEFrc0NsdXN0ZXJGaWxlQ1NJRHJpdmVyO1xuICByZWFkb25seSBzbmFwc2hvdENvbnRyb2xsZXI/OiBBa3NDbHVzdGVyU25hcHNob3RDb250cm9sbGVyO1xuICByZWFkb25seSBibG9iQ1NJRHJpdmVyPzogQWtzQ2x1c3RlckJsb2JDU0lEcml2ZXI7XG59XG5cbi8qKlxuICogRGlzayBDU0kgZHJpdmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlckRpc2tDU0lEcml2ZXIge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBGaWxlIENTSSBkcml2ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyRmlsZUNTSURyaXZlciB7XG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFNuYXBzaG90IGNvbnRyb2xsZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVyU25hcHNob3RDb250cm9sbGVyIHtcbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQmxvYiBDU0kgZHJpdmVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlckJsb2JDU0lEcml2ZXIge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBIVFRQIHByb3h5IGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBa3NDbHVzdGVySHR0cFByb3h5Q29uZmlnIHtcbiAgcmVhZG9ubHkgaHR0cFByb3h5Pzogc3RyaW5nO1xuICByZWFkb25seSBodHRwc1Byb3h5Pzogc3RyaW5nO1xuICByZWFkb25seSBub1Byb3h5Pzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHRydXN0ZWRDYT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBXb3JrbG9hZCBhdXRvLXNjYWxlciBwcm9maWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3Rlcldvcmtsb2FkQXV0b1NjYWxlclByb2ZpbGUge1xuICByZWFkb25seSBrZWRhPzogQWtzQ2x1c3RlcktlZGE7XG4gIHJlYWRvbmx5IHZlcnRpY2FsUG9kQXV0b3NjYWxlcj86IEFrc0NsdXN0ZXJWZXJ0aWNhbFBvZEF1dG9zY2FsZXI7XG59XG5cbi8qKlxuICogS0VEQSBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWtzQ2x1c3RlcktlZGEge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBWZXJ0aWNhbCBwb2QgYXV0b3NjYWxlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJWZXJ0aWNhbFBvZEF1dG9zY2FsZXIge1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIEFLUyBDbHVzdGVyIG1vbml0b3JpbmdcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFrc0NsdXN0ZXJNb25pdG9yaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaHJlc2hvbGQgZm9yIG5vZGUgQ1BVIHVzYWdlIHBlcmNlbnRhZ2UgKDAtMTAwKVxuICAgKlxuICAgKiBAZGVmYXVsdCA4MFxuICAgKi9cbiAgcmVhZG9ubHkgbm9kZUNwdVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIGZvciBub2RlIG1lbW9yeSB1c2FnZSBwZXJjZW50YWdlICgwLTEwMClcbiAgICpcbiAgICogQGRlZmF1bHQgODBcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVNZW1vcnlUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRocmVzaG9sZCBmb3IgZmFpbGVkIHBvZCBjb3VudFxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBmYWlsZWRQb2RUaHJlc2hvbGQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIG5vZGUgQ1BVIHVzYWdlIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU5vZGVDcHVBbGVydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIG5vZGUgbWVtb3J5IHVzYWdlIGFsZXJ0XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU5vZGVNZW1vcnlBbGVydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZW5hYmxlIGZhaWxlZCBwb2QgYWxlcnRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRmFpbGVkUG9kQWxlcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBBS1MgY2x1c3RlciBkZWxldGlvbiBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVEZWxldGlvbkFsZXJ0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V2ZXJpdHkgbGV2ZWwgZm9yIG5vZGUgQ1BVIGFsZXJ0ICgwPUNyaXRpY2FsLCAxPUVycm9yLCAyPVdhcm5pbmcsIDM9SW5mb3JtYXRpb25hbCwgND1WZXJib3NlKVxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBub2RlQ3B1QWxlcnRTZXZlcml0eT86IDAgfCAxIHwgMiB8IDMgfCA0O1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3Igbm9kZSBtZW1vcnkgYWxlcnQgKDA9Q3JpdGljYWwsIDE9RXJyb3IsIDI9V2FybmluZywgMz1JbmZvcm1hdGlvbmFsLCA0PVZlcmJvc2UpXG4gICAqXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IG5vZGVNZW1vcnlBbGVydFNldmVyaXR5PzogMCB8IDEgfCAyIHwgMyB8IDQ7XG5cbiAgLyoqXG4gICAqIFNldmVyaXR5IGxldmVsIGZvciBmYWlsZWQgcG9kIGFsZXJ0ICgwPUNyaXRpY2FsLCAxPUVycm9yLCAyPVdhcm5pbmcsIDM9SW5mb3JtYXRpb25hbCwgND1WZXJib3NlKVxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBmYWlsZWRQb2RBbGVydFNldmVyaXR5PzogMCB8IDEgfCAyIHwgMyB8IDQ7XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT01NT04gUFJPUEVSVFkgREVGSU5JVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnR5IGRlZmluaXRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIEFLUyBDbHVzdGVyIHZlcnNpb25zXG4gKi9cbmNvbnN0IENPTU1PTl9QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIEFLUyBjbHVzdGVyIHdpbGwgYmUgY3JlYXRlZFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgQUtTIGNsdXN0ZXJzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16MC05XSskXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gbXVzdCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMgYW5kIG51bWJlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdGFnczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHt9LFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBBS1MgY2x1c3RlclwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICAgICAgbWVzc2FnZTogXCJUYWdzIG11c3QgYmUgYW4gb2JqZWN0IHdpdGggc3RyaW5nIGtleS12YWx1ZSBwYWlyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBuYW1lOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIEFLUyBjbHVzdGVyXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkFLUyBjbHVzdGVyIG5hbWUgaXMgcmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXpBLVowLTldKFthLXpBLVowLTktXXswLDYxfVthLXpBLVowLTldKT8kXCIsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgXCJBS1MgY2x1c3RlciBuYW1lIG11c3QgYmUgMS02MyBjaGFyYWN0ZXJzLCBzdGFydCBhbmQgZW5kIHdpdGggYWxwaGFudW1lcmljLCBhbmQgY2FuIGNvbnRhaW4gaHlwaGVuc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBza3U6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIFNLVSAocHJpY2luZyB0aWVyKSBmb3IgdGhlIEFLUyBjbHVzdGVyXCIsXG4gIH0sXG4gIGlkZW50aXR5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBpZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgQUtTIGNsdXN0ZXJcIixcbiAgfSxcbiAga3ViZXJuZXRlc1ZlcnNpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIEt1YmVybmV0ZXMgdmVyc2lvbiBmb3IgdGhlIGNsdXN0ZXJcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlxcXFxkK1xcXFwuXFxcXGQrXFxcXC5cXFxcZCskXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiS3ViZXJuZXRlcyB2ZXJzaW9uIG11c3QgYmUgaW4gZm9ybWF0IFguWS5aIChlLmcuLCAxLjI4LjMpXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGRuc1ByZWZpeDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkROUyBwcmVmaXggZm9yIHRoZSBjbHVzdGVyXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkROUyBwcmVmaXggaXMgcmVxdWlyZWQgZm9yIEFLUyBjbHVzdGVyc1wiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeW2EtekEtWjAtOV0oW2EtekEtWjAtOS1dezAsNTJ9W2EtekEtWjAtOV0pPyRcIixcbiAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICBcIkROUyBwcmVmaXggbXVzdCBiZSAxLTU0IGNoYXJhY3RlcnMsIHN0YXJ0IGFuZCBlbmQgd2l0aCBhbHBoYW51bWVyaWMsIGFuZCBjYW4gY29udGFpbiBoeXBoZW5zXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGZxZG46IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIEZRRE4gZm9yIHRoZSBjbHVzdGVyIChyZWFkLW9ubHkpXCIsXG4gIH0sXG4gIHByaXZhdGVGUUROOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBwcml2YXRlIEZRRE4gZm9yIHRoZSBjbHVzdGVyIChyZWFkLW9ubHkpXCIsXG4gIH0sXG4gIGFnZW50UG9vbFByb2ZpbGVzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgYWdlbnQgcG9vbCBwcm9maWxlcyBmb3IgdGhlIGNsdXN0ZXIgbm9kZSBwb29sc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJBdCBsZWFzdCBvbmUgYWdlbnQgcG9vbCBwcm9maWxlIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHNlcnZpY2VQcmluY2lwYWxQcm9maWxlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBzZXJ2aWNlIHByaW5jaXBhbCBwcm9maWxlIGZvciB0aGUgY2x1c3RlclwiLFxuICB9LFxuICBuZXR3b3JrUHJvZmlsZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmV0d29yayBjb25maWd1cmF0aW9uIGZvciB0aGUgY2x1c3RlclwiLFxuICB9LFxuICBhYWRQcm9maWxlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IGludGVncmF0aW9uIGNvbmZpZ3VyYXRpb25cIixcbiAgfSxcbiAgYXV0b1NjYWxlclByb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIGF1dG8tc2NhbGVyIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjbHVzdGVyXCIsXG4gIH0sXG4gIGFwaVNlcnZlckFjY2Vzc1Byb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIEFQSSBzZXJ2ZXIgYWNjZXNzIGNvbmZpZ3VyYXRpb25cIixcbiAgfSxcbiAgZGlza0VuY3J5cHRpb25TZXRJRDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIHJlc291cmNlIElEIG9mIHRoZSBkaXNrIGVuY3J5cHRpb24gc2V0IGZvciBlbmNyeXB0aW5nIGRpc2tzXCIsXG4gIH0sXG4gIGVuYWJsZVJCQUM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRvIGVuYWJsZSBLdWJlcm5ldGVzIFJvbGUtQmFzZWQgQWNjZXNzIENvbnRyb2xcIixcbiAgfSxcbiAgbm9kZVJlc291cmNlR3JvdXA6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGdyb3VwIGZvciBjbHVzdGVyIG5vZGVzXCIsXG4gIH0sXG4gIGFkZG9uUHJvZmlsZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIGFkZG9uIHByb2ZpbGVzIGZvciBjbHVzdGVyIGFkZG9uc1wiLFxuICB9LFxuICBsaW51eFByb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIExpbnV4IHByb2ZpbGUgZm9yIFNTSCBhY2Nlc3NcIixcbiAgfSxcbiAgd2luZG93c1Byb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIFdpbmRvd3MgcHJvZmlsZSBmb3IgV2luZG93cyBub2RlIHBvb2xzXCIsXG4gIH0sXG4gIG9pZGNJc3N1ZXJQcm9maWxlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBPSURDIGlzc3VlciBwcm9maWxlIGZvciB3b3JrbG9hZCBpZGVudGl0eVwiLFxuICB9LFxuICBzZWN1cml0eVByb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHNlY3VyaXR5IHByb2ZpbGUgZm9yIHRoZSBjbHVzdGVyXCIsXG4gIH0sXG4gIHN0b3JhZ2VQcm9maWxlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBzdG9yYWdlIHByb2ZpbGUgZm9yIENTSSBkcml2ZXJzXCIsXG4gIH0sXG4gIGh0dHBQcm94eUNvbmZpZzoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgSFRUUCBwcm94eSBjb25maWd1cmF0aW9uXCIsXG4gIH0sXG4gIHdvcmtsb2FkQXV0b1NjYWxlclByb2ZpbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIHdvcmtsb2FkIGF1dG8tc2NhbGVyIHByb2ZpbGVcIixcbiAgfSxcbiAgZGlzYWJsZUxvY2FsQWNjb3VudHM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byBkaXNhYmxlIGxvY2FsIGFjY291bnRzXCIsXG4gIH0sXG4gIHB1YmxpY05ldHdvcmtBY2Nlc3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0aGUgY2x1c3RlciBpcyBhY2Nlc3NpYmxlIGZyb20gdGhlIHB1YmxpYyBpbnRlcm5ldFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeKEVuYWJsZWR8RGlzYWJsZWQpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIlB1YmxpYyBuZXR3b3JrIGFjY2VzcyBtdXN0IGJlIGVpdGhlciAnRW5hYmxlZCcgb3IgJ0Rpc2FibGVkJ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBzdXBwb3J0UGxhbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgc3VwcG9ydCBwbGFuIGZvciB0aGUgY2x1c3RlclwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeKEt1YmVybmV0ZXNPZmZpY2lhbHxBS1NMb25nVGVybVN1cHBvcnQpJFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiU3VwcG9ydCBwbGFuIG11c3QgYmUgJ0t1YmVybmV0ZXNPZmZpY2lhbCcgb3IgJ0FLU0xvbmdUZXJtU3VwcG9ydCdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgaWdub3JlQ2hhbmdlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGlnbm9yZSBkdXJpbmcgdXBkYXRlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIklnbm9yZUNoYW5nZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTi1TUEVDSUZJQyBTQ0hFTUFTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIEFLUyBDbHVzdGVyIHZlcnNpb24gMjAyNC0xMC0wMVxuICovXG5leHBvcnQgY29uc3QgQUtTX0NMVVNURVJfU0NIRU1BXzIwMjRfMTBfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5Db250YWluZXJTZXJ2aWNlL21hbmFnZWRDbHVzdGVyc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjQtMTAtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwiZG5zUHJlZml4XCIsIFwiYWdlbnRQb29sUHJvZmlsZXNcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJza3VcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJrdWJlcm5ldGVzVmVyc2lvblwiLFxuICAgIFwiZnFkblwiLFxuICAgIFwicHJpdmF0ZUZRRE5cIixcbiAgICBcInNlcnZpY2VQcmluY2lwYWxQcm9maWxlXCIsXG4gICAgXCJuZXR3b3JrUHJvZmlsZVwiLFxuICAgIFwiYWFkUHJvZmlsZVwiLFxuICAgIFwiYXV0b1NjYWxlclByb2ZpbGVcIixcbiAgICBcImFwaVNlcnZlckFjY2Vzc1Byb2ZpbGVcIixcbiAgICBcImRpc2tFbmNyeXB0aW9uU2V0SURcIixcbiAgICBcImVuYWJsZVJCQUNcIixcbiAgICBcIm5vZGVSZXNvdXJjZUdyb3VwXCIsXG4gICAgXCJhZGRvblByb2ZpbGVzXCIsXG4gICAgXCJsaW51eFByb2ZpbGVcIixcbiAgICBcIndpbmRvd3NQcm9maWxlXCIsXG4gICAgXCJvaWRjSXNzdWVyUHJvZmlsZVwiLFxuICAgIFwic2VjdXJpdHlQcm9maWxlXCIsXG4gICAgXCJzdG9yYWdlUHJvZmlsZVwiLFxuICAgIFwiaHR0cFByb3h5Q29uZmlnXCIsXG4gICAgXCJ3b3JrbG9hZEF1dG9TY2FsZXJQcm9maWxlXCIsXG4gICAgXCJkaXNhYmxlTG9jYWxBY2NvdW50c1wiLFxuICAgIFwicHVibGljTmV0d29ya0FjY2Vzc1wiLFxuICAgIFwic3VwcG9ydFBsYW5cIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgQUtTIGNsdXN0ZXJzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBBS1MgY2x1c3RlcnNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJkbnNQcmVmaXhcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiRE5TIHByZWZpeCBpcyByZXF1aXJlZCBmb3IgQUtTIGNsdXN0ZXJzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwiYWdlbnRQb29sUHJvZmlsZXNcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiQXQgbGVhc3Qgb25lIGFnZW50IHBvb2wgcHJvZmlsZSBpcyByZXF1aXJlZFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBBS1MgQ2x1c3RlciB2ZXJzaW9uIDIwMjUtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEFLU19DTFVTVEVSX1NDSEVNQV8yMDI1XzAxXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuQ29udGFpbmVyU2VydmljZS9tYW5hZ2VkQ2x1c3RlcnNcIixcbiAgdmVyc2lvbjogXCIyMDI1LTAxLTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcImRuc1ByZWZpeFwiLCBcImFnZW50UG9vbFByb2ZpbGVzXCJdLFxuICBvcHRpb25hbDogW1xuICAgIFwidGFnc1wiLFxuICAgIFwic2t1XCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwia3ViZXJuZXRlc1ZlcnNpb25cIixcbiAgICBcImZxZG5cIixcbiAgICBcInByaXZhdGVGUUROXCIsXG4gICAgXCJzZXJ2aWNlUHJpbmNpcGFsUHJvZmlsZVwiLFxuICAgIFwibmV0d29ya1Byb2ZpbGVcIixcbiAgICBcImFhZFByb2ZpbGVcIixcbiAgICBcImF1dG9TY2FsZXJQcm9maWxlXCIsXG4gICAgXCJhcGlTZXJ2ZXJBY2Nlc3NQcm9maWxlXCIsXG4gICAgXCJkaXNrRW5jcnlwdGlvblNldElEXCIsXG4gICAgXCJlbmFibGVSQkFDXCIsXG4gICAgXCJub2RlUmVzb3VyY2VHcm91cFwiLFxuICAgIFwiYWRkb25Qcm9maWxlc1wiLFxuICAgIFwibGludXhQcm9maWxlXCIsXG4gICAgXCJ3aW5kb3dzUHJvZmlsZVwiLFxuICAgIFwib2lkY0lzc3VlclByb2ZpbGVcIixcbiAgICBcInNlY3VyaXR5UHJvZmlsZVwiLFxuICAgIFwic3RvcmFnZVByb2ZpbGVcIixcbiAgICBcImh0dHBQcm94eUNvbmZpZ1wiLFxuICAgIFwid29ya2xvYWRBdXRvU2NhbGVyUHJvZmlsZVwiLFxuICAgIFwiZGlzYWJsZUxvY2FsQWNjb3VudHNcIixcbiAgICBcInB1YmxpY05ldHdvcmtBY2Nlc3NcIixcbiAgICBcInN1cHBvcnRQbGFuXCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIEFLUyBjbHVzdGVyc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgQUtTIGNsdXN0ZXJzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwiZG5zUHJlZml4XCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkROUyBwcmVmaXggaXMgcmVxdWlyZWQgZm9yIEFLUyBjbHVzdGVyc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImFnZW50UG9vbFByb2ZpbGVzXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkF0IGxlYXN0IG9uZSBhZ2VudCBwb29sIHByb2ZpbGUgaXMgcmVxdWlyZWRcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgQUtTIENsdXN0ZXIgdmVyc2lvbiAyMDI1LTA3LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBBS1NfQ0xVU1RFUl9TQ0hFTUFfMjAyNV8wN18wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkNvbnRhaW5lclNlcnZpY2UvbWFuYWdlZENsdXN0ZXJzXCIsXG4gIHZlcnNpb246IFwiMjAyNS0wNy0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJkbnNQcmVmaXhcIiwgXCJhZ2VudFBvb2xQcm9maWxlc1wiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcInNrdVwiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcImt1YmVybmV0ZXNWZXJzaW9uXCIsXG4gICAgXCJmcWRuXCIsXG4gICAgXCJwcml2YXRlRlFETlwiLFxuICAgIFwic2VydmljZVByaW5jaXBhbFByb2ZpbGVcIixcbiAgICBcIm5ldHdvcmtQcm9maWxlXCIsXG4gICAgXCJhYWRQcm9maWxlXCIsXG4gICAgXCJhdXRvU2NhbGVyUHJvZmlsZVwiLFxuICAgIFwiYXBpU2VydmVyQWNjZXNzUHJvZmlsZVwiLFxuICAgIFwiZGlza0VuY3J5cHRpb25TZXRJRFwiLFxuICAgIFwiZW5hYmxlUkJBQ1wiLFxuICAgIFwibm9kZVJlc291cmNlR3JvdXBcIixcbiAgICBcImFkZG9uUHJvZmlsZXNcIixcbiAgICBcImxpbnV4UHJvZmlsZVwiLFxuICAgIFwid2luZG93c1Byb2ZpbGVcIixcbiAgICBcIm9pZGNJc3N1ZXJQcm9maWxlXCIsXG4gICAgXCJzZWN1cml0eVByb2ZpbGVcIixcbiAgICBcInN0b3JhZ2VQcm9maWxlXCIsXG4gICAgXCJodHRwUHJveHlDb25maWdcIixcbiAgICBcIndvcmtsb2FkQXV0b1NjYWxlclByb2ZpbGVcIixcbiAgICBcImRpc2FibGVMb2NhbEFjY291bnRzXCIsXG4gICAgXCJwdWJsaWNOZXR3b3JrQWNjZXNzXCIsXG4gICAgXCJzdXBwb3J0UGxhblwiLFxuICAgIFwiaWdub3JlQ2hhbmdlc1wiLFxuICBdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogW1xuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImxvY2F0aW9uXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBBS1MgY2x1c3RlcnNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIEFLUyBjbHVzdGVyc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImRuc1ByZWZpeFwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJETlMgcHJlZml4IGlzIHJlcXVpcmVkIGZvciBBS1MgY2x1c3RlcnNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJhZ2VudFBvb2xQcm9maWxlc1wiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJBdCBsZWFzdCBvbmUgYWdlbnQgcG9vbCBwcm9maWxlIGlzIHJlcXVpcmVkXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTiBDT05GSUdVUkFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIEFLUyBDbHVzdGVyIDIwMjQtMTAtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEFLU19DTFVTVEVSX1ZFUlNJT05fMjAyNF8xMF8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTEwLTAxXCIsXG4gIHNjaGVtYTogQUtTX0NMVVNURVJfU0NIRU1BXzIwMjRfMTBfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjQtMTAtMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvYWtzLWNsdXN0ZXIvbWlncmF0aW9uLTIwMjQtMTAtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJhZGRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiU3RhYmxlIHJlbGVhc2Ugd2l0aCBjb21wcmVoZW5zaXZlIEFLUyBmZWF0dXJlcyBpbmNsdWRpbmcgd29ya2xvYWQgYXV0by1zY2FsZXIgYW5kIHN1cHBvcnQgcGxhbnNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIEFLUyBDbHVzdGVyIDIwMjUtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEFLU19DTFVTVEVSX1ZFUlNJT05fMjAyNV8wMV8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI1LTAxLTAxXCIsXG4gIHNjaGVtYTogQUtTX0NMVVNURVJfU0NIRU1BXzIwMjVfMDFfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDEtMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvYWtzLWNsdXN0ZXIvbWlncmF0aW9uLTIwMjUtMDEtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJFbmhhbmNlZCBzZWN1cml0eSBhbmQgcGVyZm9ybWFuY2UgZmVhdHVyZXNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiSW1wcm92ZWQgd29ya2xvYWQgaWRlbnRpdHkgYW5kIHNlY3VyaXR5IHByb2ZpbGUgY29uZmlndXJhdGlvbnNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIEFLUyBDbHVzdGVyIDIwMjUtMDctMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEFLU19DTFVTVEVSX1ZFUlNJT05fMjAyNV8wN18wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI1LTA3LTAxXCIsXG4gIHNjaGVtYTogQUtTX0NMVVNURVJfU0NIRU1BXzIwMjVfMDdfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjUtMDctMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvYWtzLWNsdXN0ZXIvbWlncmF0aW9uLTIwMjUtMDctMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJ1cGRhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJMYXRlc3QgQVBJIHZlcnNpb24gd2l0aCBuZXdlc3QgZmVhdHVyZXMgYW5kIGltcHJvdmVtZW50c1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFsbCBzdXBwb3J0ZWQgQUtTIENsdXN0ZXIgdmVyc2lvbnMgZm9yIHJlZ2lzdHJhdGlvblxuICovXG5leHBvcnQgY29uc3QgQUxMX0FLU19DTFVTVEVSX1ZFUlNJT05TOiBWZXJzaW9uQ29uZmlnW10gPSBbXG4gIEFLU19DTFVTVEVSX1ZFUlNJT05fMjAyNF8xMF8wMSxcbiAgQUtTX0NMVVNURVJfVkVSU0lPTl8yMDI1XzAxXzAxLFxuICBBS1NfQ0xVU1RFUl9WRVJTSU9OXzIwMjVfMDdfMDEsXG5dO1xuXG4vKipcbiAqIFJlc291cmNlIHR5cGUgY29uc3RhbnRcbiAqL1xuZXhwb3J0IGNvbnN0IEFLU19DTFVTVEVSX1RZUEUgPSBcIk1pY3Jvc29mdC5Db250YWluZXJTZXJ2aWNlL21hbmFnZWRDbHVzdGVyc1wiO1xuIl19