@microsoft/teamsfx-core 2.0.10-rc.0 → 2.0.10

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 (1018) hide show
  1. package/build/common/constants.d.ts +19 -11
  2. package/build/common/constants.d.ts.map +1 -1
  3. package/build/common/constants.js +22 -44
  4. package/build/common/constants.js.map +1 -1
  5. package/build/common/correlator.d.ts +0 -1
  6. package/build/common/correlator.d.ts.map +1 -1
  7. package/build/common/correlator.js +1 -6
  8. package/build/common/correlator.js.map +1 -1
  9. package/build/common/deps-checker/checkerFactory.d.ts.map +1 -0
  10. package/build/common/deps-checker/checkerFactory.js.map +1 -0
  11. package/build/{component → common}/deps-checker/constant/helpLink.d.ts +3 -0
  12. package/build/common/deps-checker/constant/helpLink.d.ts.map +1 -0
  13. package/build/{component → common}/deps-checker/constant/helpLink.js +6 -1
  14. package/build/common/deps-checker/constant/helpLink.js.map +1 -0
  15. package/build/common/deps-checker/constant/index.d.ts.map +1 -0
  16. package/build/common/deps-checker/constant/index.js.map +1 -0
  17. package/build/common/deps-checker/constant/message.d.ts.map +1 -0
  18. package/build/common/deps-checker/constant/message.js +45 -0
  19. package/build/common/deps-checker/constant/message.js.map +1 -0
  20. package/build/common/deps-checker/constant/telemetry.d.ts.map +1 -0
  21. package/build/common/deps-checker/constant/telemetry.js.map +1 -0
  22. package/build/common/deps-checker/coreDepsLoggerAdapter.d.ts.map +1 -0
  23. package/build/common/deps-checker/coreDepsLoggerAdapter.js.map +1 -0
  24. package/build/common/deps-checker/coreDepsTelemetryAdapter.d.ts.map +1 -0
  25. package/build/{component → common}/deps-checker/coreDepsTelemetryAdapter.js +4 -4
  26. package/build/common/deps-checker/coreDepsTelemetryAdapter.js.map +1 -0
  27. package/build/common/deps-checker/depsChecker.d.ts.map +1 -0
  28. package/build/common/deps-checker/depsChecker.js.map +1 -0
  29. package/build/common/deps-checker/depsError.d.ts.map +1 -0
  30. package/build/common/deps-checker/depsError.js.map +1 -0
  31. package/build/common/deps-checker/depsLogger.d.ts.map +1 -0
  32. package/build/common/deps-checker/depsLogger.js.map +1 -0
  33. package/build/common/deps-checker/depsManager.d.ts.map +1 -0
  34. package/build/common/deps-checker/depsManager.js.map +1 -0
  35. package/build/common/deps-checker/depsTelemetry.d.ts.map +1 -0
  36. package/build/common/deps-checker/depsTelemetry.js.map +1 -0
  37. package/build/common/deps-checker/index.d.ts.map +1 -0
  38. package/build/common/deps-checker/index.js.map +1 -0
  39. package/build/common/deps-checker/internal/dotnetChecker.d.ts.map +1 -0
  40. package/build/{component → common}/deps-checker/internal/dotnetChecker.js +14 -14
  41. package/build/common/deps-checker/internal/dotnetChecker.js.map +1 -0
  42. package/build/common/deps-checker/internal/funcToolChecker.d.ts.map +1 -0
  43. package/build/{component → common}/deps-checker/internal/funcToolChecker.js +16 -16
  44. package/build/common/deps-checker/internal/funcToolChecker.js.map +1 -0
  45. package/build/common/deps-checker/internal/nodeChecker.d.ts.map +1 -0
  46. package/build/common/deps-checker/internal/nodeChecker.js.map +1 -0
  47. package/build/common/deps-checker/internal/testToolChecker.d.ts.map +1 -0
  48. package/build/{component → common}/deps-checker/internal/testToolChecker.js +22 -22
  49. package/build/common/deps-checker/internal/testToolChecker.js.map +1 -0
  50. package/build/common/deps-checker/internal/vxTestAppChecker.d.ts.map +1 -0
  51. package/build/{component → common}/deps-checker/internal/vxTestAppChecker.js +8 -14
  52. package/build/common/deps-checker/internal/vxTestAppChecker.js.map +1 -0
  53. package/build/common/deps-checker/util/cpUtils.d.ts.map +1 -0
  54. package/build/common/deps-checker/util/cpUtils.js.map +1 -0
  55. package/build/common/deps-checker/util/downloadHelper.d.ts.map +1 -0
  56. package/build/common/deps-checker/util/downloadHelper.js.map +1 -0
  57. package/build/common/deps-checker/util/fileHelper.d.ts.map +1 -0
  58. package/build/common/deps-checker/util/fileHelper.js.map +1 -0
  59. package/build/common/deps-checker/util/index.d.ts.map +1 -0
  60. package/build/common/deps-checker/util/index.js.map +1 -0
  61. package/build/common/deps-checker/util/progressIndicator.d.ts.map +1 -0
  62. package/build/common/deps-checker/util/progressIndicator.js.map +1 -0
  63. package/build/common/deps-checker/util/system.d.ts.map +1 -0
  64. package/build/common/deps-checker/util/system.js.map +1 -0
  65. package/build/common/featureFlags.d.ts +22 -61
  66. package/build/common/featureFlags.d.ts.map +1 -1
  67. package/build/common/featureFlags.js +70 -91
  68. package/build/common/featureFlags.js.map +1 -1
  69. package/build/common/globalState.js +4 -4
  70. package/build/common/globalState.js.map +1 -1
  71. package/build/common/jsonUtils.js +10 -10
  72. package/build/common/jsonUtils.js.map +1 -1
  73. package/build/common/local/constants.d.ts +185 -0
  74. package/build/common/local/constants.d.ts.map +1 -0
  75. package/build/{component → common}/local/constants.js +0 -1
  76. package/build/common/local/constants.js.map +1 -0
  77. package/build/common/local/index.d.ts.map +1 -0
  78. package/build/common/local/index.js.map +1 -0
  79. package/build/common/local/localCertificateManager.d.ts.map +1 -0
  80. package/build/{component → common}/local/localCertificateManager.js +11 -13
  81. package/build/common/local/localCertificateManager.js.map +1 -0
  82. package/build/common/local/localEnvManager.d.ts.map +1 -0
  83. package/build/{component → common}/local/localEnvManager.js +2 -2
  84. package/build/common/local/localEnvManager.js.map +1 -0
  85. package/build/common/local/localTelemetryReporter.d.ts.map +1 -0
  86. package/build/{component → common}/local/localTelemetryReporter.js +4 -4
  87. package/build/common/local/localTelemetryReporter.js.map +1 -0
  88. package/build/common/local/npmLogHelper.d.ts.map +1 -0
  89. package/build/common/local/npmLogHelper.js.map +1 -0
  90. package/build/common/local/packageJsonHelper.d.ts.map +1 -0
  91. package/build/common/local/packageJsonHelper.js.map +1 -0
  92. package/build/common/local/portChecker.d.ts.map +1 -0
  93. package/build/{component → common}/local/portChecker.js +6 -6
  94. package/build/common/local/portChecker.js.map +1 -0
  95. package/build/common/local/process.d.ts.map +1 -0
  96. package/build/common/local/process.js.map +1 -0
  97. package/build/common/local/taskDefinition.d.ts.map +1 -0
  98. package/build/{component → common}/local/taskDefinition.js +6 -6
  99. package/build/common/local/taskDefinition.js.map +1 -0
  100. package/build/common/localizeUtils.js +3 -3
  101. package/build/common/localizeUtils.js.map +1 -1
  102. package/build/common/m365/constants.d.ts +6 -0
  103. package/build/common/m365/constants.d.ts.map +1 -0
  104. package/build/{component → common}/m365/constants.js +1 -4
  105. package/build/common/m365/constants.js.map +1 -0
  106. package/build/common/m365/errors.d.ts.map +1 -0
  107. package/build/{component → common}/m365/errors.js +3 -3
  108. package/build/common/m365/errors.js.map +1 -0
  109. package/build/common/m365/launchHelper.d.ts +12 -0
  110. package/build/common/m365/launchHelper.d.ts.map +1 -0
  111. package/build/{component → common}/m365/launchHelper.js +30 -38
  112. package/build/common/m365/launchHelper.js.map +1 -0
  113. package/build/common/m365/packageService.d.ts.map +1 -0
  114. package/build/{component → common}/m365/packageService.js +28 -28
  115. package/build/common/m365/packageService.js.map +1 -0
  116. package/build/common/m365/serviceConstant.d.ts +3 -0
  117. package/build/common/m365/serviceConstant.d.ts.map +1 -0
  118. package/build/common/m365/serviceConstant.js +8 -0
  119. package/build/common/m365/serviceConstant.js.map +1 -0
  120. package/build/common/projectSettingsHelper.d.ts +0 -5
  121. package/build/common/projectSettingsHelper.d.ts.map +1 -1
  122. package/build/common/projectSettingsHelper.js +1 -31
  123. package/build/common/projectSettingsHelper.js.map +1 -1
  124. package/build/common/projectSettingsHelperV3.d.ts +2 -0
  125. package/build/common/projectSettingsHelperV3.d.ts.map +1 -0
  126. package/build/common/projectSettingsHelperV3.js +15 -0
  127. package/build/common/projectSettingsHelperV3.js.map +1 -0
  128. package/build/common/projectTypeChecker.js +3 -3
  129. package/build/common/projectTypeChecker.js.map +1 -1
  130. package/build/common/samples.d.ts +1 -6
  131. package/build/common/samples.d.ts.map +1 -1
  132. package/build/common/samples.js +7 -7
  133. package/build/common/samples.js.map +1 -1
  134. package/build/common/stringUtils.d.ts +5 -11
  135. package/build/common/stringUtils.d.ts.map +1 -1
  136. package/build/common/stringUtils.js +101 -71
  137. package/build/common/stringUtils.js.map +1 -1
  138. package/build/common/telemetry.d.ts +13 -43
  139. package/build/common/telemetry.d.ts.map +1 -1
  140. package/build/common/telemetry.js +74 -97
  141. package/build/common/telemetry.js.map +1 -1
  142. package/build/common/templates-config.json +2 -2
  143. package/build/common/tools.d.ts +32 -2
  144. package/build/common/tools.d.ts.map +1 -1
  145. package/build/common/tools.js +250 -17
  146. package/build/common/tools.js.map +1 -1
  147. package/build/common/utils.d.ts +3 -5
  148. package/build/common/utils.d.ts.map +1 -1
  149. package/build/common/utils.js +12 -40
  150. package/build/common/utils.js.map +1 -1
  151. package/build/common/wrappedAxiosClient.d.ts +0 -1
  152. package/build/common/wrappedAxiosClient.d.ts.map +1 -1
  153. package/build/common/wrappedAxiosClient.js +34 -64
  154. package/build/common/wrappedAxiosClient.js.map +1 -1
  155. package/build/component/configManager/actionInjector.js +2 -2
  156. package/build/component/configManager/actionInjector.js.map +1 -1
  157. package/build/component/configManager/lifecycle.js +10 -10
  158. package/build/component/configManager/lifecycle.js.map +1 -1
  159. package/build/component/configManager/parser.js +21 -21
  160. package/build/component/configManager/parser.js.map +1 -1
  161. package/build/component/configManager/validator.js +2 -2
  162. package/build/component/configManager/validator.js.map +1 -1
  163. package/build/component/constant/commonConstant.d.ts +0 -1
  164. package/build/component/constant/commonConstant.d.ts.map +1 -1
  165. package/build/component/constant/commonConstant.js +0 -1
  166. package/build/component/constant/commonConstant.js.map +1 -1
  167. package/build/component/constants.d.ts +223 -7
  168. package/build/component/constants.d.ts.map +1 -1
  169. package/build/component/constants.js +251 -12
  170. package/build/component/constants.js.map +1 -1
  171. package/build/component/coordinator/index.d.ts.map +1 -1
  172. package/build/component/coordinator/index.js +234 -125
  173. package/build/component/coordinator/index.js.map +1 -1
  174. package/build/component/coordinator/summary.js +10 -10
  175. package/build/component/coordinator/summary.js.map +1 -1
  176. package/build/component/deployUtils.js +4 -4
  177. package/build/component/deployUtils.js.map +1 -1
  178. package/build/component/developerPortalScaffoldUtils.d.ts +5 -1
  179. package/build/component/developerPortalScaffoldUtils.d.ts.map +1 -1
  180. package/build/component/developerPortalScaffoldUtils.js +94 -78
  181. package/build/component/developerPortalScaffoldUtils.js.map +1 -1
  182. package/build/component/driver/aad/create.d.ts.map +1 -1
  183. package/build/component/driver/aad/create.js +29 -43
  184. package/build/component/driver/aad/create.js.map +1 -1
  185. package/build/component/driver/aad/error/aadAppNameTooLongError.js +2 -2
  186. package/build/component/driver/aad/error/aadAppNameTooLongError.js.map +1 -1
  187. package/build/component/driver/aad/error/aadManifestError.js +27 -27
  188. package/build/component/driver/aad/error/aadManifestError.js.map +1 -1
  189. package/build/component/driver/aad/error/clientSecretNotAllowedError.js +2 -2
  190. package/build/component/driver/aad/error/clientSecretNotAllowedError.js.map +1 -1
  191. package/build/component/driver/aad/error/credentialInvalidLifetimeError.js +2 -2
  192. package/build/component/driver/aad/error/credentialInvalidLifetimeError.js.map +1 -1
  193. package/build/component/driver/aad/error/invalidFieldInManifestError.js +2 -2
  194. package/build/component/driver/aad/error/invalidFieldInManifestError.js.map +1 -1
  195. package/build/component/driver/aad/error/missingEnvError.js +2 -2
  196. package/build/component/driver/aad/error/missingEnvError.js.map +1 -1
  197. package/build/component/driver/aad/update.js +16 -16
  198. package/build/component/driver/aad/update.js.map +1 -1
  199. package/build/component/driver/aad/utility/aadAppClient.d.ts.map +1 -1
  200. package/build/component/driver/aad/utility/aadAppClient.js +19 -19
  201. package/build/component/driver/aad/utility/aadAppClient.js.map +1 -1
  202. package/build/component/driver/aad/utility/aadManifestHelper.js +3 -3
  203. package/build/component/driver/aad/utility/aadManifestHelper.js.map +1 -1
  204. package/build/component/driver/aad/utility/buildAadManifest.d.ts +1 -1
  205. package/build/component/driver/aad/utility/buildAadManifest.d.ts.map +1 -1
  206. package/build/component/driver/aad/utility/buildAadManifest.js +13 -13
  207. package/build/component/driver/aad/utility/buildAadManifest.js.map +1 -1
  208. package/build/component/driver/aad/utility/constants.d.ts +0 -2
  209. package/build/component/driver/aad/utility/constants.d.ts.map +1 -1
  210. package/build/component/driver/aad/utility/constants.js +0 -2
  211. package/build/component/driver/aad/utility/constants.js.map +1 -1
  212. package/build/component/driver/add/addWebPart.d.ts +2 -2
  213. package/build/component/driver/add/addWebPart.d.ts.map +1 -1
  214. package/build/component/driver/add/addWebPart.js +31 -31
  215. package/build/component/driver/add/addWebPart.js.map +1 -1
  216. package/build/component/driver/add/error/noConfigurationError.js +2 -2
  217. package/build/component/driver/add/error/noConfigurationError.js.map +1 -1
  218. package/build/component/driver/apiKey/create.d.ts.map +1 -1
  219. package/build/component/driver/apiKey/create.js +27 -30
  220. package/build/component/driver/apiKey/create.js.map +1 -1
  221. package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.js +2 -2
  222. package/build/component/driver/apiKey/error/apiKeyClientSecretInvalid.js.map +1 -1
  223. package/build/component/driver/apiKey/error/apiKeyDomainInvalid.js +2 -2
  224. package/build/component/driver/apiKey/error/apiKeyDomainInvalid.js.map +1 -1
  225. package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.js +2 -2
  226. package/build/component/driver/apiKey/error/apiKeyFailedToGetDomain.js.map +1 -1
  227. package/build/component/driver/apiKey/error/apiKeyNameTooLong.js +2 -2
  228. package/build/component/driver/apiKey/error/apiKeyNameTooLong.js.map +1 -1
  229. package/build/component/driver/apiKey/update.d.ts +1 -1
  230. package/build/component/driver/apiKey/update.d.ts.map +1 -1
  231. package/build/component/driver/apiKey/update.js +27 -27
  232. package/build/component/driver/apiKey/update.js.map +1 -1
  233. package/build/component/driver/apiKey/utility/constants.d.ts +1 -1
  234. package/build/component/driver/apiKey/utility/constants.js +1 -1
  235. package/build/component/driver/apiKey/utility/utility.js +2 -2
  236. package/build/component/driver/apiKey/utility/utility.js.map +1 -1
  237. package/build/component/driver/arm/deploy.js +4 -4
  238. package/build/component/driver/arm/deploy.js.map +1 -1
  239. package/build/component/driver/arm/deployImpl.d.ts.map +1 -1
  240. package/build/component/driver/arm/deployImpl.js +18 -20
  241. package/build/component/driver/arm/deployImpl.js.map +1 -1
  242. package/build/component/driver/arm/util/bicepChecker.d.ts.map +1 -1
  243. package/build/component/driver/arm/util/bicepChecker.js +9 -29
  244. package/build/component/driver/arm/util/bicepChecker.js.map +1 -1
  245. package/build/component/driver/arm/util/handleError.js +10 -10
  246. package/build/component/driver/arm/util/handleError.js.map +1 -1
  247. package/build/component/driver/arm/validator.js +3 -3
  248. package/build/component/driver/arm/validator.js.map +1 -1
  249. package/build/component/driver/botAadApp/create.d.ts.map +1 -1
  250. package/build/component/driver/botAadApp/create.js +22 -38
  251. package/build/component/driver/botAadApp/create.js.map +1 -1
  252. package/build/component/driver/botAadApp/error/unexpectedEmptyBotPasswordError.js +2 -2
  253. package/build/component/driver/botAadApp/error/unexpectedEmptyBotPasswordError.js.map +1 -1
  254. package/build/component/driver/botAadApp/utility/constants.d.ts +0 -1
  255. package/build/component/driver/botAadApp/utility/constants.d.ts.map +1 -1
  256. package/build/component/driver/botAadApp/utility/constants.js +0 -1
  257. package/build/component/driver/botAadApp/utility/constants.js.map +1 -1
  258. package/build/component/driver/botFramework/createOrUpdateBot.js +14 -14
  259. package/build/component/driver/botFramework/createOrUpdateBot.js.map +1 -1
  260. package/build/component/driver/botFramework/error/invalidBotIdError.js +2 -2
  261. package/build/component/driver/botFramework/error/invalidBotIdError.js.map +1 -1
  262. package/build/component/driver/deploy/azure/azureAppServiceDeployDriver.js +3 -3
  263. package/build/component/driver/deploy/azure/azureAppServiceDeployDriver.js.map +1 -1
  264. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.js +3 -3
  265. package/build/component/driver/deploy/azure/azureFunctionDeployDriver.js.map +1 -1
  266. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.d.ts.map +1 -1
  267. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js +10 -16
  268. package/build/component/driver/deploy/azure/azureStaticWebAppGetDeploymentTokenDriver.js.map +1 -1
  269. package/build/component/driver/deploy/azure/azureStorageDeployDriver.js +9 -9
  270. package/build/component/driver/deploy/azure/azureStorageDeployDriver.js.map +1 -1
  271. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.js +15 -15
  272. package/build/component/driver/deploy/azure/azureStorageStaticWebsiteConfigDriver.js.map +1 -1
  273. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js +7 -7
  274. package/build/component/driver/deploy/azure/impl/AzureZipDeployImpl.js.map +1 -1
  275. package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts +4 -4
  276. package/build/component/driver/deploy/azure/impl/azureDeployImpl.d.ts.map +1 -1
  277. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js +20 -20
  278. package/build/component/driver/deploy/azure/impl/azureDeployImpl.js.map +1 -1
  279. package/build/component/driver/deploy/azure/impl/baseDeployImpl.js +11 -11
  280. package/build/component/driver/deploy/azure/impl/baseDeployImpl.js.map +1 -1
  281. package/build/component/driver/deploy/spfx/deployDriver.d.ts +1 -1
  282. package/build/component/driver/deploy/spfx/deployDriver.d.ts.map +1 -1
  283. package/build/component/driver/deploy/spfx/deployDriver.js +28 -29
  284. package/build/component/driver/deploy/spfx/deployDriver.js.map +1 -1
  285. package/build/component/driver/deploy/spfx/error/createAppCatalogFailedError.js +2 -2
  286. package/build/component/driver/deploy/spfx/error/createAppCatalogFailedError.js.map +1 -1
  287. package/build/component/driver/deploy/spfx/error/getGraphTokenFailedError.js +2 -2
  288. package/build/component/driver/deploy/spfx/error/getGraphTokenFailedError.js.map +1 -1
  289. package/build/component/driver/deploy/spfx/error/getSPOTokenFailedError.js +2 -2
  290. package/build/component/driver/deploy/spfx/error/getSPOTokenFailedError.js.map +1 -1
  291. package/build/component/driver/deploy/spfx/error/getTenantFailedError.js +2 -2
  292. package/build/component/driver/deploy/spfx/error/getTenantFailedError.js.map +1 -1
  293. package/build/component/driver/deploy/spfx/error/insufficientPermissionError.js +2 -2
  294. package/build/component/driver/deploy/spfx/error/insufficientPermissionError.js.map +1 -1
  295. package/build/component/driver/deploy/spfx/error/noSPPackageError.js +2 -2
  296. package/build/component/driver/deploy/spfx/error/noSPPackageError.js.map +1 -1
  297. package/build/component/driver/deploy/spfx/error/noValidAppCatelogError.js +2 -2
  298. package/build/component/driver/deploy/spfx/error/noValidAppCatelogError.js.map +1 -1
  299. package/build/component/driver/deploy/spfx/error/uploadAppPackageFailedError.js +2 -2
  300. package/build/component/driver/deploy/spfx/error/uploadAppPackageFailedError.js.map +1 -1
  301. package/build/component/driver/deploy/spfx/utility/constants.js +5 -5
  302. package/build/component/driver/deploy/spfx/utility/constants.js.map +1 -1
  303. package/build/component/driver/devTool/constant.d.ts +8 -8
  304. package/build/component/driver/devTool/constant.d.ts.map +1 -1
  305. package/build/component/driver/devTool/constant.js +10 -10
  306. package/build/component/driver/devTool/constant.js.map +1 -1
  307. package/build/component/driver/devTool/error/dotnetInstallationUserError.js +4 -4
  308. package/build/component/driver/devTool/error/dotnetInstallationUserError.js.map +1 -1
  309. package/build/component/driver/devTool/error/funcInstallationUserError.js +4 -4
  310. package/build/component/driver/devTool/error/funcInstallationUserError.js.map +1 -1
  311. package/build/component/driver/devTool/error/testToolInstallationUserError.js +4 -4
  312. package/build/component/driver/devTool/error/testToolInstallationUserError.js.map +1 -1
  313. package/build/component/driver/devTool/installDriver.d.ts +1 -1
  314. package/build/component/driver/devTool/installDriver.d.ts.map +1 -1
  315. package/build/component/driver/devTool/installDriver.js +12 -12
  316. package/build/component/driver/devTool/installDriver.js.map +1 -1
  317. package/build/component/driver/error/outputEnvironmentVariableUndefinedError.js +2 -2
  318. package/build/component/driver/error/outputEnvironmentVariableUndefinedError.js.map +1 -1
  319. package/build/component/driver/file/createOrUpdateEnvironmentFile.js +11 -11
  320. package/build/component/driver/file/createOrUpdateEnvironmentFile.js.map +1 -1
  321. package/build/component/driver/file/createOrUpdateJsonFile.js +12 -12
  322. package/build/component/driver/file/createOrUpdateJsonFile.js.map +1 -1
  323. package/build/component/driver/index.d.ts +0 -1
  324. package/build/component/driver/index.d.ts.map +1 -1
  325. package/build/component/driver/index.js +0 -1
  326. package/build/component/driver/index.js.map +1 -1
  327. package/build/component/driver/m365/acquire.js +16 -16
  328. package/build/component/driver/m365/acquire.js.map +1 -1
  329. package/build/component/driver/middleware/addSWADeployTelemetry.js +7 -7
  330. package/build/component/driver/middleware/addSWADeployTelemetry.js.map +1 -1
  331. package/build/component/driver/middleware/addStartAndEndTelemetry.d.ts.map +1 -1
  332. package/build/component/driver/middleware/addStartAndEndTelemetry.js +3 -3
  333. package/build/component/driver/middleware/addStartAndEndTelemetry.js.map +1 -1
  334. package/build/component/driver/oauth/create.d.ts +1 -1
  335. package/build/component/driver/oauth/create.d.ts.map +1 -1
  336. package/build/component/driver/oauth/create.js +36 -65
  337. package/build/component/driver/oauth/create.js.map +1 -1
  338. package/build/component/driver/oauth/error/oauthAuthInfoInvalid.js +2 -2
  339. package/build/component/driver/oauth/error/oauthAuthInfoInvalid.js.map +1 -1
  340. package/build/component/driver/oauth/error/oauthDomainInvalid.js +2 -2
  341. package/build/component/driver/oauth/error/oauthDomainInvalid.js.map +1 -1
  342. package/build/component/driver/oauth/error/oauthFailedToGetDomain.js +2 -2
  343. package/build/component/driver/oauth/error/oauthFailedToGetDomain.js.map +1 -1
  344. package/build/component/driver/oauth/error/oauthNameTooLong.js +2 -2
  345. package/build/component/driver/oauth/error/oauthNameTooLong.js.map +1 -1
  346. package/build/component/driver/oauth/interface/createOauthArgs.d.ts +0 -2
  347. package/build/component/driver/oauth/interface/createOauthArgs.d.ts.map +1 -1
  348. package/build/component/driver/oauth/interface/updateOauthArgs.d.ts +0 -1
  349. package/build/component/driver/oauth/interface/updateOauthArgs.d.ts.map +1 -1
  350. package/build/component/driver/oauth/update.d.ts +1 -1
  351. package/build/component/driver/oauth/update.d.ts.map +1 -1
  352. package/build/component/driver/oauth/update.js +26 -37
  353. package/build/component/driver/oauth/update.js.map +1 -1
  354. package/build/component/driver/oauth/utility/constants.d.ts +1 -1
  355. package/build/component/driver/oauth/utility/constants.js +1 -1
  356. package/build/component/driver/oauth/utility/utility.js +6 -5
  357. package/build/component/driver/oauth/utility/utility.js.map +1 -1
  358. package/build/component/driver/script/baseBuildDriver.js +8 -8
  359. package/build/component/driver/script/baseBuildDriver.js.map +1 -1
  360. package/build/component/driver/script/dotnetBuildDriver.js +3 -3
  361. package/build/component/driver/script/dotnetBuildDriver.js.map +1 -1
  362. package/build/component/driver/script/npmBuildDriver.js +3 -3
  363. package/build/component/driver/script/npmBuildDriver.js.map +1 -1
  364. package/build/component/driver/script/npxBuildDriver.js +5 -5
  365. package/build/component/driver/script/npxBuildDriver.js.map +1 -1
  366. package/build/component/driver/script/scriptDriver.d.ts +0 -2
  367. package/build/component/driver/script/scriptDriver.d.ts.map +1 -1
  368. package/build/component/driver/script/scriptDriver.js +29 -28
  369. package/build/component/driver/script/scriptDriver.js.map +1 -1
  370. package/build/component/driver/teamsApp/appStudio.d.ts +1 -1
  371. package/build/component/driver/teamsApp/appStudio.d.ts.map +1 -1
  372. package/build/component/driver/teamsApp/appStudio.js +74 -63
  373. package/build/component/driver/teamsApp/appStudio.js.map +1 -1
  374. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts +4 -7
  375. package/build/component/driver/teamsApp/clients/appStudioClient.d.ts.map +1 -1
  376. package/build/component/driver/teamsApp/clients/appStudioClient.js +77 -78
  377. package/build/component/driver/teamsApp/clients/appStudioClient.js.map +1 -1
  378. package/build/component/driver/teamsApp/configure.d.ts +1 -1
  379. package/build/component/driver/teamsApp/configure.d.ts.map +1 -1
  380. package/build/component/driver/teamsApp/configure.js +32 -32
  381. package/build/component/driver/teamsApp/configure.js.map +1 -1
  382. package/build/component/driver/teamsApp/constants.d.ts +3 -15
  383. package/build/component/driver/teamsApp/constants.d.ts.map +1 -1
  384. package/build/component/driver/teamsApp/constants.js +16 -136
  385. package/build/component/driver/teamsApp/constants.js.map +1 -1
  386. package/build/component/driver/teamsApp/copyAppPackageToSPFx.js +8 -8
  387. package/build/component/driver/teamsApp/copyAppPackageToSPFx.js.map +1 -1
  388. package/build/component/driver/teamsApp/create.d.ts +2 -2
  389. package/build/component/driver/teamsApp/create.d.ts.map +1 -1
  390. package/build/component/driver/teamsApp/create.js +37 -37
  391. package/build/component/driver/teamsApp/create.js.map +1 -1
  392. package/build/component/driver/teamsApp/createAppPackage.d.ts +1 -3
  393. package/build/component/driver/teamsApp/createAppPackage.d.ts.map +1 -1
  394. package/build/component/driver/teamsApp/createAppPackage.js +68 -84
  395. package/build/component/driver/teamsApp/createAppPackage.js.map +1 -1
  396. package/build/component/driver/teamsApp/errors.d.ts +2 -6
  397. package/build/component/driver/teamsApp/errors.d.ts.map +1 -1
  398. package/build/component/driver/teamsApp/errors.js +42 -49
  399. package/build/component/driver/teamsApp/errors.js.map +1 -1
  400. package/build/component/driver/teamsApp/interfaces/CreateAppPackageArgs.d.ts +2 -6
  401. package/build/component/driver/teamsApp/interfaces/CreateAppPackageArgs.d.ts.map +1 -1
  402. package/build/component/driver/teamsApp/interfaces/OauthRegistration.d.ts +0 -2
  403. package/build/component/driver/teamsApp/interfaces/OauthRegistration.d.ts.map +1 -1
  404. package/build/component/driver/teamsApp/interfaces/OauthRegistration.js.map +1 -1
  405. package/build/component/driver/teamsApp/interfaces/appdefinitions/IValidationResult.d.ts +0 -1
  406. package/build/component/driver/teamsApp/interfaces/appdefinitions/IValidationResult.d.ts.map +1 -1
  407. package/build/component/driver/teamsApp/publishAppPackage.d.ts +1 -1
  408. package/build/component/driver/teamsApp/publishAppPackage.d.ts.map +1 -1
  409. package/build/component/driver/teamsApp/publishAppPackage.js +42 -42
  410. package/build/component/driver/teamsApp/publishAppPackage.js.map +1 -1
  411. package/build/component/driver/teamsApp/teamsappMgr.d.ts.map +1 -1
  412. package/build/component/driver/teamsApp/teamsappMgr.js +49 -48
  413. package/build/component/driver/teamsApp/teamsappMgr.js.map +1 -1
  414. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.d.ts +3 -5
  415. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.d.ts.map +1 -1
  416. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js +41 -72
  417. package/build/component/driver/teamsApp/utils/CopilotGptManifestUtils.js.map +1 -1
  418. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts +2 -3
  419. package/build/component/driver/teamsApp/utils/ManifestUtils.d.ts.map +1 -1
  420. package/build/component/driver/teamsApp/utils/ManifestUtils.js +61 -85
  421. package/build/component/driver/teamsApp/utils/ManifestUtils.js.map +1 -1
  422. package/build/component/driver/teamsApp/utils/PluginManifestUtils.d.ts +3 -4
  423. package/build/component/driver/teamsApp/utils/PluginManifestUtils.d.ts.map +1 -1
  424. package/build/component/driver/teamsApp/utils/PluginManifestUtils.js +18 -36
  425. package/build/component/driver/teamsApp/utils/PluginManifestUtils.js.map +1 -1
  426. package/build/component/driver/teamsApp/utils/telemetry.d.ts +9 -0
  427. package/build/component/driver/teamsApp/utils/telemetry.d.ts.map +1 -1
  428. package/build/component/driver/teamsApp/utils/telemetry.js +9 -0
  429. package/build/component/driver/teamsApp/utils/telemetry.js.map +1 -1
  430. package/build/component/driver/teamsApp/utils/utils.d.ts +4 -4
  431. package/build/component/driver/teamsApp/utils/utils.d.ts.map +1 -1
  432. package/build/component/driver/teamsApp/utils/utils.js +15 -45
  433. package/build/component/driver/teamsApp/utils/utils.js.map +1 -1
  434. package/build/component/driver/teamsApp/validate.js +27 -27
  435. package/build/component/driver/teamsApp/validate.js.map +1 -1
  436. package/build/component/driver/teamsApp/validateAppPackage.d.ts +5 -3
  437. package/build/component/driver/teamsApp/validateAppPackage.d.ts.map +1 -1
  438. package/build/component/driver/teamsApp/validateAppPackage.js +54 -68
  439. package/build/component/driver/teamsApp/validateAppPackage.js.map +1 -1
  440. package/build/component/driver/teamsApp/validateTestCases.d.ts +3 -3
  441. package/build/component/driver/teamsApp/validateTestCases.d.ts.map +1 -1
  442. package/build/component/driver/teamsApp/validateTestCases.js +49 -50
  443. package/build/component/driver/teamsApp/validateTestCases.js.map +1 -1
  444. package/build/component/driver/util/utils.d.ts +0 -3
  445. package/build/component/driver/util/utils.d.ts.map +1 -1
  446. package/build/component/driver/util/utils.js +1 -16
  447. package/build/component/driver/util/utils.js.map +1 -1
  448. package/build/component/driver/util/wrapUtil.d.ts.map +1 -1
  449. package/build/component/driver/util/wrapUtil.js +9 -12
  450. package/build/component/driver/util/wrapUtil.js.map +1 -1
  451. package/build/component/error/componentError.js +8 -8
  452. package/build/component/error/componentError.js.map +1 -1
  453. package/build/component/feature/collaboration.d.ts.map +1 -1
  454. package/build/component/feature/collaboration.js +59 -60
  455. package/build/component/feature/collaboration.js.map +1 -1
  456. package/build/component/feature/createAuthFiles.js +8 -8
  457. package/build/component/feature/createAuthFiles.js.map +1 -1
  458. package/build/component/feature/sso.js +6 -7
  459. package/build/component/feature/sso.js.map +1 -1
  460. package/build/component/generator/constant.d.ts +0 -1
  461. package/build/component/generator/constant.d.ts.map +1 -1
  462. package/build/component/generator/constant.js +1 -2
  463. package/build/component/generator/constant.js.map +1 -1
  464. package/build/component/generator/copilotPlugin/generator.d.ts +13 -0
  465. package/build/component/generator/copilotPlugin/generator.d.ts.map +1 -0
  466. package/build/component/generator/copilotPlugin/generator.js +275 -0
  467. package/build/component/generator/copilotPlugin/generator.js.map +1 -0
  468. package/build/component/generator/copilotPlugin/helper.d.ts +45 -0
  469. package/build/component/generator/copilotPlugin/helper.d.ts.map +1 -0
  470. package/build/component/generator/copilotPlugin/helper.js +710 -0
  471. package/build/component/generator/copilotPlugin/helper.js.map +1 -0
  472. package/build/component/generator/error.d.ts +1 -1
  473. package/build/component/generator/error.d.ts.map +1 -1
  474. package/build/component/generator/error.js +5 -5
  475. package/build/component/generator/error.js.map +1 -1
  476. package/build/component/generator/generator.d.ts.map +1 -1
  477. package/build/component/generator/generator.js +21 -27
  478. package/build/component/generator/generator.js.map +1 -1
  479. package/build/component/generator/generatorAction.d.ts +1 -1
  480. package/build/component/generator/generatorAction.d.ts.map +1 -1
  481. package/build/component/generator/generatorAction.js +22 -14
  482. package/build/component/generator/generatorAction.js.map +1 -1
  483. package/build/component/generator/generatorProvider.d.ts.map +1 -1
  484. package/build/component/generator/generatorProvider.js +2 -6
  485. package/build/component/generator/generatorProvider.js.map +1 -1
  486. package/build/component/generator/officeAddin/generator.d.ts +1 -0
  487. package/build/component/generator/officeAddin/generator.d.ts.map +1 -1
  488. package/build/component/generator/officeAddin/generator.js +73 -72
  489. package/build/component/generator/officeAddin/generator.js.map +1 -1
  490. package/build/component/generator/officeAddin/helperMethods.d.ts +0 -5
  491. package/build/component/generator/officeAddin/helperMethods.d.ts.map +1 -1
  492. package/build/component/generator/officeAddin/helperMethods.js +0 -37
  493. package/build/component/generator/officeAddin/helperMethods.js.map +1 -1
  494. package/build/component/generator/officeXMLAddin/generator.d.ts +13 -0
  495. package/build/component/generator/officeXMLAddin/generator.d.ts.map +1 -0
  496. package/build/component/generator/officeXMLAddin/generator.js +110 -0
  497. package/build/component/generator/officeXMLAddin/generator.js.map +1 -0
  498. package/build/component/generator/officeXMLAddin/projectConfig.d.ts +4 -2
  499. package/build/component/generator/officeXMLAddin/projectConfig.d.ts.map +1 -1
  500. package/build/component/generator/officeXMLAddin/projectConfig.js +86 -1
  501. package/build/component/generator/officeXMLAddin/projectConfig.js.map +1 -1
  502. package/build/component/generator/spfx/depsChecker/generatorChecker.d.ts.map +1 -1
  503. package/build/component/generator/spfx/depsChecker/generatorChecker.js +10 -11
  504. package/build/component/generator/spfx/depsChecker/generatorChecker.js.map +1 -1
  505. package/build/component/generator/spfx/depsChecker/yoChecker.d.ts.map +1 -1
  506. package/build/component/generator/spfx/depsChecker/yoChecker.js +6 -7
  507. package/build/component/generator/spfx/depsChecker/yoChecker.js.map +1 -1
  508. package/build/component/generator/spfx/error.d.ts +1 -0
  509. package/build/component/generator/spfx/error.d.ts.map +1 -1
  510. package/build/component/generator/spfx/error.js +24 -20
  511. package/build/component/generator/spfx/error.js.map +1 -1
  512. package/build/component/generator/spfx/spfxGenerator.d.ts +2 -2
  513. package/build/component/generator/spfx/spfxGenerator.d.ts.map +1 -1
  514. package/build/component/generator/spfx/spfxGenerator.js +105 -102
  515. package/build/component/generator/spfx/spfxGenerator.js.map +1 -1
  516. package/build/component/generator/spfx/utils/constants.d.ts +13 -0
  517. package/build/component/generator/spfx/utils/constants.d.ts.map +1 -1
  518. package/build/component/generator/spfx/utils/constants.js +24 -9
  519. package/build/component/generator/spfx/utils/constants.js.map +1 -1
  520. package/build/component/generator/spfx/utils/telemetry-helper.d.ts.map +1 -1
  521. package/build/component/generator/spfx/utils/telemetry-helper.js +9 -11
  522. package/build/component/generator/spfx/utils/telemetry-helper.js.map +1 -1
  523. package/build/component/generator/spfx/utils/utils.d.ts +1 -1
  524. package/build/component/generator/spfx/utils/utils.d.ts.map +1 -1
  525. package/build/component/generator/spfx/utils/utils.js +3 -3
  526. package/build/component/generator/spfx/utils/utils.js.map +1 -1
  527. package/build/component/generator/templates/ssrTabGenerator.d.ts.map +1 -1
  528. package/build/component/generator/templates/ssrTabGenerator.js +6 -6
  529. package/build/component/generator/templates/ssrTabGenerator.js.map +1 -1
  530. package/build/component/generator/templates/templateGenerator.d.ts +3 -3
  531. package/build/component/generator/templates/templateGenerator.d.ts.map +1 -1
  532. package/build/component/generator/templates/templateGenerator.js +18 -16
  533. package/build/component/generator/templates/templateGenerator.js.map +1 -1
  534. package/build/component/generator/templates/templateNames.d.ts +0 -3
  535. package/build/component/generator/templates/templateNames.d.ts.map +1 -1
  536. package/build/component/generator/templates/templateNames.js +112 -109
  537. package/build/component/generator/templates/templateNames.js.map +1 -1
  538. package/build/component/generator/templates/templateReplaceMap.d.ts.map +1 -1
  539. package/build/component/generator/templates/templateReplaceMap.js +15 -48
  540. package/build/component/generator/templates/templateReplaceMap.js.map +1 -1
  541. package/build/component/generator/utils.d.ts +12 -4
  542. package/build/component/generator/utils.d.ts.map +1 -1
  543. package/build/component/generator/utils.js +80 -49
  544. package/build/component/generator/utils.js.map +1 -1
  545. package/build/component/messages.js +7 -7
  546. package/build/component/messages.js.map +1 -1
  547. package/build/component/middleware/actionExecutionMW.d.ts +1 -1
  548. package/build/component/middleware/actionExecutionMW.d.ts.map +1 -1
  549. package/build/component/middleware/actionExecutionMW.js +13 -13
  550. package/build/component/middleware/actionExecutionMW.js.map +1 -1
  551. package/build/component/middleware/envMW.js +9 -9
  552. package/build/component/middleware/envMW.js.map +1 -1
  553. package/build/component/middleware/questionMW.js +4 -4
  554. package/build/component/middleware/questionMW.js.map +1 -1
  555. package/build/component/migrate.d.ts +0 -32
  556. package/build/component/migrate.d.ts.map +1 -1
  557. package/build/component/migrate.js +35 -112
  558. package/build/component/migrate.js.map +1 -1
  559. package/build/component/provisionUtils.d.ts.map +1 -1
  560. package/build/component/provisionUtils.js +29 -28
  561. package/build/component/provisionUtils.js.map +1 -1
  562. package/build/component/resource/botService/appStudio/appStudioClient.d.ts.map +1 -1
  563. package/build/component/resource/botService/appStudio/appStudioClient.js +22 -23
  564. package/build/component/resource/botService/appStudio/appStudioClient.js.map +1 -1
  565. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.d.ts +1 -1
  566. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.d.ts.map +1 -1
  567. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js +8 -11
  568. package/build/component/resource/botService/botRegistration/botFrameworkRegistration.js.map +1 -1
  569. package/build/component/resource/botService/constants.d.ts +13 -0
  570. package/build/component/resource/botService/constants.d.ts.map +1 -1
  571. package/build/component/resource/botService/constants.js +15 -1
  572. package/build/component/resource/botService/constants.js.map +1 -1
  573. package/build/component/resource/botService/errors.js +2 -2
  574. package/build/component/resource/botService/errors.js.map +1 -1
  575. package/build/component/resource/botService/messages.js +6 -6
  576. package/build/component/resource/botService/messages.js.map +1 -1
  577. package/build/component/resource/botService/strings.js +1 -1
  578. package/build/component/resource/botService/strings.js.map +1 -1
  579. package/build/component/telemetry.d.ts.map +1 -1
  580. package/build/component/telemetry.js +7 -6
  581. package/build/component/telemetry.js.map +1 -1
  582. package/build/component/utils/ResourceGroupHelper.d.ts +2 -10
  583. package/build/component/utils/ResourceGroupHelper.d.ts.map +1 -1
  584. package/build/component/utils/ResourceGroupHelper.js +62 -155
  585. package/build/component/utils/ResourceGroupHelper.js.map +1 -1
  586. package/build/component/utils/azureResourceOperation.js +2 -2
  587. package/build/component/utils/azureResourceOperation.js.map +1 -1
  588. package/build/component/utils/charsetUtils.d.ts +1 -1
  589. package/build/component/utils/charsetUtils.d.ts.map +1 -1
  590. package/build/component/utils/charsetUtils.js +1 -3
  591. package/build/component/utils/charsetUtils.js.map +1 -1
  592. package/build/component/utils/common.d.ts +3 -4
  593. package/build/component/utils/common.d.ts.map +1 -1
  594. package/build/component/utils/common.js +6 -17
  595. package/build/component/utils/common.js.map +1 -1
  596. package/build/component/utils/depsChecker/common.d.ts +3 -1
  597. package/build/component/utils/depsChecker/common.d.ts.map +1 -1
  598. package/build/component/utils/depsChecker/common.js +4 -2
  599. package/build/component/utils/depsChecker/common.js.map +1 -1
  600. package/build/component/utils/envUtil.d.ts +0 -1
  601. package/build/component/utils/envUtil.d.ts.map +1 -1
  602. package/build/component/utils/envUtil.js +20 -20
  603. package/build/component/utils/envUtil.js.map +1 -1
  604. package/build/component/utils/fileOperation.js +4 -3
  605. package/build/component/utils/fileOperation.js.map +1 -1
  606. package/build/component/utils/metadataGraphPermssion.js +3 -3
  607. package/build/component/utils/metadataGraphPermssion.js.map +1 -1
  608. package/build/component/utils/metadataUtil.js +3 -3
  609. package/build/component/utils/metadataUtil.js.map +1 -1
  610. package/build/component/utils/pathUtils.d.ts.map +1 -1
  611. package/build/component/utils/pathUtils.js +16 -14
  612. package/build/component/utils/pathUtils.js.map +1 -1
  613. package/build/component/utils/settingsUtil.js +8 -8
  614. package/build/component/utils/settingsUtil.js.map +1 -1
  615. package/build/component/utils/teamsFxTelemetryReporter.d.ts.map +1 -1
  616. package/build/component/utils/teamsFxTelemetryReporter.js +10 -7
  617. package/build/component/utils/teamsFxTelemetryReporter.js.map +1 -1
  618. package/build/component/utils.d.ts +12 -0
  619. package/build/component/utils.d.ts.map +1 -0
  620. package/build/component/utils.js +136 -0
  621. package/build/component/utils.js.map +1 -0
  622. package/build/component/workflow.d.ts +4 -0
  623. package/build/component/workflow.d.ts.map +1 -0
  624. package/build/component/workflow.js +18 -0
  625. package/build/component/workflow.js.map +1 -0
  626. package/build/core/FxCore.d.ts +4 -37
  627. package/build/core/FxCore.d.ts.map +1 -1
  628. package/build/core/FxCore.js +477 -750
  629. package/build/core/FxCore.js.map +1 -1
  630. package/build/core/callback.d.ts +2 -2
  631. package/build/core/callback.d.ts.map +1 -1
  632. package/build/core/callback.js.map +1 -1
  633. package/build/core/collaborator.d.ts.map +1 -1
  634. package/build/core/collaborator.js +72 -70
  635. package/build/core/collaborator.js.map +1 -1
  636. package/build/core/crypto.d.ts.map +1 -1
  637. package/build/core/crypto.js +5 -4
  638. package/build/core/crypto.js.map +1 -1
  639. package/build/core/environment.js +7 -7
  640. package/build/core/environment.js.map +1 -1
  641. package/build/core/environmentName.d.ts +1 -0
  642. package/build/core/environmentName.d.ts.map +1 -1
  643. package/build/core/environmentName.js +2 -0
  644. package/build/core/environmentName.js.map +1 -1
  645. package/build/core/error.d.ts +32 -0
  646. package/build/core/error.d.ts.map +1 -0
  647. package/build/core/error.js +122 -0
  648. package/build/core/error.js.map +1 -0
  649. package/build/{common → core}/globalVars.d.ts +1 -3
  650. package/build/core/globalVars.d.ts.map +1 -0
  651. package/build/{common → core}/globalVars.js +1 -12
  652. package/build/core/globalVars.js.map +1 -0
  653. package/build/core/middleware/concurrentLocker.d.ts.map +1 -1
  654. package/build/core/middleware/concurrentLocker.js +20 -19
  655. package/build/core/middleware/concurrentLocker.js.map +1 -1
  656. package/build/core/middleware/errorHandler.js +5 -5
  657. package/build/core/middleware/errorHandler.js.map +1 -1
  658. package/build/core/middleware/projectMigratorV3.d.ts +1 -5
  659. package/build/core/middleware/projectMigratorV3.d.ts.map +1 -1
  660. package/build/core/middleware/projectMigratorV3.js +100 -104
  661. package/build/core/middleware/projectMigratorV3.js.map +1 -1
  662. package/build/core/middleware/projectSettingsLoader.js +4 -4
  663. package/build/core/middleware/projectSettingsLoader.js.map +1 -1
  664. package/build/core/middleware/projectVersionChecker.js +14 -14
  665. package/build/core/middleware/projectVersionChecker.js.map +1 -1
  666. package/build/core/middleware/utils/MigrationUtils.js +5 -5
  667. package/build/core/middleware/utils/MigrationUtils.js.map +1 -1
  668. package/build/core/middleware/utils/appYmlGenerator.d.ts +0 -1
  669. package/build/core/middleware/utils/appYmlGenerator.d.ts.map +1 -1
  670. package/build/core/middleware/utils/appYmlGenerator.js +9 -15
  671. package/build/core/middleware/utils/appYmlGenerator.js.map +1 -1
  672. package/build/core/middleware/utils/debug/debugV3MigrationUtils.js +10 -10
  673. package/build/core/middleware/utils/debug/debugV3MigrationUtils.js.map +1 -1
  674. package/build/core/middleware/utils/debug/taskMigrator.js +74 -74
  675. package/build/core/middleware/utils/debug/taskMigrator.js.map +1 -1
  676. package/build/core/middleware/utils/migrationContext.js +1 -1
  677. package/build/core/middleware/utils/migrationContext.js.map +1 -1
  678. package/build/core/middleware/utils/v3MigrationUtils.js +13 -13
  679. package/build/core/middleware/utils/v3MigrationUtils.js.map +1 -1
  680. package/build/core/middleware/videoFilterAppBlocker.d.ts +0 -2
  681. package/build/core/middleware/videoFilterAppBlocker.d.ts.map +1 -1
  682. package/build/core/middleware/videoFilterAppBlocker.js +5 -21
  683. package/build/core/middleware/videoFilterAppBlocker.js.map +1 -1
  684. package/build/core/telemetry.d.ts +5 -0
  685. package/build/core/telemetry.d.ts.map +1 -1
  686. package/build/core/telemetry.js +17 -9
  687. package/build/core/telemetry.js.map +1 -1
  688. package/build/error/arm.js +10 -10
  689. package/build/error/arm.js.map +1 -1
  690. package/build/error/azure.js +20 -20
  691. package/build/error/azure.js.map +1 -1
  692. package/build/error/common.d.ts +1 -36
  693. package/build/error/common.d.ts.map +1 -1
  694. package/build/error/common.js +64 -175
  695. package/build/error/common.js.map +1 -1
  696. package/build/error/deploy.js +24 -24
  697. package/build/error/deploy.js.map +1 -1
  698. package/build/error/m365.js +6 -6
  699. package/build/error/m365.js.map +1 -1
  700. package/build/error/script.d.ts +2 -2
  701. package/build/error/script.d.ts.map +1 -1
  702. package/build/error/script.js +8 -14
  703. package/build/error/script.js.map +1 -1
  704. package/build/error/teamsApp.d.ts +0 -3
  705. package/build/error/teamsApp.d.ts.map +1 -1
  706. package/build/error/teamsApp.js +7 -20
  707. package/build/error/teamsApp.js.map +1 -1
  708. package/build/error/upgrade.js +2 -2
  709. package/build/error/upgrade.js.map +1 -1
  710. package/build/error/yml.js +13 -13
  711. package/build/error/yml.js.map +1 -1
  712. package/build/failpoint/index.d.ts +3 -0
  713. package/build/failpoint/index.d.ts.map +1 -0
  714. package/build/failpoint/index.js +11 -0
  715. package/build/failpoint/index.js.map +1 -0
  716. package/build/failpoint/marker.d.ts +13 -0
  717. package/build/failpoint/marker.d.ts.map +1 -0
  718. package/build/{question/inputs/SyncManifestInputs.js → failpoint/marker.js} +4 -1
  719. package/build/failpoint/marker.js.map +1 -0
  720. package/build/failpoint/runtime.d.ts +12 -0
  721. package/build/failpoint/runtime.d.ts.map +1 -0
  722. package/build/failpoint/runtime.js +67 -0
  723. package/build/failpoint/runtime.js.map +1 -0
  724. package/build/index.d.ts +36 -61
  725. package/build/index.d.ts.map +1 -1
  726. package/build/index.js +53 -132
  727. package/build/index.js.map +1 -1
  728. package/build/question/constants.d.ts +5 -269
  729. package/build/question/constants.d.ts.map +1 -1
  730. package/build/question/constants.js +13 -1107
  731. package/build/question/constants.js.map +1 -1
  732. package/build/question/create.d.ts +151 -13
  733. package/build/question/create.d.ts.map +1 -1
  734. package/build/question/create.js +1386 -542
  735. package/build/question/create.js.map +1 -1
  736. package/build/question/generator.js +2 -6
  737. package/build/question/generator.js.map +1 -1
  738. package/build/question/index.d.ts +3 -3
  739. package/build/question/index.d.ts.map +1 -1
  740. package/build/question/index.js +21 -23
  741. package/build/question/index.js.map +1 -1
  742. package/build/question/inputs/AddPluginInputs.d.ts +4 -8
  743. package/build/question/inputs/AddPluginInputs.d.ts.map +1 -1
  744. package/build/question/inputs/CreateProjectInputs.d.ts +8 -14
  745. package/build/question/inputs/CreateProjectInputs.d.ts.map +1 -1
  746. package/build/question/inputs/index.d.ts +0 -2
  747. package/build/question/inputs/index.d.ts.map +1 -1
  748. package/build/question/inputs/index.js +0 -2
  749. package/build/question/inputs/index.js.map +1 -1
  750. package/build/question/options/AddPluginOptions.d.ts.map +1 -1
  751. package/build/question/options/AddPluginOptions.js +10 -19
  752. package/build/question/options/AddPluginOptions.js.map +1 -1
  753. package/build/question/options/CreateProjectOptions.d.ts.map +1 -1
  754. package/build/question/options/CreateProjectOptions.js +33 -36
  755. package/build/question/options/CreateProjectOptions.js.map +1 -1
  756. package/build/question/options/index.d.ts +0 -2
  757. package/build/question/options/index.d.ts.map +1 -1
  758. package/build/question/options/index.js +0 -2
  759. package/build/question/options/index.js.map +1 -1
  760. package/build/question/other.d.ts +29 -4
  761. package/build/question/other.d.ts.map +1 -1
  762. package/build/question/other.js +343 -284
  763. package/build/question/other.js.map +1 -1
  764. package/build/question/questionNames.d.ts +78 -0
  765. package/build/question/questionNames.d.ts.map +1 -0
  766. package/build/question/questionNames.js +85 -0
  767. package/build/question/questionNames.js.map +1 -0
  768. package/build/question/util.d.ts +2 -0
  769. package/build/question/util.d.ts.map +1 -0
  770. package/build/question/util.js +18 -0
  771. package/build/question/util.js.map +1 -0
  772. package/build/ui/visitor.d.ts +1 -0
  773. package/build/ui/visitor.d.ts.map +1 -1
  774. package/build/ui/visitor.js +38 -57
  775. package/build/ui/visitor.js.map +1 -1
  776. package/package.json +14 -21
  777. package/resource/deps-checker/dotnet-install.ps1 +423 -912
  778. package/resource/deps-checker/dotnet-install.sh +238 -876
  779. package/resource/package.nls.json +156 -189
  780. package/resource/yaml-schema/yaml.schema.json +1 -59
  781. package/templates/core/v3Migration/js.ts.app.local.yml +3 -3
  782. package/templates/fallback/common.zip +0 -0
  783. package/templates/fallback/csharp.zip +0 -0
  784. package/templates/fallback/js.zip +0 -0
  785. package/templates/fallback/python.zip +0 -0
  786. package/templates/fallback/ts.zip +0 -0
  787. package/templates/plugins/resource/aad/auth/V3/aad.manifest.template.json +0 -6
  788. package/templates/plugins/resource/aad/manifest/aad.template.json +0 -6
  789. package/templates/plugins/resource/aad/manifest/bot/aad.manifest.template.json +0 -6
  790. package/templates/plugins/resource/aad/manifest/tab/aad.manifest.template.json +0 -6
  791. package/build/client/teamsDevPortalClient.d.ts +0 -128
  792. package/build/client/teamsDevPortalClient.d.ts.map +0 -1
  793. package/build/client/teamsDevPortalClient.js +0 -949
  794. package/build/client/teamsDevPortalClient.js.map +0 -1
  795. package/build/common/azureUtils.d.ts +0 -3
  796. package/build/common/azureUtils.d.ts.map +0 -1
  797. package/build/common/azureUtils.js +0 -50
  798. package/build/common/azureUtils.js.map +0 -1
  799. package/build/common/globalVars.d.ts.map +0 -1
  800. package/build/common/globalVars.js.map +0 -1
  801. package/build/common/requestUtils.d.ts +0 -4
  802. package/build/common/requestUtils.d.ts.map +0 -1
  803. package/build/common/requestUtils.js +0 -52
  804. package/build/common/requestUtils.js.map +0 -1
  805. package/build/common/secretmasker/dict.d.ts +0 -22
  806. package/build/common/secretmasker/dict.d.ts.map +0 -1
  807. package/build/common/secretmasker/dict.js +0 -83
  808. package/build/common/secretmasker/dict.js.map +0 -1
  809. package/build/common/secretmasker/feature.d.ts +0 -19
  810. package/build/common/secretmasker/feature.d.ts.map +0 -1
  811. package/build/common/secretmasker/feature.js +0 -389
  812. package/build/common/secretmasker/feature.js.map +0 -1
  813. package/build/common/secretmasker/masker.d.ts +0 -12
  814. package/build/common/secretmasker/masker.d.ts.map +0 -1
  815. package/build/common/secretmasker/masker.js +0 -54
  816. package/build/common/secretmasker/masker.js.map +0 -1
  817. package/build/component/deps-checker/checkerFactory.d.ts.map +0 -1
  818. package/build/component/deps-checker/checkerFactory.js.map +0 -1
  819. package/build/component/deps-checker/constant/helpLink.d.ts.map +0 -1
  820. package/build/component/deps-checker/constant/helpLink.js.map +0 -1
  821. package/build/component/deps-checker/constant/index.d.ts.map +0 -1
  822. package/build/component/deps-checker/constant/index.js.map +0 -1
  823. package/build/component/deps-checker/constant/message.d.ts.map +0 -1
  824. package/build/component/deps-checker/constant/message.js +0 -45
  825. package/build/component/deps-checker/constant/message.js.map +0 -1
  826. package/build/component/deps-checker/constant/telemetry.d.ts.map +0 -1
  827. package/build/component/deps-checker/constant/telemetry.js.map +0 -1
  828. package/build/component/deps-checker/coreDepsLoggerAdapter.d.ts.map +0 -1
  829. package/build/component/deps-checker/coreDepsLoggerAdapter.js.map +0 -1
  830. package/build/component/deps-checker/coreDepsTelemetryAdapter.d.ts.map +0 -1
  831. package/build/component/deps-checker/coreDepsTelemetryAdapter.js.map +0 -1
  832. package/build/component/deps-checker/depsChecker.d.ts.map +0 -1
  833. package/build/component/deps-checker/depsChecker.js.map +0 -1
  834. package/build/component/deps-checker/depsError.d.ts.map +0 -1
  835. package/build/component/deps-checker/depsError.js.map +0 -1
  836. package/build/component/deps-checker/depsLogger.d.ts.map +0 -1
  837. package/build/component/deps-checker/depsLogger.js.map +0 -1
  838. package/build/component/deps-checker/depsManager.d.ts.map +0 -1
  839. package/build/component/deps-checker/depsManager.js.map +0 -1
  840. package/build/component/deps-checker/depsTelemetry.d.ts.map +0 -1
  841. package/build/component/deps-checker/depsTelemetry.js.map +0 -1
  842. package/build/component/deps-checker/index.d.ts.map +0 -1
  843. package/build/component/deps-checker/index.js.map +0 -1
  844. package/build/component/deps-checker/internal/dotnetChecker.d.ts.map +0 -1
  845. package/build/component/deps-checker/internal/dotnetChecker.js.map +0 -1
  846. package/build/component/deps-checker/internal/funcToolChecker.d.ts.map +0 -1
  847. package/build/component/deps-checker/internal/funcToolChecker.js.map +0 -1
  848. package/build/component/deps-checker/internal/nodeChecker.d.ts.map +0 -1
  849. package/build/component/deps-checker/internal/nodeChecker.js.map +0 -1
  850. package/build/component/deps-checker/internal/testToolChecker.d.ts.map +0 -1
  851. package/build/component/deps-checker/internal/testToolChecker.js.map +0 -1
  852. package/build/component/deps-checker/internal/vxTestAppChecker.d.ts.map +0 -1
  853. package/build/component/deps-checker/internal/vxTestAppChecker.js.map +0 -1
  854. package/build/component/deps-checker/util/cpUtils.d.ts.map +0 -1
  855. package/build/component/deps-checker/util/cpUtils.js.map +0 -1
  856. package/build/component/deps-checker/util/downloadHelper.d.ts.map +0 -1
  857. package/build/component/deps-checker/util/downloadHelper.js.map +0 -1
  858. package/build/component/deps-checker/util/fileHelper.d.ts.map +0 -1
  859. package/build/component/deps-checker/util/fileHelper.js.map +0 -1
  860. package/build/component/deps-checker/util/index.d.ts.map +0 -1
  861. package/build/component/deps-checker/util/index.js.map +0 -1
  862. package/build/component/deps-checker/util/progressIndicator.d.ts.map +0 -1
  863. package/build/component/deps-checker/util/progressIndicator.js.map +0 -1
  864. package/build/component/deps-checker/util/system.d.ts.map +0 -1
  865. package/build/component/deps-checker/util/system.js.map +0 -1
  866. package/build/component/driver/aad/error/missingServiceManagamentReferenceError.d.ts +0 -5
  867. package/build/component/driver/aad/error/missingServiceManagamentReferenceError.d.ts.map +0 -1
  868. package/build/component/driver/aad/error/missingServiceManagamentReferenceError.js +0 -23
  869. package/build/component/driver/aad/error/missingServiceManagamentReferenceError.js.map +0 -1
  870. package/build/component/driver/apiKey/error/apiKeyFromScratchClientSecretInvalid.d.ts +0 -5
  871. package/build/component/driver/apiKey/error/apiKeyFromScratchClientSecretInvalid.d.ts.map +0 -1
  872. package/build/component/driver/apiKey/error/apiKeyFromScratchClientSecretInvalid.js +0 -21
  873. package/build/component/driver/apiKey/error/apiKeyFromScratchClientSecretInvalid.js.map +0 -1
  874. package/build/component/driver/oauth/error/oauthDisablePKCEError.d.ts +0 -5
  875. package/build/component/driver/oauth/error/oauthDisablePKCEError.d.ts.map +0 -1
  876. package/build/component/driver/oauth/error/oauthDisablePKCEError.js +0 -21
  877. package/build/component/driver/oauth/error/oauthDisablePKCEError.js.map +0 -1
  878. package/build/component/driver/oauth/error/oauthIdentityProviderInvalid.d.ts +0 -5
  879. package/build/component/driver/oauth/error/oauthIdentityProviderInvalid.d.ts.map +0 -1
  880. package/build/component/driver/oauth/error/oauthIdentityProviderInvalid.js +0 -21
  881. package/build/component/driver/oauth/error/oauthIdentityProviderInvalid.js.map +0 -1
  882. package/build/component/driver/teamsApp/interfaces/SyncManifest.d.ts +0 -20
  883. package/build/component/driver/teamsApp/interfaces/SyncManifest.d.ts.map +0 -1
  884. package/build/component/driver/teamsApp/interfaces/SyncManifest.js +0 -5
  885. package/build/component/driver/teamsApp/interfaces/SyncManifest.js.map +0 -1
  886. package/build/component/driver/teamsApp/syncManifest.d.ts +0 -14
  887. package/build/component/driver/teamsApp/syncManifest.d.ts.map +0 -1
  888. package/build/component/driver/teamsApp/syncManifest.js +0 -226
  889. package/build/component/driver/teamsApp/syncManifest.js.map +0 -1
  890. package/build/component/generator/apiSpec/generator.d.ts +0 -15
  891. package/build/component/generator/apiSpec/generator.d.ts.map +0 -1
  892. package/build/component/generator/apiSpec/generator.js +0 -274
  893. package/build/component/generator/apiSpec/generator.js.map +0 -1
  894. package/build/component/generator/apiSpec/helper.d.ts +0 -50
  895. package/build/component/generator/apiSpec/helper.d.ts.map +0 -1
  896. package/build/component/generator/apiSpec/helper.js +0 -834
  897. package/build/component/generator/apiSpec/helper.js.map +0 -1
  898. package/build/component/generator/copilotExtension/generator.d.ts +0 -19
  899. package/build/component/generator/copilotExtension/generator.d.ts.map +0 -1
  900. package/build/component/generator/copilotExtension/generator.js +0 -116
  901. package/build/component/generator/copilotExtension/generator.js.map +0 -1
  902. package/build/component/generator/copilotExtension/helper.d.ts +0 -8
  903. package/build/component/generator/copilotExtension/helper.d.ts.map +0 -1
  904. package/build/component/generator/copilotExtension/helper.js +0 -114
  905. package/build/component/generator/copilotExtension/helper.js.map +0 -1
  906. package/build/component/local/constants.d.ts +0 -186
  907. package/build/component/local/constants.d.ts.map +0 -1
  908. package/build/component/local/constants.js.map +0 -1
  909. package/build/component/local/index.d.ts.map +0 -1
  910. package/build/component/local/index.js.map +0 -1
  911. package/build/component/local/localCertificateManager.d.ts.map +0 -1
  912. package/build/component/local/localCertificateManager.js.map +0 -1
  913. package/build/component/local/localEnvManager.d.ts.map +0 -1
  914. package/build/component/local/localEnvManager.js.map +0 -1
  915. package/build/component/local/localTelemetryReporter.d.ts.map +0 -1
  916. package/build/component/local/localTelemetryReporter.js.map +0 -1
  917. package/build/component/local/npmLogHelper.d.ts.map +0 -1
  918. package/build/component/local/npmLogHelper.js.map +0 -1
  919. package/build/component/local/packageJsonHelper.d.ts.map +0 -1
  920. package/build/component/local/packageJsonHelper.js.map +0 -1
  921. package/build/component/local/portChecker.d.ts.map +0 -1
  922. package/build/component/local/portChecker.js.map +0 -1
  923. package/build/component/local/process.d.ts.map +0 -1
  924. package/build/component/local/process.js.map +0 -1
  925. package/build/component/local/taskDefinition.d.ts.map +0 -1
  926. package/build/component/local/taskDefinition.js.map +0 -1
  927. package/build/component/m365/constants.d.ts +0 -9
  928. package/build/component/m365/constants.d.ts.map +0 -1
  929. package/build/component/m365/constants.js.map +0 -1
  930. package/build/component/m365/errors.d.ts.map +0 -1
  931. package/build/component/m365/errors.js.map +0 -1
  932. package/build/component/m365/launchHelper.d.ts +0 -12
  933. package/build/component/m365/launchHelper.d.ts.map +0 -1
  934. package/build/component/m365/launchHelper.js.map +0 -1
  935. package/build/component/m365/packageService.d.ts.map +0 -1
  936. package/build/component/m365/packageService.js.map +0 -1
  937. package/build/component/m365/serviceConstant.d.ts +0 -3
  938. package/build/component/m365/serviceConstant.d.ts.map +0 -1
  939. package/build/component/m365/serviceConstant.js +0 -8
  940. package/build/component/m365/serviceConstant.js.map +0 -1
  941. package/build/component/utils/envFunctionUtils.d.ts +0 -12
  942. package/build/component/utils/envFunctionUtils.d.ts.map +0 -1
  943. package/build/component/utils/envFunctionUtils.js +0 -185
  944. package/build/component/utils/envFunctionUtils.js.map +0 -1
  945. package/build/question/inputs/SyncManifestInputs.d.ts +0 -16
  946. package/build/question/inputs/SyncManifestInputs.d.ts.map +0 -1
  947. package/build/question/inputs/SyncManifestInputs.js.map +0 -1
  948. package/build/question/inputs/UninstallInputs.d.ts +0 -22
  949. package/build/question/inputs/UninstallInputs.d.ts.map +0 -1
  950. package/build/question/inputs/UninstallInputs.js +0 -5
  951. package/build/question/inputs/UninstallInputs.js.map +0 -1
  952. package/build/question/options/SyncManifestOptions.d.ts +0 -10
  953. package/build/question/options/SyncManifestOptions.d.ts.map +0 -1
  954. package/build/question/options/SyncManifestOptions.js +0 -28
  955. package/build/question/options/SyncManifestOptions.js.map +0 -1
  956. package/build/question/options/UninstallOptions.d.ts +0 -10
  957. package/build/question/options/UninstallOptions.d.ts.map +0 -1
  958. package/build/question/options/UninstallOptions.js +0 -44
  959. package/build/question/options/UninstallOptions.js.map +0 -1
  960. package/build/tsconfig.tsbuildinfo +0 -1
  961. package/resource/dict.zip +0 -0
  962. package/resource/yaml-schema/v1.6/yaml.schema.json +0 -1842
  963. package/resource/yaml-schema/v1.7/yaml.schema.json +0 -1842
  964. /package/build/{component → common}/deps-checker/checkerFactory.d.ts +0 -0
  965. /package/build/{component → common}/deps-checker/checkerFactory.js +0 -0
  966. /package/build/{component → common}/deps-checker/constant/index.d.ts +0 -0
  967. /package/build/{component → common}/deps-checker/constant/index.js +0 -0
  968. /package/build/{component → common}/deps-checker/constant/message.d.ts +0 -0
  969. /package/build/{component → common}/deps-checker/constant/telemetry.d.ts +0 -0
  970. /package/build/{component → common}/deps-checker/constant/telemetry.js +0 -0
  971. /package/build/{component → common}/deps-checker/coreDepsLoggerAdapter.d.ts +0 -0
  972. /package/build/{component → common}/deps-checker/coreDepsLoggerAdapter.js +0 -0
  973. /package/build/{component → common}/deps-checker/coreDepsTelemetryAdapter.d.ts +0 -0
  974. /package/build/{component → common}/deps-checker/depsChecker.d.ts +0 -0
  975. /package/build/{component → common}/deps-checker/depsChecker.js +0 -0
  976. /package/build/{component → common}/deps-checker/depsError.d.ts +0 -0
  977. /package/build/{component → common}/deps-checker/depsError.js +0 -0
  978. /package/build/{component → common}/deps-checker/depsLogger.d.ts +0 -0
  979. /package/build/{component → common}/deps-checker/depsLogger.js +0 -0
  980. /package/build/{component → common}/deps-checker/depsManager.d.ts +0 -0
  981. /package/build/{component → common}/deps-checker/depsManager.js +0 -0
  982. /package/build/{component → common}/deps-checker/depsTelemetry.d.ts +0 -0
  983. /package/build/{component → common}/deps-checker/depsTelemetry.js +0 -0
  984. /package/build/{component → common}/deps-checker/index.d.ts +0 -0
  985. /package/build/{component → common}/deps-checker/index.js +0 -0
  986. /package/build/{component → common}/deps-checker/internal/dotnetChecker.d.ts +0 -0
  987. /package/build/{component → common}/deps-checker/internal/funcToolChecker.d.ts +0 -0
  988. /package/build/{component → common}/deps-checker/internal/nodeChecker.d.ts +0 -0
  989. /package/build/{component → common}/deps-checker/internal/nodeChecker.js +0 -0
  990. /package/build/{component → common}/deps-checker/internal/testToolChecker.d.ts +0 -0
  991. /package/build/{component → common}/deps-checker/internal/vxTestAppChecker.d.ts +0 -0
  992. /package/build/{component → common}/deps-checker/util/cpUtils.d.ts +0 -0
  993. /package/build/{component → common}/deps-checker/util/cpUtils.js +0 -0
  994. /package/build/{component → common}/deps-checker/util/downloadHelper.d.ts +0 -0
  995. /package/build/{component → common}/deps-checker/util/downloadHelper.js +0 -0
  996. /package/build/{component → common}/deps-checker/util/fileHelper.d.ts +0 -0
  997. /package/build/{component → common}/deps-checker/util/fileHelper.js +0 -0
  998. /package/build/{component → common}/deps-checker/util/index.d.ts +0 -0
  999. /package/build/{component → common}/deps-checker/util/index.js +0 -0
  1000. /package/build/{component → common}/deps-checker/util/progressIndicator.d.ts +0 -0
  1001. /package/build/{component → common}/deps-checker/util/progressIndicator.js +0 -0
  1002. /package/build/{component → common}/deps-checker/util/system.d.ts +0 -0
  1003. /package/build/{component → common}/deps-checker/util/system.js +0 -0
  1004. /package/build/{component → common}/local/index.d.ts +0 -0
  1005. /package/build/{component → common}/local/index.js +0 -0
  1006. /package/build/{component → common}/local/localCertificateManager.d.ts +0 -0
  1007. /package/build/{component → common}/local/localEnvManager.d.ts +0 -0
  1008. /package/build/{component → common}/local/localTelemetryReporter.d.ts +0 -0
  1009. /package/build/{component → common}/local/npmLogHelper.d.ts +0 -0
  1010. /package/build/{component → common}/local/npmLogHelper.js +0 -0
  1011. /package/build/{component → common}/local/packageJsonHelper.d.ts +0 -0
  1012. /package/build/{component → common}/local/packageJsonHelper.js +0 -0
  1013. /package/build/{component → common}/local/portChecker.d.ts +0 -0
  1014. /package/build/{component → common}/local/process.d.ts +0 -0
  1015. /package/build/{component → common}/local/process.js +0 -0
  1016. /package/build/{component → common}/local/taskDefinition.d.ts +0 -0
  1017. /package/build/{component → common}/m365/errors.d.ts +0 -0
  1018. /package/build/{component → common}/m365/packageService.d.ts +0 -0
