1function currentUrl(){return window.location.href}function openPage(e){window.location.href=e}function saveLocal(e,n){sessionStorage.setItem(e,n)}function popLocal(e){var n=loadLocal(e);return rmLocal(e),n}function loadLocal(e){return sessionStorage.getItem(e)}function rmLocal(e){sessionStorage.removeItem(e)}function scrollToElement(e,n,o,t){var i=$(window).scrollTop(),e=$(e).offset().top-i-n;if(e){if(0<e){if(1===t)return;n=$("body").prop("scrollHeight")-i-$(window).height();n<e&&(e=n)}if(e<0){if(-1===t)return;n=-i;e<n&&(e=n)}0<o?$([document.documentElement,document.body]).animate({scrollTop:i+e},o):$([document.documentElement,document.body]).scrollTop(i+e)}}function burger(){$(".navibar__panel").first().toggleClass("navibar__panel--show"),$("body").first().toggleClass("modal-open"),$(".navibar__burger").first().find("svg").toggleClass("d-none")}function _initTopicSearch(e){var n={v:!1},t=_group(0,n,e),i=_group(1,n,e),n=(_addCloseListeners([t,i]),_addOpenListener(t),_addOpenListener(i),t.dropdown.find(".dropdown-item").each(function(e){var n=$(this),o=topics[e];_addItemListeners(t,n,o),n.on("click",function(){_reset(i),_addSubItems(i,o)}),n.on("keydown",function(e){"Enter"===e.key&&(_reset(i),_addSubItems(i,o))}),_sameVal(t,o)&&(_select(t,n,o),_addSubItems(i,o))}),t.go.on("click",function(){var e,n,o;t.goTopic.v&&(e=currentUrl(),n=$.trim(t.goTopic.v[1]),(o=_redirectData(t))&&saveLocal("_tr",o),0<n.length&&e!==n&&openPage(n))}),popLocal("_tr"));!n||(e=_redirectNotificationEl(n))&&(n=$(e),$("header").eq(0).prepend(n))}function _group(e,n,o){var t=o.find("input"),i=o.find(".dropdown-menu"),r=o.find(".icon-inner"),c=o.find(".fader"),o=o.find("button");return{state:0,input:t.eq(e),dropdown:i.eq(e),innerIcon:r.eq(e),inputs:t,dropdowns:i,fader:c,go:o,goTopic:n,selection:!1,resetScroll:!1,justTouched:!1}}function _addCloseListeners(e){$(document).on("mouseup touchend",function(o){$.each(e,function(e,n){
1n.justTouched||_isTarget(o,n)||_hide(n),n.justTouched=!1})}),$(document).on("focusin",function(o){$.each(e,function(e,n){_isTarget(o,n)||_hide(n)})})}function _addOpenListener(n){n.input.on("mousedown touchstart",function(e){n.justTouched=!0}),n.input.on("focus",function(e){_show(n)}),n.input.on("keydown",function(e){"ArrowDown"!==e.key&&"ArrowUp"!==e.key||(n.dropdown.find("ul li").first().focus(),e.preventDefault())})}function _reset(e){_unselect(e),e.input.removeAttr("disabled"),e.dropdown.empty(),e.resetScroll=!0}function _addSubItems(t,e){var i;1<e[2].length?(i=$("<ul class='list-unstyled mb-0'></ul>"),$.each(e[2],function(e,n){var o=$("<li class='dropdown-item' tabindex='0'><span class='align-middle'>"+n[0]+"</span></li>");_addItemListeners(t,o,n),i.append(o),_sameVal(t,n)&&_select(t,o,n)}),t.dropdown.append(i)):(t.input.attr("disabled",!0),t.dropdown.empty())}function _addItemListeners(e,n,o){function t(){_hide(e),_select(e,n,o),_setGoTopic(e,o)}n.on("click",t),n.on("keydown",function(e){"Enter"===e.key?t():"ArrowDown"===e.key?n.next().focus():"ArrowUp"===e.key&&n.prev().focus()})}function _sameVal(e,n){e=e.input.val();return!!e&&$.trim(e)===n[0]}function _select(e,n,o){e.input.val(o[0]),e.selection={item:n,topic:o}}function _unselect(e){e.resetScroll=0!=e.selection,e.input.val(""),e.selection=!1}function _setGoTopic(e,n){e.goTopic.v=n;n=$.trim(n[1]);e.go.prop("disabled",0==n.length)}function _show(e){0===e.state&&(e.state=2,e.fader.addClass("d-block"),$(e.dropdown).fadeIn(120,function(){e.innerIcon.addClass("icon-180"),e.dropdown.addClass("d-block"),e.state=1}),e.selection?e.selection.item.focus():e.resetScroll&&(e.dropdown.scrollTop(0),e.resetScroll=!1))}function _hide(n){1===n.state&&(n.state=2,$(n.dropdown).fadeOut(120,function(){n.dropdown.removeClass("d-block"),n.innerIcon.removeClass("icon-180");var e=n.dropdowns.is(":visible");n.fader.toggleClass("d-block",e),n.state=0}))}function _isTarget(e,n){return n.dropdown.is(e.target)||0<n.dropdown.has(e.target).length}function _redirectData(e){if("undefined"==typeof currGeoUrl||"undefined"==typeof currGeo)return"";var n=e.goTopic.v,o=n.length;if(o<3)return"";if(3==o&&"string"!==$.type(n[2]))return"";var t=n[0];return[t="Overall"===t?e.input.val():t,currGeoUrl,currGeo,n[o-1]].join("~")}function _redirectNotificationEl(e){e=e.split("~");if(4!=e.length)return"";var n=e[0];return"<div class='alert alert-warning alert-dismissible fade show' role='alert'>There are not enough universities for <strong>"+n+" in <a href='"+e[1]+"'>"+e[2]+"</a></strong>, so you've been redirected to the <strong>"+n+" in "+e[3]+"</strong> page.<button type='button' class='close' data-dismiss='alert' aria-label='Close'><span aria-hidden='true'>×</span></button></div>"}$(document).ready(function(){$(".js-topic-search").each(function(){var e=$
1(this).find("input"),n=e[0];e.each(function(){$(this).on("focus",function(){var e=1.25*$("nav").eq(0).height();scrollToElement(n,e,180,-1)})})})}),$(document).ready(function(){var e=$("#buttonTop");$(window).scroll(function(){849<window.innerWidth&&(1e3<document.body.scrollTop||1e3<document.documentElement.scrollTop)?e.css("display","block"):e.css("display","none")}),e.click(function(){$("html, body").animate({scrollTop:0},300)})}),$(document).ready(function(){$.each(topics,function(e,n){0!=e&&(e=["Overall",n[1]],3<n.length&&e.push(n[3]),n[2].unshift(e))}),$(".js-topic-search").each(function(){_initTopicSearch($(this))})});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.