



  

<!DOCTYPE html>
<html
  lang="en"
  
  data-color-mode="auto" data-light-theme="light" data-dark-theme="dark"
  data-a11y-animated-images="system" data-a11y-link-underlines="true"
  
  >




  <head>
    <meta charset="utf-8">
  <link rel="dns-prefetch" href="https://github.githubassets.com">
  <link rel="dns-prefetch" href="https://avatars.githubusercontent.com">
  <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
  <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
  <link rel="preconnect" href="https://github.githubassets.com" crossorigin>
  <link rel="preconnect" href="https://avatars.githubusercontent.com">

<script type="importmap">{"imports":{"react":"https://github.githubassets.com/assets/react-e27d1b3e03961e68.js","react-dom":"https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js","react-dom/client":"https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js","react-is":"https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js","react-reconciler":"https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js","react/compiler-runtime":"https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js","react/jsx-dev-runtime":"https://github.githubassets.com/assets/react-jsx-dev-runtime-ea55d68667d559e5.js","react/jsx-runtime":"https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js","scheduler":"https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js"}}</script>
<meta name="react-profiling" content="0" data-turbo-transient="true" />
<meta name="react-import-map" content="react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@777f63f87cd0" data-turbo-track="reload" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-e27d1b3e03961e68.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-compiler-runtime-4610bd6d3de9c049.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/scheduler-58b860b049ca307c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-e5fd46a22d5c4058.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-dom-client-1b4a3ee065998cea.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-is-e0b593954b4706d8.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-jsx-runtime-4915cb0f5b3aff04.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-reconciler-8e99e505c4429605.js" />

  


  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="light" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light-5c4e9fc574bf49f3.css" /><link data-color-theme="light_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_high_contrast-fb37c309e0603a69.css" /><link data-color-theme="light_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind-0f910d8806d5761b.css" /><link data-color-theme="light_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_colorblind_high_contrast-a7abd4d4c49ac593.css" /><link data-color-theme="light_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia-5fc4c4a9cb41e596.css" /><link data-color-theme="light_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/light_tritanopia_high_contrast-ed0cee9214dedabd.css" /><link data-color-theme="dark" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark-afff6c53aef9b9d1.css" /><link data-color-theme="dark_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_high_contrast-c409873d7987dffa.css" /><link data-color-theme="dark_colorblind" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind-78a2491d538dab5a.css" /><link data-color-theme="dark_colorblind_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_colorblind_high_contrast-c26b63d7c532d0a2.css" /><link data-color-theme="dark_tritanopia" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia-a6f60cea68c08405.css" /><link data-color-theme="dark_tritanopia_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_tritanopia_high_contrast-f66faf28b2ea18b6.css" /><link data-color-theme="dark_dimmed" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed-6701f6218c53cf5b.css" /><link data-color-theme="dark_dimmed_high_contrast" crossorigin="anonymous" media="all" rel="stylesheet" data-href="https://github.githubassets.com/assets/dark_dimmed_high_contrast-7037fa46ae124d97.css" />

  <style type="text/css">
    :root {
      --tab-size-preference: 4;
    }

    pre, code {
      tab-size: var(--tab-size-preference);
    }
  </style>

    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-primitives-97df7784617ce1ea.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-9be9fe6313f476af.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-62747e27e61258dc.css" />
    <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/github-b04ca6fccda778e2.css" />
  <link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/repository-72bd7d974b5ac1cc.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-4c5c0895f723f870.css" />

  

  <script type="application/json" id="client-env">{"locale":"en","featureFlags":["actions_caches_react_shell","actions_enable_background_steps","actions_new_hosted_runner_image_select_sizes_and_versions","actions_runners_react_shell","agent_author_search_expansion","agent_author_search_expansion_ui_pulls","alternate_user_config_repo","async_conversion_coverage_enabled","billing_billable_licenses_cost_center_bucket_fix","billing_budget_expiration","billing_cost_center_list_assigned_resources","billing_discount_threshold_notification","code_quality_enablement_banner_targeting","code_quality_remove_preview","code_view_raf_sticky_lines","codespaces_prebuild_region_target_update","coding_agent_third_party_model_ui","copilot_agent_snippy","copilot_ahp_tool_call_timing","copilot_api_agentic_issue_marshal_yaml","copilot_automation_repo_mcp_servers","copilot_automations_pagination","copilot_base_model_policy_row","copilot_chat_auto_mode_v2","copilot_chat_clear_model_selection_for_default_change","copilot_chat_early_task_provisioning","copilot_chat_persist_session_drafts","copilot_chat_vision_dotcom_chat_ga_gate","copilot_css_textarea_autosize","copilot_custom_copilots","copilot_custom_copilots_feature_preview","copilot_duplicate_thread","copilot_extensions_removal_on_marketplace","copilot_fix_failed_workflows_all_skus","copilot_hide_hovercard","copilot_immersive_task_hyperlinking","copilot_mc_cli_resume_any_users_task","copilot_mission_control_agent_merge_fix_ci","copilot_mission_control_agent_merge_resolve_conflicts","copilot_mission_control_awps_batching","copilot_mission_control_early_stop","copilot_mission_control_managed_sandbox_environments","copilot_mission_control_needs_attention","copilot_mission_control_reasoning_effort","copilot_mission_control_sandbox_remote_bypass","copilot_mission_control_task_alive_updates","copilot_mission_control_task_sharing","copilot_org_policy_page_focus_mode","copilot_share_active_subthread","copilot_spaces_ga","copilot_spaces_individual_policies_ga","copilot_swe_agent_authorization_status_ui","copilot_swe_agent_automation_resource_scoped_writes","copilot_swe_agent_discussion_comment_trigger","copilot_swe_agent_discussion_opened_trigger","copilot_swe_agent_discussion_updated_trigger","copilot_swe_agent_hide_model_picker_if_only_auto","copilot_swe_agent_issue_assigned_trigger","copilot_swe_agent_issue_comment_trigger","copilot_swe_agent_issue_labeled_trigger","copilot_swe_agent_pr_comment_model_picker","copilot_swe_agent_pull_request_assigned_trigger","copilot_swe_agent_pull_request_comment_trigger","copilot_swe_agent_pull_request_labeled_trigger","copilot_swe_agent_pull_request_merged_trigger","copilot_swe_agent_pull_request_opened_trigger","copilot_swe_agent_pull_request_ready_for_review_trigger","copilot_swe_agent_pull_request_review_requested_trigger","copilot_swe_agent_pull_request_review_submitted_trigger","copilot_swe_agent_pull_request_synchronize_trigger","copilot_swe_agent_sub_issue_added_trigger","copilot_swe_agent_use_subagents","copilot_task_api_github_rest_style","copilot_task_scoped_alive_channel","copilot_token_based_billing","copilot_unconfigured_is_inherited","copilot_user_can_upgrade_plan_field","copilot_web_integration_cutover","copilot_workbench_sunset_redirect","dashboard_agents_module_auth_token_check","dashboard_indexeddb_caching","fgpat_permissions_selector_redesign","glc_code_quality_repo_settings_workflow_config","hyperspace_2025_logged_out_batch_1","hyperspace_2025_logged_out_batch_2","hyperspace_2025_logged_out_batch_3","in_product_messaging_datadog_monitoring","ipm_ubb_individual_budget_banner","issue_fields_multi_select","issue_inline_avatars","issue_pinned_views","issue_pinned_views_team_vs_personal","issue_relative_time_micro","issue_viewer_paved_path","issues_expanded_file_types","issues_hide_closed_sub_issues","issues_lazy_load_comment_box_suggestions","issues_react_chrome_container_query_fix","labels_archiving","labels_archiving_info","landing_pages_ninetailed","lifecycle_label_name_updates","marketing_cookie_consent_banner","marketing_pages_search_explore_provider","memex_default_issue_create_repository","memex_live_update_hovercard","memex_mwl_filter_field_delimiter","memex_remove_deprecated_type_issue","merge_queue_restricted_pushers_warning","merge_status_header_feedback","milestone_closed_issues_prioritization","octocaptcha_origin_optimization","primer_react_css_anchor_positioning","primer_react_merged_forwarded_refs","primer_react_timeline_list_semantics","prs_copilot_app_open_action","prs_css_anchor_positioning","pull_request_copilot_attribution_header","pull_request_overview_merge_control","pull_request_overview_panel_edit_description","pull_request_persister","pull_request_stacks_navigation_shortcuts","pull_request_virtualization_image_estimate","pull_request_virtualization_loader_batching","pull_request_virtualization_scroll_compensation","pull_request_virtualization_scroll_intent","quick_search_lazy_suggestions","react_blob_isolate_code_lines","react_blob_ssr_content_visibility","react_data_router_tanstack_allowed","react_logged_out_repository_header","react_query_props_with_key","react_sandbox_future_tanstack","repo_app_turbo","repo_issues_sidebar_layout","repo_pulls_dashboard_declutter","repo_pulls_dashboard_ga","repo_pulls_dashboard_persistence","repos_contributors_limited_default_range","review_involves_filter","rule_ignored_file_paths","rulesets_actor_list_editor","sample_network_conn_type","security_center_artifact_filters_popover","see_who_reacted","semantic_similarity_duplicate_issue_detection","session_logs_ungroup_reasoning_text","set_sha256_on_repo_creation_form","site_banner_desktop_copilot_app","site_ghca_pixel_mona","site_github_app_ga_page","site_github_app_ga_page_highlight","site_github_app_mobile_native_share","site_global_banner_dev_days_attendee","site_global_nav_spark_models_removed","speculation_rules_ui_service","suggest_custom_property_values_copilot","suppress_automated_browser_vitals","swp_forms_disable_octocaptcha","thread_resolution_reason","update_issue_suggestions","viewscreen_sandbox","warn_inaccessible_attachments","webp_support","workstream_plugin_bootstrap"],"githubDomain":"https://github.com","copilotApiOverrideUrl":"https://api.githubcopilot.com","cmcApiUrl":"https://api.github.com/cmc_internal/api"}</script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/high-contrast-cookie-3663bcaacc724f4c.js"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wp-runtime-721126455a2225e3.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-foundation-156c6259e31cc551.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-runtime-f6ce38f47c2e1d56.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fetch-utilities-804a14996977c014.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ser-fb5d13278eb42203.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tp-ea613009a991e211.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/environment-107a7753389a8a2d.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-runtime.25915bc98fb322a6.module.css" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/catalyst-52ed81112a548e10.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/selector-observer-e8810f64c443fb9b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/relative-time-element-fe7e72f699fdf493.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/by-9da36843ba9d191d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ja9-9a1160b939f2cd52.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/3h-55903cf2303047ad.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hk-0d35a1220587d888.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jz5-c964b1a3671f2a92.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hj-1d800d09e9a8720a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j0-1ad12374da9777f2.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/github-elements-531d35538b61fd0d.js" defer="defer"></script>
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/element-registry-bf5e3b2aee197122.js" defer="defer"></script>
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/runtime-helpers-5e0b3ae3c4036207.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/aria-live-752acdc868e2da64.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hotkey-e87ffadced20a3c9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/react-core-75bc55d9971828b7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a9-34620c7b13885011.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ur-643d2814115561a9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4t6-5d0869970ac0aac0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pb0-a5c5ec36d311aeef.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/6n-afcf86ccabc4cad2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zj-f08c728cf00018aa.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/o6-2a1c68d269710ee9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/h9a-c6405aa090de0e84.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vy6-3c3e6e96629c2ce4.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/js-4eb97d5803e657c0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/g7-baf9e817ae102b01.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/unc-96389cade7bad821.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/nu-65322a6997c6c93c.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/behaviors-5dd3809b5c8bac3c.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/react-core.3792087592bf207a.module.css" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-menu-4318f0f4c608f3dd.js" defer="defer"></script>
  
  <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/primer-react-7afef75d393cf294.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/op-acddf38478d45ef9.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ncx-461e4b09f2e67ee5.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/qmp-c7cfba40cf5a93b0.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j6-148a74299e5a01ab.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/t7l-a52ba56147f77909.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4u-ec4874f70bfd5d76.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s0-481bd34f90bc2bd7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/y5-ed17e73b4c0bd15e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/n4-be595475cdbf7d4b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j8-23a3c5ff8eef412d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/la-27679061f16e1495.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/iu-9806a0291a782cbe.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ftx-39fb490e3c1d778f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/zi-32a0c3c081ea5cce.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sg-7a5d50475874c0e1.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pd-6a8710840033e042.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/86g-ec28c25ed7d5de06.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sn-1bab7384818953b7.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/iq-6d4ecf6d2fb6993c.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p2-7d8e7cee5b46cb45.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7d-2e3cc25d719f3a95.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/4d-76d8acdf21a33266.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/tsb-e0f6288ab985d9d2.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/lf-910ef220ce85c660.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/2j-2f19c1afd2ceaf93.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/me-f1476ec44a29f34a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/p2u-e654a57b1a70c47d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5d-d97cc006d4da4d9b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r5-38f013bc2c0fd298.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/r6s-9039f5619230a653.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/9e-cece06724bf6ea3b.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/x9-3e077a3a37a73f9f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/pj-87629cb5389d7663.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/eq-3764fd5f66494289.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/13-d889936dff7e5c0f.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/44-8193eea4af825ead.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/v4-9c1327d212e52a0d.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/id-7f39706ba9007db6.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ah-271362a1ed227d03.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/s1g-d434d712bca59d3a.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/vz-d7f4a583896f872e.js" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/47-c8c0ce2700acc5be.js" />
<script crossorigin="anonymous" type="module" src="https://github.githubassets.com/assets/code-view-4118a687d0150749.js" defer="defer"></script>
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/pj.75627bfeb9ceb1da.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/ah.2623f7c6ecbe2ecd.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/47.78770c57a48a810c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/code-view.37656c95a9729fb9.module.css" />


  <title>Posh-ACME/CHANGELOG.md at main · nimbice/Posh-ACME · GitHub</title>



  <meta name="route-pattern" content="/:user_id/:repository/blob/*name(/*path)" data-turbo-transient>
  <meta name="route-controller" content="blob" data-turbo-transient>
  <meta name="route-action" content="show" data-turbo-transient>
  <meta name="fetch-nonce" content="v2:9b36e1c4-7dff-1e2b-1af3-f41a27df42f4">

    
  <meta name="current-catalog-service-hash" content="f3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb">


  <meta name="request-id" content="8ABA:D77D6:B7C2537:EEFE2B0:6ACA6639" data-pjax-transient="true"/><meta name="html-safe-nonce" content="7b6f02cfd7769fc749ddddca02b289948349f1c3ced6a1b4325e3ad1dc4f1f5c" data-pjax-transient="true"/><meta name="visitor-payload" content="eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4QUJBOkQ3N0Q2OkI3QzI1Mzc6RUVGRTJCMDo2QUNBNjYzOSIsInZpc2l0b3JfaWQiOiI4NjEyMTUwMDI4NjYyMzY3ODAxIiwicmVnaW9uX2VkZ2UiOiJmcmEiLCJyZWdpb25fcmVuZGVyIjoiZnJhIn0=" data-pjax-transient="true"/><meta name="visitor-hmac" content="6bf53a21ee8437a6f9e7c8eff737772cda1dc532d8dcd07e502940b73ee3acd0" data-pjax-transient="true"/>


    <meta name="hovercard-subject-tag" content="repository:1376820806" data-turbo-transient>


  <meta name="github-keyboard-shortcuts" content="repository,source-code,file-tree,copilot" data-turbo-transient="true" />
  

  <meta name="selected-link" value="repo_source" data-turbo-transient>
  <link rel="assets" href="https://github.githubassets.com/">

    <meta name="google-site-verification" content="Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I">

<meta name="octolytics-url" content="https://collector.github.com/github/collect" />





  <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-turbo-transient="true" />

  




    <meta name="user-login" content="">

  

    <meta name="viewport" content="width=device-width">

    

      <meta name="description" content="PowerShell module and ACME client to create certificates from Let&#39;s Encrypt (or other ACME CA) - Posh-ACME/CHANGELOG.md at main · nimbice/Posh-ACME">

      <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">

    <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
    <meta property="fb:app_id" content="1401488693436528">
    <meta name="apple-itunes-app" content="app-id=1477376905, app-argument=https://github.com/nimbice/Posh-ACME/blob/main/CHANGELOG.md" />

      <meta name="twitter:image" content="https://opengraph.githubassets.com/15f831929f1ad61cf8f75fae6c1a6cf7d102ea12c3462d4fc756e31f4e1db347/nimbice/Posh-ACME" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:title" content="Posh-ACME/CHANGELOG.md at main · nimbice/Posh-ACME" /><meta name="twitter:description" content="PowerShell module and ACME client to create certificates from Let&#39;s Encrypt (or other ACME CA) - nimbice/Posh-ACME" />
  <meta property="og:image" content="https://opengraph.githubassets.com/15f831929f1ad61cf8f75fae6c1a6cf7d102ea12c3462d4fc756e31f4e1db347/nimbice/Posh-ACME" /><meta property="og:image:alt" content="PowerShell module and ACME client to create certificates from Let&#39;s Encrypt (or other ACME CA) - nimbice/Posh-ACME" /><meta property="og:image:width" content="1200" /><meta property="og:image:height" content="600" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="Posh-ACME/CHANGELOG.md at main · nimbice/Posh-ACME" /><meta property="og:url" content="https://github.com/nimbice/Posh-ACME/blob/main/CHANGELOG.md" /><meta property="og:description" content="PowerShell module and ACME client to create certificates from Let&#39;s Encrypt (or other ACME CA) - nimbice/Posh-ACME" />
  




      <meta name="hostname" content="github.com">



        <meta name="expected-hostname" content="github.com">


  <meta http-equiv="x-pjax-version" content="d05be8f8b6905b6460fc264e80447721dfee1e32cf9e4291c4bf58f160c9f705" data-turbo-track="reload">
  <meta http-equiv="x-pjax-csp-version" content="c4a65e47b0c850e1157ae8e66298070851d7e3b558038de5a3b4ff7a93e630ed" data-turbo-track="reload">
  <meta http-equiv="x-pjax-css-version" content="a80b0545b169f440b929ce2b977c76b6988f014cca6513fb83c5df6581635fb3" data-turbo-track="reload">
  <meta http-equiv="x-pjax-js-version" content="af51c6f9d659be0324665373df3ee542f817dbd7f66f352a087935f2ceabe545" data-turbo-track="reload">

  <meta name="turbo-cache-control" content="no-preview" data-turbo-transient="">

      <meta name="turbo-cache-control" content="no-cache" data-turbo-transient>

    <meta data-hydrostats="publish">

  <meta name="go-import" content="github.com/nimbice/Posh-ACME git https://github.com/nimbice/Posh-ACME.git">

  <meta name="octolytics-dimension-user_id" content="5924799" /><meta name="octolytics-dimension-user_login" content="nimbice" /><meta name="octolytics-dimension-repository_id" content="1376820806" /><meta name="octolytics-dimension-repository_nwo" content="nimbice/Posh-ACME" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="true" /><meta name="octolytics-dimension-repository_parent_id" content="131170974" /><meta name="octolytics-dimension-repository_parent_nwo" content="rmbolger/Posh-ACME" /><meta name="octolytics-dimension-repository_network_root_id" content="131170974" /><meta name="octolytics-dimension-repository_network_root_nwo" content="rmbolger/Posh-ACME" />
  



    

    <meta name="turbo-body-classes" content="logged-out env-production page-responsive">
  <meta name="disable-turbo" content="false">


  <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">


  <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">

  <meta name="release" content="3b1bb5b10f5c7fd1769d56e38b15dfddb34052a8" data-turbo-track="reload">
  <meta name="ui-target" content="full">

  <link rel="mask-icon" href="https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg" color="#000000">
  <link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
  <link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg" data-base-href="https://github.githubassets.com/favicons/favicon">

<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark" />


  <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">

  </head>

  <body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
    <div data-turbo-body class="logged-out env-production page-responsive" style="word-wrap: break-word;" >
      <div id="__primerPortalRoot__" style="z-index: 1000; position: absolute; width: 100%;" data-turbo-permanent></div>
      

    <div class="position-relative header-wrapper js-header-wrapper ">
      <a href="#start-of-content" data-skip-target-assigned="false" class="px-2 tmp-py-4 color-bg-accent-emphasis color-fg-on-emphasis show-on-focus js-skip-to-content">Skip to content</a>

      <span data-view-component="true" class="progress-pjax-loader Progress position-fixed width-full">
    <span style="width: 0%;" data-view-component="true" class="Progress-item progress-pjax-loader-bar left-0 top-0 color-bg-accent-emphasis"></span>
</span>      
      <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/19-c660652a0a1639be.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog-47c5223d8d1af8ef.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/keyboard-shortcuts-dialog.d53d993320d57e14.module.css" />

<react-partial
  partial-name="keyboard-shortcuts-dialog"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"docsUrl":"https://docs.github.com/get-started/accessibility/keyboard-shortcuts"}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>





      

          <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/app-install-banner-partial-3c87deb7f0f20434.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/app-install-banner-partial.7b357012e82003e7.module.css" />

<react-partial
  partial-name="app-install-banner-partial"
  data-ssr="false"
  data-attempted-ssr="false"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{}}</script>
  <div data-target="react-partial.reactRoot"></div>
</react-partial>


          

                <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/et9-7eeec247c287fca4.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/94v-e20946127faa8f6e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fz5-892a9e99cc92858d.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/jag-441e702bfd4c7904.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/hw-8ce7888b57d0a23c.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/rq-0ec82a12cf538a4d.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/1m-a7a4c022483b2713.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/marketing-header-70703fe17422eb58.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-brand-css.fbc35b3d20e988ff.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/1m.fec8b575d0e5234f.module.css" />

<react-partial
  partial-name="marketing-header"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"color_mode":"dark","logged_in":false,"marketing_page":false,"home_path":"/","login_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Fnimbice%2FPosh-ACME%2Fblob%2Fmain%2FCHANGELOG.md","signup_path":"/signup?ref_cta=Sign+up\u0026ref_loc=header+logged+out\u0026ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow\u0026source=header-repo\u0026source_repo=nimbice%2FPosh-ACME","signup_enabled":true,"is_signup_controller":false,"show_search_and_nav":true,"hide_search":false,"private_mode_enabled":false,"should_use_dotcom_links":true,"auth_hydro_click":"{\"event_type\":\"authentication.click\",\"payload\":{\"location_in_page\":\"site header menu\",\"repository_id\":null,\"auth_type\":\"SIGN_UP\",\"originating_url\":\"https://github.com/nimbice/Posh-ACME/blob/main/CHANGELOG.md\",\"user_id\":null}}","auth_hydro_click_hmac":"b0357c84195fb08867c41237122a019a00535c868138e792c1999e4bb872edba","overlay":false,"fixed":false}}</script>
  <div data-target="react-partial.reactRoot"><div data-color-mode="dark" data-light-theme="light" data-dark-theme="dark"><header class="MarketingHeader-module__root__Tk7n3 HeaderMktg header-logged-out" role="banner" data-marketing-header="true" data-color-mode="dark" data-light-theme="light" data-dark-theme="dark" data-is-top="true"><h2 class="MarketingHeader-module__visuallyHidden__sqKsl">Navigation Menu</h2><button type="button" class="MarketingHeader-module__backdrop__sw4RU" aria-label="Close navigation menu"></button><div class="MarketingHeader-module__bar__mBSyE"><div class="MarketingHeader-module__topRow__yeury"><div class="MarketingHeader-module__toggleSlot__hDxbh"><button type="button" class="HeaderMenuToggle-module__toggle__i8EiC" aria-label="Toggle navigation" aria-expanded="false"><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span><span class="HeaderMenuToggle-module__toggleBar__jVN0H"></span></button></div><a href="/" aria-label="Homepage" class="HeaderLogo-module__logo__UFyHI" data-analytics-event="{&quot;action&quot;:&quot;homepage&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;logo&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;homepage_link_logo_header&quot;}"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github" viewBox="0 0 24 24" width="32" height="32" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path></svg></a><div class="AuthCTAs-module__mobileActions__NNzeV"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fnimbice%2FPosh-ACME%2Fblob%2Fmain%2FCHANGELOG.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/nimbice/Posh-ACME/blob/main/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b0357c84195fb08867c41237122a019a00535c868138e792c1999e4bb872edba"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_3dd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_3dd_">Appearance settings</div></div></div><div class="MarketingHeader-module__menu__GIy3y"><div class="MarketingHeader-module__menuWrapper__owstH"><nav class="MarketingNavigation-module__nav__W0KYY" aria-label="Global"><ul class="MarketingNavigation-module__list__tFbMb"><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_nd_">Platform<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5knd_">AI CODE CREATION</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot" data-analytics-event="{&quot;action&quot;:&quot;github_copilot&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>GitHub Copilot</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Write better code with AI</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/ai/github-app" data-analytics-event="{&quot;action&quot;:&quot;github_copilot_app&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_copilot_app_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mark-github NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.766 11.328c-2.063-.25-3.516-1.734-3.516-3.656 0-.781.281-1.625.75-2.188-.203-.515-.172-1.609.063-2.062.625-.078 1.468.25 1.968.703.594-.187 1.219-.281 1.985-.281.765 0 1.39.094 1.953.265.484-.437 1.344-.765 1.969-.687.218.422.25 1.515.046 2.047.5.593.766 1.39.766 2.203 0 1.922-1.453 3.375-3.547 3.64.531.344.89 1.094.89 1.954v1.625c0 .468.391.734.86.547C13.781 14.359 16 11.53 16 8.03 16 3.61 12.406 0 7.984 0 3.563 0 0 3.61 0 8.031a7.88 7.88 0 0 0 5.172 7.422c.422.156.828-.125.828-.547v-1.25c-.219.094-.5.156-.75.156-1.031 0-1.64-.562-2.078-1.609-.172-.422-.36-.672-.719-.719-.187-.015-.25-.093-.25-.187 0-.188.313-.328.625-.328.453 0 .844.281 1.25.86.313.452.64.655 1.031.655s.641-.14 1-.5c.266-.265.47-.5.657-.656"></path></svg>GitHub Copilot app</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Direct agents from issue to merge</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/mcp" data-analytics-event="{&quot;action&quot;:&quot;mcp_registry&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;mcp_registry_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-mcp NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.52 1.12a3.578 3.578 0 0 1 6.078 2.98 3.578 3.578 0 0 1 2.982 6.08l-3.292 3.293a.252.252 0 0 0 0 .354l.843.843a.749.749 0 1 1-1.06 1.06l-.844-.843a1.75 1.75 0 0 1 0-2.474L13.52 9.12a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0L7.731 9.03A.75.75 0 0 1 6.67 7.97l2.85-2.85a2.08 2.08 0 0 0 0-2.94 2.08 2.08 0 0 0-2.94 0l-4.799 4.8A.75.75 0 0 1 .72 5.92Z"></path><path d="M7.52 3.12a.749.749 0 1 1 1.06 1.06L5.731 7.03A2.079 2.079 0 0 0 8.67 9.97l2.85-2.85a.749.749 0 1 1 1.06 1.06l-2.849 2.85A3.578 3.578 0 0 1 4.67 5.97Z"></path></svg>MCP Registry</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Integrate external tools</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9knd_">DEVELOPER WORKFLOWS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9knd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/actions" data-analytics-event="{&quot;action&quot;:&quot;actions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;actions_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-workflow NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h3.5C6.216 0 7 .784 7 1.75v3.5A1.75 1.75 0 0 1 5.25 7H4v4a1 1 0 0 0 1 1h4v-1.25C9 9.784 9.784 9 10.75 9h3.5c.966 0 1.75.784 1.75 1.75v3.5A1.75 1.75 0 0 1 14.25 16h-3.5A1.75 1.75 0 0 1 9 14.25v-.75H5A2.5 2.5 0 0 1 2.5 11V7h-.75A1.75 1.75 0 0 1 0 5.25Zm1.75-.25a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Zm9 9a.25.25 0 0 0-.25.25v3.5c0 .138.112.25.25.25h3.5a.25.25 0 0 0 .25-.25v-3.5a.25.25 0 0 0-.25-.25Z"></path></svg>Actions</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Automate any workflow</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/codespaces" data-analytics-event="{&quot;action&quot;:&quot;codespaces&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;codespaces_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codespaces NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>Codespaces</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Instant dev environments</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/issues" data-analytics-event="{&quot;action&quot;:&quot;issues&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;issues_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-issue-opened NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Z"></path></svg>Issues</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Plan and track work</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-review" data-analytics-event="{&quot;action&quot;:&quot;code_review&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_review_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>Code Review</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Manage code changes</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/code-quality" data-analytics-event="{&quot;action&quot;:&quot;code_quality&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_quality_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-codescan-checkmark NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.28 6.28a.75.75 0 1 0-1.06-1.06L6.25 8.19l-.97-.97a.75.75 0 0 0-1.06 1.06l1.5 1.5a.75.75 0 0 0 1.06 0l3.5-3.5Z"></path><path d="M7.5 15a7.5 7.5 0 1 1 5.807-2.754l2.473 2.474a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2.474-2.473A7.472 7.472 0 0 1 7.5 15Zm0-13.5a6 6 0 1 0 4.094 10.386.748.748 0 0 1 .293-.292 6.002 6.002 0 0 0 1.117-6.486A6.002 6.002 0 0 0 7.5 1.5Z"></path></svg>Code Quality</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enforce quality at merge</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dknd_">APPLICATION SECURITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Find and fix vulnerabilities</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/code-security" data-analytics-event="{&quot;action&quot;:&quot;code_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;code_security_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code-square NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>Code security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Secure your code as you build</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security/secret-protection" data-analytics-event="{&quot;action&quot;:&quot;secret_protection&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;secret_protection_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-lock NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M4 4a4 4 0 0 1 8 0v2h.25c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 12.25 15h-8.5A1.75 1.75 0 0 1 2 13.25v-5.5C2 6.784 2.784 6 3.75 6H4Zm8.25 3.5h-8.5a.25.25 0 0 0-.25.25v5.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25ZM10.5 6V4a2.5 2.5 0 1 0-5 0v2Z"></path></svg>Secret protection</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Stop leaks before they start</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ NavGroup-module__hasSeparator__FnMrN"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_hknd_">EXPLORE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_hknd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/why-github" data-analytics-event="{&quot;action&quot;:&quot;why_github&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;why_github_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Why GitHub</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog" data-analytics-event="{&quot;action&quot;:&quot;blog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;blog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Blog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://github.blog/changelog" data-analytics-event="{&quot;action&quot;:&quot;changelog&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;changelog_link_platform_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Changelog</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/marketplace" data-analytics-event="{&quot;action&quot;:&quot;marketplace&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;marketplace_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Marketplace</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/features" data-analytics-event="{&quot;action&quot;:&quot;view_all_features&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;platform&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_features_link_platform_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all features</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_17d_">Solutions<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_17d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5l7d_">BY COMPANY SIZE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprises&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprises_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Enterprises</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/team" data-analytics-event="{&quot;action&quot;:&quot;small_and_medium_teams&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;small_and_medium_teams_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Small and medium teams</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/enterprise/startups" data-analytics-event="{&quot;action&quot;:&quot;startups&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;startups_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Startups</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/nonprofits" data-analytics-event="{&quot;action&quot;:&quot;nonprofits&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;nonprofits_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Nonprofits</span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9l7d_">BY USE CASE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9l7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/app-modernization" data-analytics-event="{&quot;action&quot;:&quot;app_modernization&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;app_modernization_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">App Modernization</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devsecops" data-analytics-event="{&quot;action&quot;:&quot;devsecops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devsecops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevSecOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/use-case/ci-cd" data-analytics-event="{&quot;action&quot;:&quot;ci/cd&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ci/cd_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">CI/CD</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/use-case" data-analytics-event="{&quot;action&quot;:&quot;view_all_use_cases&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_use_cases_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all use cases</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dl7d_">BY INDUSTRY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dl7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/healthcare" data-analytics-event="{&quot;action&quot;:&quot;healthcare&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;healthcare_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Healthcare</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/financial-services" data-analytics-event="{&quot;action&quot;:&quot;financial_services&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;financial_services_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Financial services</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/manufacturing" data-analytics-event="{&quot;action&quot;:&quot;manufacturing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;manufacturing_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Manufacturing</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/industry/government" data-analytics-event="{&quot;action&quot;:&quot;government&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;government_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Government</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions/industry" data-analytics-event="{&quot;action&quot;:&quot;view_all_industries&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_industries_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all industries</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/solutions" data-analytics-event="{&quot;action&quot;:&quot;view_all_solutions&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;solutions&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_solutions_link_solutions_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all solutions</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_1nd_">Resources<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_1nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5lnd_">EXPLORE BY TOPIC</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=ai" data-analytics-event="{&quot;action&quot;:&quot;ai&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ai_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">AI</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=software-development" data-analytics-event="{&quot;action&quot;:&quot;software_development&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;software_development_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Software Development</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=devops" data-analytics-event="{&quot;action&quot;:&quot;devops&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;devops_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">DevOps</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/articles?topic=security" data-analytics-event="{&quot;action&quot;:&quot;security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources/articles" data-analytics-event="{&quot;action&quot;:&quot;view_all_topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_topics_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all topics</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9lnd_">EXPLORE BY TYPE</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9lnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/customer-stories" data-analytics-event="{&quot;action&quot;:&quot;customer_stories&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_stories_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer stories</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/events" data-analytics-event="{&quot;action&quot;:&quot;events__webinars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;events__webinars_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Events &amp; webinars</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/resources/whitepapers" data-analytics-event="{&quot;action&quot;:&quot;ebooks__reports&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;ebooks__reports_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Ebooks &amp; reports</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/solutions/executive-insights" data-analytics-event="{&quot;action&quot;:&quot;business_insights&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;business_insights_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Business insights</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://skills.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_skills&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_skills_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Skills</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dlnd_">SUPPORT &amp; SERVICES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dlnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://docs.github.com" data-analytics-event="{&quot;action&quot;:&quot;documentation&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;documentation_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Documentation</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://support.github.com" data-analytics-event="{&quot;action&quot;:&quot;customer_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;customer_support_link_resources_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Customer support</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/orgs/community/discussions" data-analytics-event="{&quot;action&quot;:&quot;community_forum&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;community_forum_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Community forum</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trust-center" data-analytics-event="{&quot;action&quot;:&quot;trust_center&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trust_center_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trust center</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/partners" data-analytics-event="{&quot;action&quot;:&quot;partners&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;partners_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Partners</span></a></li></ul></div></li></ul><div class="NavDropdown-module__trailingLinkContainer__VgJGL"><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--arrow-end___esdN8" href="https://github.com/resources" data-analytics-event="{&quot;action&quot;:&quot;view_all_resources&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;resources&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;view_all_resources_link_resources_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">View all resources</span><svg class="Primer_Brand__ExpandableArrow-module__ExpandableArrow___aaZs9 Primer_Brand__Link-module__Link-arrow___yd78i" width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path fill="currentColor" d="M7.28033 3.21967C6.98744 2.92678 6.51256 2.92678 6.21967 3.21967C5.92678 3.51256 5.92678 3.98744 6.21967 4.28033L7.28033 3.21967ZM11 8L11.5303 8.53033C11.8232 8.23744 11.8232 7.76256 11.5303 7.46967L11 8ZM6.21967 11.7197C5.92678 12.0126 5.92678 12.4874 6.21967 12.7803C6.51256 13.0732 6.98744 13.0732 7.28033 12.7803L6.21967 11.7197ZM6.21967 4.28033L10.4697 8.53033L11.5303 7.46967L7.28033 3.21967L6.21967 4.28033ZM10.4697 7.46967L6.21967 11.7197L7.28033 12.7803L11.5303 8.53033L10.4697 7.46967Z"></path><path class="Primer_Brand__ExpandableArrow-module__ExpandableArrow-stem___0K8Hz" stroke="currentColor" d="M1.75 8H11" stroke-width="1.5" stroke-linecap="round"></path></svg></a></div></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_27d_">Open Source<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_27d_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5m7d_">COMMUNITY</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/open-source/sponsors" data-analytics-event="{&quot;action&quot;:&quot;github_sponsors&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_sponsors_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sponsor-tiers NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.586 1C12.268 1 13.5 2.37 13.5 4.25c0 1.745-.996 3.359-2.622 4.831-.166.15-.336.297-.509.438l1.116 5.584a.75.75 0 0 1-.991.852l-2.409-.876a.25.25 0 0 0-.17 0l-2.409.876a.75.75 0 0 1-.991-.852L5.63 9.519a13.78 13.78 0 0 1-.51-.438C3.497 7.609 2.5 5.995 2.5 4.25 2.5 2.37 3.732 1 5.414 1c.963 0 1.843.403 2.474 1.073L8 2.198l.112-.125a3.385 3.385 0 0 1 2.283-1.068L10.586 1Zm-3.621 9.495-.718 3.594 1.155-.42a1.75 1.75 0 0 1 1.028-.051l.168.051 1.154.42-.718-3.592c-.199.13-.37.235-.505.314l-.169.097a.75.75 0 0 1-.72 0 9.54 9.54 0 0 1-.515-.308l-.16-.105ZM10.586 2.5c-.863 0-1.611.58-1.866 1.459-.209.721-1.231.721-1.44 0C7.025 3.08 6.277 2.5 5.414 2.5 4.598 2.5 4 3.165 4 4.25c0 1.23.786 2.504 2.128 3.719.49.443 1.018.846 1.546 1.198l.325.21.076-.047.251-.163a13.341 13.341 0 0 0 1.546-1.198C11.214 6.754 12 5.479 12 4.25c0-1.085-.598-1.75-1.414-1.75Z"></path></svg>GitHub Sponsors</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Fund open source developers</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9m7d_">PROGRAMS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9m7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://securitylab.github.com" data-analytics-event="{&quot;action&quot;:&quot;security_lab&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;security_lab_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Security Lab</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://maintainers.github.com" data-analytics-event="{&quot;action&quot;:&quot;maintainer_community&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;maintainer_community_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Maintainer Community</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://stars.github.com" data-analytics-event="{&quot;action&quot;:&quot;github_stars&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_stars_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">GitHub Stars</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 Primer_Brand__Link-module__Link--is-external___xsncV" href="https://archiveprogram.github.com" data-analytics-event="{&quot;action&quot;:&quot;archive_program&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;archive_program_link_open_source_navbar&quot;}" target="_blank" rel="noreferrer"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Archive Program</span><svg data-component="Octicon" focusable="false" aria-label="External link" class="octicon octicon-link-external" role="img" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z"></path></svg></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_dm7d_">REPOSITORIES</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_dm7d_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/topics" data-analytics-event="{&quot;action&quot;:&quot;topics&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;topics_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Topics</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/trending" data-analytics-event="{&quot;action&quot;:&quot;trending&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;trending_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Trending</span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0" href="https://github.com/collections" data-analytics-event="{&quot;action&quot;:&quot;collections&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;open_source&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;collections_link_open_source_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty">Collections</span></a></li></ul></div></li></ul></div></div></li><li><div class="NavDropdown-module__container__l2YeI"><button type="button" class="NavDropdown-module__button__PEHWX" aria-expanded="false" aria-controls="_R_2nd_">Enterprise<svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-right NavDropdown-module__buttonIcon__Tkl8_" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m6.427 4.427 3.396 3.396a.25.25 0 0 1 0 .354l-3.396 3.396A.25.25 0 0 1 6 11.396V4.604a.25.25 0 0 1 .427-.177Z"></path></svg></button><div id="_R_2nd_" class="NavDropdown-module__dropdown__xm1jd"><ul class="NavDropdown-module__list__zuCgG"><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_5mnd_">ENTERPRISE SOLUTIONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_5mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise" data-analytics-event="{&quot;action&quot;:&quot;enterprise_platform&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;enterprise_platform_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-stack NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.122.392a1.75 1.75 0 0 1 1.756 0l5.003 2.902c.83.481.83 1.68 0 2.162L8.878 8.358a1.75 1.75 0 0 1-1.756 0L2.119 5.456a1.251 1.251 0 0 1 0-2.162ZM8.125 1.69a.248.248 0 0 0-.25 0l-4.63 2.685 4.63 2.685a.248.248 0 0 0 .25 0l4.63-2.685ZM1.601 7.789a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0L1.874 8.814A.75.75 0 0 1 1.6 7.789Zm0 3.5a.75.75 0 0 1 1.025-.273l5.249 3.044a.248.248 0 0 0 .25 0l5.249-3.044a.75.75 0 0 1 .752 1.298l-5.248 3.044a1.75 1.75 0 0 1-1.756 0l-5.248-3.044a.75.75 0 0 1-.273-1.025Z"></path></svg>Enterprise platform</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">AI-powered developer platform</span></span></a></li></ul></div></li><li><div class="NavGroup-module__group__W8SqJ"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--monospace___QXHDQ Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavGroup-module__title__Wzxz2" id="_R_9mnd_">AVAILABLE ADD-ONS</span><ul class="NavGroup-module__list__UCOFy" aria-labelledby="_R_9mnd_"><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/security/advanced-security" data-analytics-event="{&quot;action&quot;:&quot;github_advanced_security&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;github_advanced_security_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield-check NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m8.533.133 5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667l5.25-1.68a1.748 1.748 0 0 1 1.066 0Zm-.61 1.429.001.001-5.25 1.68a.251.251 0 0 0-.174.237V7c0 1.36.275 2.666 1.057 3.859.784 1.194 2.121 2.342 4.366 3.298a.196.196 0 0 0 .154 0c2.245-.957 3.582-2.103 4.366-3.297C13.225 9.666 13.5 8.358 13.5 7V3.48a.25.25 0 0 0-.174-.238l-5.25-1.68a.25.25 0 0 0-.153 0ZM11.28 6.28l-3.5 3.5a.75.75 0 0 1-1.06 0l-1.5-1.5a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l.97.97 2.97-2.97a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg>GitHub Advanced Security</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade security features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/features/copilot/copilot-business" data-analytics-event="{&quot;action&quot;:&quot;copilot_for_business&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;copilot_for_business_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copilot NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>Copilot for Business</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade AI features</span></span></a></li><li><a class="Primer_Brand__Link-module__Link___lF11y Primer_Brand__Link-module__Link--default___VRVW0 NavLink-module__link__EG3d4" href="https://github.com/enterprise/premium-support" data-analytics-event="{&quot;action&quot;:&quot;premium_support&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;enterprise&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;premium_support_link_enterprise_navbar&quot;}"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Link-module__Link--label___jM8Ty"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS Primer_Brand__Text-module__Text--weight-medium___qJKf_ NavLink-module__title__Q7t0p"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-comment-discussion NavLink-module__icon__ltGNM" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.75 1h8.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 10.25 10H7.061l-2.574 2.573A1.458 1.458 0 0 1 2 11.543V10h-.25A1.75 1.75 0 0 1 0 8.25v-5.5C0 1.784.784 1 1.75 1ZM1.5 2.75v5.5c0 .138.112.25.25.25h1a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h3.5a.25.25 0 0 0 .25-.25v-5.5a.25.25 0 0 0-.25-.25h-8.5a.25.25 0 0 0-.25.25Zm13 2a.25.25 0 0 0-.25-.25h-.5a.75.75 0 0 1 0-1.5h.5c.966 0 1.75.784 1.75 1.75v5.5A1.75 1.75 0 0 1 14.25 12H14v1.543a1.458 1.458 0 0 1-2.487 1.03L9.22 12.28a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215l2.22 2.22v-2.19a.75.75 0 0 1 .75-.75h1a.25.25 0 0 0 .25-.25Z"></path></svg>Premium Support</span><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--muted___rE6mh Primer_Brand__Text-module__Text--200____P1wy Primer_Brand__Text-module__Text--antialiased___TYoXS NavLink-module__subtitle__X4gkW">Enterprise-grade 24/7 support</span></span></a></li></ul></div></li></ul></div></div></li><li><a href="https://github.com/pricing" data-analytics-event="{&quot;action&quot;:&quot;pricing&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;pricing&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;pricing_link_pricing_navbar&quot;}" class="MarketingNavigation-module__navLink__hUomM">Pricing</a></li></ul></nav><div class="MarketingHeader-module__ctaContainer__tBmPz"><div class="HeaderSearch-module__searchSlot__oVOUS"><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderSearch-module__trigger__zsF9q" type="button" aria-haspopup="dialog" aria-expanded="false" aria-label="Search or jump to, type / to search" data-analytics-event="{&quot;action&quot;:&quot;searchbar&quot;,&quot;tag&quot;:&quot;input&quot;,&quot;context&quot;:&quot;global&quot;,&quot;location&quot;:&quot;navbar&quot;,&quot;label&quot;:&quot;searchbar_input_global_navbar&quot;}"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"><span class="HeaderSearch-module__content__kMpxU"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search HeaderSearch-module__icon__wcrHX" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg><span class="HeaderSearch-module__label__d1iWG">Search</span><kbd class="HeaderSearch-module__kbd__HNG0o" aria-hidden="true">/</kbd></span></span></span></button><div class="d-none"></div></div><div class="AuthCTAs-module__signInWrap__q2P60"><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq AuthCTAs-module__desktopActionGap__UZuXT AuthCTAs-module__hiddenBelowLg__BfKBw" href="/login?return_to=https%3A%2F%2Fgithub.com%2Fnimbice%2FPosh-ACME%2Fblob%2Fmain%2FCHANGELOG.md" data-analytics-event="{&quot;action&quot;:&quot;sign_in&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_in_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/nimbice/Posh-ACME/blob/main/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b0357c84195fb08867c41237122a019a00535c868138e792c1999e4bb872edba"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH">Sign in</span></span></a></div><a class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--secondary___gHnw_ Primer_Brand__Button-module__Button--size-small___zQrEw AuthCTAs-module__cta__WpwQq" href="/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fblob%2Fshow&amp;source=header-repo&amp;source_repo=nimbice%2FPosh-ACME" data-analytics-event="{&quot;action&quot;:&quot;sign_up&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;context&quot;:&quot;auth_cta&quot;,&quot;location&quot;:&quot;header&quot;,&quot;label&quot;:&quot;sign_up_link_auth_cta_header&quot;}" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;originating_url&quot;:&quot;https://github.com/nimbice/Posh-ACME/blob/main/CHANGELOG.md&quot;,&quot;user_id&quot;:null}}" data-hydro-click-hmac="b0357c84195fb08867c41237122a019a00535c868138e792c1999e4bb872edba"><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-secondary___eJ0_a">Sign up</span></span></a><button class="Primer_Brand__Button-module__Button___scH9Z Primer_Brand__Button-module__Button--subtle___F7pEE Primer_Brand__Button-module__Button--size-small___zQrEw HeaderAppearanceSettings-module__trigger__hUheK" type="button" aria-haspopup="dialog" aria-labelledby="_R_fbd_"><span class="Primer_Brand__Button-module__Button__leading-visual___jjtTe" data-testid="Button-leading-visual"><svg data-component="Octicon" focusable="false" aria-hidden="true" class="octicon octicon-sliders Primer_Brand__Button-module__Button__icon-visual____qybb" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M15 2.75a.75.75 0 0 1-.75.75h-4a.75.75 0 0 1 0-1.5h4a.75.75 0 0 1 .75.75Zm-8.5.75v1.25a.75.75 0 0 0 1.5 0v-4a.75.75 0 0 0-1.5 0V2H1.75a.75.75 0 0 0 0 1.5H6.5Zm1.25 5.25a.75.75 0 0 0 0-1.5h-6a.75.75 0 0 0 0 1.5h6ZM15 8a.75.75 0 0 1-.75.75H11.5V10a.75.75 0 1 1-1.5 0V6a.75.75 0 0 1 1.5 0v1.25h2.75A.75.75 0 0 1 15 8Zm-9 5.25v-2a.75.75 0 0 0-1.5 0v1.25H1.75a.75.75 0 0 0 0 1.5H4.5v1.25a.75.75 0 0 0 1.5 0v-2Zm9 0a.75.75 0 0 1-.75.75h-6a.75.75 0 0 1 0-1.5h6a.75.75 0 0 1 .75.75Z"></path></svg></span><span class="Primer_Brand__Button-module__Button__text___ED0bX"><span class="Primer_Brand__Text-module__Text___XeGJJ Primer_Brand__Text-module__Text-font--mona-sans___a8XJD Primer_Brand__Text-module__Text--default___GhPh_ Primer_Brand__Text-module__Text--100___B2ueX Primer_Brand__Text-module__Text--weight-medium___qJKf_ Primer_Brand__Button-module__Button--label___qrkyz Primer_Brand__Button-module__Button--label-subtle___8ndWH"></span></span></button><div class="Primer_Brand__Tooltip-module__Tooltip___0Eipx" data-direction="s" aria-hidden="true" id="_R_fbd_">Appearance settings</div></div></div></div></div><div class="MarketingHeader-module__bottomBorder__uZT38" aria-hidden="true"></div></header></div></div>
</react-partial>



      <div hidden="hidden" data-view-component="true" class="js-stale-session-flash stale-session-flash flash flash-warn flash-full">
  
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
        <span class="js-stale-session-flash-signed-in" hidden>You signed in with another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-signed-out" hidden>You signed out in another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>
        <span class="js-stale-session-flash-switched" hidden>You switched accounts on another tab or window. <a class="Link--inTextBlock" href="">Reload</a> to refresh your session.</span>

    <button id="icon-button-9388880a-5a05-4af8-86c5-f24e293876e0" aria-labelledby="tooltip-211f3a7d-c3c1-4110-b631-c947bf4560c7" type="button" data-view-component="true" class="Button Button--iconOnly Button--invisible Button--medium flash-close js-flash-close">  <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x Button-visual">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
</button><tool-tip id="tooltip-211f3a7d-c3c1-4110-b631-c947bf4560c7" for="icon-button-9388880a-5a05-4af8-86c5-f24e293876e0" popover="manual" data-direction="s" data-type="label" data-view-component="true" class="sr-only position-absolute">Dismiss alert</tool-tip>


  
</div>
    </div>

  <div id="start-of-content" class="show-on-focus"></div>








    <div id="js-flash-container" class="flash-container" data-turbo-replace>






  <template class="js-flash-template">
    
<div class="flash flash-full   {{ className }}">
  <div >
    <button autofocus class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    <div aria-atomic="true" role="alert" class="js-flash-alert">
      
      <div>{{ message }}</div>

    </div>
  </div>
</div>
  </template>
</div>


    






  <div
    class="application-main "
    data-commit-hovercards-enabled
    data-discussion-hovercards-enabled
    data-issue-and-pr-hovercards-enabled
    data-project-hovercards-enabled
  >
        <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
    <main id="js-repo-pjax-container" >
      
      








  

    <link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ym-6bc2c9bf8112c038.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/sk2-8deeef9351be3911.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/ni-3e194d222c7770bf.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/7x-71d30cb240cd901f.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wwk-ad869086822937b1.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a1-9f79841ecac1da8e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/wzg-40a3213b3e83400b.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/5f-64f8e7d5bcbd4787.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/z5-b53a93078d026f1e.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/8h-cef26f68c1331011.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/fq-3ce13a77e863807a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/a7-596b507bd20acddc.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/xfx-c82d8352413aea0a.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/j4-b3a9e87fa7878a98.js" fetchpriority="low" />
<link crossorigin="anonymous" rel="modulepreload" href="https://github.githubassets.com/assets/global-nav-bar-29c7aef68ee9db41.js" fetchpriority="low" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/primer-react-css.2d881b4d4a503d1c.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/pj.75627bfeb9ceb1da.module.css" />
<link crossorigin="anonymous" media="all" rel="stylesheet" href="https://github.githubassets.com/assets/global-nav-bar.2f2560cba06ab359.module.css" />

<react-partial
  partial-name="global-nav-bar"
  data-ssr="true"
  data-attempted-ssr="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-partial.embeddedData">{"props":{"contextRegion":{"crumbs":[{"crumb_type":"user","label":"nimbice","is_root":false,"href":"/nimbice"},{"crumb_type":"repository","label":"Posh-ACME","is_root":false,"octicon":"repo-forked","href":"/nimbice/Posh-ACME"}],"localNavigation":[{"id":"code","icon":"code","label":"Code","href":"/nimbice/Posh-ACME","selectedLinks":["repo_source","repo_downloads","repo_commits","repo_releases","repo_tags","repo_branches","repo_packages","repo_deployments","repo_attestations"],"popoverTarget":false,"commandId":"repositories:go-to-code","reactNav":{"appTarget":"code-view","anchor":"code-view-repo-link"},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"pull-requests","icon":"git-pull-request","label":"Pull requests","href":"/nimbice/Posh-ACME/pulls","selectedLinks":["repo_pulls","checks"],"count":0,"popoverTarget":false,"commandId":"repositories:go-to-pull-requests","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"actions","icon":"play","label":"Actions","href":"/nimbice/Posh-ACME/actions","selectedLinks":["repo_actions"],"popoverTarget":false,"commandId":"repositories:go-to-actions","reactNav":{"appTarget":"actions-workflows","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"projects","icon":"table","label":"Projects","href":"/nimbice/Posh-ACME/projects","selectedLinks":["repo_projects","new_repo_project","repo_project"],"popoverTarget":false,"commandId":"repositories:go-to-projects","reactNav":{"appTarget":"repo","anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"security-and-quality","icon":"shield","label":"Security and quality","href":"/nimbice/Posh-ACME/security","selectedLinks":["security","overview","alerts","policy","token_scanning","code_scanning"],"count":0,"popoverTarget":false,"commandId":"repositories:go-to-security","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}},{"id":"insights","icon":"graph","label":"Insights","href":"/nimbice/Posh-ACME/pulse","selectedLinks":["repo_graphs","repo_contributors","dependency_graph","dependabot_updates","pulse","people","community"],"popoverTarget":false,"commandId":"repositories:go-to-insights","reactNav":{"appTarget":null,"anchor":null},"turboNav":{"frame":"repo-content-turbo-frame"}}],"localNavigationUpdateChannel":null,"selectedLink":"repo_source"},"owner":null,"headerLogo":{"href":"/","aria-label":"Homepage "},"notifications":{"indicatorMode":"disabled","websocketChannel":null,"fetchIndicatorSrc":"/notifications/indicator","fetchIndicatorEnabled":false},"issues":{"href":"/issues"},"pulls":{"href":"/pulls"},"contributedRepos":{"href":"/repos"},"copilot":{"show":false,"showAgentsButton":false,"showRelaunchAnnouncement":false,"copilotChatUrl":null,"copilotApiUrl":"https://api.githubcopilot.com"},"search":{"show":true,"showCommandPalette":false,"isSearchPage":false,"isJumpToSearch":false,"searchContext":{"scope":"repo:nimbice/Posh-ACME","current_repo_name":"Posh-ACME","current_repo_nwo":"nimbice/Posh-ACME","user_id":"nimbice"}},"commandPalette":null,"enterpriseBar":{"show":false},"globalTransactionalMessage":[],"payloadsUrl":"/_global-navigation/payloads.json?can_toggle_site_admin_and_employee_status=0\u0026is_admin_mode_on=0\u0026is_ui_opted_out=0\u0026show_ui_opt_out=0\u0026v=7","contextRegionUrl":"/_global-navigation/context-region.json"}}</script>
  <div data-target="react-partial.reactRoot"><header aria-label="Global navigation menu" data-component="Stack" class="GlobalNav styles-module__appHeader__YzYWk prc-Stack-Stack-UQ9k6" data-gap="none" data-direction="vertical" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="none"><div data-component="Stack" class="prc-Stack-Stack-UQ9k6" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="center" data-padding="none"><div data-testid="top-nav-center" data-component="Stack" class="styles-module__center__R3QRv styles-module__withLocalNavigation__rjTJ_ GlobalNavBar-module__loggedOut__Jv1rk prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="stretch" data-wrap="nowrap" data-justify="start" data-padding="normal"><nav class="styles-module__contextRegion__VbSp2 prc-Breadcrumbs-BreadcrumbsBase-3Gb-B" aria-label="Breadcrumbs" data-overflow="menu" data-variant="normal" data-component="Breadcrumbs"><ol class="prc-Breadcrumbs-BreadcrumbsList-BKjpe"><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/nimbice" data-discover="true"><span class="">nimbice</span></a></li><li class="prc-Breadcrumbs-ItemWrapper-k0NLn"><a class="styles-module__contextCrumb__IzGIq prc-Breadcrumbs-Item-jcraJ" data-component="Breadcrumbs.Item" href="/nimbice/Posh-ACME" data-discover="true"><span class="styles-module__contextCrumbLast__tI2e3">Posh-ACME</span><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-repo-forked styles-module__trailingIcon__sCKDh" viewBox="0 0 16 16" width="12" height="12" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path></svg></a></li></ol></nav></div><div data-testid="top-nav-right" data-component="Stack" class="styles-module__right__mlBQg styles-module__withLocalNavigation__rjTJ_ styles-module__rightWithResponsiveCreateButton__SKn2W prc-Stack-Stack-UQ9k6" data-gap="condensed" data-direction="horizontal" data-align="center" data-wrap="nowrap" data-justify="start" data-padding="normal"></div></div><h2 class="prc-src-InternalVisuallyHidden-2YaI6">Repository navigation</h2><nav class="prc-components-UnderlineWrapper-eT-Yj prc-UnderlineNav-UnderlineWrapper-GWONT LocalNavigation-module__LocalNavigation__b0Xc0" aria-label="Repository" data-variant="inset" data-overflow-mode="wrap" data-hide-icons-breakpoint="medium"><ul class="prc-UnderlineNav-ItemsList-oj8gN prc-components-UnderlineItemList-xKlKC" role="list"><li role="presentation" aria-hidden="true" class="prc-UnderlineNav-WrapSpacer--aLgz"></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a aria-current="page" data-tab-item="code" data-react-nav="code-view" data-react-nav-anchor="code-view-repo-link" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/nimbice/Posh-ACME" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-code" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg></span><span data-component="text" data-content="Code">Code</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="pull-requests" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/nimbice/Posh-ACME/pulls" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-pull-request" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 3.25a2.25 2.25 0 1 1 3 2.122v5.256a2.251 2.251 0 1 1-1.5 0V5.372A2.25 2.25 0 0 1 1.5 3.25Zm5.677-.177L9.573.677A.25.25 0 0 1 10 .854V2.5h1A2.5 2.5 0 0 1 13.5 5v5.628a2.251 2.251 0 1 1-1.5 0V5a1 1 0 0 0-1-1h-1v1.646a.25.25 0 0 1-.427.177L7.177 3.427a.25.25 0 0 1 0-.354ZM3.75 2.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm0 9.5a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Zm8.25.75a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Z"></path></svg></span><span data-component="text" data-content="Pull requests">Pull requests</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="actions" data-react-nav="actions-workflows" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/nimbice/Posh-ACME/actions" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-play" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg></span><span data-component="text" data-content="Actions">Actions</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="projects" data-react-nav="repo" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/nimbice/Posh-ACME/projects" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-table" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25ZM6.5 6.5v8h7.75a.25.25 0 0 0 .25-.25V6.5Zm8-1.5V1.75a.25.25 0 0 0-.25-.25H6.5V5Zm-13 1.5v7.75c0 .138.112.25.25.25H5v-8ZM5 5V1.5H1.75a.25.25 0 0 0-.25.25V5Z"></path></svg></span><span data-component="text" data-content="Projects">Projects</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="security-and-quality" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/nimbice/Posh-ACME/security" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-shield" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg></span><span data-component="text" data-content="Security and quality">Security and quality</span></a></li><li class="prc-UnderlineNav-UnderlineNavItem-syRjR"><a data-tab-item="insights" data-turbo-frame="repo-content-turbo-frame" class="prc-components-UnderlineItem-7fP-n" href="/nimbice/Posh-ACME/pulse" data-discover="true"><span data-component="icon"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-graph" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M1.5 1.75V13.5h13.75a.75.75 0 0 1 0 1.5H.75a.75.75 0 0 1-.75-.75V1.75a.75.75 0 0 1 1.5 0Zm14.28 2.53-5.25 5.25a.75.75 0 0 1-1.06 0L7 7.06 4.28 9.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.25-3.25a.75.75 0 0 1 1.06 0L10 7.94l4.72-4.72a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z"></path></svg></span><span data-component="text" data-content="Insights">Insights</span></a></li></ul><div class="prc-UnderlineNav-MoreButtonContainer-Dnrq6"><div class="prc-UnderlineNav-MoreButtonDivider-dN0a-"></div><button data-component="overflow-menu-button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk prc-UnderlineNav-MoreButton-Y8soj" data-loading="false" data-size="medium" data-variant="invisible" id="_R_2ktp_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3"><span>More<span class="prc-src-InternalVisuallyHidden-2YaI6"> items</span></span></span></span><span data-component="trailingAction" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></button></div></nav><div class="d-none"></div></header></div>
</react-partial>


  



<turbo-frame id="repo-content-turbo-frame" target="_top" data-turbo-action="advance" class="">
    <div id="repo-content-pjax-container" class="repository-content " >
    



    
      
    








<react-app
  app-name="code-view"
  initial-path="/nimbice/Posh-ACME/blob/main/CHANGELOG.md"
  style="display: block; min-height: calc(100vh - 64px);"
  data-attempted-ssr="true"
  data-ssr="true"
  data-lazy="false"
  data-alternate="false"
  data-data-router-enabled="true"
  data-react-profiling="false"
>
  
  <script type="application/json" data-target="react-app.embeddedData">{"payload":{"codeViewBlobRoute":{"csv":null,"csvError":null,"headerInfo":{"toc":[{"level":2,"text":"4.34.0 (2026-08-23)","anchor":"4340-2026-08-23","htmlText":"4.34.0 (2026-08-23)"},{"level":2,"text":"4.33.1 (2026-06-16)","anchor":"4331-2026-06-16","htmlText":"4.33.1 (2026-06-16)"},{"level":2,"text":"4.33.0 (2026-06-09)","anchor":"4330-2026-06-09","htmlText":"4.33.0 (2026-06-09)"},{"level":2,"text":"4.32.0 (2026-03-29)","anchor":"4320-2026-03-29","htmlText":"4.32.0 (2026-03-29)"},{"level":3,"text":"Potentially Breaking Change","anchor":"potentially-breaking-change","htmlText":"Potentially Breaking Change"},{"level":2,"text":"4.31.1 (2026-02-07)","anchor":"4311-2026-02-07","htmlText":"4.31.1 (2026-02-07)"},{"level":2,"text":"4.31.0 (2026-01-21)","anchor":"4310-2026-01-21","htmlText":"4.31.0 (2026-01-21)"},{"level":2,"text":"4.30.1 (2025-11-18)","anchor":"4301-2025-11-18","htmlText":"4.30.1 (2025-11-18)"},{"level":2,"text":"4.30.0 (2025-11-13)","anchor":"4300-2025-11-13","htmlText":"4.30.0 (2025-11-13)"},{"level":2,"text":"4.29.3 (2025-07-24)","anchor":"4293-2025-07-24","htmlText":"4.29.3 (2025-07-24)"},{"level":2,"text":"4.29.2 (2025-07-15)","anchor":"4292-2025-07-15","htmlText":"4.29.2 (2025-07-15)"},{"level":2,"text":"4.29.1 (2025-06-26)","anchor":"4291-2025-06-26","htmlText":"4.29.1 (2025-06-26)"},{"level":2,"text":"4.29.0 (2025-06-25)","anchor":"4290-2025-06-25","htmlText":"4.29.0 (2025-06-25)"},{"level":2,"text":"4.28.0 (2025-02-08)","anchor":"4280-2025-02-08","htmlText":"4.28.0 (2025-02-08)"},{"level":2,"text":"4.27.0 (2025-01-08)","anchor":"4270-2025-01-08","htmlText":"4.27.0 (2025-01-08)"},{"level":2,"text":"4.26.0 (2024-11-01)","anchor":"4260-2024-11-01","htmlText":"4.26.0 (2024-11-01)"},{"level":2,"text":"4.25.1 (2024-09-02)","anchor":"4251-2024-09-02","htmlText":"4.25.1 (2024-09-02)"},{"level":2,"text":"4.25.0 (2024-08-18)","anchor":"4250-2024-08-18","htmlText":"4.25.0 (2024-08-18)"},{"level":2,"text":"4.24.0 (2024-06-19)","anchor":"4240-2024-06-19","htmlText":"4.24.0 (2024-06-19)"},{"level":2,"text":"4.23.1 (2024-05-23)","anchor":"4231-2024-05-23","htmlText":"4.23.1 (2024-05-23)"},{"level":2,"text":"4.23.0 (2024-05-04)","anchor":"4230-2024-05-04","htmlText":"4.23.0 (2024-05-04)"},{"level":2,"text":"4.22.0 (2024-04-12)","anchor":"4220-2024-04-12","htmlText":"4.22.0 (2024-04-12)"},{"level":2,"text":"4.21.0 (2024-03-08)","anchor":"4210-2024-03-08","htmlText":"4.21.0 (2024-03-08)"},{"level":2,"text":"4.20.0 (2023-12-12)","anchor":"4200-2023-12-12","htmlText":"4.20.0 (2023-12-12)"},{"level":2,"text":"4.19.0 (2023-08-26)","anchor":"4190-2023-08-26","htmlText":"4.19.0 (2023-08-26)"},{"level":2,"text":"4.18.0 (2023-06-28)","anchor":"4180-2023-06-28","htmlText":"4.18.0 (2023-06-28)"},{"level":2,"text":"4.17.1 (2023-03-29)","anchor":"4171-2023-03-29","htmlText":"4.17.1 (2023-03-29)"},{"level":2,"text":"4.17.0 (2023-02-20)","anchor":"4170-2023-02-20","htmlText":"4.17.0 (2023-02-20)"},{"level":2,"text":"4.16.0 (2022-11-23)","anchor":"4160-2022-11-23","htmlText":"4.16.0 (2022-11-23)"},{"level":2,"text":"4.15.1 (2022-09-09)","anchor":"4151-2022-09-09","htmlText":"4.15.1 (2022-09-09)"},{"level":2,"text":"4.15.0 (2022-08-26)","anchor":"4150-2022-08-26","htmlText":"4.15.0 (2022-08-26)"},{"level":2,"text":"4.14.0 (2022-04-12)","anchor":"4140-2022-04-12","htmlText":"4.14.0 (2022-04-12)"},{"level":2,"text":"4.13.1 (2022-03-14)","anchor":"4131-2022-03-14","htmlText":"4.13.1 (2022-03-14)"},{"level":2,"text":"4.13.0 (2022-03-07)","anchor":"4130-2022-03-07","htmlText":"4.13.0 (2022-03-07)"},{"level":2,"text":"4.12.0 (2022-01-13)","anchor":"4120-2022-01-13","htmlText":"4.12.0 (2022-01-13)"},{"level":2,"text":"4.11.0 (2021-11-24)","anchor":"4110-2021-11-24","htmlText":"4.11.0 (2021-11-24)"},{"level":2,"text":"4.10.0 (2021-10-06)","anchor":"4100-2021-10-06","htmlText":"4.10.0 (2021-10-06)"},{"level":2,"text":"4.9.0 (2021-09-21)","anchor":"490-2021-09-21","htmlText":"4.9.0 (2021-09-21)"},{"level":2,"text":"4.8.1 (2021-09-12)","anchor":"481-2021-09-12","htmlText":"4.8.1 (2021-09-12)"},{"level":2,"text":"4.8.0 (2021-09-09)","anchor":"480-2021-09-09","htmlText":"4.8.0 (2021-09-09)"},{"level":2,"text":"4.7.1 (2021-08-28)","anchor":"471-2021-08-28","htmlText":"4.7.1 (2021-08-28)"},{"level":2,"text":"4.7.0 (2021-08-24)","anchor":"470-2021-08-24","htmlText":"4.7.0 (2021-08-24)"},{"level":2,"text":"4.6.0 (2021-07-25)","anchor":"460-2021-07-25","htmlText":"4.6.0 (2021-07-25)"},{"level":2,"text":"4.5.0 (2021-05-29)","anchor":"450-2021-05-29","htmlText":"4.5.0 (2021-05-29)"},{"level":2,"text":"4.4.0 (2021-05-03)","anchor":"440-2021-05-03","htmlText":"4.4.0 (2021-05-03)"},{"level":2,"text":"4.3.2 (2021-03-13)","anchor":"432-2021-03-13","htmlText":"4.3.2 (2021-03-13)"},{"level":2,"text":"4.3.1 (2021-03-12)","anchor":"431-2021-03-12","htmlText":"4.3.1 (2021-03-12)"},{"level":2,"text":"4.3.0 (2021-02-24)","anchor":"430-2021-02-24","htmlText":"4.3.0 (2021-02-24)"},{"level":3,"text":"Deprecation Notice","anchor":"deprecation-notice","htmlText":"Deprecation Notice"},{"level":2,"text":"4.2.0 (2021-02-01)","anchor":"420-2021-02-01","htmlText":"4.2.0 (2021-02-01)"},{"level":2,"text":"4.1.0 (2021-01-18)","anchor":"410-2021-01-18","htmlText":"4.1.0 (2021-01-18)"},{"level":2,"text":"4.0.0 (2020-12-18)","anchor":"400-2020-12-18","htmlText":"4.0.0 (2020-12-18)"},{"level":3,"text":"New Features","anchor":"new-features","htmlText":"New Features"},{"level":3,"text":"Breaking Changes","anchor":"breaking-changes","htmlText":"Breaking Changes"},{"level":3,"text":"Fixes","anchor":"fixes","htmlText":"Fixes"},{"level":2,"text":"3.20.0 (2020-11-25)","anchor":"3200-2020-11-25","htmlText":"3.20.0 (2020-11-25)"},{"level":2,"text":"3.19.0 (2020-11-20)","anchor":"3190-2020-11-20","htmlText":"3.19.0 (2020-11-20)"},{"level":2,"text":"3.18.1 (2020-11-12)","anchor":"3181-2020-11-12","htmlText":"3.18.1 (2020-11-12)"},{"level":2,"text":"3.18.0 (2020-11-07)","anchor":"3180-2020-11-07","htmlText":"3.18.0 (2020-11-07)"},{"level":2,"text":"3.17.0 (2020-10-09)","anchor":"3170-2020-10-09","htmlText":"3.17.0 (2020-10-09)"},{"level":2,"text":"3.16.0 (2020-08-31)","anchor":"3160-2020-08-31","htmlText":"3.16.0 (2020-08-31)"},{"level":2,"text":"3.15.1 (2020-07-08)","anchor":"3151-2020-07-08","htmlText":"3.15.1 (2020-07-08)"},{"level":2,"text":"3.15.0 (2020-06-22)","anchor":"3150-2020-06-22","htmlText":"3.15.0 (2020-06-22)"},{"level":2,"text":"3.14.0 (2020-05-07)","anchor":"3140-2020-05-07","htmlText":"3.14.0 (2020-05-07)"},{"level":2,"text":"3.13.0 (2020-04-11)","anchor":"3130-2020-04-11","htmlText":"3.13.0 (2020-04-11)"},{"level":2,"text":"3.12.0 (2019-12-10)","anchor":"3120-2019-12-10","htmlText":"3.12.0 (2019-12-10)"},{"level":2,"text":"3.11.0 (2019-11-12)","anchor":"3110-2019-11-12","htmlText":"3.11.0 (2019-11-12)"},{"level":2,"text":"3.10.0 (2019-11-06)","anchor":"3100-2019-11-06","htmlText":"3.10.0 (2019-11-06)"},{"level":2,"text":"3.9.0 (2019-10-26)","anchor":"390-2019-10-26","htmlText":"3.9.0 (2019-10-26)"},{"level":2,"text":"3.8.0 (2019-09-27)","anchor":"380-2019-09-27","htmlText":"3.8.0 (2019-09-27)"},{"level":2,"text":"3.7.0 (2019-09-18)","anchor":"370-2019-09-18","htmlText":"3.7.0 (2019-09-18)"},{"level":2,"text":"3.6.0 (2019-08-19)","anchor":"360-2019-08-19","htmlText":"3.6.0 (2019-08-19)"},{"level":2,"text":"3.5.0 (2019-06-21)","anchor":"350-2019-06-21","htmlText":"3.5.0 (2019-06-21)"},{"level":2,"text":"3.4.0 (2019-04-30)","anchor":"340-2019-04-30","htmlText":"3.4.0 (2019-04-30)"},{"level":2,"text":"3.3.0 (2019-03-24)","anchor":"330-2019-03-24","htmlText":"3.3.0 (2019-03-24)"},{"level":2,"text":"3.2.1 (2019-03-04)","anchor":"321-2019-03-04","htmlText":"3.2.1 (2019-03-04)"},{"level":2,"text":"3.2.0 (2019-01-22)","anchor":"320-2019-01-22","htmlText":"3.2.0 (2019-01-22)"},{"level":2,"text":"3.1.1 (2018-12-22)","anchor":"311-2018-12-22","htmlText":"3.1.1 (2018-12-22)"},{"level":2,"text":"3.1.0 (2018-12-16)","anchor":"310-2018-12-16","htmlText":"3.1.0 (2018-12-16)"},{"level":2,"text":"3.0.1 (2018-11-30)","anchor":"301-2018-11-30","htmlText":"3.0.1 (2018-11-30)"},{"level":2,"text":"3.0.0 (2018-11-13)","anchor":"300-2018-11-13","htmlText":"3.0.0 (2018-11-13)"},{"level":2,"text":"2.9.1 (2018-10-26)","anchor":"291-2018-10-26","htmlText":"2.9.1 (2018-10-26)"},{"level":2,"text":"2.9.0 (2018-10-05)","anchor":"290-2018-10-05","htmlText":"2.9.0 (2018-10-05)"},{"level":2,"text":"2.8.0 (2018-09-12)","anchor":"280-2018-09-12","htmlText":"2.8.0 (2018-09-12)"},{"level":2,"text":"2.7.1 (2018-08-30)","anchor":"271-2018-08-30","htmlText":"2.7.1 (2018-08-30)"},{"level":2,"text":"2.7.0 (2018-08-12)","anchor":"270-2018-08-12","htmlText":"2.7.0 (2018-08-12)"},{"level":2,"text":"2.6.0 (2018-08-01)","anchor":"260-2018-08-01","htmlText":"2.6.0 (2018-08-01)"},{"level":2,"text":"2.5.0 (2018-07-12)","anchor":"250-2018-07-12","htmlText":"2.5.0 (2018-07-12)"},{"level":2,"text":"2.4.0 (2018-06-01)","anchor":"240-2018-06-01","htmlText":"2.4.0 (2018-06-01)"},{"level":2,"text":"2.3.0 (2018-05-29)","anchor":"230-2018-05-29","htmlText":"2.3.0 (2018-05-29)"},{"level":2,"text":"2.2.0 (2018-05-24)","anchor":"220-2018-05-24","htmlText":"2.2.0 (2018-05-24)"},{"level":2,"text":"2.1.1 (2018-05-19)","anchor":"211-2018-05-19","htmlText":"2.1.1 (2018-05-19)"},{"level":2,"text":"2.1.0 (2018-05-18)","anchor":"210-2018-05-18","htmlText":"2.1.0 (2018-05-18)"},{"level":2,"text":"2.0.1 (2018-05-12)","anchor":"201-2018-05-12","htmlText":"2.0.1 (2018-05-12)"},{"level":2,"text":"2.0 (2018-05-12)","anchor":"20-2018-05-12","htmlText":"2.0 (2018-05-12)"},{"level":2,"text":"1.1 (2018-05-02)","anchor":"11-2018-05-02","htmlText":"1.1 (2018-05-02)"},{"level":2,"text":"1.0 (2018-04-27)","anchor":"10-2018-04-27","htmlText":"1.0 (2018-04-27)"}]},"issueTemplate":null,"discussionTemplate":null,"richText":"\u003carticle class=\"markdown-body entry-content container-lg\" itemprop=\"text\"\u003e\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.34.0 (2026-08-23)\u003c/h2\u003e\u003ca id=\"user-content-4340-2026-08-23\" class=\"anchor\" aria-label=\"Permalink: 4.34.0 (2026-08-23)\" href=\"#4340-2026-08-23\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS Plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://www.spaceship.com/\" rel=\"nofollow\"\u003eSpaceship\u003c/a\u003e (#678)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.godaddy.com\" rel=\"nofollow\"\u003eGoDaddyV3\u003c/a\u003e for use with new V3 API (#686)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://mijn.host\" rel=\"nofollow\"\u003eMijnHost\u003c/a\u003e (#675) (Thanks @j81blog)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.infomaniak.com\" rel=\"nofollow\"\u003eInfomaniakV2\u003c/a\u003e (#689) (Thanks @Sundypha)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.hosting.nl/\" rel=\"nofollow\"\u003eHostingNL\u003c/a\u003e (684) (Thanks @Tim81)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed Gandi API endpoint URL which recently changed. It is now a configurable parameter as well. (#682)\u003c/li\u003e\n\u003cli\u003eFixed Regru compatibility with API 2 (#687) (Thanks @kropachev)\u003c/li\u003e\n\u003cli\u003eFixed a number of GCloud issues:\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNow works against accounts with many zones (#688)\u003c/li\u003e\n\u003cli\u003eFixed future dns-persist-01 support\u003c/li\u003e\n\u003cli\u003eGCProjectId may now be a comma-delimited string (or string array as before)\u003c/li\u003e\n\u003cli\u003eBetter error handling\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.33.1 (2026-06-16)\u003c/h2\u003e\u003ca id=\"user-content-4331-2026-06-16\" class=\"anchor\" aria-label=\"Permalink: 4.33.1 (2026-06-16)\" href=\"#4331-2026-06-16\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed parameter validation errors on renewal due to DnsVariant parameter being empty (#679)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.33.0 (2026-06-09)\u003c/h2\u003e\u003ca id=\"user-content-4330-2026-06-09\" class=\"anchor\" aria-label=\"Permalink: 4.33.0 (2026-06-09)\" href=\"#4330-2026-06-09\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded preliminary support for \u003ccode\u003edns-account-01\u003c/code\u003e challenge type based on \u003ca href=\"https://datatracker.ietf.org/doc/draft-ietf-acme-dns-account-label/03/\" rel=\"nofollow\"\u003edraft-ietf-acme-dns-account-label-03\u003c/a\u003e.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew \u003ccode\u003e-DnsVariant\u003c/code\u003e parameter in various Order and Challenge related functions.\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eGet-DnsAcctLabel\u003c/code\u003e utility function\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e-UsePfxDerEncoding\u003c/code\u003e to \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e which changes the encoding within generated PFX files from BER to DER. This may be necessary for compatibility with some applications, libraries, or services that have deprecated BER support. (#674)\u003c/li\u003e\n\u003cli\u003eNew \u003ca href=\"https://cloud.hostup.se/\" rel=\"nofollow\"\u003eHostUp\u003c/a\u003e plugin (#663) (Thanks @itssimple)\u003c/li\u003e\n\u003cli\u003eCloudflare: Fixed a bug with TXT records containing quotes and did some light refactoring\u003c/li\u003e\n\u003cli\u003eGoDaddy: Added support for corporate (Brandsight) API access which requires a Customer ID value. (#660) (Thanks @vertras)\u003c/li\u003e\n\u003cli\u003eGoDaddy: Fixed support for TXT records containing quotes\u003c/li\u003e\n\u003cli\u003eNamecheap: Reduced required API permissions for delegated corporate accounts to just \u003ccode\u003edomains.dns.*\u003c/code\u003e (#672)\u003c/li\u003e\n\u003cli\u003eNamecheap: Added Sandbox support and better debug logging\u003c/li\u003e\n\u003cli\u003eNamecheap: Fixed TXT records containing quotes and apex record support\u003c/li\u003e\n\u003cli\u003eAutoDNS: Fixed string formatting error when using a password containing curly braces (#671)\u003c/li\u003e\n\u003cli\u003eFixed a PowerShell 5.1 specific bug in \u003ccode\u003ePublish-DnsPersistChallenge\u003c/code\u003e and \u003ccode\u003eUnpublish-DnsPersistChallenge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDisabled PowerShell native debug logging on low level ACME calls which is now way more verbose in 7.6 and was duplicating the module specific logging.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.32.0 (2026-03-29)\u003c/h2\u003e\u003ca id=\"user-content-4320-2026-03-29\" class=\"anchor\" aria-label=\"Permalink: 4.32.0 (2026-03-29)\" href=\"#4320-2026-03-29\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew \u003ca href=\"https://dnsexit.com/\" rel=\"nofollow\"\u003eDNSExit\u003c/a\u003e plugin (#668) (Thanks @joxdev13)\u003c/li\u003e\n\u003cli\u003ePreliminary support for \u003ca href=\"https://datatracker.ietf.org/doc/draft-ietf-acme-dns-persist/\" rel=\"nofollow\"\u003edns-persist-01\u003c/a\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdds functions \u003ccode\u003ePublish-DnsPersistChallenge\u003c/code\u003e and \u003ccode\u003eUnpublish-DnsPersistChallenge\u003c/code\u003e. These are subject to change while the spec is still in a draft state.\u003c/li\u003e\n\u003cli\u003eI wanted to get these released early so folks can start testing the DNS plugins with them. No other core module changes have been added to support the cert workflow for this challenge type yet.\u003c/li\u003e\n\u003cli\u003eIt is \u003cstrong\u003ehighly\u003c/strong\u003e recommended to test these functions using your preferred DNS plugin. I suspect there are some bugs in some of the plugins that might surface because they have only been tested creating ACME challenge TXT records until now. Please submit issues for plugins that have problems.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed bug in Infoblox plugin that caused errors when TxtValue required URL escaping\u003c/li\u003e\n\u003cli\u003eAdded better error handling in \u003ccode\u003eGet-PAPluginArgs\u003c/code\u003e when decrypting encrypted args fails (#654)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003ePotentially Breaking Change\u003c/h3\u003e\u003ca id=\"user-content-potentially-breaking-change\" class=\"anchor\" aria-label=\"Permalink: Potentially Breaking Change\" href=\"#potentially-breaking-change\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eGenerated CSRs no longer include the Enhanced Key Usage (EKU) extension.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThis is a fix for CAs that have started rejecting CSRs containing the Client Authentication EKU such as \u003ca href=\"https://pki.goog/updates/may2025-clientauth.html\" rel=\"nofollow\"\u003eGoogle\u003c/a\u003e due to its deprecation across all public CAs.\u003c/li\u003e\n\u003cli\u003eThis change has been tested successfully against all known free public ACME CAs. The resulting certs still contain the EKU extension, but which EKUs get added is dependent on the CA as it has always been.\u003c/li\u003e\n\u003cli\u003eHowever, there are many commercial and private CAs I was unable to test against which is why this \u003cem\u003emight\u003c/em\u003e be a breaking change for them. PLEASE test if you're not using one of the free public ACME CAs.\u003c/li\u003e\n\u003cli\u003eIf for some reason your preferred CA rejects the new CSRs, you may always fall back to supplying your own CSR using the \u003ccode\u003e-CSRPath\u003c/code\u003e param in many of the functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.31.1 (2026-02-07)\u003c/h2\u003e\u003ca id=\"user-content-4311-2026-02-07\" class=\"anchor\" aria-label=\"Permalink: 4.31.1 (2026-02-07)\" href=\"#4311-2026-02-07\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed bug in CSR generation for IP address certs. IPs will no longer be added to CSR Common Name. If an IP address is the \"MainDomain\" of the order, the CSR CN will be empty. (#658)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.31.0 (2026-01-21)\u003c/h2\u003e\u003ca id=\"user-content-4310-2026-01-21\" class=\"anchor\" aria-label=\"Permalink: 4.31.0 (2026-01-21)\" href=\"#4310-2026-01-21\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew \u003ca href=\"https://technitium.com/dns/\" rel=\"nofollow\"\u003eTechnitium DNS\u003c/a\u003e plugin. (#653) (Thanks @shalafi99)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eCSR\u003c/code\u003e property to the output of \u003ccode\u003eGet-PACertificate\u003c/code\u003e which is the path to the CSR file used for the request. (#650) (Thanks @skyblaster)\u003c/li\u003e\n\u003cli\u003eFixed bug in HetznerCloud plugin due to duplicate ErrorAction param use (#656)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.30.1 (2025-11-18)\u003c/h2\u003e\u003ca id=\"user-content-4301-2025-11-18\" class=\"anchor\" aria-label=\"Permalink: 4.30.1 (2025-11-18)\" href=\"#4301-2025-11-18\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed Simply and SimplyCom plugins which now require trailing slashes to API endpoints. (#646) (Thanks @tomsommer)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.30.0 (2025-11-13)\u003c/h2\u003e\u003ca id=\"user-content-4300-2025-11-13\" class=\"anchor\" aria-label=\"Permalink: 4.30.0 (2025-11-13)\" href=\"#4300-2025-11-13\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew \u003ca href=\"https://www.hetzner.com/\" rel=\"nofollow\"\u003eHetznerCloud\u003c/a\u003e plugin (#642) (Thanks @humnose)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThis is for Hetzner users who have migrated their zones from the legacy \"DNS Console\" to the new \"Hetzner Console\". NOTE: New API tokens are needed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eAZArcAgentAPIVersion\u003c/code\u003e param for Azure IMDS parameter set (#636) (Thanks @semics-tech)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThis may be necessary systems running older versions of the Azure Managed Identity Agent that don't work with the default version identifier.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eACTALIS_PROD\u003c/code\u003e to the list of well-known directory shortcuts. They've also been added to the ACME CA Comparison guide.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eBUYPASS_PROD\u003c/code\u003e and \u003ccode\u003eBUYPASS_TEST\u003c/code\u003e from the list of well-known directory shortcuts since they are no longer in operation.\u003c/li\u003e\n\u003cli\u003eRemoved a workaround for a BuyPass server bug which is no longer necessary.\u003c/li\u003e\n\u003cli\u003eFixed Windows plugin breaks when not using WinUseSsl or WinSkipCACheck switches (#637) (Thanks @jmpederson1)\u003c/li\u003e\n\u003cli\u003eFixed PS 5.1 compat with DeSEC and EuroDNSReseller by removing -Depth param from ConvertFrom-Json calls (#643)\u003c/li\u003e\n\u003cli\u003eFixed null ref errors in CoreNetworks plugin when no matching zone found. Added additional debug logs. (#616)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.29.3 (2025-07-24)\u003c/h2\u003e\u003ca id=\"user-content-4293-2025-07-24\" class=\"anchor\" aria-label=\"Permalink: 4.29.3 (2025-07-24)\" href=\"#4293-2025-07-24\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThe current ACME server directory endpoint is now refreshed on module import to ensure server changes are reflected before actions are performed. If the previously used ACME server is unreachable, a warning is thrown and previously cached data is used.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThis should fix anyone who is getting 404 errors when renewing Let's Encrypt certs due to an unannounced change to their ARI endpoint. Users can also fix this problem without upgrading by running \u003ccode\u003eGet-PAServer -Refresh\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.29.2 (2025-07-15)\u003c/h2\u003e\u003ca id=\"user-content-4292-2025-07-15\" class=\"anchor\" aria-label=\"Permalink: 4.29.2 (2025-07-15)\" href=\"#4292-2025-07-15\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed param set resolution error with New-PACertificate when using CSRPath/CSRString params (#629)\u003c/li\u003e\n\u003cli\u003eAdded workaround for non-compliant order response from KeyFactor ACME provider (#626)\u003c/li\u003e\n\u003cli\u003eAdded additional logging to DuckDNS plugin (#628)\u003c/li\u003e\n\u003cli\u003eTweaked debug output for ACME responses for better human readability\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.29.1 (2025-06-26)\u003c/h2\u003e\u003ca id=\"user-content-4291-2025-06-26\" class=\"anchor\" aria-label=\"Permalink: 4.29.1 (2025-06-26)\" href=\"#4291-2025-06-26\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix Route53 plugin when used with AWS Tools for PowerShell 5.x (#627)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.29.0 (2025-06-25)\u003c/h2\u003e\u003ca id=\"user-content-4290-2025-06-25\" class=\"anchor\" aria-label=\"Permalink: 4.29.0 (2025-06-25)\" href=\"#4290-2025-06-25\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS Plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://www.netcup.com\" rel=\"nofollow\"\u003eNetcup\u003c/a\u003e (#602)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.transip.nl\" rel=\"nofollow\"\u003eTransIP\u003c/a\u003e (#622) (Thanks @Tim81)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e-IgnoreContact\u003c/code\u003e switch to \u003ccode\u003eSet-PAServer\u003c/code\u003e (#619)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eALL USERS of LET'S ENCRYPT, this switch works around a bug that causes a new account to be created for every renewal after LE shut down their automated email warning service.\u003c/li\u003e\n\u003cli\u003eThis option causes the module to ignore any \u003ccode\u003e-Contact\u003c/code\u003e parameters in functions that support it when using the associated server.\u003c/li\u003e\n\u003cli\u003eIt will be enabled by default on new installs that use Let's Encrypt. But existing users will need to manually enable it \u003cem\u003eOR\u003c/em\u003e simply stop using the \u003ccode\u003e-Contact\u003c/code\u003e parameter in your scripts when using Let's Encrypt ACME endpoints.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded AZAccessTokenSecure param for Azure plugin (#618)\u003c/li\u003e\n\u003cli\u003eAdded WinSkipCACheck switch to Windows plugin (#613)\u003c/li\u003e\n\u003cli\u003eAdded WinNoCimSession switch to Windows plugin (#600) (Thanks @rhochmayr)\u003c/li\u003e\n\u003cli\u003eFix: Changing an order's PfxPass no longer shows the new value in Verbose output (#604)\u003c/li\u003e\n\u003cli\u003eFix: New-PACertificate no longer shows plaintext PfxPass in debug log (#604)\u003c/li\u003e\n\u003cli\u003eFixed a bug in \u003ccode\u003eNew-PACertificate\u003c/code\u003e that would unnecessarily create a new order when an existing unfinished order could have been continued\u003c/li\u003e\n\u003cli\u003eFixed a couple minor bugs related to switching profiles when creating new orders that match existing orders.\u003c/li\u003e\n\u003cli\u003eFix: Added a workaround for non-compliant order response from GoDaddy's ACME implementation (#611)\u003c/li\u003e\n\u003cli\u003eFixed PowerDNS plugin when using limited API key that doesn't have access to all hosted zones (#617) (Thanks @joachimcarrein)\u003c/li\u003e\n\u003cli\u003eRemoved the Warning message when creating a new ACME account with no \u003ccode\u003e-Contact\u003c/code\u003e parameter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.28.0 (2025-02-08)\u003c/h2\u003e\u003ca id=\"user-content-4280-2025-02-08\" class=\"anchor\" aria-label=\"Permalink: 4.28.0 (2025-02-08)\" href=\"#4280-2025-02-08\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew \u003ca href=\"https://efficientip.com/products/solidserver-ddi/\" rel=\"nofollow\"\u003eefficient iP SOLIDserver DDI\u003c/a\u003e plugin. Thanks @jamiekowalczik for the initial PR and @alexissavin for providing a test platform and API guidance.\u003c/li\u003e\n\u003cli\u003eExperimental support for the new \u003ca href=\"https://datatracker.ietf.org/doc/draft-aaron-acme-profiles/\" rel=\"nofollow\"\u003eACME Profiles\u003c/a\u003e extension. This is still a very early draft standard and subject to change, but Let's Encrypt is already rolling out support this year as part of their short-lived certificates initiative. More info \u003ca href=\"https://letsencrypt.org/2025/01/09/acme-profiles/\" rel=\"nofollow\"\u003ehere\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFixed Route53 plugin when used with accounts that have many hosted zones. (#593)\u003c/li\u003e\n\u003cli\u003eFixed a bug with DeSEC plugin that was caused by the previous fix for #584. (#598)\u003c/li\u003e\n\u003cli\u003eAdded better debug logging for DeSEC plugin.\u003c/li\u003e\n\u003cli\u003eAzure cert thumbprint auth now works on Linux for certs in the \"CurrentUser\" store. (Thanks @Eric2XU)\u003c/li\u003e\n\u003cli\u003eFixed a bug with Azure cert thumbprint auth on Windows that could throw errors when using certificates with non-exportable private keys.\u003c/li\u003e\n\u003cli\u003eAdded better debug logging for Azure plugin.\u003c/li\u003e\n\u003cli\u003eAcmeException objects thrown by the module now include the lower level HTTP response exception as an InnerException.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.27.0 (2025-01-08)\u003c/h2\u003e\u003ca id=\"user-content-4270-2025-01-08\" class=\"anchor\" aria-label=\"Permalink: 4.27.0 (2025-01-08)\" href=\"#4270-2025-01-08\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS Plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://www.inwx.de/\" rel=\"nofollow\"\u003eINWX\u003c/a\u003e (Thanks @andreashaerter)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.eurodns.com/\" rel=\"nofollow\"\u003eEuroDNSReseller\u003c/a\u003e Check the guide on this one. It's only currently usable by reseller partners of EuroDNS and not direct EuroDNS customers. (Thanks @zoryatix)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed WEDOS plugin to handle different response types for dns-domains-list API call (#579)\u003c/li\u003e\n\u003cli\u003ePublish-Challenge and Unpublish-Challenge now strip trailing \u003ccode\u003e.\u003c/code\u003e chars from the RecordName they pass to plugins in order to make edge-case parsing more predictable.\u003c/li\u003e\n\u003cli\u003eAdded additional ARI related error handling in New-PAOrder to more gracefully handle problems with the \u003ccode\u003ereplaces\u003c/code\u003e field. (#587)\u003c/li\u003e\n\u003cli\u003eAdded additional error handling in the config import process to better deal with unexpected config states. (#587)\u003c/li\u003e\n\u003cli\u003eFixed a bug in the plugin development guide code that suggests how to parse short names from a RecordName and ZoneName value. The bug wouldn't correctly parse the short name in FQDNs that contained more than one instance of the zone name. (#584)\u003c/li\u003e\n\u003cli\u003eFixed all of the plugins that had implemented the bugged short name parsing algorithm.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eActive24\u003c/li\u003e\n\u003cli\u003eAliyun\u003c/li\u003e\n\u003cli\u003eAll-Inkl\u003c/li\u003e\n\u003cli\u003eAurora\u003c/li\u003e\n\u003cli\u003eAutoDNS\u003c/li\u003e\n\u003cli\u003eAzure\u003c/li\u003e\n\u003cli\u003eBlueCat\u003c/li\u003e\n\u003cli\u003eBunny\u003c/li\u003e\n\u003cli\u003eClouDNS\u003c/li\u003e\n\u003cli\u003eCombell\u003c/li\u003e\n\u003cli\u003eConstellix\u003c/li\u003e\n\u003cli\u003eCoreNetworks\u003c/li\u003e\n\u003cli\u003eDMEasy\u003c/li\u003e\n\u003cli\u003eDNSPod\u003c/li\u003e\n\u003cli\u003eDNSimple\u003c/li\u003e\n\u003cli\u003eDOcean\u003c/li\u003e\n\u003cli\u003eDeSEC\u003c/li\u003e\n\u003cli\u003eDomeneshop\u003c/li\u003e\n\u003cli\u003eEasyDNS\u003c/li\u003e\n\u003cli\u003eEasyname\u003c/li\u003e\n\u003cli\u003eFreeDNS\u003c/li\u003e\n\u003cli\u003eGandi\u003c/li\u003e\n\u003cli\u003eGoDaddy\u003c/li\u003e\n\u003cli\u003eHetzner\u003c/li\u003e\n\u003cli\u003eIBMSoftLayer\u003c/li\u003e\n\u003cli\u003eISPConfig\u003c/li\u003e\n\u003cli\u003eInfomaniak\u003c/li\u003e\n\u003cli\u003eLinode\u003c/li\u003e\n\u003cli\u003eLoopia\u003c/li\u003e\n\u003cli\u003eNameCom\u003c/li\u003e\n\u003cli\u003eNameSilo\u003c/li\u003e\n\u003cli\u003eNamecheap\u003c/li\u003e\n\u003cli\u003eOVH\u003c/li\u003e\n\u003cli\u003eOnlineNet\u003c/li\u003e\n\u003cli\u003ePointDNS\u003c/li\u003e\n\u003cli\u003ePorkbun\u003c/li\u003e\n\u003cli\u003ePortsManagement\u003c/li\u003e\n\u003cli\u003eRegru\u003c/li\u003e\n\u003cli\u003eSimply\u003c/li\u003e\n\u003cli\u003eSimplyCom\u003c/li\u003e\n\u003cli\u003eTencentDNS\u003c/li\u003e\n\u003cli\u003eTotalUptime\u003c/li\u003e\n\u003cli\u003eWEDOS\u003c/li\u003e\n\u003cli\u003eWebsupportSK\u003c/li\u003e\n\u003cli\u003eWindows\u003c/li\u003e\n\u003cli\u003eYandex\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.26.0 (2024-11-01)\u003c/h2\u003e\u003ca id=\"user-content-4260-2024-11-01\" class=\"anchor\" aria-label=\"Permalink: 4.26.0 (2024-11-01)\" href=\"#4260-2024-11-01\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugin \u003ca href=\"https://challenges.addr.tools/\" rel=\"nofollow\"\u003eAddrTools\u003c/a\u003e (#572)\u003c/li\u003e\n\u003cli\u003ePorkbun plugin updated with new API endpoint. Vendor decommissioning old endpoint on 2024-12-01. Please upgrade before then. (#570)\u003c/li\u003e\n\u003cli\u003ePorkbun plugin added retry mechanic to deal with rate limiting errors.\u003c/li\u003e\n\u003cli\u003eFixed ARI related date parsing bug when using PowerShell 7+. (#578)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.25.1 (2024-09-02)\u003c/h2\u003e\u003ca id=\"user-content-4251-2024-09-02\" class=\"anchor\" aria-label=\"Permalink: 4.25.1 (2024-09-02)\" href=\"#4251-2024-09-02\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix Azure IMDS auth for Arc-enabled servers\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.25.0 (2024-08-18)\u003c/h2\u003e\u003ca id=\"user-content-4250-2024-08-18\" class=\"anchor\" aria-label=\"Permalink: 4.25.0 (2024-08-18)\" href=\"#4250-2024-08-18\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://dnspod.com/\" rel=\"nofollow\"\u003eTencentDNS\u003c/a\u003e which is a new plugin for DNSPod that uses the Tencent Cloud API which will eventually be required when the old DNSPod API is terminated. (#553) (Thanks @xiaotiannet)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.scaleway.com/en/domains-and-dns/\" rel=\"nofollow\"\u003eOnlineNet\u003c/a\u003e which is Scaleway's legacy DNS API managed through \u003ccode\u003econsole.online.net\u003c/code\u003e. (#557)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eGandi plugin now supports Personal Access Tokens (PAT) auth in addition to legacy API Keys (#554)\u003c/li\u003e\n\u003cli\u003eNameCom plugin now has better error handling and debug logs. NameCom users with 2FA enabled should also review the user guide about a setting that could break API access. (#556)\u003c/li\u003e\n\u003cli\u003eMinor logging fix for Active24 plugin.\u003c/li\u003e\n\u003cli\u003eFixed a bug with ARI implementation that would fail renewals when the ACME server believes the replaced cert had already been replaced. (#560)\u003c/li\u003e\n\u003cli\u003eFixed a bug with ARI implementation that would throw errors when the cert being replaced did not contain an AKI extention. (#561)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.24.0 (2024-06-19)\u003c/h2\u003e\u003ca id=\"user-content-4240-2024-06-19\" class=\"anchor\" aria-label=\"Permalink: 4.24.0 (2024-06-19)\" href=\"#4240-2024-06-19\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDomainOffensive plugin updated with new API root and documentation links. (Thanks @henrikalves)\u003c/li\u003e\n\u003cli\u003eAdded \u003ca href=\"https://datatracker.ietf.org/doc/draft-ietf-acme-ari/\" rel=\"nofollow\"\u003eARI (ACME Renewal Information)\u003c/a\u003e support based on draft 04. This should be considered experimental until the RFC is finalized.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003eARIId\u003c/code\u003e and \u003ccode\u003eSerial\u003c/code\u003e fields have been added to the output of \u003ccode\u003eGet-PACertificate\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDisableARI\u003c/code\u003e switch added to \u003ccode\u003eSet-PAServer\u003c/code\u003e which disables ARI support for the server even it would otherwise be supported. This will primarily be useful if the ARI draft changes enough to break the current support and CAs update their implementations before the module can be updated. It may also be useful for providers with existing ARI support from an older unsupported draft.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eReplacesCert\u003c/code\u003e parameter added to \u003ccode\u003eNew-PAOrder\u003c/code\u003e which takes an ARIId string as returned by \u003ccode\u003eGet-PACertificate\u003c/code\u003e. This will be ignored if the current ACME server doesn't support ARI or support has been explicitly disabled via \u003ccode\u003eSet-PAServer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eOrder refreshes now perform an ARI check if supported and not disabled. The \u003ccode\u003eRenewAfter\u003c/code\u003e field is updated if the response indicates it is necessary.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSubmit-Renewal\u003c/code\u003e now triggers an order refresh if ARI is supported and not disabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.23.1 (2024-05-23)\u003c/h2\u003e\u003ca id=\"user-content-4231-2024-05-23\" class=\"anchor\" aria-label=\"Permalink: 4.23.1 (2024-05-23)\" href=\"#4231-2024-05-23\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix DNSimple plugin not properly ignoring 404 API errors on PowerShell 5.1 (#549)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.23.0 (2024-05-04)\u003c/h2\u003e\u003ca id=\"user-content-4230-2024-05-04\" class=\"anchor\" aria-label=\"Permalink: 4.23.0 (2024-05-04)\" href=\"#4230-2024-05-04\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded support for DNSimple user tokens which should allow for certs with names that span domains in multiple accounts.\u003c/li\u003e\n\u003cli\u003eAdded warning in GoDaddy guide about newly imposed limits on API access. (Thanks @webprofusion-chrisc)\u003c/li\u003e\n\u003cli\u003eFixed DNSimple plugin not removing challenge records (#548).\u003c/li\u003e\n\u003cli\u003eFixed cascading errors on public functions when running with little or no existing config. (#544)\u003c/li\u003e\n\u003cli\u003eFixed OVH plugin on PowerShell 5.1 by removing an accidentally added ternary operator. (#545) (Thanks @joshooaj)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.22.0 (2024-04-12)\u003c/h2\u003e\u003ca id=\"user-content-4220-2024-04-12\" class=\"anchor\" aria-label=\"Permalink: 4.22.0 (2024-04-12)\" href=\"#4220-2024-04-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugin \u003ca href=\"https://www.websupport.sk/?ref=NTIqFFo7Rg\" rel=\"nofollow\"\u003eWebsupportSK\u003c/a\u003e. This will be useful to Active24 users who have been migrated to the new provider.\u003c/li\u003e\n\u003cli\u003eAdded additional debug logging for Active24 plugin.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.21.0 (2024-03-08)\u003c/h2\u003e\u003ca id=\"user-content-4210-2024-03-08\" class=\"anchor\" aria-label=\"Permalink: 4.21.0 (2024-03-08)\" href=\"#4210-2024-03-08\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugin \u003ca href=\"https://www.wedos.com/zone/\" rel=\"nofollow\"\u003eWEDOS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed OVH bug that prevented record creation at a zone apex most common when using DNS Alias support. Also added doc warning about time skew and better debug logging. (#535)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.20.0 (2023-12-12)\u003c/h2\u003e\u003ca id=\"user-content-4200-2023-12-12\" class=\"anchor\" aria-label=\"Permalink: 4.20.0 (2023-12-12)\" href=\"#4200-2023-12-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugin \u003ca href=\"https://www.powerdns.com/powerdns-authoritative-server\" rel=\"nofollow\"\u003ePowerDNS\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed duplicate identifiers in the \u003ccode\u003eDomain\u003c/code\u003e parameter causing errors with some ACME servers. Identifiers will now be deduplicated prior to being saved and sent to the ACME server. (#517)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eWSHDelayAfterStart\u003c/code\u003e param to the WebSelfHost plugin which adds a configurable delay between when the challenge listener starts up and when it asks the ACME server to validate the challenges. (#518)\u003c/li\u003e\n\u003cli\u003eOrders where the MainDomain is longer than 64 characters will not include a CN value in the Subject field of the certificate request sent to the ACME server. CNs longer than 64 characters were already being rejected by some CAs like Let's Encrypt because the x509 spec doesn't allow for it. \u003ca href=\"https://community.letsencrypt.org/t/simplifying-issuance-for-very-long-domain-names/207924\" rel=\"nofollow\"\u003eMore Info\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.19.0 (2023-08-26)\u003c/h2\u003e\u003ca id=\"user-content-4190-2023-08-26\" class=\"anchor\" aria-label=\"Permalink: 4.19.0 (2023-08-26)\" href=\"#4190-2023-08-26\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://dns.he.net/\" rel=\"nofollow\"\u003eHurricaneElectricDyn\u003c/a\u003e This is an alternative to the existing \u003ccode\u003eHurricaneElectric\u003c/code\u003e plugin that uses the DynDNS API instead of web scraping. (Thanks @jbrunink)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.zoneedit.com/\" rel=\"nofollow\"\u003eZoneEdit\u003c/a\u003e (#495)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eCSRPath\u003c/code\u003e parameter in \u003ccode\u003eNew-PAOrder\u003c/code\u003e and \u003ccode\u003eNew-PACertificate\u003c/code\u003e will now accept the raw string contents of a CSR file instead of just the path to a file. (#503)\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eSimply\u003c/code\u003e plugin has been renamed to \u003ccode\u003eSimplyCom\u003c/code\u003e at the request of the provider. The new version is exactly the same. The old version will remain until the next major release. Users should update their renewal configs to use the new version to prevent future breakage. \u003ccode\u003eSet-PAOrder -Plugin SimplyCom\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdded a workaround to a temporary problem with the Simply.com API in case the issue pops up again. (#502)\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eRoute53\u003c/code\u003e plugin now uses IMDSv2 when using the IAM Role support. (#509)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.18.0 (2023-06-28)\u003c/h2\u003e\u003ca id=\"user-content-4180-2023-06-28\" class=\"anchor\" aria-label=\"Permalink: 4.18.0 (2023-06-28)\" href=\"#4180-2023-06-28\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThe \u003ccode\u003ePOSHACME_HOME\u003c/code\u003e environment variable now supports Windows-style (surrounded by \u003ccode\u003e%\u003c/code\u003e) environment variable expansion. (#497)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSo you can set the value to \u003ccode\u003e%ProgramData%\\Posh-ACME\u003c/code\u003e instead of needing to set it explicitly to \u003ccode\u003eC:\\ProgramData\\Posh-ACME\u003c/code\u003e for example.\u003c/li\u003e\n\u003cli\u003eNOTE: This requires Windows-style environment variable strings even on non-Windows OSes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe Azure plugin no longer tries to re-use cached authentication tokens when using the \u003ccode\u003eAZAccessToken\u003c/code\u003e parameter set. (#498)\u003c/li\u003e\n\u003cli\u003eFixed a bug with the Azure plugin that broke authentication when submitting multiple orders with different credentials from different tenants. (#498)\u003c/li\u003e\n\u003cli\u003eFixed a problem using Posh-ACME within AWS Lambda due to non-standard dotnet runtime assembly configs. (#418) (Thanks @garthmccormack)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThis fix involved changing the \u003ccode\u003eRevocationReasons\u003c/code\u003e enum from a .NET type to a PowerShell native enum.\u003c/li\u003e\n\u003cli\u003eThe change constitutes a minor breaking change which makes the enum no longer accessible from outside the module's context, but tab completion and string converted values for the \u003ccode\u003eRevoke-PACertificate -Reason\u003c/code\u003e parameter work exactly the same as before.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.17.1 (2023-03-29)\u003c/h2\u003e\u003ca id=\"user-content-4171-2023-03-29\" class=\"anchor\" aria-label=\"Permalink: 4.17.1 (2023-03-29)\" href=\"#4171-2023-03-29\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed Hetzner plugin for accounts with 100+ zones. (#481) (Thanks @Deutschi)\u003c/li\u003e\n\u003cli\u003eFixed RFC2136 plugin ignoring the DDNSNameserver parameter when set. (#485) (Thanks @gvengel)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.17.0 (2023-02-20)\u003c/h2\u003e\u003ca id=\"user-content-4170-2023-02-20\" class=\"anchor\" aria-label=\"Permalink: 4.17.0 (2023-02-20)\" href=\"#4170-2023-02-20\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://domains.google/\" rel=\"nofollow\"\u003eGoogle Domains\u003c/a\u003e This should be considered experimental while the Google Domains ACME API is still in testing. (Thanks @webprofusion-chrisc)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.ionos.de/\" rel=\"nofollow\"\u003eIONOS\u003c/a\u003e (Thanks @RLcyberTech)\u003c/li\u003e\n\u003cli\u003eSSHProxy sends update requests via SSH to another server which is able to do dynamic updates against your chosen DNS provider. (Thanks @bretgiddings)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eDDNSNameserver\u003c/code\u003e parameter is no longer mandatory in the RFC2136 plugin which will make nsupdate try to use whatever primary nameserver is returned from an SOA query.\u003c/li\u003e\n\u003cli\u003eAdded Basic authentication support to the AcmeDns plugin which should allow it to be used against endpoints that enforce that such as \u003ca href=\"https://docs.certifytheweb.com/docs/dns/providers/certifydns/\" rel=\"nofollow\"\u003eCertify DNS\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for plugin parameters that are arrays of SecureString or PSCredential objects.\u003c/li\u003e\n\u003cli\u003eFixed PAServer switches getting reset on \u003ccode\u003eSet-PAServer\u003c/code\u003e with no params (#475)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.16.0 (2022-11-23)\u003c/h2\u003e\u003ca id=\"user-content-4160-2022-11-23\" class=\"anchor\" aria-label=\"Permalink: 4.16.0 (2022-11-23)\" href=\"#4160-2022-11-23\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://www.active24.cz/\" rel=\"nofollow\"\u003eActive24\u003c/a\u003e (Thanks @pastelka)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://bunny.net/\" rel=\"nofollow\"\u003eBunny.net\u003c/a\u003e (Thanks @webprofusion-chrisc)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003e-Subject\u003c/code\u003e parameter to \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e which will override the default x509 Subject field in the certificate request sent to the ACME CA. This can be useful for private CAs that allow for additional attributes in the Subject that public CAs don't.\u003c/li\u003e\n\u003cli\u003eFix for undocumented NameSilo API change. (Thanks @rkone)\u003c/li\u003e\n\u003cli\u003eFix for All-Inkl plugin that makes the plaintext \u003ccode\u003eKasPwd\u003c/code\u003e parameter actually send plaintext since All-Inkl has deprecated the SHA1 option.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.15.1 (2022-09-09)\u003c/h2\u003e\u003ca id=\"user-content-4151-2022-09-09\" class=\"anchor\" aria-label=\"Permalink: 4.15.1 (2022-09-09)\" href=\"#4151-2022-09-09\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eReverted the embedded BouncyCastle library back to 1.8.8 due to version conflicts with Az.KeyVault in PowerShell 6+. This is temporary while a suitable workaround for version conflicts in other modules is explored.\u003c/li\u003e\n\u003cli\u003eFixed Domeneshop plugin when publishing apex TXT records and added more API output to debug messages.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.15.0 (2022-08-26)\u003c/h2\u003e\u003ca id=\"user-content-4150-2022-08-26\" class=\"anchor\" aria-label=\"Permalink: 4.15.0 (2022-08-26)\" href=\"#4150-2022-08-26\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePAOrder objects now have a flag to optionally use modern encryption options on generated PFX files. This will prevent the need to use \"legacy\" mode when reading the files with OpenSSL 3.x. However, it breaks compatibility with OpenSSL 1.0.x and earlier.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eYou can use the \u003ccode\u003e-UseModernPfxEncryption\u003c/code\u003e flag with \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e. When used with \u003ccode\u003eSet-PAOrder\u003c/code\u003e, existing PFX files will be re-written based on the flag's new value.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eSet-PAOrder -UseModernPfxEncryption:$false\u003c/code\u003e to switch back to the default setting.\u003c/li\u003e\n\u003cli\u003eThe default for new orders will likely remain off until Posh-ACME 5.x is released.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://portsgroup.com/\" rel=\"nofollow\"\u003ePortsManagement\u003c/a\u003e (Thanks @wemmer)\u003c/li\u003e\n\u003cli\u003eThe GCloud plugin has a new optional parameter, \u003ccode\u003eGCProjectId\u003c/code\u003e that takes one or more string values. This is only required if the DNS zones to modify don't reside in the same project as the service account referenced by \u003ccode\u003eGCKeyFile\u003c/code\u003e or they reside in multiple projects. When used, be sure to include all project IDs including the one referenced by \u003ccode\u003eGCKeyFile\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded Google's new free ACME CA to the CA comparison doc\u003c/li\u003e\n\u003cli\u003eUpgraded the embedded BouncyCastle library to 1.9.0\u003c/li\u003e\n\u003cli\u003eFixed UKFast plugin to support paging for accounts with many domains (Thanks @0x4c6565)\u003c/li\u003e\n\u003cli\u003eFixed PFX friendly name generation when not provided in the order.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.14.0 (2022-04-12)\u003c/h2\u003e\u003ca id=\"user-content-4140-2022-04-12\" class=\"anchor\" aria-label=\"Permalink: 4.14.0 (2022-04-12)\" href=\"#4140-2022-04-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://porkbun.com/\" rel=\"nofollow\"\u003ePorkbun\u003c/a\u003e (Thanks @CaiB)\u003c/li\u003e\n\u003cli\u003eAdded server shortcuts for Google's new ACME CA, GOOGLE_PROD and GOOGLE_STAGE.\u003c/li\u003e\n\u003cli\u003eAdded server shortcuts for SSL.com, SSLCOM_RSA and SSLCOM_ECC.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eUseAltAccountRefresh\u003c/code\u003e switch to \u003ccode\u003eSet-PAServer\u003c/code\u003e to workaround CAs that don't yet support direct account refreshes such as Google, SSL.com, and DigiCert. (#372) (#394)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew configs should have this set by default for CAs known to need it. But you will need to explicitly set it on any existing configs for these CAs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eLifetimeDays\u003c/code\u003e param on \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e to enable user requested cert lifetimes for ACME CAs that support the feature.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eGoogle's CA is the only free ACME CA known to currently support this and the order lifetime cannot be changed once it is created. Setting a new value on an existing order will only change the lifetime on subsequent renewals.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated Azure plugin to use the latest stable API version.\u003c/li\u003e\n\u003cli\u003eUpdated Azure guide to account for breaking changes in the Az module.\u003c/li\u003e\n\u003cli\u003eFixed GoDaddy plugin when using it with delegated sub-zones. (#430)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eNew-PAAccount\u003c/code\u003e when importing an existing key on CAs that require external account binding.\u003c/li\u003e\n\u003cli\u003eReduced the number of account refreshes that happen as part of normal operations.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.13.1 (2022-03-14)\u003c/h2\u003e\u003ca id=\"user-content-4131-2022-03-14\" class=\"anchor\" aria-label=\"Permalink: 4.13.1 (2022-03-14)\" href=\"#4131-2022-03-14\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed Loopia plugin after an upstream API change broke it. (Thanks @AlexanderRydberg)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.13.0 (2022-03-07)\u003c/h2\u003e\u003ca id=\"user-content-4130-2022-03-07\" class=\"anchor\" aria-label=\"Permalink: 4.13.0 (2022-03-07)\" href=\"#4130-2022-03-07\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.leaseweb.com/\" rel=\"nofollow\"\u003eLeaseWeb\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimply plugin migrated to v2 of the API. No changes should be necessary for existing users.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.12.0 (2022-01-13)\u003c/h2\u003e\u003ca id=\"user-content-4120-2022-01-13\" class=\"anchor\" aria-label=\"Permalink: 4.12.0 (2022-01-13)\" href=\"#4120-2022-01-13\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThe WebRoot plugin now supports multiple paths for the \u003ccode\u003eWRPath\u003c/code\u003e parameter. (#411)\u003c/li\u003e\n\u003cli\u003eClouDNS plugin error handling was modified so that invalid credential errors are properly surfaced instead of just throwing generic \"zone not found\" errors. (#414)\u003c/li\u003e\n\u003cli\u003eFixed a potential bug with \u003ccode\u003eSubmit-OrderFinalize\u003c/code\u003e when multiple orders have the same MainDomain property.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eNew-PACertificate\u003c/code\u003e not properly updating an existing order with updated order params (#412)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.11.0 (2021-11-24)\u003c/h2\u003e\u003ca id=\"user-content-4110-2021-11-24\" class=\"anchor\" aria-label=\"Permalink: 4.11.0 (2021-11-24)\" href=\"#4110-2021-11-24\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded \u003ca href=\"https://devblogs.microsoft.com/powershell/secretmanagement-and-secretstore-are-generally-available/\" rel=\"nofollow\"\u003eSecretManagement\u003c/a\u003e support! See \u003ca href=\"https://poshac.me/docs/v4/Guides/Using-SecretManagement/\" rel=\"nofollow\"\u003ethis guide\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugins:\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://www.combell.com/\" rel=\"nofollow\"\u003eCombell\u003c/a\u003e (Thanks @stevenvolckaert)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://totaluptime.com/solutions/cloud-dns-service/\" rel=\"nofollow\"\u003eTotalUptime\u003c/a\u003e (Thanks @CirotheSilver)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eInstall-PACertificate\u003c/code\u003e and the \u003ccode\u003e-Install\u003c/code\u003e switch on orders will now import associated chain certificates into the Intermediate cert store if they don't already exist. (#397)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNew-PAOrder\u003c/code\u003e will now throw an error if the order object returned by the ACME server matches an existing order with a different name. (#401)\u003c/li\u003e\n\u003cli\u003eThe progress bar for DNS propagation is now disabled by default unless a POSHACME_SHOW_PROGRESS environment variable is defined. A verbose message will be written once per minute as an alternative. (#402)\u003c/li\u003e\n\u003cli\u003eAdded auth token caching to CoreNetworks plugin to avoid getting rate limited. (#403)\u003c/li\u003e\n\u003cli\u003eFixed ISPConfig plugin throwing Incorrect datetime value errors when adding records (#404)\u003c/li\u003e\n\u003cli\u003eFixed a bug with \u003ccode\u003eSubmit-Renewal -AllAccounts\u003c/code\u003e that would prevent restoring the original active account. (Thanks @markpizz) (#395)\u003c/li\u003e\n\u003cli\u003eFixed usage example in EasyDns guide. (Thanks @webprofusion-chrisc) (#407)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.10.0 (2021-10-06)\u003c/h2\u003e\u003ca id=\"user-content-4100-2021-10-06\" class=\"anchor\" aria-label=\"Permalink: 4.10.0 (2021-10-06)\" href=\"#4100-2021-10-06\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.core-networks.de/\" rel=\"nofollow\"\u003eCoreNetworks\u003c/a\u003e (Thanks @dwydler)\u003c/li\u003e\n\u003cli\u003eFix for Regru plugin bug caused by provider API change (#392)\u003c/li\u003e\n\u003cli\u003eFix Submit-Renewal duplicating orders that have a custom name (#393)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.9.0 (2021-09-21)\u003c/h2\u003e\u003ca id=\"user-content-490-2021-09-21\" class=\"anchor\" aria-label=\"Permalink: 4.9.0 (2021-09-21)\" href=\"#490-2021-09-21\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.ispconfig.org/\" rel=\"nofollow\"\u003eISPConfig\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed the DOCean plugin when used with accounts that have more than 20 zones. (#384) (Thanks @Xpyder)\u003c/li\u003e\n\u003cli\u003eFixed a bug in the DOCean plugin that prevented publishing records against the zone apex.\u003c/li\u003e\n\u003cli\u003eFixed a bug using \u003ccode\u003eSet-PAOrder -PreferredChain\u003c/code\u003e on an existing but expired order that was recently upgraded from Posh-ACME 3.x.\u003c/li\u003e\n\u003cli\u003eFixed renewal window calculation for certs that have lifetimes shorter or longer than 90 days. (#382) (Thanks @lookcloser)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDue to the bug, certs with lifetimes longer than 90 days would renew early and certs with lifetimes shorter than 90 days would renew late or potentially not at all. Because the renewal window is calculated and saved at finalization time, the new module version won't fix the value on existing orders. It will only fix future orders/renewals.\u003c/li\u003e\n\u003cli\u003eIf you want to scan for and fix any orders that might have been affected by this bug, you can use the script posted here: \u003ca class=\"issue-link js-issue-link\" data-error-text=\"Failed to load title\" data-id=\"999733071\" data-permission-text=\"Title is private\" data-url=\"https://github.com/rmbolger/Posh-ACME/issues/382\" data-hovercard-type=\"issue\" data-hovercard-url=\"/rmbolger/Posh-ACME/issues/382/hovercard?comment_id=922128237\u0026amp;comment_type=issue_comment\" href=\"https://github.com/rmbolger/Posh-ACME/issues/382#issuecomment-922128237\"\u003ermbolger#382 (comment)\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed a benign bug with object serialization in PS 5.1 that was saving the dynamic attributes on server/account/order objects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.8.1 (2021-09-12)\u003c/h2\u003e\u003ca id=\"user-content-481-2021-09-12\" class=\"anchor\" aria-label=\"Permalink: 4.8.1 (2021-09-12)\" href=\"#481-2021-09-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed a bug introduced in 4.7.0 that broke \u003ccode\u003eSet-PAAccount -UseAltPluginEncryption\u003c/code\u003e preventing plugin args for orders from being properly re-encrypted.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.8.0 (2021-09-09)\u003c/h2\u003e\u003ca id=\"user-content-480-2021-09-09\" class=\"anchor\" aria-label=\"Permalink: 4.8.0 (2021-09-09)\" href=\"#480-2021-09-09\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDocumentation Revamp\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://poshac.me/docs\" rel=\"nofollow\"\u003ehttps://poshac.me/docs\u003c/a\u003e is a new dedicated website for Posh-ACME documentation. Existing guides and tutorials have been migrated there from the Github wiki. The site is currently generated using the Markdown files in the \u003ccode\u003edocs\u003c/code\u003e folder in the main project repository by \u003ca href=\"https://www.mkdocs.org/\" rel=\"nofollow\"\u003eMkDocs\u003c/a\u003e. So it should now be easier to contribute fixes and updates.\u003c/li\u003e\n\u003cli\u003eThe native module help is now also generated by \u003ca href=\"https://github.com/PowerShell/platyPS\"\u003eplatyPS\u003c/a\u003e from the Markdown files in \u003ccode\u003edocs/Functions\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGet-Help \u0026lt;function name\u0026gt; -Online\u003c/code\u003e should now open your browser to the appropriate page on the documentation site.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe DeSEC plugin has new \u003ccode\u003eDSCToken\u003c/code\u003e and \u003ccode\u003eDSCTTL\u003c/code\u003e params to avoid conflicts with the DNSimple plugin. The old \u003ccode\u003eDSToken\u003c/code\u003e, \u003ccode\u003eDSTokenInsecure\u003c/code\u003e, and \u003ccode\u003eDSTTL\u003c/code\u003e parameters have been deprecated.\u003c/li\u003e\n\u003cli\u003e\"Insecure\" plugin parameter sets which include secrets, tokens, or passwords using a standard String instead of a SecureString or PSCredential have been deprecated across all plugins that had them.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDeprecated means that they will continue to work in Posh-ACME 4.x, but will stop working when 5.0 is released.\u003c/li\u003e\n\u003cli\u003eIf you are currently using a deprecated parameter set, please migrate to a secure one when convenient.\u003c/li\u003e\n\u003cli\u003eSee your plugin's \u003ca href=\"https://poshac.me/docs/v4/Plugins/\" rel=\"nofollow\"\u003eusage guide\u003c/a\u003e for more information.\u003c/li\u003e\n\u003cli\u003eFor help finding deprecated parameters in your config, see \u003ca href=\"https://poshac.me/docs/v4/Guides/Find-Deprecated-PluginArgs/\" rel=\"nofollow\"\u003ethis guide\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eThe following plugins have added new \"Secure\" parameter sets:\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eBlueCat\u003c/li\u003e\n\u003cli\u003eCloudflare\u003c/li\u003e\n\u003cli\u003eDOcean\u003c/li\u003e\n\u003cli\u003eDreamhost\u003c/li\u003e\n\u003cli\u003eDynu\u003c/li\u003e\n\u003cli\u003eEasyDNS\u003c/li\u003e\n\u003cli\u003eGoDaddy\u003c/li\u003e\n\u003cli\u003eNameCom\u003c/li\u003e\n\u003cli\u003eZonomi\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePlugin\u003c/code\u003e property has been added to the output objects returned by \u003ccode\u003eGet-PAPlugin \u0026lt;Plugin\u0026gt; -Params\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.7.1 (2021-08-28)\u003c/h2\u003e\u003ca id=\"user-content-471-2021-08-28\" class=\"anchor\" aria-label=\"Permalink: 4.7.1 (2021-08-28)\" href=\"#471-2021-08-28\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed a parameter binding bug in New-PACertificate that could cause renewals to stall in some cases due to an interactive prompt.\u003c/li\u003e\n\u003cli\u003eFixed help for Export-PAAccountKey\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.7.0 (2021-08-24)\u003c/h2\u003e\u003ca id=\"user-content-470-2021-08-24\" class=\"anchor\" aria-label=\"Permalink: 4.7.0 (2021-08-24)\" href=\"#470-2021-08-24\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eServers, Accounts, and Orders all now have configurable Names that also determine the name of their associated folders in the config on the filesystem. (#345) This is a fairly large change, but significant effort has been spent implementing it so that dependent scripts will not break.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003cstrong\u003ePlease backup your current config before customizing your object names.\u003c/strong\u003e Previous Posh-ACME versions will break trying to read configs with custom names.\u003c/li\u003e\n\u003cli\u003eAll customized names may only use the following characters to avoid cross-platform filesystem compatibility issues: \u003ccode\u003e0-9 a-z A-Z - . _ !\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003eNewName\u003c/code\u003e parameter has been added to \u003ccode\u003eSet-PAServer\u003c/code\u003e, \u003ccode\u003eSet-PAAccount\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e to change the name of each type of object.\u003c/li\u003e\n\u003cli\u003eServer related functions now have an optional \u003ccode\u003eName\u003c/code\u003e parameter which can be used instead of or in addition to the \u003ccode\u003eDirectoryUrl\u003c/code\u003e parameter. This includes \u003ccode\u003eGet/Remove/Set-PAServer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eIf a server doesn't already exist, \u003ccode\u003eSet-PAServer\u003c/code\u003e will use the \u003ccode\u003e-Name\u003c/code\u003e parameter for the new server's name. If the server already exists, it is ignored.\u003c/li\u003e\n\u003cli\u003eReturned server objects now have \u003ccode\u003eName\u003c/code\u003e and \u003ccode\u003eFolder\u003c/code\u003e properties.\u003c/li\u003e\n\u003cli\u003eDespite being able to customize Server names, you may still only have a single instance of each unique ACME server in your config. This may chang in a future major version.\u003c/li\u003e\n\u003cli\u003eAccount related functions that have an \u003ccode\u003eID\u003c/code\u003e parameter now have a \u003ccode\u003eName\u003c/code\u003e parameter alias. This includes \u003ccode\u003eGet/Remove/Set-PAAccount\u003c/code\u003e and \u003ccode\u003eExport-PAAccountKey\u003c/code\u003e. The ID parameter should be considered deprecated and in future major versions will be replaced by \u003ccode\u003eName\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eID\u003c/code\u003e parameter was added to \u003ccode\u003eNew-PAAccount\u003c/code\u003e to allow setting the customized ID on creation instead of using the server provided default value.\u003c/li\u003e\n\u003cli\u003eReturned account objects now have a \u003ccode\u003eFolder\u003c/code\u003e property and the \u003ccode\u003eid\u003c/code\u003e property now reflects the customizable value.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eid\u003c/code\u003e property on account objects is deprecated and will be changed to \u003ccode\u003eName\u003c/code\u003e in a future major version.\u003c/li\u003e\n\u003cli\u003eOrder related functions now have an optional \u003ccode\u003eName\u003c/code\u003e parameter to distinguish between multiple orders that may have the same \u003ccode\u003eMainDomain\u003c/code\u003e. This includes \u003ccode\u003eGet/Revoke/New-PACertificate\u003c/code\u003e, \u003ccode\u003eGet/New/Set/Remove-PAOrder\u003c/code\u003e, \u003ccode\u003eGet-PAPluginArgs\u003c/code\u003e, \u003ccode\u003eInvoke-HttpChallengeListener\u003c/code\u003e, and \u003ccode\u003eSubmit-Renewal\u003c/code\u003e. In most cases, the \u003ccode\u003eName\u003c/code\u003e parameter can also be used by itself as a unique identifier for orders.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eName\u003c/code\u003e parameter on \u003ccode\u003eNew-PACertificate\u003c/code\u003e and \u003ccode\u003eNew-PAOrder\u003c/code\u003e allows setting the customized order name on creation instead of using the MainDomain default value.\u003c/li\u003e\n\u003cli\u003eReturned order objects now have a \u003ccode\u003eName\u003c/code\u003e property (not to be confused with \u003ccode\u003eFriendlyName\u003c/code\u003e which only affects the certificate associated with the order).\u003c/li\u003e\n\u003cli\u003eOrder related error and log messages that previously mentioned the order's MainDomain have been changed to use the order's Name instead.\u003c/li\u003e\n\u003cli\u003eTo retain backwards compatibility with existing 4.x dependent scripts, \u003ccode\u003eGet-PAOrder\u003c/code\u003e will return the single, most recent order when used with \u003ccode\u003e-MainDomain\u003c/code\u003e even if there are multiple matching orders. This also affects \u003ccode\u003eGet-PACertificate\u003c/code\u003e which uses Get-PAOrder under the hood.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSet-PAOrder\u003c/code\u003e, \u003ccode\u003eRevoke-PACertificate\u003c/code\u003e, and \u003ccode\u003eRemove-PAOrder\u003c/code\u003e will throw an error if only \u003ccode\u003eMainDomain\u003c/code\u003e is specified and it matches multiple orders. Specify the \u003ccode\u003eName\u003c/code\u003e parameter as well to ensure a unique order match.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCustom plugins can now be loaded from an alternate filesystem location by creating a \u003ccode\u003ePOSHACME_PLUGINS\u003c/code\u003e environment variable before the module is loaded. The value should be a folder path that contains uniquely named .ps1 plugin files. If any custom plugins have the same name as native plugins, a warning will be thrown and they will not be loaded.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eNew-PAAuthorization\u003c/code\u003e which allows the creation of authorization objects outside the context of an order. NOTE: BuyPass is the only free ACME CA that currently supports this feature.\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eOnlyReturnExisting\u003c/code\u003e parameter to \u003ccode\u003eNew-PAAccount\u003c/code\u003e when using an imported key which instructs the ACME server to only return account details if an account already exists for that key.\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003eNoSwitch\u003c/code\u003e parameter to \u003ccode\u003eSet-PAServer\u003c/code\u003e so you can modify the active server without switching to it.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eAllSANs\u003c/code\u003e field on PACertificate objects now reflects the SAN list on the actual certificate instead of its associated ACME order (just in case the two lists have divered for some strange reason).\u003c/li\u003e\n\u003cli\u003eAdded missing help on \u003ccode\u003eGet-PAPluginArgs\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eDefault formatting for PAServer objects has been tweaked to show more useful info.\u003c/li\u003e\n\u003cli\u003eDefault formatting for PAOrder object now includes \u003ccode\u003eName\u003c/code\u003e and has removed \u003ccode\u003eOSCPMustStaple\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eQuiet\u003c/code\u003e parameter has been removed from the \u003ccode\u003eGet-PAServer -List\u003c/code\u003e parameter set because it didn't make sense.\u003c/li\u003e\n\u003cli\u003eFixed an example in \u003ccode\u003eRemove-PAServer\u003c/code\u003e help.\u003c/li\u003e\n\u003cli\u003eAdded workaround for BuyPass bug that prevents some error details from being parsed.\u003c/li\u003e\n\u003cli\u003eAdjusted support for Account Key Rollover to more closely follow RFC8555 which fixes a bug using it with BuyPass\u003c/li\u003e\n\u003cli\u003eChanged some logic in \u003ccode\u003eRevoke-PACertificate\u003c/code\u003e so that it works with BuyPass which doesn't seem to support revocation using the cert's private key.\u003c/li\u003e\n\u003cli\u003eOrders using an ECC private key will no longer include Key Encipherment in the CSR's keyUsage when submitting an order for finalization. Key Encipherment is not supported for ECDSA certs and some CAs were rejecting the finalization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.6.0 (2021-07-25)\u003c/h2\u003e\u003ca id=\"user-content-460-2021-07-25\" class=\"anchor\" aria-label=\"Permalink: 4.6.0 (2021-07-25)\" href=\"#460-2021-07-25\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://hosting.de/\" rel=\"nofollow\"\u003eHostingDe\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://beget.com/\" rel=\"nofollow\"\u003eBeget\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRevoke-PACertificate no longer requires a configured account when using an explicit cert/key (#361)\u003c/li\u003e\n\u003cli\u003eFixed Aurora plugin for edge case bug with PowerShell Core (#353)\u003c/li\u003e\n\u003cli\u003eFixed DirectoryUrl completers in PS 5.1 when no servers currently exist.\u003c/li\u003e\n\u003cli\u003eFixed unauthenticated updates with RFC2136 plugin (#360) (Thanks @dsbibby)\u003c/li\u003e\n\u003cli\u003eRefactored Simply plugin to be IDN agnostic and redact API keys from logging (#352)\u003c/li\u003e\n\u003cli\u003eACME errors from New-PAAccount should be less ugly now.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.5.0 (2021-05-29)\u003c/h2\u003e\u003ca id=\"user-content-450-2021-05-29\" class=\"anchor\" aria-label=\"Permalink: 4.5.0 (2021-05-29)\" href=\"#450-2021-05-29\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAurora for \u003ca href=\"https://pcextreme.nl/\" rel=\"nofollow\"\u003ePCExtreme\u003c/a\u003e (Thanks @j81blog)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://ukfast.co.uk/\" rel=\"nofollow\"\u003eUKFast\u003c/a\u003e (Thanks @Overglazed)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded new function \u003ccode\u003eRevoke-PACertificate\u003c/code\u003e which provides more options for cert revocation including the ability to revoke certs not created with other clients or ACME accounts if you have the private key.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eManualNonInteractive\u003c/code\u003e switch to the Manual plugin to suppress the interactive prompt after showing the TXT record details that need to be created. (Thanks @hhhuut)\u003c/li\u003e\n\u003cli\u003eAdded additional guidance in the plugin dev guide.\u003c/li\u003e\n\u003cli\u003eOptimized module load time by pre-caching native plugin details.\u003c/li\u003e\n\u003cli\u003eFixed support for IDN domains in Simply plugin (Thanks @Norskov)\u003c/li\u003e\n\u003cli\u003eFixed Azure plugin bug when DnsAlias matches the zone apex. (#348)\u003c/li\u003e\n\u003cli\u003eFixed Azure plugin to support IMDS auth within Azure Automation. (#349)\u003c/li\u003e\n\u003cli\u003eFixed tests for Pester 5.2\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.4.0 (2021-05-03)\u003c/h2\u003e\u003ca id=\"user-content-440-2021-05-03\" class=\"anchor\" aria-label=\"Permalink: 4.4.0 (2021-05-03)\" href=\"#440-2021-05-03\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ca href=\"https://constellix.com/\" rel=\"nofollow\"\u003eConstellix\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://all-inkl.com/\" rel=\"nofollow\"\u003eAll-Inkl\u003c/a\u003e (Thanks @astaerk)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://www.easyname.com/\" rel=\"nofollow\"\u003eEasyname\u003c/a\u003e (Thanks @codemanat)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eFolder\u003c/code\u003e property to Get-PAOrder output\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eKeyFile\u003c/code\u003e parameter to New-PAOrder to allow importing an existing private key\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.3.2 (2021-03-13)\u003c/h2\u003e\u003ca id=\"user-content-432-2021-03-13\" class=\"anchor\" aria-label=\"Permalink: 4.3.2 (2021-03-13)\" href=\"#432-2021-03-13\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed New-PACertificate not using the previous order's KeyLength value if it exists and wasn't overridden by an explicit parameter value. (#326)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSubmit-Renewal\u003c/code\u003e not sending all previous order parameters to \u003ccode\u003eNew-PACertificate\u003c/code\u003e (#326) (Thanks @juliansiebert)\u003c/li\u003e\n\u003cli\u003eFixed module load errors for some environment with older .NET Framework versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.3.1 (2021-03-12)\u003c/h2\u003e\u003ca id=\"user-content-431-2021-03-12\" class=\"anchor\" aria-label=\"Permalink: 4.3.1 (2021-03-12)\" href=\"#431-2021-03-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed Route53 plugin to check for pre-imported AWS module (#324)\u003c/li\u003e\n\u003cli\u003eFixed telemetry ping not respecting DisableTelemetry option in \u003ccode\u003eSet-PAServer\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eTelemetry ping no longer uses \u003ccode\u003eStart-Job\u003c/code\u003e which should avoid errors when running in Azure functions and other scenarios where PowerShell is hosted within another application.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.3.0 (2021-02-24)\u003c/h2\u003e\u003ca id=\"user-content-430-2021-02-24\" class=\"anchor\" aria-label=\"Permalink: 4.3.0 (2021-02-24)\" href=\"#430-2021-02-24\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePreferredChain selection logic has been updated to consider \"distance from root\" as a way to break ties when the specified CA subject is found in multiple chains. Chains with the CA closer to the root take precedence over ones with it further away. (#315)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCFTokenReadAll\u003c/code\u003e and \u003ccode\u003eCFTokenReadAllInsecure\u003c/code\u003e have been removed from the Cloudflare plugin because they are no longer needed. Cloudflare fixed the API bug that made them necessary when using edit tokens scoped to a specific zone or zones. No user action is required if you were previously using these parameters. They will simply be ignored.\u003c/li\u003e\n\u003cli\u003eHTTP call detail has been changed from Verbose to Debug output in Cloudflare and Route53 plugins.\u003c/li\u003e\n\u003cli\u003eFixed CSR handing for CSRs that have no attributes (#317) (Thanks @methorpe)\u003c/li\u003e\n\u003cli\u003eFixed Route53 plugin compatibility with older versions of the AWSPowerShell module (#318)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eDeprecation Notice\u003c/h3\u003e\u003ca id=\"user-content-deprecation-notice\" class=\"anchor\" aria-label=\"Permalink: Deprecation Notice\" href=\"#deprecation-notice\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eMany plugins have optional parameter sets that use \"Insecure\" versions of the primary SecureString or PSCredential parameters due to bugs in early versions of PowerShell 6 that prevented using them on non-Windows OSes. Those bugs have been fixed since PowerShell 6.2 and the insecure parameter sets should be considered deprecated and will likely be removed in the next major version (5.x) of Posh-ACME. Individual plugin usage guides will slowly be updated over the course of 4.x to warn about the specific parameter deprecations.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.2.0 (2021-02-01)\u003c/h2\u003e\u003ca id=\"user-content-420-2021-02-01\" class=\"anchor\" aria-label=\"Permalink: 4.2.0 (2021-02-01)\" href=\"#420-2021-02-01\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eInfomaniak (Thanks @Sundypha)\u003c/li\u003e\n\u003cli\u003eZilore\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eACMEUri\u003c/code\u003e option to AcmeDns plugin which allows specifying the complete URI instead of just the hostname. (Thanks @AvrumFeldman)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.1.0 (2021-01-18)\u003c/h2\u003e\u003ca id=\"user-content-410-2021-01-18\" class=\"anchor\" aria-label=\"Permalink: 4.1.0 (2021-01-18)\" href=\"#410-2021-01-18\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eCompatibility updates for RFC2136 plugin (#308)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNow uses exit code from nsupdate instead of output parsing to determine success and avoid possible language inconsistencies (#307)\u003c/li\u003e\n\u003cli\u003eAdded optional DDNSZone param to avoid initial SOA lookup that breaks in some environments (#307)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRemoved UnoEuro plugin because API endpoint is no longer functional. Users should switch to the Simply plugin. (#303)\u003c/li\u003e\n\u003cli\u003eMoved HTTP call detail from Verbose to Debug output for Infoblox plugin\u003c/li\u003e\n\u003cli\u003eFixed partial zone matching bug for Domeneshop plugin (#305)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSubmit-Renewal -AllOrders\u003c/code\u003e so it no longer skips invalid or pending orders\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e4.0.0 (2020-12-18)\u003c/h2\u003e\u003ca id=\"user-content-400-2020-12-18\" class=\"anchor\" aria-label=\"Permalink: 4.0.0 (2020-12-18)\" href=\"#400-2020-12-18\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cp dir=\"auto\"\u003eThere is a 3.x to 4.x \u003ca href=\"https://github.com/rmbolger/Posh-ACME/wiki/Frequently-Asked-Questions-%28FAQ%29#how-do-i-upgrade-from-3x-to-4x\"\u003emigration guide\u003c/a\u003e in the FAQ on the wiki. But no changes should be necessary for users with existing certs that are renewing using \u003ccode\u003eSubmit-Renewal\u003c/code\u003e unless they were also using the \u003ccode\u003e-NewKey\u003c/code\u003e parameter which has been removed. Orders can now be configured to always generate a new private key using \u003ccode\u003eSet-PAOrder -AlwaysNewKey\u003c/code\u003e.\u003c/p\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eNew Features\u003c/h3\u003e\u003ca id=\"user-content-new-features\" class=\"anchor\" aria-label=\"Permalink: New Features\" href=\"#new-features\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThe DNS plugin system has been revamped to support both dns-01 and http-01 challenges. (#124)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAll existing DNS plugins have been upgraded to the new plugin format. See the README in the plugins folder for details and instructions on how to upgrade your own custom plugins.\u003c/li\u003e\n\u003cli\u003eThere are two new http-01 challenge plugins called \u003ccode\u003eWebRoot\u003c/code\u003e and \u003ccode\u003eWebSelfHost\u003c/code\u003e. See their usage guides for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePlugin args are now saved per-order rather than per-account and as JSON rather than XML.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThis has the side effect that new orders using the same plugin(s) as a previous order will no longer reuse the previous args.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eGet-PAPluginArgs\u003c/code\u003e which returns a hashtable with the plugin args associated with the current or specified order. You can use this to retrieve another order's plugin args and use that object with your new order.\u003c/li\u003e\n\u003cli\u003ePre-4.x plugin args will be automatically migrated to per-order plugin args the first time an account is selected using \u003ccode\u003eSet-PAAccount\u003c/code\u003e or on module load for the last selected account. The old file will be backed up with a \".v3\" extension in case you need to revert.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003ePortable, Cross-Platform encryption is now supported for secure plugin parameters on disk and can be configured on a per-account basis. It is based on a 256-bit AES key generated for the account. This makes it possible to migrate a Posh-ACME config between users, machines, or OSes without needing to re-configure secure plugin args. (#150)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eTo enable, set the \u003ccode\u003eUseAltPluginEncryption\u003c/code\u003e switch on \u003ccode\u003eNew-PAAccount\u003c/code\u003e or \u003ccode\u003eSet-PAAccount\u003c/code\u003e. This will immediately re-encrypt plugin args for all orders associated with the account.\u003c/li\u003e\n\u003cli\u003eTo disable/revert, run \u003ccode\u003eSet-PAAccount -UseAltPluginEncryption:$false\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eIf you believe the encryption key has been compromised, use \u003ccode\u003eSet-PAAccount -ResetAltPluginEncryption\u003c/code\u003e to generate a new key and re-encrypt everything.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGet-PAPlugin\u003c/code\u003e is a new function that replaces \u003ccode\u003eGet-DnsPlugins\u003c/code\u003e and \u003ccode\u003eGet-DnsPluginHelp\u003c/code\u003e.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eWith no parameters, lists all plugins and their details\u003c/li\u003e\n\u003cli\u003eWith a plugin parameter, shows the details for just that plugin\u003c/li\u003e\n\u003cli\u003eWith a plugin and \u003ccode\u003e-Help\u003c/code\u003e, shows the plugin's help\u003c/li\u003e\n\u003cli\u003eWith a plugin and \u003ccode\u003e-Guide\u003c/code\u003e, opens the default browser to the plugin's online guide\u003c/li\u003e\n\u003cli\u003eWith a plugin and \u003ccode\u003e-Params\u003c/code\u003e, displays the plugin-specific parameter sets (#151)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eAlwaysNewKey\u003c/code\u003e switch to \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e. This flag tells Posh-ACME to always generate a new private key on renewals. The old parameters for key replacement have been removed. (#181)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eUseSerialValidation\u003c/code\u003e switch to \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e. This flag tells Posh-ACME to process the order's authorization challenges serially rather than in parallel. This is primarily useful for providers like DuckDNS that only allow a single TXT record to be written at a time.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eComplete-PAOrder\u003c/code\u003e which does the final processing steps like downloading the signed cert and updating renewal window for an order that has reached the 'ready' state. This avoids the need to use \u003ccode\u003eNew-PACertificate\u003c/code\u003e when doing custom certificate workflows.\u003c/li\u003e\n\u003cli\u003eThe PfxPass parameter on order objects is now obfuscated when serialized to disk. (#207)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ePfxPassSecure\u003c/code\u003e (SecureString) parameter to \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e which takes precedence over \u003ccode\u003ePfxPass\u003c/code\u003e if specified. (#207)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eDnsAlias\u003c/code\u003e and \u003ccode\u003eOCSPMustStaple\u003c/code\u003e parameters to \u003ccode\u003eSet-PAOrder\u003c/code\u003e. Changing an order's OCSPMustStaple value will throw a warning that it only affects future certificates generated from the order.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003ePlugin\u003c/code\u003e, \u003ccode\u003ePluginArgs\u003c/code\u003e, \u003ccode\u003eDnsAlias\u003c/code\u003e, \u003ccode\u003eDnsSleep\u003c/code\u003e, and \u003ccode\u003eValidationTimeout\u003c/code\u003e parameters to \u003ccode\u003eNew-PAOrder\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eDirectoryUrl\u003c/code\u003e parameter in \u003ccode\u003eSet-PAServer\u003c/code\u003e is now optional. If not specified, it will use the currently active server.\u003c/li\u003e\n\u003cli\u003eAn attempt will now be made to send anonymous telemetry data to the Posh-ACME team when \u003ccode\u003eSubmit-OrderFinalize\u003c/code\u003e is called directly or indirectly.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThe only data sent is the standard HTTP User-Agent header which includes the Posh-ACME version, PowerShell version, and generic OS platform (Windows/Linux/MacOS/Unknown).\u003c/li\u003e\n\u003cli\u003eThis can be disabled per ACME server using a new \u003ccode\u003eDisableTelemetry\u003c/code\u003e parameter in \u003ccode\u003eSet-PAServer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eThe data will be used to guide future development decisions in the module.\u003c/li\u003e\n\u003cli\u003eThe same User-Agent header is also sent with all calls to the ACME server which is a requirement of the protocol and can't be disabled.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eNoRefresh\u003c/code\u003e switch to \u003ccode\u003eSet-PAServer\u003c/code\u003e which prevents a request to the ACME server to update endpoint and nonce info. This is useful for updating local preferences without making a server round-trip.\u003c/li\u003e\n\u003cli\u003eBUYPASS_PROD and BUYPASS_TEST are now recognized shortcuts for the the buypass.com CA environments when you use \u003ccode\u003eSet-PAServer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eZEROSSL_PROD is now a recognized shortcut for the zerossl.com CA when you use \u003ccode\u003eSet-PAServer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded tab completion for \u003ccode\u003eDirectoryUrl\u003c/code\u003e in \u003ccode\u003eSet-PAServer\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eQuiet\u003c/code\u003e parameter to \u003ccode\u003eGet-PAServer\u003c/code\u003e which will prevent warnings if the specified server was not found.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRemove-PAServer\u003c/code\u003e will now throw a warning instead of an error if the specified server doesn't exist on disk.\u003c/li\u003e\n\u003cli\u003eOrders can now be passed by pipeline to \u003ccode\u003eSubmit-ChallengeValidation\u003c/code\u003e and \u003ccode\u003eSubmit-OrderFinalize\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eACME protocol web request details have been moved from Verbose to Debug output and cleaned up so they're easier to follow. Web requests made from plugins will still be in Verbose output for the time being.\u003c/li\u003e\n\u003cli\u003eExperimental support for IP address identifiers (\u003ca href=\"https://tools.ietf.org/html/rfc8738\" rel=\"nofollow\"\u003eRFC 8738\u003c/a\u003e) in new orders. This allows you to get a cert for an IP address if your ACME server supports it.\u003c/li\u003e\n\u003cli\u003ePrivate keys for Accounts and Certificates can now use ECC P-521 (secp521r1) based keys using the \u003ccode\u003eec-521\u003c/code\u003e key length parameter. \u003cem\u003eThis requires support at the ACME server level as well.\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eBreaking Changes\u003c/h3\u003e\u003ca id=\"user-content-breaking-changes\" class=\"anchor\" aria-label=\"Permalink: Breaking Changes\" href=\"#breaking-changes\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFunction Changes\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003ePublish-DnsChallenge\u003c/code\u003e is now \u003ccode\u003ePublish-Challenge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnpublish-DnsChallenge\u003c/code\u003e is now \u003ccode\u003eUnpublish-Challenge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSave-DnsChallenge\u003c/code\u003e is now \u003ccode\u003eSave-Challenge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGet-DnsPlugins\u003c/code\u003e and \u003ccode\u003eGet-DnsPluginHelp\u003c/code\u003e have been replaced by \u003ccode\u003eGet-PAPlugin\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGet-PAAuthorizations\u003c/code\u003e is now \u003ccode\u003eGet-PAAuthorization\u003c/code\u003e. The plural function name is still avaialble as an alias but is deprecated and may be removed in a future release.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eInvoke-HttpChallengeListener\u003c/code\u003e is deprecated and may be removed in a future release. Users should migrate to the \u003ccode\u003eWebSelfHost\u003c/code\u003e plugin.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eParameter Changes\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAll \u003ccode\u003eDnsPlugin\u003c/code\u003e parameters are now \u003ccode\u003ePlugin\u003c/code\u003e with a \u003ccode\u003eDnsPlugin\u003c/code\u003e alias for backwards compatibility. The alias should be considered deprecated and may be removed in a future release.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eNoPrefix\u003c/code\u003e switch in Publish/Unpublish-Challenge has been replaced with a \u003ccode\u003eDnsAlias\u003c/code\u003e parameter that will override the \u003ccode\u003eDomain\u003c/code\u003e parameter if specified. \"_acme-challenge.\" will not be automatically added to the \u003ccode\u003eDnsAlias\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNewKey\u003c/code\u003e has been removed from \u003ccode\u003eSubmit-Renewal\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNewKey\u003c/code\u003e/\u003ccode\u003eNewCertKey\u003c/code\u003e have been replaced by \u003ccode\u003eAlwaysNewKey\u003c/code\u003e in \u003ccode\u003eNew-PACertificate\u003c/code\u003e and \u003ccode\u003eNew-PAOrder\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAlwaysNewKey\u003c/code\u003e has been added to \u003ccode\u003eSet-PAOrder\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eDnsPlugin\u003c/code\u003e, \u003ccode\u003ePluginArgs\u003c/code\u003e, \u003ccode\u003eDnsAlias\u003c/code\u003e, \u003ccode\u003eDnsSleep\u003c/code\u003e, \u003ccode\u003eValidationTimeout\u003c/code\u003e and \u003ccode\u003eAccount\u003c/code\u003e parameters have been removed from \u003ccode\u003eSubmit-ChallengeValidation\u003c/code\u003e. The account associated with the order must be the currently active account. The rest of the parameters are read directly from the order object and can be modified in advance with \u003ccode\u003eSet-PAOrder\u003c/code\u003e if necessary.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAccount\u003c/code\u003e parameter has been removed from \u003ccode\u003eSubmit-OrderFinalize\u003c/code\u003e. The account associated with the order must be the currently active account.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch3 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003eFixes\u003c/h3\u003e\u003ca id=\"user-content-fixes\" class=\"anchor\" aria-label=\"Permalink: Fixes\" href=\"#fixes\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eUsing \u003ccode\u003eGet-PAOrder\u003c/code\u003e with \u003ccode\u003e-Refresh\u003c/code\u003e will no longer throw a terminating error if the ACME server returns an error. It will warn and return the cached copy of the order instead.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eRemove-PAServer\u003c/code\u003e not being able to remove a server that is unreachable.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRemove-PAServer\u003c/code\u003e no longer requires confirmation when there are no cached accounts associated with the specified server in the local config.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.20.0 (2020-11-25)\u003c/h2\u003e\u003ca id=\"user-content-3200-2020-11-25\" class=\"anchor\" aria-label=\"Permalink: 3.20.0 (2020-11-25)\" href=\"#3200-2020-11-25\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAzure plugin now supports other Azure cloud environments via the \u003ccode\u003eAZEnvironment\u003c/code\u003e parameter. Supported values are \u003ccode\u003eAzureCloud\u003c/code\u003e (Default), \u003ccode\u003eAzureUSGovernment\u003c/code\u003e, \u003ccode\u003eAzureGermanCloud\u003c/code\u003e, and \u003ccode\u003eAzureChinaCloud\u003c/code\u003e. (#293) (Thanks @InKahootz)\u003c/li\u003e\n\u003cli\u003eFixed parameter binding and other bugs in Simply plugin. (#294)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.19.0 (2020-11-20)\u003c/h2\u003e\u003ca id=\"user-content-3190-2020-11-20\" class=\"anchor\" aria-label=\"Permalink: 3.19.0 (2020-11-20)\" href=\"#3190-2020-11-20\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.simply.com/\" rel=\"nofollow\"\u003eSimply\u003c/a\u003e who recently changed their name from UnoEuro. Existing users of the UnoEuro plugin should migrate to the Simply plugin as soon as possible because the UnoEuro plugin may stop working if they decommission the old API endpoint.\u003c/li\u003e\n\u003cli\u003eWarnings have been added to the UnoEuro plugin to inform users about migrating to Simply.\u003c/li\u003e\n\u003cli\u003eUpdated DNSPod plugin to work with their recent API changes. Existing users will need to generate a new API key from the management console and update the plugin args for their orders. See the \u003ca href=\"https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/DNSPod-Readme.md\"\u003eusage guide\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003eFixed a bug in \u003ccode\u003eNew-PAAccount\u003c/code\u003e when the account location URI had query parameters. (Thanks @KaiWalter)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.18.1 (2020-11-12)\u003c/h2\u003e\u003ca id=\"user-content-3181-2020-11-12\" class=\"anchor\" aria-label=\"Permalink: 3.18.1 (2020-11-12)\" href=\"#3181-2020-11-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eUpgraded BouncyCastle to 1.8.8.2 for version parity with Az.KeyVault to prevent module load errors in PowerShell 6+\u003c/li\u003e\n\u003cli\u003eFixed DuckDNS plugin file locations in .NET 4.6 fork.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.18.0 (2020-11-07)\u003c/h2\u003e\u003ca id=\"user-content-3180-2020-11-07\" class=\"anchor\" aria-label=\"Permalink: 3.18.0 (2020-11-07)\" href=\"#3180-2020-11-07\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.duckdns.org/\" rel=\"nofollow\"\u003eDuckDNS\u003c/a\u003e. Note that due to provider limitations, this plugin can only normally be used for certs with a single name unless you workaround the limitation with custom scripting. See the \u003ca href=\"https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/DuckDNS-Readme.md\"\u003eusage guide\u003c/a\u003e for details.\u003c/li\u003e\n\u003cli\u003eFixed an example in \u003ccode\u003eExport-PAAccountKey\u003c/code\u003e help.\u003c/li\u003e\n\u003cli\u003eAdded code to detect 4.x configs and gracefully revert in case folks need to downgrade after upgrading to 4.x when it comes out.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.17.0 (2020-10-09)\u003c/h2\u003e\u003ca id=\"user-content-3170-2020-10-09\" class=\"anchor\" aria-label=\"Permalink: 3.17.0 (2020-10-09)\" href=\"#3170-2020-10-09\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNOTE: Let's Encrypt is now \u003ca href=\"https://community.letsencrypt.org/t/issuing-for-common-rsa-key-sizes-only/133839\" rel=\"nofollow\"\u003erestricting\u003c/a\u003e RSA private key sizes to 2048, 3072, and 4096 for certificates. But Posh-ACME will continue to allow custom key sizes which may still work with other certificate authorities.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNew-PAAccount\u003c/code\u003e and \u003ccode\u003eSet-PAAccount -KeyRollover\u003c/code\u003e now have a \u003ccode\u003e-KeyFile\u003c/code\u003e parameter that can be used to import an existing private key instead of generating a new one from scratch.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eExport-PAAccountKey\u003c/code\u003e which can be use to export your ACME account private key as a standard Base64 encoded PEM file.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFor Boulder-based CAs, this can be used to recover lost ACME account configurations if you run \u003ccode\u003eNew-PAAccount\u003c/code\u003e with the \u003ccode\u003e-KeyFile\u003c/code\u003e parameter and specify the exported key.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated Zonomi plugin to support alternative providers who use a compatible API. (#282)\u003c/li\u003e\n\u003cli\u003eFixed a bug in OVH plugin that would prevent TXT record deletion in some cases. (#283)\u003c/li\u003e\n\u003cli\u003eFixed a bug in many plugins that would prevent TXT record editing when the record name was also the zone root (#280) (Thanks @ShaBangBinBash)\u003c/li\u003e\n\u003cli\u003eFixed tutorial syntax error (#277) (Thanks @Leon99)\u003c/li\u003e\n\u003cli\u003eFixed errors in \u003ccode\u003eGet-PAAuthorizations\u003c/code\u003e when returned object has no 'expires' property. (#276) (Thanks @mortenmw)\u003c/li\u003e\n\u003cli\u003eChanged bad nonce retry message from Debug to Verbose so people using PowerShell's transcript features will see it more easily.\u003c/li\u003e\n\u003cli\u003eA generic platform value has been added to the user agent string the module sends with its ACME requests.\u003c/li\u003e\n\u003cli\u003eTests have been updated for use with Pester v5. Running them in a dedicated PowerShell process is recommended.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.16.0 (2020-08-31)\u003c/h2\u003e\u003ca id=\"user-content-3160-2020-08-31\" class=\"anchor\" aria-label=\"Permalink: 3.16.0 (2020-08-31)\" href=\"#3160-2020-08-31\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.namesilo.com\" rel=\"nofollow\"\u003eNameSilo\u003c/a\u003e (Thanks @rkone)\u003c/li\u003e\n\u003cli\u003eAdded Preferred Chain support\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThere is a new \u003ccode\u003e-PreferredChain\u003c/code\u003e parameter on \u003ccode\u003eNew-PACertificate\u003c/code\u003e, \u003ccode\u003eNew-PAOrder\u003c/code\u003e, and \u003ccode\u003eSet-PAOrder\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFor new or existing orders, you may select an alternate CA chain based on the Issuing CA subject name if alternate chains are offered by the CA.\u003c/li\u003e\n\u003cli\u003eExample: \u003ccode\u003e-PreferredChain 'ISRG Root X1'\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFixed a bug with \u003ccode\u003eSubmit-Renewal\u003c/code\u003e that wasn't properly using \u003ccode\u003e-PluginArgs\u003c/code\u003e and \u003ccode\u003e-NoSkipManualDns\u003c/code\u003e parameters when \u003ccode\u003e-AllOrders\u003c/code\u003e or \u003ccode\u003e-AllAccounts\u003c/code\u003e switches were also used (#266 #275). (Thanks @f-bader)\u003c/li\u003e\n\u003cli\u003edeSEC plugin has added retry logic to address API throttling issues for certs with many names (#275).\u003c/li\u003e\n\u003cli\u003eFixed a bug with Azure plugin when using \u003ccode\u003eAZCertPfx\u003c/code\u003e authentication from Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.15.1 (2020-07-08)\u003c/h2\u003e\u003ca id=\"user-content-3151-2020-07-08\" class=\"anchor\" aria-label=\"Permalink: 3.15.1 (2020-07-08)\" href=\"#3151-2020-07-08\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed Route53 trying to load AWSPowerShell module when not installed (#263)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.15.0 (2020-06-22)\u003c/h2\u003e\u003ca id=\"user-content-3150-2020-06-22\" class=\"anchor\" aria-label=\"Permalink: 3.15.0 (2020-06-22)\" href=\"#3150-2020-06-22\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.do.de\" rel=\"nofollow\"\u003eDomainOffensive\u003c/a\u003e (Thanks @Armitxes)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eNew-PAAccount\u003c/code\u003e now has \u003ccode\u003eExtAcctKID\u003c/code\u003e, \u003ccode\u003eExtAcctHMACKey\u003c/code\u003e, and \u003ccode\u003eExtAcctAlgorithm\u003c/code\u003e parameters to support Certificate Authorities that require external account binding. Look for a guide in the wiki soon.\u003c/li\u003e\n\u003cli\u003eAdded support for the new AWS.Tools modules when using Route53.\u003c/li\u003e\n\u003cli\u003eAdded support for more restricted API permissions when using OVH. It's now possible to only grant write access to a specific list of zones or even individual TXT records. See the usage guide for details.\u003c/li\u003e\n\u003cli\u003eAdded pre-registration support for AcmeDns. See the usage guide for details.\u003c/li\u003e\n\u003cli\u003eFixed a bug with GoDaddy that prevented managing DNS-only hosted domains.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.14.0 (2020-05-07)\u003c/h2\u003e\u003ca id=\"user-content-3140-2020-05-07\" class=\"anchor\" aria-label=\"Permalink: 3.14.0 (2020-05-07)\" href=\"#3140-2020-05-07\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.hetzner.de/\" rel=\"nofollow\"\u003eHetzner\u003c/a\u003e (Thanks @derguterat)\u003c/li\u003e\n\u003cli\u003eFix for Google DNS plugin to ignore private zones. (Thanks @timwsuqld)\u003c/li\u003e\n\u003cli\u003eFix for Azure usage guide for using existing access token. (Thanks @arestarh)\u003c/li\u003e\n\u003cli\u003eFix for RFC2136 plugin which makes it usable for records other than the root domain.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.13.0 (2020-04-11)\u003c/h2\u003e\u003ca id=\"user-content-3130-2020-04-11\" class=\"anchor\" aria-label=\"Permalink: 3.13.0 (2020-04-11)\" href=\"#3130-2020-04-11\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAkamai\u003c/li\u003e\n\u003cli\u003eDNSPod (Thanks @WiZaRd31337)\u003c/li\u003e\n\u003cli\u003eLoopia\u003c/li\u003e\n\u003cli\u003ePointDNS (Thanks @danielsen)\u003c/li\u003e\n\u003cli\u003eReg.ru (Thanks @WiZaRd31337)\u003c/li\u003e\n\u003cli\u003eRFC2136\u003c/li\u003e\n\u003cli\u003eSelectel.ru (Thanks @WiZaRd31337)\u003c/li\u003e\n\u003cli\u003eYandex (Thanks @WiZaRd31337)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eWhen creating a new order, chain.cer and fullchain.cer are now backed up along with the other files.\u003c/li\u003e\n\u003cli\u003eAdded a workaround for non-compliant ACME server Nexus CM (#227)\u003c/li\u003e\n\u003cli\u003eVarious usage guide corrections. (Thanks @webprofusion-chrisc)\u003c/li\u003e\n\u003cli\u003eFixed a bug where New-PACertificate required the \u003ccode\u003e-Force\u003c/code\u003e parameter if the previous order was deactivated.\u003c/li\u003e\n\u003cli\u003eFixed the dev install script to account for a redirected Documents folder.\u003c/li\u003e\n\u003cli\u003eMinor changes to how Gandi plugin works to address potential edge case bugs.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.12.0 (2019-12-10)\u003c/h2\u003e\u003ca id=\"user-content-3120-2019-12-10\" class=\"anchor\" aria-label=\"Permalink: 3.12.0 (2019-12-10)\" href=\"#3120-2019-12-10\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003eSet-PAOrder\u003c/code\u003e now has \u003ccode\u003e-DnsPlugin\u003c/code\u003e and \u003ccode\u003e-PluginArgs\u003c/code\u003e parameters to allow changing plugins and associated credentials prior to a renewal operation.\u003c/li\u003e\n\u003cli\u003eUpgraded BouncyCastle library to version 1.8.5.2 and renamed the DLL to avoid conflicts with older copies that may get installed into the .NET GAC by other software.\u003c/li\u003e\n\u003cli\u003eACME server errors returned during calls to \u003ccode\u003eRevoke-PAAuthorization\u003c/code\u003e are now non-terminating errors rather than warnings.\u003c/li\u003e\n\u003cli\u003eFixed bug where new orders created with \u003ccode\u003eNew-PACertificate\u003c/code\u003e and no explicit plugin wouldn't get the Manual default if the account was already authorized for the included names.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eGet-PAAuthorizations\u003c/code\u003e when using explicit account reference\u003c/li\u003e\n\u003cli\u003eFixed datetime parsing issues on non-US culture environments (#208)\u003c/li\u003e\n\u003cli\u003eFixed errors thrown by \u003ccode\u003eSubmit-Renewal\u003c/code\u003e when run against an order with a null DnsPlugin. A warning is now thrown instead.\u003c/li\u003e\n\u003cli\u003eFixed parameter binding error when using \u003ccode\u003e-PluginArgs\u003c/code\u003e with \u003ccode\u003eSubmit-Renewal\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed HurricanElectric guide's parameter references\u003c/li\u003e\n\u003cli\u003eFixed Azure tests\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.11.0 (2019-11-12)\u003c/h2\u003e\u003ca id=\"user-content-3110-2019-11-12\" class=\"anchor\" aria-label=\"Permalink: 3.11.0 (2019-11-12)\" href=\"#3110-2019-11-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded \u003ccode\u003eRevoke-PAAuthorization\u003c/code\u003e which enables revocation of identifier authorizations associated with an account.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGet-PAAuthorizations\u003c/code\u003e now has an optional -Account parameter and better error handling.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGet-PAAuthorization\u003c/code\u003e has been added as an alias for \u003ccode\u003eGet-PAAuthorizations\u003c/code\u003e to better comply with PowerShell naming standards. It will likely be formally renamed in version 4.x and the old name should be considered deprecated. This change should allow dependent scripts to prepare for that change in advance.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eInstall-PACertificate\u003c/code\u003e now supports parameters to select the store name, location, and the exportable flag.\u003c/li\u003e\n\u003cli\u003eWorkaround for Boulder \u003ca href=\"https://github.com/letsencrypt/boulder/issues/4540\" data-hovercard-type=\"issue\" data-hovercard-url=\"/letsencrypt/boulder/issues/4540/hovercard\"\u003eissue\u003c/a\u003e that doesn't return JSON error bodies for old endpoints.\u003c/li\u003e\n\u003cli\u003eFixed bug creating new orders with a changed KeyLength value that was preventing the required new private key from being created.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.10.0 (2019-11-06)\u003c/h2\u003e\u003ca id=\"user-content-3100-2019-11-06\" class=\"anchor\" aria-label=\"Permalink: 3.10.0 (2019-11-06)\" href=\"#3100-2019-11-06\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://dns.he.net/\" rel=\"nofollow\"\u003eHurricaneElectric\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAzure plugin now supports certificate based authentication. See the \u003ca href=\"https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/Azure-Readme.md\"\u003eplugin guide\u003c/a\u003e for details. (#190)\u003c/li\u003e\n\u003cli\u003eSetup examples in the Azure plugin guide now utilize the \u003ca href=\"https://www.powershellgallery.com/packages/Az/3.0.0\" rel=\"nofollow\"\u003eAz\u003c/a\u003e module rather than the legacy AzureRm.* modules. (#189)\u003c/li\u003e\n\u003cli\u003eFix for \"No order for ID\" errors caused by recent Boulder changes that no longer return order details for expired orders. (#192)\u003c/li\u003e\n\u003cli\u003eFixed being unable to switch active orders if an error occurred trying to refresh the order details from the ACME server.\u003c/li\u003e\n\u003cli\u003eAdded additional guidance on renewals and deployment to the tutorial.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.9.0 (2019-10-26)\u003c/h2\u003e\u003ca id=\"user-content-390-2019-10-26\" class=\"anchor\" aria-label=\"Permalink: 3.9.0 (2019-10-26)\" href=\"#390-2019-10-26\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin \u003ca href=\"https://www.unoeuro.com/\" rel=\"nofollow\"\u003eUnoEuro\u003c/a\u003e (Thanks @OrKarstoft)\u003c/li\u003e\n\u003cli\u003eFix for Cloudflare plugin not working properly when limited scope token didn't have at least read permissions to all zones on an account. To use an edit token with limited zone permissions, you must now also specify a secondary token with read permissions to all zones. See the \u003ca href=\"https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/Cloudflare-Readme.md\"\u003eplugin guide\u003c/a\u003e for details. (#184)\u003c/li\u003e\n\u003cli\u003eFix for PropertyNotFound exception when imported plugin data is null or not the expected hashtable value (#182)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.8.0 (2019-09-27)\u003c/h2\u003e\u003ca id=\"user-content-380-2019-09-27\" class=\"anchor\" aria-label=\"Permalink: 3.8.0 (2019-09-27)\" href=\"#380-2019-09-27\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003eSet-PAOrder\u003c/code\u003e now supports modifying some order properties such as FriendlyName, PfxPass, and the Install switch that don't require generating a new ACME order. FriendlyName or PfxPass changes will regenerate the current PFX files with the new value(s) if they exist. Changes to the Install switch will only affect future renewals.\u003c/li\u003e\n\u003cli\u003eFixed FriendlyName, PfxPass, and Install parameters not applying when calling \u003ccode\u003eNew-PACertificate\u003c/code\u003e against an existing order (#178)\u003c/li\u003e\n\u003cli\u003eFixed GoDaddy plugin so it doesn't fail on large accounts (100+ domains) (#179)\u003c/li\u003e\n\u003cli\u003eUpdated Cloudflare plugin to workaround API bug with limited scope tokens (#176)\u003c/li\u003e\n\u003cli\u003eFixed DnsSleep and ValidationTimout being null when manually creating an order with \u003ccode\u003eNew-PAOrder\u003c/code\u003e and finishing it with \u003ccode\u003eNew-PACertificate\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded parameter help for -NewKey on \u003ccode\u003eNew-PAOrder\u003c/code\u003e which was missing.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eNew-PACertificate\u003c/code\u003e against an already completed order that is not ready for renewal, the informational message has been changed to Warning from Verbose to make it more apparent that nothing was done.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003einstdev.ps1\u003c/code\u003e so it still works when the BouncyCastle DLL is locked and $ErrorActionPreference is set to Stop.\u003c/li\u003e\n\u003cli\u003eUpdated a bunch of plugin guides with info regarding PowerShell 6.2's fix for the SecureString serialization bug and enabling the use of secure parameter sets on non-Windows.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.7.0 (2019-09-18)\u003c/h2\u003e\u003ca id=\"user-content-370-2019-09-18\" class=\"anchor\" aria-label=\"Permalink: 3.7.0 (2019-09-18)\" href=\"#370-2019-09-18\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSubmit-Renewal now has a PluginArgs parameter to make it easier to update plugin credentials without needing to create a new order from scratch. (Thanks @matt-FFFFFF)\u003c/li\u003e\n\u003cli\u003eThe FriendlyName parameter in New-PACertificate and New-PAOrder now defaults to the certificate's primary name instead of an empty string to avoid a Windows bug that can occur when installing the generated PFX files.\u003c/li\u003e\n\u003cli\u003eFixed Windows plugin issue when using WinZoneScope and not all zones have that scope (#168)\u003c/li\u003e\n\u003cli\u003eFixed an internal bug with Export-PACertFiles that luckily didn't cause problems due to PowerShell variable scoping rules.\u003c/li\u003e\n\u003cli\u003eFixed a typo in the Cloudflare guide examples. (Thanks @mccanney)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.6.0 (2019-08-19)\u003c/h2\u003e\u003ca id=\"user-content-360-2019-08-19\" class=\"anchor\" aria-label=\"Permalink: 3.6.0 (2019-08-19)\" href=\"#360-2019-08-19\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDomeneshop (Thanks @ornulfn)\u003c/li\u003e\n\u003cli\u003eDreamhost (Thanks @jhendricks123)\u003c/li\u003e\n\u003cli\u003eEasyDNS (Thanks @abrysiuk)\u003c/li\u003e\n\u003cli\u003eFreeDNS (afraid.org)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eInvoke-HttpChallengeListener\u003c/code\u003e function (Thanks @soltroy). This runs a self-hosted web server that can answer HTTP challenges. Look for a wiki usage guide soon.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eRemove-PAServer\u003c/code\u003e function. Warning: This deletes all data (accounts, orders, certs) associated with an ACME server.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eInstall-PACertificate\u003c/code\u003e function. This can be used to manually import a cert to the Windows cert store. (#159)\u003c/li\u003e\n\u003cli\u003eAdded support for Cloudflare's new limited access API Tokens. See usage guide for details.\u003c/li\u003e\n\u003cli\u003eAdded support for propagation polling with ClouDNS plugin. See usage guide for details.\u003c/li\u003e\n\u003cli\u003eFixed edge case zone finding bug with ClouDNS plugin.\u003c/li\u003e\n\u003cli\u003eFixed DOcean (Digital Ocean) plugin which broke because they now enforce a 30 sec TTL minimum on record creation.\u003c/li\u003e\n\u003cli\u003eFixed overly aggressive error trapping in OVH plugin. (#162)\u003c/li\u003e\n\u003cli\u003eFixed a typo in the OVH plugin usage guide.\u003c/li\u003e\n\u003cli\u003eFixed SkipCertificateCheck is no longer ignored when passing a PAServer object via pipeline to Set-PAServer.\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSubmit-ChallengeValidation\u003c/code\u003e no longer tries to sleep when DnsSleep = 0.\u003c/li\u003e\n\u003cli\u003eSome internal refactoring.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.5.0 (2019-06-21)\u003c/h2\u003e\u003ca id=\"user-content-350-2019-06-21\" class=\"anchor\" aria-label=\"Permalink: 3.5.0 (2019-06-21)\" href=\"#350-2019-06-21\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin for Simple DNS Plus (#149) (Thanks @alphaz18)\u003c/li\u003e\n\u003cli\u003eChanged a bunch of \"-ErrorAction SilentlyContinue\" references to \"Ignore\" so we're not filling the $Error collection with junk.\u003c/li\u003e\n\u003cli\u003eFix for Boulder removing ID field from new account output.\u003c/li\u003e\n\u003cli\u003eFixed an issue in a number of plugins that could cause errors if the case of the requested record didn't match the server's zone case. (Thanks @Makr91)\u003c/li\u003e\n\u003cli\u003eFixed a bug with the Route53 plugin when used on PowerShell Core without the AwsPowerShell module installed.\u003c/li\u003e\n\u003cli\u003eFixed some typos in the OVH plugin usage guide examples (#147)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.4.0 (2019-04-30)\u003c/h2\u003e\u003ca id=\"user-content-340-2019-04-30\" class=\"anchor\" aria-label=\"Permalink: 3.4.0 (2019-04-30)\" href=\"#340-2019-04-30\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin for OVH (#79)\u003c/li\u003e\n\u003cli\u003eAdded ZoneScope support to Windows plugin (#134) (Thanks @dawe78)\u003c/li\u003e\n\u003cli\u003eFixed issue #139 with GCloud plugin prompting for GCKeyFile after upgrading to 3.3.0. Users affected by this issue will need to submit a new cert request to re-establish the GCloud plugin config.\u003c/li\u003e\n\u003cli\u003eFixed issue #140 with AcmeDns plugin losing registration data after upgrading to 3.3.0. Users affected by this issue will need to submit a new cert request to re-establish the AcmeDns plugin config and it will likely involve updating any CNAME records currently in use.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.3.0 (2019-03-24)\u003c/h2\u003e\u003ca id=\"user-content-330-2019-03-24\" class=\"anchor\" aria-label=\"Permalink: 3.3.0 (2019-03-24)\" href=\"#330-2019-03-24\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRoute53 plugin now has IAM Role support if you're running Posh-ACME from within AWS. See plugin usage guide for details (#128)\u003c/li\u003e\n\u003cli\u003eDynu plugin migrated to v2 of the Dynu API\u003c/li\u003e\n\u003cli\u003eFixed DNSPlugin and DNSAlias arrays not getting expanded properly when the number of names in the cert didn't match the values in those arrays.\u003c/li\u003e\n\u003cli\u003eFixed validation bugs when using SAN certs with challenge aliases or multiple different plugins (#127) (Thanks @whbingham)\u003c/li\u003e\n\u003cli\u003eRevamped serialization/deserialization for plugin arguments which should prevent accidentally creating parameter binding conflicts when switching between parameter sets for a particular plugin (#129).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.2.1 (2019-03-04)\u003c/h2\u003e\u003ca id=\"user-content-321-2019-03-04\" class=\"anchor\" aria-label=\"Permalink: 3.2.1 (2019-03-04)\" href=\"#321-2019-03-04\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix #122 to make sure private keys are imported properly when using \u003ccode\u003e-Install\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eImprove error handling for duplicate public zones in Azure. (#125)\u003c/li\u003e\n\u003cli\u003eAdd tag based workaround for duplicate public zones in Azure. (#125)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.2.0 (2019-01-22)\u003c/h2\u003e\u003ca id=\"user-content-320-2019-01-22\" class=\"anchor\" aria-label=\"Permalink: 3.2.0 (2019-01-22)\" href=\"#320-2019-01-22\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin for name.com registrar (Thanks @ravensorb)\u003c/li\u003e\n\u003cli\u003eAdded additional argument completers for Account IDs, MainDomain, and KeyLength parameters\u003c/li\u003e\n\u003cli\u003eThe Posh-ACME config location can now be set by creating a \u003ccode\u003ePOSHACME_HOME\u003c/code\u003e environment variable. The directory must exist and be accessible prior to importing the module. If you change the value of the environment variable, you need to re-import the module with \u003ccode\u003e-Force\u003c/code\u003e or open a new PowerShell session for the change to take effect.\u003c/li\u003e\n\u003cli\u003eAdded better error handling for cases where the config location is not writable.\u003c/li\u003e\n\u003cli\u003eGet-PACertificate now returns null instead of throwing an error if the cert or associated order doesn't exist\u003c/li\u003e\n\u003cli\u003eFixed the ability to revoke a certificate after the associated order has expired\u003c/li\u003e\n\u003cli\u003eFix for #117 involving broken renewal processing on PowerShell Core in non-US locales\u003c/li\u003e\n\u003cli\u003eFixes for additional DateTime handling on PowerShell Core\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.1.1 (2018-12-22)\u003c/h2\u003e\u003ca id=\"user-content-311-2018-12-22\" class=\"anchor\" aria-label=\"Permalink: 3.1.1 (2018-12-22)\" href=\"#311-2018-12-22\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFixed typo in Route53 plugin that prevented finding the AwsPowershell module\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.1.0 (2018-12-16)\u003c/h2\u003e\u003ca id=\"user-content-310-2018-12-16\" class=\"anchor\" aria-label=\"Permalink: 3.1.0 (2018-12-16)\" href=\"#310-2018-12-16\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eThe following plugins have added non-Windows OS support or extended their existing support. Check the plugin guides for details.\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAzure\u003c/li\u003e\n\u003cli\u003eDNSimple\u003c/li\u003e\n\u003cli\u003eInfoblox\u003c/li\u003e\n\u003cli\u003eLinode\u003c/li\u003e\n\u003cli\u003eLuaDns\u003c/li\u003e\n\u003cli\u003eNS1\u003c/li\u003e\n\u003cli\u003eRoute53\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eRoute53 plugin no longer requires AwsPowershell module when used with explicit keys. It will still use the module if it's installed.\u003c/li\u003e\n\u003cli\u003eAdded tab completion for plugin names with \u003ccode\u003eGet-DnsPluginHelp\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix #112 for Azure and errors with private zones and subscriptions with more than 100 zones\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.0.1 (2018-11-30)\u003c/h2\u003e\u003ca id=\"user-content-301-2018-11-30\" class=\"anchor\" aria-label=\"Permalink: 3.0.1 (2018-11-30)\" href=\"#301-2018-11-30\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix for #110 \u003ccode\u003eSubmit-Renewal\u003c/code\u003e with -AllOrders or -AllAccounts fails to renew orders with invalid status. (Thanks @jeffmnall!)\u003c/li\u003e\n\u003cli\u003eFix for #109 \u003ccode\u003eNew-PACertificate\u003c/code\u003e throws an error if -DnsPlugin is not specified rather than defaulting to Manual. (Thanks @TiloGit!)\u003c/li\u003e\n\u003cli\u003eFix internal BouncyCastle to .NET private key conversions where key parameters may need padding. (Thanks @alexzorin and @webprofusion-chrisc!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e3.0.0 (2018-11-13)\u003c/h2\u003e\u003ca id=\"user-content-300-2018-11-13\" class=\"anchor\" aria-label=\"Permalink: 3.0.0 (2018-11-13)\" href=\"#300-2018-11-13\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePotentially breaking changes\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eMany ACME protocol messages that previously used GET requests have been changed to POST-as-GET to comply with the latest ACME draft-16. Let's Encrypt already supports the new draft, but other ACME servers may not yet.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eCertIssueTimeout\u003c/code\u003e param was removed from \u003ccode\u003eNew-PACertificate\u003c/code\u003e and \u003ccode\u003eSubmit-OrderFinalize\u003c/code\u003e because it wasn't actually being used properly in the former and doesn't seem necessary anymore.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNew Feature: Generate certs from an existing certificate request which can be useful for appliances that generate their own keys and CSRs. (Thanks @virot)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew \u003ccode\u003eCSRPath\u003c/code\u003e parameter on \u003ccode\u003eNew-PACertificate\u003c/code\u003e and \u003ccode\u003eNew-PAOrder\u003c/code\u003e that removes the need for \u003ccode\u003eDomain\u003c/code\u003e, \u003ccode\u003eCertKeyLength\u003c/code\u003e, \u003ccode\u003eNewCertKey\u003c/code\u003e, \u003ccode\u003eOCSPMustStaple\u003c/code\u003e, \u003ccode\u003eFriendlyName\u003c/code\u003e, \u003ccode\u003ePfxPass\u003c/code\u003e, and \u003ccode\u003eInstall\u003c/code\u003e parameters when used. Most values will be extracted from the CSR.\u003c/li\u003e\n\u003cli\u003eCerts generated using this method will not have PFX files created because there is no private key.\u003c/li\u003e\n\u003cli\u003eCerts generated using this method can not be automatically installed to the Windows cert store because there are no PFX files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eGet-KeyAuthorization\u003c/code\u003e now has \u003ccode\u003eForDNS\u003c/code\u003e parameter which returns the actual TXT value necessary for the dns-01 challenge. (Thanks @chandan1001)\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eIBMSoftLayer (IBM Cloud DNS)\u003c/li\u003e\n\u003cli\u003eAutoDNS (InternetX XML Gateway)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix for some validation params not getting set properly on new instances of old orders\u003c/li\u003e\n\u003cli\u003eFix for Windows plugin not using \u003ccode\u003e$dnsParams\u003c/code\u003e appropriately (Thanks @B4dM4n)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.9.1 (2018-10-26)\u003c/h2\u003e\u003ca id=\"user-content-291-2018-10-26\" class=\"anchor\" aria-label=\"Permalink: 2.9.1 (2018-10-26)\" href=\"#291-2018-10-26\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix (#94) for TXT record cleanup bug when some domains were already validated (Thanks @philr!)\u003c/li\u003e\n\u003cli\u003eFix (#95) error handling in New-PACertificate and New-PAOrder that would mistakenly cause new orders to be created if there were problems checking old orders. (Thanks @philr!)\u003c/li\u003e\n\u003cli\u003eAzure fix (#96) to allow special characters in credentials. (Thanks @philr!)\u003c/li\u003e\n\u003cli\u003eRoute53 fix for errors caused by public/private zones with same name (#100) (Thanks @spaceygithub!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.9.0 (2018-10-05)\u003c/h2\u003e\u003ca id=\"user-content-290-2018-10-05\" class=\"anchor\" aria-label=\"Permalink: 2.9.0 (2018-10-05)\" href=\"#290-2018-10-05\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eBlueCat (Thanks @marshallford)\u003c/li\u003e\n\u003cli\u003eGandi\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdated DMEasy plugin to support non-Windows\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.8.0 (2018-09-12)\u003c/h2\u003e\u003ca id=\"user-content-280-2018-09-12\" class=\"anchor\" aria-label=\"Permalink: 2.8.0 (2018-09-12)\" href=\"#280-2018-09-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAliyun (Alibaba Cloud)\u003c/li\u003e\n\u003cli\u003eDeSEC (Thanks @nazar554)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix for type error when using OCSP Must-Staple (Thanks @casselc)\u003c/li\u003e\n\u003cli\u003eParameter binding bug fixes for Azure and Windows plugins (Thanks @mithrandyr)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.7.1 (2018-08-30)\u003c/h2\u003e\u003ca id=\"user-content-271-2018-08-30\" class=\"anchor\" aria-label=\"Permalink: 2.7.1 (2018-08-30)\" href=\"#271-2018-08-30\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eRemoved ACMEv2 draft-12 support for account key rollover. No known CAs are still implementing draft-12.\u003c/li\u003e\n\u003cli\u003eFix for issue #53 with GoDaddy plugin not being able to remove TXT records in some cases. Thanks @davehope!\u003c/li\u003e\n\u003cli\u003ePerformance and efficiency improvements with GoDaddy plugin\u003c/li\u003e\n\u003cli\u003eFixed Get-PACertificate -List only showing certs from 'valid' orders.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.7.0 (2018-08-12)\u003c/h2\u003e\u003ca id=\"user-content-270-2018-08-12\" class=\"anchor\" aria-label=\"Permalink: 2.7.0 (2018-08-12)\" href=\"#270-2018-08-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin ClouDNS\u003c/li\u003e\n\u003cli\u003eAdded ACMEv2 draft-13 support for account key rollover. This is an interim fix that should still work with draft-12 as well. Once Let's Encrypt goes into production with draft-13, the draft-12 support will be removed.\u003c/li\u003e\n\u003cli\u003e.NET version check now throws a warning instead of error on module load\u003c/li\u003e\n\u003cli\u003eFixed Get-PAAccount not filtering contacts correctly\u003c/li\u003e\n\u003cli\u003eMinor fix and help correction in Namecheap plugin\u003c/li\u003e\n\u003cli\u003eGet-PAAccount and Get-PAOrder now return null instead of an error if an invalid account or order was specified. (Thanks for the idea @maybe-hello-world)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.6.0 (2018-08-01)\u003c/h2\u003e\u003ca id=\"user-content-260-2018-08-01\" class=\"anchor\" aria-label=\"Permalink: 2.6.0 (2018-08-01)\" href=\"#260-2018-08-01\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded additional functions that should make it easier to manually respond to challenges. In particular, this should allow people to use the HTTP challenge until a formal HTTP challenge plugin solution is introduced. (Thanks John B. for the idea!)\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003eGet-KeyAuthorization\u003c/code\u003e calculate a key authorization string for a challenge token.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSend-ChallengeAck\u003c/code\u003e notifies the ACME server to proceed validating a challenge.\u003c/li\u003e\n\u003cli\u003eThe output object on \u003ccode\u003eGet-PAAuthorizations\u003c/code\u003e now contains top level attributes relating to the HTTP challenge (in addition to the existing DNS challenge).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNamecheap\u003c/li\u003e\n\u003cli\u003eRackspace\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eMigrated all internal DateTime handling to use DateTimeOffset which is less finicky across time zones for the types of comparisons generally being performed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.5.0 (2018-07-12)\u003c/h2\u003e\u003ca id=\"user-content-250-2018-07-12\" class=\"anchor\" aria-label=\"Permalink: 2.5.0 (2018-07-12)\" href=\"#250-2018-07-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin Dynu. (Thanks @alexzorin!)\u003c/li\u003e\n\u003cli\u003eAdded additional Azure plugin authentication options including explicit access token and Instance Metadata Service support. See plugin readme for details. (Thanks @perbergland!)\u003c/li\u003e\n\u003cli\u003eAdded an explicit .NET 4.7.1 version check on module load when running Windows PowerShell (Desktop edition) since the module manifest didn't seem to be enforcing it. This will throw an error if you try to import the module without at least .NET 4.7.1 installed and hopefully prevent bug reports due to insufficient .NET versions.\u003c/li\u003e\n\u003cli\u003eFixed bug with GoDaddy plugin (#50) that prevented using names in sub-domains. (Thanks @davehope!)\u003c/li\u003e\n\u003cli\u003eFixed bug with Azure plugin (#57) incorrectly evaluating token expiration. (Thanks @Cavorter!)\u003c/li\u003e\n\u003cli\u003eFixed bug (#60) that would cause some order parameters to appear to get wiped when renewing or creating a new order whose names had already been validated. (Thanks for the tip @hutch120!)\u003c/li\u003e\n\u003cli\u003eVarious readme tweaks\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.4.0 (2018-06-01)\u003c/h2\u003e\u003ca id=\"user-content-240-2018-06-01\" class=\"anchor\" aria-label=\"Permalink: 2.4.0 (2018-06-01)\" href=\"#240-2018-06-01\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugin Linode\u003c/li\u003e\n\u003cli\u003eAdded tab completion for \u003ccode\u003ePlugin\u003c/code\u003e param on \u003ccode\u003ePublish\u003c/code\u003e/\u003ccode\u003eUnpublish\u003c/code\u003e/\u003ccode\u003eSave-DnsChallenge\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed bug renewing orders with status invalid (which happens when the order expires even if the cert is still valid)\u003c/li\u003e\n\u003cli\u003eFixed bug in \u003ccode\u003eNew-PACertificate\u003c/code\u003e that wasn't using explicit \u003ccode\u003eDnsSleep\u003c/code\u003e and \u003ccode\u003eValidationTimeout\u003c/code\u003e parameters when an old order existed for the same primary name.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.3.0 (2018-05-29)\u003c/h2\u003e\u003ca id=\"user-content-230-2018-05-29\" class=\"anchor\" aria-label=\"Permalink: 2.3.0 (2018-05-29)\" href=\"#230-2018-05-29\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDNSimple\u003c/li\u003e\n\u003cli\u003eLuaDns\u003c/li\u003e\n\u003cli\u003eNS1\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eChallenge validation errors will now show the detailed error message provided by the ACME server\u003c/li\u003e\n\u003cli\u003eGet-PAAuthorization will now throw a warning instead of errors for expired authorizations\u003c/li\u003e\n\u003cli\u003eFixed bug with Infoblox plugin\u003c/li\u003e\n\u003cli\u003eFixed error with Get-PACertificate on orders created prior to 2.0\u003c/li\u003e\n\u003cli\u003eMisc fixes for plugin help details\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.2.0 (2018-05-24)\u003c/h2\u003e\u003ca id=\"user-content-220-2018-05-24\" class=\"anchor\" aria-label=\"Permalink: 2.2.0 (2018-05-24)\" href=\"#220-2018-05-24\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded cross platform PowerShell Core support!\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eSome DNS plugins don't work yet on non-Windows due to known issue handling SecureString PowerShell Core 6.0. Check details on the project wiki.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-Install\u003c/code\u003e param on \u003ccode\u003eNew-PACertificate\u003c/code\u003e throws error on non-Windows because there's no certificate store to install to.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWindows\u003c/code\u003e plugin doesn't work in Core at all yet due to lack of Core compatible DnsServer module.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugin Zonomi. Thanks @Zippy79!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.1.1 (2018-05-19)\u003c/h2\u003e\u003ca id=\"user-content-211-2018-05-19\" class=\"anchor\" aria-label=\"Permalink: 2.1.1 (2018-05-19)\" href=\"#211-2018-05-19\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix for GCloud plugin syntax error\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.1.0 (2018-05-18)\u003c/h2\u003e\u003ca id=\"user-content-210-2018-05-18\" class=\"anchor\" aria-label=\"Permalink: 2.1.0 (2018-05-18)\" href=\"#210-2018-05-18\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded account key rollover support. Use -KeyRollover switch in Set-PAAccount.\u003c/li\u003e\n\u003cli\u003eAdded PfxPass (SecureString) to Get-PACertificate output\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDMEasy (DNS Made Easy)\u003c/li\u003e\n\u003cli\u003eGoDaddy. Thanks @Rukas!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAll calls to Invoke-WebRequest and Invoke-RestMethod now use -UseBasicParsing to avoid issues with PowerShell using Internet Explorer's DOM parser. Thanks @Rukas!\u003c/li\u003e\n\u003cli\u003eFixed hard coded cert store paths in Import-PfxCertInternal\u003c/li\u003e\n\u003cli\u003eFixed tests for New-Jws\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.0.1 (2018-05-12)\u003c/h2\u003e\u003ca id=\"user-content-201-2018-05-12\" class=\"anchor\" aria-label=\"Permalink: 2.0.1 (2018-05-12)\" href=\"#201-2018-05-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eFix for PluginArgs not being passed to Submit-ChallengeValidation. Thanks @juliansiebert!\u003c/li\u003e\n\u003cli\u003eFix for Azure plugin when multiple zones are in a subscription. Thanks @juliansiebert!\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e2.0 (2018-05-12)\u003c/h2\u003e\u003ca id=\"user-content-20-2018-05-12\" class=\"anchor\" aria-label=\"Permalink: 2.0 (2018-05-12)\" href=\"#20-2018-05-12\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003ePotentially Breaking Changes\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eNew-PACertificate now outputs certificate details to the pipeline which should aid automation\u003c/li\u003e\n\u003cli\u003eNew-PACertificate now reuses all previous order params (for the same MainDomain) when not explicitly specified\u003c/li\u003e\n\u003cli\u003eAll generated PFX files now have 'poshacme' as the default password to address compatibility issues with other tools\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eNew-PACertificate now generates fullchain.pfx in addition to cert.pfx\u003c/li\u003e\n\u003cli\u003eAdded optional parameters to New-PACertificate\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003e\u003ccode\u003e-FriendlyName\u003c/code\u003e sets Friendly Name when imported into Windows certificate store\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-PfxPass\u003c/code\u003e overrides the default password for generated PFX files\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-Install\u003c/code\u003e switch imports fullchain.pfx to Windows certificate store. \u003cem\u003eRequires elevation\u003c/em\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eDOcean (Digital Ocean)\u003c/li\u003e\n\u003cli\u003eCloudflare. Thanks @rian-hout!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded Get-PACertificate which returns certificate details\u003c/li\u003e\n\u003cli\u003eAdded usage guides for most DNS plugins\u003c/li\u003e\n\u003cli\u003eAdded progress bar while waiting for DNS changes to propagate\u003c/li\u003e\n\u003cli\u003eOld csr and chain files are no longer backed up when creating a new order\u003c/li\u003e\n\u003cli\u003eManual plugin now displays all records to create with one prompt\u003c/li\u003e\n\u003cli\u003eFixed AcmeDns plugin issue where CNAMEs would display twice user Ctrl-C from prompt\u003c/li\u003e\n\u003cli\u003eBugfix for Azure plugin (#17). Thanks @juliansiebert!\u003c/li\u003e\n\u003cli\u003eNew-PACertificate will no longer redownload certs when run with same arguments (#9)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.1 (2018-05-02)\u003c/h2\u003e\u003ca id=\"user-content-11-2018-05-02\" class=\"anchor\" aria-label=\"Permalink: 1.1 (2018-05-02)\" href=\"#11-2018-05-02\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAdded tab completion for -DnsPlugin parameter\u003c/li\u003e\n\u003cli\u003eAdded new DNS plugins\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eAcme-Dns\u003c/li\u003e\n\u003cli\u003eAzure\u003c/li\u003e\n\u003cli\u003eGCloud (Google Cloud)\u003c/li\u003e\n\u003cli\u003eWindows\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"markdown-heading\" dir=\"auto\"\u003e\u003ch2 tabindex=\"-1\" class=\"heading-element\" dir=\"auto\"\u003e1.0 (2018-04-27)\u003c/h2\u003e\u003ca id=\"user-content-10-2018-04-27\" class=\"anchor\" aria-label=\"Permalink: 1.0 (2018-04-27)\" href=\"#10-2018-04-27\"\u003e\u003csvg data-component=\"Octicon\" class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"\u003e\u003cpath d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"\u003e\u003c/path\u003e\u003c/svg\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eInitial Release\u003c/li\u003e\n\u003cli\u003eAdded functions\n\u003cul dir=\"auto\"\u003e\n\u003cli\u003eGet-DnsPluginHelp\u003c/li\u003e\n\u003cli\u003eGet-DnsPlugins\u003c/li\u003e\n\u003cli\u003eGet-PAAccount\u003c/li\u003e\n\u003cli\u003eGet-PAAuthorizations\u003c/li\u003e\n\u003cli\u003eGet-PAOrder\u003c/li\u003e\n\u003cli\u003eGet-PAServer\u003c/li\u003e\n\u003cli\u003eNew-PAAccount\u003c/li\u003e\n\u003cli\u003eNew-PACertificate\u003c/li\u003e\n\u003cli\u003eNew-PAOrder\u003c/li\u003e\n\u003cli\u003ePublish-DnsChallenge\u003c/li\u003e\n\u003cli\u003eRemove-PAAccount\u003c/li\u003e\n\u003cli\u003eRemove-PAOrder\u003c/li\u003e\n\u003cli\u003eSave-DnsChallenge\u003c/li\u003e\n\u003cli\u003eSet-PAAccount\u003c/li\u003e\n\u003cli\u003eSet-PAOrder\u003c/li\u003e\n\u003cli\u003eSet-PAServer\u003c/li\u003e\n\u003cli\u003eSubmit-ChallengeValidation\u003c/li\u003e\n\u003cli\u003eSubmit-OrderFinalize\u003c/li\u003e\n\u003cli\u003eSubmit-Renewal\u003c/li\u003e\n\u003cli\u003eUnpublish-DnsChallenge\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/article\u003e","richTextTruncated":false,"renderedFileInfo":null,"symbols":{"timed_out":false,"not_analyzed":false,"symbols":[{"name":"4.34.0 (2026-08-23)","fully_qualified_name":"4.34.0 (2026-08-23)","kind":"section_2","ident_start":3,"ident_end":22,"extent_start":0,"extent_end":784,"ident_utf16":{"start":{"line_number":0,"utf16_col":3},"end":{"line_number":0,"utf16_col":22}},"extent_utf16":{"start":{"line_number":0,"utf16_col":0},"end":{"line_number":16,"utf16_col":0}}},{"name":"4.33.1 (2026-06-16)","fully_qualified_name":"4.33.1 (2026-06-16)","kind":"section_2","ident_start":787,"ident_end":806,"extent_start":784,"extent_end":907,"ident_utf16":{"start":{"line_number":16,"utf16_col":3},"end":{"line_number":16,"utf16_col":22}},"extent_utf16":{"start":{"line_number":16,"utf16_col":0},"end":{"line_number":20,"utf16_col":0}}},{"name":"4.33.0 (2026-06-09)","fully_qualified_name":"4.33.0 (2026-06-09)","kind":"section_2","ident_start":910,"ident_end":929,"extent_start":907,"extent_end":2490,"ident_utf16":{"start":{"line_number":20,"utf16_col":3},"end":{"line_number":20,"utf16_col":22}},"extent_utf16":{"start":{"line_number":20,"utf16_col":0},"end":{"line_number":37,"utf16_col":0}}},{"name":"4.32.0 (2026-03-29)","fully_qualified_name":"4.32.0 (2026-03-29)","kind":"section_2","ident_start":2493,"ident_end":2512,"extent_start":2490,"extent_end":4447,"ident_utf16":{"start":{"line_number":37,"utf16_col":3},"end":{"line_number":37,"utf16_col":22}},"extent_utf16":{"start":{"line_number":37,"utf16_col":0},"end":{"line_number":55,"utf16_col":0}}},{"name":"Potentially Breaking Change","fully_qualified_name":"Potentially Breaking Change","kind":"section_3","ident_start":3539,"ident_end":3566,"extent_start":3535,"extent_end":4447,"ident_utf16":{"start":{"line_number":47,"utf16_col":4},"end":{"line_number":47,"utf16_col":31}},"extent_utf16":{"start":{"line_number":47,"utf16_col":0},"end":{"line_number":55,"utf16_col":0}}},{"name":"4.31.1 (2026-02-07)","fully_qualified_name":"4.31.1 (2026-02-07)","kind":"section_2","ident_start":4450,"ident_end":4469,"extent_start":4447,"extent_end":4660,"ident_utf16":{"start":{"line_number":55,"utf16_col":3},"end":{"line_number":55,"utf16_col":22}},"extent_utf16":{"start":{"line_number":55,"utf16_col":0},"end":{"line_number":59,"utf16_col":0}}},{"name":"4.31.0 (2026-01-21)","fully_qualified_name":"4.31.0 (2026-01-21)","kind":"section_2","ident_start":4663,"ident_end":4682,"extent_start":4660,"extent_end":5003,"ident_utf16":{"start":{"line_number":59,"utf16_col":3},"end":{"line_number":59,"utf16_col":22}},"extent_utf16":{"start":{"line_number":59,"utf16_col":0},"end":{"line_number":65,"utf16_col":0}}},{"name":"4.30.1 (2025-11-18)","fully_qualified_name":"4.30.1 (2025-11-18)","kind":"section_2","ident_start":5006,"ident_end":5025,"extent_start":5003,"extent_end":5149,"ident_utf16":{"start":{"line_number":65,"utf16_col":3},"end":{"line_number":65,"utf16_col":22}},"extent_utf16":{"start":{"line_number":65,"utf16_col":0},"end":{"line_number":69,"utf16_col":0}}},{"name":"4.30.0 (2025-11-13)","fully_qualified_name":"4.30.0 (2025-11-13)","kind":"section_2","ident_start":5152,"ident_end":5171,"extent_start":5149,"extent_end":6332,"ident_utf16":{"start":{"line_number":69,"utf16_col":3},"end":{"line_number":69,"utf16_col":22}},"extent_utf16":{"start":{"line_number":69,"utf16_col":0},"end":{"line_number":82,"utf16_col":0}}},{"name":"4.29.3 (2025-07-24)","fully_qualified_name":"4.29.3 (2025-07-24)","kind":"section_2","ident_start":6335,"ident_end":6354,"extent_start":6332,"extent_end":6842,"ident_utf16":{"start":{"line_number":82,"utf16_col":3},"end":{"line_number":82,"utf16_col":22}},"extent_utf16":{"start":{"line_number":82,"utf16_col":0},"end":{"line_number":87,"utf16_col":0}}},{"name":"4.29.2 (2025-07-15)","fully_qualified_name":"4.29.2 (2025-07-15)","kind":"section_2","ident_start":6845,"ident_end":6864,"extent_start":6842,"extent_end":7186,"ident_utf16":{"start":{"line_number":87,"utf16_col":3},"end":{"line_number":87,"utf16_col":22}},"extent_utf16":{"start":{"line_number":87,"utf16_col":0},"end":{"line_number":94,"utf16_col":0}}},{"name":"4.29.1 (2025-06-26)","fully_qualified_name":"4.29.1 (2025-06-26)","kind":"section_2","ident_start":7189,"ident_end":7208,"extent_start":7186,"extent_end":7287,"ident_utf16":{"start":{"line_number":94,"utf16_col":3},"end":{"line_number":94,"utf16_col":22}},"extent_utf16":{"start":{"line_number":94,"utf16_col":0},"end":{"line_number":98,"utf16_col":0}}},{"name":"4.29.0 (2025-06-25)","fully_qualified_name":"4.29.0 (2025-06-25)","kind":"section_2","ident_start":7290,"ident_end":7309,"extent_start":7287,"extent_end":8986,"ident_utf16":{"start":{"line_number":98,"utf16_col":3},"end":{"line_number":98,"utf16_col":22}},"extent_utf16":{"start":{"line_number":98,"utf16_col":0},"end":{"line_number":118,"utf16_col":0}}},{"name":"4.28.0 (2025-02-08)","fully_qualified_name":"4.28.0 (2025-02-08)","kind":"section_2","ident_start":8989,"ident_end":9008,"extent_start":8986,"extent_end":10220,"ident_utf16":{"start":{"line_number":118,"utf16_col":3},"end":{"line_number":118,"utf16_col":22}},"extent_utf16":{"start":{"line_number":118,"utf16_col":0},"end":{"line_number":130,"utf16_col":0}}},{"name":"4.27.0 (2025-01-08)","fully_qualified_name":"4.27.0 (2025-01-08)","kind":"section_2","ident_start":10223,"ident_end":10242,"extent_start":10220,"extent_end":11991,"ident_utf16":{"start":{"line_number":130,"utf16_col":3},"end":{"line_number":130,"utf16_col":22}},"extent_utf16":{"start":{"line_number":130,"utf16_col":0},"end":{"line_number":188,"utf16_col":0}}},{"name":"4.26.0 (2024-11-01)","fully_qualified_name":"4.26.0 (2024-11-01)","kind":"section_2","ident_start":11994,"ident_end":12013,"extent_start":11991,"extent_end":12368,"ident_utf16":{"start":{"line_number":188,"utf16_col":3},"end":{"line_number":188,"utf16_col":22}},"extent_utf16":{"start":{"line_number":188,"utf16_col":0},"end":{"line_number":195,"utf16_col":0}}},{"name":"4.25.1 (2024-09-02)","fully_qualified_name":"4.25.1 (2024-09-02)","kind":"section_2","ident_start":12371,"ident_end":12390,"extent_start":12368,"extent_end":12443,"ident_utf16":{"start":{"line_number":195,"utf16_col":3},"end":{"line_number":195,"utf16_col":22}},"extent_utf16":{"start":{"line_number":195,"utf16_col":0},"end":{"line_number":199,"utf16_col":0}}},{"name":"4.25.0 (2024-08-18)","fully_qualified_name":"4.25.0 (2024-08-18)","kind":"section_2","ident_start":12446,"ident_end":12465,"extent_start":12443,"extent_end":13442,"ident_utf16":{"start":{"line_number":199,"utf16_col":3},"end":{"line_number":199,"utf16_col":22}},"extent_utf16":{"start":{"line_number":199,"utf16_col":0},"end":{"line_number":210,"utf16_col":0}}},{"name":"4.24.0 (2024-06-19)","fully_qualified_name":"4.24.0 (2024-06-19)","kind":"section_2","ident_start":13445,"ident_end":13464,"extent_start":13442,"extent_end":14721,"ident_utf16":{"start":{"line_number":210,"utf16_col":3},"end":{"line_number":210,"utf16_col":22}},"extent_utf16":{"start":{"line_number":210,"utf16_col":0},"end":{"line_number":220,"utf16_col":0}}},{"name":"4.23.1 (2024-05-23)","fully_qualified_name":"4.23.1 (2024-05-23)","kind":"section_2","ident_start":14724,"ident_end":14743,"extent_start":14721,"extent_end":14834,"ident_utf16":{"start":{"line_number":220,"utf16_col":3},"end":{"line_number":220,"utf16_col":22}},"extent_utf16":{"start":{"line_number":220,"utf16_col":0},"end":{"line_number":224,"utf16_col":0}}},{"name":"4.23.0 (2024-05-04)","fully_qualified_name":"4.23.0 (2024-05-04)","kind":"section_2","ident_start":14837,"ident_end":14856,"extent_start":14834,"extent_end":15371,"ident_utf16":{"start":{"line_number":224,"utf16_col":3},"end":{"line_number":224,"utf16_col":22}},"extent_utf16":{"start":{"line_number":224,"utf16_col":0},"end":{"line_number":232,"utf16_col":0}}},{"name":"4.22.0 (2024-04-12)","fully_qualified_name":"4.22.0 (2024-04-12)","kind":"section_2","ident_start":15374,"ident_end":15393,"extent_start":15371,"extent_end":15613,"ident_utf16":{"start":{"line_number":232,"utf16_col":3},"end":{"line_number":232,"utf16_col":22}},"extent_utf16":{"start":{"line_number":232,"utf16_col":0},"end":{"line_number":237,"utf16_col":0}}},{"name":"4.21.0 (2024-03-08)","fully_qualified_name":"4.21.0 (2024-03-08)","kind":"section_2","ident_start":15616,"ident_end":15635,"extent_start":15613,"extent_end":15873,"ident_utf16":{"start":{"line_number":237,"utf16_col":3},"end":{"line_number":237,"utf16_col":22}},"extent_utf16":{"start":{"line_number":237,"utf16_col":0},"end":{"line_number":242,"utf16_col":0}}},{"name":"4.20.0 (2023-12-12)","fully_qualified_name":"4.20.0 (2023-12-12)","kind":"section_2","ident_start":15876,"ident_end":15895,"extent_start":15873,"extent_end":16782,"ident_utf16":{"start":{"line_number":242,"utf16_col":3},"end":{"line_number":242,"utf16_col":22}},"extent_utf16":{"start":{"line_number":242,"utf16_col":0},"end":{"line_number":249,"utf16_col":0}}},{"name":"4.19.0 (2023-08-26)","fully_qualified_name":"4.19.0 (2023-08-26)","kind":"section_2","ident_start":16785,"ident_end":16804,"extent_start":16782,"extent_end":17724,"ident_utf16":{"start":{"line_number":249,"utf16_col":3},"end":{"line_number":249,"utf16_col":22}},"extent_utf16":{"start":{"line_number":249,"utf16_col":0},"end":{"line_number":259,"utf16_col":0}}},{"name":"4.18.0 (2023-06-28)","fully_qualified_name":"4.18.0 (2023-06-28)","kind":"section_2","ident_start":17727,"ident_end":17746,"extent_start":17724,"extent_end":18902,"ident_utf16":{"start":{"line_number":259,"utf16_col":3},"end":{"line_number":259,"utf16_col":22}},"extent_utf16":{"start":{"line_number":259,"utf16_col":0},"end":{"line_number":270,"utf16_col":0}}},{"name":"4.17.1 (2023-03-29)","fully_qualified_name":"4.17.1 (2023-03-29)","kind":"section_2","ident_start":18905,"ident_end":18924,"extent_start":18902,"extent_end":19107,"ident_utf16":{"start":{"line_number":270,"utf16_col":3},"end":{"line_number":270,"utf16_col":22}},"extent_utf16":{"start":{"line_number":270,"utf16_col":0},"end":{"line_number":275,"utf16_col":0}}},{"name":"4.17.0 (2023-02-20)","fully_qualified_name":"4.17.0 (2023-02-20)","kind":"section_2","ident_start":19110,"ident_end":19129,"extent_start":19107,"extent_end":20104,"ident_utf16":{"start":{"line_number":275,"utf16_col":3},"end":{"line_number":275,"utf16_col":22}},"extent_utf16":{"start":{"line_number":275,"utf16_col":0},"end":{"line_number":286,"utf16_col":0}}},{"name":"4.16.0 (2022-11-23)","fully_qualified_name":"4.16.0 (2022-11-23)","kind":"section_2","ident_start":20107,"ident_end":20126,"extent_start":20104,"extent_end":20778,"ident_utf16":{"start":{"line_number":286,"utf16_col":3},"end":{"line_number":286,"utf16_col":22}},"extent_utf16":{"start":{"line_number":286,"utf16_col":0},"end":{"line_number":295,"utf16_col":0}}},{"name":"4.15.1 (2022-09-09)","fully_qualified_name":"4.15.1 (2022-09-09)","kind":"section_2","ident_start":20781,"ident_end":20800,"extent_start":20778,"extent_end":21129,"ident_utf16":{"start":{"line_number":295,"utf16_col":3},"end":{"line_number":295,"utf16_col":22}},"extent_utf16":{"start":{"line_number":295,"utf16_col":0},"end":{"line_number":300,"utf16_col":0}}},{"name":"4.15.0 (2022-08-26)","fully_qualified_name":"4.15.0 (2022-08-26)","kind":"section_2","ident_start":21132,"ident_end":21151,"extent_start":21129,"extent_end":22528,"ident_utf16":{"start":{"line_number":300,"utf16_col":3},"end":{"line_number":300,"utf16_col":22}},"extent_utf16":{"start":{"line_number":300,"utf16_col":0},"end":{"line_number":313,"utf16_col":0}}},{"name":"4.14.0 (2022-04-12)","fully_qualified_name":"4.14.0 (2022-04-12)","kind":"section_2","ident_start":22531,"ident_end":22550,"extent_start":22528,"extent_end":23893,"ident_utf16":{"start":{"line_number":313,"utf16_col":3},"end":{"line_number":313,"utf16_col":22}},"extent_utf16":{"start":{"line_number":313,"utf16_col":0},"end":{"line_number":328,"utf16_col":0}}},{"name":"4.13.1 (2022-03-14)","fully_qualified_name":"4.13.1 (2022-03-14)","kind":"section_2","ident_start":23896,"ident_end":23915,"extent_start":23893,"extent_end":24010,"ident_utf16":{"start":{"line_number":328,"utf16_col":3},"end":{"line_number":328,"utf16_col":22}},"extent_utf16":{"start":{"line_number":328,"utf16_col":0},"end":{"line_number":332,"utf16_col":0}}},{"name":"4.13.0 (2022-03-07)","fully_qualified_name":"4.13.0 (2022-03-07)","kind":"section_2","ident_start":24013,"ident_end":24032,"extent_start":24010,"extent_end":24195,"ident_utf16":{"start":{"line_number":332,"utf16_col":3},"end":{"line_number":332,"utf16_col":22}},"extent_utf16":{"start":{"line_number":332,"utf16_col":0},"end":{"line_number":337,"utf16_col":0}}},{"name":"4.12.0 (2022-01-13)","fully_qualified_name":"4.12.0 (2022-01-13)","kind":"section_2","ident_start":24198,"ident_end":24217,"extent_start":24195,"extent_end":24686,"ident_utf16":{"start":{"line_number":337,"utf16_col":3},"end":{"line_number":337,"utf16_col":22}},"extent_utf16":{"start":{"line_number":337,"utf16_col":0},"end":{"line_number":344,"utf16_col":0}}},{"name":"4.11.0 (2021-11-24)","fully_qualified_name":"4.11.0 (2021-11-24)","kind":"section_2","ident_start":24689,"ident_end":24708,"extent_start":24686,"extent_end":26056,"ident_utf16":{"start":{"line_number":344,"utf16_col":3},"end":{"line_number":344,"utf16_col":22}},"extent_utf16":{"start":{"line_number":344,"utf16_col":0},"end":{"line_number":358,"utf16_col":0}}},{"name":"4.10.0 (2021-10-06)","fully_qualified_name":"4.10.0 (2021-10-06)","kind":"section_2","ident_start":26059,"ident_end":26078,"extent_start":26056,"extent_end":26309,"ident_utf16":{"start":{"line_number":358,"utf16_col":3},"end":{"line_number":358,"utf16_col":22}},"extent_utf16":{"start":{"line_number":358,"utf16_col":0},"end":{"line_number":364,"utf16_col":0}}},{"name":"4.9.0 (2021-09-21)","fully_qualified_name":"4.9.0 (2021-09-21)","kind":"section_2","ident_start":26312,"ident_end":26330,"extent_start":26309,"extent_end":27531,"ident_utf16":{"start":{"line_number":364,"utf16_col":3},"end":{"line_number":364,"utf16_col":21}},"extent_utf16":{"start":{"line_number":364,"utf16_col":0},"end":{"line_number":375,"utf16_col":0}}},{"name":"4.8.1 (2021-09-12)","fully_qualified_name":"4.8.1 (2021-09-12)","kind":"section_2","ident_start":27534,"ident_end":27552,"extent_start":27531,"extent_end":27712,"ident_utf16":{"start":{"line_number":375,"utf16_col":3},"end":{"line_number":375,"utf16_col":21}},"extent_utf16":{"start":{"line_number":375,"utf16_col":0},"end":{"line_number":379,"utf16_col":0}}},{"name":"4.8.0 (2021-09-09)","fully_qualified_name":"4.8.0 (2021-09-09)","kind":"section_2","ident_start":27715,"ident_end":27733,"extent_start":27712,"extent_end":29530,"ident_utf16":{"start":{"line_number":379,"utf16_col":3},"end":{"line_number":379,"utf16_col":21}},"extent_utf16":{"start":{"line_number":379,"utf16_col":0},"end":{"line_number":403,"utf16_col":0}}},{"name":"4.7.1 (2021-08-28)","fully_qualified_name":"4.7.1 (2021-08-28)","kind":"section_2","ident_start":29533,"ident_end":29551,"extent_start":29530,"extent_end":29728,"ident_utf16":{"start":{"line_number":403,"utf16_col":3},"end":{"line_number":403,"utf16_col":21}},"extent_utf16":{"start":{"line_number":403,"utf16_col":0},"end":{"line_number":408,"utf16_col":0}}},{"name":"4.7.0 (2021-08-24)","fully_qualified_name":"4.7.0 (2021-08-24)","kind":"section_2","ident_start":29731,"ident_end":29749,"extent_start":29728,"extent_end":35124,"ident_utf16":{"start":{"line_number":408,"utf16_col":3},"end":{"line_number":408,"utf16_col":21}},"extent_utf16":{"start":{"line_number":408,"utf16_col":0},"end":{"line_number":443,"utf16_col":0}}},{"name":"4.6.0 (2021-07-25)","fully_qualified_name":"4.6.0 (2021-07-25)","kind":"section_2","ident_start":35127,"ident_end":35145,"extent_start":35124,"extent_end":35719,"ident_utf16":{"start":{"line_number":443,"utf16_col":3},"end":{"line_number":443,"utf16_col":21}},"extent_utf16":{"start":{"line_number":443,"utf16_col":0},"end":{"line_number":455,"utf16_col":0}}},{"name":"4.5.0 (2021-05-29)","fully_qualified_name":"4.5.0 (2021-05-29)","kind":"section_2","ident_start":35722,"ident_end":35740,"extent_start":35719,"extent_end":36645,"ident_utf16":{"start":{"line_number":455,"utf16_col":3},"end":{"line_number":455,"utf16_col":21}},"extent_utf16":{"start":{"line_number":455,"utf16_col":0},"end":{"line_number":469,"utf16_col":0}}},{"name":"4.4.0 (2021-05-03)","fully_qualified_name":"4.4.0 (2021-05-03)","kind":"section_2","ident_start":36648,"ident_end":36666,"extent_start":36645,"extent_end":36996,"ident_utf16":{"start":{"line_number":469,"utf16_col":3},"end":{"line_number":469,"utf16_col":21}},"extent_utf16":{"start":{"line_number":469,"utf16_col":0},"end":{"line_number":478,"utf16_col":0}}},{"name":"4.3.2 (2021-03-13)","fully_qualified_name":"4.3.2 (2021-03-13)","kind":"section_2","ident_start":36999,"ident_end":37017,"extent_start":36996,"extent_end":37378,"ident_utf16":{"start":{"line_number":478,"utf16_col":3},"end":{"line_number":478,"utf16_col":21}},"extent_utf16":{"start":{"line_number":478,"utf16_col":0},"end":{"line_number":484,"utf16_col":0}}},{"name":"4.3.1 (2021-03-12)","fully_qualified_name":"4.3.1 (2021-03-12)","kind":"section_2","ident_start":37381,"ident_end":37399,"extent_start":37378,"extent_end":37732,"ident_utf16":{"start":{"line_number":484,"utf16_col":3},"end":{"line_number":484,"utf16_col":21}},"extent_utf16":{"start":{"line_number":484,"utf16_col":0},"end":{"line_number":490,"utf16_col":0}}},{"name":"4.3.0 (2021-02-24)","fully_qualified_name":"4.3.0 (2021-02-24)","kind":"section_2","ident_start":37735,"ident_end":37753,"extent_start":37732,"extent_end":39198,"ident_utf16":{"start":{"line_number":490,"utf16_col":3},"end":{"line_number":490,"utf16_col":21}},"extent_utf16":{"start":{"line_number":490,"utf16_col":0},"end":{"line_number":502,"utf16_col":0}}},{"name":"Deprecation Notice","fully_qualified_name":"Deprecation Notice","kind":"section_3","ident_start":38641,"ident_end":38659,"extent_start":38637,"extent_end":39198,"ident_utf16":{"start":{"line_number":498,"utf16_col":4},"end":{"line_number":498,"utf16_col":22}},"extent_utf16":{"start":{"line_number":498,"utf16_col":0},"end":{"line_number":502,"utf16_col":0}}},{"name":"4.2.0 (2021-02-01)","fully_qualified_name":"4.2.0 (2021-02-01)","kind":"section_2","ident_start":39201,"ident_end":39219,"extent_start":39198,"extent_end":39435,"ident_utf16":{"start":{"line_number":502,"utf16_col":3},"end":{"line_number":502,"utf16_col":21}},"extent_utf16":{"start":{"line_number":502,"utf16_col":0},"end":{"line_number":509,"utf16_col":0}}},{"name":"4.1.0 (2021-01-18)","fully_qualified_name":"4.1.0 (2021-01-18)","kind":"section_2","ident_start":39438,"ident_end":39456,"extent_start":39435,"extent_end":40097,"ident_utf16":{"start":{"line_number":509,"utf16_col":3},"end":{"line_number":509,"utf16_col":21}},"extent_utf16":{"start":{"line_number":509,"utf16_col":0},"end":{"line_number":519,"utf16_col":0}}},{"name":"4.0.0 (2020-12-18)","fully_qualified_name":"4.0.0 (2020-12-18)","kind":"section_2","ident_start":40100,"ident_end":40118,"extent_start":40097,"extent_end":48698,"ident_utf16":{"start":{"line_number":519,"utf16_col":3},"end":{"line_number":519,"utf16_col":21}},"extent_utf16":{"start":{"line_number":519,"utf16_col":0},"end":{"line_number":591,"utf16_col":0}}},{"name":"New Features","fully_qualified_name":"New Features","kind":"section_3","ident_start":40588,"ident_end":40600,"extent_start":40584,"extent_end":46507,"ident_utf16":{"start":{"line_number":523,"utf16_col":4},"end":{"line_number":523,"utf16_col":16}},"extent_utf16":{"start":{"line_number":523,"utf16_col":0},"end":{"line_number":566,"utf16_col":0}}},{"name":"Breaking Changes","fully_qualified_name":"Breaking Changes","kind":"section_3","ident_start":46511,"ident_end":46527,"extent_start":46507,"extent_end":48275,"ident_utf16":{"start":{"line_number":566,"utf16_col":4},"end":{"line_number":566,"utf16_col":20}},"extent_utf16":{"start":{"line_number":566,"utf16_col":0},"end":{"line_number":584,"utf16_col":0}}},{"name":"Fixes","fully_qualified_name":"Fixes","kind":"section_3","ident_start":48279,"ident_end":48284,"extent_start":48275,"extent_end":48698,"ident_utf16":{"start":{"line_number":584,"utf16_col":4},"end":{"line_number":584,"utf16_col":9}},"extent_utf16":{"start":{"line_number":584,"utf16_col":0},"end":{"line_number":591,"utf16_col":0}}},{"name":"3.20.0 (2020-11-25)","fully_qualified_name":"3.20.0 (2020-11-25)","kind":"section_2","ident_start":48701,"ident_end":48720,"extent_start":48698,"extent_end":49024,"ident_utf16":{"start":{"line_number":591,"utf16_col":3},"end":{"line_number":591,"utf16_col":22}},"extent_utf16":{"start":{"line_number":591,"utf16_col":0},"end":{"line_number":596,"utf16_col":0}}},{"name":"3.19.0 (2020-11-20)","fully_qualified_name":"3.19.0 (2020-11-20)","kind":"section_2","ident_start":49027,"ident_end":49046,"extent_start":49024,"extent_end":49847,"ident_utf16":{"start":{"line_number":596,"utf16_col":3},"end":{"line_number":596,"utf16_col":22}},"extent_utf16":{"start":{"line_number":596,"utf16_col":0},"end":{"line_number":603,"utf16_col":0}}},{"name":"3.18.1 (2020-11-12)","fully_qualified_name":"3.18.1 (2020-11-12)","kind":"section_2","ident_start":49850,"ident_end":49869,"extent_start":49847,"extent_end":50051,"ident_utf16":{"start":{"line_number":603,"utf16_col":3},"end":{"line_number":603,"utf16_col":22}},"extent_utf16":{"start":{"line_number":603,"utf16_col":0},"end":{"line_number":608,"utf16_col":0}}},{"name":"3.18.0 (2020-11-07)","fully_qualified_name":"3.18.0 (2020-11-07)","kind":"section_2","ident_start":50054,"ident_end":50073,"extent_start":50051,"extent_end":50614,"ident_utf16":{"start":{"line_number":608,"utf16_col":3},"end":{"line_number":608,"utf16_col":22}},"extent_utf16":{"start":{"line_number":608,"utf16_col":0},"end":{"line_number":614,"utf16_col":0}}},{"name":"3.17.0 (2020-10-09)","fully_qualified_name":"3.17.0 (2020-10-09)","kind":"section_2","ident_start":50617,"ident_end":50636,"extent_start":50614,"extent_end":52279,"ident_utf16":{"start":{"line_number":614,"utf16_col":3},"end":{"line_number":614,"utf16_col":22}},"extent_utf16":{"start":{"line_number":614,"utf16_col":0},"end":{"line_number":629,"utf16_col":0}}},{"name":"3.16.0 (2020-08-31)","fully_qualified_name":"3.16.0 (2020-08-31)","kind":"section_2","ident_start":52282,"ident_end":52301,"extent_start":52279,"extent_end":53113,"ident_utf16":{"start":{"line_number":629,"utf16_col":3},"end":{"line_number":629,"utf16_col":22}},"extent_utf16":{"start":{"line_number":629,"utf16_col":0},"end":{"line_number":640,"utf16_col":0}}},{"name":"3.15.1 (2020-07-08)","fully_qualified_name":"3.15.1 (2020-07-08)","kind":"section_2","ident_start":53116,"ident_end":53135,"extent_start":53113,"extent_end":53220,"ident_utf16":{"start":{"line_number":640,"utf16_col":3},"end":{"line_number":640,"utf16_col":22}},"extent_utf16":{"start":{"line_number":640,"utf16_col":0},"end":{"line_number":644,"utf16_col":0}}},{"name":"3.15.0 (2020-06-22)","fully_qualified_name":"3.15.0 (2020-06-22)","kind":"section_2","ident_start":53223,"ident_end":53242,"extent_start":53220,"extent_end":53961,"ident_utf16":{"start":{"line_number":644,"utf16_col":3},"end":{"line_number":644,"utf16_col":22}},"extent_utf16":{"start":{"line_number":644,"utf16_col":0},"end":{"line_number":653,"utf16_col":0}}},{"name":"3.14.0 (2020-05-07)","fully_qualified_name":"3.14.0 (2020-05-07)","kind":"section_2","ident_start":53964,"ident_end":53983,"extent_start":53961,"extent_end":54312,"ident_utf16":{"start":{"line_number":653,"utf16_col":3},"end":{"line_number":653,"utf16_col":22}},"extent_utf16":{"start":{"line_number":653,"utf16_col":0},"end":{"line_number":660,"utf16_col":0}}},{"name":"3.13.0 (2020-04-11)","fully_qualified_name":"3.13.0 (2020-04-11)","kind":"section_2","ident_start":54315,"ident_end":54334,"extent_start":54312,"extent_end":55083,"ident_utf16":{"start":{"line_number":660,"utf16_col":3},"end":{"line_number":660,"utf16_col":22}},"extent_utf16":{"start":{"line_number":660,"utf16_col":0},"end":{"line_number":678,"utf16_col":0}}},{"name":"3.12.0 (2019-12-10)","fully_qualified_name":"3.12.0 (2019-12-10)","kind":"section_2","ident_start":55086,"ident_end":55105,"extent_start":55083,"extent_end":56157,"ident_utf16":{"start":{"line_number":678,"utf16_col":3},"end":{"line_number":678,"utf16_col":22}},"extent_utf16":{"start":{"line_number":678,"utf16_col":0},"end":{"line_number":691,"utf16_col":0}}},{"name":"3.11.0 (2019-11-12)","fully_qualified_name":"3.11.0 (2019-11-12)","kind":"section_2","ident_start":56160,"ident_end":56179,"extent_start":56157,"extent_end":57093,"ident_utf16":{"start":{"line_number":691,"utf16_col":3},"end":{"line_number":691,"utf16_col":22}},"extent_utf16":{"start":{"line_number":691,"utf16_col":0},"end":{"line_number":700,"utf16_col":0}}},{"name":"3.10.0 (2019-11-06)","fully_qualified_name":"3.10.0 (2019-11-06)","kind":"section_2","ident_start":57096,"ident_end":57115,"extent_start":57093,"extent_end":57884,"ident_utf16":{"start":{"line_number":700,"utf16_col":3},"end":{"line_number":700,"utf16_col":22}},"extent_utf16":{"start":{"line_number":700,"utf16_col":0},"end":{"line_number":709,"utf16_col":0}}},{"name":"3.9.0 (2019-10-26)","fully_qualified_name":"3.9.0 (2019-10-26)","kind":"section_2","ident_start":57887,"ident_end":57905,"extent_start":57884,"extent_end":58517,"ident_utf16":{"start":{"line_number":709,"utf16_col":3},"end":{"line_number":709,"utf16_col":21}},"extent_utf16":{"start":{"line_number":709,"utf16_col":0},"end":{"line_number":715,"utf16_col":0}}},{"name":"3.8.0 (2019-09-27)","fully_qualified_name":"3.8.0 (2019-09-27)","kind":"section_2","ident_start":58520,"ident_end":58538,"extent_start":58517,"extent_end":59911,"ident_utf16":{"start":{"line_number":715,"utf16_col":3},"end":{"line_number":715,"utf16_col":21}},"extent_utf16":{"start":{"line_number":715,"utf16_col":0},"end":{"line_number":727,"utf16_col":0}}},{"name":"3.7.0 (2019-09-18)","fully_qualified_name":"3.7.0 (2019-09-18)","kind":"section_2","ident_start":59914,"ident_end":59932,"extent_start":59911,"extent_end":60618,"ident_utf16":{"start":{"line_number":727,"utf16_col":3},"end":{"line_number":727,"utf16_col":21}},"extent_utf16":{"start":{"line_number":727,"utf16_col":0},"end":{"line_number":735,"utf16_col":0}}},{"name":"3.6.0 (2019-08-19)","fully_qualified_name":"3.6.0 (2019-08-19)","kind":"section_2","ident_start":60621,"ident_end":60639,"extent_start":60618,"extent_end":61911,"ident_utf16":{"start":{"line_number":735,"utf16_col":3},"end":{"line_number":735,"utf16_col":21}},"extent_utf16":{"start":{"line_number":735,"utf16_col":0},"end":{"line_number":755,"utf16_col":0}}},{"name":"3.5.0 (2019-06-21)","fully_qualified_name":"3.5.0 (2019-06-21)","kind":"section_2","ident_start":61914,"ident_end":61932,"extent_start":61911,"extent_end":62534,"ident_utf16":{"start":{"line_number":755,"utf16_col":3},"end":{"line_number":755,"utf16_col":21}},"extent_utf16":{"start":{"line_number":755,"utf16_col":0},"end":{"line_number":764,"utf16_col":0}}},{"name":"3.4.0 (2019-04-30)","fully_qualified_name":"3.4.0 (2019-04-30)","kind":"section_2","ident_start":62537,"ident_end":62555,"extent_start":62534,"extent_end":63140,"ident_utf16":{"start":{"line_number":764,"utf16_col":3},"end":{"line_number":764,"utf16_col":21}},"extent_utf16":{"start":{"line_number":764,"utf16_col":0},"end":{"line_number":771,"utf16_col":0}}},{"name":"3.3.0 (2019-03-24)","fully_qualified_name":"3.3.0 (2019-03-24)","kind":"section_2","ident_start":63143,"ident_end":63161,"extent_start":63140,"extent_end":63820,"ident_utf16":{"start":{"line_number":771,"utf16_col":3},"end":{"line_number":771,"utf16_col":21}},"extent_utf16":{"start":{"line_number":771,"utf16_col":0},"end":{"line_number":779,"utf16_col":0}}},{"name":"3.2.1 (2019-03-04)","fully_qualified_name":"3.2.1 (2019-03-04)","kind":"section_2","ident_start":63823,"ident_end":63841,"extent_start":63820,"extent_end":64071,"ident_utf16":{"start":{"line_number":779,"utf16_col":3},"end":{"line_number":779,"utf16_col":21}},"extent_utf16":{"start":{"line_number":779,"utf16_col":0},"end":{"line_number":785,"utf16_col":0}}},{"name":"3.2.0 (2019-01-22)","fully_qualified_name":"3.2.0 (2019-01-22)","kind":"section_2","ident_start":64074,"ident_end":64092,"extent_start":64071,"extent_end":65028,"ident_utf16":{"start":{"line_number":785,"utf16_col":3},"end":{"line_number":785,"utf16_col":21}},"extent_utf16":{"start":{"line_number":785,"utf16_col":0},"end":{"line_number":796,"utf16_col":0}}},{"name":"3.1.1 (2018-12-22)","fully_qualified_name":"3.1.1 (2018-12-22)","kind":"section_2","ident_start":65031,"ident_end":65049,"extent_start":65028,"extent_end":65135,"ident_utf16":{"start":{"line_number":796,"utf16_col":3},"end":{"line_number":796,"utf16_col":21}},"extent_utf16":{"start":{"line_number":796,"utf16_col":0},"end":{"line_number":800,"utf16_col":0}}},{"name":"3.1.0 (2018-12-16)","fully_qualified_name":"3.1.0 (2018-12-16)","kind":"section_2","ident_start":65138,"ident_end":65156,"extent_start":65135,"extent_end":65676,"ident_utf16":{"start":{"line_number":800,"utf16_col":3},"end":{"line_number":800,"utf16_col":21}},"extent_utf16":{"start":{"line_number":800,"utf16_col":0},"end":{"line_number":814,"utf16_col":0}}},{"name":"3.0.1 (2018-11-30)","fully_qualified_name":"3.0.1 (2018-11-30)","kind":"section_2","ident_start":65679,"ident_end":65697,"extent_start":65676,"extent_end":66114,"ident_utf16":{"start":{"line_number":814,"utf16_col":3},"end":{"line_number":814,"utf16_col":21}},"extent_utf16":{"start":{"line_number":814,"utf16_col":0},"end":{"line_number":820,"utf16_col":0}}},{"name":"3.0.0 (2018-11-13)","fully_qualified_name":"3.0.0 (2018-11-13)","kind":"section_2","ident_start":66117,"ident_end":66135,"extent_start":66114,"extent_end":67655,"ident_utf16":{"start":{"line_number":820,"utf16_col":3},"end":{"line_number":820,"utf16_col":21}},"extent_utf16":{"start":{"line_number":820,"utf16_col":0},"end":{"line_number":836,"utf16_col":0}}},{"name":"2.9.1 (2018-10-26)","fully_qualified_name":"2.9.1 (2018-10-26)","kind":"section_2","ident_start":67658,"ident_end":67676,"extent_start":67655,"extent_end":68142,"ident_utf16":{"start":{"line_number":836,"utf16_col":3},"end":{"line_number":836,"utf16_col":21}},"extent_utf16":{"start":{"line_number":836,"utf16_col":0},"end":{"line_number":843,"utf16_col":0}}},{"name":"2.9.0 (2018-10-05)","fully_qualified_name":"2.9.0 (2018-10-05)","kind":"section_2","ident_start":68145,"ident_end":68163,"extent_start":68142,"extent_end":68289,"ident_utf16":{"start":{"line_number":843,"utf16_col":3},"end":{"line_number":843,"utf16_col":21}},"extent_utf16":{"start":{"line_number":843,"utf16_col":0},"end":{"line_number":850,"utf16_col":0}}},{"name":"2.8.0 (2018-09-12)","fully_qualified_name":"2.8.0 (2018-09-12)","kind":"section_2","ident_start":68292,"ident_end":68310,"extent_start":68289,"extent_end":68549,"ident_utf16":{"start":{"line_number":850,"utf16_col":3},"end":{"line_number":850,"utf16_col":21}},"extent_utf16":{"start":{"line_number":850,"utf16_col":0},"end":{"line_number":858,"utf16_col":0}}},{"name":"2.7.1 (2018-08-30)","fully_qualified_name":"2.7.1 (2018-08-30)","kind":"section_2","ident_start":68552,"ident_end":68570,"extent_start":68549,"extent_end":68930,"ident_utf16":{"start":{"line_number":858,"utf16_col":3},"end":{"line_number":858,"utf16_col":21}},"extent_utf16":{"start":{"line_number":858,"utf16_col":0},"end":{"line_number":865,"utf16_col":0}}},{"name":"2.7.0 (2018-08-12)","fully_qualified_name":"2.7.0 (2018-08-12)","kind":"section_2","ident_start":68933,"ident_end":68951,"extent_start":68930,"extent_end":69550,"ident_utf16":{"start":{"line_number":865,"utf16_col":3},"end":{"line_number":865,"utf16_col":21}},"extent_utf16":{"start":{"line_number":865,"utf16_col":0},"end":{"line_number":874,"utf16_col":0}}},{"name":"2.6.0 (2018-08-01)","fully_qualified_name":"2.6.0 (2018-08-01)","kind":"section_2","ident_start":69553,"ident_end":69571,"extent_start":69550,"extent_end":70377,"ident_utf16":{"start":{"line_number":874,"utf16_col":3},"end":{"line_number":874,"utf16_col":21}},"extent_utf16":{"start":{"line_number":874,"utf16_col":0},"end":{"line_number":886,"utf16_col":0}}},{"name":"2.5.0 (2018-07-12)","fully_qualified_name":"2.5.0 (2018-07-12)","kind":"section_2","ident_start":70380,"ident_end":70398,"extent_start":70377,"extent_end":71385,"ident_utf16":{"start":{"line_number":886,"utf16_col":3},"end":{"line_number":886,"utf16_col":21}},"extent_utf16":{"start":{"line_number":886,"utf16_col":0},"end":{"line_number":896,"utf16_col":0}}},{"name":"2.4.0 (2018-06-01)","fully_qualified_name":"2.4.0 (2018-06-01)","kind":"section_2","ident_start":71388,"ident_end":71406,"extent_start":71385,"extent_end":71813,"ident_utf16":{"start":{"line_number":896,"utf16_col":3},"end":{"line_number":896,"utf16_col":21}},"extent_utf16":{"start":{"line_number":896,"utf16_col":0},"end":{"line_number":903,"utf16_col":0}}},{"name":"2.3.0 (2018-05-29)","fully_qualified_name":"2.3.0 (2018-05-29)","kind":"section_2","ident_start":71816,"ident_end":71834,"extent_start":71813,"extent_end":72234,"ident_utf16":{"start":{"line_number":903,"utf16_col":3},"end":{"line_number":903,"utf16_col":21}},"extent_utf16":{"start":{"line_number":903,"utf16_col":0},"end":{"line_number":915,"utf16_col":0}}},{"name":"2.2.0 (2018-05-24)","fully_qualified_name":"2.2.0 (2018-05-24)","kind":"section_2","ident_start":72237,"ident_end":72255,"extent_start":72234,"extent_end":72736,"ident_utf16":{"start":{"line_number":915,"utf16_col":3},"end":{"line_number":915,"utf16_col":21}},"extent_utf16":{"start":{"line_number":915,"utf16_col":0},"end":{"line_number":923,"utf16_col":0}}},{"name":"2.1.1 (2018-05-19)","fully_qualified_name":"2.1.1 (2018-05-19)","kind":"section_2","ident_start":72739,"ident_end":72757,"extent_start":72736,"extent_end":72801,"ident_utf16":{"start":{"line_number":923,"utf16_col":3},"end":{"line_number":923,"utf16_col":21}},"extent_utf16":{"start":{"line_number":923,"utf16_col":0},"end":{"line_number":927,"utf16_col":0}}},{"name":"2.1.0 (2018-05-18)","fully_qualified_name":"2.1.0 (2018-05-18)","kind":"section_2","ident_start":72804,"ident_end":72822,"extent_start":72801,"extent_end":73307,"ident_utf16":{"start":{"line_number":927,"utf16_col":3},"end":{"line_number":927,"utf16_col":21}},"extent_utf16":{"start":{"line_number":927,"utf16_col":0},"end":{"line_number":938,"utf16_col":0}}},{"name":"2.0.1 (2018-05-12)","fully_qualified_name":"2.0.1 (2018-05-12)","kind":"section_2","ident_start":73310,"ident_end":73328,"extent_start":73307,"extent_end":73517,"ident_utf16":{"start":{"line_number":938,"utf16_col":3},"end":{"line_number":938,"utf16_col":21}},"extent_utf16":{"start":{"line_number":938,"utf16_col":0},"end":{"line_number":943,"utf16_col":0}}},{"name":"2.0 (2018-05-12)","fully_qualified_name":"2.0 (2018-05-12)","kind":"section_2","ident_start":73520,"ident_end":73536,"extent_start":73517,"extent_end":74920,"ident_utf16":{"start":{"line_number":943,"utf16_col":3},"end":{"line_number":943,"utf16_col":19}},"extent_utf16":{"start":{"line_number":943,"utf16_col":0},"end":{"line_number":966,"utf16_col":0}}},{"name":"1.1 (2018-05-02)","fully_qualified_name":"1.1 (2018-05-02)","kind":"section_2","ident_start":74923,"ident_end":74939,"extent_start":74920,"extent_end":75084,"ident_utf16":{"start":{"line_number":966,"utf16_col":3},"end":{"line_number":966,"utf16_col":19}},"extent_utf16":{"start":{"line_number":966,"utf16_col":0},"end":{"line_number":975,"utf16_col":0}}},{"name":"1.0 (2018-04-27)","fully_qualified_name":"1.0 (2018-04-27)","kind":"section_2","ident_start":75087,"ident_end":75103,"extent_start":75084,"extent_end":75578,"ident_utf16":{"start":{"line_number":975,"utf16_col":3},"end":{"line_number":975,"utf16_col":19}},"extent_utf16":{"start":{"line_number":975,"utf16_col":0},"end":{"line_number":999,"utf16_col":0}}}]}},"codeViewLayoutRoute":{"repo":{"id":1376820806,"defaultBranch":"main","name":"Posh-ACME","ownerLogin":"nimbice","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2026-09-19T06:35:36.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/5924799?v=4","public":true,"private":false,"isOrgOwned":false,"isArchived":false},"currentUser":null,"uploadToken":"Y_LkmklS4r4iLYP0rzx5hEsNDB6Wwm1zEoC1JzpjNAGutcnkdcxNnVtyr8rqAJ0byoNZMLQn0tXmiWxqQGmuXQ","allShortcutsEnabled":false,"treeExpanded":true,"path":"CHANGELOG.md","symbolsExpanded":false,"refInfo":{"name":"main","listCacheKey":"v0:1791218173.0","canEdit":false,"currentOid":"70b23cacecf4aa1f45af879dc86031cf074f222f"},"helpUrl":"https://docs.github.com","githubDevUrl":null},"codeViewFileTreeLayoutRoute":{"fileTree":{"":{"items":[{"name":".github","path":".github","contentType":"directory"},{"name":"Posh-ACME","path":"Posh-ACME","contentType":"directory"},{"name":"Tests","path":"Tests","contentType":"directory"},{"name":"docs","path":"docs","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"CHANGELOG.md","path":"CHANGELOG.md","contentType":"file"},{"name":"CODE_OF_CONDUCT.md","path":"CODE_OF_CONDUCT.md","contentType":"file"},{"name":"CONTRIBUTING.md","path":"CONTRIBUTING.md","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"Tutorial.md","path":"Tutorial.md","contentType":"file"},{"name":"gen-maml.ps1","path":"gen-maml.ps1","contentType":"file"},{"name":"instdev.ps1","path":"instdev.ps1","contentType":"file"},{"name":"mkdocs.yml","path":"mkdocs.yml","contentType":"file"},{"name":"update-func-markdown.ps1","path":"update-func-markdown.ps1","contentType":"file"}],"totalCount":15}},"fileTreeProcessingTime":16.190024,"foldersToFetch":[]},"codeViewBlobLayoutRoute":{"codeLineWrapEnabled":false,"refInfo":{"name":"main","listCacheKey":"v0:1791218173.0","canEdit":false,"refType":"branch","currentOid":"70b23cacecf4aa1f45af879dc86031cf074f222f","canEditOnDefaultBranch":false,"fileExistsOnDefault":true},"path":"CHANGELOG.md","blob":{"copilotSWEAgentEnabled":false,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/nimbice/Posh-ACME/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null},"displayName":"CHANGELOG.md","displayUrl":"https://github.com/nimbice/Posh-ACME/blob/main/CHANGELOG.md?raw=true","headerInfo":{"blobSize":"73.8 KB","deleteTooltip":"You must be signed in to make or propose changes","editTooltip":"You must be signed in to make or propose changes","ghDesktopPath":"https://desktop.github.com","isGitLfs":false,"onBranch":true,"shortPath":"f35f26e","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2Fnimbice%2FPosh-ACME%2Fblob%2Fmain%2FCHANGELOG.md","isCSV":false,"isRichtext":true,"lineInfo":{"truncatedLoc":"999","truncatedSloc":"804"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"isIssueTemplate":false,"isDiscussionTemplate":false,"language":"Markdown","languageID":222,"large":false,"planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/nimbice/Posh-ACME/blob/main/CHANGELOG.md","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","releasePath":"/nimbice/Posh-ACME/releases/new?marketplace=true","showPublishActionBanner":false},"rawBlobUrl":"https://github.com/nimbice/Posh-ACME/raw/refs/heads/main/CHANGELOG.md","renderImageOrRaw":false,"shortPath":null,"symbolsEnabled":true,"tabSize":4,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null},"copilotInfo":null,"copilotAccessAllowed":false,"copilotSpacesEnabled":false,"modelsAccessAllowed":false,"modelsRepoIntegrationEnabled":false,"isMarketplaceEnabled":true},"codeViewBlobLayoutRoute.StyledBlob":{"rawLines":["## 4.34.0 (2026-08-23)\r","\r","* New DNS Plugins\r","  * [Spaceship](https://www.spaceship.com/) (#678)\r","  * [GoDaddyV3](https://www.godaddy.com) for use with new V3 API (#686)\r","  * [MijnHost](https://mijn.host) (#675) (Thanks @j81blog)\r","  * [InfomaniakV2](https://www.infomaniak.com) (#689) (Thanks @Sundypha)\r","  * [HostingNL](https://www.hosting.nl/) (684) (Thanks @Tim81)\r","* Fixed Gandi API endpoint URL which recently changed. It is now a configurable parameter as well. (#682)\r","* Fixed Regru compatibility with API 2 (#687) (Thanks @kropachev)\r","* Fixed a number of GCloud issues:\r","  * Now works against accounts with many zones (#688)\r","  * Fixed future dns-persist-01 support\r","  * GCProjectId may now be a comma-delimited string (or string array as before)\r","  * Better error handling\r","\r","## 4.33.1 (2026-06-16)\r","\r","* Fixed parameter validation errors on renewal due to DnsVariant parameter being empty (#679)\r","\r","## 4.33.0 (2026-06-09)\r","\r","* Added preliminary support for `dns-account-01` challenge type based on [draft-ietf-acme-dns-account-label-03](https://datatracker.ietf.org/doc/draft-ietf-acme-dns-account-label/03/).\r","  * New `-DnsVariant` parameter in various Order and Challenge related functions.\r","  * New `Get-DnsAcctLabel` utility function\r","* New `-UsePfxDerEncoding` to `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder` which changes the encoding within generated PFX files from BER to DER. This may be necessary for compatibility with some applications, libraries, or services that have deprecated BER support. (#674)\r","* New [HostUp](https://cloud.hostup.se/) plugin (#663) (Thanks @itssimple)\r","* Cloudflare: Fixed a bug with TXT records containing quotes and did some light refactoring\r","* GoDaddy: Added support for corporate (Brandsight) API access which requires a Customer ID value. (#660) (Thanks @vertras)\r","* GoDaddy: Fixed support for TXT records containing quotes\r","* Namecheap: Reduced required API permissions for delegated corporate accounts to just `domains.dns.*` (#672)\r","* Namecheap: Added Sandbox support and better debug logging\r","* Namecheap: Fixed TXT records containing quotes and apex record support\r","* AutoDNS: Fixed string formatting error when using a password containing curly braces (#671)\r","* Fixed a PowerShell 5.1 specific bug in `Publish-DnsPersistChallenge` and `Unpublish-DnsPersistChallenge`\r","* Disabled PowerShell native debug logging on low level ACME calls which is now way more verbose in 7.6 and was duplicating the module specific logging.\r","\r","## 4.32.0 (2026-03-29)\r","\r","* New [DNSExit](https://dnsexit.com/) plugin (#668) (Thanks @joxdev13)\r","* Preliminary support for [dns-persist-01](https://datatracker.ietf.org/doc/draft-ietf-acme-dns-persist/)\r","  * Adds functions `Publish-DnsPersistChallenge` and `Unpublish-DnsPersistChallenge`. These are subject to change while the spec is still in a draft state.\r","  * I wanted to get these released early so folks can start testing the DNS plugins with them. No other core module changes have been added to support the cert workflow for this challenge type yet.\r","  * It is **highly** recommended to test these functions using your preferred DNS plugin. I suspect there are some bugs in some of the plugins that might surface because they have only been tested creating ACME challenge TXT records until now. Please submit issues for plugins that have problems.\r","* Fixed bug in Infoblox plugin that caused errors when TxtValue required URL escaping\r","* Added better error handling in `Get-PAPluginArgs` when decrypting encrypted args fails (#654)\r","\r","### Potentially Breaking Change\r","\r","* Generated CSRs no longer include the Enhanced Key Usage (EKU) extension.\r","  * This is a fix for CAs that have started rejecting CSRs containing the Client Authentication EKU such as [Google](https://pki.goog/updates/may2025-clientauth.html) due to its deprecation across all public CAs.\r","  * This change has been tested successfully against all known free public ACME CAs. The resulting certs still contain the EKU extension, but which EKUs get added is dependent on the CA as it has always been.\r","  * However, there are many commercial and private CAs I was unable to test against which is why this *might* be a breaking change for them. PLEASE test if you're not using one of the free public ACME CAs.\r","  * If for some reason your preferred CA rejects the new CSRs, you may always fall back to supplying your own CSR using the `-CSRPath` param in many of the functions.\r","\r","## 4.31.1 (2026-02-07)\r","\r","* Fixed bug in CSR generation for IP address certs. IPs will no longer be added to CSR Common Name. If an IP address is the \"MainDomain\" of the order, the CSR CN will be empty. (#658)\r","\r","## 4.31.0 (2026-01-21)\r","\r","* New [Technitium DNS](https://technitium.com/dns/) plugin. (#653) (Thanks @shalafi99)\r","* Added `CSR` property to the output of `Get-PACertificate` which is the path to the CSR file used for the request. (#650) (Thanks @skyblaster)\r","* Fixed bug in HetznerCloud plugin due to duplicate ErrorAction param use (#656)\r","\r","## 4.30.1 (2025-11-18)\r","\r","* Fixed Simply and SimplyCom plugins which now require trailing slashes to API endpoints. (#646) (Thanks @tomsommer)\r","\r","## 4.30.0 (2025-11-13)\r","\r","* New [HetznerCloud](https://www.hetzner.com/) plugin (#642) (Thanks @humnose)\r","  * This is for Hetzner users who have migrated their zones from the legacy \"DNS Console\" to the new \"Hetzner Console\". NOTE: New API tokens are needed.\r","* Added `AZArcAgentAPIVersion` param for Azure IMDS parameter set (#636) (Thanks @semics-tech)\r","  * This may be necessary systems running older versions of the Azure Managed Identity Agent that don't work with the default version identifier.\r","* Added `ACTALIS_PROD` to the list of well-known directory shortcuts. They've also been added to the ACME CA Comparison guide.\r","* Removed `BUYPASS_PROD` and `BUYPASS_TEST` from the list of well-known directory shortcuts since they are no longer in operation.\r","* Removed a workaround for a BuyPass server bug which is no longer necessary.\r","* Fixed Windows plugin breaks when not using WinUseSsl or WinSkipCACheck switches (#637) (Thanks @jmpederson1)\r","* Fixed PS 5.1 compat with DeSEC and EuroDNSReseller by removing -Depth param from ConvertFrom-Json calls (#643)\r","* Fixed null ref errors in CoreNetworks plugin when no matching zone found. Added additional debug logs. (#616)\r","\r","## 4.29.3 (2025-07-24)\r","\r","* The current ACME server directory endpoint is now refreshed on module import to ensure server changes are reflected before actions are performed. If the previously used ACME server is unreachable, a warning is thrown and previously cached data is used.\r","  * This should fix anyone who is getting 404 errors when renewing Let's Encrypt certs due to an unannounced change to their ARI endpoint. Users can also fix this problem without upgrading by running `Get-PAServer -Refresh`.\r","\r","## 4.29.2 (2025-07-15)\r","\r","* Fixed param set resolution error with New-PACertificate when using CSRPath/CSRString params (#629)\r","* Added workaround for non-compliant order response from KeyFactor ACME provider (#626)\r","* Added additional logging to DuckDNS plugin (#628)\r","* Tweaked debug output for ACME responses for better human readability\r","\r","## 4.29.1 (2025-06-26)\r","\r","* Fix Route53 plugin when used with AWS Tools for PowerShell 5.x (#627)\r","\r","## 4.29.0 (2025-06-25)\r","\r","* New DNS Plugins\r","  * [Netcup](https://www.netcup.com) (#602)\r","  * [TransIP](https://www.transip.nl) (#622) (Thanks @Tim81)\r","* Added `-IgnoreContact` switch to `Set-PAServer` (#619)\r","  * ALL USERS of LET'S ENCRYPT, this switch works around a bug that causes a new account to be created for every renewal after LE shut down their automated email warning service.\r","  * This option causes the module to ignore any `-Contact` parameters in functions that support it when using the associated server.\r","  * It will be enabled by default on new installs that use Let's Encrypt. But existing users will need to manually enable it *OR* simply stop using the `-Contact` parameter in your scripts when using Let's Encrypt ACME endpoints.\r","* Added AZAccessTokenSecure param for Azure plugin (#618)\r","* Added WinSkipCACheck switch to Windows plugin (#613)\r","* Added WinNoCimSession switch to Windows plugin (#600) (Thanks @rhochmayr)\r","* Fix: Changing an order's PfxPass no longer shows the new value in Verbose output (#604)\r","* Fix: New-PACertificate no longer shows plaintext PfxPass in debug log (#604)\r","* Fixed a bug in `New-PACertificate` that would unnecessarily create a new order when an existing unfinished order could have been continued\r","* Fixed a couple minor bugs related to switching profiles when creating new orders that match existing orders.\r","* Fix: Added a workaround for non-compliant order response from GoDaddy's ACME implementation (#611)\r","* Fixed PowerDNS plugin when using limited API key that doesn't have access to all hosted zones (#617) (Thanks @joachimcarrein)\r","* Removed the Warning message when creating a new ACME account with no `-Contact` parameter.\r","\r","## 4.28.0 (2025-02-08)\r","\r","* New [efficient iP SOLIDserver DDI](https://efficientip.com/products/solidserver-ddi/) plugin. Thanks @jamiekowalczik for the initial PR and @alexissavin for providing a test platform and API guidance.\r","* Experimental support for the new [ACME Profiles](https://datatracker.ietf.org/doc/draft-aaron-acme-profiles/) extension. This is still a very early draft standard and subject to change, but Let's Encrypt is already rolling out support this year as part of their short-lived certificates initiative. More info [here](https://letsencrypt.org/2025/01/09/acme-profiles/).\r","* Fixed Route53 plugin when used with accounts that have many hosted zones. (#593)\r","* Fixed a bug with DeSEC plugin that was caused by the previous fix for #584. (#598)\r","* Added better debug logging for DeSEC plugin.\r","* Azure cert thumbprint auth now works on Linux for certs in the \"CurrentUser\" store. (Thanks @Eric2XU)\r","* Fixed a bug with Azure cert thumbprint auth on Windows that could throw errors when using certificates with non-exportable private keys.\r","* Added better debug logging for Azure plugin.\r","* AcmeException objects thrown by the module now include the lower level HTTP response exception as an InnerException.\r","\r","## 4.27.0 (2025-01-08)\r","\r","* New DNS Plugins\r","  * [INWX](https://www.inwx.de/) (Thanks @andreashaerter)\r","  * [EuroDNSReseller](https://www.eurodns.com/) Check the guide on this one. It's only currently usable by reseller partners of EuroDNS and not direct EuroDNS customers. (Thanks @zoryatix)\r","* Fixed WEDOS plugin to handle different response types for dns-domains-list API call (#579)\r","* Publish-Challenge and Unpublish-Challenge now strip trailing `.` chars from the RecordName they pass to plugins in order to make edge-case parsing more predictable.\r","* Added additional ARI related error handling in New-PAOrder to more gracefully handle problems with the `replaces` field. (#587)\r","* Added additional error handling in the config import process to better deal with unexpected config states. (#587)\r","* Fixed a bug in the plugin development guide code that suggests how to parse short names from a RecordName and ZoneName value. The bug wouldn't correctly parse the short name in FQDNs that contained more than one instance of the zone name. (#584)\r","* Fixed all of the plugins that had implemented the bugged short name parsing algorithm.\r","  * Active24\r","  * Aliyun\r","  * All-Inkl\r","  * Aurora\r","  * AutoDNS\r","  * Azure\r","  * BlueCat\r","  * Bunny\r","  * ClouDNS\r","  * Combell\r","  * Constellix\r","  * CoreNetworks\r","  * DMEasy\r","  * DNSPod\r","  * DNSimple\r","  * DOcean\r","  * DeSEC\r","  * Domeneshop\r","  * EasyDNS\r","  * Easyname\r","  * FreeDNS\r","  * Gandi\r","  * GoDaddy\r","  * Hetzner\r","  * IBMSoftLayer\r","  * ISPConfig\r","  * Infomaniak\r","  * Linode\r","  * Loopia\r","  * NameCom\r","  * NameSilo\r","  * Namecheap\r","  * OVH\r","  * OnlineNet\r","  * PointDNS\r","  * Porkbun\r","  * PortsManagement\r","  * Regru\r","  * Simply\r","  * SimplyCom\r","  * TencentDNS\r","  * TotalUptime\r","  * WEDOS\r","  * WebsupportSK\r","  * Windows\r","  * Yandex\r","\r","## 4.26.0 (2024-11-01)\r","\r","* New DNS plugin [AddrTools](https://challenges.addr.tools/) (#572)\r","* Porkbun plugin updated with new API endpoint. Vendor decommissioning old endpoint on 2024-12-01. Please upgrade before then. (#570)\r","* Porkbun plugin added retry mechanic to deal with rate limiting errors.\r","* Fixed ARI related date parsing bug when using PowerShell 7+. (#578)\r","\r","## 4.25.1 (2024-09-02)\r","\r","* Fix Azure IMDS auth for Arc-enabled servers\r","\r","## 4.25.0 (2024-08-18)\r","\r","* New DNS plugins\r","  * [TencentDNS](https://dnspod.com/) which is a new plugin for DNSPod that uses the Tencent Cloud API which will eventually be required when the old DNSPod API is terminated. (#553) (Thanks @xiaotiannet)\r","  * [OnlineNet](https://www.scaleway.com/en/domains-and-dns/) which is Scaleway's legacy DNS API managed through `console.online.net`. (#557)\r","* Gandi plugin now supports Personal Access Tokens (PAT) auth in addition to legacy API Keys (#554)\r","* NameCom plugin now has better error handling and debug logs. NameCom users with 2FA enabled should also review the user guide about a setting that could break API access. (#556)\r","* Minor logging fix for Active24 plugin.\r","* Fixed a bug with ARI implementation that would fail renewals when the ACME server believes the replaced cert had already been replaced. (#560)\r","* Fixed a bug with ARI implementation that would throw errors when the cert being replaced did not contain an AKI extention. (#561)\r","\r","## 4.24.0 (2024-06-19)\r","\r","* DomainOffensive plugin updated with new API root and documentation links. (Thanks @henrikalves)\r","* Added [ARI (ACME Renewal Information)](https://datatracker.ietf.org/doc/draft-ietf-acme-ari/) support based on draft 04. This should be considered experimental until the RFC is finalized.\r","  * `ARIId` and `Serial` fields have been added to the output of `Get-PACertificate`\r","  * `DisableARI` switch added to `Set-PAServer` which disables ARI support for the server even it would otherwise be supported. This will primarily be useful if the ARI draft changes enough to break the current support and CAs update their implementations before the module can be updated. It may also be useful for providers with existing ARI support from an older unsupported draft.\r","  * `ReplacesCert` parameter added to `New-PAOrder` which takes an ARIId string as returned by `Get-PACertificate`. This will be ignored if the current ACME server doesn't support ARI or support has been explicitly disabled via `Set-PAServer`.\r","  * Order refreshes now perform an ARI check if supported and not disabled. The `RenewAfter` field is updated if the response indicates it is necessary.\r","  * `Submit-Renewal` now triggers an order refresh if ARI is supported and not disabled.\r","\r","## 4.23.1 (2024-05-23)\r","\r","* Fix DNSimple plugin not properly ignoring 404 API errors on PowerShell 5.1 (#549)\r","\r","## 4.23.0 (2024-05-04)\r","\r","* Added support for DNSimple user tokens which should allow for certs with names that span domains in multiple accounts.\r","* Added warning in GoDaddy guide about newly imposed limits on API access. (Thanks @webprofusion-chrisc)\r","* Fixed DNSimple plugin not removing challenge records (#548).\r","* Fixed cascading errors on public functions when running with little or no existing config. (#544)\r","* Fixed OVH plugin on PowerShell 5.1 by removing an accidentally added ternary operator. (#545) (Thanks @joshooaj)\r","\r","## 4.22.0 (2024-04-12)\r","\r","* New DNS plugin [WebsupportSK](https://www.websupport.sk/?ref=NTIqFFo7Rg). This will be useful to Active24 users who have been migrated to the new provider.\r","* Added additional debug logging for Active24 plugin.\r","\r","## 4.21.0 (2024-03-08)\r","\r","* New DNS plugin [WEDOS](https://www.wedos.com/zone/)\r","* Fixed OVH bug that prevented record creation at a zone apex most common when using DNS Alias support. Also added doc warning about time skew and better debug logging. (#535)\r","\r","## 4.20.0 (2023-12-12)\r","\r","* New DNS plugin [PowerDNS](https://www.powerdns.com/powerdns-authoritative-server)\r","* Fixed duplicate identifiers in the `Domain` parameter causing errors with some ACME servers. Identifiers will now be deduplicated prior to being saved and sent to the ACME server. (#517)\r","* Added `WSHDelayAfterStart` param to the WebSelfHost plugin which adds a configurable delay between when the challenge listener starts up and when it asks the ACME server to validate the challenges. (#518)\r","* Orders where the MainDomain is longer than 64 characters will not include a CN value in the Subject field of the certificate request sent to the ACME server. CNs longer than 64 characters were already being rejected by some CAs like Let's Encrypt because the x509 spec doesn't allow for it. [More Info](https://community.letsencrypt.org/t/simplifying-issuance-for-very-long-domain-names/207924)\r","\r","## 4.19.0 (2023-08-26)\r","\r","* New DNS plugins\r","  * [HurricaneElectricDyn](https://dns.he.net/) This is an alternative to the existing `HurricaneElectric` plugin that uses the DynDNS API instead of web scraping. (Thanks @jbrunink)\r","  * [ZoneEdit](https://www.zoneedit.com/) (#495)\r","* The `CSRPath` parameter in `New-PAOrder` and `New-PACertificate` will now accept the raw string contents of a CSR file instead of just the path to a file. (#503)\r","* The `Simply` plugin has been renamed to `SimplyCom` at the request of the provider. The new version is exactly the same. The old version will remain until the next major release. Users should update their renewal configs to use the new version to prevent future breakage. `Set-PAOrder -Plugin SimplyCom`\r","* Added a workaround to a temporary problem with the Simply.com API in case the issue pops up again. (#502)\r","* The `Route53` plugin now uses IMDSv2 when using the IAM Role support. (#509)\r","\r","## 4.18.0 (2023-06-28)\r","\r","* The `POSHACME_HOME` environment variable now supports Windows-style (surrounded by `%`) environment variable expansion. (#497)\r","  * So you can set the value to `%ProgramData%\\Posh-ACME` instead of needing to set it explicitly to `C:\\ProgramData\\Posh-ACME` for example.\r","  * NOTE: This requires Windows-style environment variable strings even on non-Windows OSes.\r","* The Azure plugin no longer tries to re-use cached authentication tokens when using the `AZAccessToken` parameter set. (#498)\r","* Fixed a bug with the Azure plugin that broke authentication when submitting multiple orders with different credentials from different tenants. (#498)\r","* Fixed a problem using Posh-ACME within AWS Lambda due to non-standard dotnet runtime assembly configs. (#418) (Thanks @garthmccormack)\r","  * This fix involved changing the `RevocationReasons` enum from a .NET type to a PowerShell native enum.\r","  * The change constitutes a minor breaking change which makes the enum no longer accessible from outside the module's context, but tab completion and string converted values for the `Revoke-PACertificate -Reason` parameter work exactly the same as before.\r","\r","## 4.17.1 (2023-03-29)\r","\r","* Fixed Hetzner plugin for accounts with 100+ zones. (#481) (Thanks @Deutschi)\r","* Fixed RFC2136 plugin ignoring the DDNSNameserver parameter when set. (#485) (Thanks @gvengel)\r","\r","## 4.17.0 (2023-02-20)\r","\r","* New DNS plugins\r","  * [Google Domains](https://domains.google/) This should be considered experimental while the Google Domains ACME API is still in testing. (Thanks @webprofusion-chrisc)\r","  * [IONOS](https://www.ionos.de/) (Thanks @RLcyberTech)\r","  * SSHProxy sends update requests via SSH to another server which is able to do dynamic updates against your chosen DNS provider. (Thanks @bretgiddings)\r","* The `DDNSNameserver` parameter is no longer mandatory in the RFC2136 plugin which will make nsupdate try to use whatever primary nameserver is returned from an SOA query.\r","* Added Basic authentication support to the AcmeDns plugin which should allow it to be used against endpoints that enforce that such as [Certify DNS](https://docs.certifytheweb.com/docs/dns/providers/certifydns/).\r","* Added support for plugin parameters that are arrays of SecureString or PSCredential objects.\r","* Fixed PAServer switches getting reset on `Set-PAServer` with no params (#475)\r","\r","## 4.16.0 (2022-11-23)\r","\r","* New DNS plugins\r","  * [Active24](https://www.active24.cz/) (Thanks @pastelka)\r","  * [Bunny.net](https://bunny.net/) (Thanks @webprofusion-chrisc)\r","* Added `-Subject` parameter to `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder` which will override the default x509 Subject field in the certificate request sent to the ACME CA. This can be useful for private CAs that allow for additional attributes in the Subject that public CAs don't.\r","* Fix for undocumented NameSilo API change. (Thanks @rkone)\r","* Fix for All-Inkl plugin that makes the plaintext `KasPwd` parameter actually send plaintext since All-Inkl has deprecated the SHA1 option.\r","\r","## 4.15.1 (2022-09-09)\r","\r","* Reverted the embedded BouncyCastle library back to 1.8.8 due to version conflicts with Az.KeyVault in PowerShell 6+. This is temporary while a suitable workaround for version conflicts in other modules is explored.\r","* Fixed Domeneshop plugin when publishing apex TXT records and added more API output to debug messages.\r","\r","## 4.15.0 (2022-08-26)\r","\r","* PAOrder objects now have a flag to optionally use modern encryption options on generated PFX files. This will prevent the need to use \"legacy\" mode when reading the files with OpenSSL 3.x. However, it breaks compatibility with OpenSSL 1.0.x and earlier.\r","  * You can use the `-UseModernPfxEncryption` flag with `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder`. When used with `Set-PAOrder`, existing PFX files will be re-written based on the flag's new value.\r","  * Use `Set-PAOrder -UseModernPfxEncryption:$false` to switch back to the default setting.\r","  * The default for new orders will likely remain off until Posh-ACME 5.x is released.\r","* Added new DNS plugin [PortsManagement](https://portsgroup.com/) (Thanks @wemmer)\r","* The GCloud plugin has a new optional parameter, `GCProjectId` that takes one or more string values. This is only required if the DNS zones to modify don't reside in the same project as the service account referenced by `GCKeyFile` or they reside in multiple projects. When used, be sure to include all project IDs including the one referenced by `GCKeyFile`.\r","* Added Google's new free ACME CA to the CA comparison doc\r","* Upgraded the embedded BouncyCastle library to 1.9.0\r","* Fixed UKFast plugin to support paging for accounts with many domains (Thanks @0x4c6565)\r","* Fixed PFX friendly name generation when not provided in the order.\r","\r","## 4.14.0 (2022-04-12)\r","\r","* Added new DNS plugin [Porkbun](https://porkbun.com/) (Thanks @CaiB)\r","* Added server shortcuts for Google's new ACME CA, GOOGLE_PROD and GOOGLE_STAGE.\r","* Added server shortcuts for SSL.com, SSLCOM_RSA and SSLCOM_ECC.\r","* Added `UseAltAccountRefresh` switch to `Set-PAServer` to workaround CAs that don't yet support direct account refreshes such as Google, SSL.com, and DigiCert. (#372) (#394)\r","  * New configs should have this set by default for CAs known to need it. But you will need to explicitly set it on any existing configs for these CAs.\r","* Added `LifetimeDays` param on `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder` to enable user requested cert lifetimes for ACME CAs that support the feature.\r","  * Google's CA is the only free ACME CA known to currently support this and the order lifetime cannot be changed once it is created. Setting a new value on an existing order will only change the lifetime on subsequent renewals.\r","* Updated Azure plugin to use the latest stable API version.\r","* Updated Azure guide to account for breaking changes in the Az module.\r","* Fixed GoDaddy plugin when using it with delegated sub-zones. (#430)\r","* Fixed `New-PAAccount` when importing an existing key on CAs that require external account binding.\r","* Reduced the number of account refreshes that happen as part of normal operations.\r","\r","## 4.13.1 (2022-03-14)\r","\r","* Fixed Loopia plugin after an upstream API change broke it. (Thanks @AlexanderRydberg)\r","\r","## 4.13.0 (2022-03-07)\r","\r","* Added new DNS plugin [LeaseWeb](https://www.leaseweb.com/)\r","* Simply plugin migrated to v2 of the API. No changes should be necessary for existing users.\r","\r","## 4.12.0 (2022-01-13)\r","\r","* The WebRoot plugin now supports multiple paths for the `WRPath` parameter. (#411)\r","* ClouDNS plugin error handling was modified so that invalid credential errors are properly surfaced instead of just throwing generic \"zone not found\" errors. (#414)\r","* Fixed a potential bug with `Submit-OrderFinalize` when multiple orders have the same MainDomain property.\r","* Fixed `New-PACertificate` not properly updating an existing order with updated order params (#412)\r","\r","## 4.11.0 (2021-11-24)\r","\r","* Added [SecretManagement](https://devblogs.microsoft.com/powershell/secretmanagement-and-secretstore-are-generally-available/) support! See [this guide](https://poshac.me/docs/v4/Guides/Using-SecretManagement/) for details.\r","* Added new DNS plugins:\r","  * [Combell](https://www.combell.com/) (Thanks @stevenvolckaert)\r","  * [TotalUptime](https://totaluptime.com/solutions/cloud-dns-service/) (Thanks @CirotheSilver)\r","* `Install-PACertificate` and the `-Install` switch on orders will now import associated chain certificates into the Intermediate cert store if they don't already exist. (#397)\r","* `New-PAOrder` will now throw an error if the order object returned by the ACME server matches an existing order with a different name. (#401)\r","* The progress bar for DNS propagation is now disabled by default unless a POSHACME_SHOW_PROGRESS environment variable is defined. A verbose message will be written once per minute as an alternative. (#402)\r","* Added auth token caching to CoreNetworks plugin to avoid getting rate limited. (#403)\r","* Fixed ISPConfig plugin throwing Incorrect datetime value errors when adding records (#404)\r","* Fixed a bug with `Submit-Renewal -AllAccounts` that would prevent restoring the original active account. (Thanks @markpizz) (#395)\r","* Fixed usage example in EasyDns guide. (Thanks @webprofusion-chrisc) (#407)\r","\r","## 4.10.0 (2021-10-06)\r","\r","* Added new DNS plugin [CoreNetworks](https://www.core-networks.de/) (Thanks @dwydler)\r","* Fix for Regru plugin bug caused by provider API change (#392)\r","* Fix Submit-Renewal duplicating orders that have a custom name (#393)\r","\r","## 4.9.0 (2021-09-21)\r","\r","* Added new DNS plugin [ISPConfig](https://www.ispconfig.org/)\r","* Fixed the DOCean plugin when used with accounts that have more than 20 zones. (#384) (Thanks @Xpyder)\r","* Fixed a bug in the DOCean plugin that prevented publishing records against the zone apex.\r","* Fixed a bug using `Set-PAOrder -PreferredChain` on an existing but expired order that was recently upgraded from Posh-ACME 3.x.\r","* Fixed renewal window calculation for certs that have lifetimes shorter or longer than 90 days. (#382) (Thanks @lookcloser)\r","  * Due to the bug, certs with lifetimes longer than 90 days would renew early and certs with lifetimes shorter than 90 days would renew late or potentially not at all. Because the renewal window is calculated and saved at finalization time, the new module version won't fix the value on existing orders. It will only fix future orders/renewals.\r","  * If you want to scan for and fix any orders that might have been affected by this bug, you can use the script posted here: https://github.com/rmbolger/Posh-ACME/issues/382#issuecomment-922128237\r","* Fixed a benign bug with object serialization in PS 5.1 that was saving the dynamic attributes on server/account/order objects.\r","\r","## 4.8.1 (2021-09-12)\r","\r","* Fixed a bug introduced in 4.7.0 that broke `Set-PAAccount -UseAltPluginEncryption` preventing plugin args for orders from being properly re-encrypted.\r","\r","## 4.8.0 (2021-09-09)\r","\r","* Documentation Revamp\r","  * https://poshac.me/docs is a new dedicated website for Posh-ACME documentation. Existing guides and tutorials have been migrated there from the Github wiki. The site is currently generated using the Markdown files in the `docs` folder in the main project repository by [MkDocs](https://www.mkdocs.org/). So it should now be easier to contribute fixes and updates.\r","  * The native module help is now also generated by [platyPS](https://github.com/PowerShell/platyPS) from the Markdown files in `docs/Functions`.\r","  * `Get-Help \u003cfunction name\u003e -Online` should now open your browser to the appropriate page on the documentation site.\r","* The DeSEC plugin has new `DSCToken` and `DSCTTL` params to avoid conflicts with the DNSimple plugin. The old `DSToken`, `DSTokenInsecure`, and `DSTTL` parameters have been deprecated.\r","* \"Insecure\" plugin parameter sets which include secrets, tokens, or passwords using a standard String instead of a SecureString or PSCredential have been deprecated across all plugins that had them.\r","  * Deprecated means that they will continue to work in Posh-ACME 4.x, but will stop working when 5.0 is released.\r","  * If you are currently using a deprecated parameter set, please migrate to a secure one when convenient.\r","  * See your plugin's [usage guide](https://poshac.me/docs/v4/Plugins/) for more information.\r","  * For help finding deprecated parameters in your config, see [this guide](https://poshac.me/docs/v4/Guides/Find-Deprecated-PluginArgs/)\r","* The following plugins have added new \"Secure\" parameter sets:\r","  * BlueCat\r","  * Cloudflare\r","  * DOcean\r","  * Dreamhost\r","  * Dynu\r","  * EasyDNS\r","  * GoDaddy\r","  * NameCom\r","  * Zonomi\r","* A `Plugin` property has been added to the output objects returned by `Get-PAPlugin \u003cPlugin\u003e -Params`\r","\r","## 4.7.1 (2021-08-28)\r","\r","* Fixed a parameter binding bug in New-PACertificate that could cause renewals to stall in some cases due to an interactive prompt.\r","* Fixed help for Export-PAAccountKey\r","\r","## 4.7.0 (2021-08-24)\r","\r","* Servers, Accounts, and Orders all now have configurable Names that also determine the name of their associated folders in the config on the filesystem. (#345) This is a fairly large change, but significant effort has been spent implementing it so that dependent scripts will not break.\r","  * **Please backup your current config before customizing your object names.** Previous Posh-ACME versions will break trying to read configs with custom names.\r","  * All customized names may only use the following characters to avoid cross-platform filesystem compatibility issues: `0-9 a-z A-Z - . _ !`.\r","  * A `NewName` parameter has been added to `Set-PAServer`, `Set-PAAccount`, and `Set-PAOrder` to change the name of each type of object.\r","  * Server related functions now have an optional `Name` parameter which can be used instead of or in addition to the `DirectoryUrl` parameter. This includes `Get/Remove/Set-PAServer`.\r","  * If a server doesn't already exist, `Set-PAServer` will use the `-Name` parameter for the new server's name. If the server already exists, it is ignored.\r","  * Returned server objects now have `Name` and `Folder` properties.\r","  * Despite being able to customize Server names, you may still only have a single instance of each unique ACME server in your config. This may chang in a future major version.\r","  * Account related functions that have an `ID` parameter now have a `Name` parameter alias. This includes `Get/Remove/Set-PAAccount` and `Export-PAAccountKey`. The ID parameter should be considered deprecated and in future major versions will be replaced by `Name`.\r","  * The `ID` parameter was added to `New-PAAccount` to allow setting the customized ID on creation instead of using the server provided default value.\r","  * Returned account objects now have a `Folder` property and the `id` property now reflects the customizable value.\r","  * The `id` property on account objects is deprecated and will be changed to `Name` in a future major version.\r","  * Order related functions now have an optional `Name` parameter to distinguish between multiple orders that may have the same `MainDomain`. This includes `Get/Revoke/New-PACertificate`, `Get/New/Set/Remove-PAOrder`, `Get-PAPluginArgs`, `Invoke-HttpChallengeListener`, and `Submit-Renewal`. In most cases, the `Name` parameter can also be used by itself as a unique identifier for orders.\r","  * The `Name` parameter on `New-PACertificate` and `New-PAOrder` allows setting the customized order name on creation instead of using the MainDomain default value.\r","  * Returned order objects now have a `Name` property (not to be confused with `FriendlyName` which only affects the certificate associated with the order).\r","  * Order related error and log messages that previously mentioned the order's MainDomain have been changed to use the order's Name instead.\r","  * To retain backwards compatibility with existing 4.x dependent scripts, `Get-PAOrder` will return the single, most recent order when used with `-MainDomain` even if there are multiple matching orders. This also affects `Get-PACertificate` which uses Get-PAOrder under the hood.\r","  * `Set-PAOrder`, `Revoke-PACertificate`, and `Remove-PAOrder` will throw an error if only `MainDomain` is specified and it matches multiple orders. Specify the `Name` parameter as well to ensure a unique order match.\r","* Custom plugins can now be loaded from an alternate filesystem location by creating a `POSHACME_PLUGINS` environment variable before the module is loaded. The value should be a folder path that contains uniquely named .ps1 plugin files. If any custom plugins have the same name as native plugins, a warning will be thrown and they will not be loaded.\r","* Added `New-PAAuthorization` which allows the creation of authorization objects outside the context of an order. NOTE: BuyPass is the only free ACME CA that currently supports this feature.\r","* Added a `OnlyReturnExisting` parameter to `New-PAAccount` when using an imported key which instructs the ACME server to only return account details if an account already exists for that key.\r","* Added a `NoSwitch` parameter to `Set-PAServer` so you can modify the active server without switching to it.\r","* The `AllSANs` field on PACertificate objects now reflects the SAN list on the actual certificate instead of its associated ACME order (just in case the two lists have divered for some strange reason).\r","* Added missing help on `Get-PAPluginArgs`.\r","* Default formatting for PAServer objects has been tweaked to show more useful info.\r","* Default formatting for PAOrder object now includes `Name` and has removed `OSCPMustStaple`.\r","* The `Quiet` parameter has been removed from the `Get-PAServer -List` parameter set because it didn't make sense.\r","* Fixed an example in `Remove-PAServer` help.\r","* Added workaround for BuyPass bug that prevents some error details from being parsed.\r","* Adjusted support for Account Key Rollover to more closely follow RFC8555 which fixes a bug using it with BuyPass\r","* Changed some logic in `Revoke-PACertificate` so that it works with BuyPass which doesn't seem to support revocation using the cert's private key.\r","* Orders using an ECC private key will no longer include Key Encipherment in the CSR's keyUsage when submitting an order for finalization. Key Encipherment is not supported for ECDSA certs and some CAs were rejecting the finalization.\r","\r","## 4.6.0 (2021-07-25)\r","\r","* Added new DNS plugins\r","  * [HostingDe](https://hosting.de/)\r","  * [Beget](https://beget.com/)\r","* Revoke-PACertificate no longer requires a configured account when using an explicit cert/key (#361)\r","* Fixed Aurora plugin for edge case bug with PowerShell Core (#353)\r","* Fixed DirectoryUrl completers in PS 5.1 when no servers currently exist.\r","* Fixed unauthenticated updates with RFC2136 plugin (#360) (Thanks @dsbibby)\r","* Refactored Simply plugin to be IDN agnostic and redact API keys from logging (#352)\r","* ACME errors from New-PAAccount should be less ugly now.\r","\r","## 4.5.0 (2021-05-29)\r","\r","* Added new DNS plugins\r","  * Aurora for [PCExtreme](https://pcextreme.nl/) (Thanks @j81blog)\r","  * [UKFast](https://ukfast.co.uk/) (Thanks @Overglazed)\r","* Added new function `Revoke-PACertificate` which provides more options for cert revocation including the ability to revoke certs not created with other clients or ACME accounts if you have the private key.\r","* Added `ManualNonInteractive` switch to the Manual plugin to suppress the interactive prompt after showing the TXT record details that need to be created. (Thanks @hhhuut)\r","* Added additional guidance in the plugin dev guide.\r","* Optimized module load time by pre-caching native plugin details.\r","* Fixed support for IDN domains in Simply plugin (Thanks @Norskov)\r","* Fixed Azure plugin bug when DnsAlias matches the zone apex. (#348)\r","* Fixed Azure plugin to support IMDS auth within Azure Automation. (#349)\r","* Fixed tests for Pester 5.2\r","\r","## 4.4.0 (2021-05-03)\r","\r","* Added new DNS plugins\r","  * [Constellix](https://constellix.com/)\r","  * [All-Inkl](https://all-inkl.com/) (Thanks @astaerk)\r","  * [Easyname](https://www.easyname.com/) (Thanks @codemanat)\r","* Added `Folder` property to Get-PAOrder output\r","* Added `KeyFile` parameter to New-PAOrder to allow importing an existing private key\r","\r","## 4.3.2 (2021-03-13)\r","\r","* Fixed New-PACertificate not using the previous order's KeyLength value if it exists and wasn't overridden by an explicit parameter value. (#326)\r","* Fixed `Submit-Renewal` not sending all previous order parameters to `New-PACertificate` (#326) (Thanks @juliansiebert)\r","* Fixed module load errors for some environment with older .NET Framework versions.\r","\r","## 4.3.1 (2021-03-12)\r","\r","* Fixed Route53 plugin to check for pre-imported AWS module (#324)\r","* Fixed telemetry ping not respecting DisableTelemetry option in `Set-PAServer`\r","* Telemetry ping no longer uses `Start-Job` which should avoid errors when running in Azure functions and other scenarios where PowerShell is hosted within another application.\r","\r","## 4.3.0 (2021-02-24)\r","\r","* PreferredChain selection logic has been updated to consider \"distance from root\" as a way to break ties when the specified CA subject is found in multiple chains. Chains with the CA closer to the root take precedence over ones with it further away. (#315)\r","* `CFTokenReadAll` and `CFTokenReadAllInsecure` have been removed from the Cloudflare plugin because they are no longer needed. Cloudflare fixed the API bug that made them necessary when using edit tokens scoped to a specific zone or zones. No user action is required if you were previously using these parameters. They will simply be ignored.\r","* HTTP call detail has been changed from Verbose to Debug output in Cloudflare and Route53 plugins.\r","* Fixed CSR handing for CSRs that have no attributes (#317) (Thanks @methorpe)\r","* Fixed Route53 plugin compatibility with older versions of the AWSPowerShell module (#318)\r","\r","### Deprecation Notice\r","\r","Many plugins have optional parameter sets that use \"Insecure\" versions of the primary SecureString or PSCredential parameters due to bugs in early versions of PowerShell 6 that prevented using them on non-Windows OSes. Those bugs have been fixed since PowerShell 6.2 and the insecure parameter sets should be considered deprecated and will likely be removed in the next major version (5.x) of Posh-ACME. Individual plugin usage guides will slowly be updated over the course of 4.x to warn about the specific parameter deprecations.\r","\r","## 4.2.0 (2021-02-01)\r","\r","* Added new DNS plugins\r","  * Infomaniak (Thanks @Sundypha)\r","  * Zilore\r","* Added `ACMEUri` option to AcmeDns plugin which allows specifying the complete URI instead of just the hostname. (Thanks @AvrumFeldman)\r","\r","## 4.1.0 (2021-01-18)\r","\r","* Compatibility updates for RFC2136 plugin (#308)\r","  * Now uses exit code from nsupdate instead of output parsing to determine success and avoid possible language inconsistencies (#307)\r","  * Added optional DDNSZone param to avoid initial SOA lookup that breaks in some environments (#307)\r","* Removed UnoEuro plugin because API endpoint is no longer functional. Users should switch to the Simply plugin. (#303)\r","* Moved HTTP call detail from Verbose to Debug output for Infoblox plugin\r","* Fixed partial zone matching bug for Domeneshop plugin (#305)\r","* Fixed `Submit-Renewal -AllOrders` so it no longer skips invalid or pending orders\r","\r","## 4.0.0 (2020-12-18)\r","\r","There is a 3.x to 4.x [migration guide](https://github.com/rmbolger/Posh-ACME/wiki/Frequently-Asked-Questions-%28FAQ%29#how-do-i-upgrade-from-3x-to-4x) in the FAQ on the wiki. But no changes should be necessary for users with existing certs that are renewing using `Submit-Renewal` unless they were also using the `-NewKey` parameter which has been removed. Orders can now be configured to always generate a new private key using `Set-PAOrder -AlwaysNewKey`.\r","\r","### New Features\r","\r","* The DNS plugin system has been revamped to support both dns-01 and http-01 challenges. (#124)\r","  * All existing DNS plugins have been upgraded to the new plugin format. See the README in the plugins folder for details and instructions on how to upgrade your own custom plugins.\r","  * There are two new http-01 challenge plugins called `WebRoot` and `WebSelfHost`. See their usage guides for details.\r","* Plugin args are now saved per-order rather than per-account and as JSON rather than XML.\r","  * This has the side effect that new orders using the same plugin(s) as a previous order will no longer reuse the previous args.\r","  * Added `Get-PAPluginArgs` which returns a hashtable with the plugin args associated with the current or specified order. You can use this to retrieve another order's plugin args and use that object with your new order.\r","  * Pre-4.x plugin args will be automatically migrated to per-order plugin args the first time an account is selected using `Set-PAAccount` or on module load for the last selected account. The old file will be backed up with a \".v3\" extension in case you need to revert.\r","* Portable, Cross-Platform encryption is now supported for secure plugin parameters on disk and can be configured on a per-account basis. It is based on a 256-bit AES key generated for the account. This makes it possible to migrate a Posh-ACME config between users, machines, or OSes without needing to re-configure secure plugin args. (#150)\r","  * To enable, set the `UseAltPluginEncryption` switch on `New-PAAccount` or `Set-PAAccount`. This will immediately re-encrypt plugin args for all orders associated with the account.\r","  * To disable/revert, run `Set-PAAccount -UseAltPluginEncryption:$false`.\r","  * If you believe the encryption key has been compromised, use `Set-PAAccount -ResetAltPluginEncryption` to generate a new key and re-encrypt everything.\r","* `Get-PAPlugin` is a new function that replaces `Get-DnsPlugins` and `Get-DnsPluginHelp`.\r","  * With no parameters, lists all plugins and their details\r","  * With a plugin parameter, shows the details for just that plugin\r","  * With a plugin and `-Help`, shows the plugin's help\r","  * With a plugin and `-Guide`, opens the default browser to the plugin's online guide\r","  * With a plugin and `-Params`, displays the plugin-specific parameter sets (#151)\r","* Added `AlwaysNewKey` switch to `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder`. This flag tells Posh-ACME to always generate a new private key on renewals. The old parameters for key replacement have been removed. (#181)\r","* Added `UseSerialValidation` switch to `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder`. This flag tells Posh-ACME to process the order's authorization challenges serially rather than in parallel. This is primarily useful for providers like DuckDNS that only allow a single TXT record to be written at a time.\r","* Added `Complete-PAOrder` which does the final processing steps like downloading the signed cert and updating renewal window for an order that has reached the 'ready' state. This avoids the need to use `New-PACertificate` when doing custom certificate workflows.\r","* The PfxPass parameter on order objects is now obfuscated when serialized to disk. (#207)\r","* Added `PfxPassSecure` (SecureString) parameter to `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder` which takes precedence over `PfxPass` if specified. (#207)\r","* Added `DnsAlias` and `OCSPMustStaple` parameters to `Set-PAOrder`. Changing an order's OCSPMustStaple value will throw a warning that it only affects future certificates generated from the order.\r","* Added `Plugin`, `PluginArgs`, `DnsAlias`, `DnsSleep`, and `ValidationTimeout` parameters to `New-PAOrder`.\r","* The `DirectoryUrl` parameter in `Set-PAServer` is now optional. If not specified, it will use the currently active server.\r","* An attempt will now be made to send anonymous telemetry data to the Posh-ACME team when `Submit-OrderFinalize` is called directly or indirectly.\r","  * The only data sent is the standard HTTP User-Agent header which includes the Posh-ACME version, PowerShell version, and generic OS platform (Windows/Linux/MacOS/Unknown).\r","  * This can be disabled per ACME server using a new `DisableTelemetry` parameter in `Set-PAServer`.\r","  * The data will be used to guide future development decisions in the module.\r","  * The same User-Agent header is also sent with all calls to the ACME server which is a requirement of the protocol and can't be disabled.\r","* Added `NoRefresh` switch to `Set-PAServer` which prevents a request to the ACME server to update endpoint and nonce info. This is useful for updating local preferences without making a server round-trip.\r","* BUYPASS_PROD and BUYPASS_TEST are now recognized shortcuts for the the buypass.com CA environments when you use `Set-PAServer`.\r","* ZEROSSL_PROD is now a recognized shortcut for the zerossl.com CA when you use `Set-PAServer`.\r","* Added tab completion for `DirectoryUrl` in `Set-PAServer`.\r","* Added `Quiet` parameter to `Get-PAServer` which will prevent warnings if the specified server was not found.\r","* `Remove-PAServer` will now throw a warning instead of an error if the specified server doesn't exist on disk.\r","* Orders can now be passed by pipeline to `Submit-ChallengeValidation` and `Submit-OrderFinalize`.\r","* ACME protocol web request details have been moved from Verbose to Debug output and cleaned up so they're easier to follow. Web requests made from plugins will still be in Verbose output for the time being.\r","* Experimental support for IP address identifiers ([RFC 8738](https://tools.ietf.org/html/rfc8738)) in new orders. This allows you to get a cert for an IP address if your ACME server supports it.\r","* Private keys for Accounts and Certificates can now use ECC P-521 (secp521r1) based keys using the `ec-521` key length parameter. *This requires support at the ACME server level as well.*\r","\r","### Breaking Changes\r","\r","* Function Changes\r","  * `Publish-DnsChallenge` is now `Publish-Challenge`\r","  * `Unpublish-DnsChallenge` is now `Unpublish-Challenge`\r","  * `Save-DnsChallenge` is now `Save-Challenge`\r","  * `Get-DnsPlugins` and `Get-DnsPluginHelp` have been replaced by `Get-PAPlugin`\r","  * `Get-PAAuthorizations` is now `Get-PAAuthorization`. The plural function name is still avaialble as an alias but is deprecated and may be removed in a future release.\r","  * `Invoke-HttpChallengeListener` is deprecated and may be removed in a future release. Users should migrate to the `WebSelfHost` plugin.\r","* Parameter Changes\r","  * All `DnsPlugin` parameters are now `Plugin` with a `DnsPlugin` alias for backwards compatibility. The alias should be considered deprecated and may be removed in a future release.\r","  * The `NoPrefix` switch in Publish/Unpublish-Challenge has been replaced with a `DnsAlias` parameter that will override the `Domain` parameter if specified. \"_acme-challenge.\" will not be automatically added to the `DnsAlias` parameter.\r","  * `NewKey` has been removed from `Submit-Renewal`\r","  * `NewKey`/`NewCertKey` have been replaced by `AlwaysNewKey` in `New-PACertificate` and `New-PAOrder`\r","  * `AlwaysNewKey` has been added to `Set-PAOrder`\r","  * `DnsPlugin`, `PluginArgs`, `DnsAlias`, `DnsSleep`, `ValidationTimeout` and `Account` parameters have been removed from `Submit-ChallengeValidation`. The account associated with the order must be the currently active account. The rest of the parameters are read directly from the order object and can be modified in advance with `Set-PAOrder` if necessary.\r","  * `Account` parameter has been removed from `Submit-OrderFinalize`. The account associated with the order must be the currently active account.\r","\r","### Fixes\r","\r","* Using `Get-PAOrder` with `-Refresh` will no longer throw a terminating error if the ACME server returns an error. It will warn and return the cached copy of the order instead.\r","* Fixed `Remove-PAServer` not being able to remove a server that is unreachable.\r","* `Remove-PAServer` no longer requires confirmation when there are no cached accounts associated with the specified server in the local config.\r","\r","\r","## 3.20.0 (2020-11-25)\r","\r","* Azure plugin now supports other Azure cloud environments via the `AZEnvironment` parameter. Supported values are `AzureCloud` (Default), `AzureUSGovernment`, `AzureGermanCloud`, and `AzureChinaCloud`. (#293) (Thanks @InKahootz)\r","* Fixed parameter binding and other bugs in Simply plugin. (#294)\r","\r","## 3.19.0 (2020-11-20)\r","\r","* Added new DNS plugin [Simply](https://www.simply.com/) who recently changed their name from UnoEuro. Existing users of the UnoEuro plugin should migrate to the Simply plugin as soon as possible because the UnoEuro plugin may stop working if they decommission the old API endpoint.\r","* Warnings have been added to the UnoEuro plugin to inform users about migrating to Simply.\r","* Updated DNSPod plugin to work with their recent API changes. Existing users will need to generate a new API key from the management console and update the plugin args for their orders. See the [usage guide](https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/DNSPod-Readme.md) for details.\r","* Fixed a bug in `New-PAAccount` when the account location URI had query parameters. (Thanks @KaiWalter)\r","\r","## 3.18.1 (2020-11-12)\r","\r","* Upgraded BouncyCastle to 1.8.8.2 for version parity with Az.KeyVault to prevent module load errors in PowerShell 6+\r","* Fixed DuckDNS plugin file locations in .NET 4.6 fork.\r","\r","## 3.18.0 (2020-11-07)\r","\r","* Added new DNS plugin [DuckDNS](https://www.duckdns.org/). Note that due to provider limitations, this plugin can only normally be used for certs with a single name unless you workaround the limitation with custom scripting. See the [usage guide](https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/DuckDNS-Readme.md) for details.\r","* Fixed an example in `Export-PAAccountKey` help.\r","* Added code to detect 4.x configs and gracefully revert in case folks need to downgrade after upgrading to 4.x when it comes out.\r","\r","## 3.17.0 (2020-10-09)\r","\r","* NOTE: Let's Encrypt is now [restricting](https://community.letsencrypt.org/t/issuing-for-common-rsa-key-sizes-only/133839) RSA private key sizes to 2048, 3072, and 4096 for certificates. But Posh-ACME will continue to allow custom key sizes which may still work with other certificate authorities. \r","* `New-PAAccount` and `Set-PAAccount -KeyRollover` now have a `-KeyFile` parameter that can be used to import an existing private key instead of generating a new one from scratch.\r","* Added `Export-PAAccountKey` which can be use to export your ACME account private key as a standard Base64 encoded PEM file.\r","  * For Boulder-based CAs, this can be used to recover lost ACME account configurations if you run `New-PAAccount` with the `-KeyFile` parameter and specify the exported key.\r","* Updated Zonomi plugin to support alternative providers who use a compatible API. (#282)\r","* Fixed a bug in OVH plugin that would prevent TXT record deletion in some cases. (#283)\r","* Fixed a bug in many plugins that would prevent TXT record editing when the record name was also the zone root (#280) (Thanks @ShaBangBinBash)\r","* Fixed tutorial syntax error (#277) (Thanks @Leon99)\r","* Fixed errors in `Get-PAAuthorizations` when returned object has no 'expires' property. (#276) (Thanks @mortenmw)\r","* Changed bad nonce retry message from Debug to Verbose so people using PowerShell's transcript features will see it more easily.\r","* A generic platform value has been added to the user agent string the module sends with its ACME requests.\r","* Tests have been updated for use with Pester v5. Running them in a dedicated PowerShell process is recommended.\r","\r","## 3.16.0 (2020-08-31)\r","\r","* Added new DNS plugin [NameSilo](https://www.namesilo.com) (Thanks @rkone)\r","* Added Preferred Chain support\r","  * There is a new `-PreferredChain` parameter on `New-PACertificate`, `New-PAOrder`, and `Set-PAOrder`.\r","  * For new or existing orders, you may select an alternate CA chain based on the Issuing CA subject name if alternate chains are offered by the CA.\r","  * Example: `-PreferredChain 'ISRG Root X1'`\r","* Fixed a bug with `Submit-Renewal` that wasn't properly using `-PluginArgs` and `-NoSkipManualDns` parameters when `-AllOrders` or `-AllAccounts` switches were also used (#266 #275). (Thanks @f-bader)\r","* deSEC plugin has added retry logic to address API throttling issues for certs with many names (#275).\r","* Fixed a bug with Azure plugin when using `AZCertPfx` authentication from Windows.\r","\r","## 3.15.1 (2020-07-08)\r","\r","* Fixed Route53 trying to load AWSPowerShell module when not installed (#263)\r","\r","## 3.15.0 (2020-06-22)\r","\r","* Added new DNS plugin [DomainOffensive](https://www.do.de) (Thanks @Armitxes)\r","* `New-PAAccount` now has `ExtAcctKID`, `ExtAcctHMACKey`, and `ExtAcctAlgorithm` parameters to support Certificate Authorities that require external account binding. Look for a guide in the wiki soon.\r","* Added support for the new AWS.Tools modules when using Route53.\r","* Added support for more restricted API permissions when using OVH. It's now possible to only grant write access to a specific list of zones or even individual TXT records. See the usage guide for details.\r","* Added pre-registration support for AcmeDns. See the usage guide for details.\r","* Fixed a bug with GoDaddy that prevented managing DNS-only hosted domains.\r","\r","## 3.14.0 (2020-05-07)\r","\r","* Added new DNS plugin [Hetzner](https://www.hetzner.de/) (Thanks @derguterat)\r","* Fix for Google DNS plugin to ignore private zones. (Thanks @timwsuqld)\r","* Fix for Azure usage guide for using existing access token. (Thanks @arestarh)\r","* Fix for RFC2136 plugin which makes it usable for records other than the root domain.\r","\r","## 3.13.0 (2020-04-11)\r","\r","* Added new DNS plugins\r","  * Akamai\r","  * DNSPod (Thanks @WiZaRd31337)\r","  * Loopia\r","  * PointDNS (Thanks @danielsen)\r","  * Reg.ru (Thanks @WiZaRd31337)\r","  * RFC2136\r","  * Selectel.ru (Thanks @WiZaRd31337)\r","  * Yandex (Thanks @WiZaRd31337)\r","* When creating a new order, chain.cer and fullchain.cer are now backed up along with the other files.\r","* Added a workaround for non-compliant ACME server Nexus CM (#227)\r","* Various usage guide corrections. (Thanks @webprofusion-chrisc)\r","* Fixed a bug where New-PACertificate required the `-Force` parameter if the previous order was deactivated.\r","* Fixed the dev install script to account for a redirected Documents folder.\r","* Minor changes to how Gandi plugin works to address potential edge case bugs.\r","\r","## 3.12.0 (2019-12-10)\r","\r","* `Set-PAOrder` now has `-DnsPlugin` and `-PluginArgs` parameters to allow changing plugins and associated credentials prior to a renewal operation.\r","* Upgraded BouncyCastle library to version 1.8.5.2 and renamed the DLL to avoid conflicts with older copies that may get installed into the .NET GAC by other software.\r","* ACME server errors returned during calls to `Revoke-PAAuthorization` are now non-terminating errors rather than warnings.\r","* Fixed bug where new orders created with `New-PACertificate` and no explicit plugin wouldn't get the Manual default if the account was already authorized for the included names.\r","* Fixed `Get-PAAuthorizations` when using explicit account reference\r","* Fixed datetime parsing issues on non-US culture environments (#208)\r","* Fixed errors thrown by `Submit-Renewal` when run against an order with a null DnsPlugin. A warning is now thrown instead.\r","* Fixed parameter binding error when using `-PluginArgs` with `Submit-Renewal`\r","* Fixed HurricanElectric guide's parameter references\r","* Fixed Azure tests\r","\r","## 3.11.0 (2019-11-12)\r","\r","* Added `Revoke-PAAuthorization` which enables revocation of identifier authorizations associated with an account.\r","* `Get-PAAuthorizations` now has an optional -Account parameter and better error handling.\r","* `Get-PAAuthorization` has been added as an alias for `Get-PAAuthorizations` to better comply with PowerShell naming standards. It will likely be formally renamed in version 4.x and the old name should be considered deprecated. This change should allow dependent scripts to prepare for that change in advance.\r","* `Install-PACertificate` now supports parameters to select the store name, location, and the exportable flag.\r","* Workaround for Boulder [issue](https://github.com/letsencrypt/boulder/issues/4540) that doesn't return JSON error bodies for old endpoints.\r","* Fixed bug creating new orders with a changed KeyLength value that was preventing the required new private key from being created.\r","\r","## 3.10.0 (2019-11-06)\r","\r","* Added new DNS plugin [HurricaneElectric](https://dns.he.net/)\r","* Azure plugin now supports certificate based authentication. See the [plugin guide](https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/Azure-Readme.md) for details. (#190)\r","* Setup examples in the Azure plugin guide now utilize the [Az](https://www.powershellgallery.com/packages/Az/3.0.0) module rather than the legacy AzureRm.* modules. (#189)\r","* Fix for \"No order for ID\" errors caused by recent Boulder changes that no longer return order details for expired orders. (#192)\r","* Fixed being unable to switch active orders if an error occurred trying to refresh the order details from the ACME server.\r","* Added additional guidance on renewals and deployment to the tutorial.\r","\r","## 3.9.0 (2019-10-26)\r","\r","* Added new DNS plugin [UnoEuro](https://www.unoeuro.com/) (Thanks @OrKarstoft)\r","* Fix for Cloudflare plugin not working properly when limited scope token didn't have at least read permissions to all zones on an account. To use an edit token with limited zone permissions, you must now also specify a secondary token with read permissions to all zones. See the [plugin guide](https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/Cloudflare-Readme.md) for details. (#184)\r","*  Fix for PropertyNotFound exception when imported plugin data is null or not the expected hashtable value (#182)\r","\r","## 3.8.0 (2019-09-27)\r","\r","* `Set-PAOrder` now supports modifying some order properties such as FriendlyName, PfxPass, and the Install switch that don't require generating a new ACME order. FriendlyName or PfxPass changes will regenerate the current PFX files with the new value(s) if they exist. Changes to the Install switch will only affect future renewals.\r","* Fixed FriendlyName, PfxPass, and Install parameters not applying when calling `New-PACertificate` against an existing order (#178)\r","* Fixed GoDaddy plugin so it doesn't fail on large accounts (100+ domains) (#179)\r","* Updated Cloudflare plugin to workaround API bug with limited scope tokens (#176)\r","* Fixed DnsSleep and ValidationTimout being null when manually creating an order with `New-PAOrder` and finishing it with `New-PACertificate`.\r","* Added parameter help for -NewKey on `New-PAOrder` which was missing.\r","* When using `New-PACertificate` against an already completed order that is not ready for renewal, the informational message has been changed to Warning from Verbose to make it more apparent that nothing was done.\r","* Updated `instdev.ps1` so it still works when the BouncyCastle DLL is locked and $ErrorActionPreference is set to Stop.\r","* Updated a bunch of plugin guides with info regarding PowerShell 6.2's fix for the SecureString serialization bug and enabling the use of secure parameter sets on non-Windows.\r","\r","## 3.7.0 (2019-09-18)\r","\r","* Submit-Renewal now has a PluginArgs parameter to make it easier to update plugin credentials without needing to create a new order from scratch. (Thanks @matt-FFFFFF)\r","* The FriendlyName parameter in New-PACertificate and New-PAOrder now defaults to the certificate's primary name instead of an empty string to avoid a Windows bug that can occur when installing the generated PFX files.\r","* Fixed Windows plugin issue when using WinZoneScope and not all zones have that scope (#168)\r","* Fixed an internal bug with Export-PACertFiles that luckily didn't cause problems due to PowerShell variable scoping rules.\r","* Fixed a typo in the Cloudflare guide examples. (Thanks @mccanney)\r","\r","## 3.6.0 (2019-08-19)\r","\r","* Added new DNS plugins\r","  * Domeneshop (Thanks @ornulfn)\r","  * Dreamhost (Thanks @jhendricks123)\r","  * EasyDNS (Thanks @abrysiuk)\r","  * FreeDNS (afraid.org)\r","* Added `Invoke-HttpChallengeListener` function (Thanks @soltroy). This runs a self-hosted web server that can answer HTTP challenges. Look for a wiki usage guide soon.\r","* Added `Remove-PAServer` function. Warning: This deletes all data (accounts, orders, certs) associated with an ACME server.\r","* Added `Install-PACertificate` function. This can be used to manually import a cert to the Windows cert store. (#159)\r","* Added support for Cloudflare's new limited access API Tokens. See usage guide for details.\r","* Added support for propagation polling with ClouDNS plugin. See usage guide for details.\r","* Fixed edge case zone finding bug with ClouDNS plugin.\r","* Fixed DOcean (Digital Ocean) plugin which broke because they now enforce a 30 sec TTL minimum on record creation.\r","* Fixed overly aggressive error trapping in OVH plugin. (#162)\r","* Fixed a typo in the OVH plugin usage guide.\r","* Fixed SkipCertificateCheck is no longer ignored when passing a PAServer object via pipeline to Set-PAServer.\r","* Fixed `Submit-ChallengeValidation` no longer tries to sleep when DnsSleep = 0.\r","* Some internal refactoring.\r","\r","## 3.5.0 (2019-06-21)\r","\r","* Added new DNS plugin for Simple DNS Plus (#149) (Thanks @alphaz18)\r","* Changed a bunch of \"-ErrorAction SilentlyContinue\" references to \"Ignore\" so we're not filling the $Error collection with junk.\r","* Fix for Boulder removing ID field from new account output.\r","* Fixed an issue in a number of plugins that could cause errors if the case of the requested record didn't match the server's zone case. (Thanks @Makr91)\r","* Fixed a bug with the Route53 plugin when used on PowerShell Core without the AwsPowerShell module installed.\r","* Fixed some typos in the OVH plugin usage guide examples (#147)\r","\r","## 3.4.0 (2019-04-30)\r","\r","* Added new DNS plugin for OVH (#79)\r","* Added ZoneScope support to Windows plugin (#134) (Thanks @dawe78)\r","* Fixed issue #139 with GCloud plugin prompting for GCKeyFile after upgrading to 3.3.0. Users affected by this issue will need to submit a new cert request to re-establish the GCloud plugin config.\r","* Fixed issue #140 with AcmeDns plugin losing registration data after upgrading to 3.3.0. Users affected by this issue will need to submit a new cert request to re-establish the AcmeDns plugin config and it will likely involve updating any CNAME records currently in use.\r","\r","## 3.3.0 (2019-03-24)\r","\r","* Route53 plugin now has IAM Role support if you're running Posh-ACME from within AWS. See plugin usage guide for details (#128)\r","* Dynu plugin migrated to v2 of the Dynu API\r","* Fixed DNSPlugin and DNSAlias arrays not getting expanded properly when the number of names in the cert didn't match the values in those arrays.\r","* Fixed validation bugs when using SAN certs with challenge aliases or multiple different plugins (#127) (Thanks @whbingham)\r","* Revamped serialization/deserialization for plugin arguments which should prevent accidentally creating parameter binding conflicts when switching between parameter sets for a particular plugin (#129).\r","\r","## 3.2.1 (2019-03-04)\r","\r","* Fix #122 to make sure private keys are imported properly when using `-Install`\r","* Improve error handling for duplicate public zones in Azure. (#125)\r","* Add tag based workaround for duplicate public zones in Azure. (#125)\r","\r","## 3.2.0 (2019-01-22)\r","\r","* Added new DNS plugin for name.com registrar (Thanks @ravensorb)\r","* Added additional argument completers for Account IDs, MainDomain, and KeyLength parameters\r","* The Posh-ACME config location can now be set by creating a `POSHACME_HOME` environment variable. The directory must exist and be accessible prior to importing the module. If you change the value of the environment variable, you need to re-import the module with `-Force` or open a new PowerShell session for the change to take effect.\r","* Added better error handling for cases where the config location is not writable.\r","* Get-PACertificate now returns null instead of throwing an error if the cert or associated order doesn't exist\r","* Fixed the ability to revoke a certificate after the associated order has expired\r","* Fix for #117 involving broken renewal processing on PowerShell Core in non-US locales\r","* Fixes for additional DateTime handling on PowerShell Core\r","\r","## 3.1.1 (2018-12-22)\r","\r","* Fixed typo in Route53 plugin that prevented finding the AwsPowershell module\r","\r","## 3.1.0 (2018-12-16)\r","\r","* The following plugins have added non-Windows OS support or extended their existing support. Check the plugin guides for details.\r","  * Azure\r","  * DNSimple\r","  * Infoblox\r","  * Linode\r","  * LuaDns\r","  * NS1\r","  * Route53\r","* Route53 plugin no longer requires AwsPowershell module when used with explicit keys. It will still use the module if it's installed.\r","* Added tab completion for plugin names with `Get-DnsPluginHelp`\r","* Fix #112 for Azure and errors with private zones and subscriptions with more than 100 zones\r","\r","## 3.0.1 (2018-11-30)\r","\r","* Fix for #110 `Submit-Renewal` with -AllOrders or -AllAccounts fails to renew orders with invalid status. (Thanks @jeffmnall!)\r","* Fix for #109 `New-PACertificate` throws an error if -DnsPlugin is not specified rather than defaulting to Manual. (Thanks @TiloGit!)\r","* Fix internal BouncyCastle to .NET private key conversions where key parameters may need padding. (Thanks @alexzorin and @webprofusion-chrisc!)\r","\r","## 3.0.0 (2018-11-13)\r","\r","* Potentially breaking changes\r","  * Many ACME protocol messages that previously used GET requests have been changed to POST-as-GET to comply with the latest ACME draft-16. Let's Encrypt already supports the new draft, but other ACME servers may not yet.\r","  * `CertIssueTimeout` param was removed from `New-PACertificate` and `Submit-OrderFinalize` because it wasn't actually being used properly in the former and doesn't seem necessary anymore.\r","* New Feature: Generate certs from an existing certificate request which can be useful for appliances that generate their own keys and CSRs. (Thanks @virot)\r","  * New `CSRPath` parameter on `New-PACertificate` and `New-PAOrder` that removes the need for `Domain`, `CertKeyLength`, `NewCertKey`, `OCSPMustStaple`, `FriendlyName`, `PfxPass`, and `Install` parameters when used. Most values will be extracted from the CSR.\r","  * Certs generated using this method will not have PFX files created because there is no private key.\r","  * Certs generated using this method can not be automatically installed to the Windows cert store because there are no PFX files.\r","* `Get-KeyAuthorization` now has `ForDNS` parameter which returns the actual TXT value necessary for the dns-01 challenge. (Thanks @chandan1001)\r","* Added new DNS plugins\r","  * IBMSoftLayer (IBM Cloud DNS)\r","  * AutoDNS (InternetX XML Gateway)\r","* Fix for some validation params not getting set properly on new instances of old orders\r","* Fix for Windows plugin not using `$dnsParams` appropriately (Thanks @B4dM4n)\r","\r","## 2.9.1 (2018-10-26)\r","\r","* Fix (#94) for TXT record cleanup bug when some domains were already validated (Thanks @philr!)\r","* Fix (#95) error handling in New-PACertificate and New-PAOrder that would mistakenly cause new orders to be created if there were problems checking old orders. (Thanks @philr!)\r","* Azure fix (#96) to allow special characters in credentials. (Thanks @philr!)\r","* Route53 fix for errors caused by public/private zones with same name (#100) (Thanks @spaceygithub!)\r","\r","## 2.9.0 (2018-10-05)\r","\r","* Added new DNS plugins\r","  * BlueCat (Thanks @marshallford)\r","  * Gandi\r","* Updated DMEasy plugin to support non-Windows\r","\r","## 2.8.0 (2018-09-12)\r","\r","* Added new DNS plugins\r","  * Aliyun (Alibaba Cloud)\r","  * DeSEC (Thanks @nazar554)\r","* Fix for type error when using OCSP Must-Staple (Thanks @casselc)\r","* Parameter binding bug fixes for Azure and Windows plugins (Thanks @mithrandyr)\r","\r","## 2.7.1 (2018-08-30)\r","\r","* Removed ACMEv2 draft-12 support for account key rollover. No known CAs are still implementing draft-12.\r","* Fix for issue #53 with GoDaddy plugin not being able to remove TXT records in some cases. Thanks @davehope!\r","* Performance and efficiency improvements with GoDaddy plugin\r","* Fixed Get-PACertificate -List only showing certs from 'valid' orders.\r","\r","## 2.7.0 (2018-08-12)\r","\r","* Added new DNS plugin ClouDNS\r","* Added ACMEv2 draft-13 support for account key rollover. This is an interim fix that should still work with draft-12 as well. Once Let's Encrypt goes into production with draft-13, the draft-12 support will be removed.\r","* .NET version check now throws a warning instead of error on module load\r","* Fixed Get-PAAccount not filtering contacts correctly\r","* Minor fix and help correction in Namecheap plugin\r","* Get-PAAccount and Get-PAOrder now return null instead of an error if an invalid account or order was specified. (Thanks for the idea @maybe-hello-world)\r","\r","## 2.6.0 (2018-08-01)\r","\r","* Added additional functions that should make it easier to manually respond to challenges. In particular, this should allow people to use the HTTP challenge until a formal HTTP challenge plugin solution is introduced. (Thanks John B. for the idea!)\r","  * `Get-KeyAuthorization` calculate a key authorization string for a challenge token.\r","  * `Send-ChallengeAck` notifies the ACME server to proceed validating a challenge.\r","  * The output object on `Get-PAAuthorizations` now contains top level attributes relating to the HTTP challenge (in addition to the existing DNS challenge).\r","* Added new DNS plugins\r","  * Namecheap\r","  * Rackspace\r","* Migrated all internal DateTime handling to use DateTimeOffset which is less finicky across time zones for the types of comparisons generally being performed.\r","\r","\r","## 2.5.0 (2018-07-12)\r","\r","* Added new DNS plugin Dynu. (Thanks @alexzorin!)\r","* Added additional Azure plugin authentication options including explicit access token and Instance Metadata Service support. See plugin readme for details. (Thanks @perbergland!)\r","* Added an explicit .NET 4.7.1 version check on module load when running Windows PowerShell (Desktop edition) since the module manifest didn't seem to be enforcing it. This will throw an error if you try to import the module without at least .NET 4.7.1 installed and hopefully prevent bug reports due to insufficient .NET versions.\r","* Fixed bug with GoDaddy plugin (#50) that prevented using names in sub-domains. (Thanks @davehope!)\r","* Fixed bug with Azure plugin (#57) incorrectly evaluating token expiration. (Thanks @Cavorter!)\r","* Fixed bug (#60) that would cause some order parameters to appear to get wiped when renewing or creating a new order whose names had already been validated. (Thanks for the tip @hutch120!)\r","* Various readme tweaks\r","\r","## 2.4.0 (2018-06-01)\r","\r","* Added new DNS plugin Linode\r","* Added tab completion for `Plugin` param on `Publish`/`Unpublish`/`Save-DnsChallenge`\r","* Fixed bug renewing orders with status invalid (which happens when the order expires even if the cert is still valid)\r","* Fixed bug in `New-PACertificate` that wasn't using explicit `DnsSleep` and `ValidationTimeout` parameters when an old order existed for the same primary name.\r","\r","## 2.3.0 (2018-05-29)\r","\r","* Added new DNS plugins\r","  * DNSimple\r","  * LuaDns\r","  * NS1\r","* Challenge validation errors will now show the detailed error message provided by the ACME server\r","* Get-PAAuthorization will now throw a warning instead of errors for expired authorizations\r","* Fixed bug with Infoblox plugin\r","* Fixed error with Get-PACertificate on orders created prior to 2.0\r","* Misc fixes for plugin help details\r","\r","## 2.2.0 (2018-05-24)\r","\r","* Added cross platform PowerShell Core support!\r","  * Some DNS plugins don't work yet on non-Windows due to known issue handling SecureString PowerShell Core 6.0. Check details on the project wiki.\r","  * `-Install` param on `New-PACertificate` throws error on non-Windows because there's no certificate store to install to.\r","  * `Windows` plugin doesn't work in Core at all yet due to lack of Core compatible DnsServer module.\r","* Added new DNS plugin Zonomi. Thanks @Zippy79!\r","\r","## 2.1.1 (2018-05-19)\r","\r","* Fix for GCloud plugin syntax error\r","\r","## 2.1.0 (2018-05-18)\r","\r","* Added account key rollover support. Use -KeyRollover switch in Set-PAAccount.\r","* Added PfxPass (SecureString) to Get-PACertificate output\r","* Added new DNS plugins\r","  * DMEasy (DNS Made Easy)\r","  * GoDaddy. Thanks @Rukas!\r","* All calls to Invoke-WebRequest and Invoke-RestMethod now use -UseBasicParsing to avoid issues with PowerShell using Internet Explorer's DOM parser. Thanks @Rukas!\r","* Fixed hard coded cert store paths in Import-PfxCertInternal\r","* Fixed tests for New-Jws\r","\r","## 2.0.1 (2018-05-12)\r","\r","* Fix for PluginArgs not being passed to Submit-ChallengeValidation. Thanks @juliansiebert!\r","* Fix for Azure plugin when multiple zones are in a subscription. Thanks @juliansiebert!\r","\r","## 2.0 (2018-05-12)\r","\r","* Potentially Breaking Changes\r","  * New-PACertificate now outputs certificate details to the pipeline which should aid automation\r","  * New-PACertificate now reuses all previous order params (for the same MainDomain) when not explicitly specified\r","  * All generated PFX files now have 'poshacme' as the default password to address compatibility issues with other tools\r","* New-PACertificate now generates fullchain.pfx in addition to cert.pfx\r","* Added optional parameters to New-PACertificate\r","  * `-FriendlyName` sets Friendly Name when imported into Windows certificate store\r","  * `-PfxPass` overrides the default password for generated PFX files\r","  * `-Install` switch imports fullchain.pfx to Windows certificate store. *Requires elevation*\r","* Added new DNS plugins\r","  * DOcean (Digital Ocean)\r","  * Cloudflare. Thanks @rian-hout!\r","* Added Get-PACertificate which returns certificate details\r","* Added usage guides for most DNS plugins\r","* Added progress bar while waiting for DNS changes to propagate\r","* Old csr and chain files are no longer backed up when creating a new order\r","* Manual plugin now displays all records to create with one prompt\r","* Fixed AcmeDns plugin issue where CNAMEs would display twice user Ctrl-C from prompt\r","* Bugfix for Azure plugin (#17). Thanks @juliansiebert!\r","* New-PACertificate will no longer redownload certs when run with same arguments (#9)\r","\r","## 1.1 (2018-05-02)\r","\r","* Added tab completion for -DnsPlugin parameter\r","* Added new DNS plugins\r","  * Acme-Dns\r","  * Azure\r","  * GCloud (Google Cloud)\r","  * Windows\r","\r","## 1.0 (2018-04-27)\r","\r","* Initial Release\r","* Added functions\r","  * Get-DnsPluginHelp\r","  * Get-DnsPlugins\r","  * Get-PAAccount\r","  * Get-PAAuthorizations\r","  * Get-PAOrder\r","  * Get-PAServer\r","  * New-PAAccount\r","  * New-PACertificate\r","  * New-PAOrder\r","  * Publish-DnsChallenge\r","  * Remove-PAAccount\r","  * Remove-PAOrder\r","  * Save-DnsChallenge\r","  * Set-PAAccount\r","  * Set-PAOrder\r","  * Set-PAServer\r","  * Submit-ChallengeValidation\r","  * Submit-OrderFinalize\r","  * Submit-Renewal\r","  * Unpublish-DnsChallenge\r"],"stylingDirectives":[[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,42,"pl-corl"],[42,43,"pl-s"],[45,49,"pl-s"],[46,49,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,39,"pl-corl"],[39,40,"pl-s"],[66,70,"pl-s"],[67,70,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,32,"pl-corl"],[32,33,"pl-s"],[35,39,"pl-s"],[36,39,"pl-corl"],[49,57,"pl-s"],[50,57,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[17,18,"pl-s"],[18,19,"pl-s"],[19,45,"pl-corl"],[45,46,"pl-s"],[48,52,"pl-s"],[49,52,"pl-corl"],[62,71,"pl-s"],[63,71,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,39,"pl-corl"],[39,40,"pl-s"],[55,61,"pl-s"],[56,61,"pl-corl"]],[[0,1,"pl-v"],[100,104,"pl-s"],[101,104,"pl-corl"]],[[0,1,"pl-v"],[40,44,"pl-s"],[41,44,"pl-corl"],[54,64,"pl-s"],[55,64,"pl-corl"]],[[0,1,"pl-v"]],[[2,3,"pl-v"],[48,52,"pl-s"],[49,52,"pl-corl"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[88,92,"pl-s"],[89,92,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[32,33,"pl-s"],[33,47,"pl-c1"],[47,48,"pl-s"],[73,74,"pl-s"],[110,111,"pl-s"],[111,112,"pl-s"],[112,182,"pl-corl"],[182,183,"pl-s"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,20,"pl-c1"],[20,21,"pl-s"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,25,"pl-c1"],[25,26,"pl-s"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,25,"pl-c1"],[25,26,"pl-s"],[30,31,"pl-s"],[31,48,"pl-c1"],[48,49,"pl-s"],[51,52,"pl-s"],[52,63,"pl-c1"],[63,64,"pl-s"],[70,71,"pl-s"],[71,82,"pl-c1"],[82,83,"pl-s"],[277,281,"pl-s"],[278,281,"pl-corl"]],[[0,1,"pl-v"],[6,7,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,39,"pl-corl"],[39,40,"pl-s"],[49,53,"pl-s"],[50,53,"pl-corl"],[63,73,"pl-s"],[64,73,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[100,104,"pl-s"],[101,104,"pl-corl"],[114,122,"pl-s"],[115,122,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[87,88,"pl-s"],[88,101,"pl-c1"],[101,102,"pl-s"],[104,108,"pl-s"],[105,108,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[88,92,"pl-s"],[89,92,"pl-corl"]],[[0,1,"pl-v"],[41,42,"pl-s"],[42,69,"pl-c1"],[69,70,"pl-s"],[75,76,"pl-s"],[76,105,"pl-c1"],[105,106,"pl-s"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[6,7,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,36,"pl-corl"],[36,37,"pl-s"],[46,50,"pl-s"],[47,50,"pl-corl"],[60,69,"pl-s"],[61,69,"pl-corl"]],[[0,1,"pl-v"],[26,27,"pl-s"],[41,42,"pl-s"],[42,43,"pl-s"],[43,104,"pl-corl"],[104,105,"pl-s"]],[[2,3,"pl-v"],[19,20,"pl-s"],[20,47,"pl-c1"],[47,48,"pl-s"],[53,54,"pl-s"],[54,83,"pl-c1"],[83,84,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[10,12,"pl-s"],[18,20,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[33,34,"pl-s"],[34,50,"pl-c1"],[50,51,"pl-s"],[90,94,"pl-s"],[91,94,"pl-corl"]],[],[[0,31,"pl-mh"],[4,31,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[108,109,"pl-s"],[115,116,"pl-s"],[116,117,"pl-s"],[117,165,"pl-corl"],[165,166,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[102,103,"pl-s"],[108,109,"pl-s"]],[[2,3,"pl-v"],[124,125,"pl-s"],[125,133,"pl-c1"],[133,134,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[178,182,"pl-s"],[179,182,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[6,7,"pl-s"],[21,22,"pl-s"],[22,23,"pl-s"],[23,50,"pl-corl"],[50,51,"pl-s"],[61,65,"pl-s"],[62,65,"pl-corl"],[75,85,"pl-s"],[76,85,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,12,"pl-c1"],[12,13,"pl-s"],[40,41,"pl-s"],[41,58,"pl-c1"],[58,59,"pl-s"],[117,121,"pl-s"],[118,121,"pl-corl"],[131,142,"pl-s"],[132,142,"pl-corl"]],[[0,1,"pl-v"],[75,79,"pl-s"],[76,79,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[91,95,"pl-s"],[92,95,"pl-corl"],[105,115,"pl-s"],[106,115,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[6,7,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,45,"pl-corl"],[45,46,"pl-s"],[55,59,"pl-s"],[56,59,"pl-corl"],[69,77,"pl-s"],[70,77,"pl-corl"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,29,"pl-c1"],[29,30,"pl-s"],[67,71,"pl-s"],[68,71,"pl-corl"],[81,93,"pl-s"],[82,93,"pl-corl"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,21,"pl-c1"],[21,22,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,23,"pl-c1"],[23,24,"pl-s"],[29,30,"pl-s"],[30,42,"pl-c1"],[42,43,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[83,87,"pl-s"],[84,87,"pl-corl"],[97,109,"pl-s"],[98,109,"pl-corl"]],[[0,1,"pl-v"],[107,111,"pl-s"],[108,111,"pl-corl"]],[[0,1,"pl-v"],[106,110,"pl-s"],[107,110,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[200,201,"pl-s"],[201,222,"pl-c1"],[222,223,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[95,99,"pl-s"],[96,99,"pl-corl"]],[[0,1,"pl-v"],[82,86,"pl-s"],[83,86,"pl-corl"]],[[0,1,"pl-v"],[46,50,"pl-s"],[47,50,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[66,70,"pl-s"],[67,70,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,35,"pl-corl"],[35,36,"pl-s"],[38,42,"pl-s"],[39,42,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,36,"pl-corl"],[36,37,"pl-s"],[39,43,"pl-s"],[40,43,"pl-corl"],[53,59,"pl-s"],[54,59,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,23,"pl-c1"],[23,24,"pl-s"],[35,36,"pl-s"],[36,48,"pl-c1"],[48,49,"pl-s"],[51,55,"pl-s"],[52,55,"pl-corl"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[48,49,"pl-s"],[49,57,"pl-c1"],[57,58,"pl-s"]],[[2,3,"pl-v"],[125,126,"pl-s"],[128,129,"pl-s"],[152,153,"pl-s"],[153,161,"pl-c1"],[161,162,"pl-s"]],[[0,1,"pl-v"],[52,56,"pl-s"],[53,56,"pl-corl"]],[[0,1,"pl-v"],[49,53,"pl-s"],[50,53,"pl-corl"]],[[0,1,"pl-v"],[50,54,"pl-s"],[51,54,"pl-corl"],[64,74,"pl-s"],[65,74,"pl-corl"]],[[0,1,"pl-v"],[84,88,"pl-s"],[85,88,"pl-corl"]],[[0,1,"pl-v"],[73,77,"pl-s"],[74,77,"pl-corl"]],[[0,1,"pl-v"],[17,18,"pl-s"],[18,35,"pl-c1"],[35,36,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[95,99,"pl-s"],[96,99,"pl-corl"]],[[0,1,"pl-v"],[97,101,"pl-s"],[98,101,"pl-corl"],[111,126,"pl-s"],[112,126,"pl-corl"]],[[0,1,"pl-v"],[71,72,"pl-s"],[72,80,"pl-c1"],[80,81,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[6,7,"pl-s"],[35,36,"pl-s"],[36,37,"pl-s"],[37,86,"pl-corl"],[86,87,"pl-s"],[103,118,"pl-s"],[104,118,"pl-corl"],[142,154,"pl-s"],[143,154,"pl-corl"]],[[0,1,"pl-v"],[35,36,"pl-s"],[49,50,"pl-s"],[50,51,"pl-s"],[51,110,"pl-corl"],[110,111,"pl-s"],[311,312,"pl-s"],[316,317,"pl-s"],[317,318,"pl-s"],[318,367,"pl-corl"],[367,368,"pl-s"]],[[0,1,"pl-v"],[77,81,"pl-s"],[78,81,"pl-corl"]],[[0,1,"pl-v"],[72,76,"pl-s"],[73,76,"pl-corl"],[79,83,"pl-s"],[80,83,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[94,102,"pl-s"],[95,102,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[9,10,"pl-s"],[10,11,"pl-s"],[11,31,"pl-corl"],[31,32,"pl-s"],[41,56,"pl-s"],[42,56,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[20,21,"pl-s"],[21,22,"pl-s"],[22,46,"pl-corl"],[46,47,"pl-s"],[178,187,"pl-s"],[179,187,"pl-corl"]],[[0,1,"pl-v"],[87,91,"pl-s"],[88,91,"pl-corl"]],[[0,1,"pl-v"],[63,64,"pl-s"],[64,65,"pl-c1"],[65,66,"pl-s"]],[[0,1,"pl-v"],[105,106,"pl-s"],[106,114,"pl-c1"],[114,115,"pl-s"],[124,128,"pl-s"],[125,128,"pl-corl"]],[[0,1,"pl-v"],[110,114,"pl-s"],[111,114,"pl-corl"]],[[0,1,"pl-v"],[242,246,"pl-s"],[243,246,"pl-corl"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[17,18,"pl-s"],[27,28,"pl-s"],[28,29,"pl-s"],[29,59,"pl-corl"],[59,60,"pl-s"],[62,66,"pl-s"],[63,66,"pl-corl"]],[[0,1,"pl-v"],[128,132,"pl-s"],[129,132,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[64,68,"pl-s"],[65,68,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"],[17,36,"pl-corl"],[36,37,"pl-s"],[177,181,"pl-s"],[178,181,"pl-corl"],[191,203,"pl-s"],[192,203,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,60,"pl-corl"],[60,61,"pl-s"],[113,114,"pl-s"],[114,132,"pl-c1"],[132,133,"pl-s"],[136,140,"pl-s"],[137,140,"pl-corl"]],[[0,1,"pl-v"],[94,98,"pl-s"],[95,98,"pl-corl"]],[[0,1,"pl-v"],[174,178,"pl-s"],[175,178,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[139,143,"pl-s"],[140,143,"pl-corl"]],[[0,1,"pl-v"],[126,130,"pl-s"],[127,130,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[84,96,"pl-s"],[85,96,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[39,40,"pl-s"],[40,41,"pl-s"],[41,94,"pl-corl"],[94,95,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,10,"pl-c1"],[10,11,"pl-s"],[16,17,"pl-s"],[17,23,"pl-c1"],[23,24,"pl-s"],[65,66,"pl-s"],[66,83,"pl-c1"],[83,84,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,15,"pl-c1"],[15,16,"pl-s"],[33,34,"pl-s"],[34,46,"pl-c1"],[46,47,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,17,"pl-c1"],[17,18,"pl-s"],[38,39,"pl-s"],[39,50,"pl-c1"],[50,51,"pl-s"],[95,96,"pl-s"],[96,113,"pl-c1"],[113,114,"pl-s"],[228,229,"pl-s"],[229,241,"pl-c1"],[241,242,"pl-s"]],[[2,3,"pl-v"],[80,81,"pl-s"],[81,91,"pl-c1"],[91,92,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,19,"pl-c1"],[19,20,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[78,82,"pl-s"],[79,82,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"],[83,103,"pl-s"],[84,103,"pl-corl"]],[[0,1,"pl-v"],[56,60,"pl-s"],[57,60,"pl-corl"]],[[0,1,"pl-v"],[94,98,"pl-s"],[95,98,"pl-corl"]],[[0,1,"pl-v"],[90,94,"pl-s"],[91,94,"pl-corl"],[104,113,"pl-s"],[105,113,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[17,18,"pl-s"],[30,31,"pl-s"],[31,32,"pl-s"],[32,73,"pl-corl"],[73,74,"pl-s"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[17,18,"pl-s"],[23,24,"pl-s"],[24,25,"pl-s"],[25,52,"pl-corl"],[52,53,"pl-s"]],[[0,1,"pl-v"],[170,174,"pl-s"],[171,174,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[17,18,"pl-s"],[26,27,"pl-s"],[27,28,"pl-s"],[28,82,"pl-corl"],[82,83,"pl-s"]],[[0,1,"pl-v"],[37,38,"pl-s"],[38,44,"pl-c1"],[44,45,"pl-s"],[183,187,"pl-s"],[184,187,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,27,"pl-c1"],[27,28,"pl-s"],[201,205,"pl-s"],[202,205,"pl-corl"]],[[0,1,"pl-v"],[293,294,"pl-s"],[303,304,"pl-s"],[304,305,"pl-s"],[305,395,"pl-corl"],[395,396,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[25,26,"pl-s"],[26,27,"pl-s"],[27,46,"pl-corl"],[46,47,"pl-s"],[87,88,"pl-s"],[88,105,"pl-c1"],[105,106,"pl-s"],[172,181,"pl-s"],[173,181,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,40,"pl-corl"],[40,41,"pl-s"],[43,47,"pl-s"],[44,47,"pl-corl"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,14,"pl-c1"],[14,15,"pl-s"],[29,30,"pl-s"],[30,41,"pl-c1"],[41,42,"pl-s"],[47,48,"pl-s"],[48,65,"pl-c1"],[65,66,"pl-s"],[158,162,"pl-s"],[159,162,"pl-corl"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,13,"pl-c1"],[13,14,"pl-s"],[42,43,"pl-s"],[43,52,"pl-c1"],[52,53,"pl-s"],[274,275,"pl-s"],[275,304,"pl-c1"],[304,305,"pl-s"]],[[0,1,"pl-v"],[102,106,"pl-s"],[103,106,"pl-corl"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,14,"pl-c1"],[14,15,"pl-s"],[73,77,"pl-s"],[74,77,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[6,7,"pl-s"],[7,20,"pl-c1"],[20,21,"pl-s"],[85,86,"pl-s"],[86,87,"pl-c1"],[87,88,"pl-s"],[123,127,"pl-s"],[124,127,"pl-corl"]],[[2,3,"pl-v"],[32,33,"pl-s"],[33,56,"pl-c1"],[56,57,"pl-s"],[101,102,"pl-s"],[102,126,"pl-c1"],[126,127,"pl-s"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[89,90,"pl-s"],[90,103,"pl-c1"],[103,104,"pl-s"],[121,125,"pl-s"],[122,125,"pl-corl"]],[[0,1,"pl-v"],[146,150,"pl-s"],[147,150,"pl-corl"]],[[0,1,"pl-v"],[106,110,"pl-s"],[107,110,"pl-corl"],[120,135,"pl-s"],[121,135,"pl-corl"]],[[2,3,"pl-v"],[35,36,"pl-s"],[36,53,"pl-c1"],[53,54,"pl-s"]],[[2,3,"pl-v"],[183,184,"pl-s"],[184,212,"pl-c1"],[212,213,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[54,58,"pl-s"],[55,58,"pl-corl"],[68,77,"pl-s"],[69,77,"pl-corl"]],[[0,1,"pl-v"],[72,76,"pl-s"],[73,76,"pl-corl"],[86,94,"pl-s"],[87,94,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[19,20,"pl-s"],[20,21,"pl-s"],[21,44,"pl-corl"],[44,45,"pl-s"],[148,168,"pl-s"],[149,168,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,33,"pl-corl"],[33,34,"pl-s"],[43,55,"pl-s"],[44,55,"pl-corl"]],[[2,3,"pl-v"],[139,152,"pl-s"],[140,152,"pl-corl"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,21,"pl-c1"],[21,22,"pl-s"]],[[0,1,"pl-v"],[136,137,"pl-s"],[148,149,"pl-s"],[149,150,"pl-s"],[150,211,"pl-corl"],[211,212,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[43,44,"pl-s"],[44,56,"pl-c1"],[56,57,"pl-s"],[74,78,"pl-s"],[75,78,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,39,"pl-corl"],[39,40,"pl-s"],[49,58,"pl-s"],[50,58,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,34,"pl-corl"],[34,35,"pl-s"],[44,64,"pl-s"],[45,64,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,17,"pl-c1"],[17,18,"pl-s"],[32,33,"pl-s"],[33,50,"pl-c1"],[50,51,"pl-s"],[53,54,"pl-s"],[54,65,"pl-c1"],[65,66,"pl-s"],[72,73,"pl-s"],[73,84,"pl-c1"],[84,85,"pl-s"]],[[0,1,"pl-v"],[52,58,"pl-s"],[53,58,"pl-corl"]],[[0,1,"pl-v"],[51,52,"pl-s"],[52,58,"pl-c1"],[58,59,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[20,21,"pl-s"],[21,44,"pl-c1"],[44,45,"pl-s"],[56,57,"pl-s"],[57,74,"pl-c1"],[74,75,"pl-s"],[77,78,"pl-s"],[78,89,"pl-c1"],[89,90,"pl-s"],[96,97,"pl-s"],[97,108,"pl-c1"],[108,109,"pl-s"],[126,127,"pl-s"],[127,138,"pl-c1"],[138,139,"pl-s"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,51,"pl-c1"],[51,52,"pl-s"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[23,24,"pl-s"],[39,40,"pl-s"],[40,41,"pl-s"],[41,64,"pl-corl"],[64,65,"pl-s"],[74,81,"pl-s"],[75,81,"pl-corl"]],[[0,1,"pl-v"],[50,51,"pl-s"],[51,62,"pl-c1"],[62,63,"pl-s"],[221,222,"pl-s"],[222,231,"pl-c1"],[231,232,"pl-s"],[348,349,"pl-s"],[349,358,"pl-c1"],[358,359,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[79,88,"pl-s"],[80,88,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,53,"pl-corl"],[53,54,"pl-s"],[63,68,"pl-s"],[64,68,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,29,"pl-c1"],[29,30,"pl-s"],[41,42,"pl-s"],[42,54,"pl-c1"],[54,55,"pl-s"],[162,166,"pl-s"],[163,166,"pl-corl"],[169,173,"pl-s"],[170,173,"pl-corl"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,21,"pl-c1"],[21,22,"pl-s"],[32,33,"pl-s"],[33,50,"pl-c1"],[50,51,"pl-s"],[53,54,"pl-s"],[54,65,"pl-c1"],[65,66,"pl-s"],[72,73,"pl-s"],[73,84,"pl-c1"],[84,85,"pl-s"]],[[2,3,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[64,68,"pl-s"],[65,68,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,22,"pl-c1"],[22,23,"pl-s"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[69,86,"pl-s"],[70,86,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[32,33,"pl-s"],[33,34,"pl-s"],[34,59,"pl-corl"],[59,60,"pl-s"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[57,58,"pl-s"],[58,64,"pl-c1"],[64,65,"pl-s"],[78,82,"pl-s"],[79,82,"pl-corl"]],[[0,1,"pl-v"],[160,164,"pl-s"],[161,164,"pl-corl"]],[[0,1,"pl-v"],[29,30,"pl-s"],[30,50,"pl-c1"],[50,51,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,26,"pl-c1"],[26,27,"pl-s"],[95,99,"pl-s"],[96,99,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[8,9,"pl-s"],[25,26,"pl-s"],[26,27,"pl-s"],[27,126,"pl-corl"],[126,127,"pl-s"],[141,142,"pl-s"],[152,153,"pl-s"],[153,154,"pl-s"],[154,210,"pl-corl"],[210,211,"pl-s"]],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[12,13,"pl-s"],[13,14,"pl-s"],[14,38,"pl-corl"],[38,39,"pl-s"],[48,64,"pl-s"],[49,64,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[16,17,"pl-s"],[17,18,"pl-s"],[18,70,"pl-corl"],[70,71,"pl-s"],[80,94,"pl-s"],[81,94,"pl-corl"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"],[34,35,"pl-s"],[35,43,"pl-c1"],[43,44,"pl-s"],[171,175,"pl-s"],[172,175,"pl-corl"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[138,142,"pl-s"],[139,142,"pl-corl"]],[[0,1,"pl-v"],[201,205,"pl-s"],[202,205,"pl-corl"]],[[0,1,"pl-v"],[82,86,"pl-s"],[83,86,"pl-corl"]],[[0,1,"pl-v"],[87,91,"pl-s"],[88,91,"pl-corl"]],[[0,1,"pl-v"],[19,20,"pl-s"],[20,47,"pl-c1"],[47,48,"pl-s"],[115,124,"pl-s"],[116,124,"pl-corl"],[127,131,"pl-s"],[128,131,"pl-corl"]],[[0,1,"pl-v"],[48,68,"pl-s"],[49,68,"pl-corl"],[71,75,"pl-s"],[72,75,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[36,37,"pl-s"],[37,38,"pl-s"],[38,67,"pl-corl"],[67,68,"pl-s"],[77,85,"pl-s"],[78,85,"pl-corl"]],[[0,1,"pl-v"],[58,62,"pl-s"],[59,62,"pl-corl"]],[[0,1,"pl-v"],[65,69,"pl-s"],[66,69,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[33,34,"pl-s"],[34,35,"pl-s"],[35,61,"pl-corl"],[61,62,"pl-s"]],[[0,1,"pl-v"],[81,85,"pl-s"],[82,85,"pl-corl"],[95,102,"pl-s"],[96,102,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[20,21,"pl-s"],[21,48,"pl-c1"],[48,49,"pl-s"]],[[0,1,"pl-v"],[98,102,"pl-s"],[99,102,"pl-corl"],[112,123,"pl-s"],[113,123,"pl-corl"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[126,197,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[45,46,"pl-s"],[46,83,"pl-c1"],[83,84,"pl-s"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,26,"pl-corl"],[224,225,"pl-s"],[225,229,"pl-c1"],[229,230,"pl-s"],[272,273,"pl-s"],[279,280,"pl-s"],[280,281,"pl-s"],[281,304,"pl-corl"],[304,305,"pl-s"]],[[2,3,"pl-v"],[52,53,"pl-s"],[60,61,"pl-s"],[61,62,"pl-s"],[62,99,"pl-corl"],[99,100,"pl-s"],[128,129,"pl-s"],[129,143,"pl-c1"],[143,144,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,37,"pl-c1"],[37,38,"pl-s"]],[[0,1,"pl-v"],[27,28,"pl-s"],[28,36,"pl-c1"],[36,37,"pl-s"],[42,43,"pl-s"],[43,49,"pl-c1"],[49,50,"pl-s"],[111,112,"pl-s"],[112,119,"pl-c1"],[119,120,"pl-s"],[122,123,"pl-s"],[123,138,"pl-c1"],[138,139,"pl-s"],[145,146,"pl-s"],[146,151,"pl-c1"],[151,152,"pl-s"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[22,23,"pl-s"],[34,35,"pl-s"],[35,36,"pl-s"],[36,70,"pl-corl"],[70,71,"pl-s"]],[[2,3,"pl-v"],[63,64,"pl-s"],[74,75,"pl-s"],[75,76,"pl-s"],[76,136,"pl-corl"],[136,137,"pl-s"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[4,5,"pl-s"],[5,11,"pl-c1"],[11,12,"pl-s"],[71,72,"pl-s"],[72,101,"pl-c1"],[101,102,"pl-s"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[155,159,"pl-s"],[156,159,"pl-corl"]],[[2,3,"pl-v"],[4,6,"pl-s"],[77,79,"pl-s"]],[[2,3,"pl-v"],[120,121,"pl-s"],[121,140,"pl-c1"],[140,141,"pl-s"]],[[2,3,"pl-v"],[6,7,"pl-s"],[7,14,"pl-c1"],[14,15,"pl-s"],[44,45,"pl-s"],[45,57,"pl-c1"],[57,58,"pl-s"],[60,61,"pl-s"],[61,74,"pl-c1"],[74,75,"pl-s"],[81,82,"pl-s"],[82,93,"pl-c1"],[93,94,"pl-s"]],[[2,3,"pl-v"],[50,51,"pl-s"],[51,55,"pl-c1"],[55,56,"pl-s"],[118,119,"pl-s"],[119,131,"pl-c1"],[131,132,"pl-s"],[158,159,"pl-s"],[159,182,"pl-c1"],[182,183,"pl-s"]],[[2,3,"pl-v"],[39,40,"pl-s"],[40,52,"pl-c1"],[52,53,"pl-s"],[67,68,"pl-s"],[68,73,"pl-c1"],[73,74,"pl-s"]],[[2,3,"pl-v"],[37,38,"pl-s"],[38,42,"pl-c1"],[42,43,"pl-s"],[48,49,"pl-s"],[49,55,"pl-c1"],[55,56,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[43,44,"pl-s"],[44,46,"pl-c1"],[46,47,"pl-s"],[69,70,"pl-s"],[70,74,"pl-c1"],[74,75,"pl-s"],[107,108,"pl-s"],[108,132,"pl-c1"],[132,133,"pl-s"],[138,139,"pl-s"],[139,158,"pl-c1"],[158,159,"pl-s"],[259,260,"pl-s"],[260,264,"pl-c1"],[264,265,"pl-s"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,11,"pl-c1"],[11,12,"pl-s"],[36,37,"pl-s"],[37,50,"pl-c1"],[50,51,"pl-s"]],[[2,3,"pl-v"],[40,41,"pl-s"],[41,47,"pl-c1"],[47,48,"pl-s"],[66,67,"pl-s"],[67,69,"pl-c1"],[69,70,"pl-s"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,11,"pl-c1"],[11,12,"pl-s"],[78,79,"pl-s"],[79,83,"pl-c1"],[83,84,"pl-s"]],[[2,3,"pl-v"],[49,50,"pl-s"],[50,54,"pl-c1"],[54,55,"pl-s"],[128,129,"pl-s"],[129,139,"pl-c1"],[139,140,"pl-s"],[156,157,"pl-s"],[157,185,"pl-c1"],[185,186,"pl-s"],[188,189,"pl-s"],[189,215,"pl-c1"],[215,216,"pl-s"],[218,219,"pl-s"],[219,235,"pl-c1"],[235,236,"pl-s"],[238,239,"pl-s"],[239,267,"pl-c1"],[267,268,"pl-s"],[274,275,"pl-s"],[275,289,"pl-c1"],[289,290,"pl-s"],[311,312,"pl-s"],[312,316,"pl-c1"],[316,317,"pl-s"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,13,"pl-c1"],[13,14,"pl-s"],[28,29,"pl-s"],[29,46,"pl-c1"],[46,47,"pl-s"],[52,53,"pl-s"],[53,64,"pl-c1"],[64,65,"pl-s"]],[[2,3,"pl-v"],[38,39,"pl-s"],[39,43,"pl-c1"],[43,44,"pl-s"],[79,80,"pl-s"],[80,92,"pl-c1"],[92,93,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[75,76,"pl-s"],[76,87,"pl-c1"],[87,88,"pl-s"],[146,147,"pl-s"],[147,158,"pl-c1"],[158,159,"pl-s"],[222,223,"pl-s"],[223,240,"pl-c1"],[240,241,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,16,"pl-c1"],[16,17,"pl-s"],[19,20,"pl-s"],[20,40,"pl-c1"],[40,41,"pl-s"],[47,48,"pl-s"],[48,62,"pl-c1"],[62,63,"pl-s"],[92,93,"pl-s"],[93,103,"pl-c1"],[103,104,"pl-s"],[162,163,"pl-s"],[163,167,"pl-c1"],[167,168,"pl-s"]],[[0,1,"pl-v"],[87,88,"pl-s"],[88,104,"pl-c1"],[104,105,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,28,"pl-c1"],[28,29,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,29,"pl-c1"],[29,30,"pl-s"],[44,45,"pl-s"],[45,58,"pl-c1"],[58,59,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,19,"pl-c1"],[19,20,"pl-s"],[34,35,"pl-s"],[35,47,"pl-c1"],[47,48,"pl-s"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,14,"pl-c1"],[14,15,"pl-s"]],[[0,1,"pl-v"],[24,25,"pl-s"],[25,41,"pl-c1"],[41,42,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[53,54,"pl-s"],[54,58,"pl-c1"],[58,59,"pl-s"],[76,77,"pl-s"],[77,91,"pl-c1"],[91,92,"pl-s"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,12,"pl-c1"],[12,13,"pl-s"],[50,51,"pl-s"],[51,69,"pl-c1"],[69,70,"pl-s"]],[[0,1,"pl-v"],[22,23,"pl-s"],[23,38,"pl-c1"],[38,39,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[24,25,"pl-s"],[25,45,"pl-c1"],[45,46,"pl-s"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[14,15,"pl-s"],[15,16,"pl-s"],[16,35,"pl-corl"],[35,36,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[10,11,"pl-s"],[11,12,"pl-s"],[12,30,"pl-corl"],[30,31,"pl-s"]],[[0,1,"pl-v"],[96,100,"pl-s"],[97,100,"pl-corl"]],[[0,1,"pl-v"],[62,66,"pl-s"],[63,66,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[53,57,"pl-s"],[54,57,"pl-corl"],[67,75,"pl-s"],[68,75,"pl-corl"]],[[0,1,"pl-v"],[80,84,"pl-s"],[81,84,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[15,16,"pl-s"],[25,26,"pl-s"],[26,27,"pl-s"],[27,48,"pl-corl"],[48,49,"pl-s"],[58,66,"pl-s"],[59,66,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[11,12,"pl-s"],[12,13,"pl-s"],[13,34,"pl-corl"],[34,35,"pl-s"],[44,55,"pl-s"],[45,55,"pl-corl"]],[[0,1,"pl-v"],[21,22,"pl-s"],[22,42,"pl-c1"],[42,43,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,29,"pl-c1"],[29,30,"pl-s"],[164,171,"pl-s"],[165,171,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[57,65,"pl-s"],[58,65,"pl-corl"]],[[0,1,"pl-v"],[63,67,"pl-s"],[64,67,"pl-corl"]],[[0,1,"pl-v"],[68,72,"pl-s"],[69,72,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[15,16,"pl-s"],[16,17,"pl-s"],[17,40,"pl-corl"],[40,41,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,36,"pl-corl"],[36,37,"pl-s"],[46,54,"pl-s"],[47,54,"pl-corl"]],[[2,3,"pl-v"],[4,5,"pl-s"],[13,14,"pl-s"],[14,15,"pl-s"],[15,40,"pl-corl"],[40,41,"pl-s"],[50,60,"pl-s"],[51,60,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,15,"pl-c1"],[15,16,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,16,"pl-c1"],[16,17,"pl-s"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[141,145,"pl-s"],[142,145,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,23,"pl-c1"],[23,24,"pl-s"],[70,71,"pl-s"],[71,88,"pl-c1"],[88,89,"pl-s"],[91,95,"pl-s"],[92,95,"pl-corl"],[105,119,"pl-s"],[106,119,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[61,65,"pl-s"],[62,65,"pl-corl"]],[[0,1,"pl-v"],[65,66,"pl-s"],[66,78,"pl-c1"],[78,79,"pl-s"]],[[0,1,"pl-v"],[32,33,"pl-s"],[33,42,"pl-c1"],[42,43,"pl-s"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[252,256,"pl-s"],[253,256,"pl-corl"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,17,"pl-c1"],[17,18,"pl-s"],[23,24,"pl-s"],[24,46,"pl-c1"],[46,47,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[54,58,"pl-s"],[55,58,"pl-corl"],[68,77,"pl-s"],[69,77,"pl-corl"]],[[0,1,"pl-v"],[86,90,"pl-s"],[87,90,"pl-corl"]],[],[[0,22,"pl-mh"],[4,22,"pl-en"]],[],[],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[23,32,"pl-s"],[24,32,"pl-corl"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,16,"pl-c1"],[16,17,"pl-s"],[122,135,"pl-s"],[123,135,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[44,48,"pl-s"],[45,48,"pl-corl"]],[[2,3,"pl-v"],[129,133,"pl-s"],[130,133,"pl-corl"]],[[2,3,"pl-v"],[96,100,"pl-s"],[97,100,"pl-corl"]],[[0,1,"pl-v"],[114,118,"pl-s"],[115,118,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[57,61,"pl-s"],[58,61,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,34,"pl-c1"],[34,35,"pl-s"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[22,23,"pl-s"],[38,39,"pl-s"],[39,40,"pl-s"],[40,150,"pl-corl"],[150,151,"pl-s"],[265,266,"pl-s"],[266,280,"pl-c1"],[280,281,"pl-s"],[314,315,"pl-s"],[315,322,"pl-c1"],[322,323,"pl-s"],[430,431,"pl-s"],[431,456,"pl-c1"],[456,457,"pl-s"]],[],[[0,16,"pl-mh"],[4,16,"pl-en"]],[],[[0,1,"pl-v"],[90,94,"pl-s"],[91,94,"pl-corl"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[55,56,"pl-s"],[56,63,"pl-c1"],[63,64,"pl-s"],[69,70,"pl-s"],[70,81,"pl-c1"],[81,82,"pl-s"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[10,11,"pl-s"],[11,27,"pl-c1"],[27,28,"pl-s"]],[[2,3,"pl-v"],[124,125,"pl-s"],[125,138,"pl-c1"],[138,139,"pl-s"]],[[0,1,"pl-v"],[337,341,"pl-s"],[338,341,"pl-corl"]],[[2,3,"pl-v"],[23,24,"pl-s"],[24,46,"pl-c1"],[46,47,"pl-s"],[58,59,"pl-s"],[59,72,"pl-c1"],[72,73,"pl-s"],[77,78,"pl-s"],[78,91,"pl-c1"],[91,92,"pl-s"]],[[2,3,"pl-v"],[27,28,"pl-s"],[28,72,"pl-c1"],[72,73,"pl-s"]],[[2,3,"pl-v"],[64,65,"pl-s"],[65,104,"pl-c1"],[104,105,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,15,"pl-c1"],[15,16,"pl-s"],[49,50,"pl-s"],[50,64,"pl-c1"],[64,65,"pl-s"],[70,71,"pl-s"],[71,88,"pl-c1"],[88,89,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[22,23,"pl-s"],[23,28,"pl-c1"],[28,29,"pl-s"]],[[2,3,"pl-v"],[22,23,"pl-s"],[23,29,"pl-c1"],[29,30,"pl-s"]],[[2,3,"pl-v"],[22,23,"pl-s"],[23,30,"pl-c1"],[30,31,"pl-s"],[78,82,"pl-s"],[79,82,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,21,"pl-c1"],[21,22,"pl-s"],[33,34,"pl-s"],[34,51,"pl-c1"],[51,52,"pl-s"],[54,55,"pl-s"],[55,66,"pl-c1"],[66,67,"pl-s"],[73,74,"pl-s"],[74,85,"pl-c1"],[85,86,"pl-s"],[223,227,"pl-s"],[224,227,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,28,"pl-c1"],[28,29,"pl-s"],[40,41,"pl-s"],[41,58,"pl-c1"],[58,59,"pl-s"],[61,62,"pl-s"],[62,73,"pl-c1"],[73,74,"pl-s"],[80,81,"pl-s"],[81,92,"pl-c1"],[92,93,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,25,"pl-c1"],[25,26,"pl-s"],[203,204,"pl-s"],[204,221,"pl-c1"],[221,222,"pl-s"]],[[0,1,"pl-v"],[85,89,"pl-s"],[86,89,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,22,"pl-c1"],[22,23,"pl-s"],[52,53,"pl-s"],[53,70,"pl-c1"],[70,71,"pl-s"],[73,74,"pl-s"],[74,85,"pl-c1"],[85,86,"pl-s"],[92,93,"pl-s"],[93,104,"pl-c1"],[104,105,"pl-s"],[134,135,"pl-s"],[135,142,"pl-c1"],[142,143,"pl-s"],[159,163,"pl-s"],[160,163,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,17,"pl-c1"],[17,18,"pl-s"],[23,24,"pl-s"],[24,38,"pl-c1"],[38,39,"pl-s"],[54,55,"pl-s"],[55,66,"pl-c1"],[66,67,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,15,"pl-c1"],[15,16,"pl-s"],[18,19,"pl-s"],[19,29,"pl-c1"],[29,30,"pl-s"],[32,33,"pl-s"],[33,41,"pl-c1"],[41,42,"pl-s"],[44,45,"pl-s"],[45,53,"pl-c1"],[53,54,"pl-s"],[60,61,"pl-s"],[61,78,"pl-c1"],[78,79,"pl-s"],[94,95,"pl-s"],[95,106,"pl-c1"],[106,107,"pl-s"]],[[0,1,"pl-v"],[6,7,"pl-s"],[7,19,"pl-c1"],[19,20,"pl-s"],[34,35,"pl-s"],[35,47,"pl-c1"],[47,48,"pl-s"]],[[0,1,"pl-v"],[90,91,"pl-s"],[91,111,"pl-c1"],[111,112,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[53,54,"pl-s"],[54,70,"pl-c1"],[70,71,"pl-s"],[85,86,"pl-s"],[86,98,"pl-c1"],[98,99,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,18,"pl-c1"],[18,19,"pl-s"],[30,31,"pl-s"],[31,43,"pl-c1"],[43,44,"pl-s"]],[[0,1,"pl-v"],[114,115,"pl-s"],[115,127,"pl-c1"],[127,128,"pl-s"]],[[0,1,"pl-v"],[80,81,"pl-s"],[81,93,"pl-c1"],[93,94,"pl-s"]],[[0,1,"pl-v"],[27,28,"pl-s"],[28,40,"pl-c1"],[40,41,"pl-s"],[45,46,"pl-s"],[46,58,"pl-c1"],[58,59,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,14,"pl-c1"],[14,15,"pl-s"],[29,30,"pl-s"],[30,42,"pl-c1"],[42,43,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,18,"pl-c1"],[18,19,"pl-s"]],[[0,1,"pl-v"],[42,43,"pl-s"],[43,69,"pl-c1"],[69,70,"pl-s"],[75,76,"pl-s"],[76,96,"pl-c1"],[96,97,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[51,52,"pl-s"],[60,61,"pl-s"],[61,62,"pl-s"],[62,97,"pl-corl"],[97,98,"pl-s"]],[[0,1,"pl-v"],[100,101,"pl-s"],[101,107,"pl-c1"],[107,108,"pl-s"],[131,132,"pl-s"],[187,188,"pl-s"]],[],[[0,20,"pl-mh"],[4,20,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,25,"pl-c1"],[25,26,"pl-s"],[34,35,"pl-s"],[35,52,"pl-c1"],[52,53,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,27,"pl-c1"],[27,28,"pl-s"],[36,37,"pl-s"],[37,56,"pl-c1"],[56,57,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,22,"pl-c1"],[22,23,"pl-s"],[31,32,"pl-s"],[32,46,"pl-c1"],[46,47,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,19,"pl-c1"],[19,20,"pl-s"],[25,26,"pl-s"],[26,43,"pl-c1"],[43,44,"pl-s"],[67,68,"pl-s"],[68,80,"pl-c1"],[80,81,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,25,"pl-c1"],[25,26,"pl-s"],[34,35,"pl-s"],[35,54,"pl-c1"],[54,55,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,33,"pl-c1"],[33,34,"pl-s"],[117,118,"pl-s"],[118,129,"pl-c1"],[129,130,"pl-s"]],[[0,1,"pl-v"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,18,"pl-c1"],[18,19,"pl-s"],[39,40,"pl-s"],[40,46,"pl-c1"],[46,47,"pl-s"],[55,56,"pl-s"],[56,65,"pl-c1"],[65,66,"pl-s"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,17,"pl-c1"],[17,18,"pl-s"],[82,83,"pl-s"],[83,91,"pl-c1"],[91,92,"pl-s"],[126,127,"pl-s"],[127,133,"pl-c1"],[133,134,"pl-s"],[160,161,"pl-s"],[217,218,"pl-s"],[218,226,"pl-c1"],[226,227,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,11,"pl-c1"],[11,12,"pl-s"],[35,36,"pl-s"],[36,50,"pl-c1"],[50,51,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,11,"pl-c1"],[11,12,"pl-s"],[13,14,"pl-s"],[14,24,"pl-c1"],[24,25,"pl-s"],[48,49,"pl-s"],[49,61,"pl-c1"],[61,62,"pl-s"],[66,67,"pl-s"],[67,84,"pl-c1"],[84,85,"pl-s"],[90,91,"pl-s"],[91,102,"pl-c1"],[102,103,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,17,"pl-c1"],[17,18,"pl-s"],[37,38,"pl-s"],[38,49,"pl-c1"],[49,50,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,14,"pl-c1"],[14,15,"pl-s"],[17,18,"pl-s"],[18,28,"pl-c1"],[28,29,"pl-s"],[31,32,"pl-s"],[32,40,"pl-c1"],[40,41,"pl-s"],[43,44,"pl-s"],[44,52,"pl-c1"],[52,53,"pl-s"],[55,56,"pl-s"],[56,73,"pl-c1"],[73,74,"pl-s"],[79,80,"pl-s"],[80,87,"pl-c1"],[87,88,"pl-s"],[123,124,"pl-s"],[124,150,"pl-c1"],[150,151,"pl-s"],[332,333,"pl-s"],[333,344,"pl-c1"],[344,345,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,12,"pl-c1"],[12,13,"pl-s"],[46,47,"pl-s"],[47,67,"pl-c1"],[67,68,"pl-s"]],[],[[0,9,"pl-mh"],[4,9,"pl-en"]],[],[[0,1,"pl-v"],[8,9,"pl-s"],[9,20,"pl-c1"],[20,21,"pl-s"],[27,28,"pl-s"],[28,36,"pl-c1"],[36,37,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,24,"pl-c1"],[24,25,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,18,"pl-c1"],[18,19,"pl-s"]],[],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[67,68,"pl-s"],[68,81,"pl-c1"],[81,82,"pl-s"],[115,116,"pl-s"],[116,126,"pl-c1"],[126,127,"pl-s"],[139,140,"pl-s"],[140,157,"pl-c1"],[157,158,"pl-s"],[160,161,"pl-s"],[161,177,"pl-c1"],[177,178,"pl-s"],[184,185,"pl-s"],[185,200,"pl-c1"],[200,201,"pl-s"],[204,208,"pl-s"],[205,208,"pl-corl"],[218,228,"pl-s"],[219,228,"pl-corl"]],[[0,1,"pl-v"],[60,64,"pl-s"],[61,64,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[30,31,"pl-s"],[31,32,"pl-s"],[32,55,"pl-corl"],[55,56,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[195,196,"pl-s"],[207,208,"pl-s"],[208,209,"pl-s"],[209,296,"pl-corl"],[296,297,"pl-s"]],[[0,1,"pl-v"],[17,18,"pl-s"],[18,31,"pl-c1"],[31,32,"pl-s"],[93,103,"pl-s"],[94,103,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,57,"pl-corl"],[57,58,"pl-s"],[234,235,"pl-s"],[246,247,"pl-s"],[247,248,"pl-s"],[248,336,"pl-corl"],[336,337,"pl-s"]],[[0,1,"pl-v"],[22,23,"pl-s"],[23,42,"pl-c1"],[42,43,"pl-s"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[29,30,"pl-s"],[41,42,"pl-s"],[42,43,"pl-s"],[43,123,"pl-corl"],[123,124,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[22,23,"pl-s"],[23,49,"pl-c1"],[49,50,"pl-s"],[62,63,"pl-s"],[63,71,"pl-c1"],[71,72,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,28,"pl-c1"],[28,29,"pl-s"]],[[2,3,"pl-v"],[99,100,"pl-s"],[100,113,"pl-c1"],[113,114,"pl-s"],[124,125,"pl-s"],[125,133,"pl-c1"],[133,134,"pl-s"]],[[0,1,"pl-v"],[84,88,"pl-s"],[85,88,"pl-corl"]],[[0,1,"pl-v"],[83,87,"pl-s"],[84,87,"pl-corl"]],[[0,1,"pl-v"],[113,117,"pl-s"],[114,117,"pl-corl"],[127,142,"pl-s"],[128,142,"pl-corl"]],[[0,1,"pl-v"],[31,35,"pl-s"],[32,35,"pl-corl"],[45,52,"pl-s"],[46,52,"pl-corl"]],[[0,1,"pl-v"],[18,19,"pl-s"],[19,39,"pl-c1"],[39,40,"pl-s"],[90,94,"pl-s"],[91,94,"pl-corl"],[104,113,"pl-s"],[105,113,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[32,33,"pl-s"],[33,34,"pl-s"],[34,58,"pl-corl"],[58,59,"pl-s"],[68,74,"pl-s"],[69,74,"pl-corl"]],[[0,1,"pl-v"]],[[2,3,"pl-v"],[19,20,"pl-s"],[20,35,"pl-c1"],[35,36,"pl-s"],[50,51,"pl-s"],[51,68,"pl-c1"],[68,69,"pl-s"],[71,72,"pl-s"],[72,83,"pl-c1"],[83,84,"pl-s"],[90,91,"pl-s"],[91,102,"pl-c1"],[102,103,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[13,14,"pl-s"],[14,44,"pl-c1"],[44,45,"pl-s"]],[[0,1,"pl-v"],[19,20,"pl-s"],[20,34,"pl-c1"],[34,35,"pl-s"],[63,64,"pl-s"],[64,75,"pl-c1"],[75,76,"pl-s"],[81,82,"pl-s"],[82,98,"pl-c1"],[98,99,"pl-s"],[116,117,"pl-s"],[117,127,"pl-c1"],[127,128,"pl-s"],[132,133,"pl-s"],[133,145,"pl-c1"],[145,146,"pl-s"],[172,176,"pl-s"],[173,176,"pl-corl"],[177,181,"pl-s"],[178,181,"pl-corl"],[192,200,"pl-s"],[193,200,"pl-corl"]],[[0,1,"pl-v"],[97,101,"pl-s"],[98,101,"pl-corl"]],[[0,1,"pl-v"],[43,44,"pl-s"],[44,53,"pl-c1"],[53,54,"pl-s"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[72,76,"pl-s"],[73,76,"pl-corl"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[39,40,"pl-s"],[40,41,"pl-s"],[41,58,"pl-corl"],[58,59,"pl-s"],[68,77,"pl-s"],[69,77,"pl-corl"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,16,"pl-c1"],[16,17,"pl-s"],[26,27,"pl-s"],[27,37,"pl-c1"],[37,38,"pl-s"],[40,41,"pl-s"],[41,55,"pl-c1"],[55,56,"pl-s"],[62,63,"pl-s"],[63,79,"pl-c1"],[79,80,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,56,"pl-corl"],[56,57,"pl-s"],[66,77,"pl-s"],[67,77,"pl-corl"]],[[0,1,"pl-v"],[61,71,"pl-s"],[62,71,"pl-corl"]],[[0,1,"pl-v"],[69,78,"pl-s"],[70,78,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[19,31,"pl-s"],[20,31,"pl-corl"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[21,31,"pl-s"],[22,31,"pl-corl"]],[[2,3,"pl-v"],[19,31,"pl-s"],[20,31,"pl-corl"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[24,36,"pl-s"],[25,36,"pl-corl"]],[[2,3,"pl-v"],[19,31,"pl-s"],[20,31,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[61,65,"pl-s"],[62,65,"pl-corl"]],[[0,1,"pl-v"],[43,63,"pl-s"],[44,63,"pl-corl"]],[[0,1,"pl-v"],[51,52,"pl-s"],[52,58,"pl-c1"],[58,59,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"],[24,25,"pl-s"],[25,35,"pl-c1"],[35,36,"pl-s"],[41,42,"pl-s"],[42,53,"pl-c1"],[53,54,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[46,47,"pl-s"],[47,69,"pl-c1"],[69,70,"pl-s"]],[[0,1,"pl-v"],[42,43,"pl-s"],[43,60,"pl-c1"],[60,61,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,29,"pl-c1"],[29,30,"pl-s"]],[[0,1,"pl-v"],[64,68,"pl-s"],[65,68,"pl-corl"]],[[0,1,"pl-v"],[25,26,"pl-s"],[26,40,"pl-c1"],[40,41,"pl-s"]],[[0,1,"pl-v"],[43,44,"pl-s"],[44,55,"pl-c1"],[55,56,"pl-s"],[62,63,"pl-s"],[63,77,"pl-c1"],[77,78,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[8,9,"pl-s"],[9,31,"pl-c1"],[31,32,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,22,"pl-c1"],[22,23,"pl-s"],[55,56,"pl-s"],[56,76,"pl-c1"],[76,77,"pl-s"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,24,"pl-c1"],[24,25,"pl-s"]],[[0,1,"pl-v"],[25,26,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,83,"pl-corl"],[83,84,"pl-s"]],[[0,1,"pl-v"]],[],[[0,22,"pl-mh"],[3,22,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[41,42,"pl-s"],[42,43,"pl-s"],[43,62,"pl-corl"],[62,63,"pl-s"]],[[0,1,"pl-v"],[70,71,"pl-s"],[83,84,"pl-s"],[84,85,"pl-s"],[85,171,"pl-corl"],[171,172,"pl-s"],[187,191,"pl-s"],[188,191,"pl-corl"]],[[0,1,"pl-v"],[59,60,"pl-s"],[62,63,"pl-s"],[63,64,"pl-s"],[64,115,"pl-corl"],[115,116,"pl-s"],[155,156,"pl-s"],[167,171,"pl-s"],[168,171,"pl-corl"]],[[0,1,"pl-v"],[125,129,"pl-s"],[126,129,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[23,24,"pl-s"],[31,32,"pl-s"],[32,33,"pl-s"],[33,57,"pl-corl"],[57,58,"pl-s"],[67,78,"pl-s"],[68,78,"pl-corl"]],[[0,1,"pl-v"],[280,281,"pl-s"],[293,294,"pl-s"],[294,295,"pl-s"],[295,386,"pl-corl"],[386,387,"pl-s"],[402,406,"pl-s"],[403,406,"pl-corl"]],[[0,1,"pl-v"],[109,113,"pl-s"],[110,113,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[2,3,"pl-s"],[3,14,"pl-c1"],[14,15,"pl-s"]],[[0,1,"pl-v"],[80,81,"pl-s"],[81,98,"pl-c1"],[98,99,"pl-s"],[127,131,"pl-s"],[128,131,"pl-corl"]],[[0,1,"pl-v"],[76,80,"pl-s"],[77,80,"pl-corl"]],[[0,1,"pl-v"],[77,81,"pl-s"],[78,81,"pl-corl"]],[[0,1,"pl-v"],[86,87,"pl-s"],[87,98,"pl-c1"],[98,99,"pl-s"],[122,123,"pl-s"],[123,140,"pl-c1"],[140,141,"pl-s"]],[[0,1,"pl-v"],[38,39,"pl-s"],[39,50,"pl-c1"],[50,51,"pl-s"]],[[0,1,"pl-v"],[13,14,"pl-s"],[14,31,"pl-c1"],[31,32,"pl-s"]],[[0,1,"pl-v"],[10,11,"pl-s"],[11,22,"pl-c1"],[22,23,"pl-s"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[155,167,"pl-s"],[156,167,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[88,92,"pl-s"],[89,92,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[57,66,"pl-s"],[58,66,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[23,31,"pl-s"],[24,31,"pl-corl"]],[[2,3,"pl-v"],[22,36,"pl-s"],[23,36,"pl-corl"]],[[2,3,"pl-v"],[20,29,"pl-s"],[21,29,"pl-corl"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,37,"pl-c1"],[37,38,"pl-s"],[56,64,"pl-s"],[57,64,"pl-corl"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,24,"pl-c1"],[24,25,"pl-s"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,30,"pl-c1"],[30,31,"pl-s"],[113,117,"pl-s"],[114,117,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[57,61,"pl-s"],[58,61,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[8,9,"pl-s"],[9,35,"pl-c1"],[35,36,"pl-s"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[44,48,"pl-s"],[45,48,"pl-corl"],[58,67,"pl-s"],[59,67,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[145,152,"pl-s"],[146,152,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[59,63,"pl-s"],[60,63,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[32,35,"pl-s"],[33,35,"pl-corl"]],[[0,1,"pl-v"],[45,49,"pl-s"],[46,49,"pl-corl"],[59,66,"pl-s"],[60,66,"pl-corl"]],[[0,1,"pl-v"],[14,18,"pl-s"],[15,18,"pl-corl"]],[[0,1,"pl-v"],[14,18,"pl-s"],[15,18,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[123,127,"pl-s"],[124,127,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[99,103,"pl-s"],[100,103,"pl-corl"],[113,123,"pl-s"],[114,123,"pl-corl"]],[[0,1,"pl-v"],[196,200,"pl-s"],[197,200,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[6,10,"pl-s"],[7,10,"pl-corl"],[70,71,"pl-s"],[71,79,"pl-c1"],[79,80,"pl-s"]],[[0,1,"pl-v"],[63,67,"pl-s"],[64,67,"pl-corl"]],[[0,1,"pl-v"],[65,69,"pl-s"],[66,69,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[54,64,"pl-s"],[55,64,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[61,62,"pl-s"],[62,75,"pl-c1"],[75,76,"pl-s"],[264,265,"pl-s"],[265,271,"pl-c1"],[271,272,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[10,14,"pl-s"],[11,14,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[45,46,"pl-s"],[46,63,"pl-c1"],[63,64,"pl-s"]],[[0,1,"pl-v"],[6,10,"pl-s"],[7,10,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[10,14,"pl-s"],[11,14,"pl-corl"],[15,16,"pl-s"],[16,30,"pl-c1"],[30,31,"pl-s"],[115,125,"pl-s"],[116,125,"pl-corl"]],[[0,1,"pl-v"],[10,14,"pl-s"],[11,14,"pl-corl"],[15,16,"pl-s"],[16,33,"pl-c1"],[33,34,"pl-s"],[124,132,"pl-s"],[125,132,"pl-corl"]],[[0,1,"pl-v"],[107,117,"pl-s"],[108,117,"pl-corl"],[122,142,"pl-s"],[123,142,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,21,"pl-c1"],[21,22,"pl-s"],[46,47,"pl-s"],[47,64,"pl-c1"],[64,65,"pl-s"],[70,71,"pl-s"],[71,91,"pl-c1"],[91,92,"pl-s"]],[[0,1,"pl-v"],[149,155,"pl-s"],[150,155,"pl-corl"]],[[2,3,"pl-v"],[8,9,"pl-s"],[9,16,"pl-c1"],[16,17,"pl-s"],[31,32,"pl-s"],[32,49,"pl-c1"],[49,50,"pl-s"],[55,56,"pl-s"],[56,67,"pl-c1"],[67,68,"pl-s"],[95,96,"pl-s"],[96,102,"pl-c1"],[102,103,"pl-s"],[105,106,"pl-s"],[106,119,"pl-c1"],[119,120,"pl-s"],[122,123,"pl-s"],[123,133,"pl-c1"],[133,134,"pl-s"],[136,137,"pl-s"],[137,151,"pl-c1"],[151,152,"pl-s"],[154,155,"pl-s"],[155,167,"pl-c1"],[167,168,"pl-s"],[170,171,"pl-s"],[171,178,"pl-c1"],[178,179,"pl-s"],[185,186,"pl-s"],[186,193,"pl-c1"],[193,194,"pl-s"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"],[2,3,"pl-s"],[3,23,"pl-c1"],[23,24,"pl-s"],[33,34,"pl-s"],[34,40,"pl-c1"],[40,41,"pl-s"],[131,143,"pl-s"],[132,143,"pl-corl"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[35,36,"pl-s"],[36,46,"pl-c1"],[46,47,"pl-s"],[70,77,"pl-s"],[71,77,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[7,10,"pl-s"],[8,10,"pl-corl"],[88,94,"pl-s"],[89,94,"pl-corl"]],[[0,1,"pl-v"],[7,10,"pl-s"],[8,10,"pl-corl"],[169,175,"pl-s"],[170,175,"pl-corl"]],[[0,1,"pl-v"],[13,16,"pl-s"],[14,16,"pl-corl"],[70,76,"pl-s"],[71,76,"pl-corl"]],[[0,1,"pl-v"],[72,76,"pl-s"],[73,76,"pl-corl"],[86,99,"pl-s"],[87,99,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[20,33,"pl-s"],[21,33,"pl-corl"]],[[2,3,"pl-v"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[18,27,"pl-s"],[19,27,"pl-corl"]],[[0,1,"pl-v"],[57,65,"pl-s"],[58,65,"pl-corl"]],[[0,1,"pl-v"],[68,79,"pl-s"],[69,79,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"],[16,19,"pl-s"],[17,19,"pl-corl"],[99,108,"pl-s"],[100,108,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[135,153,"pl-s"],[136,153,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,25,"pl-c1"],[25,26,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,22,"pl-c1"],[22,23,"pl-s"]],[[2,3,"pl-v"],[25,26,"pl-s"],[26,46,"pl-c1"],[46,47,"pl-s"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"]],[],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[37,47,"pl-s"],[38,47,"pl-corl"]],[[0,1,"pl-v"],[165,177,"pl-s"],[166,177,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[33,36,"pl-s"],[34,36,"pl-corl"],[89,98,"pl-s"],[90,98,"pl-corl"]],[[0,1,"pl-v"],[31,34,"pl-s"],[32,34,"pl-corl"],[85,94,"pl-s"],[86,94,"pl-corl"]],[[0,1,"pl-v"],[13,16,"pl-s"],[14,16,"pl-corl"],[178,187,"pl-s"],[179,187,"pl-corl"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"],[27,28,"pl-s"],[28,34,"pl-c1"],[34,35,"pl-s"],[45,46,"pl-s"],[46,53,"pl-c1"],[53,54,"pl-s"],[55,56,"pl-s"],[56,65,"pl-c1"],[65,66,"pl-s"],[67,68,"pl-s"],[68,85,"pl-c1"],[85,86,"pl-s"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[15,16,"pl-s"],[16,33,"pl-c1"],[33,34,"pl-s"],[62,63,"pl-s"],[63,71,"pl-c1"],[71,72,"pl-s"],[77,78,"pl-s"],[78,95,"pl-c1"],[95,96,"pl-s"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,13,"pl-c1"],[13,14,"pl-s"],[24,25,"pl-s"],[25,42,"pl-c1"],[42,43,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,12,"pl-c1"],[12,13,"pl-s"]],[[0,1,"pl-v"],[38,46,"pl-s"],[39,46,"pl-corl"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[20,26,"pl-s"],[21,26,"pl-corl"]],[[0,1,"pl-v"],[157,163,"pl-s"],[158,163,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[],[[0,21,"pl-mh"],[3,21,"pl-en"]],[],[[0,1,"pl-v"],[76,90,"pl-s"],[77,90,"pl-corl"]],[[0,1,"pl-v"],[73,87,"pl-s"],[74,87,"pl-corl"]],[],[[0,19,"pl-mh"],[3,19,"pl-en"]],[],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,18,"pl-c1"],[18,19,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,13,"pl-c1"],[13,14,"pl-s"]],[[2,3,"pl-v"],[4,5,"pl-s"],[5,13,"pl-c1"],[13,14,"pl-s"],[74,75,"pl-s"],[93,94,"pl-s"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"],[23,33,"pl-s"],[24,33,"pl-corl"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[0,1,"pl-v"],[27,30,"pl-s"],[28,30,"pl-corl"],[40,54,"pl-s"],[41,54,"pl-corl"]],[[0,1,"pl-v"],[82,84,"pl-s"],[83,84,"pl-corl"]],[],[[0,19,"pl-mh"],[3,19,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[],[[0,19,"pl-mh"],[3,19,"pl-en"]],[],[[0,1,"pl-v"]],[[0,1,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]],[[2,3,"pl-v"]]],"colorizedLines":null}},"title":"Posh-ACME/CHANGELOG.md at main · nimbice/Posh-ACME","appPayload":{},"meta":{"title":"Posh-ACME/CHANGELOG.md at main · nimbice/Posh-ACME"}}</script>
  <div data-target="react-app.reactRoot"><meta name="github-code-view-meta-stats" id="github-code-view-meta-stats" data-hydrostats="publish"/> <!-- --> <a hidden="" id="code-view-repo-link" href="/nimbice/Posh-ACME" data-discover="true"></a> <div class="d-none"></div><div><div style="--spacing:var(--spacing-none)" class="prc-PageLayout-PageLayoutRoot--KH-d" data-component="SplitPageLayout" data-has-sidebar="true"><div class="prc-PageLayout-SidebarWrapper-kLG4B CopilotSidePanelSidebar-module__SidePanel__L3O0C CopilotSidePanelSidebar-module__HiddenSidePanel__TBRGn" style="--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="end" data-sticky="true" data-responsive-variant="fullscreen"><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-SidebarVerticalDivider-0Rl0V" data-component="PageLayout.VerticalDivider" data-variant="line" data-position="end" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="450" aria-valuemax="768" aria-valuenow="544" aria-valuetext="Pane width 544 pixels" tabindex="0"></div></div><div class="prc-PageLayout-Sidebar-iciWg" data-component="SplitPageLayout.Sidebar" data-resizable="true" style="--spacing:var(--spacing-normal);--pane-min-width:450px;--pane-max-width:768px;--pane-width-custom:544px;--pane-width-size:var(--pane-width-custom);--pane-width:544px"><div class="height-full" data-testid="copilot-code-view-side-panel"><div id="copilot-side-panel-content" class="height-full"></div></div></div></div><div class="prc-PageLayout-PageLayoutWrapper-2BhU2" data-width="full"><div class="prc-PageLayout-PageLayoutContent-BneH9"><div id="repos-file-tree-sidebar" class="CodeViewFileTreeLayout-module__sidebar__n_Aau" tabindex="0"><div class="prc-PageLayout-PaneWrapper-pHPop ReposFileTreePane-module__Pane__rBZpI ReposFileTreePane-module__HideTree__AYZnm ReposFileTreePane-module__HidePane__VHAVt" style="--offset-header:0px;--spacing-row:var(--spacing-none);--spacing-column:var(--spacing-none)" data-is-hidden="false" data-position="start" data-sticky="true"><div class="prc-PageLayout-HorizontalDivider-JLVqp prc-PageLayout-PaneHorizontalDivider-9tbnE" data-component="PageLayout.HorizontalDivider" data-variant-regular="none" data-variant-narrow="none" data-position="start" style="--spacing-divider:var(--spacing-none);--spacing:var(--spacing-none)"></div><div class="prc-PageLayout-Pane-AyzHK" data-component="SplitPageLayout.Pane" data-resizable="true" style="--spacing:var(--spacing-none);--pane-min-width:256px;--pane-max-width:calc(100vw - var(--pane-max-width-diff));--pane-width-size:var(--pane-width-large);--pane-width:320px"></div><div class="prc-PageLayout-VerticalDivider-9QRmK prc-PageLayout-PaneVerticalDivider-le57g" data-component="PageLayout.VerticalDivider" data-variant-narrow="none" data-variant-regular="line" data-variant-wide="line" data-position="start" style="--spacing:var(--spacing-none)"><div class="prc-PageLayout-DraggableHandle-9s6B4" data-component="PageLayout.DragHandle" role="slider" aria-label="Draggable pane splitter" aria-valuemin="256" aria-valuemax="600" aria-valuenow="320" aria-valuetext="Pane width 320 pixels" tabindex="0"></div></div></div></div><div data-component="SplitPageLayout.Content" class="prc-PageLayout-ContentWrapper-gR9eG"><div class="prc-PageLayout-Content-xWL-A" data-width="full" style="--spacing:var(--spacing-none)"><div class="SharedPageLayout-module__content__IwGAp" data-selector="repos-split-pane-content" id="repos-split-pane-content" tabindex="0"> <!-- --> <div class="container CodeViewHeader-module__Box__JkPOb"><div class="CodeViewHeader-module__StickyHeader__Qn7UN" id="StickyHeader"><div class="CodeViewHeader-module__Box_1__SbNDV"><div class="CodeViewHeader-module__Box_2__TB46f"><div class="react-code-view-header-wrap--narrow CodeViewHeader-module__Box_3__q1zUL"><div class="CodeViewHeader-module__treeToggleWrapper__RQ__9"><h2 class="use-tree-pane-module__Heading__s4QbZ prc-Heading-Heading-MtWFE" data-component="Heading"><button data-component="Button" type="button" aria-label="Expand file tree" data-testid="expand-file-tree-button-mobile" class="prc-Button-ButtonBase-9n-Xk ExpandFileTreeButton-module__Button_1__Svs95" data-loading="false" data-size="medium" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-left" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M7.78 12.53a.75.75 0 0 1-1.06 0L2.47 8.28a.75.75 0 0 1 0-1.06l4.25-4.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L4.81 7h7.44a.75.75 0 0 1 0 1.5H4.81l2.97 2.97a.75.75 0 0 1 0 1.06Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Files</span></span></button><button data-component="IconButton" type="button" data-testid="expand-file-tree-button" aria-controls="repos-file-tree" class="prc-Button-ButtonBase-9n-Xk position-relative ExpandFileTreeButton-module__expandButton__hDOcv ExpandFileTreeButton-module__filesButtonBreakpoint__zEvz3 fgColor-muted prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="invisible" aria-labelledby="_R_4lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-sidebar-collapse" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M6.823 7.823a.25.25 0 0 1 0 .354l-2.396 2.396A.25.25 0 0 1 4 10.396V5.604a.25.25 0 0 1 .427-.177Z"></path><path d="M1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25V1.75C0 .784.784 0 1.75 0ZM1.5 1.75v12.5c0 .138.112.25.25.25H9.5v-13H1.75a.25.25 0 0 0-.25.25ZM11 14.5h3.25a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25H11Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="se" data-component="Tooltip" aria-hidden="true" id="_R_4lla9lik5_">Expand file tree</span><div class="d-none"></div></h2></div><div class="react-code-view-header-mb--narrow mr-2"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector-wide"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">main</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="react-code-view-header-mb--narrow CodeViewHeader-module__Box_5__MQ0hL"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__lg__Rjz0A"><nav data-testid="breadcrumbs" aria-labelledby="repos-header-breadcrumb-heading" id="repos-header-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="repos-header-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/nimbice/Posh-ACME/tree/main" data-discover="true">Posh-ACME</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__lg__Rjz0A" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__lg__Rjz0A prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="file-name-id">CHANGELOG.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lla9lik5_">Copy path</span></div></div></div><div class="react-code-view-header-element--wide"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><div><div class="CodeViewHeader-module__FileResultsList__JDzUy"><span class="d-flex FileResultsList-module__FilesSearchBox__ivVkc TextInput-wrapper prc-components-TextInputWrapper-Hpdqi prc-components-TextInputBaseWrapper-wY-n0" data-no-trailing-action="true" data-component="TextInput" data-leading-visual="true" data-trailing-visual="true" aria-busy="false"><span class="TextInput-icon" id="_R_1cpla9lik5_" aria-hidden="true" data-component="TextInput.LeadingVisual"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-search" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z"></path></svg></span><input type="text" aria-label="Go to file" role="combobox" aria-controls="file-results-list" aria-expanded="false" aria-haspopup="dialog" autoCorrect="off" spellCheck="false" placeholder="Go to file" aria-describedby="_R_1cpla9lik5_ _R_1cpla9lik5H1_" data-component="input" class="prc-components-Input-IwWrt" value=""/><span class="TextInput-icon" id="_R_1cpla9lik5H1_" aria-hidden="true" data-component="TextInput.TrailingVisual"></span></span></div><div class="d-none"></div></div><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-wide" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7p9la9lik5_" id="_R_99la9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7p9la9lik5_">More file actions</span></div></div></div><div class="react-code-view-header-element--narrow"><div class="CodeViewHeader-module__Box_7___0R6c"><div class="d-flex gap-2"><button data-component="Button" type="button" style="display:none" class="prc-Button-ButtonBase-9n-Xk NavigationMenu-module__Button__LpKgm" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Blame</span></span></button><div class="d-none"></div><button data-component="IconButton" type="button" data-testid="more-file-actions-button-nav-menu-narrow" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click NavigationMenu-module__IconButton__HpX3G prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="medium" data-variant="default" aria-labelledby="_R_7pdla9lik5_" id="_R_9dla9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_7pdla9lik5_">More file actions</span></div></div></div></div></div></div></div><div class="CodeView-module__contentWrapper__cG2JH"><div class="react-code-view-bottom-padding"><div class="BlobTopBanners-module__Box__v_nvx"></div></div> <div class="d-none"></div><div class="d-flex flex-column border rounded-2 tmp-mb-3 pl-1"><div class="LatestCommit-module__Box__B25ZT"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">Latest commit</h2><div style="width:120px" class="Skeleton Skeleton--text" data-testid="loading"> </div><div class="d-flex flex-shrink-0 gap-2"><div data-testid="latest-commit-details" class="d-none d-sm-flex flex-items-center"></div><div class="d-flex gap-2"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">History</h2><a data-component="LinkButton" href="/nimbice/Posh-ACME/commits/main/CHANGELOG.md" class="prc-Button-ButtonBase-9n-Xk d-none d-lg-flex LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><span class="fgColor-default">History</span></span></span></a><div class="d-sm-none"></div><div class="d-flex d-lg-none"><a data-component="LinkButton" aria-label="View commit history for this file." href="/nimbice/Posh-ACME/commits/main/CHANGELOG.md" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov flex-items-center fgColor-default" data-loading="false" data-size="small" data-variant="invisible" aria-describedby="_R_4mlala9lik5_"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-history" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m.427 1.927 1.215 1.215a8.002 8.002 0 1 1-1.6 5.685.75.75 0 1 1 1.493-.154 6.5 6.5 0 1 0 1.18-4.458l1.358 1.358A.25.25 0 0 1 3.896 6H.25A.25.25 0 0 1 0 5.75V2.104a.25.25 0 0 1 .427-.177ZM7.75 4a.75.75 0 0 1 .75.75v2.992l2.028.812a.75.75 0 0 1-.557 1.392l-2.5-1A.751.751 0 0 1 7 8.25v-3.5A.75.75 0 0 1 7.75 4Z"></path></svg></span></span></a><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" role="tooltip" aria-hidden="true" id="_R_4mlala9lik5_">History</span></div></div></div></div></div><div class="d-flex flex-row"><div class="container BlobViewContent-module__blobContainer__DtH2d"><div class="react-code-size-details-banner BlobViewContent-module__codeSizeDetails__e5sUw"><div class="react-code-size-details-banner CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="73.8 KB" style="--truncate-max-width:100%"><span>999 lines (804 loc) · 73.8 KB</span></div></div></div></div><div class="react-blob-view-header-sticky BlobViewContent-module__stickyHeader__VwxB5" id="repos-sticky-header"><div class="BlobViewHeader-module__Box__yhm9u"><div class="react-blob-sticky-header"><div class="FileNameStickyHeader-module__outerWrapper__ZL4Xc FileNameStickyHeader-module__outerWrapperHidden__Zpynk"><div class="FileNameStickyHeader-module__Box_1__Hazu5"><div class="FileNameStickyHeader-module__Box_2__hoolP"><div class="FileNameStickyHeader-module__Box_3__MVKsk"><button data-component="Button" type="button" aria-haspopup="true" aria-expanded="false" tabindex="0" aria-label="main branch" data-testid="anchor-button" data-icv-name="Switch branches/tags" class="prc-Button-ButtonBase-9n-Xk ref-selector-class RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3" data-loading="false" data-size="medium" data-variant="default" id="ref-picker-repos-header-ref-selector"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-git-branch" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3"><div class="RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p"><div style="max-width:125px" class="ref-selector-button-text-container RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"><span class="RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP">main</span></div></div></span><span data-component="trailingVisual" class="prc-Button-Visual-YNt2F prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-triangle-down" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg></span></span></button><div class="d-none"></div></div><div class="FileNameStickyHeader-module__Box_4__FLhtt"><div class="Breadcrumb-module__container__Vxvev Breadcrumb-module__md__Wb1Gs"><nav data-testid="breadcrumbs" aria-labelledby="sticky-breadcrumb-heading" id="sticky-breadcrumb" class="Breadcrumb-module__nav__rQFDj"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading" id="sticky-breadcrumb-heading">Breadcrumbs</h2><ol class="Breadcrumb-module__list__ZH6zr"><li class="Breadcrumb-module__listItem__Ib0x_"><a class="Breadcrumb-module__repoLink__O2Nbs prc-Link-Link-9ZwDx" data-component="Link" data-testid="breadcrumbs-repo-link" href="/nimbice/Posh-ACME/tree/main" data-discover="true">Posh-ACME</a></li></ol></nav><div data-testid="breadcrumbs-filename" class="Breadcrumb-module__filename__equZR"><span class="Breadcrumb-module__separator__eNwsI Breadcrumb-module__md__Wb1Gs" aria-hidden="true">/</span><h1 class="Breadcrumb-module__filenameHeading__MNMtw Breadcrumb-module__md__Wb1Gs prc-Heading-Heading-MtWFE" data-component="Heading" tabindex="-1" id="sticky-file-name-id">CHANGELOG.md</h1></div><button data-component="IconButton" type="button" class="prc-Button-ButtonBase-9n-Xk ml-2 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_7lcpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="CopyToClipboardIconButton-module__tooltip__WyiwL prc-TooltipV2-Tooltip-tLeuB" data-direction="s" data-component="Tooltip" aria-label="Copy path" aria-hidden="true" id="_R_7lcpala9lik5_">Copy path</span></div></div></div><button data-component="Button" type="button" class="prc-Button-ButtonBase-9n-Xk FileNameStickyHeader-module__Button__LSEU_ FileNameStickyHeader-module__GoToTopButton__nxAFn" data-loading="false" data-size="small" data-variant="invisible"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="leadingVisual" class="prc-Button-Visual-YNt2F prc-Button-LeadingVisual-UySKu prc-Button-VisualWrap-E4cnq"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-arrow-up" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M3.47 7.78a.75.75 0 0 1 0-1.06l4.25-4.25a.75.75 0 0 1 1.06 0l4.25 4.25a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018L9 4.81v7.44a.75.75 0 0 1-1.5 0V4.81L4.53 7.78a.75.75 0 0 1-1.06 0Z"></path></svg></span><span data-component="text" class="prc-Button-Label-FWkx3">Top</span></span></button></div></div></div><div class="BlobViewHeader-module__Box_1__VEmuQ"><h2 class="sr-only ScreenReaderHeading-module__userSelectNone__rwWIk prc-Heading-Heading-MtWFE" data-component="Heading" data-testid="screen-reader-heading">File metadata and controls</h2><div class="BlobViewHeader-module__Box_2__icUs2"><ul aria-label="File view" class="prc-SegmentedControl-SegmentedControl-lqIXp BlobTabButtons-module__SegmentedControl__jen2u" data-variant="default" data-size="small" data-component="SegmentedControl"><li class="prc-SegmentedControl-Item-tSCQh" data-selected="" data-component="SegmentedControl.Button"><button aria-pressed="true" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:transparent"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Preview">Preview</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Code">Code</div></span></button></li><li class="prc-SegmentedControl-Item-tSCQh" data-component="SegmentedControl.Button"><button aria-pressed="false" class="prc-SegmentedControl-Button-E48xz" type="button" style="--separator-color:var(--borderColor-default)"><span class="prc-SegmentedControl-Content-1COlk segmentedControl-content"><div class="prc-SegmentedControl-Text-7S2y2 segmentedControl-text" data-text="Blame">Blame</div></span></button></li></ul><div class="d-none"></div><div class="react-code-size-details-in-header CodeSizeDetails-module__Box__VcD6l"><div class="text-mono CodeSizeDetails-module__Box_1__GVxQL"><div data-testid="blob-size" class="CodeSizeDetails-module__Truncate_1__lE93V prc-Truncate-Truncate-2G1eo" data-inline="true" title="73.8 KB" style="--truncate-max-width:100%"><span>999 lines (804 loc) · 73.8 KB</span></div></div></div></div><div class="BlobViewHeader-module__Box_3__ng6v2"><div class="d-none"></div><div class="react-blob-header-edit-and-raw-actions BlobViewHeader-module__Box_4__J4Y4W"><div class="d-none"></div><div class="prc-ButtonGroup-ButtonGroup-vFUrY" data-component="ButtonGroup"><div class="prc-ButtonGroup-Item-PqvDl"><a data-component="LinkButton" href="https://github.com/nimbice/Posh-ACME/raw/refs/heads/main/CHANGELOG.md" data-testid="raw-button" class="prc-Button-ButtonBase-9n-Xk LinkButton-module__linkButton__nFnov BlobViewHeader-module__LinkButton__X9kx2" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default"><span data-component="buttonContent" data-align="center" class="prc-Button-ButtonContent-Iohp5"><span data-component="text" class="prc-Button-Label-FWkx3">Raw</span></span></a></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="copy-raw-button" class="prc-Button-ButtonBase-9n-Xk prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_qaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-copy" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_qaucpala9lik5_">Copy raw file</span></div><div class="prc-ButtonGroup-Item-PqvDl"><button data-component="IconButton" type="button" data-testid="download-raw-button" class="prc-Button-ButtonBase-9n-Xk BlobViewHeader-module__downloadButton__ef459 prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="default" aria-labelledby="_R_eaucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-download" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M2.75 14A1.75 1.75 0 0 1 1 12.25v-2.5a.75.75 0 0 1 1.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 0 0 .25-.25v-2.5a.75.75 0 0 1 1.5 0v2.5A1.75 1.75 0 0 1 13.25 14Z"></path><path d="M7.25 7.689V2a.75.75 0 0 1 1.5 0v5.689l1.97-1.969a.749.749 0 1 1 1.06 1.06l-3.25 3.25a.749.749 0 0 1-1.06 0L4.22 6.78a.749.749 0 1 1 1.06-1.06l1.97 1.969Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_eaucpala9lik5_">Download raw file</span></div></div></div><button data-component="IconButton" type="button" aria-pressed="false" class="prc-Button-ButtonBase-9n-Xk tmp-mr-2 TableOfContents-module__IconButton__jrlNM prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_3ucpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-list-unordered" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M5.75 2.5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5Zm0 5h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1 0-1.5ZM2 14a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm1-6a1 1 0 1 1-2 0 1 1 0 0 1 2 0ZM2 4a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="n" data-component="Tooltip" aria-hidden="true" id="_R_3ucpala9lik5_">Outline</span><div class="react-blob-header-edit-and-raw-actions-combined"><button data-component="IconButton" type="button" title="More file actions" data-testid="more-file-actions-button" aria-haspopup="true" aria-expanded="false" tabindex="0" class="prc-Button-ButtonBase-9n-Xk js-blob-dropdown-click BlobViewHeader-module__IconButton__XrMQY prc-Button-IconButton-fyge7" data-loading="false" data-no-visuals="true" data-size="small" data-variant="invisible" aria-labelledby="_R_fkecpala9lik5_" id="_R_kecpala9lik5_"><svg data-component="Octicon" aria-hidden="true" focusable="false" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" width="16" height="16" fill="currentColor" display="inline-block" overflow="visible" style="vertical-align:text-bottom"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg></button><span class="prc-TooltipV2-Tooltip-tLeuB" data-direction="nw" data-component="Tooltip" aria-hidden="true" id="_R_fkecpala9lik5_">Edit and raw actions</span></div></div></div></div><div></div></div><div class="BlobViewContent-module__blobContentWrapper__JS0W6"><section aria-labelledby="file-name-id-wide file-name-id-mobile" class="BlobContent-module__blobContentSection__VOgZq BlobContent-module__blobContentSectionMarkdown__mPLOK" style="margin-top:46px"><div class="js-snippet-clipboard-copy-unpositioned BlobContent-module__markdownBlob__T8jpG" data-hpc="true" containertiming="hpc"><article class="markdown-body entry-content container-lg" itemprop="text"><div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.34.0 (2026-08-23)</h2><a id="user-content-4340-2026-08-23" class="anchor" aria-label="Permalink: 4.34.0 (2026-08-23)" href="#4340-2026-08-23"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS Plugins
<ul dir="auto">
<li><a href="https://www.spaceship.com/" rel="nofollow">Spaceship</a> (#678)</li>
<li><a href="https://www.godaddy.com" rel="nofollow">GoDaddyV3</a> for use with new V3 API (#686)</li>
<li><a href="https://mijn.host" rel="nofollow">MijnHost</a> (#675) (Thanks @j81blog)</li>
<li><a href="https://www.infomaniak.com" rel="nofollow">InfomaniakV2</a> (#689) (Thanks @Sundypha)</li>
<li><a href="https://www.hosting.nl/" rel="nofollow">HostingNL</a> (684) (Thanks @Tim81)</li>
</ul>
</li>
<li>Fixed Gandi API endpoint URL which recently changed. It is now a configurable parameter as well. (#682)</li>
<li>Fixed Regru compatibility with API 2 (#687) (Thanks @kropachev)</li>
<li>Fixed a number of GCloud issues:
<ul dir="auto">
<li>Now works against accounts with many zones (#688)</li>
<li>Fixed future dns-persist-01 support</li>
<li>GCProjectId may now be a comma-delimited string (or string array as before)</li>
<li>Better error handling</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.33.1 (2026-06-16)</h2><a id="user-content-4331-2026-06-16" class="anchor" aria-label="Permalink: 4.33.1 (2026-06-16)" href="#4331-2026-06-16"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed parameter validation errors on renewal due to DnsVariant parameter being empty (#679)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.33.0 (2026-06-09)</h2><a id="user-content-4330-2026-06-09" class="anchor" aria-label="Permalink: 4.33.0 (2026-06-09)" href="#4330-2026-06-09"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added preliminary support for <code>dns-account-01</code> challenge type based on <a href="https://datatracker.ietf.org/doc/draft-ietf-acme-dns-account-label/03/" rel="nofollow">draft-ietf-acme-dns-account-label-03</a>.
<ul dir="auto">
<li>New <code>-DnsVariant</code> parameter in various Order and Challenge related functions.</li>
<li>New <code>Get-DnsAcctLabel</code> utility function</li>
</ul>
</li>
<li>New <code>-UsePfxDerEncoding</code> to <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code> which changes the encoding within generated PFX files from BER to DER. This may be necessary for compatibility with some applications, libraries, or services that have deprecated BER support. (#674)</li>
<li>New <a href="https://cloud.hostup.se/" rel="nofollow">HostUp</a> plugin (#663) (Thanks @itssimple)</li>
<li>Cloudflare: Fixed a bug with TXT records containing quotes and did some light refactoring</li>
<li>GoDaddy: Added support for corporate (Brandsight) API access which requires a Customer ID value. (#660) (Thanks @vertras)</li>
<li>GoDaddy: Fixed support for TXT records containing quotes</li>
<li>Namecheap: Reduced required API permissions for delegated corporate accounts to just <code>domains.dns.*</code> (#672)</li>
<li>Namecheap: Added Sandbox support and better debug logging</li>
<li>Namecheap: Fixed TXT records containing quotes and apex record support</li>
<li>AutoDNS: Fixed string formatting error when using a password containing curly braces (#671)</li>
<li>Fixed a PowerShell 5.1 specific bug in <code>Publish-DnsPersistChallenge</code> and <code>Unpublish-DnsPersistChallenge</code></li>
<li>Disabled PowerShell native debug logging on low level ACME calls which is now way more verbose in 7.6 and was duplicating the module specific logging.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.32.0 (2026-03-29)</h2><a id="user-content-4320-2026-03-29" class="anchor" aria-label="Permalink: 4.32.0 (2026-03-29)" href="#4320-2026-03-29"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New <a href="https://dnsexit.com/" rel="nofollow">DNSExit</a> plugin (#668) (Thanks @joxdev13)</li>
<li>Preliminary support for <a href="https://datatracker.ietf.org/doc/draft-ietf-acme-dns-persist/" rel="nofollow">dns-persist-01</a>
<ul dir="auto">
<li>Adds functions <code>Publish-DnsPersistChallenge</code> and <code>Unpublish-DnsPersistChallenge</code>. These are subject to change while the spec is still in a draft state.</li>
<li>I wanted to get these released early so folks can start testing the DNS plugins with them. No other core module changes have been added to support the cert workflow for this challenge type yet.</li>
<li>It is <strong>highly</strong> recommended to test these functions using your preferred DNS plugin. I suspect there are some bugs in some of the plugins that might surface because they have only been tested creating ACME challenge TXT records until now. Please submit issues for plugins that have problems.</li>
</ul>
</li>
<li>Fixed bug in Infoblox plugin that caused errors when TxtValue required URL escaping</li>
<li>Added better error handling in <code>Get-PAPluginArgs</code> when decrypting encrypted args fails (#654)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Potentially Breaking Change</h3><a id="user-content-potentially-breaking-change" class="anchor" aria-label="Permalink: Potentially Breaking Change" href="#potentially-breaking-change"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Generated CSRs no longer include the Enhanced Key Usage (EKU) extension.
<ul dir="auto">
<li>This is a fix for CAs that have started rejecting CSRs containing the Client Authentication EKU such as <a href="https://pki.goog/updates/may2025-clientauth.html" rel="nofollow">Google</a> due to its deprecation across all public CAs.</li>
<li>This change has been tested successfully against all known free public ACME CAs. The resulting certs still contain the EKU extension, but which EKUs get added is dependent on the CA as it has always been.</li>
<li>However, there are many commercial and private CAs I was unable to test against which is why this <em>might</em> be a breaking change for them. PLEASE test if you're not using one of the free public ACME CAs.</li>
<li>If for some reason your preferred CA rejects the new CSRs, you may always fall back to supplying your own CSR using the <code>-CSRPath</code> param in many of the functions.</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.31.1 (2026-02-07)</h2><a id="user-content-4311-2026-02-07" class="anchor" aria-label="Permalink: 4.31.1 (2026-02-07)" href="#4311-2026-02-07"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed bug in CSR generation for IP address certs. IPs will no longer be added to CSR Common Name. If an IP address is the "MainDomain" of the order, the CSR CN will be empty. (#658)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.31.0 (2026-01-21)</h2><a id="user-content-4310-2026-01-21" class="anchor" aria-label="Permalink: 4.31.0 (2026-01-21)" href="#4310-2026-01-21"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New <a href="https://technitium.com/dns/" rel="nofollow">Technitium DNS</a> plugin. (#653) (Thanks @shalafi99)</li>
<li>Added <code>CSR</code> property to the output of <code>Get-PACertificate</code> which is the path to the CSR file used for the request. (#650) (Thanks @skyblaster)</li>
<li>Fixed bug in HetznerCloud plugin due to duplicate ErrorAction param use (#656)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.30.1 (2025-11-18)</h2><a id="user-content-4301-2025-11-18" class="anchor" aria-label="Permalink: 4.30.1 (2025-11-18)" href="#4301-2025-11-18"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed Simply and SimplyCom plugins which now require trailing slashes to API endpoints. (#646) (Thanks @tomsommer)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.30.0 (2025-11-13)</h2><a id="user-content-4300-2025-11-13" class="anchor" aria-label="Permalink: 4.30.0 (2025-11-13)" href="#4300-2025-11-13"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New <a href="https://www.hetzner.com/" rel="nofollow">HetznerCloud</a> plugin (#642) (Thanks @humnose)
<ul dir="auto">
<li>This is for Hetzner users who have migrated their zones from the legacy "DNS Console" to the new "Hetzner Console". NOTE: New API tokens are needed.</li>
</ul>
</li>
<li>Added <code>AZArcAgentAPIVersion</code> param for Azure IMDS parameter set (#636) (Thanks @semics-tech)
<ul dir="auto">
<li>This may be necessary systems running older versions of the Azure Managed Identity Agent that don't work with the default version identifier.</li>
</ul>
</li>
<li>Added <code>ACTALIS_PROD</code> to the list of well-known directory shortcuts. They've also been added to the ACME CA Comparison guide.</li>
<li>Removed <code>BUYPASS_PROD</code> and <code>BUYPASS_TEST</code> from the list of well-known directory shortcuts since they are no longer in operation.</li>
<li>Removed a workaround for a BuyPass server bug which is no longer necessary.</li>
<li>Fixed Windows plugin breaks when not using WinUseSsl or WinSkipCACheck switches (#637) (Thanks @jmpederson1)</li>
<li>Fixed PS 5.1 compat with DeSEC and EuroDNSReseller by removing -Depth param from ConvertFrom-Json calls (#643)</li>
<li>Fixed null ref errors in CoreNetworks plugin when no matching zone found. Added additional debug logs. (#616)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.29.3 (2025-07-24)</h2><a id="user-content-4293-2025-07-24" class="anchor" aria-label="Permalink: 4.29.3 (2025-07-24)" href="#4293-2025-07-24"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>The current ACME server directory endpoint is now refreshed on module import to ensure server changes are reflected before actions are performed. If the previously used ACME server is unreachable, a warning is thrown and previously cached data is used.
<ul dir="auto">
<li>This should fix anyone who is getting 404 errors when renewing Let's Encrypt certs due to an unannounced change to their ARI endpoint. Users can also fix this problem without upgrading by running <code>Get-PAServer -Refresh</code>.</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.29.2 (2025-07-15)</h2><a id="user-content-4292-2025-07-15" class="anchor" aria-label="Permalink: 4.29.2 (2025-07-15)" href="#4292-2025-07-15"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed param set resolution error with New-PACertificate when using CSRPath/CSRString params (#629)</li>
<li>Added workaround for non-compliant order response from KeyFactor ACME provider (#626)</li>
<li>Added additional logging to DuckDNS plugin (#628)</li>
<li>Tweaked debug output for ACME responses for better human readability</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.29.1 (2025-06-26)</h2><a id="user-content-4291-2025-06-26" class="anchor" aria-label="Permalink: 4.29.1 (2025-06-26)" href="#4291-2025-06-26"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix Route53 plugin when used with AWS Tools for PowerShell 5.x (#627)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.29.0 (2025-06-25)</h2><a id="user-content-4290-2025-06-25" class="anchor" aria-label="Permalink: 4.29.0 (2025-06-25)" href="#4290-2025-06-25"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS Plugins
<ul dir="auto">
<li><a href="https://www.netcup.com" rel="nofollow">Netcup</a> (#602)</li>
<li><a href="https://www.transip.nl" rel="nofollow">TransIP</a> (#622) (Thanks @Tim81)</li>
</ul>
</li>
<li>Added <code>-IgnoreContact</code> switch to <code>Set-PAServer</code> (#619)
<ul dir="auto">
<li>ALL USERS of LET'S ENCRYPT, this switch works around a bug that causes a new account to be created for every renewal after LE shut down their automated email warning service.</li>
<li>This option causes the module to ignore any <code>-Contact</code> parameters in functions that support it when using the associated server.</li>
<li>It will be enabled by default on new installs that use Let's Encrypt. But existing users will need to manually enable it <em>OR</em> simply stop using the <code>-Contact</code> parameter in your scripts when using Let's Encrypt ACME endpoints.</li>
</ul>
</li>
<li>Added AZAccessTokenSecure param for Azure plugin (#618)</li>
<li>Added WinSkipCACheck switch to Windows plugin (#613)</li>
<li>Added WinNoCimSession switch to Windows plugin (#600) (Thanks @rhochmayr)</li>
<li>Fix: Changing an order's PfxPass no longer shows the new value in Verbose output (#604)</li>
<li>Fix: New-PACertificate no longer shows plaintext PfxPass in debug log (#604)</li>
<li>Fixed a bug in <code>New-PACertificate</code> that would unnecessarily create a new order when an existing unfinished order could have been continued</li>
<li>Fixed a couple minor bugs related to switching profiles when creating new orders that match existing orders.</li>
<li>Fix: Added a workaround for non-compliant order response from GoDaddy's ACME implementation (#611)</li>
<li>Fixed PowerDNS plugin when using limited API key that doesn't have access to all hosted zones (#617) (Thanks @joachimcarrein)</li>
<li>Removed the Warning message when creating a new ACME account with no <code>-Contact</code> parameter.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.28.0 (2025-02-08)</h2><a id="user-content-4280-2025-02-08" class="anchor" aria-label="Permalink: 4.28.0 (2025-02-08)" href="#4280-2025-02-08"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New <a href="https://efficientip.com/products/solidserver-ddi/" rel="nofollow">efficient iP SOLIDserver DDI</a> plugin. Thanks @jamiekowalczik for the initial PR and @alexissavin for providing a test platform and API guidance.</li>
<li>Experimental support for the new <a href="https://datatracker.ietf.org/doc/draft-aaron-acme-profiles/" rel="nofollow">ACME Profiles</a> extension. This is still a very early draft standard and subject to change, but Let's Encrypt is already rolling out support this year as part of their short-lived certificates initiative. More info <a href="https://letsencrypt.org/2025/01/09/acme-profiles/" rel="nofollow">here</a>.</li>
<li>Fixed Route53 plugin when used with accounts that have many hosted zones. (#593)</li>
<li>Fixed a bug with DeSEC plugin that was caused by the previous fix for #584. (#598)</li>
<li>Added better debug logging for DeSEC plugin.</li>
<li>Azure cert thumbprint auth now works on Linux for certs in the "CurrentUser" store. (Thanks @Eric2XU)</li>
<li>Fixed a bug with Azure cert thumbprint auth on Windows that could throw errors when using certificates with non-exportable private keys.</li>
<li>Added better debug logging for Azure plugin.</li>
<li>AcmeException objects thrown by the module now include the lower level HTTP response exception as an InnerException.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.27.0 (2025-01-08)</h2><a id="user-content-4270-2025-01-08" class="anchor" aria-label="Permalink: 4.27.0 (2025-01-08)" href="#4270-2025-01-08"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS Plugins
<ul dir="auto">
<li><a href="https://www.inwx.de/" rel="nofollow">INWX</a> (Thanks @andreashaerter)</li>
<li><a href="https://www.eurodns.com/" rel="nofollow">EuroDNSReseller</a> Check the guide on this one. It's only currently usable by reseller partners of EuroDNS and not direct EuroDNS customers. (Thanks @zoryatix)</li>
</ul>
</li>
<li>Fixed WEDOS plugin to handle different response types for dns-domains-list API call (#579)</li>
<li>Publish-Challenge and Unpublish-Challenge now strip trailing <code>.</code> chars from the RecordName they pass to plugins in order to make edge-case parsing more predictable.</li>
<li>Added additional ARI related error handling in New-PAOrder to more gracefully handle problems with the <code>replaces</code> field. (#587)</li>
<li>Added additional error handling in the config import process to better deal with unexpected config states. (#587)</li>
<li>Fixed a bug in the plugin development guide code that suggests how to parse short names from a RecordName and ZoneName value. The bug wouldn't correctly parse the short name in FQDNs that contained more than one instance of the zone name. (#584)</li>
<li>Fixed all of the plugins that had implemented the bugged short name parsing algorithm.
<ul dir="auto">
<li>Active24</li>
<li>Aliyun</li>
<li>All-Inkl</li>
<li>Aurora</li>
<li>AutoDNS</li>
<li>Azure</li>
<li>BlueCat</li>
<li>Bunny</li>
<li>ClouDNS</li>
<li>Combell</li>
<li>Constellix</li>
<li>CoreNetworks</li>
<li>DMEasy</li>
<li>DNSPod</li>
<li>DNSimple</li>
<li>DOcean</li>
<li>DeSEC</li>
<li>Domeneshop</li>
<li>EasyDNS</li>
<li>Easyname</li>
<li>FreeDNS</li>
<li>Gandi</li>
<li>GoDaddy</li>
<li>Hetzner</li>
<li>IBMSoftLayer</li>
<li>ISPConfig</li>
<li>Infomaniak</li>
<li>Linode</li>
<li>Loopia</li>
<li>NameCom</li>
<li>NameSilo</li>
<li>Namecheap</li>
<li>OVH</li>
<li>OnlineNet</li>
<li>PointDNS</li>
<li>Porkbun</li>
<li>PortsManagement</li>
<li>Regru</li>
<li>Simply</li>
<li>SimplyCom</li>
<li>TencentDNS</li>
<li>TotalUptime</li>
<li>WEDOS</li>
<li>WebsupportSK</li>
<li>Windows</li>
<li>Yandex</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.26.0 (2024-11-01)</h2><a id="user-content-4260-2024-11-01" class="anchor" aria-label="Permalink: 4.26.0 (2024-11-01)" href="#4260-2024-11-01"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugin <a href="https://challenges.addr.tools/" rel="nofollow">AddrTools</a> (#572)</li>
<li>Porkbun plugin updated with new API endpoint. Vendor decommissioning old endpoint on 2024-12-01. Please upgrade before then. (#570)</li>
<li>Porkbun plugin added retry mechanic to deal with rate limiting errors.</li>
<li>Fixed ARI related date parsing bug when using PowerShell 7+. (#578)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.25.1 (2024-09-02)</h2><a id="user-content-4251-2024-09-02" class="anchor" aria-label="Permalink: 4.25.1 (2024-09-02)" href="#4251-2024-09-02"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix Azure IMDS auth for Arc-enabled servers</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.25.0 (2024-08-18)</h2><a id="user-content-4250-2024-08-18" class="anchor" aria-label="Permalink: 4.25.0 (2024-08-18)" href="#4250-2024-08-18"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugins
<ul dir="auto">
<li><a href="https://dnspod.com/" rel="nofollow">TencentDNS</a> which is a new plugin for DNSPod that uses the Tencent Cloud API which will eventually be required when the old DNSPod API is terminated. (#553) (Thanks @xiaotiannet)</li>
<li><a href="https://www.scaleway.com/en/domains-and-dns/" rel="nofollow">OnlineNet</a> which is Scaleway's legacy DNS API managed through <code>console.online.net</code>. (#557)</li>
</ul>
</li>
<li>Gandi plugin now supports Personal Access Tokens (PAT) auth in addition to legacy API Keys (#554)</li>
<li>NameCom plugin now has better error handling and debug logs. NameCom users with 2FA enabled should also review the user guide about a setting that could break API access. (#556)</li>
<li>Minor logging fix for Active24 plugin.</li>
<li>Fixed a bug with ARI implementation that would fail renewals when the ACME server believes the replaced cert had already been replaced. (#560)</li>
<li>Fixed a bug with ARI implementation that would throw errors when the cert being replaced did not contain an AKI extention. (#561)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.24.0 (2024-06-19)</h2><a id="user-content-4240-2024-06-19" class="anchor" aria-label="Permalink: 4.24.0 (2024-06-19)" href="#4240-2024-06-19"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>DomainOffensive plugin updated with new API root and documentation links. (Thanks @henrikalves)</li>
<li>Added <a href="https://datatracker.ietf.org/doc/draft-ietf-acme-ari/" rel="nofollow">ARI (ACME Renewal Information)</a> support based on draft 04. This should be considered experimental until the RFC is finalized.
<ul dir="auto">
<li><code>ARIId</code> and <code>Serial</code> fields have been added to the output of <code>Get-PACertificate</code></li>
<li><code>DisableARI</code> switch added to <code>Set-PAServer</code> which disables ARI support for the server even it would otherwise be supported. This will primarily be useful if the ARI draft changes enough to break the current support and CAs update their implementations before the module can be updated. It may also be useful for providers with existing ARI support from an older unsupported draft.</li>
<li><code>ReplacesCert</code> parameter added to <code>New-PAOrder</code> which takes an ARIId string as returned by <code>Get-PACertificate</code>. This will be ignored if the current ACME server doesn't support ARI or support has been explicitly disabled via <code>Set-PAServer</code>.</li>
<li>Order refreshes now perform an ARI check if supported and not disabled. The <code>RenewAfter</code> field is updated if the response indicates it is necessary.</li>
<li><code>Submit-Renewal</code> now triggers an order refresh if ARI is supported and not disabled.</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.23.1 (2024-05-23)</h2><a id="user-content-4231-2024-05-23" class="anchor" aria-label="Permalink: 4.23.1 (2024-05-23)" href="#4231-2024-05-23"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix DNSimple plugin not properly ignoring 404 API errors on PowerShell 5.1 (#549)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.23.0 (2024-05-04)</h2><a id="user-content-4230-2024-05-04" class="anchor" aria-label="Permalink: 4.23.0 (2024-05-04)" href="#4230-2024-05-04"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added support for DNSimple user tokens which should allow for certs with names that span domains in multiple accounts.</li>
<li>Added warning in GoDaddy guide about newly imposed limits on API access. (Thanks @webprofusion-chrisc)</li>
<li>Fixed DNSimple plugin not removing challenge records (#548).</li>
<li>Fixed cascading errors on public functions when running with little or no existing config. (#544)</li>
<li>Fixed OVH plugin on PowerShell 5.1 by removing an accidentally added ternary operator. (#545) (Thanks @joshooaj)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.22.0 (2024-04-12)</h2><a id="user-content-4220-2024-04-12" class="anchor" aria-label="Permalink: 4.22.0 (2024-04-12)" href="#4220-2024-04-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugin <a href="https://www.websupport.sk/?ref=NTIqFFo7Rg" rel="nofollow">WebsupportSK</a>. This will be useful to Active24 users who have been migrated to the new provider.</li>
<li>Added additional debug logging for Active24 plugin.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.21.0 (2024-03-08)</h2><a id="user-content-4210-2024-03-08" class="anchor" aria-label="Permalink: 4.21.0 (2024-03-08)" href="#4210-2024-03-08"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugin <a href="https://www.wedos.com/zone/" rel="nofollow">WEDOS</a></li>
<li>Fixed OVH bug that prevented record creation at a zone apex most common when using DNS Alias support. Also added doc warning about time skew and better debug logging. (#535)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.20.0 (2023-12-12)</h2><a id="user-content-4200-2023-12-12" class="anchor" aria-label="Permalink: 4.20.0 (2023-12-12)" href="#4200-2023-12-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugin <a href="https://www.powerdns.com/powerdns-authoritative-server" rel="nofollow">PowerDNS</a></li>
<li>Fixed duplicate identifiers in the <code>Domain</code> parameter causing errors with some ACME servers. Identifiers will now be deduplicated prior to being saved and sent to the ACME server. (#517)</li>
<li>Added <code>WSHDelayAfterStart</code> param to the WebSelfHost plugin which adds a configurable delay between when the challenge listener starts up and when it asks the ACME server to validate the challenges. (#518)</li>
<li>Orders where the MainDomain is longer than 64 characters will not include a CN value in the Subject field of the certificate request sent to the ACME server. CNs longer than 64 characters were already being rejected by some CAs like Let's Encrypt because the x509 spec doesn't allow for it. <a href="https://community.letsencrypt.org/t/simplifying-issuance-for-very-long-domain-names/207924" rel="nofollow">More Info</a></li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.19.0 (2023-08-26)</h2><a id="user-content-4190-2023-08-26" class="anchor" aria-label="Permalink: 4.19.0 (2023-08-26)" href="#4190-2023-08-26"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugins
<ul dir="auto">
<li><a href="https://dns.he.net/" rel="nofollow">HurricaneElectricDyn</a> This is an alternative to the existing <code>HurricaneElectric</code> plugin that uses the DynDNS API instead of web scraping. (Thanks @jbrunink)</li>
<li><a href="https://www.zoneedit.com/" rel="nofollow">ZoneEdit</a> (#495)</li>
</ul>
</li>
<li>The <code>CSRPath</code> parameter in <code>New-PAOrder</code> and <code>New-PACertificate</code> will now accept the raw string contents of a CSR file instead of just the path to a file. (#503)</li>
<li>The <code>Simply</code> plugin has been renamed to <code>SimplyCom</code> at the request of the provider. The new version is exactly the same. The old version will remain until the next major release. Users should update their renewal configs to use the new version to prevent future breakage. <code>Set-PAOrder -Plugin SimplyCom</code></li>
<li>Added a workaround to a temporary problem with the Simply.com API in case the issue pops up again. (#502)</li>
<li>The <code>Route53</code> plugin now uses IMDSv2 when using the IAM Role support. (#509)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.18.0 (2023-06-28)</h2><a id="user-content-4180-2023-06-28" class="anchor" aria-label="Permalink: 4.18.0 (2023-06-28)" href="#4180-2023-06-28"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>The <code>POSHACME_HOME</code> environment variable now supports Windows-style (surrounded by <code>%</code>) environment variable expansion. (#497)
<ul dir="auto">
<li>So you can set the value to <code>%ProgramData%\Posh-ACME</code> instead of needing to set it explicitly to <code>C:\ProgramData\Posh-ACME</code> for example.</li>
<li>NOTE: This requires Windows-style environment variable strings even on non-Windows OSes.</li>
</ul>
</li>
<li>The Azure plugin no longer tries to re-use cached authentication tokens when using the <code>AZAccessToken</code> parameter set. (#498)</li>
<li>Fixed a bug with the Azure plugin that broke authentication when submitting multiple orders with different credentials from different tenants. (#498)</li>
<li>Fixed a problem using Posh-ACME within AWS Lambda due to non-standard dotnet runtime assembly configs. (#418) (Thanks @garthmccormack)
<ul dir="auto">
<li>This fix involved changing the <code>RevocationReasons</code> enum from a .NET type to a PowerShell native enum.</li>
<li>The change constitutes a minor breaking change which makes the enum no longer accessible from outside the module's context, but tab completion and string converted values for the <code>Revoke-PACertificate -Reason</code> parameter work exactly the same as before.</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.17.1 (2023-03-29)</h2><a id="user-content-4171-2023-03-29" class="anchor" aria-label="Permalink: 4.17.1 (2023-03-29)" href="#4171-2023-03-29"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed Hetzner plugin for accounts with 100+ zones. (#481) (Thanks @Deutschi)</li>
<li>Fixed RFC2136 plugin ignoring the DDNSNameserver parameter when set. (#485) (Thanks @gvengel)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.17.0 (2023-02-20)</h2><a id="user-content-4170-2023-02-20" class="anchor" aria-label="Permalink: 4.17.0 (2023-02-20)" href="#4170-2023-02-20"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugins
<ul dir="auto">
<li><a href="https://domains.google/" rel="nofollow">Google Domains</a> This should be considered experimental while the Google Domains ACME API is still in testing. (Thanks @webprofusion-chrisc)</li>
<li><a href="https://www.ionos.de/" rel="nofollow">IONOS</a> (Thanks @RLcyberTech)</li>
<li>SSHProxy sends update requests via SSH to another server which is able to do dynamic updates against your chosen DNS provider. (Thanks @bretgiddings)</li>
</ul>
</li>
<li>The <code>DDNSNameserver</code> parameter is no longer mandatory in the RFC2136 plugin which will make nsupdate try to use whatever primary nameserver is returned from an SOA query.</li>
<li>Added Basic authentication support to the AcmeDns plugin which should allow it to be used against endpoints that enforce that such as <a href="https://docs.certifytheweb.com/docs/dns/providers/certifydns/" rel="nofollow">Certify DNS</a>.</li>
<li>Added support for plugin parameters that are arrays of SecureString or PSCredential objects.</li>
<li>Fixed PAServer switches getting reset on <code>Set-PAServer</code> with no params (#475)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.16.0 (2022-11-23)</h2><a id="user-content-4160-2022-11-23" class="anchor" aria-label="Permalink: 4.16.0 (2022-11-23)" href="#4160-2022-11-23"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>New DNS plugins
<ul dir="auto">
<li><a href="https://www.active24.cz/" rel="nofollow">Active24</a> (Thanks @pastelka)</li>
<li><a href="https://bunny.net/" rel="nofollow">Bunny.net</a> (Thanks @webprofusion-chrisc)</li>
</ul>
</li>
<li>Added <code>-Subject</code> parameter to <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code> which will override the default x509 Subject field in the certificate request sent to the ACME CA. This can be useful for private CAs that allow for additional attributes in the Subject that public CAs don't.</li>
<li>Fix for undocumented NameSilo API change. (Thanks @rkone)</li>
<li>Fix for All-Inkl plugin that makes the plaintext <code>KasPwd</code> parameter actually send plaintext since All-Inkl has deprecated the SHA1 option.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.15.1 (2022-09-09)</h2><a id="user-content-4151-2022-09-09" class="anchor" aria-label="Permalink: 4.15.1 (2022-09-09)" href="#4151-2022-09-09"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Reverted the embedded BouncyCastle library back to 1.8.8 due to version conflicts with Az.KeyVault in PowerShell 6+. This is temporary while a suitable workaround for version conflicts in other modules is explored.</li>
<li>Fixed Domeneshop plugin when publishing apex TXT records and added more API output to debug messages.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.15.0 (2022-08-26)</h2><a id="user-content-4150-2022-08-26" class="anchor" aria-label="Permalink: 4.15.0 (2022-08-26)" href="#4150-2022-08-26"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>PAOrder objects now have a flag to optionally use modern encryption options on generated PFX files. This will prevent the need to use "legacy" mode when reading the files with OpenSSL 3.x. However, it breaks compatibility with OpenSSL 1.0.x and earlier.
<ul dir="auto">
<li>You can use the <code>-UseModernPfxEncryption</code> flag with <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code>. When used with <code>Set-PAOrder</code>, existing PFX files will be re-written based on the flag's new value.</li>
<li>Use <code>Set-PAOrder -UseModernPfxEncryption:$false</code> to switch back to the default setting.</li>
<li>The default for new orders will likely remain off until Posh-ACME 5.x is released.</li>
</ul>
</li>
<li>Added new DNS plugin <a href="https://portsgroup.com/" rel="nofollow">PortsManagement</a> (Thanks @wemmer)</li>
<li>The GCloud plugin has a new optional parameter, <code>GCProjectId</code> that takes one or more string values. This is only required if the DNS zones to modify don't reside in the same project as the service account referenced by <code>GCKeyFile</code> or they reside in multiple projects. When used, be sure to include all project IDs including the one referenced by <code>GCKeyFile</code>.</li>
<li>Added Google's new free ACME CA to the CA comparison doc</li>
<li>Upgraded the embedded BouncyCastle library to 1.9.0</li>
<li>Fixed UKFast plugin to support paging for accounts with many domains (Thanks @0x4c6565)</li>
<li>Fixed PFX friendly name generation when not provided in the order.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.14.0 (2022-04-12)</h2><a id="user-content-4140-2022-04-12" class="anchor" aria-label="Permalink: 4.14.0 (2022-04-12)" href="#4140-2022-04-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://porkbun.com/" rel="nofollow">Porkbun</a> (Thanks @CaiB)</li>
<li>Added server shortcuts for Google's new ACME CA, GOOGLE_PROD and GOOGLE_STAGE.</li>
<li>Added server shortcuts for SSL.com, SSLCOM_RSA and SSLCOM_ECC.</li>
<li>Added <code>UseAltAccountRefresh</code> switch to <code>Set-PAServer</code> to workaround CAs that don't yet support direct account refreshes such as Google, SSL.com, and DigiCert. (#372) (#394)
<ul dir="auto">
<li>New configs should have this set by default for CAs known to need it. But you will need to explicitly set it on any existing configs for these CAs.</li>
</ul>
</li>
<li>Added <code>LifetimeDays</code> param on <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code> to enable user requested cert lifetimes for ACME CAs that support the feature.
<ul dir="auto">
<li>Google's CA is the only free ACME CA known to currently support this and the order lifetime cannot be changed once it is created. Setting a new value on an existing order will only change the lifetime on subsequent renewals.</li>
</ul>
</li>
<li>Updated Azure plugin to use the latest stable API version.</li>
<li>Updated Azure guide to account for breaking changes in the Az module.</li>
<li>Fixed GoDaddy plugin when using it with delegated sub-zones. (#430)</li>
<li>Fixed <code>New-PAAccount</code> when importing an existing key on CAs that require external account binding.</li>
<li>Reduced the number of account refreshes that happen as part of normal operations.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.13.1 (2022-03-14)</h2><a id="user-content-4131-2022-03-14" class="anchor" aria-label="Permalink: 4.13.1 (2022-03-14)" href="#4131-2022-03-14"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed Loopia plugin after an upstream API change broke it. (Thanks @AlexanderRydberg)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.13.0 (2022-03-07)</h2><a id="user-content-4130-2022-03-07" class="anchor" aria-label="Permalink: 4.13.0 (2022-03-07)" href="#4130-2022-03-07"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.leaseweb.com/" rel="nofollow">LeaseWeb</a></li>
<li>Simply plugin migrated to v2 of the API. No changes should be necessary for existing users.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.12.0 (2022-01-13)</h2><a id="user-content-4120-2022-01-13" class="anchor" aria-label="Permalink: 4.12.0 (2022-01-13)" href="#4120-2022-01-13"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>The WebRoot plugin now supports multiple paths for the <code>WRPath</code> parameter. (#411)</li>
<li>ClouDNS plugin error handling was modified so that invalid credential errors are properly surfaced instead of just throwing generic "zone not found" errors. (#414)</li>
<li>Fixed a potential bug with <code>Submit-OrderFinalize</code> when multiple orders have the same MainDomain property.</li>
<li>Fixed <code>New-PACertificate</code> not properly updating an existing order with updated order params (#412)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.11.0 (2021-11-24)</h2><a id="user-content-4110-2021-11-24" class="anchor" aria-label="Permalink: 4.11.0 (2021-11-24)" href="#4110-2021-11-24"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added <a href="https://devblogs.microsoft.com/powershell/secretmanagement-and-secretstore-are-generally-available/" rel="nofollow">SecretManagement</a> support! See <a href="https://poshac.me/docs/v4/Guides/Using-SecretManagement/" rel="nofollow">this guide</a> for details.</li>
<li>Added new DNS plugins:
<ul dir="auto">
<li><a href="https://www.combell.com/" rel="nofollow">Combell</a> (Thanks @stevenvolckaert)</li>
<li><a href="https://totaluptime.com/solutions/cloud-dns-service/" rel="nofollow">TotalUptime</a> (Thanks @CirotheSilver)</li>
</ul>
</li>
<li><code>Install-PACertificate</code> and the <code>-Install</code> switch on orders will now import associated chain certificates into the Intermediate cert store if they don't already exist. (#397)</li>
<li><code>New-PAOrder</code> will now throw an error if the order object returned by the ACME server matches an existing order with a different name. (#401)</li>
<li>The progress bar for DNS propagation is now disabled by default unless a POSHACME_SHOW_PROGRESS environment variable is defined. A verbose message will be written once per minute as an alternative. (#402)</li>
<li>Added auth token caching to CoreNetworks plugin to avoid getting rate limited. (#403)</li>
<li>Fixed ISPConfig plugin throwing Incorrect datetime value errors when adding records (#404)</li>
<li>Fixed a bug with <code>Submit-Renewal -AllAccounts</code> that would prevent restoring the original active account. (Thanks @markpizz) (#395)</li>
<li>Fixed usage example in EasyDns guide. (Thanks @webprofusion-chrisc) (#407)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.10.0 (2021-10-06)</h2><a id="user-content-4100-2021-10-06" class="anchor" aria-label="Permalink: 4.10.0 (2021-10-06)" href="#4100-2021-10-06"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.core-networks.de/" rel="nofollow">CoreNetworks</a> (Thanks @dwydler)</li>
<li>Fix for Regru plugin bug caused by provider API change (#392)</li>
<li>Fix Submit-Renewal duplicating orders that have a custom name (#393)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.9.0 (2021-09-21)</h2><a id="user-content-490-2021-09-21" class="anchor" aria-label="Permalink: 4.9.0 (2021-09-21)" href="#490-2021-09-21"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.ispconfig.org/" rel="nofollow">ISPConfig</a></li>
<li>Fixed the DOCean plugin when used with accounts that have more than 20 zones. (#384) (Thanks @Xpyder)</li>
<li>Fixed a bug in the DOCean plugin that prevented publishing records against the zone apex.</li>
<li>Fixed a bug using <code>Set-PAOrder -PreferredChain</code> on an existing but expired order that was recently upgraded from Posh-ACME 3.x.</li>
<li>Fixed renewal window calculation for certs that have lifetimes shorter or longer than 90 days. (#382) (Thanks @lookcloser)
<ul dir="auto">
<li>Due to the bug, certs with lifetimes longer than 90 days would renew early and certs with lifetimes shorter than 90 days would renew late or potentially not at all. Because the renewal window is calculated and saved at finalization time, the new module version won't fix the value on existing orders. It will only fix future orders/renewals.</li>
<li>If you want to scan for and fix any orders that might have been affected by this bug, you can use the script posted here: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="999733071" data-permission-text="Title is private" data-url="https://github.com/rmbolger/Posh-ACME/issues/382" data-hovercard-type="issue" data-hovercard-url="/rmbolger/Posh-ACME/issues/382/hovercard?comment_id=922128237&amp;comment_type=issue_comment" href="https://github.com/rmbolger/Posh-ACME/issues/382#issuecomment-922128237">rmbolger#382 (comment)</a></li>
</ul>
</li>
<li>Fixed a benign bug with object serialization in PS 5.1 that was saving the dynamic attributes on server/account/order objects.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.8.1 (2021-09-12)</h2><a id="user-content-481-2021-09-12" class="anchor" aria-label="Permalink: 4.8.1 (2021-09-12)" href="#481-2021-09-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed a bug introduced in 4.7.0 that broke <code>Set-PAAccount -UseAltPluginEncryption</code> preventing plugin args for orders from being properly re-encrypted.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.8.0 (2021-09-09)</h2><a id="user-content-480-2021-09-09" class="anchor" aria-label="Permalink: 4.8.0 (2021-09-09)" href="#480-2021-09-09"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Documentation Revamp
<ul dir="auto">
<li><a href="https://poshac.me/docs" rel="nofollow">https://poshac.me/docs</a> is a new dedicated website for Posh-ACME documentation. Existing guides and tutorials have been migrated there from the Github wiki. The site is currently generated using the Markdown files in the <code>docs</code> folder in the main project repository by <a href="https://www.mkdocs.org/" rel="nofollow">MkDocs</a>. So it should now be easier to contribute fixes and updates.</li>
<li>The native module help is now also generated by <a href="https://github.com/PowerShell/platyPS">platyPS</a> from the Markdown files in <code>docs/Functions</code>.</li>
<li><code>Get-Help &lt;function name&gt; -Online</code> should now open your browser to the appropriate page on the documentation site.</li>
</ul>
</li>
<li>The DeSEC plugin has new <code>DSCToken</code> and <code>DSCTTL</code> params to avoid conflicts with the DNSimple plugin. The old <code>DSToken</code>, <code>DSTokenInsecure</code>, and <code>DSTTL</code> parameters have been deprecated.</li>
<li>"Insecure" plugin parameter sets which include secrets, tokens, or passwords using a standard String instead of a SecureString or PSCredential have been deprecated across all plugins that had them.
<ul dir="auto">
<li>Deprecated means that they will continue to work in Posh-ACME 4.x, but will stop working when 5.0 is released.</li>
<li>If you are currently using a deprecated parameter set, please migrate to a secure one when convenient.</li>
<li>See your plugin's <a href="https://poshac.me/docs/v4/Plugins/" rel="nofollow">usage guide</a> for more information.</li>
<li>For help finding deprecated parameters in your config, see <a href="https://poshac.me/docs/v4/Guides/Find-Deprecated-PluginArgs/" rel="nofollow">this guide</a></li>
</ul>
</li>
<li>The following plugins have added new "Secure" parameter sets:
<ul dir="auto">
<li>BlueCat</li>
<li>Cloudflare</li>
<li>DOcean</li>
<li>Dreamhost</li>
<li>Dynu</li>
<li>EasyDNS</li>
<li>GoDaddy</li>
<li>NameCom</li>
<li>Zonomi</li>
</ul>
</li>
<li>A <code>Plugin</code> property has been added to the output objects returned by <code>Get-PAPlugin &lt;Plugin&gt; -Params</code></li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.7.1 (2021-08-28)</h2><a id="user-content-471-2021-08-28" class="anchor" aria-label="Permalink: 4.7.1 (2021-08-28)" href="#471-2021-08-28"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed a parameter binding bug in New-PACertificate that could cause renewals to stall in some cases due to an interactive prompt.</li>
<li>Fixed help for Export-PAAccountKey</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.7.0 (2021-08-24)</h2><a id="user-content-470-2021-08-24" class="anchor" aria-label="Permalink: 4.7.0 (2021-08-24)" href="#470-2021-08-24"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Servers, Accounts, and Orders all now have configurable Names that also determine the name of their associated folders in the config on the filesystem. (#345) This is a fairly large change, but significant effort has been spent implementing it so that dependent scripts will not break.
<ul dir="auto">
<li><strong>Please backup your current config before customizing your object names.</strong> Previous Posh-ACME versions will break trying to read configs with custom names.</li>
<li>All customized names may only use the following characters to avoid cross-platform filesystem compatibility issues: <code>0-9 a-z A-Z - . _ !</code>.</li>
<li>A <code>NewName</code> parameter has been added to <code>Set-PAServer</code>, <code>Set-PAAccount</code>, and <code>Set-PAOrder</code> to change the name of each type of object.</li>
<li>Server related functions now have an optional <code>Name</code> parameter which can be used instead of or in addition to the <code>DirectoryUrl</code> parameter. This includes <code>Get/Remove/Set-PAServer</code>.</li>
<li>If a server doesn't already exist, <code>Set-PAServer</code> will use the <code>-Name</code> parameter for the new server's name. If the server already exists, it is ignored.</li>
<li>Returned server objects now have <code>Name</code> and <code>Folder</code> properties.</li>
<li>Despite being able to customize Server names, you may still only have a single instance of each unique ACME server in your config. This may chang in a future major version.</li>
<li>Account related functions that have an <code>ID</code> parameter now have a <code>Name</code> parameter alias. This includes <code>Get/Remove/Set-PAAccount</code> and <code>Export-PAAccountKey</code>. The ID parameter should be considered deprecated and in future major versions will be replaced by <code>Name</code>.</li>
<li>The <code>ID</code> parameter was added to <code>New-PAAccount</code> to allow setting the customized ID on creation instead of using the server provided default value.</li>
<li>Returned account objects now have a <code>Folder</code> property and the <code>id</code> property now reflects the customizable value.</li>
<li>The <code>id</code> property on account objects is deprecated and will be changed to <code>Name</code> in a future major version.</li>
<li>Order related functions now have an optional <code>Name</code> parameter to distinguish between multiple orders that may have the same <code>MainDomain</code>. This includes <code>Get/Revoke/New-PACertificate</code>, <code>Get/New/Set/Remove-PAOrder</code>, <code>Get-PAPluginArgs</code>, <code>Invoke-HttpChallengeListener</code>, and <code>Submit-Renewal</code>. In most cases, the <code>Name</code> parameter can also be used by itself as a unique identifier for orders.</li>
<li>The <code>Name</code> parameter on <code>New-PACertificate</code> and <code>New-PAOrder</code> allows setting the customized order name on creation instead of using the MainDomain default value.</li>
<li>Returned order objects now have a <code>Name</code> property (not to be confused with <code>FriendlyName</code> which only affects the certificate associated with the order).</li>
<li>Order related error and log messages that previously mentioned the order's MainDomain have been changed to use the order's Name instead.</li>
<li>To retain backwards compatibility with existing 4.x dependent scripts, <code>Get-PAOrder</code> will return the single, most recent order when used with <code>-MainDomain</code> even if there are multiple matching orders. This also affects <code>Get-PACertificate</code> which uses Get-PAOrder under the hood.</li>
<li><code>Set-PAOrder</code>, <code>Revoke-PACertificate</code>, and <code>Remove-PAOrder</code> will throw an error if only <code>MainDomain</code> is specified and it matches multiple orders. Specify the <code>Name</code> parameter as well to ensure a unique order match.</li>
</ul>
</li>
<li>Custom plugins can now be loaded from an alternate filesystem location by creating a <code>POSHACME_PLUGINS</code> environment variable before the module is loaded. The value should be a folder path that contains uniquely named .ps1 plugin files. If any custom plugins have the same name as native plugins, a warning will be thrown and they will not be loaded.</li>
<li>Added <code>New-PAAuthorization</code> which allows the creation of authorization objects outside the context of an order. NOTE: BuyPass is the only free ACME CA that currently supports this feature.</li>
<li>Added a <code>OnlyReturnExisting</code> parameter to <code>New-PAAccount</code> when using an imported key which instructs the ACME server to only return account details if an account already exists for that key.</li>
<li>Added a <code>NoSwitch</code> parameter to <code>Set-PAServer</code> so you can modify the active server without switching to it.</li>
<li>The <code>AllSANs</code> field on PACertificate objects now reflects the SAN list on the actual certificate instead of its associated ACME order (just in case the two lists have divered for some strange reason).</li>
<li>Added missing help on <code>Get-PAPluginArgs</code>.</li>
<li>Default formatting for PAServer objects has been tweaked to show more useful info.</li>
<li>Default formatting for PAOrder object now includes <code>Name</code> and has removed <code>OSCPMustStaple</code>.</li>
<li>The <code>Quiet</code> parameter has been removed from the <code>Get-PAServer -List</code> parameter set because it didn't make sense.</li>
<li>Fixed an example in <code>Remove-PAServer</code> help.</li>
<li>Added workaround for BuyPass bug that prevents some error details from being parsed.</li>
<li>Adjusted support for Account Key Rollover to more closely follow RFC8555 which fixes a bug using it with BuyPass</li>
<li>Changed some logic in <code>Revoke-PACertificate</code> so that it works with BuyPass which doesn't seem to support revocation using the cert's private key.</li>
<li>Orders using an ECC private key will no longer include Key Encipherment in the CSR's keyUsage when submitting an order for finalization. Key Encipherment is not supported for ECDSA certs and some CAs were rejecting the finalization.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.6.0 (2021-07-25)</h2><a id="user-content-460-2021-07-25" class="anchor" aria-label="Permalink: 4.6.0 (2021-07-25)" href="#460-2021-07-25"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li><a href="https://hosting.de/" rel="nofollow">HostingDe</a></li>
<li><a href="https://beget.com/" rel="nofollow">Beget</a></li>
</ul>
</li>
<li>Revoke-PACertificate no longer requires a configured account when using an explicit cert/key (#361)</li>
<li>Fixed Aurora plugin for edge case bug with PowerShell Core (#353)</li>
<li>Fixed DirectoryUrl completers in PS 5.1 when no servers currently exist.</li>
<li>Fixed unauthenticated updates with RFC2136 plugin (#360) (Thanks @dsbibby)</li>
<li>Refactored Simply plugin to be IDN agnostic and redact API keys from logging (#352)</li>
<li>ACME errors from New-PAAccount should be less ugly now.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.5.0 (2021-05-29)</h2><a id="user-content-450-2021-05-29" class="anchor" aria-label="Permalink: 4.5.0 (2021-05-29)" href="#450-2021-05-29"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li>Aurora for <a href="https://pcextreme.nl/" rel="nofollow">PCExtreme</a> (Thanks @j81blog)</li>
<li><a href="https://ukfast.co.uk/" rel="nofollow">UKFast</a> (Thanks @Overglazed)</li>
</ul>
</li>
<li>Added new function <code>Revoke-PACertificate</code> which provides more options for cert revocation including the ability to revoke certs not created with other clients or ACME accounts if you have the private key.</li>
<li>Added <code>ManualNonInteractive</code> switch to the Manual plugin to suppress the interactive prompt after showing the TXT record details that need to be created. (Thanks @hhhuut)</li>
<li>Added additional guidance in the plugin dev guide.</li>
<li>Optimized module load time by pre-caching native plugin details.</li>
<li>Fixed support for IDN domains in Simply plugin (Thanks @Norskov)</li>
<li>Fixed Azure plugin bug when DnsAlias matches the zone apex. (#348)</li>
<li>Fixed Azure plugin to support IMDS auth within Azure Automation. (#349)</li>
<li>Fixed tests for Pester 5.2</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.4.0 (2021-05-03)</h2><a id="user-content-440-2021-05-03" class="anchor" aria-label="Permalink: 4.4.0 (2021-05-03)" href="#440-2021-05-03"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li><a href="https://constellix.com/" rel="nofollow">Constellix</a></li>
<li><a href="https://all-inkl.com/" rel="nofollow">All-Inkl</a> (Thanks @astaerk)</li>
<li><a href="https://www.easyname.com/" rel="nofollow">Easyname</a> (Thanks @codemanat)</li>
</ul>
</li>
<li>Added <code>Folder</code> property to Get-PAOrder output</li>
<li>Added <code>KeyFile</code> parameter to New-PAOrder to allow importing an existing private key</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.3.2 (2021-03-13)</h2><a id="user-content-432-2021-03-13" class="anchor" aria-label="Permalink: 4.3.2 (2021-03-13)" href="#432-2021-03-13"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed New-PACertificate not using the previous order's KeyLength value if it exists and wasn't overridden by an explicit parameter value. (#326)</li>
<li>Fixed <code>Submit-Renewal</code> not sending all previous order parameters to <code>New-PACertificate</code> (#326) (Thanks @juliansiebert)</li>
<li>Fixed module load errors for some environment with older .NET Framework versions.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.3.1 (2021-03-12)</h2><a id="user-content-431-2021-03-12" class="anchor" aria-label="Permalink: 4.3.1 (2021-03-12)" href="#431-2021-03-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed Route53 plugin to check for pre-imported AWS module (#324)</li>
<li>Fixed telemetry ping not respecting DisableTelemetry option in <code>Set-PAServer</code></li>
<li>Telemetry ping no longer uses <code>Start-Job</code> which should avoid errors when running in Azure functions and other scenarios where PowerShell is hosted within another application.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.3.0 (2021-02-24)</h2><a id="user-content-430-2021-02-24" class="anchor" aria-label="Permalink: 4.3.0 (2021-02-24)" href="#430-2021-02-24"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>PreferredChain selection logic has been updated to consider "distance from root" as a way to break ties when the specified CA subject is found in multiple chains. Chains with the CA closer to the root take precedence over ones with it further away. (#315)</li>
<li><code>CFTokenReadAll</code> and <code>CFTokenReadAllInsecure</code> have been removed from the Cloudflare plugin because they are no longer needed. Cloudflare fixed the API bug that made them necessary when using edit tokens scoped to a specific zone or zones. No user action is required if you were previously using these parameters. They will simply be ignored.</li>
<li>HTTP call detail has been changed from Verbose to Debug output in Cloudflare and Route53 plugins.</li>
<li>Fixed CSR handing for CSRs that have no attributes (#317) (Thanks @methorpe)</li>
<li>Fixed Route53 plugin compatibility with older versions of the AWSPowerShell module (#318)</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Deprecation Notice</h3><a id="user-content-deprecation-notice" class="anchor" aria-label="Permalink: Deprecation Notice" href="#deprecation-notice"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">Many plugins have optional parameter sets that use "Insecure" versions of the primary SecureString or PSCredential parameters due to bugs in early versions of PowerShell 6 that prevented using them on non-Windows OSes. Those bugs have been fixed since PowerShell 6.2 and the insecure parameter sets should be considered deprecated and will likely be removed in the next major version (5.x) of Posh-ACME. Individual plugin usage guides will slowly be updated over the course of 4.x to warn about the specific parameter deprecations.</p>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.2.0 (2021-02-01)</h2><a id="user-content-420-2021-02-01" class="anchor" aria-label="Permalink: 4.2.0 (2021-02-01)" href="#420-2021-02-01"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li>Infomaniak (Thanks @Sundypha)</li>
<li>Zilore</li>
</ul>
</li>
<li>Added <code>ACMEUri</code> option to AcmeDns plugin which allows specifying the complete URI instead of just the hostname. (Thanks @AvrumFeldman)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.1.0 (2021-01-18)</h2><a id="user-content-410-2021-01-18" class="anchor" aria-label="Permalink: 4.1.0 (2021-01-18)" href="#410-2021-01-18"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Compatibility updates for RFC2136 plugin (#308)
<ul dir="auto">
<li>Now uses exit code from nsupdate instead of output parsing to determine success and avoid possible language inconsistencies (#307)</li>
<li>Added optional DDNSZone param to avoid initial SOA lookup that breaks in some environments (#307)</li>
</ul>
</li>
<li>Removed UnoEuro plugin because API endpoint is no longer functional. Users should switch to the Simply plugin. (#303)</li>
<li>Moved HTTP call detail from Verbose to Debug output for Infoblox plugin</li>
<li>Fixed partial zone matching bug for Domeneshop plugin (#305)</li>
<li>Fixed <code>Submit-Renewal -AllOrders</code> so it no longer skips invalid or pending orders</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">4.0.0 (2020-12-18)</h2><a id="user-content-400-2020-12-18" class="anchor" aria-label="Permalink: 4.0.0 (2020-12-18)" href="#400-2020-12-18"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<p dir="auto">There is a 3.x to 4.x <a href="https://github.com/rmbolger/Posh-ACME/wiki/Frequently-Asked-Questions-%28FAQ%29#how-do-i-upgrade-from-3x-to-4x">migration guide</a> in the FAQ on the wiki. But no changes should be necessary for users with existing certs that are renewing using <code>Submit-Renewal</code> unless they were also using the <code>-NewKey</code> parameter which has been removed. Orders can now be configured to always generate a new private key using <code>Set-PAOrder -AlwaysNewKey</code>.</p>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">New Features</h3><a id="user-content-new-features" class="anchor" aria-label="Permalink: New Features" href="#new-features"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>The DNS plugin system has been revamped to support both dns-01 and http-01 challenges. (#124)
<ul dir="auto">
<li>All existing DNS plugins have been upgraded to the new plugin format. See the README in the plugins folder for details and instructions on how to upgrade your own custom plugins.</li>
<li>There are two new http-01 challenge plugins called <code>WebRoot</code> and <code>WebSelfHost</code>. See their usage guides for details.</li>
</ul>
</li>
<li>Plugin args are now saved per-order rather than per-account and as JSON rather than XML.
<ul dir="auto">
<li>This has the side effect that new orders using the same plugin(s) as a previous order will no longer reuse the previous args.</li>
<li>Added <code>Get-PAPluginArgs</code> which returns a hashtable with the plugin args associated with the current or specified order. You can use this to retrieve another order's plugin args and use that object with your new order.</li>
<li>Pre-4.x plugin args will be automatically migrated to per-order plugin args the first time an account is selected using <code>Set-PAAccount</code> or on module load for the last selected account. The old file will be backed up with a ".v3" extension in case you need to revert.</li>
</ul>
</li>
<li>Portable, Cross-Platform encryption is now supported for secure plugin parameters on disk and can be configured on a per-account basis. It is based on a 256-bit AES key generated for the account. This makes it possible to migrate a Posh-ACME config between users, machines, or OSes without needing to re-configure secure plugin args. (#150)
<ul dir="auto">
<li>To enable, set the <code>UseAltPluginEncryption</code> switch on <code>New-PAAccount</code> or <code>Set-PAAccount</code>. This will immediately re-encrypt plugin args for all orders associated with the account.</li>
<li>To disable/revert, run <code>Set-PAAccount -UseAltPluginEncryption:$false</code>.</li>
<li>If you believe the encryption key has been compromised, use <code>Set-PAAccount -ResetAltPluginEncryption</code> to generate a new key and re-encrypt everything.</li>
</ul>
</li>
<li><code>Get-PAPlugin</code> is a new function that replaces <code>Get-DnsPlugins</code> and <code>Get-DnsPluginHelp</code>.
<ul dir="auto">
<li>With no parameters, lists all plugins and their details</li>
<li>With a plugin parameter, shows the details for just that plugin</li>
<li>With a plugin and <code>-Help</code>, shows the plugin's help</li>
<li>With a plugin and <code>-Guide</code>, opens the default browser to the plugin's online guide</li>
<li>With a plugin and <code>-Params</code>, displays the plugin-specific parameter sets (#151)</li>
</ul>
</li>
<li>Added <code>AlwaysNewKey</code> switch to <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code>. This flag tells Posh-ACME to always generate a new private key on renewals. The old parameters for key replacement have been removed. (#181)</li>
<li>Added <code>UseSerialValidation</code> switch to <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code>. This flag tells Posh-ACME to process the order's authorization challenges serially rather than in parallel. This is primarily useful for providers like DuckDNS that only allow a single TXT record to be written at a time.</li>
<li>Added <code>Complete-PAOrder</code> which does the final processing steps like downloading the signed cert and updating renewal window for an order that has reached the 'ready' state. This avoids the need to use <code>New-PACertificate</code> when doing custom certificate workflows.</li>
<li>The PfxPass parameter on order objects is now obfuscated when serialized to disk. (#207)</li>
<li>Added <code>PfxPassSecure</code> (SecureString) parameter to <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code> which takes precedence over <code>PfxPass</code> if specified. (#207)</li>
<li>Added <code>DnsAlias</code> and <code>OCSPMustStaple</code> parameters to <code>Set-PAOrder</code>. Changing an order's OCSPMustStaple value will throw a warning that it only affects future certificates generated from the order.</li>
<li>Added <code>Plugin</code>, <code>PluginArgs</code>, <code>DnsAlias</code>, <code>DnsSleep</code>, and <code>ValidationTimeout</code> parameters to <code>New-PAOrder</code>.</li>
<li>The <code>DirectoryUrl</code> parameter in <code>Set-PAServer</code> is now optional. If not specified, it will use the currently active server.</li>
<li>An attempt will now be made to send anonymous telemetry data to the Posh-ACME team when <code>Submit-OrderFinalize</code> is called directly or indirectly.
<ul dir="auto">
<li>The only data sent is the standard HTTP User-Agent header which includes the Posh-ACME version, PowerShell version, and generic OS platform (Windows/Linux/MacOS/Unknown).</li>
<li>This can be disabled per ACME server using a new <code>DisableTelemetry</code> parameter in <code>Set-PAServer</code>.</li>
<li>The data will be used to guide future development decisions in the module.</li>
<li>The same User-Agent header is also sent with all calls to the ACME server which is a requirement of the protocol and can't be disabled.</li>
</ul>
</li>
<li>Added <code>NoRefresh</code> switch to <code>Set-PAServer</code> which prevents a request to the ACME server to update endpoint and nonce info. This is useful for updating local preferences without making a server round-trip.</li>
<li>BUYPASS_PROD and BUYPASS_TEST are now recognized shortcuts for the the buypass.com CA environments when you use <code>Set-PAServer</code>.</li>
<li>ZEROSSL_PROD is now a recognized shortcut for the zerossl.com CA when you use <code>Set-PAServer</code>.</li>
<li>Added tab completion for <code>DirectoryUrl</code> in <code>Set-PAServer</code>.</li>
<li>Added <code>Quiet</code> parameter to <code>Get-PAServer</code> which will prevent warnings if the specified server was not found.</li>
<li><code>Remove-PAServer</code> will now throw a warning instead of an error if the specified server doesn't exist on disk.</li>
<li>Orders can now be passed by pipeline to <code>Submit-ChallengeValidation</code> and <code>Submit-OrderFinalize</code>.</li>
<li>ACME protocol web request details have been moved from Verbose to Debug output and cleaned up so they're easier to follow. Web requests made from plugins will still be in Verbose output for the time being.</li>
<li>Experimental support for IP address identifiers (<a href="https://tools.ietf.org/html/rfc8738" rel="nofollow">RFC 8738</a>) in new orders. This allows you to get a cert for an IP address if your ACME server supports it.</li>
<li>Private keys for Accounts and Certificates can now use ECC P-521 (secp521r1) based keys using the <code>ec-521</code> key length parameter. <em>This requires support at the ACME server level as well.</em></li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Breaking Changes</h3><a id="user-content-breaking-changes" class="anchor" aria-label="Permalink: Breaking Changes" href="#breaking-changes"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Function Changes
<ul dir="auto">
<li><code>Publish-DnsChallenge</code> is now <code>Publish-Challenge</code></li>
<li><code>Unpublish-DnsChallenge</code> is now <code>Unpublish-Challenge</code></li>
<li><code>Save-DnsChallenge</code> is now <code>Save-Challenge</code></li>
<li><code>Get-DnsPlugins</code> and <code>Get-DnsPluginHelp</code> have been replaced by <code>Get-PAPlugin</code></li>
<li><code>Get-PAAuthorizations</code> is now <code>Get-PAAuthorization</code>. The plural function name is still avaialble as an alias but is deprecated and may be removed in a future release.</li>
<li><code>Invoke-HttpChallengeListener</code> is deprecated and may be removed in a future release. Users should migrate to the <code>WebSelfHost</code> plugin.</li>
</ul>
</li>
<li>Parameter Changes
<ul dir="auto">
<li>All <code>DnsPlugin</code> parameters are now <code>Plugin</code> with a <code>DnsPlugin</code> alias for backwards compatibility. The alias should be considered deprecated and may be removed in a future release.</li>
<li>The <code>NoPrefix</code> switch in Publish/Unpublish-Challenge has been replaced with a <code>DnsAlias</code> parameter that will override the <code>Domain</code> parameter if specified. "_acme-challenge." will not be automatically added to the <code>DnsAlias</code> parameter.</li>
<li><code>NewKey</code> has been removed from <code>Submit-Renewal</code></li>
<li><code>NewKey</code>/<code>NewCertKey</code> have been replaced by <code>AlwaysNewKey</code> in <code>New-PACertificate</code> and <code>New-PAOrder</code></li>
<li><code>AlwaysNewKey</code> has been added to <code>Set-PAOrder</code></li>
<li><code>DnsPlugin</code>, <code>PluginArgs</code>, <code>DnsAlias</code>, <code>DnsSleep</code>, <code>ValidationTimeout</code> and <code>Account</code> parameters have been removed from <code>Submit-ChallengeValidation</code>. The account associated with the order must be the currently active account. The rest of the parameters are read directly from the order object and can be modified in advance with <code>Set-PAOrder</code> if necessary.</li>
<li><code>Account</code> parameter has been removed from <code>Submit-OrderFinalize</code>. The account associated with the order must be the currently active account.</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h3 tabindex="-1" class="heading-element" dir="auto">Fixes</h3><a id="user-content-fixes" class="anchor" aria-label="Permalink: Fixes" href="#fixes"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Using <code>Get-PAOrder</code> with <code>-Refresh</code> will no longer throw a terminating error if the ACME server returns an error. It will warn and return the cached copy of the order instead.</li>
<li>Fixed <code>Remove-PAServer</code> not being able to remove a server that is unreachable.</li>
<li><code>Remove-PAServer</code> no longer requires confirmation when there are no cached accounts associated with the specified server in the local config.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.20.0 (2020-11-25)</h2><a id="user-content-3200-2020-11-25" class="anchor" aria-label="Permalink: 3.20.0 (2020-11-25)" href="#3200-2020-11-25"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Azure plugin now supports other Azure cloud environments via the <code>AZEnvironment</code> parameter. Supported values are <code>AzureCloud</code> (Default), <code>AzureUSGovernment</code>, <code>AzureGermanCloud</code>, and <code>AzureChinaCloud</code>. (#293) (Thanks @InKahootz)</li>
<li>Fixed parameter binding and other bugs in Simply plugin. (#294)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.19.0 (2020-11-20)</h2><a id="user-content-3190-2020-11-20" class="anchor" aria-label="Permalink: 3.19.0 (2020-11-20)" href="#3190-2020-11-20"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.simply.com/" rel="nofollow">Simply</a> who recently changed their name from UnoEuro. Existing users of the UnoEuro plugin should migrate to the Simply plugin as soon as possible because the UnoEuro plugin may stop working if they decommission the old API endpoint.</li>
<li>Warnings have been added to the UnoEuro plugin to inform users about migrating to Simply.</li>
<li>Updated DNSPod plugin to work with their recent API changes. Existing users will need to generate a new API key from the management console and update the plugin args for their orders. See the <a href="https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/DNSPod-Readme.md">usage guide</a> for details.</li>
<li>Fixed a bug in <code>New-PAAccount</code> when the account location URI had query parameters. (Thanks @KaiWalter)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.18.1 (2020-11-12)</h2><a id="user-content-3181-2020-11-12" class="anchor" aria-label="Permalink: 3.18.1 (2020-11-12)" href="#3181-2020-11-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Upgraded BouncyCastle to 1.8.8.2 for version parity with Az.KeyVault to prevent module load errors in PowerShell 6+</li>
<li>Fixed DuckDNS plugin file locations in .NET 4.6 fork.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.18.0 (2020-11-07)</h2><a id="user-content-3180-2020-11-07" class="anchor" aria-label="Permalink: 3.18.0 (2020-11-07)" href="#3180-2020-11-07"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.duckdns.org/" rel="nofollow">DuckDNS</a>. Note that due to provider limitations, this plugin can only normally be used for certs with a single name unless you workaround the limitation with custom scripting. See the <a href="https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/DuckDNS-Readme.md">usage guide</a> for details.</li>
<li>Fixed an example in <code>Export-PAAccountKey</code> help.</li>
<li>Added code to detect 4.x configs and gracefully revert in case folks need to downgrade after upgrading to 4.x when it comes out.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.17.0 (2020-10-09)</h2><a id="user-content-3170-2020-10-09" class="anchor" aria-label="Permalink: 3.17.0 (2020-10-09)" href="#3170-2020-10-09"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>NOTE: Let's Encrypt is now <a href="https://community.letsencrypt.org/t/issuing-for-common-rsa-key-sizes-only/133839" rel="nofollow">restricting</a> RSA private key sizes to 2048, 3072, and 4096 for certificates. But Posh-ACME will continue to allow custom key sizes which may still work with other certificate authorities.</li>
<li><code>New-PAAccount</code> and <code>Set-PAAccount -KeyRollover</code> now have a <code>-KeyFile</code> parameter that can be used to import an existing private key instead of generating a new one from scratch.</li>
<li>Added <code>Export-PAAccountKey</code> which can be use to export your ACME account private key as a standard Base64 encoded PEM file.
<ul dir="auto">
<li>For Boulder-based CAs, this can be used to recover lost ACME account configurations if you run <code>New-PAAccount</code> with the <code>-KeyFile</code> parameter and specify the exported key.</li>
</ul>
</li>
<li>Updated Zonomi plugin to support alternative providers who use a compatible API. (#282)</li>
<li>Fixed a bug in OVH plugin that would prevent TXT record deletion in some cases. (#283)</li>
<li>Fixed a bug in many plugins that would prevent TXT record editing when the record name was also the zone root (#280) (Thanks @ShaBangBinBash)</li>
<li>Fixed tutorial syntax error (#277) (Thanks @Leon99)</li>
<li>Fixed errors in <code>Get-PAAuthorizations</code> when returned object has no 'expires' property. (#276) (Thanks @mortenmw)</li>
<li>Changed bad nonce retry message from Debug to Verbose so people using PowerShell's transcript features will see it more easily.</li>
<li>A generic platform value has been added to the user agent string the module sends with its ACME requests.</li>
<li>Tests have been updated for use with Pester v5. Running them in a dedicated PowerShell process is recommended.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.16.0 (2020-08-31)</h2><a id="user-content-3160-2020-08-31" class="anchor" aria-label="Permalink: 3.16.0 (2020-08-31)" href="#3160-2020-08-31"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.namesilo.com" rel="nofollow">NameSilo</a> (Thanks @rkone)</li>
<li>Added Preferred Chain support
<ul dir="auto">
<li>There is a new <code>-PreferredChain</code> parameter on <code>New-PACertificate</code>, <code>New-PAOrder</code>, and <code>Set-PAOrder</code>.</li>
<li>For new or existing orders, you may select an alternate CA chain based on the Issuing CA subject name if alternate chains are offered by the CA.</li>
<li>Example: <code>-PreferredChain 'ISRG Root X1'</code></li>
</ul>
</li>
<li>Fixed a bug with <code>Submit-Renewal</code> that wasn't properly using <code>-PluginArgs</code> and <code>-NoSkipManualDns</code> parameters when <code>-AllOrders</code> or <code>-AllAccounts</code> switches were also used (#266 #275). (Thanks @f-bader)</li>
<li>deSEC plugin has added retry logic to address API throttling issues for certs with many names (#275).</li>
<li>Fixed a bug with Azure plugin when using <code>AZCertPfx</code> authentication from Windows.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.15.1 (2020-07-08)</h2><a id="user-content-3151-2020-07-08" class="anchor" aria-label="Permalink: 3.15.1 (2020-07-08)" href="#3151-2020-07-08"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed Route53 trying to load AWSPowerShell module when not installed (#263)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.15.0 (2020-06-22)</h2><a id="user-content-3150-2020-06-22" class="anchor" aria-label="Permalink: 3.15.0 (2020-06-22)" href="#3150-2020-06-22"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.do.de" rel="nofollow">DomainOffensive</a> (Thanks @Armitxes)</li>
<li><code>New-PAAccount</code> now has <code>ExtAcctKID</code>, <code>ExtAcctHMACKey</code>, and <code>ExtAcctAlgorithm</code> parameters to support Certificate Authorities that require external account binding. Look for a guide in the wiki soon.</li>
<li>Added support for the new AWS.Tools modules when using Route53.</li>
<li>Added support for more restricted API permissions when using OVH. It's now possible to only grant write access to a specific list of zones or even individual TXT records. See the usage guide for details.</li>
<li>Added pre-registration support for AcmeDns. See the usage guide for details.</li>
<li>Fixed a bug with GoDaddy that prevented managing DNS-only hosted domains.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.14.0 (2020-05-07)</h2><a id="user-content-3140-2020-05-07" class="anchor" aria-label="Permalink: 3.14.0 (2020-05-07)" href="#3140-2020-05-07"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.hetzner.de/" rel="nofollow">Hetzner</a> (Thanks @derguterat)</li>
<li>Fix for Google DNS plugin to ignore private zones. (Thanks @timwsuqld)</li>
<li>Fix for Azure usage guide for using existing access token. (Thanks @arestarh)</li>
<li>Fix for RFC2136 plugin which makes it usable for records other than the root domain.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.13.0 (2020-04-11)</h2><a id="user-content-3130-2020-04-11" class="anchor" aria-label="Permalink: 3.13.0 (2020-04-11)" href="#3130-2020-04-11"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li>Akamai</li>
<li>DNSPod (Thanks @WiZaRd31337)</li>
<li>Loopia</li>
<li>PointDNS (Thanks @danielsen)</li>
<li>Reg.ru (Thanks @WiZaRd31337)</li>
<li>RFC2136</li>
<li>Selectel.ru (Thanks @WiZaRd31337)</li>
<li>Yandex (Thanks @WiZaRd31337)</li>
</ul>
</li>
<li>When creating a new order, chain.cer and fullchain.cer are now backed up along with the other files.</li>
<li>Added a workaround for non-compliant ACME server Nexus CM (#227)</li>
<li>Various usage guide corrections. (Thanks @webprofusion-chrisc)</li>
<li>Fixed a bug where New-PACertificate required the <code>-Force</code> parameter if the previous order was deactivated.</li>
<li>Fixed the dev install script to account for a redirected Documents folder.</li>
<li>Minor changes to how Gandi plugin works to address potential edge case bugs.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.12.0 (2019-12-10)</h2><a id="user-content-3120-2019-12-10" class="anchor" aria-label="Permalink: 3.12.0 (2019-12-10)" href="#3120-2019-12-10"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><code>Set-PAOrder</code> now has <code>-DnsPlugin</code> and <code>-PluginArgs</code> parameters to allow changing plugins and associated credentials prior to a renewal operation.</li>
<li>Upgraded BouncyCastle library to version 1.8.5.2 and renamed the DLL to avoid conflicts with older copies that may get installed into the .NET GAC by other software.</li>
<li>ACME server errors returned during calls to <code>Revoke-PAAuthorization</code> are now non-terminating errors rather than warnings.</li>
<li>Fixed bug where new orders created with <code>New-PACertificate</code> and no explicit plugin wouldn't get the Manual default if the account was already authorized for the included names.</li>
<li>Fixed <code>Get-PAAuthorizations</code> when using explicit account reference</li>
<li>Fixed datetime parsing issues on non-US culture environments (#208)</li>
<li>Fixed errors thrown by <code>Submit-Renewal</code> when run against an order with a null DnsPlugin. A warning is now thrown instead.</li>
<li>Fixed parameter binding error when using <code>-PluginArgs</code> with <code>Submit-Renewal</code></li>
<li>Fixed HurricanElectric guide's parameter references</li>
<li>Fixed Azure tests</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.11.0 (2019-11-12)</h2><a id="user-content-3110-2019-11-12" class="anchor" aria-label="Permalink: 3.11.0 (2019-11-12)" href="#3110-2019-11-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added <code>Revoke-PAAuthorization</code> which enables revocation of identifier authorizations associated with an account.</li>
<li><code>Get-PAAuthorizations</code> now has an optional -Account parameter and better error handling.</li>
<li><code>Get-PAAuthorization</code> has been added as an alias for <code>Get-PAAuthorizations</code> to better comply with PowerShell naming standards. It will likely be formally renamed in version 4.x and the old name should be considered deprecated. This change should allow dependent scripts to prepare for that change in advance.</li>
<li><code>Install-PACertificate</code> now supports parameters to select the store name, location, and the exportable flag.</li>
<li>Workaround for Boulder <a href="https://github.com/letsencrypt/boulder/issues/4540" data-hovercard-type="issue" data-hovercard-url="/letsencrypt/boulder/issues/4540/hovercard">issue</a> that doesn't return JSON error bodies for old endpoints.</li>
<li>Fixed bug creating new orders with a changed KeyLength value that was preventing the required new private key from being created.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.10.0 (2019-11-06)</h2><a id="user-content-3100-2019-11-06" class="anchor" aria-label="Permalink: 3.10.0 (2019-11-06)" href="#3100-2019-11-06"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://dns.he.net/" rel="nofollow">HurricaneElectric</a></li>
<li>Azure plugin now supports certificate based authentication. See the <a href="https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/Azure-Readme.md">plugin guide</a> for details. (#190)</li>
<li>Setup examples in the Azure plugin guide now utilize the <a href="https://www.powershellgallery.com/packages/Az/3.0.0" rel="nofollow">Az</a> module rather than the legacy AzureRm.* modules. (#189)</li>
<li>Fix for "No order for ID" errors caused by recent Boulder changes that no longer return order details for expired orders. (#192)</li>
<li>Fixed being unable to switch active orders if an error occurred trying to refresh the order details from the ACME server.</li>
<li>Added additional guidance on renewals and deployment to the tutorial.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.9.0 (2019-10-26)</h2><a id="user-content-390-2019-10-26" class="anchor" aria-label="Permalink: 3.9.0 (2019-10-26)" href="#390-2019-10-26"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin <a href="https://www.unoeuro.com/" rel="nofollow">UnoEuro</a> (Thanks @OrKarstoft)</li>
<li>Fix for Cloudflare plugin not working properly when limited scope token didn't have at least read permissions to all zones on an account. To use an edit token with limited zone permissions, you must now also specify a secondary token with read permissions to all zones. See the <a href="https://github.com/rmbolger/Posh-ACME/blob/master/Posh-ACME/DnsPlugins/Cloudflare-Readme.md">plugin guide</a> for details. (#184)</li>
<li>Fix for PropertyNotFound exception when imported plugin data is null or not the expected hashtable value (#182)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.8.0 (2019-09-27)</h2><a id="user-content-380-2019-09-27" class="anchor" aria-label="Permalink: 3.8.0 (2019-09-27)" href="#380-2019-09-27"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li><code>Set-PAOrder</code> now supports modifying some order properties such as FriendlyName, PfxPass, and the Install switch that don't require generating a new ACME order. FriendlyName or PfxPass changes will regenerate the current PFX files with the new value(s) if they exist. Changes to the Install switch will only affect future renewals.</li>
<li>Fixed FriendlyName, PfxPass, and Install parameters not applying when calling <code>New-PACertificate</code> against an existing order (#178)</li>
<li>Fixed GoDaddy plugin so it doesn't fail on large accounts (100+ domains) (#179)</li>
<li>Updated Cloudflare plugin to workaround API bug with limited scope tokens (#176)</li>
<li>Fixed DnsSleep and ValidationTimout being null when manually creating an order with <code>New-PAOrder</code> and finishing it with <code>New-PACertificate</code>.</li>
<li>Added parameter help for -NewKey on <code>New-PAOrder</code> which was missing.</li>
<li>When using <code>New-PACertificate</code> against an already completed order that is not ready for renewal, the informational message has been changed to Warning from Verbose to make it more apparent that nothing was done.</li>
<li>Updated <code>instdev.ps1</code> so it still works when the BouncyCastle DLL is locked and $ErrorActionPreference is set to Stop.</li>
<li>Updated a bunch of plugin guides with info regarding PowerShell 6.2's fix for the SecureString serialization bug and enabling the use of secure parameter sets on non-Windows.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.7.0 (2019-09-18)</h2><a id="user-content-370-2019-09-18" class="anchor" aria-label="Permalink: 3.7.0 (2019-09-18)" href="#370-2019-09-18"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Submit-Renewal now has a PluginArgs parameter to make it easier to update plugin credentials without needing to create a new order from scratch. (Thanks @matt-FFFFFF)</li>
<li>The FriendlyName parameter in New-PACertificate and New-PAOrder now defaults to the certificate's primary name instead of an empty string to avoid a Windows bug that can occur when installing the generated PFX files.</li>
<li>Fixed Windows plugin issue when using WinZoneScope and not all zones have that scope (#168)</li>
<li>Fixed an internal bug with Export-PACertFiles that luckily didn't cause problems due to PowerShell variable scoping rules.</li>
<li>Fixed a typo in the Cloudflare guide examples. (Thanks @mccanney)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.6.0 (2019-08-19)</h2><a id="user-content-360-2019-08-19" class="anchor" aria-label="Permalink: 3.6.0 (2019-08-19)" href="#360-2019-08-19"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li>Domeneshop (Thanks @ornulfn)</li>
<li>Dreamhost (Thanks @jhendricks123)</li>
<li>EasyDNS (Thanks @abrysiuk)</li>
<li>FreeDNS (afraid.org)</li>
</ul>
</li>
<li>Added <code>Invoke-HttpChallengeListener</code> function (Thanks @soltroy). This runs a self-hosted web server that can answer HTTP challenges. Look for a wiki usage guide soon.</li>
<li>Added <code>Remove-PAServer</code> function. Warning: This deletes all data (accounts, orders, certs) associated with an ACME server.</li>
<li>Added <code>Install-PACertificate</code> function. This can be used to manually import a cert to the Windows cert store. (#159)</li>
<li>Added support for Cloudflare's new limited access API Tokens. See usage guide for details.</li>
<li>Added support for propagation polling with ClouDNS plugin. See usage guide for details.</li>
<li>Fixed edge case zone finding bug with ClouDNS plugin.</li>
<li>Fixed DOcean (Digital Ocean) plugin which broke because they now enforce a 30 sec TTL minimum on record creation.</li>
<li>Fixed overly aggressive error trapping in OVH plugin. (#162)</li>
<li>Fixed a typo in the OVH plugin usage guide.</li>
<li>Fixed SkipCertificateCheck is no longer ignored when passing a PAServer object via pipeline to Set-PAServer.</li>
<li>Fixed <code>Submit-ChallengeValidation</code> no longer tries to sleep when DnsSleep = 0.</li>
<li>Some internal refactoring.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.5.0 (2019-06-21)</h2><a id="user-content-350-2019-06-21" class="anchor" aria-label="Permalink: 3.5.0 (2019-06-21)" href="#350-2019-06-21"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin for Simple DNS Plus (#149) (Thanks @alphaz18)</li>
<li>Changed a bunch of "-ErrorAction SilentlyContinue" references to "Ignore" so we're not filling the $Error collection with junk.</li>
<li>Fix for Boulder removing ID field from new account output.</li>
<li>Fixed an issue in a number of plugins that could cause errors if the case of the requested record didn't match the server's zone case. (Thanks @Makr91)</li>
<li>Fixed a bug with the Route53 plugin when used on PowerShell Core without the AwsPowerShell module installed.</li>
<li>Fixed some typos in the OVH plugin usage guide examples (#147)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.4.0 (2019-04-30)</h2><a id="user-content-340-2019-04-30" class="anchor" aria-label="Permalink: 3.4.0 (2019-04-30)" href="#340-2019-04-30"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin for OVH (#79)</li>
<li>Added ZoneScope support to Windows plugin (#134) (Thanks @dawe78)</li>
<li>Fixed issue #139 with GCloud plugin prompting for GCKeyFile after upgrading to 3.3.0. Users affected by this issue will need to submit a new cert request to re-establish the GCloud plugin config.</li>
<li>Fixed issue #140 with AcmeDns plugin losing registration data after upgrading to 3.3.0. Users affected by this issue will need to submit a new cert request to re-establish the AcmeDns plugin config and it will likely involve updating any CNAME records currently in use.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.3.0 (2019-03-24)</h2><a id="user-content-330-2019-03-24" class="anchor" aria-label="Permalink: 3.3.0 (2019-03-24)" href="#330-2019-03-24"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Route53 plugin now has IAM Role support if you're running Posh-ACME from within AWS. See plugin usage guide for details (#128)</li>
<li>Dynu plugin migrated to v2 of the Dynu API</li>
<li>Fixed DNSPlugin and DNSAlias arrays not getting expanded properly when the number of names in the cert didn't match the values in those arrays.</li>
<li>Fixed validation bugs when using SAN certs with challenge aliases or multiple different plugins (#127) (Thanks @whbingham)</li>
<li>Revamped serialization/deserialization for plugin arguments which should prevent accidentally creating parameter binding conflicts when switching between parameter sets for a particular plugin (#129).</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.2.1 (2019-03-04)</h2><a id="user-content-321-2019-03-04" class="anchor" aria-label="Permalink: 3.2.1 (2019-03-04)" href="#321-2019-03-04"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix #122 to make sure private keys are imported properly when using <code>-Install</code></li>
<li>Improve error handling for duplicate public zones in Azure. (#125)</li>
<li>Add tag based workaround for duplicate public zones in Azure. (#125)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.2.0 (2019-01-22)</h2><a id="user-content-320-2019-01-22" class="anchor" aria-label="Permalink: 3.2.0 (2019-01-22)" href="#320-2019-01-22"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin for name.com registrar (Thanks @ravensorb)</li>
<li>Added additional argument completers for Account IDs, MainDomain, and KeyLength parameters</li>
<li>The Posh-ACME config location can now be set by creating a <code>POSHACME_HOME</code> environment variable. The directory must exist and be accessible prior to importing the module. If you change the value of the environment variable, you need to re-import the module with <code>-Force</code> or open a new PowerShell session for the change to take effect.</li>
<li>Added better error handling for cases where the config location is not writable.</li>
<li>Get-PACertificate now returns null instead of throwing an error if the cert or associated order doesn't exist</li>
<li>Fixed the ability to revoke a certificate after the associated order has expired</li>
<li>Fix for #117 involving broken renewal processing on PowerShell Core in non-US locales</li>
<li>Fixes for additional DateTime handling on PowerShell Core</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.1.1 (2018-12-22)</h2><a id="user-content-311-2018-12-22" class="anchor" aria-label="Permalink: 3.1.1 (2018-12-22)" href="#311-2018-12-22"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fixed typo in Route53 plugin that prevented finding the AwsPowershell module</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.1.0 (2018-12-16)</h2><a id="user-content-310-2018-12-16" class="anchor" aria-label="Permalink: 3.1.0 (2018-12-16)" href="#310-2018-12-16"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>The following plugins have added non-Windows OS support or extended their existing support. Check the plugin guides for details.
<ul dir="auto">
<li>Azure</li>
<li>DNSimple</li>
<li>Infoblox</li>
<li>Linode</li>
<li>LuaDns</li>
<li>NS1</li>
<li>Route53</li>
</ul>
</li>
<li>Route53 plugin no longer requires AwsPowershell module when used with explicit keys. It will still use the module if it's installed.</li>
<li>Added tab completion for plugin names with <code>Get-DnsPluginHelp</code></li>
<li>Fix #112 for Azure and errors with private zones and subscriptions with more than 100 zones</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.0.1 (2018-11-30)</h2><a id="user-content-301-2018-11-30" class="anchor" aria-label="Permalink: 3.0.1 (2018-11-30)" href="#301-2018-11-30"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix for #110 <code>Submit-Renewal</code> with -AllOrders or -AllAccounts fails to renew orders with invalid status. (Thanks @jeffmnall!)</li>
<li>Fix for #109 <code>New-PACertificate</code> throws an error if -DnsPlugin is not specified rather than defaulting to Manual. (Thanks @TiloGit!)</li>
<li>Fix internal BouncyCastle to .NET private key conversions where key parameters may need padding. (Thanks @alexzorin and @webprofusion-chrisc!)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">3.0.0 (2018-11-13)</h2><a id="user-content-300-2018-11-13" class="anchor" aria-label="Permalink: 3.0.0 (2018-11-13)" href="#300-2018-11-13"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Potentially breaking changes
<ul dir="auto">
<li>Many ACME protocol messages that previously used GET requests have been changed to POST-as-GET to comply with the latest ACME draft-16. Let's Encrypt already supports the new draft, but other ACME servers may not yet.</li>
<li><code>CertIssueTimeout</code> param was removed from <code>New-PACertificate</code> and <code>Submit-OrderFinalize</code> because it wasn't actually being used properly in the former and doesn't seem necessary anymore.</li>
</ul>
</li>
<li>New Feature: Generate certs from an existing certificate request which can be useful for appliances that generate their own keys and CSRs. (Thanks @virot)
<ul dir="auto">
<li>New <code>CSRPath</code> parameter on <code>New-PACertificate</code> and <code>New-PAOrder</code> that removes the need for <code>Domain</code>, <code>CertKeyLength</code>, <code>NewCertKey</code>, <code>OCSPMustStaple</code>, <code>FriendlyName</code>, <code>PfxPass</code>, and <code>Install</code> parameters when used. Most values will be extracted from the CSR.</li>
<li>Certs generated using this method will not have PFX files created because there is no private key.</li>
<li>Certs generated using this method can not be automatically installed to the Windows cert store because there are no PFX files.</li>
</ul>
</li>
<li><code>Get-KeyAuthorization</code> now has <code>ForDNS</code> parameter which returns the actual TXT value necessary for the dns-01 challenge. (Thanks @chandan1001)</li>
<li>Added new DNS plugins
<ul dir="auto">
<li>IBMSoftLayer (IBM Cloud DNS)</li>
<li>AutoDNS (InternetX XML Gateway)</li>
</ul>
</li>
<li>Fix for some validation params not getting set properly on new instances of old orders</li>
<li>Fix for Windows plugin not using <code>$dnsParams</code> appropriately (Thanks @B4dM4n)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.9.1 (2018-10-26)</h2><a id="user-content-291-2018-10-26" class="anchor" aria-label="Permalink: 2.9.1 (2018-10-26)" href="#291-2018-10-26"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix (#94) for TXT record cleanup bug when some domains were already validated (Thanks @philr!)</li>
<li>Fix (#95) error handling in New-PACertificate and New-PAOrder that would mistakenly cause new orders to be created if there were problems checking old orders. (Thanks @philr!)</li>
<li>Azure fix (#96) to allow special characters in credentials. (Thanks @philr!)</li>
<li>Route53 fix for errors caused by public/private zones with same name (#100) (Thanks @spaceygithub!)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.9.0 (2018-10-05)</h2><a id="user-content-290-2018-10-05" class="anchor" aria-label="Permalink: 2.9.0 (2018-10-05)" href="#290-2018-10-05"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li>BlueCat (Thanks @marshallford)</li>
<li>Gandi</li>
</ul>
</li>
<li>Updated DMEasy plugin to support non-Windows</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.8.0 (2018-09-12)</h2><a id="user-content-280-2018-09-12" class="anchor" aria-label="Permalink: 2.8.0 (2018-09-12)" href="#280-2018-09-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li>Aliyun (Alibaba Cloud)</li>
<li>DeSEC (Thanks @nazar554)</li>
</ul>
</li>
<li>Fix for type error when using OCSP Must-Staple (Thanks @casselc)</li>
<li>Parameter binding bug fixes for Azure and Windows plugins (Thanks @mithrandyr)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.7.1 (2018-08-30)</h2><a id="user-content-271-2018-08-30" class="anchor" aria-label="Permalink: 2.7.1 (2018-08-30)" href="#271-2018-08-30"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Removed ACMEv2 draft-12 support for account key rollover. No known CAs are still implementing draft-12.</li>
<li>Fix for issue #53 with GoDaddy plugin not being able to remove TXT records in some cases. Thanks @davehope!</li>
<li>Performance and efficiency improvements with GoDaddy plugin</li>
<li>Fixed Get-PACertificate -List only showing certs from 'valid' orders.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.7.0 (2018-08-12)</h2><a id="user-content-270-2018-08-12" class="anchor" aria-label="Permalink: 2.7.0 (2018-08-12)" href="#270-2018-08-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin ClouDNS</li>
<li>Added ACMEv2 draft-13 support for account key rollover. This is an interim fix that should still work with draft-12 as well. Once Let's Encrypt goes into production with draft-13, the draft-12 support will be removed.</li>
<li>.NET version check now throws a warning instead of error on module load</li>
<li>Fixed Get-PAAccount not filtering contacts correctly</li>
<li>Minor fix and help correction in Namecheap plugin</li>
<li>Get-PAAccount and Get-PAOrder now return null instead of an error if an invalid account or order was specified. (Thanks for the idea @maybe-hello-world)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.6.0 (2018-08-01)</h2><a id="user-content-260-2018-08-01" class="anchor" aria-label="Permalink: 2.6.0 (2018-08-01)" href="#260-2018-08-01"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added additional functions that should make it easier to manually respond to challenges. In particular, this should allow people to use the HTTP challenge until a formal HTTP challenge plugin solution is introduced. (Thanks John B. for the idea!)
<ul dir="auto">
<li><code>Get-KeyAuthorization</code> calculate a key authorization string for a challenge token.</li>
<li><code>Send-ChallengeAck</code> notifies the ACME server to proceed validating a challenge.</li>
<li>The output object on <code>Get-PAAuthorizations</code> now contains top level attributes relating to the HTTP challenge (in addition to the existing DNS challenge).</li>
</ul>
</li>
<li>Added new DNS plugins
<ul dir="auto">
<li>Namecheap</li>
<li>Rackspace</li>
</ul>
</li>
<li>Migrated all internal DateTime handling to use DateTimeOffset which is less finicky across time zones for the types of comparisons generally being performed.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.5.0 (2018-07-12)</h2><a id="user-content-250-2018-07-12" class="anchor" aria-label="Permalink: 2.5.0 (2018-07-12)" href="#250-2018-07-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin Dynu. (Thanks @alexzorin!)</li>
<li>Added additional Azure plugin authentication options including explicit access token and Instance Metadata Service support. See plugin readme for details. (Thanks @perbergland!)</li>
<li>Added an explicit .NET 4.7.1 version check on module load when running Windows PowerShell (Desktop edition) since the module manifest didn't seem to be enforcing it. This will throw an error if you try to import the module without at least .NET 4.7.1 installed and hopefully prevent bug reports due to insufficient .NET versions.</li>
<li>Fixed bug with GoDaddy plugin (#50) that prevented using names in sub-domains. (Thanks @davehope!)</li>
<li>Fixed bug with Azure plugin (#57) incorrectly evaluating token expiration. (Thanks @Cavorter!)</li>
<li>Fixed bug (#60) that would cause some order parameters to appear to get wiped when renewing or creating a new order whose names had already been validated. (Thanks for the tip @hutch120!)</li>
<li>Various readme tweaks</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.4.0 (2018-06-01)</h2><a id="user-content-240-2018-06-01" class="anchor" aria-label="Permalink: 2.4.0 (2018-06-01)" href="#240-2018-06-01"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugin Linode</li>
<li>Added tab completion for <code>Plugin</code> param on <code>Publish</code>/<code>Unpublish</code>/<code>Save-DnsChallenge</code></li>
<li>Fixed bug renewing orders with status invalid (which happens when the order expires even if the cert is still valid)</li>
<li>Fixed bug in <code>New-PACertificate</code> that wasn't using explicit <code>DnsSleep</code> and <code>ValidationTimeout</code> parameters when an old order existed for the same primary name.</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.3.0 (2018-05-29)</h2><a id="user-content-230-2018-05-29" class="anchor" aria-label="Permalink: 2.3.0 (2018-05-29)" href="#230-2018-05-29"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added new DNS plugins
<ul dir="auto">
<li>DNSimple</li>
<li>LuaDns</li>
<li>NS1</li>
</ul>
</li>
<li>Challenge validation errors will now show the detailed error message provided by the ACME server</li>
<li>Get-PAAuthorization will now throw a warning instead of errors for expired authorizations</li>
<li>Fixed bug with Infoblox plugin</li>
<li>Fixed error with Get-PACertificate on orders created prior to 2.0</li>
<li>Misc fixes for plugin help details</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.2.0 (2018-05-24)</h2><a id="user-content-220-2018-05-24" class="anchor" aria-label="Permalink: 2.2.0 (2018-05-24)" href="#220-2018-05-24"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added cross platform PowerShell Core support!
<ul dir="auto">
<li>Some DNS plugins don't work yet on non-Windows due to known issue handling SecureString PowerShell Core 6.0. Check details on the project wiki.</li>
<li><code>-Install</code> param on <code>New-PACertificate</code> throws error on non-Windows because there's no certificate store to install to.</li>
<li><code>Windows</code> plugin doesn't work in Core at all yet due to lack of Core compatible DnsServer module.</li>
</ul>
</li>
<li>Added new DNS plugin Zonomi. Thanks @Zippy79!</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.1.1 (2018-05-19)</h2><a id="user-content-211-2018-05-19" class="anchor" aria-label="Permalink: 2.1.1 (2018-05-19)" href="#211-2018-05-19"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix for GCloud plugin syntax error</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.1.0 (2018-05-18)</h2><a id="user-content-210-2018-05-18" class="anchor" aria-label="Permalink: 2.1.0 (2018-05-18)" href="#210-2018-05-18"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added account key rollover support. Use -KeyRollover switch in Set-PAAccount.</li>
<li>Added PfxPass (SecureString) to Get-PACertificate output</li>
<li>Added new DNS plugins
<ul dir="auto">
<li>DMEasy (DNS Made Easy)</li>
<li>GoDaddy. Thanks @Rukas!</li>
</ul>
</li>
<li>All calls to Invoke-WebRequest and Invoke-RestMethod now use -UseBasicParsing to avoid issues with PowerShell using Internet Explorer's DOM parser. Thanks @Rukas!</li>
<li>Fixed hard coded cert store paths in Import-PfxCertInternal</li>
<li>Fixed tests for New-Jws</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.0.1 (2018-05-12)</h2><a id="user-content-201-2018-05-12" class="anchor" aria-label="Permalink: 2.0.1 (2018-05-12)" href="#201-2018-05-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Fix for PluginArgs not being passed to Submit-ChallengeValidation. Thanks @juliansiebert!</li>
<li>Fix for Azure plugin when multiple zones are in a subscription. Thanks @juliansiebert!</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">2.0 (2018-05-12)</h2><a id="user-content-20-2018-05-12" class="anchor" aria-label="Permalink: 2.0 (2018-05-12)" href="#20-2018-05-12"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Potentially Breaking Changes
<ul dir="auto">
<li>New-PACertificate now outputs certificate details to the pipeline which should aid automation</li>
<li>New-PACertificate now reuses all previous order params (for the same MainDomain) when not explicitly specified</li>
<li>All generated PFX files now have 'poshacme' as the default password to address compatibility issues with other tools</li>
</ul>
</li>
<li>New-PACertificate now generates fullchain.pfx in addition to cert.pfx</li>
<li>Added optional parameters to New-PACertificate
<ul dir="auto">
<li><code>-FriendlyName</code> sets Friendly Name when imported into Windows certificate store</li>
<li><code>-PfxPass</code> overrides the default password for generated PFX files</li>
<li><code>-Install</code> switch imports fullchain.pfx to Windows certificate store. <em>Requires elevation</em></li>
</ul>
</li>
<li>Added new DNS plugins
<ul dir="auto">
<li>DOcean (Digital Ocean)</li>
<li>Cloudflare. Thanks @rian-hout!</li>
</ul>
</li>
<li>Added Get-PACertificate which returns certificate details</li>
<li>Added usage guides for most DNS plugins</li>
<li>Added progress bar while waiting for DNS changes to propagate</li>
<li>Old csr and chain files are no longer backed up when creating a new order</li>
<li>Manual plugin now displays all records to create with one prompt</li>
<li>Fixed AcmeDns plugin issue where CNAMEs would display twice user Ctrl-C from prompt</li>
<li>Bugfix for Azure plugin (#17). Thanks @juliansiebert!</li>
<li>New-PACertificate will no longer redownload certs when run with same arguments (#9)</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.1 (2018-05-02)</h2><a id="user-content-11-2018-05-02" class="anchor" aria-label="Permalink: 1.1 (2018-05-02)" href="#11-2018-05-02"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Added tab completion for -DnsPlugin parameter</li>
<li>Added new DNS plugins
<ul dir="auto">
<li>Acme-Dns</li>
<li>Azure</li>
<li>GCloud (Google Cloud)</li>
<li>Windows</li>
</ul>
</li>
</ul>
<div class="markdown-heading" dir="auto"><h2 tabindex="-1" class="heading-element" dir="auto">1.0 (2018-04-27)</h2><a id="user-content-10-2018-04-27" class="anchor" aria-label="Permalink: 1.0 (2018-04-27)" href="#10-2018-04-27"><svg data-component="Octicon" class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z"></path></svg></a></div>
<ul dir="auto">
<li>Initial Release</li>
<li>Added functions
<ul dir="auto">
<li>Get-DnsPluginHelp</li>
<li>Get-DnsPlugins</li>
<li>Get-PAAccount</li>
<li>Get-PAAuthorizations</li>
<li>Get-PAOrder</li>
<li>Get-PAServer</li>
<li>New-PAAccount</li>
<li>New-PACertificate</li>
<li>New-PAOrder</li>
<li>Publish-DnsChallenge</li>
<li>Remove-PAAccount</li>
<li>Remove-PAOrder</li>
<li>Save-DnsChallenge</li>
<li>Set-PAAccount</li>
<li>Set-PAOrder</li>
<li>Set-PAServer</li>
<li>Submit-ChallengeValidation</li>
<li>Submit-OrderFinalize</li>
<li>Submit-Renewal</li>
<li>Unpublish-DnsChallenge</li>
</ul>
</li>
</ul>
</article></div><div class="d-none"></div></section></div></div></div> </div> <!-- --> </div></div></div></div></div></div><div class="ScrollMarksContainer-module__scrollMarksContainer__Eu7uU" id="find-result-marks-container"></div><div class="d-none"></div><div class="d-none"></div></div> <!-- --> <!-- --> </div>
</react-app>




  </div>

</turbo-frame>

    </main>
  </div>

  </div>

          <footer class="footer f6 color-fg-muted color-border-subtle tmp-pt-7 tmp-pb-6 p-responsive" role="contentinfo"  >
  <h2 class='sr-only'>Footer</h2>

  


  <div class="d-flex flex-justify-center flex-items-center flex-column-reverse flex-lg-row flex-wrap flex-lg-nowrap">
    <div class="d-flex flex-items-center flex-shrink-0 mx-2">
      <a aria-label="GitHub Homepage" class="footer-octicon mr-2" href="https://github.com">
        <svg aria-hidden="true" data-component="Octicon" height="24" viewBox="0 0 24 24" version="1.1" width="24" data-view-component="true" class="octicon octicon-mark-github">
    <path d="M10.226 17.284c-2.965-.36-5.054-2.493-5.054-5.256 0-1.123.404-2.336 1.078-3.144-.292-.741-.247-2.314.09-2.965.898-.112 2.111.36 2.83 1.01.853-.269 1.752-.404 2.853-.404 1.1 0 1.999.135 2.807.382.696-.629 1.932-1.1 2.83-.988.315.606.36 2.179.067 2.942.72.854 1.101 2 1.101 3.167 0 2.763-2.089 4.852-5.098 5.234.763.494 1.28 1.572 1.28 2.807v2.336c0 .674.561 1.056 1.235.786 4.066-1.55 7.255-5.615 7.255-10.646C23.5 6.188 18.334 1 11.978 1 5.62 1 .5 6.188.5 12.545c0 4.986 3.167 9.12 7.435 10.669.606.225 1.19-.18 1.19-.786V20.63a2.9 2.9 0 0 1-1.078.224c-1.483 0-2.359-.808-2.987-2.313-.247-.607-.517-.966-1.034-1.033-.27-.023-.359-.135-.359-.27 0-.27.45-.471.898-.471.652 0 1.213.404 1.797 1.235.45.651.921.943 1.483.943.561 0 .92-.202 1.437-.719.382-.381.674-.718.944-.943"></path>
</svg>
</a>
      <span>
        &copy; 2026 GitHub,&nbsp;Inc.
      </span>
    </div>

    <nav aria-label="Footer">
      <h3 class="sr-only" id="sr-footer-heading">Footer navigation</h3>

      <ul class="list-style-none d-flex flex-justify-center flex-wrap mb-2 mb-lg-0" aria-labelledby="sr-footer-heading">


          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to Terms&quot;,&quot;label&quot;:&quot;text:terms&quot;}" href="https://docs.github.com/site-policy/github-terms/github-terms-of-service" data-view-component="true" class="Link--secondary Link">Terms</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to privacy&quot;,&quot;label&quot;:&quot;text:privacy&quot;}" href="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement" data-view-component="true" class="Link--secondary Link">Privacy</a>
          </li>


            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to security&quot;,&quot;label&quot;:&quot;text:security&quot;}" href="https://github.com/security" data-view-component="true" class="Link--secondary Link">Security</a>
            </li>

            <li class="mx-2">
              <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to status&quot;,&quot;label&quot;:&quot;text:status&quot;}" href="https://www.githubstatus.com/" data-view-component="true" class="Link--secondary Link">Status</a>
            </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to community&quot;,&quot;label&quot;:&quot;text:community&quot;}" href="https://github.community/" data-view-component="true" class="Link--secondary Link">Community</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to docs&quot;,&quot;label&quot;:&quot;text:docs&quot;}" href="https://docs.github.com/" data-view-component="true" class="Link--secondary Link">Docs</a>
          </li>

          <li class="mx-2">
            <a data-analytics-event="{&quot;category&quot;:&quot;Footer&quot;,&quot;action&quot;:&quot;go to contact&quot;,&quot;label&quot;:&quot;text:contact&quot;}" href="https://support.github.com?tags=dotcom-footer" data-view-component="true" class="Link--secondary Link">Contact</a>
          </li>

          
<li class="mx-2" >
  <cookie-consent-link>
    <button
      type="button"
      class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent"
      data-action="click:cookie-consent-link#showConsentManagement"
      data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;cookies&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;cookies_link_subfooter_footer&quot;}"
    >
      Manage cookies
    </button>
  </cookie-consent-link>
</li>

  <li class="mx-2">
    <cookie-consent-link>
      <button
        type="button"
        class="Link--secondary underline-on-hover border-0 p-0 color-bg-transparent text-left"
        data-action="click:cookie-consent-link#showConsentManagement"
        data-analytics-event="{&quot;location&quot;:&quot;footer&quot;,&quot;action&quot;:&quot;dont_share_info&quot;,&quot;context&quot;:&quot;subfooter&quot;,&quot;tag&quot;:&quot;link&quot;,&quot;label&quot;:&quot;dont_share_info_link_subfooter_footer&quot;}"
      >
        Do not share my personal information
      </button>
    </cookie-consent-link>
  </li>

      </ul>
    </nav>
  </div>
</footer>



    <ghcc-consent id="ghcc" class="position-fixed bottom-0 left-0" style="z-index: 999999"
      data-locale="en"
      data-initial-cookie-consent-allowed=""
      data-cookie-consent-required="true"
    ></ghcc-consent>




  <div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden>
    <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-alert">
    <path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path>
</svg>
    <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
    </button>
    You can’t perform that action at this time.
  </div>

    <template id="site-details-dialog">
  <details class="details-reset details-overlay details-overlay-dark lh-default color-fg-default hx_rsm" open>
    <summary role="button" aria-label="Close dialog"></summary>
    <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
      <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
        <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-x">
    <path d="M3.72 3.72a.75.75 0 0 1 1.06 0L8 6.94l3.22-3.22a.749.749 0 0 1 1.275.326.749.749 0 0 1-.215.734L9.06 8l3.22 3.22a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L8 9.06l-3.22 3.22a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L6.94 8 3.72 4.78a.75.75 0 0 1 0-1.06Z"></path>
</svg>
      </button>
      <div class="octocat-spinner tmp-my-6 js-details-dialog-spinner"></div>
    </details-dialog>
  </details>
</template>

    <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;">
  <div class="Popover-message Popover-message--bottom-left Popover-message--large Box color-shadow-large" style="width:360px;">
  </div>
</div>

    <template id="snippet-clipboard-copy-button">
  <div class="zeroclipboard-container position-absolute right-0 top-0">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn js-clipboard-copy m-2 p-0" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon m-2 tmp-m-2">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none m-2 tmp-m-2">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>
<template id="snippet-clipboard-copy-button-unpositioned">
  <div class="zeroclipboard-container">
    <clipboard-copy aria-label="Copy code to clipboard" class="ClipboardButton btn btn-invisible js-clipboard-copy m-2 p-0 d-flex flex-justify-center flex-items-center" data-copy-feedback="Copied!" data-tooltip-direction="w">
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-copy js-clipboard-copy-icon">
    <path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path>
</svg>
      <svg aria-hidden="true" data-component="Octicon" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-check js-clipboard-check-icon color-fg-success d-none">
    <path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path>
</svg>
    </clipboard-copy>
  </div>
</template>




    </div>
    <div id="js-global-screen-reader-notice" class="sr-only mt-n1" aria-live="polite" aria-atomic="true" ></div>
    <div id="js-global-screen-reader-notice-assertive" class="sr-only mt-n1" aria-live="assertive" aria-atomic="true"></div>
  </body>
</html>