@@ -9,41 +9,22 @@
9
9
  .DESCRIPTION
10
10
  Installs dotnet cli. If dotnet installation already exists in the given directory
11
11
  it will update it only if the requested version differs from the one already installed.
12
-
13
- Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:
14
- - The SDK needs to be installed without user interaction and without admin rights.
15
- - The SDK installation doesn't need to persist across multiple CI runs.
16
- To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.
17
-
18
12
  .PARAMETER Channel
19
13
  Default: LTS
20
14
  Download from the Channel specified. Possible values:
21
- - STS - the most recent Standard Term Support release
22
- - LTS - the most recent Long Term Support release
15
+ - Current - most current release
16
+ - LTS - most current supported release
23
17
  - 2-part version in a format A.B - represents a specific release
24
18
  examples: 2.0, 1.0
25
- - 3-part version in a format A.B.Cxx - represents a specific SDK release
26
- examples: 5.0.1xx, 5.0.2xx
27
- Supported since 5.0 release
28
- Warning: Value "Current" is deprecated for the Channel parameter. Use "STS" instead.
29
- Note: The version parameter overrides the channel parameter when any version other than 'latest' is used.
30
- .PARAMETER Quality
31
- Download the latest build of specified quality in the channel. The possible values are: daily, signed, validated, preview, GA.
32
- Works only in combination with channel. Not applicable for STS and LTS channels and will be ignored if those channels are used.
33
- For SDK use channel in A.B.Cxx format: using quality together with channel in A.B format is not supported.
34
- Supported since 5.0 release.
35
- Note: The version parameter overrides the channel parameter when any version other than 'latest' is used, and therefore overrides the quality.
19
+ - Branch name
20
+ examples: release/2.0.0, Master
21
+ Note: The version parameter overrides the channel parameter.
36
22
  .PARAMETER Version
