<commit_before><j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define"
  xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"
  xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
	
	<script type="text/javascript">
			var hidden${it.name}NextSelectionId = "";
		  var current${it.name}Selection = "";
		
			function unhideNext${it.name}()
			{
				var addAnotherButton = document.getElementById("${it.name} addAnotherButton");
				addAnotherButton.style.display = "none";
		
				var hiddenNextSelection = document.getElementById(hidden${it.name}NextSelectionId);
				hiddenNextSelection.style.display = "inline";
			}
		
			function ${it.name}Changed(select)
			{
				if ( typeof ${it.name}Changed.currentMultiLevelMultiSelect == 'undefined' ) {
					${it.name}Changed.currentMultiLevelMultiSelect = 0;
				}
		
		    var currentMultiLevelMultiSelectDiv = document.getElementById("${it.name} dropdowns for MultiLevelMultiSelect " + ${it.name}Changed.currentMultiLevelMultiSelect);
				var dropdown = currentMultiLevelMultiSelectDiv.firstChild;
				while (dropdown)
				{
					if (dropdown.getAttribute("id") !== null)
					{
						dropdown.style.display = "none";
					}
					dropdown = dropdown.nextSibling;
				}
		
				select.name = "value";
		
				var selectedItem = select.options[select.selectedIndex].value;
				if (current${it.name}Selection !== "")
				{
					current${it.name}Selection += ", ";
				}
				current${it.name}Selection += selectedItem;
		
		    var nextDropdown = document.getElementById(select.id + " " + selectedItem);
		    if (nextDropdown)
		    {
					nextDropdown.style.display = "inline";
				}
		    else
				{
		      var nextMultiLevelMultiSelectDiv = currentMultiLevelMultiSelectDiv.cloneNode(true);
		
					${it.name}Changed.currentMultiLevelMultiSelect += 1;						
					nextMultiLevelMultiSelectDiv.setAttribute("id", "${it.name} dropdowns for MultiLevelMultiSelect " + ${it.name}Changed.currentMultiLevelMultiSelect);
						
					var nextDropdown = nextMultiLevelMultiSelectDiv.firstChild;
					var hiddenNextSelectionIdUpdated = false;
					while (nextDropdown)
					{		
						var id = nextDropdown.getAttribute("id");
						if (id !== null)
						{
							nextDropdown.style.display = "none";
		
							id = id.replace("dropdown MultiLevelMultiSelect " + (${it.name}Changed.currentMultiLevelMultiSelect - 1),
															"dropdown MultiLevelMultiSelect " + ${it.name}Changed.currentMultiLevelMultiSelect);
							nextDropdown.setAttribute("id", id);
		
							if (hiddenNextSelectionIdUpdated === false)
							{
								hidden${it.name}NextSelectionId = id;
								hiddenNextSelectionIdUpdated = true;
							}
						}
						
						if (nextDropdown.name === "value")
						{
							nextDropdown.name = "tmp name";
						}
		
						nextDropdown = nextDropdown.nextSibling;
					}
		
					var multiLevelSelections = document.getElementById("${it.name} MultiLevelSelections");
					
		      multiLevelSelections.appendChild(nextMultiLevelMultiSelectDiv);
		
					var currentSelections = document.getElementById("current${it.name}");
					var li = document.getElementById("li to clone").cloneNode();
					li.appendChild(li.ownerDocument.createTextNode(current${it.name}Selection));
					current${it.name}Selection = "";
					li.setAttribute("id", "");
					li.style.display = "";
					currentSelections.appendChild(li);
					currentSelections.style.display = "inline";
		
					<j:if test="${type eq 'PT_MULTI_LEVEL_MULTI_SELECT'}">
						var addAnotherButton = document.getElementById("${it.name} addAnotherButton");
						addAnotherButton.style.display = "inline";
					</j:if>
				}
		  }
	</script>
	
	<j:set var="dropdowns" value="${it.multiLevelDropdownIds}"/>
	<j:set var="choicesByDropdown" value="${it.choicesByDropdownId}"/>
	<j:set var="style" value="display:inline"/>
	
	<div id="${it.name} MultiLevelSelections">
		<div id="${it.name} dropdowns for MultiLevelMultiSelect 0">
			<j:forEach var="dropdown" items="${dropdowns}">
				<select name="tmp name" onchange="${it.name}Changed(this, '${it.name}')"
								id="${dropdown}" style="${style}">
					<j:forEach var="choice" items="${choicesByDropdown[dropdown]}">
						<option value="${choice}">${choice}</option>
					</j:forEach>
				</select>
				<j:set var="style" value="display:none"/>
			</j:forEach>
		</div>
	</div>
	<input id="${it.name} addAnotherButton" type="button" value="Add Another"
				 style="display:none"
				 onclick="unhideNext${it.name}('${it.name}');" />
	<ol id ="current${it.name}" style="display:none">
		<li id="li to clone" style="display:none"></li>
	</ol>
