<commit_before><div class="form-horizontal">
  <div class="row pipeline-stage-config-heading">
    <div class="col-md-3">
      <h4 ng-bind="stage.name || '[new stage]'"></h4>
      <p class="small" ng-if="stage.type && label"><strong>Stage type:</strong> {{label}}<br/> {{description}}</p>
      <p class="small" ng-if="extendedDescription" ng-bind-html="extendedDescription"></p>
      <p class="small" ng-if="!stage.type">No stage type selected</p>
    </div>
    <div class="col-md-7 form-horizontal">
      <stage-config-field label="Type" field-columns="9" ng-if="stage.isNew">
        <ui-select ng-model="options.selectedStageType"
                   style="width: 250px"
                   class="form-control input-sm"
                   autofocus
                   on-select="stageConfigCtrl.selectStageType($item)">
          <ui-select-match>
            <strong>{{$select.selected.label}}</strong>
          </ui-select-match>
          <ui-select-choices repeat="option.key as option in options.stageTypes | filter: $select.search">
            <div class="stage-choice">
              <strong>{{option.label}}</strong>
              <span class="available-providers" ng-if="showProviders">
                <cloud-provider-logo ng-repeat="provider in option.cloudProviders"
                                     provider="provider"
                                     height="'12px'" width="'12px'" show-tooltip="true"></cloud-provider-logo>
              </span>
            </div>
            <div ng-bind-html="option.description"></div>
          </ui-select-choices>
        </ui-select>
      </stage-config-field>
      <stage-config-field label="Stage Name">
        <input type="text" class="form-control input-sm" required ng-model="stage.name"/>
      </stage-config-field>
      <stage-config-field label="Depends On" help-key="pipeline.config.dependsOn" style="margin-bottom: 10px">
        <ui-select ng-model="stage.requisiteStageRefIds" multiple class="form-control input-sm"
                   on-select="updateAvailableDependencyStages()"
                   on-remove="updateAvailableDependencyStages()">
          <ui-select-match>{{$item.name}}</ui-select-match>
          <ui-select-choices repeat="option.refId as option in options.dependencies | anyFieldFilter: {name: $select.search}"
                             ui-disable-choice="!option.available"
                             group-by="groupDependencyOptions">
            <span ng-if="!stage.requisiteStageRefIds.includes(option.refId)" ng-bind-html="option.name | highlight: $select.search"></span>
          </ui-select-choices>
        </ui-select>
      </stage-config-field>
    </div>
    <div class="col-md-2 text-right">
      <button type="button" class="btn btn-sm btn-default" ng-click="pipelineConfigurerCtrl.removeStage(stage)" style="margin-bottom: 5px">
        <span class="glyphicon glyphicon-trash" uib-tooltip="Remove stage"></span> Remove stage
      </button>
      <button type="button" class="btn btn-sm btn-default" ng-click="stageConfigCtrl.editStageJson(stage)">
        <i class="fa fa-cog"></i> Edit stage as JSON
      </button>
    </div>
  </div>
  <page-navigator scrollable-container="[ui-view]" ng-show="stage.type">
    <page-section key="stage" label="{{label}} Configuration">
      <div class="stage-details"></div>
    </page-section>
    <page-section key="execution" label="Execution Options">
      <override-failure stage="stage"></override-failure>
      <execution-windows stage="stage" ng-if="!pipeline.strategy"></execution-windows>
      <override-timeout stage="stage"></override-timeout>
      <fail-on-failed-expressions stage="stage"></fail-on-failed-expressions>
      <optional-stage stage="stage"></optional-stage><commit_msg>fix(core): Fix stage execution windows from undefined error (#5530)<commit_after><div class="form-horizontal">
  <div class="row pipeline-stage-config-heading">
    <div class="col-md-3">
      <h4 ng-bind="stage.name || '[new stage]'"></h4>
      <p class="small" ng-if="stage.type && label"><strong>Stage type:</strong> {{label}}<br/> {{description}}</p>
      <p class="small" ng-if="extendedDescription" ng-bind-html="extendedDescription"></p>
      <p class="small" ng-if="!stage.type">No stage type selected</p>
    </div>
    <div class="col-md-7 form-horizontal">
      <stage-config-field label="Type" field-columns="9" ng-if="stage.isNew">
        <ui-select ng-model="options.selectedStageType"
                   style="width: 250px"
                   class="form-control input-sm"
                   autofocus
                   on-select="stageConfigCtrl.selectStageType($item)">
          <ui-select-match>
            <strong>{{$select.selected.label}}</strong>
          </ui-select-match>
          <ui-select-choices repeat="option.key as option in options.stageTypes | filter: $select.search">
            <div class="stage-choice">
              <strong>{{option.label}}</strong>
              <span class="available-providers" ng-if="showProviders">
                <cloud-provider-logo ng-repeat="provider in option.cloudProviders"
                                     provider="provider"
                                     height="'12px'" width="'12px'" show-tooltip="true"></cloud-provider-logo>
              </span>
            </div>
            <div ng-bind-html="option.description"></div>
          </ui-select-choices>
        </ui-select>
      </stage-config-field>
      <stage-config-field label="Stage Name">
        <input type="text" class="form-control input-sm" required ng-model="stage.name"/>
      </stage-config-field>
      <stage-config-field label="Depends On" help-key="pipeline.config.dependsOn" style="margin-bottom: 10px">
        <ui-select ng-model="stage.requisiteStageRefIds" multiple class="form-control input-sm"
                   on-select="updateAvailableDependencyStages()"
                   on-remove="updateAvailableDependencyStages()">
          <ui-select-match>{{$item.name}}</ui-select-match>
          <ui-select-choices repeat="option.refId as option in options.dependencies | anyFieldFilter: {name: $select.search}"
                             ui-disable-choice="!option.available"
                             group-by="groupDependencyOptions">
            <span ng-if="!stage.requisiteStageRefIds.includes(option.refId)" ng-bind-html="option.name | highlight: $select.search"></span>
          </ui-select-choices>
        </ui-select>
      </stage-config-field>
    </div>
    <div class="col-md-2 text-right">
      <button type="button" class="btn btn-sm btn-default" ng-click="pipelineConfigurerCtrl.removeStage(stage)" style="margin-bottom: 5px">
        <span class="glyphicon glyphicon-trash" uib-tooltip="Remove stage"></span> Remove stage
      </button>
      <button type="button" class="btn btn-sm btn-default" ng-click="stageConfigCtrl.editStageJson(stage)">
        <i class="fa fa-cog"></i> Edit stage as JSON
      </button>
    </div>
  </div>
  <page-navigator scrollable-container="[ui-view]" ng-show="stage.type">
    <page-section key="stage" label="{{label}} Configuration">
      <div class="stage-details"></div>
    </page-section>
    <page-section key="execution" label="Execution Options">
      <override-failure stage="stage"></override-failure>
      <execution-windows stage="stage" ng-if="!pipeline.strategy && stage"></execution-windows>
      <override-timeout stage="stage"></override-timeout>
      <fail-on-failed-expressions stage="stage"></fail-on-failed-expressions>
      <optional-stage stage="stage"></optional-stage>
{'fraction_non_alphanumeric': 0.16463174478141002, 'fraction_numerical': 0.004726270185112249, 'mean_word_length': 2.7070559610705596, 'pattern_counts': {'":': 0, '<': 157, '<?xml version=': 0, '>': 157, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5106051', 'n_tokens_mistral': 2229, 'n_tokens_neox': 2146, 'n_words': 368}