37
23
  Default: latest
38
24
  Represents a build version on specific channel. Possible values:
39
- - latest - the latest build on specific channel
25
+ - latest - most latest build on specific channel
40
26
  - 3-part version in a format A.B.C - represents specific version of build
41
27
  examples: 2.0.0-preview2-006120, 1.1.0
42
- .PARAMETER Internal
43
- Download internal builds. Requires providing credentials via -FeedCredential parameter.
44
- .PARAMETER FeedCredential
45
- Token to access Azure feed. Used as a query string to append to the Azure feed.
46
- This parameter typically is not specified.
47
28
  .PARAMETER InstallDir
48
29
  Default: %LocalAppData%\Microsoft\dotnet
49
30
  Path to where to install dotnet. Note that binaries will be placed directly in a given directory.
@@ -73,13 +54,14 @@
73
54
  Displays diagnostics information.
74
55
  .PARAMETER AzureFeed
75
56
  Default: https://dotnetcli.azureedge.net/dotnet
76
- For internal use only.
77
- Allows using a different storage to download SDK archives from.
78
- This parameter is only used if $NoCdn is false.
57
+ This parameter typically is not changed by the user.
58
+ It allows changing the URL for the Azure feed used by this installer.
79
59
  .PARAMETER UncachedFeed
80
- For internal use only.
81
- Allows using a different storage to download SDK archives from.
82
- This parameter is only used if $NoCdn is true.
60
+ This parameter typically is not changed by the user.
61
+ It allows changing the URL for the Uncached feed used by this installer.
62
+ .PARAMETER FeedCredential
63
+ Used as a query string to append to the Azure feed.
64
+ It allows changing the URL to use non-public blob storage accounts.
83
65
  .PARAMETER ProxyAddress