</j:jelly><commit_msg>Cleaned up more whitespace<commit_after><j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define"
  xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form"
  xmlns:i="jelly:fmt" xmlns:p="/lib/hudson/project">
	
	<script type="text/javascript">
			var hidden${it.name}NextSelectionId = "";
		  var current${it.name}Selection = "";
		
			function unhideNext${it.name}()
			{
				var addAnotherButton = document.getElementById("${it.name} addAnotherButton");
				addAnotherButton.style.display = "none";
		
				var addAnotherButtonLineBreak = document.getElementById("${it.name} addAnotherButton linebreak");
				addAnotherButtonLineBreak.style.display = "none";
		
				var hiddenNextSelection = document.getElementById(hidden${it.name}NextSelectionId);
				hiddenNextSelection.style.display = "inline";
			}
		
			function ${it.name}Changed(select)
			{
				if ( typeof ${it.name}Changed.currentMultiLevelMultiSelect == 'undefined' ) {
					${it.name}Changed.currentMultiLevelMultiSelect = 0;
				}
		
		    var currentMultiLevelMultiSelectDiv = document.getElementById("${it.name} dropdowns for MultiLevelMultiSelect " + ${it.name}Changed.currentMultiLevelMultiSelect);
				var dropdown = currentMultiLevelMultiSelectDiv.firstChild;
				while (dropdown)
				{
					if (dropdown.getAttribute("id") !== null)
					{
						dropdown.style.display = "none";
					}
					dropdown = dropdown.nextSibling;
				}
		
				select.name = "value";
		
				var selectedItem = select.options[select.selectedIndex].value;
				if (current${it.name}Selection !== "")
				{
					current${it.name}Selection += ", ";
				}
				current${it.name}Selection += selectedItem;
		
		    var nextDropdown = document.getElementById(select.id + " " + selectedItem);
		    if (nextDropdown)
		    {
					nextDropdown.style.display = "inline";
				}
		    else
				{
		      var nextMultiLevelMultiSelectDiv = currentMultiLevelMultiSelectDiv.cloneNode(true);
		
					${it.name}Changed.currentMultiLevelMultiSelect += 1;						
					nextMultiLevelMultiSelectDiv.setAttribute("id", "${it.name} dropdowns for MultiLevelMultiSelect " + ${it.name}Changed.currentMultiLevelMultiSelect);
						
					var nextDropdown = nextMultiLevelMultiSelectDiv.firstChild;
					var hiddenNextSelectionIdUpdated = false;
					while (nextDropdown)
					{		
						var id = nextDropdown.getAttribute("id");
						if (id !== null)
						{
							nextDropdown.style.display = "none";
		
							id = id.replace("dropdown MultiLevelMultiSelect " + (${it.name}Changed.currentMultiLevelMultiSelect - 1),
															"dropdown MultiLevelMultiSelect " + ${it.name}Changed.currentMultiLevelMultiSelect);
							nextDropdown.setAttribute("id", id);
		
							if (hiddenNextSelectionIdUpdated === false)
							{
								hidden${it.name}NextSelectionId = id;
								hiddenNextSelectionIdUpdated = true;
							}
						}
						
						if (nextDropdown.name === "value")
						{
							nextDropdown.name = "tmp name";
						}
		
						nextDropdown = nextDropdown.nextSibling;
					}
		
					var multiLevelSelections = document.getElementById("${it.name} MultiLevelSelections");
					
		      multiLevelSelections.appendChild(nextMultiLevelMultiSelectDiv);
		
					var currentSelections = document.getElementById("current${it.name}");
					var li = document.getElementById("li to clone").cloneNode();
					li.appendChild(li.ownerDocument.createTextNode(current${it.name}Selection));
					current${it.name}Selection = "";
					li.setAttribute("id", "");
					li.style.display = "";
					currentSelections.appendChild(li);
					currentSelections.style.display = "inline";
		
					<j:if test="${type eq 'PT_MULTI_LEVEL_MULTI_SELECT'}">
						var addAnotherButton = document.getElementById("${it.name} addAnotherButton");
						addAnotherButton.style.display = "inline";
						
						var addAnotherButtonLineBreak = document.getElementById("${it.name} addAnotherButton linebreak");
						addAnotherButtonLineBreak.style.display = "inline";
					</j:if>
				}
		  }
	</script>
	
	<j:set var="dropdowns" value="${it.multiLevelDropdownIds}"/>
	<j:set var="choicesByDropdown" value="${it.choicesByDropdownId}"/>
	<j:set var="style" value="display:inline"/>
	
	<div id="${it.name} MultiLevelSelections">
		<div id="${it.name} dropdowns for MultiLevelMultiSelect 0">
			<j:forEach var="dropdown" items="${dropdowns}">
				<select name="tmp name" onchange="${it.name}Changed(this, '${it.name}')"
								id="${dropdown}" style="${style}">
					<j:forEach var="choice" items="${choicesByDropdown[dropdown]}">
						<option value="${choice}">${choice}</option>
					</j:forEach>
				</select>
				<j:set var="style" value="display:none"/>
			</j:forEach>
		</div>
	</div>
	<input id="${it.name} addAnotherButton" type="button" value="Add Another"
				 style="display:none"
				 onclick="unhideNext${it.name}('${it.name}');"/>
	<br id="${it.name} addAnotherButton linebreak"></br>
	<ol id ="current${it.name}" style="display:none">
		<li id="li to clone" style="display:none"></li>
	</ol>
	<br></br>
</j:jelly>
{'fraction_non_alphanumeric': 0.1533147747190432, 'fraction_numerical': 0.0008248273017836891, 'mean_word_length': 3.7340165934602245, 'pattern_counts': {'":': 0, '<': 61, '<?xml version=': 0, '>': 61, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 16}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6208853', 'n_tokens_mistral': 3808, 'n_tokens_neox': 2904, 'n_words': 457}