84
66
  If set, the installer will use the proxy when making web requests
85
67
  .PARAMETER ProxyUseDefaultCredentials
@@ -95,52 +77,48 @@
95
77
  .PARAMETER JSonFile
96
78
  Determines the SDK version from a user specified global.json file
97
79
  Note: global.json must have a value for 'SDK:Version'
98
- .PARAMETER DownloadTimeout
99
- Determines timeout duration in seconds for dowloading of the SDK file
100
- Default: 1200 seconds (20 minutes)
101
- .PARAMETER KeepZip
102
- If set, downloaded file is kept
103
- .PARAMETER ZipPath
104
- Use that path to store installer, generated by default
105
- .EXAMPLE
106
- dotnet-install.ps1 -Version 7.0.401
107
- Installs the .NET SDK version 7.0.401
108
- .EXAMPLE
109
- dotnet-install.ps1 -Channel 8.0 -Quality GA
110
- Installs the latest GA (general availability) version of the .NET 8.0 SDK
111
80
  #>
112
81
  [cmdletbinding()]
113
82
  param(
114
83
  [string]$Channel="LTS",
115
- [string]$Quality,
116
84
  [string]$Version="Latest",
117
- [switch]$Internal,
118
85
  [string]$JSonFile,
119
- [Alias('i')][string]$InstallDir="<auto>",
86
+ [string]$InstallDir="<auto>",
120
87
  [string]$Architecture="<auto>",
88
+ [ValidateSet("dotnet", "aspnetcore", "windowsdesktop", IgnoreCase = $false)]
121
89
  [string]$Runtime,
122
90
  [Obsolete("This parameter may be removed in a future version of this script. The recommended alternative is '-Runtime dotnet'.")]
123
91
  [switch]$SharedRuntime,
124
92
  [switch]$DryRun,
125
93
  [switch]$NoPath,
126
- [string]$AzureFeed,
127
- [string]$UncachedFeed,
94
+ [string]$AzureFeed="https://dotnetcli.azureedge.net/dotnet",
95
+ [string]$UncachedFeed="https://dotnetcli.blob.core.windows.net/dotnet",
128
96
  [string]$FeedCredential,
129
97
  [string]$ProxyAddress,
130
98
  [switch]$ProxyUseDefaultCredentials,
131
99
  [string[]]$ProxyBypassList=@(),
132
100
  [switch]$SkipNonVersionedFiles,
133
- [switch]$NoCdn,
134
- [int]$DownloadTimeout=1200,
135
- [switch]$KeepZip,
136
- [string]$ZipPath=[System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName()),
137
- [switch]$Help
101
+ [switch]$NoCdn
138
102
  )
139
103
 
140
104
  Set-StrictMode -Version Latest
141
105
  $ErrorActionPreference="Stop"
142
106
  $ProgressPreference="SilentlyContinue"
143
107
 
108
+ if ($NoCdn) {
109
+ $AzureFeed = $UncachedFeed
110
+ }
111
+
112
+ $BinFolderRelativePath=""
113
+
114
+ if ($SharedRuntime -and (-not $Runtime)) {
115
+ $Runtime = "dotnet"
116
+ }
117
+
118
+ # example path with regex: shared/1.0.0-beta-12345/somepath
119
+ $VersionRegEx="/\d+\.\d+[^/]+/"
120
+ $OverrideNonVersionedFiles = !$SkipNonVersionedFiles
121
+
144
122
  function Say($str) {
145
123
  try {
146
124
  Write-Host "dotnet-install: $str"
@@ -183,38 +161,14 @@ function Say-Verbose($str) {
183
161
  }
184
162
  }
185
163
 
186
- function Measure-Action($name, $block) {
187
- $time = Measure-Command $block
188
- $totalSeconds = $time.TotalSeconds
189
- Say-Verbose "⏱ Action '$name' took $totalSeconds seconds"
190
- }
191
-
192
- function Get-Remote-File-Size($zipUri) {
193
- try {
194
- $response = Invoke-WebRequest -Uri $zipUri -Method Head
195
- $fileSize = $response.Headers["Content-Length"]
196
- if ((![string]::IsNullOrEmpty($fileSize))) {
197
- Say "Remote file $zipUri size is $fileSize bytes."
198
-
199
- return $fileSize
200
- }
201
- }
202
- catch {
203
- Say-Verbose "Content-Length header was not extracted for $zipUri."
204
- }
205
-
206
- return $null
207
- }
208
-
209
164
  function Say-Invocation($Invocation) {
210
165
  $command = $Invocation.MyCommand;
211
166
  $args = (($Invocation.BoundParameters.Keys | foreach { "-$_ `"$($Invocation.BoundParameters[$_])`"" }) -join " ")
212
167
  Say-Verbose "$command $args"
213
168
  }
214
169
 
215
- function Invoke-With-Retry([ScriptBlock]$ScriptBlock, [System.Threading.CancellationToken]$cancellationToken = [System.Threading.CancellationToken]::None, [int]$MaxAttempts = 3, [int]$SecondsBetweenAttempts = 1) {
170
+ function Invoke-With-Retry([ScriptBlock]$ScriptBlock, [int]$MaxAttempts = 3, [int]$SecondsBetweenAttempts = 1) {
216
171
  $Attempts = 0
217
- $local:startTime = $(get-date)
218
172
 
219
173
  while ($true) {
220
174
  try {
@@ -222,15 +176,11 @@ function Invoke-With-Retry([ScriptBlock]$ScriptBlock, [System.Threading.Cancella
222
176
  }
223
177
  catch {
224
178
  $Attempts++
225
- if (($Attempts -lt $MaxAttempts) -and -not $cancellationToken.IsCancellationRequested) {
179
+ if ($Attempts -lt $MaxAttempts) {
226
180
  Start-Sleep $SecondsBetweenAttempts
227
181
  }
228
182
  else {
229
- $local:elapsedTime = $(get-date) - $local:startTime
230
- if (($local:elapsedTime.TotalSeconds - $DownloadTimeout) -gt 0 -and -not $cancellationToken.IsCancellationRequested) {
231
- throw New-Object System.TimeoutException("Failed to reach the server: connection timeout: default timeout is $DownloadTimeout second(s)");
232
- }
233
- throw;
183
+ throw
234
184
  }
235
185
  }
236
186
  }
@@ -243,21 +193,10 @@ function Get-Machine-Architecture() {
243
193
  # To get the correct architecture, we need to use PROCESSOR_ARCHITEW6432.
244
194
  # PS x64 doesn't define this, so we fall back to PROCESSOR_ARCHITECTURE.
245
195
  # Possible values: amd64, x64, x86, arm64, arm
246
- if( $ENV:PROCESSOR_ARCHITEW6432 -ne $null ) {
247
- return $ENV:PROCESSOR_ARCHITEW6432
248
- }
249
196
 
250
- try {
251
- if( ((Get-CimInstance -ClassName CIM_OperatingSystem).OSArchitecture) -like "ARM*") {
252
- if( [Environment]::Is64BitOperatingSystem )
253
- {
254
- return "arm64"
255
- }
256
- return "arm"
257
- }
258
- }
259
- catch {
260
- # Machine doesn't support Get-CimInstance
197
+ if( $ENV:PROCESSOR_ARCHITEW6432 -ne $null )
198
+ {
199
+ return $ENV:PROCESSOR_ARCHITEW6432
261
200
  }
262
201
 
263
202
  return $ENV:PROCESSOR_ARCHITECTURE
@@ -266,11 +205,8 @@ function Get-Machine-Architecture() {
266
205
  function Get-CLIArchitecture-From-Architecture([string]$Architecture) {
267
206
  Say-Invocation $MyInvocation
268
207
 
269
- if ($Architecture -eq "<auto>") {
270
- $Architecture = Get-Machine-Architecture
271
- }
272
-
273
- switch ($Architecture.ToLowerInvariant()) {
208
+ switch ($Architecture.ToLower()) {
209
+ { $_ -eq "<auto>" } { return Get-CLIArchitecture-From-Architecture $(Get-Machine-Architecture) }
274
210
  { ($_ -eq "amd64") -or ($_ -eq "x64") } { return "x64" }
275
211
  { $_ -eq "x86" } { return "x86" }
276
212
  { $_ -eq "arm" } { return "arm" }
@@ -279,83 +215,13 @@ function Get-CLIArchitecture-From-Architecture([string]$Architecture) {
279
215
  }
280
216
  }
281
217
 
282
- function ValidateFeedCredential([string] $FeedCredential)
283
- {
284
- if ($Internal -and [string]::IsNullOrWhitespace($FeedCredential)) {
285
- $message = "Provide credentials via -FeedCredential parameter."
286
- if ($DryRun) {
287
- Say-Warning "$message"
288
- } else {
289
- throw "$message"
290
- }
291
- }
292
-
293
- #FeedCredential should start with "?", for it to be added to the end of the link.
294
- #adding "?" at the beginning of the FeedCredential if needed.
295
- if ((![string]::IsNullOrWhitespace($FeedCredential)) -and ($FeedCredential[0] -ne '?')) {
296
- $FeedCredential = "?" + $FeedCredential
297
- }
298
-
299
- return $FeedCredential
300
- }
301
- function Get-NormalizedQuality([string]$Quality) {
302
- Say-Invocation $MyInvocation
303
-
304
- if ([string]::IsNullOrEmpty($Quality)) {
305
- return ""
306
- }
307
-
308
- switch ($Quality) {
309
- { @("daily", "signed", "validated", "preview") -contains $_ } { return $Quality.ToLowerInvariant() }
310
- #ga quality is available without specifying quality, so normalizing it to empty
311
- { $_ -eq "ga" } { return "" }
312
- default { throw "'$Quality' is not a supported value for -Quality option. Supported values are: daily, signed, validated, preview, ga. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues." }
313
- }
314
- }
315
-
316
- function Get-NormalizedChannel([string]$Channel) {
317
- Say-Invocation $MyInvocation
318
-
319
- if ([string]::IsNullOrEmpty($Channel)) {
320
- return ""
321
- }
322
-
323
- if ($Channel.Contains("Current")) {
324
- Say-Warning 'Value "Current" is deprecated for -Channel option. Use "STS" instead.'
325
- }
326
-
327
- if ($Channel.StartsWith('release/')) {
328
- Say-Warning 'Using branch name with -Channel option is no longer supported with newer releases. Use -Quality option with a channel in X.Y format instead, such as "-Channel 5.0 -Quality Daily."'
329
- }
330
-
331
- switch ($Channel) {
332
- { $_ -eq "lts" } { return "LTS" }
333
- { $_ -eq "sts" } { return "STS" }
334
- { $_ -eq "current" } { return "STS" }
335
- default { return $Channel.ToLowerInvariant() }
336
- }
337
- }
338
-
339
- function Get-NormalizedProduct([string]$Runtime) {
340
- Say-Invocation $MyInvocation
341
-
342
- switch ($Runtime) {
343
- { $_ -eq "dotnet" } { return "dotnet-runtime" }
344
- { $_ -eq "aspnetcore" } { return "aspnetcore-runtime" }
345
- { $_ -eq "windowsdesktop" } { return "windowsdesktop-runtime" }
346
- { [string]::IsNullOrEmpty($_) } { return "dotnet-sdk" }
347
- default { throw "'$Runtime' is not a supported value for -Runtime option, supported values are: dotnet, aspnetcore, windowsdesktop. If you think this is a bug, report it at https://github.com/dotnet/install-scripts/issues." }
348
- }
349
- }
350
-
351
-
352
218
  # The version text returned from the feeds is a 1-line or 2-line string:
353
219
  # For the SDK and the dotnet runtime (2 lines):
354
220
  # Line 1: # commit_hash
355
221
  # Line 2: # 4-part version
356
222
  # For the aspnetcore runtime (1 line):
357
223
  # Line 1: # 4-part version
358
- function Get-Version-From-LatestVersion-File-Content([string]$VersionText) {
224
+ function Get-Version-Info-From-Version-Text([string]$VersionText) {
359
225
  Say-Invocation $MyInvocation
360
226
 
361
227
  $Data = -split $VersionText
@@ -377,11 +243,10 @@ function Load-Assembly([string] $Assembly) {
377
243
  }
378
244
  }
379
245
 
380
- function GetHTTPResponse([Uri] $Uri, [bool]$HeaderOnly, [bool]$DisableRedirect, [bool]$DisableFeedCredential)
246
+ function GetHTTPResponse([Uri] $Uri)
381
247
  {
382
- $cts = New-Object System.Threading.CancellationTokenSource
383
-
384
- $downloadScript = {
248
+ Invoke-With-Retry(
249
+ {
385
250
 
386
251
  $HttpClient = $null
387
252
 
@@ -394,11 +259,7 @@ function GetHTTPResponse([Uri] $Uri, [bool]$HeaderOnly, [bool]$DisableRedirect,
394
259
  # Despite no proxy being explicitly specified, we may still be behind a default proxy
395
260
  $DefaultProxy = [System.Net.WebRequest]::DefaultWebProxy;
396
261
  if($DefaultProxy -and (-not $DefaultProxy.IsBypassed($Uri))) {
397
- if ($null -ne $DefaultProxy.GetProxy($Uri)) {
398
- $ProxyAddress = $DefaultProxy.GetProxy($Uri).OriginalString
399
- } else {
400
- $ProxyAddress = $null
401
- }
262
+ $ProxyAddress = $DefaultProxy.GetProxy($Uri).OriginalString
402
263
  $ProxyUseDefaultCredentials = $true
403
264
  }
404
265
  } catch {
@@ -409,53 +270,32 @@ function GetHTTPResponse([Uri] $Uri, [bool]$HeaderOnly, [bool]$DisableRedirect,
409
270
  }
410
271
  }
411
272
 
412
- $HttpClientHandler = New-Object System.Net.Http.HttpClientHandler
413
273
  if($ProxyAddress) {
274
+ $HttpClientHandler = New-Object System.Net.Http.HttpClientHandler
414
275
  $HttpClientHandler.Proxy = New-Object System.Net.WebProxy -Property @{
415
276
  Address=$ProxyAddress;
416
277
  UseDefaultCredentials=$ProxyUseDefaultCredentials;
417
278
  BypassList = $ProxyBypassList;
418
279
  }
419
- }
420
- if ($DisableRedirect)
421
- {
422
- $HttpClientHandler.AllowAutoRedirect = $false
423
- }
424
- $HttpClient = New-Object System.Net.Http.HttpClient -ArgumentList $HttpClientHandler
425
-
426
- # Default timeout for HttpClient is 100s. For a 50 MB download this assumes 500 KB/s average, any less will time out
427
- # Defaulting to 20 minutes allows it to work over much slower connections.
428
- $HttpClient.Timeout = New-TimeSpan -Seconds $DownloadTimeout
429
-
430
- if ($HeaderOnly){
431
- $completionOption = [System.Net.Http.HttpCompletionOption]::ResponseHeadersRead
280
+ $HttpClient = New-Object System.Net.Http.HttpClient -ArgumentList $HttpClientHandler
432
281
  }
433
282
  else {
434
- $completionOption = [System.Net.Http.HttpCompletionOption]::ResponseContentRead
435
- }
436
283
 
437
- if ($DisableFeedCredential) {
438
- $UriWithCredential = $Uri
284
+ $HttpClient = New-Object System.Net.Http.HttpClient
439
285
  }
440
- else {
441
- $UriWithCredential = "${Uri}${FeedCredential}"
442
- }
443
-
444
- $Task = $HttpClient.GetAsync("$UriWithCredential", $completionOption).ConfigureAwait("false");
286
+ # Default timeout for HttpClient is 100s. For a 50 MB download this assumes 500 KB/s average, any less will time out
287
+ # 20 minutes allows it to work over much slower connections.
288
+ $HttpClient.Timeout = New-TimeSpan -Minutes 20
289
+ $Task = $HttpClient.GetAsync("${Uri}${FeedCredential}").ConfigureAwait("false");
445
290
  $Response = $Task.GetAwaiter().GetResult();
446
291
 
447
- if (($null -eq $Response) -or ((-not $HeaderOnly) -and (-not ($Response.IsSuccessStatusCode)))) {
292
+ if (($null -eq $Response) -or (-not ($Response.IsSuccessStatusCode))) {
448
293
  # The feed credential is potentially sensitive info. Do not log FeedCredential to console output.
449
294
  $DownloadException = [System.Exception] "Unable to download $Uri."
450
295
 
451
296
  if ($null -ne $Response) {
452
297
  $DownloadException.Data["StatusCode"] = [int] $Response.StatusCode
453
298
  $DownloadException.Data["ErrorMessage"] = "Unable to download $Uri. Returned HTTP status code: " + $DownloadException.Data["StatusCode"]
454
-
455
- if (404 -eq [int] $Response.StatusCode)
456
- {
457
- $cts.Cancel()
458
- }
459
299
  }
460
300
 
461
301
  throw $DownloadException
@@ -483,51 +323,37 @@ function GetHTTPResponse([Uri] $Uri, [bool]$HeaderOnly, [bool]$DisableRedirect,
483
323
  throw $DownloadException
484
324
  }
485
325
  finally {
486
- if ($null -ne $HttpClient) {
326
+ if ($HttpClient -ne $null) {
487
327
  $HttpClient.Dispose()
488
328
  }
489
329
  }
490
- }
491
-
492
- try {
493
- return Invoke-With-Retry $downloadScript $cts.Token
494
- }
495
- finally
496
- {
497
- if ($null -ne $cts)
498
- {
499
- $cts.Dispose()
500
- }
501
- }
330
+ })
502
331
  }
503
332
 
504
- function Get-Version-From-LatestVersion-File([string]$AzureFeed, [string]$Channel) {
333
+ function Get-Latest-Version-Info([string]$AzureFeed, [string]$Channel) {
505
334
  Say-Invocation $MyInvocation
506
335
 
507
336
  $VersionFileUrl = $null
508
337
  if ($Runtime -eq "dotnet") {
509
- $VersionFileUrl = "$AzureFeed/Runtime/$Channel/latest.version"
338
+ $VersionFileUrl = "$UncachedFeed/Runtime/$Channel/latest.version"
510
339
  }
511
340
  elseif ($Runtime -eq "aspnetcore") {
512
- $VersionFileUrl = "$AzureFeed/aspnetcore/Runtime/$Channel/latest.version"
341
+ $VersionFileUrl = "$UncachedFeed/aspnetcore/Runtime/$Channel/latest.version"
513
342
  }
514
343
  elseif ($Runtime -eq "windowsdesktop") {
515
- $VersionFileUrl = "$AzureFeed/WindowsDesktop/$Channel/latest.version"
344
+ $VersionFileUrl = "$UncachedFeed/WindowsDesktop/$Channel/latest.version"
516
345
  }
517
346
  elseif (-not $Runtime) {
518
- $VersionFileUrl = "$AzureFeed/Sdk/$Channel/latest.version"
347
+ $VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.version"
519
348
  }
520
349
  else {
521
350
  throw "Invalid value for `$Runtime"
522
351
  }
523
-
524
- Say-Verbose "Constructed latest.version URL: $VersionFileUrl"
525
-
526
352
  try {
527
353
  $Response = GetHTTPResponse -Uri $VersionFileUrl
528
354
  }
529
355
  catch {
530
- Say-Verbose "Failed to download latest.version file."
356
+ Say-Error "Could not resolve version information."
531
357
  throw
532
358
  }
533
359
  $StringContent = $Response.Content.ReadAsStringAsync().Result
@@ -539,7 +365,7 @@ function Get-Version-From-LatestVersion-File([string]$AzureFeed, [string]$Channe
539
365
  default { throw "``$Response.Content.Headers.ContentType`` is an unknown .version file content type." }
540
366
  }
541
367
 
542
- $VersionInfo = Get-Version-From-LatestVersion-File-Content $VersionText
368
+ $VersionInfo = Get-Version-Info-From-Version-Text $VersionText
543
369
 
544
370
  return $VersionInfo
545
371
  }
@@ -585,8 +411,8 @@ function Get-Specific-Version-From-Version([string]$AzureFeed, [string]$Channel,
585
411
  Say-Invocation $MyInvocation
586
412
 
587
413
  if (-not $JSonFile) {
588
- if ($Version.ToLowerInvariant() -eq "latest") {
589
- $LatestVersionInfo = Get-Version-From-LatestVersion-File -AzureFeed $AzureFeed -Channel $Channel
414
+ if ($Version.ToLower() -eq "latest") {
415
+ $LatestVersionInfo = Get-Latest-Version-Info -AzureFeed $AzureFeed -Channel $Channel
590
416
  return $LatestVersionInfo.Version
591
417
  }
592
418
  else {
@@ -652,116 +478,58 @@ function Get-LegacyDownload-Link([string]$AzureFeed, [string]$SpecificVersion, [
652
478
  return $PayloadURL
653
479
  }
654
480
 
655
- function Get-Product-Version([string]$AzureFeed, [string]$SpecificVersion, [string]$PackageDownloadLink) {
656
- Say-Invocation $MyInvocation
657
-
658
- # Try to get the version number, using the productVersion.txt file located next to the installer file.
659
- $ProductVersionTxtURLs = (Get-Product-Version-Url $AzureFeed $SpecificVersion $PackageDownloadLink -Flattened $true),
660
- (Get-Product-Version-Url $AzureFeed $SpecificVersion $PackageDownloadLink -Flattened $false)
661
-
662
- Foreach ($ProductVersionTxtURL in $ProductVersionTxtURLs) {
663
- Say-Verbose "Checking for the existence of $ProductVersionTxtURL"
664
-
665
- try {
666
- $productVersionResponse = GetHTTPResponse($productVersionTxtUrl)
667
-
668
- if ($productVersionResponse.StatusCode -eq 200) {
669
- $productVersion = $productVersionResponse.Content.ReadAsStringAsync().Result.Trim()
670
- if ($productVersion -ne $SpecificVersion)
671
- {
672
- Say "Using alternate version $productVersion found in $ProductVersionTxtURL"
673
- }
674
- return $productVersion
675
- }
676
- else {
677
- Say-Verbose "Got StatusCode $($productVersionResponse.StatusCode) when trying to get productVersion.txt at $productVersionTxtUrl."
678
- }
679
- }
680
- catch {
681
- Say-Verbose "Could not read productVersion.txt at $productVersionTxtUrl (Exception: '$($_.Exception.Message)'. )"
682
- }
683
- }
684
-
685
- # Getting the version number with productVersion.txt has failed. Try parsing the download link for a version number.
686
- if ([string]::IsNullOrEmpty($PackageDownloadLink))
687
- {
688
- Say-Verbose "Using the default value '$SpecificVersion' as the product version."
689
- return $SpecificVersion
690
- }
691
-
692
- $productVersion = Get-ProductVersionFromDownloadLink $PackageDownloadLink $SpecificVersion
693
- return $productVersion
694
- }
695
-
696
- function Get-Product-Version-Url([string]$AzureFeed, [string]$SpecificVersion, [string]$PackageDownloadLink, [bool]$Flattened) {
481
+ function Get-Product-Version([string]$AzureFeed, [string]$SpecificVersion) {
697
482
  Say-Invocation $MyInvocation
698
483
 
699
- $majorVersion=$null
700
- if ($SpecificVersion -match '^(\d+)\.(.*)') {
701
- $majorVersion = $Matches[1] -as[int]
484
+ if ($Runtime -eq "dotnet") {
485
+ $ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/productVersion.txt"
702
486
  }
703
-
704
- $pvFileName='productVersion.txt'
705
- if($Flattened) {
706
- if(-not $Runtime) {
707
- $pvFileName='sdk-productVersion.txt'
708
- }
709
- elseif($Runtime -eq "dotnet") {
710
- $pvFileName='runtime-productVersion.txt'
711
- }
712
- else {
713
- $pvFileName="$Runtime-productVersion.txt"
714
- }
487
+ elseif ($Runtime -eq "aspnetcore") {
488
+ $ProductVersionTxtURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/productVersion.txt"
715
489
  }
716
-
717
- if ([string]::IsNullOrEmpty($PackageDownloadLink)) {
718
- if ($Runtime -eq "dotnet") {
719
- $ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/$pvFileName"
720
- }
721
- elseif ($Runtime -eq "aspnetcore") {
722
- $ProductVersionTxtURL = "$AzureFeed/aspnetcore/Runtime/$SpecificVersion/$pvFileName"
723
- }
724
- elseif ($Runtime -eq "windowsdesktop") {
725
- # The windows desktop runtime is part of the core runtime layout prior to 5.0
726
- $ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/$pvFileName"
727
- if ($majorVersion -ne $null -and $majorVersion -ge 5) {
728
- $ProductVersionTxtURL = "$AzureFeed/WindowsDesktop/$SpecificVersion/$pvFileName"
490
+ elseif ($Runtime -eq "windowsdesktop") {
491
+ # The windows desktop runtime is part of the core runtime layout prior to 5.0
492
+ $ProductVersionTxtURL = "$AzureFeed/Runtime/$SpecificVersion/productVersion.txt"
493
+ if ($SpecificVersion -match '^(\d+)\.(.*)')
494
+ {
495
+ $majorVersion = [int]$Matches[1]
496
+ if ($majorVersion -ge 5)
497
+ {
498
+ $ProductVersionTxtURL = "$AzureFeed/WindowsDesktop/$SpecificVersion/productVersion.txt"
729
499
  }
730
500
  }
731
- elseif (-not $Runtime) {
732
- $ProductVersionTxtURL = "$AzureFeed/Sdk/$SpecificVersion/$pvFileName"
733
- }
734
- else {
735
- throw "Invalid value '$Runtime' specified for `$Runtime"
736
- }
501
+ }
502
+ elseif (-not $Runtime) {
503
+ $ProductVersionTxtURL = "$AzureFeed/Sdk/$SpecificVersion/productVersion.txt"
737
504
  }
738
505
  else {
739
- $ProductVersionTxtURL = $PackageDownloadLink.Substring(0, $PackageDownloadLink.LastIndexOf("/")) + "/$pvFileName"
506
+ throw "Invalid value '$Runtime' specified for `$Runtime"
740
507
  }
741
508
 
742
- Say-Verbose "Constructed productVersion link: $ProductVersionTxtURL"
509
+ Say-Verbose "Checking for existence of $ProductVersionTxtURL"
743
510
 
744
- return $ProductVersionTxtURL
745
- }
511
+ try {
512
+ $productVersionResponse = GetHTTPResponse($productVersionTxtUrl)
746
513
 
747
- function Get-ProductVersionFromDownloadLink([string]$PackageDownloadLink, [string]$SpecificVersion)
748
- {
749
- Say-Invocation $MyInvocation
514
+ if ($productVersionResponse.StatusCode -eq 200) {
515
+ $productVersion = $productVersionResponse.Content.ReadAsStringAsync().Result.Trim()
516
+ if ($productVersion -ne $SpecificVersion)
517
+ {
518
+ Say "Using alternate version $productVersion found in $ProductVersionTxtURL"
519
+ }
750
520
 
751
- #product specific version follows the product name
752
- #for filename 'dotnet-sdk-3.1.404-win-x64.zip': the product version is 3.1.400
753
- $filename = $PackageDownloadLink.Substring($PackageDownloadLink.LastIndexOf("/") + 1)
754
- $filenameParts = $filename.Split('-')
755
- if ($filenameParts.Length -gt 2)
756
- {
757
- $productVersion = $filenameParts[2]
758
- Say-Verbose "Extracted product version '$productVersion' from download link '$PackageDownloadLink'."
759
- }
760
- else {
761
- Say-Verbose "Using the default value '$SpecificVersion' as the product version."
521
+ return $productVersion
522
+ }
523
+ else {
524
+ Say-Verbose "Got StatusCode $($productVersionResponse.StatusCode) trying to get productVersion.txt at $productVersionTxtUrl, so using default value of $SpecificVersion"
525
+ $productVersion = $SpecificVersion
526
+ }
527
+ } catch {
528
+ Say-Verbose "Could not read productVersion.txt at $productVersionTxtUrl, so using default value of $SpecificVersion (Exception: '$($_.Exception.Message)' )"
762
529
  $productVersion = $SpecificVersion
763
530
  }
764
- return $productVersion
531
+
532
+ return $productVersion
765
533
  }
766
534
 
767
535
  function Get-User-Share-Path() {
@@ -799,8 +567,7 @@ function Get-Absolute-Path([string]$RelativeOrAbsolutePath) {
799
567
  }
800
568
 
801
569
  function Get-Path-Prefix-With-Version($path) {
802
- # example path with regex: shared/1.0.0-beta-12345/somepath
803
- $match = [regex]::match($path, "/\d+\.\d+[^/]+/")
570
+ $match = [regex]::match($path, $VersionRegEx)
804
571
  if ($match.Success) {
805
572
  return $entry.FullName.Substring(0, $match.Index + $match.Length)
806
573
  }
@@ -814,7 +581,7 @@ function Get-List-Of-Directories-And-Versions-To-Unpack-From-Dotnet-Package([Sys
814
581
  $ret = @()
815
582
  foreach ($entry in $Zip.Entries) {
816
583
  $dir = Get-Path-Prefix-With-Version $entry.FullName
817
- if ($null -ne $dir) {
584
+ if ($dir -ne $null) {
818
585
  $path = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $dir)
819
586
  if (-Not (Test-Path $path -PathType Container)) {
820
587
  $ret += $dir
@@ -855,7 +622,7 @@ function Extract-Dotnet-Package([string]$ZipPath, [string]$OutPath) {
855
622
 
856
623
  foreach ($entry in $Zip.Entries) {
857
624
  $PathWithVersion = Get-Path-Prefix-With-Version $entry.FullName
858
- if (($null -eq $PathWithVersion) -Or ($DirectoriesToUnpack -contains $PathWithVersion)) {
625
+ if (($PathWithVersion -eq $null) -Or ($DirectoriesToUnpack -contains $PathWithVersion)) {
859
626
  $DestinationPath = Get-Absolute-Path $(Join-Path -Path $OutPath -ChildPath $entry.FullName)
860
627
  $DestinationDir = Split-Path -Parent $DestinationPath
861
628
  $OverrideFiles=$OverrideNonVersionedFiles -Or (-Not (Test-Path $DestinationPath))
@@ -866,13 +633,8 @@ function Extract-Dotnet-Package([string]$ZipPath, [string]$OutPath) {
866
633
  }
867
634
  }
868
635
  }
869
- catch
870
- {
871
- Say-Error "Failed to extract package. Exception: $_"
872
- throw;
873
- }
874
636
  finally {
875
- if ($null -ne $Zip) {
637
+ if ($Zip -ne $null) {
876
638
  $Zip.Dispose()
877
639
  }
878
640
  }
@@ -892,63 +654,40 @@ function DownloadFile($Source, [string]$OutPath) {
892
654
  }
893
655
 
894
656
  $Stream = $null
895
-
657
+
896
658
  try {
897
659
  $Response = GetHTTPResponse -Uri $Source
898
660
  $Stream = $Response.Content.ReadAsStreamAsync().Result
899
661
  $File = [System.IO.File]::Create($OutPath)
900
662
  $Stream.CopyTo($File)
901
663
  $File.Close()
902
-
903
- ValidateRemoteLocalFileSizes -LocalFileOutPath $OutPath -SourceUri $Source
904
664
  }
905
665
  finally {
906
- if ($null -ne $Stream) {
666
+ if ($Stream -ne $null) {
907
667
  $Stream.Dispose()
908
668
  }
909
669
  }
910
670
  }
911
671
 
912
- function ValidateRemoteLocalFileSizes([string]$LocalFileOutPath, $SourceUri) {
913
- try {
914
- $remoteFileSize = Get-Remote-File-Size -zipUri $SourceUri
915
- $fileSize = [long](Get-Item $LocalFileOutPath).Length
916
- Say "Downloaded file $SourceUri size is $fileSize bytes."
917
-
918
- if ((![string]::IsNullOrEmpty($remoteFileSize)) -and !([string]::IsNullOrEmpty($fileSize)) ) {
919
- if ($remoteFileSize -ne $fileSize) {
920
- Say "The remote and local file sizes are not equal. Remote file size is $remoteFileSize bytes and local size is $fileSize bytes. The local package may be corrupted."
921
- }
922
- else {
923
- Say "The remote and local file sizes are equal."
924
- }
925
- }
926
- else {
927
- Say "Either downloaded or local package size can not be measured. One of them may be corrupted."
928
- }
929
- }
930
- catch {
931
- Say "Either downloaded or local package size can not be measured. One of them may be corrupted."
932
- }
933
- }
934
-
935
672
  function SafeRemoveFile($Path) {
936
673
  try {
937
674
  if (Test-Path $Path) {
938
675
  Remove-Item $Path
939
676
  Say-Verbose "The temporary file `"$Path`" was removed."
940
677
  }
941
- else {
678
+ else
679
+ {
942
680
  Say-Verbose "The temporary file `"$Path`" does not exist, therefore is not removed."
943
681
  }
944
682
  }
945
- catch {
683
+ catch
684
+ {
946
685
  Say-Warning "Failed to remove the temporary file: `"$Path`", remove it manually."
947
686
  }
948
687
  }
949
688
 
950
- function Prepend-Sdk-InstallRoot-To-Path([string]$InstallRoot) {
951
- $BinPath = Get-Absolute-Path $(Join-Path -Path $InstallRoot -ChildPath "")
689
+ function Prepend-Sdk-InstallRoot-To-Path([string]$InstallRoot, [string]$BinFolderRelativePath) {
690
+ $BinPath = Get-Absolute-Path $(Join-Path -Path $InstallRoot -ChildPath $BinFolderRelativePath)
952
691
  if (-Not $NoPath) {
953
692
  $SuffixedBinPath = "$BinPath;"
954
693
  if (-Not $env:path.Contains($SuffixedBinPath)) {
@@ -963,12 +702,25 @@ function Prepend-Sdk-InstallRoot-To-Path([string]$InstallRoot) {
963
702
  }
964
703
  }
965
704
 
966
- function PrintDryRunOutput($Invocation, $DownloadLinks)
967
- {
705
+ Say "Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:"
706
+ Say "- The SDK needs to be installed without user interaction and without admin rights."
707
+ Say "- The SDK installation doesn't need to persist across multiple CI runs."
708
+ Say "To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.`r`n"
709
+
710
+ $CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture
711
+ $SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $AzureFeed -Channel $Channel -Version $Version -JSonFile $JSonFile
712
+ $DownloadLink, $EffectiveVersion = Get-Download-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
713
+ $LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $AzureFeed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
714
+
715
+ $InstallRoot = Resolve-Installation-Path $InstallDir
716
+ Say-Verbose "InstallRoot: $InstallRoot"
717
+ $ScriptName = $MyInvocation.MyCommand.Name
718
+
719
+ if ($DryRun) {
968
720
  Say "Payload URLs:"
969
-
970
- for ($linkIndex=0; $linkIndex -lt $DownloadLinks.count; $linkIndex++) {
971
- Say "URL #$linkIndex - $($DownloadLinks[$linkIndex].type): $($DownloadLinks[$linkIndex].downloadLink)"
721
+ Say "Primary named payload URL: $DownloadLink"
722
+ if ($LegacyDownloadLink) {
723
+ Say "Legacy named payload URL: $LegacyDownloadLink"
972
724
  }
973
725
  $RepeatableCommand = ".\$ScriptName -Version `"$SpecificVersion`" -InstallDir `"$InstallRoot`" -Architecture `"$CLIArchitecture`""
974
726
  if ($Runtime -eq "dotnet") {
@@ -977,608 +729,367 @@ function PrintDryRunOutput($Invocation, $DownloadLinks)
977
729
  elseif ($Runtime -eq "aspnetcore") {
978
730
  $RepeatableCommand+=" -Runtime `"aspnetcore`""
979
731
  }
980
-
981
- foreach ($key in $Invocation.BoundParameters.Keys) {
982
- if (-not (@("Architecture","Channel","DryRun","InstallDir","Runtime","SharedRuntime","Version","Quality","FeedCredential") -contains $key)) {
983
- $RepeatableCommand+=" -$key `"$($Invocation.BoundParameters[$key])`""
732
+ foreach ($key in $MyInvocation.BoundParameters.Keys) {
733
+ if (-not (@("Architecture","Channel","DryRun","InstallDir","Runtime","SharedRuntime","Version") -contains $key)) {
734
+ $RepeatableCommand+=" -$key `"$($MyInvocation.BoundParameters[$key])`""
984
735
  }
985
736
  }
986
- if ($Invocation.BoundParameters.Keys -contains "FeedCredential") {
987
- $RepeatableCommand+=" -FeedCredential `"<feedCredential>`""
988
- }
989
737
  Say "Repeatable invocation: $RepeatableCommand"
990
738
  if ($SpecificVersion -ne $EffectiveVersion)
991
739
  {
992
740
  Say "NOTE: Due to finding a version manifest with this runtime, it would actually install with version '$EffectiveVersion'"
993
741
  }
994
- }
995
-
996
- function Get-AkaMSDownloadLink([string]$Channel, [string]$Quality, [bool]$Internal, [string]$Product, [string]$Architecture) {
997
- Say-Invocation $MyInvocation
998
-
999
- #quality is not supported for LTS or STS channel
1000
- if (![string]::IsNullOrEmpty($Quality) -and (@("LTS", "STS") -contains $Channel)) {
1001
- $Quality = ""
1002
- Say-Warning "Specifying quality for STS or LTS channel is not supported, the quality will be ignored."
1003
- }
1004
- Say-Verbose "Retrieving primary payload URL from aka.ms link for channel: '$Channel', quality: '$Quality' product: '$Product', os: 'win', architecture: '$Architecture'."
1005
-
1006
- #construct aka.ms link
1007
- $akaMsLink = "https://aka.ms/dotnet"
1008
- if ($Internal) {
1009
- $akaMsLink += "/internal"
1010
- }
1011
- $akaMsLink += "/$Channel"
1012
- if (-not [string]::IsNullOrEmpty($Quality)) {
1013
- $akaMsLink +="/$Quality"
1014
- }
1015
- $akaMsLink +="/$Product-win-$Architecture.zip"
1016
- Say-Verbose "Constructed aka.ms link: '$akaMsLink'."
1017
- $akaMsDownloadLink=$null
1018
-
1019
- for ($maxRedirections = 9; $maxRedirections -ge 0; $maxRedirections--)
1020
- {
1021
- #get HTTP response
1022
- #do not pass credentials as a part of the $akaMsLink and do not apply credentials in the GetHTTPResponse function
1023
- #otherwise the redirect link would have credentials as well
1024
- #it would result in applying credentials twice to the resulting link and thus breaking it, and in echoing credentials to the output as a part of redirect link
1025
- $Response= GetHTTPResponse -Uri $akaMsLink -HeaderOnly $true -DisableRedirect $true -DisableFeedCredential $true
1026
- Say-Verbose "Received response:`n$Response"
1027
-
1028
- if ([string]::IsNullOrEmpty($Response)) {
1029
- Say-Verbose "The link '$akaMsLink' is not valid: failed to get redirect location. The resource is not available."
1030
- return $null
1031
- }
1032
-
1033
- #if HTTP code is 301 (Moved Permanently), the redirect link exists
1034
- if ($Response.StatusCode -eq 301)
1035
- {
1036
- try {
1037
- $akaMsDownloadLink = $Response.Headers.GetValues("Location")[0]
1038
-
1039
- if ([string]::IsNullOrEmpty($akaMsDownloadLink)) {
1040
- Say-Verbose "The link '$akaMsLink' is not valid: server returned 301 (Moved Permanently), but the headers do not contain the redirect location."
1041
- return $null
1042
- }
1043
-
1044
- Say-Verbose "The redirect location retrieved: '$akaMsDownloadLink'."
1045
- # This may yet be a link to another redirection. Attempt to retrieve the page again.
1046
- $akaMsLink = $akaMsDownloadLink
1047
- continue
1048
- }
1049
- catch {
1050
- Say-Verbose "The link '$akaMsLink' is not valid: failed to get redirect location."
1051
- return $null
1052
- }
1053
- }
1054
- elseif ((($Response.StatusCode -lt 300) -or ($Response.StatusCode -ge 400)) -and (-not [string]::IsNullOrEmpty($akaMsDownloadLink)))
1055
- {
1056
- # Redirections have ended.
1057
- return $akaMsDownloadLink
1058
- }
1059
-
1060
- Say-Verbose "The link '$akaMsLink' is not valid: failed to retrieve the redirection location."
1061
- return $null
1062
- }
1063
-
1064
- Say-Verbose "Aka.ms links have redirected more than the maximum allowed redirections. This may be caused by a cyclic redirection of aka.ms links."
1065
- return $null
1066
742
 
743
+ return
1067
744
  }
1068
745
 
1069
- function Get-AkaMsLink-And-Version([string] $NormalizedChannel, [string] $NormalizedQuality, [bool] $Internal, [string] $ProductName, [string] $Architecture) {
1070
- $AkaMsDownloadLink = Get-AkaMSDownloadLink -Channel $NormalizedChannel -Quality $NormalizedQuality -Internal $Internal -Product $ProductName -Architecture $Architecture
1071
-
1072
- if ([string]::IsNullOrEmpty($AkaMsDownloadLink)){
1073
- if (-not [string]::IsNullOrEmpty($NormalizedQuality)) {
1074
- # if quality is specified - exit with error - there is no fallback approach
1075
- Say-Error "Failed to locate the latest version in the channel '$NormalizedChannel' with '$NormalizedQuality' quality for '$ProductName', os: 'win', architecture: '$Architecture'."
1076
- Say-Error "Refer to: https://aka.ms/dotnet-os-lifecycle for information on .NET Core support."
1077
- throw "aka.ms link resolution failure"
1078
- }
1079
- Say-Verbose "Falling back to latest.version file approach."
1080
- return ($null, $null, $null)
1081
- }
1082
- else {
1083
- Say-Verbose "Retrieved primary named payload URL from aka.ms link: '$AkaMsDownloadLink'."
1084
- Say-Verbose "Downloading using legacy url will not be attempted."
1085
-
1086
- #get version from the path
1087
- $pathParts = $AkaMsDownloadLink.Split('/')
1088
- if ($pathParts.Length -ge 2) {
1089
- $SpecificVersion = $pathParts[$pathParts.Length - 2]
1090
- Say-Verbose "Version: '$SpecificVersion'."
1091
- }
1092
- else {
1093
- Say-Error "Failed to extract the version from download link '$AkaMsDownloadLink'."
1094
- return ($null, $null, $null)
1095
- }
1096
-
1097
- #retrieve effective (product) version
1098
- $EffectiveVersion = Get-Product-Version -SpecificVersion $SpecificVersion -PackageDownloadLink $AkaMsDownloadLink
1099
- Say-Verbose "Product version: '$EffectiveVersion'."
1100
-
1101
- return ($AkaMsDownloadLink, $SpecificVersion, $EffectiveVersion);
1102
- }
746
+ if ($Runtime -eq "dotnet") {
747
+ $assetName = ".NET Core Runtime"
748
+ $dotnetPackageRelativePath = "shared\Microsoft.NETCore.App"
1103
749
  }
1104
-
1105
- function Get-Feeds-To-Use()
1106
- {
1107
- $feeds = @(
1108
- "https://dotnetcli.azureedge.net/dotnet",
1109
- "https://dotnetbuilds.azureedge.net/public"
1110
- )
1111
-
1112
- if (-not [string]::IsNullOrEmpty($AzureFeed)) {
1113
- $feeds = @($AzureFeed)
1114
- }
1115
-
1116
- if ($NoCdn) {
1117
- $feeds = @(
1118
- "https://dotnetcli.blob.core.windows.net/dotnet",
1119
- "https://dotnetbuilds.blob.core.windows.net/public"
1120
- )
1121
-
1122
- if (-not [string]::IsNullOrEmpty($UncachedFeed)) {
1123
- $feeds = @($UncachedFeed)
1124
- }
1125
- }
1126
-
1127
- return $feeds
750
+ elseif ($Runtime -eq "aspnetcore") {
751
+ $assetName = "ASP.NET Core Runtime"
752
+ $dotnetPackageRelativePath = "shared\Microsoft.AspNetCore.App"
1128
753
  }
1129
-
1130
- function Resolve-AssetName-And-RelativePath([string] $Runtime) {
1131
-
1132
- if ($Runtime -eq "dotnet") {
1133
- $assetName = ".NET Core Runtime"
1134
- $dotnetPackageRelativePath = "shared\Microsoft.NETCore.App"
1135
- }
1136
- elseif ($Runtime -eq "aspnetcore") {
1137
- $assetName = "ASP.NET Core Runtime"
1138
- $dotnetPackageRelativePath = "shared\Microsoft.AspNetCore.App"
1139
- }
1140
- elseif ($Runtime -eq "windowsdesktop") {
1141
- $assetName = ".NET Core Windows Desktop Runtime"
1142
- $dotnetPackageRelativePath = "shared\Microsoft.WindowsDesktop.App"
1143
- }
1144
- elseif (-not $Runtime) {
1145
- $assetName = ".NET Core SDK"
1146
- $dotnetPackageRelativePath = "sdk"
1147
- }
1148
- else {
1149
- throw "Invalid value for `$Runtime"
1150
- }
1151
-
1152
- return ($assetName, $dotnetPackageRelativePath)
754
+ elseif ($Runtime -eq "windowsdesktop") {
755
+ $assetName = ".NET Core Windows Desktop Runtime"
756
+ $dotnetPackageRelativePath = "shared\Microsoft.WindowsDesktop.App"
1153
757
  }
1154
-
1155
- function Prepare-Install-Directory {
1156
- $diskSpaceWarning = "Failed to check the disk space. Installation will continue, but it may fail if you do not have enough disk space.";
1157
-
1158
- if ($PSVersionTable.PSVersion.Major -lt 7) {
1159
- Say-Verbose $diskSpaceWarning
1160
- return
1161
- }
1162
-
1163
- New-Item -ItemType Directory -Force -Path $InstallRoot | Out-Null
1164
-
1165
- $installDrive = $((Get-Item $InstallRoot -Force).PSDrive.Name);
1166
- $diskInfo = $null
1167
- try {
1168
- $diskInfo = Get-PSDrive -Name $installDrive
1169
- }
1170
- catch {
1171
- Say-Warning $diskSpaceWarning
1172
- }
1173
-
1174
- # The check is relevant for PS version >= 7, the result can be irrelevant for older versions. See https://github.com/PowerShell/PowerShell/issues/12442.
1175
- if ( ($null -ne $diskInfo) -and ($diskInfo.Free / 1MB -le 100)) {
1176
- throw "There is not enough disk space on drive ${installDrive}:"
1177
- }
758
+ elseif (-not $Runtime) {
759
+ $assetName = ".NET Core SDK"
760
+ $dotnetPackageRelativePath = "sdk"
761
+ }
762
+ else {
763
+ throw "Invalid value for `$Runtime"
1178
764
  }
1179
765
 
1180
- if ($Help)
766
+ if ($SpecificVersion -ne $EffectiveVersion)
1181
767
  {
1182
- Get-Help $PSCommandPath -Examples
1183
- exit
768
+ Say "Performing installation checks for effective version: $EffectiveVersion"
769
+ $SpecificVersion = $EffectiveVersion
1184
770
  }
1185
771
 
1186
- Say-Verbose "Note that the intended use of this script is for Continuous Integration (CI) scenarios, where:"
1187
- Say-Verbose "- The SDK needs to be installed without user interaction and without admin rights."
1188
- Say-Verbose "- The SDK installation doesn't need to persist across multiple CI runs."
1189
- Say-Verbose "To set up a development environment or to run apps, use installers rather than this script. Visit https://dotnet.microsoft.com/download to get the installer.`r`n"
1190
-
1191
- if ($SharedRuntime -and (-not $Runtime)) {
1192
- $Runtime = "dotnet"
772
+ # Check if the SDK version is already installed.
773
+ $isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion
774
+ if ($isAssetInstalled) {
775
+ Say "$assetName version $SpecificVersion is already installed."
776
+ Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot -BinFolderRelativePath $BinFolderRelativePath
777
+ return
1193
778
  }
1194
779
 
1195
- $OverrideNonVersionedFiles = !$SkipNonVersionedFiles
780
+ New-Item -ItemType Directory -Force -Path $InstallRoot | Out-Null
1196
781
 
1197
- Measure-Action "Product discovery" {
1198
- $script:CLIArchitecture = Get-CLIArchitecture-From-Architecture $Architecture
1199
- $script:NormalizedQuality = Get-NormalizedQuality $Quality
1200
- Say-Verbose "Normalized quality: '$NormalizedQuality'"
1201
- $script:NormalizedChannel = Get-NormalizedChannel $Channel
1202
- Say-Verbose "Normalized channel: '$NormalizedChannel'"
1203
- $script:NormalizedProduct = Get-NormalizedProduct $Runtime
1204
- Say-Verbose "Normalized product: '$NormalizedProduct'"
1205
- $script:FeedCredential = ValidateFeedCredential $FeedCredential
782
+ $installDrive = $((Get-Item $InstallRoot).PSDrive.Name);
783
+ $diskInfo = Get-PSDrive -Name $installDrive
784
+ if ($diskInfo.Free / 1MB -le 100) {
785
+ throw "There is not enough disk space on drive ${installDrive}:"
1206
786
  }
1207
787
 
1208
- $InstallRoot = Resolve-Installation-Path $InstallDir
1209
- Say-Verbose "InstallRoot: $InstallRoot"
1210
- $ScriptName = $MyInvocation.MyCommand.Name
1211
- ($assetName, $dotnetPackageRelativePath) = Resolve-AssetName-And-RelativePath -Runtime $Runtime
788
+ $ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())
789
+ Say-Verbose "Zip path: $ZipPath"
1212
790
 
1213
- $feeds = Get-Feeds-To-Use
1214
- $DownloadLinks = @()
791
+ $DownloadFailed = $false
1215
792
 
1216
- if ($Version.ToLowerInvariant() -ne "latest" -and -not [string]::IsNullOrEmpty($Quality)) {
1217
- throw "Quality and Version options are not allowed to be specified simultaneously. See https:// learn.microsoft.com/dotnet/core/tools/dotnet-install-script#options for details."
1218
- }
793
+ $PrimaryDownloadStatusCode = 0
794
+ $LegacyDownloadStatusCode = 0
1219
795
 
1220
- # aka.ms links can only be used if the user did not request a specific version via the command line or a global.json file.
1221
- if ([string]::IsNullOrEmpty($JSonFile) -and ($Version -eq "latest")) {
1222
- ($DownloadLink, $SpecificVersion, $EffectiveVersion) = Get-AkaMsLink-And-Version $NormalizedChannel $NormalizedQuality $Internal $NormalizedProduct $CLIArchitecture
1223
-
1224
- if ($null -ne $DownloadLink) {
1225
- $DownloadLinks += New-Object PSObject -Property @{downloadLink="$DownloadLink";specificVersion="$SpecificVersion";effectiveVersion="$EffectiveVersion";type='aka.ms'}
1226
- Say-Verbose "Generated aka.ms link $DownloadLink with version $EffectiveVersion"
1227
-
1228
- if (-Not $DryRun) {
1229
- Say-Verbose "Checking if the version $EffectiveVersion is already installed"
1230
- if (Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $EffectiveVersion)
1231
- {
1232
- Say "$assetName with version '$EffectiveVersion' is already installed."
1233
- Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot
1234
- return
1235
- }
1236
- }
1237
- }
1238
- }
1239
-
1240
- # Primary and legacy links cannot be used if a quality was specified.
1241
- # If we already have an aka.ms link, no need to search the blob feeds.
1242
- if ([string]::IsNullOrEmpty($NormalizedQuality) -and 0 -eq $DownloadLinks.count)
1243
- {
1244
- foreach ($feed in $feeds) {
1245
- try {
1246
- $SpecificVersion = Get-Specific-Version-From-Version -AzureFeed $feed -Channel $Channel -Version $Version -JSonFile $JSonFile
1247
- $DownloadLink, $EffectiveVersion = Get-Download-Link -AzureFeed $feed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
1248
- $LegacyDownloadLink = Get-LegacyDownload-Link -AzureFeed $feed -SpecificVersion $SpecificVersion -CLIArchitecture $CLIArchitecture
1249
-
1250
- $DownloadLinks += New-Object PSObject -Property @{downloadLink="$DownloadLink";specificVersion="$SpecificVersion";effectiveVersion="$EffectiveVersion";type='primary'}
1251
- Say-Verbose "Generated primary link $DownloadLink with version $EffectiveVersion"
1252
-
1253
- if (-not [string]::IsNullOrEmpty($LegacyDownloadLink)) {
1254
- $DownloadLinks += New-Object PSObject -Property @{downloadLink="$LegacyDownloadLink";specificVersion="$SpecificVersion";effectiveVersion="$EffectiveVersion";type='legacy'}
1255
- Say-Verbose "Generated legacy link $LegacyDownloadLink with version $EffectiveVersion"
1256
- }
1257
-
1258
- if (-Not $DryRun) {
1259
- Say-Verbose "Checking if the version $EffectiveVersion is already installed"
1260
- if (Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $EffectiveVersion)
1261
- {
1262
- Say "$assetName with version '$EffectiveVersion' is already installed."
1263
- Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot
1264
- return
1265
- }
1266
- }
1267
- }
1268
- catch
1269
- {
1270
- Say-Verbose "Failed to acquire download links from feed $feed. Exception: $_"
1271
- }
1272
- }
1273
- }
796
+ $PrimaryDownloadFailedMsg = ""
797
+ $LegacyDownloadFailedMsg = ""
1274
798
 
1275
- if ($DownloadLinks.count -eq 0) {
1276
- throw "Failed to resolve the exact version number."
799
+ Say "Downloading primary link $DownloadLink"
800
+ try {
801
+ DownloadFile -Source $DownloadLink -OutPath $ZipPath
1277
802
  }
803
+ catch {
804
+ if ($PSItem.Exception.Data.Contains("StatusCode")) {
805
+ $PrimaryDownloadStatusCode = $PSItem.Exception.Data["StatusCode"]
806
+ }
1278
807
 
1279
- if ($DryRun) {
1280
- PrintDryRunOutput $MyInvocation $DownloadLinks
1281
- return
1282
- }
808
+ if ($PSItem.Exception.Data.Contains("ErrorMessage")) {
809
+ $PrimaryDownloadFailedMsg = $PSItem.Exception.Data["ErrorMessage"]
810
+ } else {
811
+ $PrimaryDownloadFailedMsg = $PSItem.Exception.Message
812
+ }
1283
813
 
1284
- Measure-Action "Installation directory preparation" { Prepare-Install-Directory }
814
+ if ($PrimaryDownloadStatusCode -eq 404) {
815
+ Say "The resource at $DownloadLink is not available."
816
+ } else {
817
+ Say $PSItem.Exception.Message
818
+ }
1285
819
 
1286
- Say-Verbose "Zip path: $ZipPath"
820
+ SafeRemoveFile -Path $ZipPath
1287
821
 
1288
- $DownloadSucceeded = $false
1289
- $DownloadedLink = $null
1290
- $ErrorMessages = @()
822
+ if ($LegacyDownloadLink) {
823
+ $DownloadLink = $LegacyDownloadLink
824
+ $ZipPath = [System.IO.Path]::combine([System.IO.Path]::GetTempPath(), [System.IO.Path]::GetRandomFileName())
825
+ Say-Verbose "Legacy zip path: $ZipPath"
826
+ Say "Downloading legacy link $DownloadLink"
827
+ try {
828
+ DownloadFile -Source $DownloadLink -OutPath $ZipPath
829
+ }
830
+ catch {
831
+ if ($PSItem.Exception.Data.Contains("StatusCode")) {
832
+ $LegacyDownloadStatusCode = $PSItem.Exception.Data["StatusCode"]
833
+ }
1291
834
 
1292
- foreach ($link in $DownloadLinks)
1293
- {
1294
- Say-Verbose "Downloading `"$($link.type)`" link $($link.downloadLink)"
835
+ if ($PSItem.Exception.Data.Contains("ErrorMessage")) {
836
+ $LegacyDownloadFailedMsg = $PSItem.Exception.Data["ErrorMessage"]
837
+ } else {
838
+ $LegacyDownloadFailedMsg = $PSItem.Exception.Message
839
+ }
1295
840
 
1296
- try {
1297
- Measure-Action "Package download" { DownloadFile -Source $link.downloadLink -OutPath $ZipPath }
1298
- Say-Verbose "Download succeeded."
1299
- $DownloadSucceeded = $true
1300
- $DownloadedLink = $link
1301
- break
1302
- }
1303
- catch {
1304
- $StatusCode = $null
1305
- $ErrorMessage = $null
841
+ if ($LegacyDownloadStatusCode -eq 404) {
842
+ Say "The resource at $DownloadLink is not available."
843
+ } else {
844
+ Say $PSItem.Exception.Message
845
+ }
1306
846
 
1307
- if ($PSItem.Exception.Data.Contains("StatusCode")) {
1308
- $StatusCode = $PSItem.Exception.Data["StatusCode"]
1309
- }
1310
-
1311
- if ($PSItem.Exception.Data.Contains("ErrorMessage")) {
1312
- $ErrorMessage = $PSItem.Exception.Data["ErrorMessage"]
1313
- } else {
1314
- $ErrorMessage = $PSItem.Exception.Message
847
+ SafeRemoveFile -Path $ZipPath
848
+ $DownloadFailed = $true
1315
849
  }
1316
-
1317
- Say-Verbose "Download failed with status code $StatusCode. Error message: $ErrorMessage"
1318
- $ErrorMessages += "Downloading from `"$($link.type)`" link has failed with error:`nUri: $($link.downloadLink)`nStatusCode: $StatusCode`nError: $ErrorMessage"
1319
850
  }
1320
-
1321
- # This link failed. Clean up before trying the next one.
1322
- SafeRemoveFile -Path $ZipPath
851
+ else {
852
+ $DownloadFailed = $true
853
+ }
1323
854
  }
1324
855
 
1325
- if (-not $DownloadSucceeded) {
1326
- foreach ($ErrorMessage in $ErrorMessages) {
1327
- Say-Error $ErrorMessages
856
+ if ($DownloadFailed) {
857
+ if (($PrimaryDownloadStatusCode -eq 404) -and ((-not $LegacyDownloadLink) -or ($LegacyDownloadStatusCode -eq 404))) {
858
+ throw "Could not find `"$assetName`" with version = $SpecificVersion`nRefer to: https://aka.ms/dotnet-os-lifecycle for information on .NET Core support"
859
+ } else {
860
+ # 404-NotFound is an expected response if it goes from only one of the links, do not show that error.
861
+ # If primary path is available (not 404-NotFound) then show the primary error else show the legacy error.
862
+ if ($PrimaryDownloadStatusCode -ne 404) {
863
+ throw "Could not download `"$assetName`" with version = $SpecificVersion`r`n$PrimaryDownloadFailedMsg"
864
+ }
865
+ if (($LegacyDownloadLink) -and ($LegacyDownloadStatusCode -ne 404)) {
866
+ throw "Could not download `"$assetName`" with version = $SpecificVersion`r`n$LegacyDownloadFailedMsg"
867
+ }
868
+ throw "Could not download `"$assetName`" with version = $SpecificVersion"
1328
869
  }
1329
-
1330
- throw "Could not find `"$assetName`" with version = $($DownloadLinks[0].effectiveVersion)`nRefer to: https://aka.ms/dotnet-os-lifecycle for information on .NET support"
1331
870
  }
1332
871
 
1333
- Say "Extracting the archive."
1334
- Measure-Action "Package extraction" { Extract-Dotnet-Package -ZipPath $ZipPath -OutPath $InstallRoot }
872
+ Say "Extracting zip from $DownloadLink"
873
+ Extract-Dotnet-Package -ZipPath $ZipPath -OutPath $InstallRoot
1335
874
 
1336
875
  # Check if the SDK version is installed; if not, fail the installation.
1337
876
  $isAssetInstalled = $false
1338
877
 
1339
878
  # if the version contains "RTM" or "servicing"; check if a 'release-type' SDK version is installed.
1340
- if ($DownloadedLink.effectiveVersion -Match "rtm" -or $DownloadedLink.effectiveVersion -Match "servicing") {
1341
- $ReleaseVersion = $DownloadedLink.effectiveVersion.Split("-")[0]
879
+ if ($SpecificVersion -Match "rtm" -or $SpecificVersion -Match "servicing") {
880
+ $ReleaseVersion = $SpecificVersion.Split("-")[0]
1342
881
  Say-Verbose "Checking installation: version = $ReleaseVersion"
1343
882
  $isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $ReleaseVersion
1344
883
  }
1345
884
 
1346
885
  # Check if the SDK version is installed.
1347
886
  if (!$isAssetInstalled) {
1348
- Say-Verbose "Checking installation: version = $($DownloadedLink.effectiveVersion)"
1349
- $isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $DownloadedLink.effectiveVersion
887
+ Say-Verbose "Checking installation: version = $SpecificVersion"
888
+ $isAssetInstalled = Is-Dotnet-Package-Installed -InstallRoot $InstallRoot -RelativePathToPackage $dotnetPackageRelativePath -SpecificVersion $SpecificVersion
1350
889
  }
1351
890
 
1352
891
  # Version verification failed. More likely something is wrong either with the downloaded content or with the verification algorithm.
1353
892
  if (!$isAssetInstalled) {
1354
- Say-Error "Failed to verify the version of installed `"$assetName`".`nInstallation source: $($DownloadedLink.downloadLink).`nInstallation location: $InstallRoot.`nReport the bug at https://github.com/dotnet/install-scripts/issues."
1355
- throw "`"$assetName`" with version = $($DownloadedLink.effectiveVersion) failed to install with an unknown error."
893
+ Say-Error "Failed to verify the version of installed `"$assetName`".`nInstallation source: $DownloadLink.`nInstallation location: $InstallRoot.`nReport the bug at https://github.com/dotnet/install-scripts/issues."
894
+ throw "`"$assetName`" with version = $SpecificVersion failed to install with an unknown error."
1356
895
  }
1357
896
 
1358
- if (-not $KeepZip) {
1359
- SafeRemoveFile -Path $ZipPath
1360
- }
897
+ SafeRemoveFile -Path $ZipPath
1361
898
 
1362
- Measure-Action "Setting up shell environment" { Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot }
899
+ Prepend-Sdk-InstallRoot-To-Path -InstallRoot $InstallRoot -BinFolderRelativePath $BinFolderRelativePath
1363
900
 
1364
901
  Say "Note that the script does not resolve dependencies during installation."
1365
- Say "To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install/windows#dependencies"
1366
- Say "Installed version is $($DownloadedLink.effectiveVersion)"
902
+ Say "To check the list of dependencies, go to https://docs.microsoft.com/dotnet/core/install/windows#dependencies"
1367
903
  Say "Installation finished"
1368
904
  # SIG # Begin signature block
1369
- # MIIoLAYJKoZIhvcNAQcCoIIoHTCCKBkCAQExDzANBglghkgBZQMEAgEFADB5Bgor
905
+ # MIIjjwYJKoZIhvcNAQcCoIIjgDCCI3wCAQExDzANBglghkgBZQMEAgEFADB5Bgor
1370
906
  # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
1371
- # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAcjJpspXTX0Wfr
1372
- # XrmBKKJAMp5FGvSyRcbMwr8jAJ2D2qCCDXYwggX0MIID3KADAgECAhMzAAADrzBA
1373
- # DkyjTQVBAAAAAAOvMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
907
+ # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCNsnhcJvx/hXmM
908
+ # w8KjuvvIMDBFonhg9XJFc1QwfTyH4aCCDYEwggX/MIID56ADAgECAhMzAAABh3IX
909
+ # chVZQMcJAAAAAAGHMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
1374
910
  # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
1375
911
  # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
1376
- # bmcgUENBIDIwMTEwHhcNMjMxMTE2MTkwOTAwWhcNMjQxMTE0MTkwOTAwWjB0MQsw
912
+ # bmcgUENBIDIwMTEwHhcNMjAwMzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQsw
1377
913
  # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
1378
914
  # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
1379
915
  # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
1380
- # AQDOS8s1ra6f0YGtg0OhEaQa/t3Q+q1MEHhWJhqQVuO5amYXQpy8MDPNoJYk+FWA
1381
- # hePP5LxwcSge5aen+f5Q6WNPd6EDxGzotvVpNi5ve0H97S3F7C/axDfKxyNh21MG
1382
- # 0W8Sb0vxi/vorcLHOL9i+t2D6yvvDzLlEefUCbQV/zGCBjXGlYJcUj6RAzXyeNAN
1383
- # xSpKXAGd7Fh+ocGHPPphcD9LQTOJgG7Y7aYztHqBLJiQQ4eAgZNU4ac6+8LnEGAL
1384
- # go1ydC5BJEuJQjYKbNTy959HrKSu7LO3Ws0w8jw6pYdC1IMpdTkk2puTgY2PDNzB
1385
- # tLM4evG7FYer3WX+8t1UMYNTAgMBAAGjggFzMIIBbzAfBgNVHSUEGDAWBgorBgEE
1386
- # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQURxxxNPIEPGSO8kqz+bgCAQWGXsEw
1387
- # RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW
1388
- # MBQGA1UEBRMNMjMwMDEyKzUwMTgyNjAfBgNVHSMEGDAWgBRIbmTlUAXTgqoXNzci
1389
- # tW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
1390
- # b20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3JsMGEG
1391
- # CCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3dy5taWNyb3NvZnQu
1392
- # Y29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIwMTEtMDctMDguY3J0
1393
- # MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAISxFt/zR2frTFPB45Yd
1394
- # mhZpB2nNJoOoi+qlgcTlnO4QwlYN1w/vYwbDy/oFJolD5r6FMJd0RGcgEM8q9TgQ
1395
- # 2OC7gQEmhweVJ7yuKJlQBH7P7Pg5RiqgV3cSonJ+OM4kFHbP3gPLiyzssSQdRuPY
1396
- # 1mIWoGg9i7Y4ZC8ST7WhpSyc0pns2XsUe1XsIjaUcGu7zd7gg97eCUiLRdVklPmp
1397
- # XobH9CEAWakRUGNICYN2AgjhRTC4j3KJfqMkU04R6Toyh4/Toswm1uoDcGr5laYn
1398
- # TfcX3u5WnJqJLhuPe8Uj9kGAOcyo0O1mNwDa+LhFEzB6CB32+wfJMumfr6degvLT
1399
- # e8x55urQLeTjimBQgS49BSUkhFN7ois3cZyNpnrMca5AZaC7pLI72vuqSsSlLalG
1400
- # OcZmPHZGYJqZ0BacN274OZ80Q8B11iNokns9Od348bMb5Z4fihxaBWebl8kWEi2O
1401
- # PvQImOAeq3nt7UWJBzJYLAGEpfasaA3ZQgIcEXdD+uwo6ymMzDY6UamFOfYqYWXk
1402
- # ntxDGu7ngD2ugKUuccYKJJRiiz+LAUcj90BVcSHRLQop9N8zoALr/1sJuwPrVAtx
1403
- # HNEgSW+AKBqIxYWM4Ev32l6agSUAezLMbq5f3d8x9qzT031jMDT+sUAoCw0M5wVt
1404
- # CUQcqINPuYjbS1WgJyZIiEkBMIIHejCCBWKgAwIBAgIKYQ6Q0gAAAAAAAzANBgkq
1405
- # hkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
1406
- # EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
1407
- # bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
1408
- # IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5WjB+MQswCQYDVQQG
1409
- # EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
1410
- # A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQg
1411
- # Q29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
1412
- # CgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4BjgaBEm6f8MMHt03
1413
- # a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe0t+bU7IKLMOv2akr
1414
- # rnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato88tt8zpcoRb0Rrrg
1415
- # OGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v++MrWhAfTVYoonpy
1416
- # 4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDstrjNYxbc+/jLTswM9
1417
- # sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN91/w0FK/jJSHvMAh
1418
- # dCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4jiJV3TIUs+UsS1Vz8k
1419
- # A/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmhD+kjSbwYuER8ReTB
1420
- # w3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbiwZeBe+3W7UvnSSmn
1421
- # Eyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8HhhUSJxAlMxdSlQy90
1422
- # lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaIjAsCAwEAAaOCAe0w
1423
- # ggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTlUAXTgqoXNzcitW2o
1424
- # ynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYD
1425
- # VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQFTuHqp8cx0SOJNDBa
1426
- # BgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2Ny
1427
- # bC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3JsMF4GCCsG
1428
- # AQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
1429
- # L3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNfMjIuY3J0MIGfBgNV
1430
- # HSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcCARYzaHR0cDovL3d3
1431
- # dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnljcHMuaHRtMEAGCCsG
1432
- # AQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5AF8AcwB0AGEAdABl
1433
- # AG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oalmOBUeRou09h0ZyKb
1434
- # C5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0epo/Np22O/IjWll11l
1435
- # hJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1HXeUOeLpZMlEPXh6
1436
- # I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtYSWMfCWluWpiW5IP0
1437
- # wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInWH8MyGOLwxS3OW560
1438
- # STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZiWhub6e3dMNABQam
1439
- # ASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMdYzaXht/a8/jyFqGa
1440
- # J+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7fQccOKO7eZS/sl/ah
1441
- # XJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKfenoi+kiVH6v7RyOA
1442
- # 9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOppO6/8MO0ETI7f33Vt
1443
- # Y5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZOSEXAQsmbdlsKgEhr
1444
- # /Xmfwb1tbWrJUnMTDXpQzTGCGgwwghoIAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMw
1445
- # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
1446
- # aWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNp
1447
- # Z25pbmcgUENBIDIwMTECEzMAAAOvMEAOTKNNBUEAAAAAA68wDQYJYIZIAWUDBAIB
1448
- # BQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
1449
- # MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEILE0f3lJHQgU2RZWXUC1oqZH
1450
- # SyMVCuT1h5mXGiSSjTDHMEIGCisGAQQBgjcCAQwxNDAyoBSAEgBNAGkAYwByAG8A
1451
- # cwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20wDQYJKoZIhvcNAQEB
1452
- # BQAEggEANxDFgCiCDFasXK4jelzA8ed3cn/ZebTOsL/D/5LQTgwhbjtfp1Dp7awF
1453
- # 8vESgjYXq22XMBz5vV12f2f14XzxG1kW17bP9OR+D2C3GUlN2xQstIhslXJRKVwi
1454
- # lpFqHGFKy8o6sssvdrtsatlfrtC+ZChbQ1nyJmYWiCotVTwoi6UMA3EiXfQ/6KGo
1455
- # o8MykKgtMWaolI63lITY2EWtUowSgg7IToyrZEYOH3p45F3Rb3mfVl5GE9u8BPBZ
1456
- # WyZ3JZPojeJZPBwoh746RijTpga+MIPTLMT5/pyEFF37XoTfKy+pmIy2g27fGF0f
1457
- # dUTMVnaeP3Gsz/QoRIYGwRZHxPIn06GCF5YwgheSBgorBgEEAYI3AwMBMYIXgjCC
1458
- # F34GCSqGSIb3DQEHAqCCF28wghdrAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFRBgsq
1459
- # hkiG9w0BCRABBKCCAUAEggE8MIIBOAIBAQYKKwYBBAGEWQoDATAxMA0GCWCGSAFl
1460
- # AwQCAQUABCDsnfXLdwRAAmajQ5qXHFhiKlkumRT841LqpvZZhWG0uwIGZbwTAVg6
1461
- # GBIyMDI0MDIxNDIxMTUyNS45OVowBIACAfSggdGkgc4wgcsxCzAJBgNVBAYTAlVT
1462
- # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
1463
- # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVy
1464
- # aWNhIE9wZXJhdGlvbnMxJzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1
1465
- # RTAtRDk0NzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC
1466
- # Ee0wggcgMIIFCKADAgECAhMzAAAB6pokctVZP2FjAAEAAAHqMA0GCSqGSIb3DQEB
1467
- # CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
1468
- # EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
1469
- # BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIzMTIwNjE4NDUz
1470
- # MFoXDTI1MDMwNTE4NDUzMFowgcsxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
1471
- # aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
1472
- # cG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMx
1473
- # JzAlBgNVBAsTHm5TaGllbGQgVFNTIEVTTjozNzAzLTA1RTAtRDk0NzElMCMGA1UE
1474
- # AxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEB
1475
- # BQADggIPADCCAgoCggIBALULX/FIPyAH1fsu52ijatZvaSypoXrlC0mRtCmaxzob
1476
- # huDkw6/pY/+4nhc4m8pf9zW3R6PihYGp0YPpVuNdfhPQp/KVO6WvMq2DGfFmHurW
1477
- # 4PQPL/DkbQMkM9vqjFCvPq8xXZnfL1nGN9moGcN+oaif/hUMedmF1qzbay9ILkYf
1478
- # LCxDYn3Qwzsvh5xjxOcsjzmRddNURJvT23Eva0cxisH4ocLLTx2zfpqfshw4Z9Ga
1479
- # EdsWg9rmib1galUpLzF5PsQDBbtZtcv+Wjmn0pFEiMCWwEEcPVN0YG5ysYLdNBdJ
1480
- # On2zsOOS+80W5RrQEqzPpSIIvEkZBJmF3aI4lMR8nV/FiTadjpIIqxX5Wa1XlqI/
1481
- # Nj+xagVjnjb7POsA+vh6Wu+v24HpyL8pyL/8Q4RFkRRME9cwT+Jr63yOtPbLe6DX
1482
- # kxIJW6E6w2ua5kXBpEKtEQPTLPhX3CUxMYcglbnmI0zcc9UknX285K+sI/2WwRwT
1483
- # BZkhDUULI86eQzV+zvzzR1qEBrlSY+oyTlYQrHMM9WnTzVflFDocZVTPpl2BDSNx
1484
- # Pn0Qb4IoM9EPqbHyi/MilL+v/AQc8q3mQ6FiuPJAddz0ocpNZ9ekBWPVLKq3lfie
1485
- # v4yl65u/438+NAQ+vSJgkONLMmuoguEGzmnK1vq/JHwdRUyn6YADiteM7Dja+Qd9
1486
- # AgMBAAGjggFJMIIBRTAdBgNVHQ4EFgQUK4FFJaJR5ukXQFTUxMhyiwVuWV4wHwYD
1487
- # VR0jBBgwFoAUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZO
1488
- # aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIw
1489
- # VGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBc
1490
- # BggrBgEFBQcwAoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0
1491
- # cy9NaWNyb3NvZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYD
1492
- # VR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAOBgNVHQ8BAf8EBAMC
1493
- # B4AwDQYJKoZIhvcNAQELBQADggIBACiDrVZeP37+fFVtfcbfsqC/Kg0Ce67bDceh
1494
- # ZmPcfRgJ5Ddv0pJlOFVOFbiIVwesqeEUwFtclfi5AjneQ5ZJpYJpXfELOelG3dzj
1495
- # +BKfd287/UY/cwmSkl+CjnoKBL3Ms6I/fWR+alR0+p6RlviK8xHoug9vkc2WrRZs
1496
- # GnMVu2xOM2tPJ+qpyoDBzqv30N/ZRBOoNrS/PCkDwLGICDYqVs/IzAE49yv2ElPy
1497
- # walf9mEsOHXV1lxtQDNcejVEmitJJ+1Vr2EtafPEbMQZp89TAuagROKE4YuohCUK
1498
- # m+v3geJqTQarTBjqV25RCOT+XFngTMDD9wYx6TwndB2I1Ly726NiHUHs0uvq3ciC
1499
- # V9JwNXdt1VZ63WK1NSgpVEsiK9EPABPt1EfXcKrfaPYkbkFi79eK1ETxx3NomYNU
1500
- # HNiGU+X1Be8L7qpHwjo0g3/33XhtOr9LiDoUXh/V2LFTETiqV9Q8yLEavQW3j9LQ
1501
- # /h/CaGz5YdGfrY8HiPfMIeLEokKxGf0hHcTEFApB0yLlq6KoHrFAEANR/4XuFIpl
1502
- # 9sDywVIWt4tKqG+P6pRAXzg1zG5rGlslZWmw7XwgvhBu3jkLP9AxrsSYwY2ftrww
1503
- # ze5NA6VDLS7pz+OrXXWLUmoyNrJNx5Bk0wEwzkQxzkOvmbdPhsOP1ZM0uA/xIV7c
1504
- # SpNpZUw5MIIHcTCCBVmgAwIBAgITMwAAABXF52ueAptJmQAAAAAAFTANBgkqhkiG
1505
- # 9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
1506
- # BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy
1507
- # MDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIw
1508
- # MTAwHhcNMjEwOTMwMTgyMjI1WhcNMzAwOTMwMTgzMjI1WjB8MQswCQYDVQQGEwJV
1509
- # UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
1510
- # ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt
1511
- # ZS1TdGFtcCBQQ0EgMjAxMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB
1512
- # AOThpkzntHIhC3miy9ckeb0O1YLT/e6cBwfSqWxOdcjKNVf2AX9sSuDivbk+F2Az
1513
- # /1xPx2b3lVNxWuJ+Slr+uDZnhUYjDLWNE893MsAQGOhgfWpSg0S3po5GawcU88V2
1514
- # 9YZQ3MFEyHFcUTE3oAo4bo3t1w/YJlN8OWECesSq/XJprx2rrPY2vjUmZNqYO7oa
1515
- # ezOtgFt+jBAcnVL+tuhiJdxqD89d9P6OU8/W7IVWTe/dvI2k45GPsjksUZzpcGkN
1516
- # yjYtcI4xyDUoveO0hyTD4MmPfrVUj9z6BVWYbWg7mka97aSueik3rMvrg0XnRm7K
1517
- # MtXAhjBcTyziYrLNueKNiOSWrAFKu75xqRdbZ2De+JKRHh09/SDPc31BmkZ1zcRf
1518
- # NN0Sidb9pSB9fvzZnkXftnIv231fgLrbqn427DZM9ituqBJR6L8FA6PRc6ZNN3SU
1519
- # HDSCD/AQ8rdHGO2n6Jl8P0zbr17C89XYcz1DTsEzOUyOArxCaC4Q6oRRRuLRvWoY
1520
- # WmEBc8pnol7XKHYC4jMYctenIPDC+hIK12NvDMk2ZItboKaDIV1fMHSRlJTYuVD5
1521
- # C4lh8zYGNRiER9vcG9H9stQcxWv2XFJRXRLbJbqvUAV6bMURHXLvjflSxIUXk8A8
1522
- # FdsaN8cIFRg/eKtFtvUeh17aj54WcmnGrnu3tz5q4i6tAgMBAAGjggHdMIIB2TAS
1523
- # BgkrBgEEAYI3FQEEBQIDAQABMCMGCSsGAQQBgjcVAgQWBBQqp1L+ZMSavoKRPEY1
1524
- # Kc8Q/y8E7jAdBgNVHQ4EFgQUn6cVXQBeYl2D9OXSZacbUzUZ6XIwXAYDVR0gBFUw
1525
- # UzBRBgwrBgEEAYI3TIN9AQEwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNy
1526
- # b3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1UdJQQMMAoG
1527
- # CCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIB
1528
- # hjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQW9fO
1529
- # mhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w
1530
- # a2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBaBggr
1531
- # BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
1532
- # bS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MA0GCSqGSIb3
1533
- # DQEBCwUAA4ICAQCdVX38Kq3hLB9nATEkW+Geckv8qW/qXBS2Pk5HZHixBpOXPTEz
1534
- # tTnXwnE2P9pkbHzQdTltuw8x5MKP+2zRoZQYIu7pZmc6U03dmLq2HnjYNi6cqYJW
1535
- # AAOwBb6J6Gngugnue99qb74py27YP0h1AdkY3m2CDPVtI1TkeFN1JFe53Z/zjj3G
1536
- # 82jfZfakVqr3lbYoVSfQJL1AoL8ZthISEV09J+BAljis9/kpicO8F7BUhUKz/Aye
1537
- # ixmJ5/ALaoHCgRlCGVJ1ijbCHcNhcy4sa3tuPywJeBTpkbKpW99Jo3QMvOyRgNI9
1538
- # 5ko+ZjtPu4b6MhrZlvSP9pEB9s7GdP32THJvEKt1MMU0sHrYUP4KWN1APMdUbZ1j
1539
- # dEgssU5HLcEUBHG/ZPkkvnNtyo4JvbMBV0lUZNlz138eW0QBjloZkWsNn6Qo3GcZ
1540
- # KCS6OEuabvshVGtqRRFHqfG3rsjoiV5PndLQTHa1V1QJsWkBRH58oWFsc/4Ku+xB
1541
- # Zj1p/cvBQUl+fpO+y/g75LcVv7TOPqUxUYS8vwLBgqJ7Fx0ViY1w/ue10CgaiQuP
1542
- # Ntq6TPmb/wrpNPgkNWcr4A245oyZ1uEi6vAnQj0llOZ0dFtq0Z4+7X6gMTN9vMvp
1543
- # e784cETRkPHIqzqKOghif9lwY1NNje6CbaUFEMFxBmoQtB1VM1izoXBm8qGCA1Aw
1544
- # ggI4AgEBMIH5oYHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
1545
- # Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
1546
- # cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw
1547
- # JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046MzcwMy0wNUUwLUQ5NDcxJTAjBgNVBAMT
1548
- # HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoBATAHBgUrDgMCGgMVAInb
1549
- # HtxB+OlGyQnxQYhy04KSYSSPoIGDMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV
1550
- # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
1551
- # c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
1552
- # UENBIDIwMTAwDQYJKoZIhvcNAQELBQACBQDpdwuXMCIYDzIwMjQwMjE0MDk1MTE5
1553
- # WhgPMjAyNDAyMTUwOTUxMTlaMHcwPQYKKwYBBAGEWQoEATEvMC0wCgIFAOl3C5cC
1554
- # AQAwCgIBAAICAbgCAf8wBwIBAAICFGEwCgIFAOl4XRcCAQAwNgYKKwYBBAGEWQoE
1555
- # AjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkq
1556
- # hkiG9w0BAQsFAAOCAQEAD3oj3Gr5HTA5vQkFXZE9QSfCqxmL4ez3qxPD1t/UMJ9w
1557
- # 93APM6n5MjApe6tpBjo4Oe83WMnfsWNA5ZRu8B/XJhyJ8531k5XMROCaVX6eTOrO
1558
- # 70mkxtszD1E2m5iFx2RYJKS2ldkFAnykkFMc4ezXHa+RAijQA3rQp2VNidnVEFkO
1559
- # jkaZY2FoA2dbG7v9ZjkQsmrycREGNiakPhAgqqmTiUlDPvul5gJx24VGL0z7JZhP
1560
- # KUsccmv6HF3sgD6FjhENyZtD1+NrRfVQHTrjitjpC/dX9ux2OP8pjPi3WIdPfEsI
1561
- # 2PhWNWSEof4cWFv/lLlYAUVeHPDcafr+2umlLYb62zGCBA0wggQJAgEBMIGTMHwx
1562
- # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
1563
- # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
1564
- # Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAAB6pokctVZP2FjAAEAAAHq
1565
- # MA0GCWCGSAFlAwQCAQUAoIIBSjAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQw
1566
- # LwYJKoZIhvcNAQkEMSIEIL2oG23lx47V7tAc0IyUsnuhSrJEjOACK32L1AXSjdl/
1567
- # MIH6BgsqhkiG9w0BCRACLzGB6jCB5zCB5DCBvQQgKY+h1eNkNHiLCDSW0sA1cGHk
1568
- # bW4qooi+ryyMp6S4ZngwgZgwgYCkfjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMK
916
+ # AQDOt8kLc7P3T7MKIhouYHewMFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aB
917
+ # znANDEPjHKNdPT8Xz5cNali6XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dH
918
+ # sJ3GfZ5c0sPJjklsiYqPw59xJ54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4d
919
+ # weils8GEIrbBRb7IWwiObL12jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQ
920
+ # itKJxIV0fVsRNR3abQVOLqpDugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yV
921
+ # Fc39tledDtZjSjNbex1zzwSXAgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEE
922
+ # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcsw
923
+ # UAYDVR0RBEkwR6RFMEMxKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1
924
+ # ZXJ0byBSaWNvMRYwFAYDVQQFEw0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhu
925
+ # ZOVQBdOCqhc3NyK1bajKdQKVMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cu
926
+ # bWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0w
927
+ # Ny0wOC5jcmwwYQYIKwYBBQUHAQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3
928
+ # Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAx
929
+ # MS0wNy0wOC5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmy
930
+ # S6E6vprWD9KFNIB9G5zyMuIjZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4K
931
+ # NrU4DY/sBVqmab5AC/je3bpUpjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NV
932
+ # BmGNl+85qO4fV/w7Cx7J0Bbqk19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJr
933
+ # qAVkYZdz7ikNXTxV+GRb36tC4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usx
934
+ # zVk913qKde1OAuWdv+rndqkAIm8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHe
935
+ # yhnCeHnBbyH3RZkHEi2ofmfgnFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/g
936
+ # yILNyiVgE+RPkjnUQshd1f1PMgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGf
937
+ # AeOo3dgLZxikKzYs3hDMaEtJq8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI
938
+ # 3cwLfuVQgK2RZ2z+Kc3K3dRPz2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5
939
+ # GMdFrBg9IeF7/rP4EqVQXeKtevTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6Ea
940
+ # jOALXmoxgltCp1K7hrS6gmsvj94cLRf50QQ4U8Qwggd6MIIFYqADAgECAgphDpDS
941
+ # AAAAAAADMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
1569
942
  # V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
1570
- # IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0Eg
1571
- # MjAxMAITMwAAAeqaJHLVWT9hYwABAAAB6jAiBCB7j2iMmFJTNAbY6vZ80pGTL0BC
1572
- # A2VAW00KF9MbtVlx1zANBgkqhkiG9w0BAQsFAASCAgA1ArfmkqTc7BoI6J+6zHkc
1573
- # TrfkFzsjKWBJpcPWwOPOZOdxfO850UPyrCLJgTclSkgnDBSSDQLqjhV2Q3EeM5tm
1574
- # iBFU1IO7RIMeF4hTB2jOzGuvX46zRms8/booKtLBlPRscHvYbXgOUqIn9M2ymtZo
1575
- # aMp08VpWw+PxTbSa6HN6jQiwVVtRg9nsGd4gY/mO6+agIkbSs6hY2oV6HyhDH3CB
1576
- # DvEL3z7BCJ5Dx52K3XE2BUDR6nLhkGvxOxRaJ1GmJQXMMILDebq6ULx0ULThmpUQ
1577
- # y6aifjEa3r60cjg29rKd/4PGmbDBaRAnVs7JEaxdSsTR75Ak7OKQymZ4yPI3bTkx
1578
- # 1t/LCEKtia/oqv3tFMP8KtSUHZEK8PvmvRCJII2JrAUrxTYzrohxf/TL95sZdmGg
1579
- # QNyQC2T+h816Kl7i+RrtXi5i6kSYqnTlr7uKFU4idVNRVxqiO/oumXhf6REHp1Wi
1580
- # V60E8w5gawis5jnaJqZMeCiyHSLhm+zvXaCMm1AHUWQ6zK/GWOp1Y0wHiJRr5pnf
1581
- # 4wIKAt7oKWL/clx2jikqesxYFfGBq0YnfRUyHt3bscb83xfbFMjcbok/UI8fxWQM
1582
- # vLsaEzFVp+a7wRqLf4KjiYzF4hORFWoGlZbGglkVYiYswX8Emsx5cn2F5M9cznRn
1583
- # 4d+LeskiXr3Z0pV6Ooki3w==
943
+ # IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0
944
+ # ZSBBdXRob3JpdHkgMjAxMTAeFw0xMTA3MDgyMDU5MDlaFw0yNjA3MDgyMTA5MDla
945
+ # MH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
946
+ # ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMT
947
+ # H01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwggIiMA0GCSqGSIb3DQEB
948
+ # AQUAA4ICDwAwggIKAoICAQCr8PpyEBwurdhuqoIQTTS68rZYIZ9CGypr6VpQqrgG
949
+ # OBoESbp/wwwe3TdrxhLYC/A4wpkGsMg51QEUMULTiQ15ZId+lGAkbK+eSZzpaF7S
950
+ # 35tTsgosw6/ZqSuuegmv15ZZymAaBelmdugyUiYSL+erCFDPs0S3XdjELgN1q2jz
951
+ # y23zOlyhFvRGuuA4ZKxuZDV4pqBjDy3TQJP4494HDdVceaVJKecNvqATd76UPe/7
952
+ # 4ytaEB9NViiienLgEjq3SV7Y7e1DkYPZe7J7hhvZPrGMXeiJT4Qa8qEvWeSQOy2u
953
+ # M1jFtz7+MtOzAz2xsq+SOH7SnYAs9U5WkSE1JcM5bmR/U7qcD60ZI4TL9LoDho33
954
+ # X/DQUr+MlIe8wCF0JV8YKLbMJyg4JZg5SjbPfLGSrhwjp6lm7GEfauEoSZ1fiOIl
955
+ # XdMhSz5SxLVXPyQD8NF6Wy/VI+NwXQ9RRnez+ADhvKwCgl/bwBWzvRvUVUvnOaEP
956
+ # 6SNJvBi4RHxF5MHDcnrgcuck379GmcXvwhxX24ON7E1JMKerjt/sW5+v/N2wZuLB
957
+ # l4F77dbtS+dJKacTKKanfWeA5opieF+yL4TXV5xcv3coKPHtbcMojyyPQDdPweGF
958
+ # RInECUzF1KVDL3SV9274eCBYLBNdYJWaPk8zhNqwiBfenk70lrC8RqBsmNLg1oiM
959
+ # CwIDAQABo4IB7TCCAekwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFEhuZOVQ
960
+ # BdOCqhc3NyK1bajKdQKVMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1Ud
961
+ # DwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFHItOgIxkEO5FAVO
962
+ # 4eqnxzHRI4k0MFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwubWljcm9zb2Z0
963
+ # LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
964
+ # Mi5jcmwwXgYIKwYBBQUHAQEEUjBQME4GCCsGAQUFBzAChkJodHRwOi8vd3d3Lm1p
965
+ # Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dDIwMTFfMjAxMV8wM18y
966
+ # Mi5jcnQwgZ8GA1UdIASBlzCBlDCBkQYJKwYBBAGCNy4DMIGDMD8GCCsGAQUFBwIB
967
+ # FjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2RvY3MvcHJpbWFyeWNw
968
+ # cy5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AcABvAGwAaQBjAHkA
969
+ # XwBzAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAGfyhqWY
970
+ # 4FR5Gi7T2HRnIpsLlhHhY5KZQpZ90nkMkMFlXy4sPvjDctFtg/6+P+gKyju/R6mj
971
+ # 82nbY78iNaWXXWWEkH2LRlBV2AySfNIaSxzzPEKLUtCw/WvjPgcuKZvmPRul1LUd
972
+ # d5Q54ulkyUQ9eHoj8xN9ppB0g430yyYCRirCihC7pKkFDJvtaPpoLpWgKj8qa1hJ
973
+ # Yx8JaW5amJbkg/TAj/NGK978O9C9Ne9uJa7lryft0N3zDq+ZKJeYTQ49C/IIidYf
974
+ # wzIY4vDFLc5bnrRJOQrGCsLGra7lstnbFYhRRVg4MnEnGn+x9Cf43iw6IGmYslmJ
975
+ # aG5vp7d0w0AFBqYBKig+gj8TTWYLwLNN9eGPfxxvFX1Fp3blQCplo8NdUmKGwx1j
976
+ # NpeG39rz+PIWoZon4c2ll9DuXWNB41sHnIc+BncG0QaxdR8UvmFhtfDcxhsEvt9B
977
+ # xw4o7t5lL+yX9qFcltgA1qFGvVnzl6UJS0gQmYAf0AApxbGbpT9Fdx41xtKiop96
978
+ # eiL6SJUfq/tHI4D1nvi/a7dLl+LrdXga7Oo3mXkYS//WsyNodeav+vyL6wuA6mk7
979
+ # r/ww7QRMjt/fdW1jkT3RnVZOT7+AVyKheBEyIXrvQQqxP/uozKRdwaGIm1dxVk5I
980
+ # RcBCyZt2WwqASGv9eZ/BvW1taslScxMNelDNMYIVZDCCFWACAQEwgZUwfjELMAkG
981
+ # A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
982
+ # HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
983
+ # b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMQITMwAAAYdyF3IVWUDHCQAAAAABhzAN
984
+ # BglghkgBZQMEAgEFAKCBrjAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor
985
+ # BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgpT/bxWwe
986
+ # aW0EinKMWCAzDXUjwXkIHldYzR6lw4/1Pc0wQgYKKwYBBAGCNwIBDDE0MDKgFIAS
987
+ # AE0AaQBjAHIAbwBzAG8AZgB0oRqAGGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbTAN
988
+ # BgkqhkiG9w0BAQEFAASCAQCHd7sSQVq0YDg8QDx6/kLWn3s6jtvvIDCCgsO9spHM
989
+ # quPd4FPbG67DCsKDClekQs52qrtRO3Zo+JMnCw4j3bS+gZHzeJr2shbftOrpsFoD
990
+ # l7OPcUmtrqul9dkQCOp8t0MP3ls0n96/YyNy6lz4BAlTdkdDx957uAxalKaCIBzb
991
+ # R9QyppOKIfNFvwD4EI5KI6tpmSy/uH8SrRg7ZExAYZl6J6R18WkL7KHn649lPoAQ
992
+ # ujwrIXH10xOJops45ILGzKWQcHmCzLJGYapL4VHUuK+73nT+9ZROGHdk/PyvIcdw
993
+ # iERa+C06v305t3DA+CuHFy1tvyw7IFF6RVbLZPwxrJjToYIS7jCCEuoGCisGAQQB
994
+ # gjcDAwExghLaMIIS1gYJKoZIhvcNAQcCoIISxzCCEsMCAQMxDzANBglghkgBZQME
995
+ # AgEFADCCAVUGCyqGSIb3DQEJEAEEoIIBRASCAUAwggE8AgEBBgorBgEEAYRZCgMB
996
+ # MDEwDQYJYIZIAWUDBAIBBQAEIOCaTmvM1AP0WaEVqzKaaCu/R+bTlR4kCrM/ZXsb
997
+ # /eNOAgZgGeLsMwsYEzIwMjEwMjAzMjExNzQ5LjU5MVowBIACAfSggdSkgdEwgc4x
998
+ # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
999
+ # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1p
1000
+ # Y3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMg
1001
+ # VFNTIEVTTjo4OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
1002
+ # U3RhbXAgU2VydmljZaCCDkEwggT1MIID3aADAgECAhMzAAABLCKvRZd1+RvuAAAA
1003
+ # AAEsMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
1004
+ # aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
1005
+ # cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
1006
+ # MB4XDTE5MTIxOTAxMTUwM1oXDTIxMDMxNzAxMTUwM1owgc4xCzAJBgNVBAYTAlVT
1007
+ # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
1008
+ # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBPcGVy
1009
+ # YXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4OTdB
1010
+ # LUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj
1011
+ # ZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPK1zgSSq+MxAYo3qpCt
1012
+ # QDxSMPPJy6mm/wfEJNjNUnYtLFBwl1BUS5trEk/t41ldxITKehs+ABxYqo4Qxsg3
1013
+ # Gy1ugKiwHAnYiiekfC+ZhptNFgtnDZIn45zC0AlVr/6UfLtsLcHCh1XElLUHfEC0
1014
+ # nBuQcM/SpYo9e3l1qY5NdMgDGxCsmCKdiZfYXIu+U0UYIBhdzmSHnB3fxZOBVcr5
1015
+ # htFHEBBNt/rFJlm/A4yb8oBsp+Uf0p5QwmO/bCcdqB15JpylOhZmWs0sUfJKlK9E
1016
+ # rAhBwGki2eIRFKsQBdkXS9PWpF1w2gIJRvSkDEaCf+lbGTPdSzHSbfREWOF9wY3i
1017
+ # Yj8CAwEAAaOCARswggEXMB0GA1UdDgQWBBRRahZSGfrCQhCyIyGH9DkiaW7L0zAf
1018
+ # BgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNVHR8ETzBNMEugSaBH
1019
+ # hkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNU
1020
+ # aW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUF
1021
+ # BzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1RpbVN0
1022
+ # YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsG
1023
+ # AQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQBPFxHIwi4vAH49w9Svmz6K3tM55RlW
1024
+ # 5pPeULXdut2Rqy6Ys0+VpZsbuaEoxs6Z1C3hMbkiqZFxxyltxJpuHTyGTg61zfNI
1025
+ # F5n6RsYF3s7IElDXNfZznF1/2iWc6uRPZK8rxxUJ/7emYXZCYwuUY0XjsCpP9pbR
1026
+ # RKeJi6r5arSyI+NfKxvgoM21JNt1BcdlXuAecdd/k8UjxCscffanoK2n6LFw1PcZ
1027
+ # lEO7NId7o+soM2C0QY5BYdghpn7uqopB6ixyFIIkDXFub+1E7GmAEwfU6VwEHL7y
1028
+ # 9rNE8bd+JrQs+yAtkkHy9FmXg/PsGq1daVzX1So7CJ6nyphpuHSN3VfTMIIGcTCC
1029
+ # BFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMC
1030
+ # VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
1031
+ # BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJv
1032
+ # b3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAwNzAxMjEzNjU1WhcN
1033
+ # MjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
1034
+ # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
1035
+ # aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDCCASIw
1036
+ # DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6IOz8E5f1+n9plGt0
1037
+ # VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsalR3OCROOfGEwWbEw
1038
+ # RA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8kYDJYYEbyWEeGMoQe
1039
+ # dGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRnEnIaIYqvS2SJUGKx
1040
+ # Xf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWayrGo8noqCjHw2k4G
1041
+ # kbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURdXhacAQVPIk0CAwEA
1042
+ # AaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBTVYzpcijGQ80N7
1043
+ # fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8EBAMC
1044
+ # AYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2UkFvX
1045
+ # zpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20v
1046
+ # cGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI
1047
+ # KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5j
1048
+ # b20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDCBoAYDVR0g
1049
+ # AQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUHAgEWMWh0dHA6Ly93
1050
+ # d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVsdC5odG0wQAYIKwYB
1051
+ # BQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkAXwBTAHQAYQB0AGUA
1052
+ # bQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN4sbgmD+BcQM9naOh
1053
+ # IW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj+bzta1RXCCtRgkQS
1054
+ # +7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/xn/yN31aPxzymXlK
1055
+ # kVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaPWSm8tv0E4XCfMkon
1056
+ # /VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jnsGUpxY517IW3DnKOi
1057
+ # PPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWAmyI4ILUl5WTs9/S/
1058
+ # fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99g/DhO3EJ3110mCII
1059
+ # YdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mBy6cJrDm77MbL2IK0
1060
+ # cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4SKfXAL1QnIffIrE7a
1061
+ # KLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYovG8chr1m1rtxEPJdQ
1062
+ # cdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7vDaBQNdrvCScc1bN+
1063
+ # NR4Iuto229Nfj950iEkSoYICzzCCAjgCAQEwgfyhgdSkgdEwgc4xCzAJBgNVBAYT
1064
+ # AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
1065
+ # VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKTAnBgNVBAsTIE1pY3Jvc29mdCBP
1066
+ # cGVyYXRpb25zIFB1ZXJ0byBSaWNvMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4
1067
+ # OTdBLUUzNTYtMTcwMTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
1068
+ # dmljZaIjCgEBMAcGBSsOAwIaAxUADE5OKSMoNx/mYxYWap1RTOohbJ2ggYMwgYCk
1069
+ # fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
1070
+ # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
1071
+ # Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIF
1072
+ # AOPFChkwIhgPMjAyMTAyMDMxNTQwMDlaGA8yMDIxMDIwNDE1NDAwOVowdDA6Bgor
1073
+ # BgEEAYRZCgQBMSwwKjAKAgUA48UKGQIBADAHAgEAAgIXmDAHAgEAAgIRyTAKAgUA
1074
+ # 48ZbmQIBADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAID
1075
+ # B6EgoQowCAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAHeeznL2n6HWCjHH94Fl
1076
+ # hcdW6TEXzq4XNgp1Gx1W9F8gJ4x+SwoV7elJZkwgGffcpHomLvIY/VSuzsl1NgtJ
1077
+ # TWM2UxoqSv58BBOrl4eGhH6kkg8Ucy2tdeK5T8cHa8pMkq2j9pFd2mRG/6VMk0dl
1078
+ # Xz7Uy3Z6bZqkcABMyAfuAaGbMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMx
1079
+ # EzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoT
1080
+ # FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUt
1081
+ # U3RhbXAgUENBIDIwMTACEzMAAAEsIq9Fl3X5G+4AAAAAASwwDQYJYIZIAWUDBAIB
1082
+ # BQCgggFKMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQx
1083
+ # IgQg/QYv7yp+354WTjWUIsXWndTEzXjaYjqwYjcBxCJKjdUwgfoGCyqGSIb3DQEJ
1084
+ # EAIvMYHqMIHnMIHkMIG9BCBbn/0uFFh42hTM5XOoKdXevBaiSxmYK9Ilcn9nu5ZH
1085
+ # 4TCBmDCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
1086
+ # DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
1087
+ # JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABLCKv
1088
+ # RZd1+RvuAAAAAAEsMCIEIIfIM3YbzHswb/Kj/qq1l1cHA6QBl+gEXYanUNJomrpT
1089
+ # MA0GCSqGSIb3DQEBCwUABIIBAAwdcXssUZGO7ho5+NHLjIxLtQk543aKGo+lrRMY
1090
+ # Q9abE1h/AaaNJl0iGxX4IihNWyfovSfYL3L4eODUBAu68tWSxeceRfWNsb/ZZfUi
1091
+ # v89hpLssI/Gf1BEgNMA4zCuIGQiC8okusVumEpAhhvCEbSiTTTtBdolTnU/CAKui
1092
+ # oxaU3R9XkKh1F4oAM26+dJ1J2BLQXPs5afNvvedDsZWNQUPK1sFF3JRfzxiTrwBW
1093
+ # EJRyflev9gyDoqCHzippgb+6+eti1WTkcA9Q49GIT11S6LOAVqkSC9N7Nqf8ksh8
1094
+ # ARdwT8jigpsm+mj7lrVU9upDkhVYhKeO8oiZq95Q53Zkteo=
1584
1095
  # SIG # End signature block